34

我见过许多开发人员在我会使用 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%,有人不同意吗?

其他参考:

4

2 回答 2

38

hasLayout物业

这是一个肮脏的技巧,用于将hasLayout元素的 IE 特定属性设置为 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/onhavelayout.html

有关该hasLayout属性的更多信息,请查看hasLayout http://msdn.microsoft.com/en-us/library/bb250481(VS.85).aspx上的 MSDN 文章(这实际上是一本很好的读物,有很多详细信息)

于 2010-10-01T13:12:34.240 回答
3

除了触发 hasLayout 之外,其他任何事情都是如此,并且是width更灵活的属性/值,因为它不会影响宽度,但我认为这不是您看到开发人员使用 99.9% 的原因。autozoomzoom

在某些浮动情况下,浮动的组合宽度加起来不能达到 100%(如果以百分比指定),因为 IE6 错误地将其计算为超过 100%,并且通常后者的浮动会下降。

解决方案是为 IE 指定 -1px 右边距或使总和为 99.99%。

我在这里记录了这个错误。因此,无论它是否与您所看到的有关,希望错误链接可以帮助任何遇到它的人。

于 2010-10-01T21:21:40.620 回答