代码之家  ›  专栏  ›  技术社区  ›  Ryan

在Strict和Quirks模式下使div的总宽度相同

  •  2
  • Ryan  · 技术社区  · 15 年前

    <div style="width:150px;border:50px solid black">Test</div>
    

    如果将其输出到IE8以严格模式呈现的页面上(或者如果加载到Firefox等),则div内部(测试所在的白色区域)的宽度将为150px,但div的总宽度将为50+150+50=250px(考虑边界)

    如果在“怪癖”模式下渲染,则其宽度仅为50+50+50=150px。

    不同之处在于,宽度包括所解释的任何边界 here

    如果你将一个html片段放在一个页面上,并且你事先不知道将使用哪种模式,那么有没有可靠的黑客(css/javascript或其他)可以确保div在所有主要浏览器(IE6/7/8、Firefox、Opera、Chrome)上的严格/怪癖模式下具有相同的总体尺寸?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Ryan    15 年前

    我想我已经破解了(在IE 6/7/8怪癖、严格模式和FF3.5上测试)

    Quriks/Strict模式仅在涉及填充/边框时才在div的宽度上有所不同。

    因此,制作一个外部div来设置宽度,然后制作一个带有边框的内部div。

    内部div被限制为外部div的宽度-并且两种怪癖/严格模式将呈现相同的大小。

    <div style="width:150px;border:50px solid black">Test</div>
    

    变成

    <div style="width:150px;">
       <div style="border:50px solid black">Test</div>
    </div>
    
        2
  •  1
  •   ЯegDwight kri    15 年前

    这就是问题所在 box-sizing 属性在那里。看见 this guide .

        3
  •  0
  •   ylebre    15 年前

    另一方面,要让浏览器在一个doctype中对事物的外观达成一致,甚至是严格的一致,已经相当困难了。