我将使用这样的标记:http://jsfiddle.net/g6fo2grs/
所以主要的问题是绝对定位的伪元素'之前'包含在第二个div中。我使用overflow: hidden
隐藏它,如果它比容器大,我有Firefox和IE的问题,因为这种风格不适用于display: table
样式。我应该使用它,因为第二个div可以包含不同数量的内部div具有不同的大小,它们应该拉伸第二个div的宽度。这就是我使用display: table-cell
的原因,但在没有display: table
的情况下,它不能用于三分之一的div。我想支持IE8 +所以我不能使用flex。最后,我无法在此标记中添加新元素,我无法用div替换伪元素。
答案 0 :(得分:0)
clip
财产可以解决您的问题,因为"表"有固定的大小?
.second:before {
/*
all other styles unchanged
*/
clip: rect(25px 552px 77px 50px);
}
参见示例:http://jsfiddle.net/g6fo2grs/4/
顺便说一下,您在示例中使用的某些功能(例如rgba()
颜色和border-radius
)已经与IE8不兼容。