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
    属性,固定定位的伪元素保留在左列中(有利于居中布局)
这是一个例子

(在IE中查看代码笔时,确保文档模式遵循浏览器模式)

问题 在IE8中,全高左栏背景仅向下延伸到初始视口底部(折叠)

I使用一个新的
leftColBg
节点代替伪元素。这与IE8中的预期一样有效,这意味着固定定位应该有效

以下是关于IE8和生成内容的最佳解释:


我认为IE8错误地定位了生成的内容,因为它不是包含内容的“对象”。有谁能更好地解释这个IE8错误吗?有解决办法吗?

对不起,没有答案,但我想我遇到了同样的问题。使用body:content然后添加positionfixed没有修复元素。但是在标记中添加一个div,然后使用与psuedo元素相同的CSS,效果正如预期的那样。