元素宽|高度的计算

1.父子都是块级元素
a).子元素宽度设置为100%
子元素宽度与父元素宽度相同,如果子元素设置了margin|padding,子元素的宽度是父元素的宽度加margin和padding。
b).子元素宽度不设置
对于块级元素,子元素的宽度默认为父元素的100%。而当我们给子元素添加padding和margin时,可以发现宽度width是父元素的宽度减去子元素的margin值和padding值。

去掉子元素的height,就会发先子元素的高度为0,故height是不会为100%的,一般我们都是通过添加内容(子元素)将父元素撑起来。或者直接对父元素设置高度。
2.父元素是块级,子元素是内联元素
a).普通内联元素
对内联元素设置宽高不生效,内联元素必须用内容撑起来。
b).img \input
可替换元素
input:可设置宽高,一行
img:可设置宽高,一行
(1).宽度为100%
宽度为父元素宽度,如果设置了margin|padding,实际宽度为父元素宽度加margin|padding
注意,100%,是指针对父元素设置的width是100%,不包括margin|padding
(2).未设置宽度
宽度为内容宽度
高度:等比例缩放。
3.父子均为元素块级元素,子元素是脱离文档流的元素
3.1.未设置子元素宽度
子元素宽度为0.(float及 position)
position:relative并未脱离文档流,总占据宽度为父元素的宽度
3.2.设置子元素宽度
4.父子均为元素块级元素,父元素是脱离文档流的元素
父元素脱离文档流对子元素没有影响
5.综上,如何让子元素决定块级父元素宽度?
父元素脱离文档流,且不设置宽高,子元素设置不为100%的宽高。
参考文章:
深入理解父元素与子元素的width关系

此条目发表在CSS分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注