代码之家  ›  专栏  ›  技术社区  ›  Louis Tran

CSS问题:如何使div子级的填充物适合它们的容器

  •  1
  • Louis Tran  · 技术社区  · 4 年前

    如果我没有这些盒子的衬垫,它们就合适了。但是当我为盒子添加填充物时,它们的宽度会随着填充物的增加而增加,这样它们的边界就在容器之外了。 我该怎么解决?

    .container {
          border: 1px solid black;
          width: 400px;
          padding: 5px;
        }
        
        .box {
          border: 1px solid red;
          height: 30px;
          width: 100%;
          float: left;
          margin-bottom: 5px;
        }
        
        .pad {
          padding: 5px;
        }
        
        
        .clr {
          clear: both;
        }
        <div class="container">
            <div class="box pad" id="b1">
              Box 1
            </div>
        
            <div class="box pad" id="b2">
              Box 2
            </div>
        
            <div class="box pad" id="b3">
              Box 3
            </div>
        
            <div class="clr">
            </div>
        </div>

    谢谢您。

    2 回复  |  直到 4 年前
        1
  •  1
  •   Suboptimierer    4 年前

    你有两个选择:

    首先:计算宽度减去填充:

    .box {
        border: 1px solid red;
        height: 30px;
        width: calc(100% - 12px);
        float: left;
        margin-bottom: 5px;
    }
    

    但为什么要减12像素而不是减10像素呢? 左边框(1px)和右边框(1px)为2像素。 因此总共12个像素。

    .box {
        box-sizing: border-box;
        border: 1px solid red;
        height: 30px;
        width: 100%;
        float: left;
        margin-bottom: 5px;
    }
    

    关于盒子大小的一个很好的解释可以在这里找到: https://www.w3schools.com/css/css3_box-sizing.asp

        2
  •  1
  •   m_sultan    4 年前

    添加框大小:边框框到.box