我有以下内容:
<div>
<div style="display:inline-block; ">div_1</div>
<div style="display:inline-block; line-height:20px;">div_2</div>
</div>
为什么为第二个div设置行高属性也会影响第一个div?如何纠正这个我只需要第二个div受行高影响,因为我需要为第一个div指定一个不同的line-height
。 提前致谢。
答案 0 :(得分:30)
对于测试用例,现在已经很清楚了。
将vertical-align: top
添加到第一个div:
<div style="display:inline-block; line-height:24px; vertical-align: top" id="div_1">div_1</div>
修正版:http://jsfiddle.net/my6Su/5/
阅读本文以了解display: inline-block
和vertical-align
之间的关系:
http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/
对于视觉演示也很有用:
http://www.brunildo.org/test/inline-block.html
答案 1 :(得分:4)
首先,line-height的效果仅适用于内联元素。当line-height is applied to block,内联块或任何其他类型的非内联元素时,仅effects are on the inline descendant个元素。
其次,在一个行框(一行中包含内联元素的抽象框)中,所有内联元素都沿着基线对齐。当您更改第二个div的行高时,它会在该内联元素的顶部(和底部)添加半个前导。上半场领先推动基线下降,这反过来推动第一个div下降。
我不确定你想要实现的目标,但是,我建议使用vertical-align属性或者只使用相对位置。
答案 2 :(得分:0)
<div>
<div style="display:inline-block; line-height:10px;">div_1</div>
<div style="display:inline-block; line-height:20px;">div_2</div>
</div>
试试这个。这将有效。