模拟兼容性的 inline-block 属性

时间:2021-05-18

而现在对于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;
display:-moz-inline-stack;

zoom:1;
*display:inline;

text-indent:-9999px;
*text-indent:0;
font-size:0;
line-height:0;


overflow:hidden;

vertical-align:middle;

width:?px;
height:?px;

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章