我见过许多开发人员在我使用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%,有人不同意吗?
其他参考文献:
zoom
触发hasLayout的有趣链接:http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In-Internet-Explorer.htm。答案 0 :(得分:38)
hasLayout
属性这是一个用于将元素的IE特定hasLayout
属性设置为true的脏黑客。 hasLayout
属性“确定元素如何绘制和绑定其内容,与其他元素交互并与之相关,以及对应用程序/用户事件做出反应和传输。”提供元素layout
是修复Internet Explorer中出现的许多与布局相关的错误的简单方法。
将宽度设置为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)
除了width
和auto
触发hasLayout之外,zoom
是真的zoom
,{{1}}是更灵活的属性/值,因为它不会弄乱宽度但是我不认为这就是你看到开发人员使用99.9%的原因。
在某些浮动情况下,浮动的组合宽度必须不等于100%(如果以百分比指定),因为IE6错误地计算得超过100%并且通常后者浮动下降。
解决方案是为IE指定-1px右边距或者使其总和为99.99%。
我记录了错误here。因此,无论是否与您所看到的相关,希望错误链接可以帮助任何体验它的人。