代码之家  ›  专栏  ›  技术社区  ›  Mawg says reinstate Monica

边框、边距和填充,噢,天哪!(箱模型)

css
  •  0
  • Mawg says reinstate Monica  · 技术社区  · 14 年前

    这个 box model 应该足够简单,但我就是不摸索。

    这是一个毫无意义的表格

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Box model test</title>
    <link type="text/css" rel="stylesheet" href="test.css"> 
    </head>
    <body style="position:relative; top=0px; left=0px">
    <form action="for_submitted.php" method="post">
    
    <fieldset style="top:0px; left: 0px; width: 128px; height: 64px;">
      <legend> </legend>
      <div class="label" style="top:24px;  left: 16px; width: 81px; height: 14px;">Box 1</div>
    </fieldset>
    
    <fieldset style="top:0px; left: 128px; width: 128px; height: 64px;">
      <legend> </legend>
      <div class="label" style="top:24px; left: 64px; width: 22px; height: 14px;">Box 2</div>
    </fieldset>
    
    <div class="submit_button" style="top:64px; left:64px;"><input type="submit" name="submitButton" 
    
    value="Submit"></div>
    
    </form>
    </body>
    </html>
    

    及其CSS

    body
    {
      background-color: white;
      width: 100%;
      position: relative;
    }    
    
    .panel, .label, fieldset
    {
      position: absolute;
      font: 8px Arial; 
    }
    
    .submit_button
    {
      position: absolute;
    }
    

    我希望它能显示

    .---------..---------.
    | box 1   | box 2    |
    .---------..---------.
    

    但在msie8(我不得不使用)和firefox中,它显示了

    .--------..--------.
    | box 1  || box 2  |
    .--------..--------.
    

    它们为什么重叠?

    1 回复  |  直到 12 年前
        1
  •  1
  •   Yi Jiang G-Man    14 年前

    这里有几个问题。首先,您需要一个重置的CSS来删除由浏览器的用户代理样式表添加的空白和填充。类似的东西 Eric Meyer's 会的。

    其次,在加入重置CSS之后,仍然会有一些重叠。这是由边界造成的,其宽度不属于 width . outline 不受此影响,所以我在下面的演示中使用它来显示元素实际上没有重叠,但我不建议在边框处使用它。相反,在进行计算时应考虑边框的宽度。

    见: http://jsbin.com/ofusa3/edit