【解决】Display:inline-block兼容性解决

在IE6、IE7中不识别 display:inline-block属性,但使用inline-block属性在IE下会触发layout,从而使内联元素拥有了 display:inline-block属性的表症。从上面的分析也不难理解为什么IE6、IE7下对块元素设置 display:inline- block属性无法实现inline-block的效果。这时块元素仅仅是被inline-block触发了 layout,而它本就是行布局,所以触发 后,块元素依然是行布局。IE8识别display:inline-block;

在 IE6、IE7中实现块元素的inline-block效果有以下两种方法:

1先使用display:inline-block属性触发layout,然 后再定义display:inline让块元素呈现内联对象(两个display要先后放在两个CSS声明中才有效果,这是IE的一个经典BUG)。

2 直接将块元素设置为display:inline呈现为内联对象,然后触发layout(如zoom:1)。

 点击查看原图

行内元素 display:inline-block



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

html:

<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元素间隙问题 

[推荐]:inline-block 前世今生[淘宝UED]

另解决方法(未测试):

在ie6,ie7里标签div这种外层的标签是无法支持display:inline-block;的而a,span这种内嵌标签是可以的,解决办法是

div { display:inline-block;}
div { display:inline;}





阅读本文后,您的心情是:
 
恶心
愤怒
强赞
感动
路过
无聊
雷囧
关注
知识共享许可协议
评论(0) 浏览(16735) 引用(0)
引用地址:http://blog.baiwand.com/tb.php?sc=de3ba9&id=50
Tags:
« 【解决】JQuery 克隆 Object 【解决】JS/JQ判断函数是否存在(防止报错) »

Blogger

  • blogger
  • 天之骄子
  • 职位:研发工程师
    铭言:
    阳光与欢乐同在,
    与我同在
    主页:
    blog.baiwand.com

分类目录

日志归档

主题标签

数据统计

  • 日志:151篇
  • 评论:45条
  • 碎语:264条
  • 引用:0条

链接表

随机日志 »

最新日志 »

最新评论 »

标签云 »

订阅Rss
sitemap