十一、理解不了盒子模型就用联想记忆法轻松解决(1)

盒子模型

浏览器在渲染网页时,会将网页中的元素看作是一个个的矩形区域,我们也将其称为盒子

页面中的每一个标签,都可以看做是一个盒子,通过盒子的视角更方便进行布局

CSS 中规定的盒子是由 内容区域 content内边距区域 padding边框区域 border外边距区域 margin 组成的,这就是盒子模型

联想记忆

我们可以把盒子模型联想成快递盒,快递盒子里面装的 东西 就是盒子的 内容 content ,东西与快递盒之间的缝隙就是盒子的 内边距 padding ,快递盒的 厚度 就是盒子的 边框 border 的大小,快递盒与快递盒之间的 距离 就是盒子的 外边距 margin

下面有一张比较形象的网图可以参考:

以 div 盒子为例,看一下标签的盒子模型:

盒子内容区域的宽度和高度

属性 widthheight 设置的宽高样式,默认设置的是盒子的 内容区域 的大小

盒子边框

可以给盒子的边框设置粗细(边框宽度)、样式、颜色效果:

  • 边框粗细:border-width
  • 边框样式:border-style(solid 实线、dashed 虚线、dotted 点线)
  • 边框颜色:border-color

上面的属性写法是单个样式,一般情况下,最常用的是 连写形式 ,例如:border: 1px solid red;

连写形式就是单个属性取值的连写,各取值之间以 空格 隔开,可以用 bd + 回车键 快速设置默认的盒子边框,再根据自己的需要修改。

上边设置的样式,是给矩形盒子的四条边都设置了相同的样式,有时我们只需要设置其中一条边就可以了,所以我们还可以按照 单方向设置 ,只给盒子指定的某个方向设置单独的边框样式。

比如说,我们要给 150 X 150 的盒子的上边框设置 宽 2px 的黑色虚线 边框:

加深对盒子模型的理解

有这样一个 需求:盒子尺寸 300 X 300,背景浅蓝色,边框 5px 实线 粉色,该如何实现?

问题:了解了盒子的构成,就会知道,我们设置的 width 和 height 是内容的宽高,而设置的边框会撑大盒子 ,300 X 300 是整个盒子的尺寸,那么就会有一个问题:盒子被撑大之后如何能满足现有需求呢?

解决 : 我们需要了解盒子的实际大小该如何计算,然后再手动减去多余的(手动内减),现阶段,盒子大小的初级计算公式:

  • 盒子宽度 = 左边框 + 内容的宽度 + 右边框
  • 盒子高度 = 上边框 + 内容的高度 + 下边框

代码实现

新问题 - 缩放问题

在调试过程中,我又发现了一个新问题,就是 DPI 问题(DPI 是 dots per inch 的缩写,意思是每英寸的像素数),在电脑的设置中,我发现自己电脑的缩放比是 125% ,这是 W10 系统推荐的缩放,若是不改变缩放,就会出现设置的边框与浏览器显示的数值不一样:

将缩放设置为 100% 之后,再去调试,就会发现设置的边框和显示的数值是一致的:

相关推荐
Raytheon_code9 小时前
从零到一:我用微信小程序做了一款串珠DIY定制工具
css·微信小程序·html5·ai编程
摇滚侠20 小时前
11 空间转换 前端 Web 开发 HTML5 + CSS3 + 移动 web 视频教程,前端web入门首选黑马程序员
前端·css·html·css3·html5
小李子呢021121 小时前
前端八股CSS---CSS布局
css·html·css3
水云桐程序员2 天前
前端教程官方文档|HTML、CSS、JavaScript教程官方文档
前端·javascript·css·html·学习方法
JackieDYH2 天前
CSS Flexbox 与 Grid 的默认行为-布局的底层机制
前端·css·html
小宋的踩坑日记2 天前
全网最全!Tailwind/Unocss 类名速查表,前端开发必备神器!
css·小程序·前端框架
里欧跑得慢2 天前
CSS 嵌套:编写更优雅的样式代码
前端·css·flutter·web
里欧跑得慢2 天前
CSS变量与自定义属性详解
前端·css·flutter·web
yanchGod2 天前
CSS page-break-before 属性详解:控制打印分页的艺术
前端·javascript·css·html·css3·html5