width: 100% 是什么意思?

351 阅读1分钟

width: 100% 是什么意思?第一反应就是父元素宽度的 100%,这里说的父元素的宽度包括父元素的 padding 和 border 吗?先说结论:不包括。接下来,看例子:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .wrap1{
      width: 300px;
      padding: 20px;
      box-sizing: border-box;
      background-color: black;
    }
    .wrap2{
      width: 300px;
      padding: 20px;
      box-sizing: content-box;
      background-color: black;
      margin-top: 30px;
    }
    .inner{
      width: 100%;
      height: 30px;
      background-color: red;
    }
  </style>
</head>
<body>
  <div class="wrap1">
    <div class="inner"></div>
  </div>
  <div class="wrap2">
    <div class="inner"></div>
  </div>
</body>
</html>
父元素子元素
父元素:box-szing: border-boximage.pngimage.png
父元素:box-szing: content-boximage.pngimage.png

可以看到无论父元素的 box-szing 是 border-box 还是 content-box,子元素设置 100% 的含义是父元素的宽度的 100%(不包括父元素的 padding 和 border的宽度)

实际用途

搞清楚 width:100% 的含义后,平时在写页面布局的时候,一般会遇到卡片或者是 h5 页面中会留着左右间距,这个时候就可以让父元素设置 padding:XX; 然后子元素大胆使用 width:100%

image.png