在 IE6、IE7中实现块元素的inline-block效果有以下两种方法:
1先使用display:inline-block属性触发layout,然 后再定义display:inline让块元素呈现内联对象(两个display要先后放在两个CSS声明中才有效果,这是IE的一个经典BUG)。
2 直接将块元素设置为display:inline呈现为内联对象,然后触发layout(如zoom:1)。
ie6&ie7 | ie8&ie9 | Firefox | Chrome | Safari | Opera | |
font-size:0 | N- | Y | Y | Y | N- | Y |
word-spacing:负值 | Y(2) | Y | Y | N | N | Y |
letter-spacing:负值 | N* | Y | Y | Y | Y | N |
块级元素 display:inline-block
ie6&ie7 | ie8&ie9 | Firefox | Chrome | Safari | Opera | |
font-size:0 | Y | Y | Y | Y | N- | Y |
word-spacing:负值 | Y(1) | Y(1) | Y(1) | N | N | Y(1) |
letter-spacing:负值 | Y(1) | Y(1) | Y(1) | Y(2) | Y(2) | N |
【解决方案】
行内元素 display:inline-block
HTML:
<div class="item-list">
<a href="#">行内元素a</a>
<a href="#">行内元素a</a>
</div>
CSS:
.item-list {
font-size:0;
*word-spacing:-0.18em;/*这里是定值,不需要随字体类型、大小而变化*/
}
.item {
font-size:12px;/*or other value*/
display:inline-block;
*word-spacing:normal;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
.item-list {letter-spacing:-1em;}/*just target safari,因为font-size:0时,此条对chrome无效*/
}
}
块级元素display:inline-block
<div class="item-list">
<div class="item">块级元素div</div>
<div class="item">块级元素div</div>
</div>
css:
.item-list {
font-size:0;
}
.item {
font-size:12px;/*or other value*/
display:inline-block;
*display:inline;
*zoom:1;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
.item-list {letter-spacing:-1em;}/*just target safari,因为font-size:0时,此条对chrome无效*/
}
}
[相关链接]:display:inline-block在IE6/Ie7和IE8中的区别 谈谈inline-block元素间隙问题
另解决方法(未测试):
在ie6,ie7里标签div这种外层的标签是无法支持display:inline-block;的而a,span这种内嵌标签是可以的,解决办法是
div { display:inline-block;} div { display:inline;}