Internet explorer 8 修复了IE8错误中定位的伪元素 背景
我有一个标准的三列布局,第一列向左浮动,第三列向右浮动。第一列需要全高背景Internet explorer 8 修复了IE8错误中定位的伪元素 背景,internet-explorer-8,css-position,pseudo-element,Internet Explorer 8,Css Position,Pseudo Element,我有一个标准的三列布局,第一列向左浮动,第三列向右浮动。第一列需要全高背景 此布局用于模板,因此三列中的任何一列都可能具有最长的内容 我无法更改标记源顺序,因此无法使用display:table解决方案 我无法添加任何DOM节点 布局以最小和最大宽度居中,因此我无法使用内置背景色将垂直重复的背景图像附加到页面 它需要在IE7中看起来正常,但IE8+需要支持 解决方案 为了实现左栏的全高,我在colLeft上创建了一个伪元素。该伪元素的固定位置设置为视口底部,100%高度,并放置在左栏后面。此
- 此布局用于模板,因此三列中的任何一列都可能具有最长的内容
- 我无法更改标记源顺序,因此无法使用
解决方案display:table
- 我无法添加任何DOM节点
- 布局以最小和最大宽度居中,因此我无法使用内置背景色将垂直重复的背景图像附加到页面
- 它需要在IE7中看起来正常,但IE8+需要支持
colLeft
上创建了一个伪元素。该伪元素的固定位置设置为视口底部,100%高度,并放置在左栏后面。此解决方案非常棒,因为:
- IE8+支持伪元素
- 伪元素附加到左列,因此如果模板没有左列,背景自然不存在
- 通过不设置
或left
属性,固定定位的伪元素保留在左列中(有利于居中布局)right
leftColBg
节点代替伪元素。这与IE8中的预期一样有效,这意味着固定定位应该有效
以下是关于IE8和生成内容的最佳解释:
我认为IE8错误地定位了生成的内容,因为它不是包含内容的“对象”。有谁能更好地解释这个IE8错误吗?有解决办法吗?对不起,没有答案,但我想我遇到了同样的问题。使用body:content然后添加positionfixed没有修复元素。但是在标记中添加一个div,然后使用与psuedo元素相同的CSS,效果正如预期的那样。