将初始宽度用于元素在IE中不起作用


107

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

因此,新的div table{ width: 100%}从CSS 继承并呈现错误。

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

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

最好的解决方案是什么?


您是否尝试过设置最小宽度?它行得通吗?
佛教

@BuddhistBeast,没想到这一点!但是现在尝试了一下,也无法在Chrome上运行。
里卡德2013年

Answers:


177

就像你说的那样,一般width: auto都会有类似的效果。有规则:

.my-selector {
    width: auto;
    width: initial;
}

如果initial支持,则应使其使用auto


3
这解决了我的问题。谢谢。
dchayka 2015年

2
刚刚救了我一个小时。谢谢。
Skitterm 2015年

2
注意,initial 有效的属性值(developer.mozilla.org/en-US/docs/Web/CSS/initial)。但是(如果您在上一个链接中向下滚动到“浏览器兼容性”),则没有IE版本支持它。
gtramontina

4
这称为后备,是CSS中非常常见的编码模式。同样,使用width: auto不仅会产生相似的效果,而且会产生完全相同的效果,因为它auto定义width属性的初始值
chharvey '16

6

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.