我见过许多开发人员在我要使用 100% 的地方编写了 99.9% 的 HTML 或 CSS 内联样式宽度。使用 99.9% 有什么正当理由吗?和100%有什么有效区别吗?

编辑转发 MSalters 的非常好的问题: Considering that 99.9% is one pixel off above 500 pixels, why not 99.99%? 我猜他是对的 如果你和 dirty hack 你应该使用99.99%,有人不同意吗?

附加参考资料:

有帮助吗?

解决方案

hasLayout 财产

这是一个肮脏的 hack,用于设置 IE 特定的 hasLayout 元素的属性为 true。这 hasLayout 属性“确定元素如何绘制其内容,与其他元素进行交互并相关,并在和传输应用程序/用户事件上做出反应。”给出一个元素 layout 是修复 Internet Explorer 中出现的许多与布局相关的错误的简单方法。

99.9%是怎么回事?

将宽度设置为 99.9% 是触发它的一种方法。您使用 99.9% 的原因是因为如果元素的布局是给定的 width 设置为除 auto. 。将其设置为百分比可以避免使用固定宽度。

经过在 jsFiddle 中的一些测试,我得出的结论是,确实没有必要使用 99.9% 的宽度,使用 100% 的宽度也同样有效。 http://jsfiddle.net/3qfjW/2/ (仅限 IE)。好像是这样设置的 width 99.9% 可能是 常见的误解 卡住了.. 传播人们的话。

其他方法

还可以触发 hasLayout 使用 zoom: 1; 虽然这是许多人的首选方法,因为它不会与元素的其他样式相关功能混淆,但它也是无效的 CSS 代码,这对于某些开发人员来说不是一个选择。


进一步阅读

更多触发方法 hasLayout 查看: http://www.satzansatz.de/cssd/onhavinglayout.html

欲了解更多信息 hasLayout 属性查看 MSDN 文章 hasLayout http://msdn.microsoft.com/en-us/library/bb250481(VS.85).aspx (这实际上是一本很棒的书,有很多详细信息)

其他提示

这是真的 width 除了 autozoom 触发 hasLayout,并且 zoom 是更灵活的属性/值,因为它不会与宽度混淆,但我不认为这就是您看到开发人员使用 99.9% 的原因。

在某些浮动情况下,浮动的组合宽度有必要不等于 100%(如果以百分比指定),因为 IE6 会错误地将其计算为超过 100%,并且通常后面的浮动会下降。

解决方案是要么仅为 IE 指定 -1px 右边距,要么将总和设置为 99.99%。

我已经记录了该错误 这里. 。因此,无论它是否与您所看到的内容相关,希望该错误链接可以帮助遇到该问题的任何人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top