使用IE中不起作用的元素的初始宽度

Rik*_*ard 104 css internet-explorer cross-browser width

我有一个图形插件,<table>可以在其容器中插入画布和图例.在这个插件table中没有width定义,在我的CSS中,我的插件插入了容器内的表的宽度.

所以,新的div继承table{ width: 100%}自CSS并呈现错误.

我尝试使用width: initial;,在Chrome上看起来不错,但IE不喜欢它 检查浏览器兼容性

我承认在脚本/插件中更改/强制内联CSS,因为它必须在任何环境中工作.

这里最好的解决方案是什么?

Mar*_*des 175

就像你说的,一般width: auto会有类似的效果.有规则:

.my-selector {
    width: auto;
    width: initial;
}
Run Code Online (Sandbox Code Playgroud)

如果initial支持则应该使用它,auto否则.

  • 这被称为*fallback*,是CSS中非常常见的编码模式.此外,使用`宽度:auto`将不仅有**类似的效果,但它会具有*完全相同*的效果,因为`auto`被**定义为初始值**为`width`属性. (4认同)
  • 这解决了我的问题.谢谢. (3认同)
  • 刚救了我一个小时.谢谢. (2认同)
  • 作为注释,`initial` _is_是有效的属性值(https://developer.mozilla.org/en-US/docs/Web/CSS/initial)._But_(如果您在上一个链接中向下滚动到"浏览器兼容性"),没有IE版本支持它. (2认同)

Rik*_*ard 6

使用width: auto;内联,脚本内部解决了Chrome,FIrefox和IE 11上的问题.只是不确定是否有更好的方法.