模拟兼容性的 inline-block 属性
模拟兼容性的 inline-block 属性
发布时间:2016-12-29 来源:查字典编辑
摘要:而现在对于inline-block属性运用的需求也越来越多,可惜依旧只有Firefox3beta、IE8beta、Opera、Safari支...

而现在对于inline-block属性运用的需求也越来越多,可惜依旧只有Firefox3beta、IE8beta、Opera、Safari支持inline-block属性(注:原来只有Opera、Safari支持),但IE6、IE7可以通过触发hasLayout来模拟,Firefox2有-moz-inline-box和-moz-inline-stack私有属性(这两个属性的比较引用自秦歌的《display:inline-block的应用两例》)。

在实际应用中-moz-inline-box会存在元素间的对齐等问题,虽然Firefox还有一个私有属性-moz-box-align来帮助解决对齐问题,但依旧难以预料问题多多,而相对来说-moz-inline-stack的表现更像inline-block,这点可以在Firefox3中测试出来。但-moz-inline-stack使用时也会有一个bug,如果一个display:-moz-inline-stack;的元素外层元素是display:inline;即会使Firefox中其包含的链接不可点,这个需要用position:relative;来解决。

最终我们模拟的代码如下:

复制代码 代码如下:

display:inline-block;/*Firefox3beta、IE8beta、Opera、Safari支持,IE下触发inline元素的hasLayout*/

display:-moz-inline-stack;/*Firefox的私有属性,也可以用-moz-inline-box*/

zoom:1;/*IE下触发hasLayout*/

*display:inline;/*一旦IE下触发了hasLayout,设置block元素为inline会使display:inline效果与display:inline-block相似*/

text-indent:-9999px;

*text-indent:0;

font-size:0;

line-height:0;/*如需隐藏文字,可用这四个属性*/

/*另外上面隐藏文字,还可以用更简化的方法:line-height:超级大值;font-size:0;*/

overflow:hidden;/*隐藏溢出的内容*/

vertical-align:middle;/*行内垂直居中,针对Opera比较大的偏离*/

width:?px;/*?为任意非auto值*/

height:?px;/*?为任意非auto值*/

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新 Div+Css教程学习
热门 Div+Css教程学习
网页设计子分类