0

实际上,我已经将 css 样式应用于表达式。但现在在 IE8 中它没有得到应用。如何使用 css、javascript 解决这个问题?

.fixedHeaderTr1     
  {   
  z-index:11;    
  position:relative;
  top:expression(this.offsetParent.scrollTop);   
  border: 1;  
  };       

  .fixedHeaderCol1     
  {
  position:relative;
  z-index:11;
  left:expression(this.parentElement.offsetParent.scrollLeft);     
  }; 

  .fixedDataCol1{
   LEFT:expression(this.parentElement.offsetParent.parentElement.scrollLeft);
   position:relative;
   z-index:11;
   background-color:#f3f7fe; 
   }
   .fixedDataCol12{
   LEFT:expression(this.parentElement.offsetParent.parentElement.scrollLeft);
   position:relative;
   z-index:11;
   background-color:#f9f9f9;  
   }
4

1 回答 1

1

Internet Explorer 8 及更高版本、IE8 标准模式及更高版本不再支持重要的动态属性(也称为“CSS 表达式”)。这个决定是出于标准合规性、浏览器性能和安全原因。IE7 模式或 IE5 模式下的 Internet Explorer 8 中的动态属性仍然可用。(有关文档兼容性模式的更多信息,请参阅定义文档兼容性。)因为 IE8 模式下的 Internet Explorer 8 完全符合级联样式表,第 2 级修订版 1 (CSS2.1) 标准,所以大多数动态属性都是为解决级联问题而编写的应该不再需要以前版本的 Internet Explorer 中与样式表 (CSS) 相关的缺点。其他具有更具体用途的动态属性通常可以替换为标准 JavaScript。

https://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx

js替换示例:

document.getElementsByClassName('fixedHeaderCol1')[0].style.left = this.parentElement.offsetParent.scrollLeft;

另见:https ://stackoverflow.com/a/30102325/5758328

于 2017-03-06T10:23:42.077 回答