效果1
<div>
<div style="height: 100px;">测试内容</div>
<div style="display: inline-block;border: 1px solid red;padding: 10px;">
<span style="display: inline-block; border: 2px solid green; width: 100%;background-color: yellow;"> 这是inline-block span</span>
</div>
</div>
效果2
<div>
<div style="height: 100px;">测试内容</div>
<div style="display: inline;border: 1px solid red;padding: 10px;">
<span style="display: inline-block; border: 2px solid green; width: 100%;background-color: yellow;"> 这是inline-block span</span>
</div>
</div>
两段代码的区别: 第一段代码的div为inline-block,第二段为inline。
问题 为什么会出现这种不同的效果
b
第二段, 是因为内部的行内块元素设置
width: 100%
, 这个宽度的百分比是根据父元素中离他最近的块元素
或行内块元素
计算的, 因为第二段代码离他最近的块
或行内块
, 是最外层的块元素div
,div
的宽是body
, 因此他的宽也就是body
, 而他又是外层行内元素
的内容,这也就导致外层的行内元素
被撑开, 出现了第二个截图的样子第二段代码, 将最外层的
div
的宽设置一下,行内块
的宽设置为50%
结果就非常明显了: