如何使IE支持min-width / max-width CSS属性?

时间:2011-05-11 17:36:00

标签: css internet-explorer standards

这些属性不被视为标准CSS吗?

我正在使用这样的东西,它可以在Chrome 12,FF4,Opera 11和Safari 5上正常运行,但在IE9上,width < min-width时不会考虑最小宽度。

<span style="float:left; width:11%; min-width:150px;">
    ...
</span>

编辑:对我的问题的自由编辑和迁移有点恼火,但是没有。这是一个更全面的例子,显示了IE9与其他浏览器的明显区别。

<html><body>
<p style="width: 600px">
<span style="float: left; width: 11%; min-width: 150px">Hello.</span>
<span style="float: left; width: 11%">World.</span>
</p>
</body></html>

编辑2:如下面Kevin的评论中所述,在开头添加<!DOCTYPE html>可以解决IE问题。

3 个答案:

答案 0 :(得分:13)

如果您所说的是真的,IE9将会偏离the spec形式。但是,我无法复制您的投诉。使用您的示例,如果min-widthwidth小于150px,则IE9会尊重<!DOCTYPE html>

修改

注意:Quirks模式遵循不同的规则,并且不符合任何浏览器中的标准CSS。如果您向页面添加doctype,则应解决此问题(添加:{{1}})。

为了扩展这个问题,Quirks Mode不是标准化的。 大多数浏览器实现了一些东西,但在那些事实标准中未定义新功能。因此,有些浏览器允许使用新的CSS(正如您所观察到的那样),但IE9 忽略新的css值,因为它们在Quirks模式中没有位置。

答案 1 :(得分:4)

我发现<!DOCTYPE html>不够 - 我必须严格要求:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

答案 2 :(得分:3)

请尝试以下代码:

#limit-size
{
min-width: 998px;
width: expression(this.width < 998 ? 998: true);
min-height: 250px;
height: expression(this.height < 250 ? 250: true);
}

//html:
<div id="limit-size"></div>