美文网首页
CSS 盒模型

CSS 盒模型

作者: 可以秀但没必要 | 来源:发表于2020-06-10 14:57 被阅读0次

一、概念(以下来源MDN)

CSS 基础框盒模型:CSS 规范的一个模块,它定义了一种长方形的盒子——包括它们各自的内边距(padding)与外边距(margin ),并根据视觉格式化模型来生成元素,对其进行布置、编排、布局(lay out)。常被直译为盒子模型、盒模型或框模型。

CSS 视觉格式化模型:用来处理和在视觉媒体上显示文档时使用的计算规则

二、什么是盒子模型

1.它是一种CSS规范,名称为CSS basic box model,被翻译成盒子模型(在CSS1它的名字叫Formatting model,CSS2的初版定义叫Box model,目前叫CSS basic box model,大概意思就是本来没有盒子模型这个词,叫的人多了规范就变了。)
2.它的具体内容见CSS 基础框盒模型介绍
3.内容简述:

  • 它将HTML中的元素用矩形盒子表示
  • 每个盒子由四个部分组成(content、border、margin、padding)


    image.png

三、标准盒模型与IE盒模型

盒子模型由四个部分组成,每个部分都有其属性,其中内容区有三个属性,width、height 和overflow。不同的盒模型分歧出现在width、height的含义上面。

3.1 标准盒模型

标准盒模型是指W3C为CSS语言推荐的标准方式,参考前面2点。
标准盒模型坚持认定width、height就应该表示的是内容区的属性,因此浏览器中真实所占的宽度和高度为padding + border + width

测试代码如下所示:

    <div style="background-color:green;display:inline-block;
    margin: 10px;
    padding: 20px;
    border: 5px solid red;
    width: 100px;height:100px;">内容区域</div>

示例图如下图所示:


浏览器中表现
盒子模型图

由上可见,width、height就是内容区的宽高,真实高宽变成了150。

3.2 IE盒模型

在IE6之前的IE浏览器都是默认使用IE盒模型,IE6及其以上的版本在标准兼容模式下使用的是标准盒模型,但是仍然支持IE盒模型。
IE盒模型与标准盒模型的区别就是它坚持认为width、height指的是盒子的宽度高度(即属性设置的浏览器中的真实宽高)。用过box-sizing:border-box;应该会有体会,这种属性对于开发者来说还是很方便的。

在IE盒模型下,盒子的表现如下图:


image.png

可以看见内容区被压缩了,此时浏览器中真实宽高=(width,height)正好是我们设置的,很多情况下,我们不会关心内容区域的宽高,只会关心元素在浏览器中的宽高。如果压缩之后内容区域不够显示内容怎么办呢?这时可以设置overflow来调整。

四、两种盒模型的切换

CSS中的 box-sizing 属性定义了 user agent应该如何计算一个元素的总宽度和总高度。

  • border-box (IE盒模型)
  • content-box (标准盒模型)

五、补充

外边距也属于盒子的一部分,但是宽度和高度计算是不包括外边距的(margin)

六、总结

  1. 盒子模型是一种CSS规范
  2. 盒子模型规定一个元素由4个部分组成(content、border、margin、padding)
  3. 有两种盒模型,在CSS3中可以通过box-sizing属性自由设置
  4. 不同盒模型的区别在于width、height属性的计算方式上、标准盒模型认为width、height是内容区的,但是IE盒模型认为是指盒子的。

参考

CSS 基础框盒模型
CSS 基础框盒模型介绍
视觉格式化模型
百度百科-CSS盒子模型
百科-IE盒模型缺陷
CSS box-sizing

相关文章

  • 6.3盒模式

    盒模型 什么是CSS盒模型? CSS盒模型仅仅是一个形象的比喻, HTML中的标签都是盒模型 CSS盒模型指那些可...

  • 盒模型

    什么是CSS盒模型? CSS盒模型仅仅是一个形象的比喻, HTML中的标签都是盒模型 CSS盒模型指那些可以设置宽...

  • CSS盒模型

    CSS盒模型的认识 标准模型 和 IE模型 CSS盒模型包括content,padding,border,marg...

  • Css盒模型以及Bfc的应用场景

    CSS盒模型: 一 基本概念: 分为标准模型+IE模型。 二 标准盒模型和IE盒模型的区别。CSS如何设置这两种盒...

  • CSS 盒模型总结

    概念 CSS盒模型 包含:content padding border margin 类型 CSS盒模型分为 标准...

  • HTML/CSS 04-css盒模型

    css盒模型的组成部分,css margin,css padding,css盒子的实际大小 目录: 一、盒模型的组...

  • html+css 12

    开篇十二章 1、css布局模型 清楚了CSS 盒模型的基本概念、 盒模型类型,...

  • 1.CSS盒模型

    css盒模型 css中,Box Model叫盒子模型;盒模型规定了 元素内容(content)、内边距(paddi...

  • 前端知识点之谈一谈css盒模型、BFC

    知识点:--css 盒模型--标准模型和 IE 模型--BFC 谈一谈 css 盒模型、BFC 是面试中常见的问题...

  • CSS盒模型作业

    前言:本章主要讲CSS盒模型,CSS盒模型是CSS中most import 的一个概念,如果我们想学好CSS,那么...

网友评论

      本文标题:CSS 盒模型

      本文链接:https://www.haomeiwen.com/subject/evyutktx.html