希望有朋友能帮忙解答!
自己对于这块的理解:作为一个浮动元素,其应该是脱离了文档流的,而其父容器是属于文档流的,那这个浮动元素的宽度又是根据什么来计算的呢?为什么其脱离了文档流,却会去适应文档流的父容器的宽度呢?样例如下列格式:
(样例参照张鑫旭老师《css世界》6.1章节魔鬼属性float 所写,当然前提是排除掉文字不换行和长串英文字符)
<div class="parent">
<div class="float">
<img src="1.jpg"/>帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅!
</div>
</div>
.parent{
width: 200px;
}
.float{
float: left;
}
.float img{
width: 128px;
}
此时结果如图所示:
此时float元素很神奇的自适应父容器宽度了,但是父容器是高度塌陷的(如果想要让父容器出现高度,可以将父容器设置为BFC元素)
(2018年8月31日18:58更新:如果将文字内容替换成不超过图片宽度的something,float元素仍然自适应父容器,考虑到something的长度可能大于parent减去img的宽度值,因此将something替换成了some,由此发现
some与图片在同一行了(其实本来就是会同行显示的,因为图片与文字都为内联级别的,此时注意到:当some换成了长串英文字符时,换行显示了,但是原先占据的地方并没有收缩回来,而是填充了父容器)
很奇怪,为什么浮动元素里面的元素会受限于父容器的宽度呢?
)