IE6的inline-block

1、display:inline-block


让一个元素具有“区块元素”的属性(可以设置width和height),又具有“内联元素”的属性(不产生换行)。

2、IE中的inline-block



IE6不支持这个属性,但IE8开始支持这个属性。

让IE6内联元素具备inline-block特性

由于inline-block会触发IE的layout,所以IE6中只要设置{display:inline-block;}即可。

让IE6区块元素具备inline-block属性,有两种方法

A、可以先触发layout,再设置为inline,需要注意的是这两个display必须在两个CSS声明中才有效,代码如下:

复制代码代码如下:
div {
width:400px;
height:200px;
display:inline-block;
}
div {
display:inline;
}

B、直接设置为inline,再利用zoom来触发layout来实现类似效果:

复制代码代码如下:
div {
width:400px;
height:200px;
*display:inline;
*zoom:1;
}

3、其它浏览器

其它浏览器都支持这个属性,但Firefox从3.0才开始支持这个属性,对于之前的版本可以利用其私有属性{display:-moz-inline-box}来实现类似效果,但也可以忽略3.0之前的版本(这些版本的浏览器很少有人使用了)。

CSS{display:inline-block}


2002年W3C推出CSS2.1规范时,给元素的display属性增加了inline-block值。其作用是“这个值导致一个元素产生一个块状盒模型(block box),而本身作为单一的内联盒模型(inline box)流动排列(flow),类似一个被替代的元素。Display值为inline-block的元素内部形成一个块状盒模型,而本身形成类似一个内联的被替代元素”[1]。即display为inline-block的元素既可以像块状元素一样定义高度宽度,又可以和内联元素(比如文字)排列在一行。

这个效果在页面设计的时候,很多地方都可以带来便利,最常见的莫过于设计导航时,既可以像inline元素那样实现居中,又可以设置像block元素那样设置单个菜单大小,还可以通过text-indent来隐藏文字显示背景图片。请看 演示实例>>>>。

1.Opera和Safari支持这个属性。
2.IE不支持这个属性IE8 beta1支持这个属性,但inline-block会触发IE的layout,从而使内联元素具有类似inline-block元素的属性。cross-browser : display:inline-block是一个很好的例子。
对于display:block的元素,要实现类似inline-block的效果,可以先触发layout,再设置为inline,需要注意的是这两个display必须在两个CSS声明中才有效,代码如下:


复制代码代码如下:
.pagination li{
display:inline-block;
}
.pagination li{
display:inline;
}

或者直接设置为inline,再利用zoom来触发layout来实现类似效果:

复制代码代码如下:
.pagination li{
display:inline;
zoom:1;
}

3.Firefox也不支持这个,这个是蛮意外的事情,Firefox3应该会支持吧,Firefox3 beta2上已经正式支持,在这之前可以利用其私有属性{display:-moz-inline-box}来实现类似效果是一个不错的选择[2]。

IE6的inline-block