我们一起来读书吧 关注:154贴子:2,903
  • 1回复贴,共1

css 10.23-10.28

只看楼主收藏回复

width:auto
包含了4种不同的宽度表现:
1.充分利用可用空间,比如div,p宽度默认100%之于父容器(fill-avaliable)元素拥有流动性,不是看上去宽度100%那么简单,而是一种margin/border/padding/content自动分配水平空间的机制。设置width:100%,流动性消失;当left、right对立方向的属性值同时存在的时候,其宽度就会具有完全的流体特性。
2.收缩到合适,比如浮动、绝对定位、inline-block等,比如开启浮动后块级元素不再独占一行,从fill-avaliable变成了shrink-to-fit。最小宽度是元素最适合的最小宽度。也是当宽度为0时,图片或文字的宽度。具体的表现规则如下:
东亚文字。如中文,最小宽度是每个汉字的宽度。
西方文字。最小宽度是由特定的连续的英文字符单元决定的。一般会止于空格、短横线、问号及其他非英文字符。如果想要英文和中文一样,每个字符作为最小宽度单元,可以使用word-break:break-all。
图片。最小宽度就是该元素内容本身的宽度。
按钮就具有这种自适应性,文字足够多时自动换行
3.收缩到最小,如table-layout为auto的表格中,由内容决定,将宽度收缩到最小值。每一列空间都不够的时候,文字能断就断,但中文是随便断的,英文单词不能断;可以用min-content控制
4.超出容器限制内容很长的连续的英文和数字,或者内联元素被设置了 white-space:nowrap;可以用max-content控制
外部尺寸与内部尺寸:
1.内部尺寸宽度由内部元素决定,外部尺寸宽度由外部元素决定
2.fill-avaliable
3.“鑫三无准则”,即“无宽度,无图片,无浮动”。为何要“无宽度”?原因很简单,表现为“外部尺寸”的块级元素一旦设置了宽度,流动性就丢失了。


IP属地:北京1楼2024-10-28 19:56回复
    宽度分离,嵌套一层标签,父元素定宽,子元素因为 width 使用的是默认值 auto,所以会如水流般自动填满父级容器。因此,子元素的 content box 宽度就是 100 像素。
    height:100% 失效
    普通文档流中的元素,百分比高度值要想起作用,其父级必须有一个可以生效的高度值。
    果包含块的高度没有显式指定(即高度由内容决定),并且该元素不是绝对定位,则计算值为auto。
    想要生效:设置显示高度 网页链接
    绝对定位
    min-width/min-height 的初始值是 auto,max-width/max- height的初始值是none。
    已知父元素设置宽度度400像素,子元素设置宽度800像素,假如说max-width初始值是auto,那自然使用和 width一样的解析渲染规则,此时 max-width 的计算值就应该是父元素的 400 像素,此时,你就会发现,子元素的 800 像素直接完蛋了,因为 max-width 会覆盖 width。于是,我们的 width永远不能设置为比 auto 计算值更大的宽度值了,这显然是有问题的,这就是为什么 max-width初始值是 none 的原因。


    IP属地:北京来自Android客户端2楼2024-10-29 09:48
    回复