display:table和overflow:在Firefox和IE中隐藏的行为不正确

时间:2015-07-09 10:42:02

标签: html css css3 internet-explorer firefox

我将使用这样的标记:http://jsfiddle.net/g6fo2grs/

所以主要的问题是绝对定位的伪元素'之前'包含在第二个div中。我使用overflow: hidden隐藏它,如果它比容器大,我有Firefox和IE的问题,因为这种风格不适用于display: table样式。我应该使用它,因为第二个div可以包含不同数量的内部div具有不同的大小,它们应该拉伸第二个div的宽度。这就是我使用display: table-cell的原因,但在没有display: table的情况下,它不能用于三分之一的div。我想支持IE8 +所以我不能使用flex。最后,我无法在此标记中添加新元素,我无法用div替换伪元素。

1 个答案:

答案 0 :(得分:0)

clip财产可以解决您的问题,因为"表"有固定的大小?

.second:before {
    /*
    all other styles unchanged
    */
    clip: rect(25px 552px 77px 50px);
}

参见示例:http://jsfiddle.net/g6fo2grs/4/

顺便说一下,您在示例中使用的某些功能(例如rgba()颜色和border-radius)已经与IE8不兼容。