深入解读JavaScript

CSS中的盒子模型

2019-08-17  本文已影响0人  悟C

盒模型是CSS中的核心的概念,描述了元素如何显示。

盒模型由:元素的内容 + 内边距(padding) + 边框(border) + 外边距(margin)组成。

有一个与边框类似的属性,轮廓线(outline),这个属性可以在边框属性外围画一条线,但它不会影响盒子的宽度和高度。

盒子大小以宽度为例子:width + padding + border + margin,但我们比较关注的是元素可渲染内容区的宽度和高度。我们在给一个元素添加padding和border并不会影响内容盒子的大小,但会导致整个元素盒子的宽度变大。

简单的说padding和border的设置会影响元素的width的计算

举个例子:

  <div class="group">
    <div class="block red"></div>
    <div class="block green"></div>
    <div class="block gray"></div>
  </div>

    .group {
      /* background-color: blue; */
      overflow: hidden;
    }
    .block {
      width: 33.33%;
      padding: 20px;
      float: left;
      /* box-sizing: border-box; */
    }
    .red {
      background-color: red;
    }
    .green {
      background-color: green;
    }
    .gray {
      background-color: gray;
    }

如上我们并排了三个宽度为33.33%的块,给每个块添加了padding,因为box-sizing默认是conten-box的计算方式,这样width实际上是父容器的33.33%+padding,结果就是如下:


image.png

然而我们期望是如下所示的效果:


image.png

这时候就可以给.block元素添加box-sizing:border-box; 让width=内容+padding+border。

以上就是一个盒子模型和盒子大小的计算方式。

上一篇下一篇

猜你喜欢

热点阅读