【问题标题】:IE10: Unable to set any flex style properties via Javascript [duplicate]IE10:无法通过 Javascript 设置任何 flex 样式属性 [重复]
【发布时间】:2018-05-12 02:02:42
【问题描述】:

这就是我想要做的:

var node = document.getElementById('some-object');
node.style.flex = '480px 1 0';

问题是,为什么上面的 sn-p 不能在 IE 10 上运行?

我可以在 IE11 及更高版本中设置flexflexBasisflexGrow 或任何东西,为什么它在IE 10 中不起作用?

【问题讨论】:

  • flex 的值不正确,IE 10 仅支持 -ms- 前缀版本的 flex(部分支持)
  • 由于 IE10 使用 Flexbox(旧版本)的前缀属性,您需要对脚本执行相同操作。 var node = document.getElementById('some-object'); node.style.msFlex = '1 0 480px'; /* flex: <flex-grow> <flex-shrink> <flex-basis> */ 注意,flex-basis 值应该是最后一个
  • @LGSon 这实际上是我找到的方法。不知道为什么我可以通过 javascript 设置 msFlex 而不是 msFlexBasis。但是,有什么理由需要将 flex-basis 放在最后?
  • 这两种方法似乎都可以工作(特别是设置{???}px 0 0)。

标签: javascript css internet-explorer flexbox internet-explorer-10


【解决方案1】:

这不起作用,因为 11 之前的 IE 版本中的弹性框样式 isn't supported

【讨论】:

  • 我正在使用 IE11,模拟 IE10 文档模式。除了通过 Javascript 设置 flexBasis 之外的所有内容似乎都可以工作。
  • 我也不能信任文档模式仿真吗?
  • 仿真永远不如使用你正在仿真的东西。
  • 是的,我猜是这样 :sadface:
  • 错了,IE10支持Flexbox,虽然老版本,使用前缀属性
【解决方案2】:

IE10不支持,看看这里有哪些浏览器支持flexbox:https://caniuse.com/#search=flexbox 注意,IE11 只支持部分。

【讨论】:

  • 这是错误的,IE10支持Flexbox,虽然旧版本,使用前缀属性,而IE11支持,但由于存在大量错误而部分支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 2022-01-06
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多