我很想知道为什么以下元素有各种各样的高度:
<i class="icon"></i>
<i class="noicon"></i>
i {
display: inline-block;
width: 1em;
height: 1em;
}
i.icon:before { content: 'Ω'; }
i.noicon:before { content: ''; }
http://jsfiddle.net/pJw9d/可以说明这种情况(将符号悬停在指针上以查看大小的差异)。
PS:我知道如何解决这个问题(例如,通过使用不间断的空间(
或\00a0
),或者通过定义CSS位置),但我想知道它为什么会这样。
答案 0 :(得分:1)
尝试将“vertical-align”添加到i:
的css属性中i {
display: inline-block;
width: 1em;
height: 1em;
background: green;
vertical-align: top; //add this
}
答案 1 :(得分:1)
当 @anddoutoi 正确指出时,该行为在 W3C Recommendations 中解释:
如果框没有基线,请将下边距边缘与父母的基线对齐。
That fiddle demonstrates ,不是空元素的大小增加,而是基线height
的上升。
可以避免这种跳跃
i.noicon:before { content: '\00a0'; }
vertical-align
属性。答案 2 :(得分:0)
嗨,请告诉我this你需要什么?
<强> HTML 强>
<div><i class="icon"></i><i class="noicon"></i></div>
<div><i class="icon"></i></div>
<强> CSS 强>
body {
font-size: 2em;
}
div {
float:left;
}
i {
display: block;
width: 1em;
height: 1em;
background: green;
float:left;
}
i.icon:before {
content:'Ω';
}
i.icon:hover:before {
content:'';
}