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]

标签:, ,

作者:秦歌,时间:2007-10-30 22:02,归纳于:HTML & CSS,订阅:RSS 2.0,引用:Trackback

有评论 9 条,发表一条评论 »

柠檬园主说:2007-11-01 12:55 #1

我一般这样的地方都偷懒,嫌用UL,LI处理太麻烦了,就把所有链接依次排放,然后再控制左右间距.
不过你这个也确实是个不错的解决方法.

阿草哥说:2008-04-02 10:22 #2

你好 我今天遇见一个display的问题 可是看了你的文章这里还是没用啊
我用wp程序加了google广告结果文章中的p都是各自占据竖直方向一行
可以帮忙看下吗

秦歌说:2008-04-03 21:29 #3

我在你的blog上没有看到这样的问题,如果你还没有解决可以把URL给我,我有空的时候看看。

display:inline-block的应用两例 @ 随网之舞说:2008-04-05 9:18 #4

[...] CSS的display有属性值inline-block{display:inline-block;},下面是应用其来实现用图片替代文字的两个例子: [...]

口碑网UED Team » inline-block从入门到精通说:2008-04-05 19:46 #5

[...] 关于inline-block的详细分析可以参考学鹍的CSS{display:inline-block}或者圆心的display:inline-block的深入理解 [...]

akira » Blog Archive » inline-block从入门到精通说:2008-04-06 1:34 #6

[...] 关于inline-block的详细分析可以参考学鹍的CSS{display:inline-block}或者圆心的display:inline-block的深入理解 [...]

Mick说:2008-08-06 14:46 #7

如果inline-block这么有优势,为什么不把inline元素全部声明成inline-block元素呢?

秦歌说:2008-08-06 20:52 #8

任何一个东西都有适用范围,别走极端。你可以好好考虑为什么CSS2.0中display有block | none | inline | compact | marker | inline-table | list-item | run-in | table |table-caption | table-cell | table-column | table-column-group | table-footer-group | table-header-group | table-row | table-row-group这么多值吧?

inline-block从入门到精通说:2008-09-04 22:38 #9

[...] 关于inline-block的详细分析可以参考学鹍的CSS{display:inline-block}或者圆心的display:inline-block的深入理解 [...]

发表一条评论

您可以在下面评论内容中使用下列XHTML标签:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

您或许有兴趣:

回到页眉