【问题标题】:How to replace IE8 css expressions with javascript [closed]如何用javascript替换IE8 css表达式[关闭]
【发布时间】:2017-03-06 10:11:43
【问题描述】:

实际上我已经将 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;  
   }

【问题讨论】:

  • 是的。使用 JavaScript 和 DOM 的样式属性。
  • 嗨,请您清楚地解释一下如何获取这些值。我是 javascript 新手,我正在学习。如果你能 LEFT:expression(this.parentElement.offsetParent.parentElement.scrollLeft); 那就太好了解释我如何对这部分进行排序。并赋值给left

标签: javascript css internet-explorer-8 css-expressions


【解决方案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

【讨论】:

  • 我什至建议不要使用this
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 2016-09-02
  • 1970-01-01
  • 2022-11-24
相关资源
最近更新 更多