教你5分钟搞懂css里面的盒模型

简介: 教你5分钟搞懂css里面的盒模型什么是盒模型在html中,我们写的标签,很多都是有盒模型的,也就是在css里面,我们为这些标签设置样式的时候,实际上就是为这些盒子设置样式。

教你5分钟搞懂css里面的盒模型

什么是盒模型

在html中,我们写的标签,很多都是有盒模型的,也就是在css里面,我们为这些标签设置样式的时候,实际上就是为这些盒子设置样式。

可能这样不是很好理解,我们来看一个例子:

在日常生活中,我们经常使用一些盒子来装东西,此时我们将盒子想象成从上往下看的二维平面:

那么盒子将会包含以下东西:

  • 盒子里面装的东西【内容】
  • 盒子内容与盒子包装的距离【内边距】
  • 盒子的厚度:【边框】
  • 盒子距离其他东西的距离【外边距】

css里面的盒模型就包含内容content,内边距padding,边框border,外边距margin如下图所示:

网络异常,图片无法展示
|


  • 白色框框里面的就是内容content
  • 绿色箭头的距离就是内边距padding
  • 再往外的黑色边框就是盒子的边框border
  • 最外面的的蓝色箭头就是外边距margin

盒模型的分类

在如今css的标准里面,盒模型有两种,一种是标准盒模型,一种是IE盒模型。

css默认使用的是ie盒模型,这就导致了一些初学者在设置css样式的时候出现一些出乎意料的问题。

至于是什么问题呢?

接着往下看。

ie盒模型

首先我们来讲讲ie盒模型是怎么样子的。

我们在ie盒模型中,设置的宽度以及高度,只是包含了内容content的宽度以及高度,不包含内边距padding以及边框border的宽度以及高度。

.box{
    width: 100px;
    height: 100px;
    padding: 10px;
    border: 1px solid #000;
    margin: 19px;
}
复制代码

网络异常,图片无法展示
|


在浏览器开发者工具中,我们可以看到,该盒子的内容内容长宽都为100px,但是盒子的实际长宽为130px,这就是因为ie盒模型长宽只包含内容的长宽。

此时我们设置的长宽度计算方式为:

width = content.width

height = content.height

这时候,问题就来了:

一些初学者明明只给盒子设置了100px的宽度,为什么盒子的实际宽度却是130px呢?

看来上面的例子,就很明了了,这就是ie盒子长宽不包含内边距以及边框的宽度导致的问题。

标准盒模型

标准盒模型,就是我们常说的盒模型,它的长宽包含了内容content,内边距padding,边框border的宽度以及高度。

注意:

  • 标准盒模型并不包含外边距margin的宽度以及高度。
  • 在使用标准盒模型之前,我们需要通过box-sizing: border-box;来设置盒模型的类型。
.borderBox {
            box-sizing: border-box;
            width: 100px;
            height: 100px;
            padding: 10px;
            border: 1px solid #000;
            margin: 19px;
        }
复制代码

网络异常,图片无法展示
|


在上面的图片我们可以看到,盒子里面的内容明显比ie盒模型的内容要小,这是因为标准盒模型的长宽包含了内容content,内边距padding,边框border的宽度以及高度。

此时的我们设置的长宽度计算方式为:

width = content.width + padding.width + border.width

height = content.height + padding.height + border.height


相关文章
|
6月前
|
前端开发
CSS语言的盒模型
CSS语言的盒模型
|
6月前
|
前端开发 JavaScript Java
【面试题】面试官:说说你对 CSS 盒模型的理解
【面试题】面试官:说说你对 CSS 盒模型的理解
|
29天前
|
前端开发 UED
CSS 盒模型
CSS盒模型是网页设计中一个重要的概念,它定义了HTML元素如何在页面上呈现及其相互关系。每个HTML元素都被视为一个矩形框,此模型涉及内容区、内边距、边框和外边距四个部分,通过控制这些部分的样式和布局,设计师可以实现多样化的页面效果。
|
3月前
|
前端开发 容器
【CSS Flexbox 探秘】弹性盒模型:揭秘网页布局的终极神器!
【8月更文挑战第25天】Flexbox 是 CSS3 中的关键特性,为网页设计提供了强大的布局能力。本文通过问答形式全面解析 Flexbox 的核心概念与属性,包括容器与项目属性,并通过示例演示如何使用 Flexbox 实现水平与垂直居中、等间距布局及响应式设计。相较于传统布局方法,Flexbox 更加灵活且简化了样式设置,同时在现代浏览器中拥有良好的支持度。掌握 Flexbox 对于提升网页布局效率至关重要。
59 1
|
3月前
|
容器 C# 开发者
XAML语言大揭秘:WPF标记的魅力所在,让你轻松实现界面与逻辑分离,告别复杂代码!
【8月更文挑战第31天】XAML提供了一种直观且易于维护的界面设计方式,使得开发者可以专注于逻辑和业务代码的编写,而无需关心界面细节。通过数据绑定、布局管理和动画效果等特性,XAML可以实现丰富的界面交互和视觉效果。在实际开发过程中,开发者应根据具体需求选择合适的技术方案,以确保应用程序能够满足用户的需求。希望本文的内容能够帮助您在WPF应用程序开发中更好地利用XAML语言。
41 0
|
3月前
|
前端开发
CSS盒模型揭秘:打造精美网页的不二法门
CSS盒模型揭秘:打造精美网页的不二法门
|
4月前
|
前端开发 C++
CSS【详解】 标准盒模型 VS IE 盒模型
CSS【详解】 标准盒模型 VS IE 盒模型
45 0
|
5月前
|
Web App开发 前端开发 编译器
CSS3私有前缀+新增盒模型相关属性(如果想知道CSS3私有前缀、新增盒模型相关属性的知识点,那么只看这一篇就足够了!)
CSS3私有前缀+新增盒模型相关属性(如果想知道CSS3私有前缀、新增盒模型相关属性的知识点,那么只看这一篇就足够了!)
|
5月前
|
前端开发
CSS基础-盒模型:边框、内边距、外边距
【6月更文挑战第8天】Web设计中的盒模型由内容区域、内边距、边框和外边距组成,是理解页面布局的关键。内容区域包含实际内容,内边距提供间隔,边框定义元素边界,外边距控制元素间距。常见易错点包括边框宽度计算、外边距折叠和盒模型理解不透彻。通过实践和媒体查询可解决响应式设计挑战,`border-radius`可能导致圆角问题。理解盒模型并灵活应用能创建多样化布局。
80 6
|
6月前
|
前端开发 开发者
CSS盒模型
【5月更文挑战第24天】CSS盒模型
45 3