前端面试题合集 CSS篇---盒模型超详细版!!!

507 阅读3分钟

前端面试题合集 CSS篇---盒模型超详细版!!!

image.png

一、什么是盒模型?

当对一个文档进行布局(layout)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box)(通俗来说就是 在标准流布局下,页面是由一个个盒子自上而下排列的(对于块级元素而言)
一个盒子由四部分组成: content 、 padding 、 border 、 margin (如下图所示:蓝色区域是内容)
image.png

  • 内容(content) :元素的宽度和高度,即widthheight属性所指定的值。
  • 内边距(padding) :元素内容和边框之间的空间。
  • 边框(border) :围绕元素内容和内边距的边框。
  • 外边距(margin) :元素与其他元素之间的外部空间。

二、盒模型分类(W3C 标准盒子模型 、IE 怪异盒子模型)

1. 标准盒模型(W3C盒模型)

在标准盒子模型中,一个元素的总宽度和总高度由内容(content)宽高、内边距(padding)、边框(border)和外边距(margin)共同决定。
image.png

盒子总宽度 = width + padding + border + margin
盒子总高度 = height + padding + border + margin

速记:标准盒模型 width/height只是内容区域,不包含padding和border的值!!!

2. 怪异盒模型(IE盒模型)

怪异模式是IE浏览器特有的盒子模型。在怪异盒子模型中,元素宽度和高度属性(width/height)包含了内容(content)、内边距(padding)和边框(border)。即,一个盒的总宽高 = 元素的width + margin

image.png
盒子总宽度 = width(因为width中包含了padding+border) + margin
盒子总高度 = height(因为height中包含了padding+border) + margin

速记:怪异盒模型 width/height包含padding和border的值!!!

三、Box-sizing属性

1. 作用:指定元素的盒模型计算方式,从而改变元素的总尺寸计算方式。它允许开发者选择使用标准盒模型还是怪异盒模型。

2. 取值 box-sizing: content-box|border-box|inherit:

  • content-box 默认值,元素的 width/height 不包含padding,border。相当于设置的宽高只是内容的宽高,与标准盒子模型表现一致
  • border-box 元素的 width/height 包含 padding,border。相当于设置的宽高已经包含了padding和border,与怪异盒子模型表现一致
  • inherit 指定 box-sizing 属性的值,从父元素继承

四、代码演示

1. 设置为怪异盒模型 box-sizing: border-box; 盒子总宽度为200px
<style>
  .box {
      width: 200px;
      height: 100px;
      padding: 20px;
      border: 2px solid red;
      background-color: rgb(114, 177, 240);
       /* 怪异盒模型 */
      box-sizing: border-box;
    }
</style>

<div class="box">
盒子模型
</div>

image.png

2. 设置为标准盒模型 box-sizing: content-box; 盒子总宽度为244px
<style>
  .box {
      width: 200px;
      height: 100px;
      padding: 20px;
      border: 2px solid red;
      background-color: rgb(114, 177, 240);
       /* 怪异盒模型 */
      box-sizing: border-box;
    }
</style>

<div class="box">
盒子模型
</div>

image.png image.png

文章结束啦!本合集会汇总一系列CSS基础面试题,希望能给你们带来帮助,同时也欢迎各位指正以及技术交流!关注我不迷路!