IE6兼容inline-block的方法_html/css_WEB-ITnose
程序员文章站
2023-12-23 15:09:22
...
或许有朋友会对IE不支持 display:inline-block 属性,表示疑问或者反对。说:“我在 IE 中对 a 或者 span 等内联元素使用 display:inline-block 一直是有效的”。
其实不然,在IE中对内联元素使用 display:inline-block,IE 是不识别的,但使用 display:inline-block 在 IE 下会触发 layout, 从而使内联元素拥有了display:inline-block 属性的表症。从上面的这个分析,也不难理解为什么 IE 下,对块元素设置 display:inline-block 属性无法实现 inline-block 的效果。这时块元素仅仅是被 display:inline-block 触发了 layout,而它本就是行布局,所以触发后,块元素依然还是行布局,而不会如 Opera 中块元素呈递为内联对象。
IE下块元素如何实现 display:inline-block 的效果?
有两种方法:
1、先使用 display:inline-block 属性触发块元素,然后再定义 display:inline,让块元素呈递为内联对象(两个display 要先后放在两个 CSS 声明中才有效果,这是 IE 的一个经典 bug ,如果先定义了 display:inline-block,然后再将 display 设回 inline 或 block,layout 不会消失)。代码如下(…为省略的其他属性内容):
div {display:inline-block;...} div {display:inline;}
2、直接让块元素设置为内联对象呈递(设置属性 display:inline),然后触发块元素的 layout(如:zoom:1 等)。代码如下:
div {display:inline; zoom:1;...}
推荐阅读
-
IE6兼容inline-block的方法_html/css_WEB-ITnose
-
Css样式兼容IE6,IE7,FIREFOX的写法_html/css_WEB-ITnose
-
,关于IE8兼容HTML5 CSS3 还有@media的问题_html/css_WEB-ITnose
-
a标签点击跳转失效IE6、7的奇葩bug_html/css_WEB-ITnose
-
IE 8兼容:X-UA-Compatible的解释_html/css_WEB-ITnose
-
求兼容手机浏览器的DIV弹出层CSS写法_html/css_WEB-ITnose
-
html5 兼容IE6结构的实现代码
-
几个解决兼容IE6\7\8不支持html5标签的几个方法
-
HTML5的hidden属性兼容老浏览器的方法
-
让IE9以下版本的浏览器兼容HTML5的方法