今天码的时候遇到这个问题了。html
若是自己是内联元素的,把它的display属性设置设置为inline-block时,全部浏览器都是支持的。浏览器
相反,若是自己是块级元素的,把它设为display:inline-block; 那么ie6/ie7都是不支持的。布局
IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表征。post
这时块元素仅仅是被display:inline-block触发了layout,而它自己就是行布局,因此触发后,块元素依然仍是行布局,而不会如Opera中块元素呈递为内联对象。url
解决方案:spa
1.(这个是我此次使用的)htm
直接让块元素设置为内联对象呈递(设置属性display:inline),而后触发块元素的layout(如:zoom:1 或float属性等)。代码以下:
/*推荐:IE六、7*/ div { 对象
display:inline-block;blog
*zoom:1;get
*display: inline;
}
三者缺一不可
/*推荐*/div {
display:inline-block;
_zoom:1;
_display:inline;
}
二、(copy过来)
先使用display:inline-block属性触发块元素,而后再定义display:inline,让块元素呈递为内联对象(两个display 要前后放在两个CSS声明中才有效果,这是IE的一个经典bug,若是先定义了display:inline-block,而后再将display设回 inline或block,layout不会消失)。代码以下(...为省略的其余属性内容):
div {display:inline-block;...}
div {display:inline;}
转载声明:http://www.cnblogs.com/qiao20/p/6774888.html