为什么要使用99.9%而不是100%的HTML / CSS宽度?
我看到许多开发人员在我将使用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。 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%可能是一个常见的错误观念卡住了。
其他方法
你也可以使用zoom: 1;
来触发hasLayout
zoom: 1;
虽然这是许多人的首选方法,但它不会混淆元素的其他样式相关特征,它也是无效的CSS代码,这对于某些开发人员来说不是一种选择。
进一步阅读
有关触发hasLayout
更多方法,请hasLayout
:http://www.satzansatz.de/cssd/onhavinglayout.html
有关hasLayout
属性的更多信息,请查看关于hasLayout
的MSDN文章http://msdn.microsoft.com/en-us/library/bb250481( hasLayout
.aspx(这实际上是一个很棒的阅读,很多详细的信息)
这是真正的width
,除了auto
和zoom
触发器hasLayout, zoom
是更灵活的属性/值,因为它不会混乱宽度,但我不认为这就是您看到开发人员使用99.9%的原因。
在某些浮动情况下,由于IE6错误地计算超过100%并且通常后者浮动下降,所以浮动的合并宽度不必合计为100%(如果以百分比指定)。
解决方法是为IE指定一个-1px右边距,或者使总和为99.99%。
我在这里记录了这个错误。 因此,无论是否与您所看到的相关,希望错误链接都能帮助任何人遇到它。
链接地址: http://www.djcxy.com/p/88773.html上一篇: Why would you use a HTML/CSS width of 99.9% instead of 100%?
下一篇: IE+jQuery+Ajax+XHTML: HTML getting clipped after .html() or .innerHTML