关于浮动元素宽度自适应父容器宽度的问题

希望有朋友能帮忙解答!

自己对于这块的理解:作为一个浮动元素,其应该是脱离了文档流的,而其父容器是属于文档流的,那这个浮动元素的宽度又是根据什么来计算的呢?为什么其脱离了文档流,却会去适应文档流的父容器的宽度呢?样例如下列格式:

(样例参照张鑫旭老师《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换成了长串英文字符时,换行显示了,但是原先占据的地方并没有收缩回来,而是填充了父容器)

很奇怪,为什么浮动元素里面的元素会受限于父容器的宽度呢?

猜你喜欢

转载自blog.csdn.net/FuChenRenShen/article/details/82260298
今日推荐