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}来实现类似效果是一个不错的选择

你可能感兴趣的:(css,IE,Opera,layout,firefox,Safari)