为什么你会使用99.9%而不是100%的HTML / CSS宽度?

时间:2010-10-01 13:03:47

标签: html css haslayout

我见过许多开发人员在我使用100%的地方编写HTML或CSS内联样式宽度为99.9%。使用99.9%是否有正当理由?它与100%有任何有效差异吗?

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

其他参考文献:

2 个答案:

答案 0 :(得分:38)

hasLayout属性

这是一个用于将元素的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%可能是common misconception卡住了.. 传播人们这个词。

其他方法

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


进一步阅读

有关触发hasLayout的更多方法,请查看:http://www.satzansatz.de/cssd/onhavinglayout.html

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

答案 1 :(得分:3)

除了widthauto触发hasLayout之外,zoom是真的zoom,{{1}}是更灵活的属性/值,因为它不会弄乱宽度但是我不认为这就是你看到开发人员使用99.9%的原因。

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

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

我记录了错误here。因此,无论是否与您所看到的相关,希望错误链接可以帮助任何体验它的人。