代码之家  ›  专栏  ›  技术社区  ›  Ken Ray

有人厌倦了计算一个DIV的总像素吗?(宽度+边距+填充+边框)

  •  2
  • Ken Ray  · 技术社区  · 7 年前

    有人厌倦了计算一个DIV的总像素吗?假设您有两个宽度与父分区完全匹配的分区。仅更改宽度、边距、填充或边框意味着您必须再次计算分区的像素。有没有更好的方法来使用宽度、填充和边距?一个好的选择是有一个外部的DIV作为宽度,一个内部的DIV作为填充和边距?我在做一些不必要的计算吗?

    4 回复  |  直到 16 年前
        1
  •  4
  •   jpsimons    16 年前

    你熟悉这两个盒子的型号,对吗?

    W3C盒模型: 宽度+填充+边框==外宽度
    Microsoft Box模型: width-padding-border==内容宽度

    Microsoft One(在IE5和IE6/QuirksMode中)的意义更大,因为它允许您在不改变总宽度的情况下改变填充和边框。不需要算术。不幸的是,W3C版本最终胜出,但是您仍然可以通过使用嵌套的div来获得Microsoft Box模型的好处。

    所以是的,要回答您的问题,最好是在以下情况下使用带宽度的外部DIV和带填充的内部DIV:

    1. 你讨厌算术
    2. 你在QuirksMode中支持IE6
        2
  •  0
  •   Azeem.Butt    16 年前

    如果没有什么需要与其他任何东西对齐,您可以使用百分比或ems或其他相关单位之一。

        3
  •  0
  •   cmcculloh    16 年前

    如果您尽可能避免使用填充,这会使操作更简单,因为这样您就不必为每个浏览器执行不同的计算集。(ie的计算与ff不同,ie的宽度计算中不包括填充)

        4
  •  0
  •   prodigitalson    16 年前

    我相信 div soup nazis 如果我需要用衬垫的话,我总是用单独的分隔物。为了帮助减轻这一点,我只使用填充,当一个边缘只是不可接受的视觉渲染的原因。除了印刷术,我一般不使用相对测量。