【问题标题】:Why would you use a HTML/CSS width of 99.9% instead of 100%?为什么要使用 99.9% 而不是 100% 的 HTML/CSS 宽度?
【发布时间】:2011-04-19 20:35:33
【问题描述】:

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

其他参考:

【问题讨论】:

    标签: html css haslayout


    【解决方案1】:

    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 卡住了。传播人们这个词。

    其他方法

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


    进一步阅读

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

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

    【讨论】:

    • 啊,你在我还在查找参考资料的时候就知道了。 +1。
    • 考虑到 99.9% 比 500 像素高出一个像素,为什么不是 99.99% 呢?
    • 使用宽度似乎很奇怪,当 zoom: 1 也存在时。
    • 是的,我个人在我的项目中使用zoom: 1,尽管有些人避免使用它,因为它是一个专有的 Microsoft CSS 规则,它会使你的 CSS 无效。
    【解决方案2】:

    这是真的 width 除了autozoom 触发 hasLayout,zoom 是更灵活的属性/值,因为它不会弄乱宽度,但我认为这不是原因为什么你看到开发者使用 99.9%。

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

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

    我已经记录了错误here。因此,无论它是否与您所看到的有关,希望错误链接对遇到它的人有所帮助。

    【讨论】:

    • 他们不会仍然以 99.99% 的宽度四舍五入吗?我很确定唯一安全的方法是从边距中删除 1px。
    • 开发人员在 3 个同级浮点数上使用 33% 宽度是很常见的。这很常见。
    • 是的,我可以理解,但是为什么他们需要为同一个问题设置 99.99% 的宽度,这不会导致兄弟浮动在任何浏览器中下降(除非另一个浮动有0.01% 的宽度)?我认为 99.9% 与 hasLayout 的相关性比 IE6 亚像素舍入相关性更高。
    • 99.9% 不是触发 hasLayout 的神奇关键字,但 auto 以外的任何值都可以。也可能是他们在 99% 宽度的元素上指定了 1px 填充,因为 100% 宽度 + 1px 填充会破坏。
    • 它也可能与水平滚动条有关,例如 longren.org/2006/09/27/wrapping-text-inside-pre-tags 。查看他看到问题的页面确实会有所帮助。可以有几十种解释。
    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 2011-09-30
    • 2013-02-16
    • 2017-07-29
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多