十一、理解不了盒子模型就用联想记忆法轻松解决(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% 之后,再去调试,就会发现设置的边框和显示的数值是一致的:

相关推荐
小飞大王6661 小时前
CSS基础知识
前端·css
摇滚侠4 小时前
css 设置边框
前端·css
陈振wx:zchen20087 小时前
CSS2-3
css·css3·css2
蜗牛攻城狮7 小时前
CSS中的 `dvh` 与 `vh`: 深入理解视口单位
前端·css
a1117768 小时前
电流卡片特效(html网页 开源)
javascript·css·css3
干前端1 天前
Vue3 组件库工程化实战:BEM 命名规范与 useNamespace 深度解析
前端·css
RFCEO1 天前
前端编程 课程十四、:CSS核心基础2:选择器优先级 + 伪类选择器(解决冲突+交互效果)
前端·css·交互·css选择器优先级判断规则详解·css important使用·css链接伪类lvha顺序·实现悬浮交互效果
小满zs1 天前
Next.js第二十五章(CSS方案)
开发语言·javascript·css
红色的小鳄鱼1 天前
Vue 监视属性 (watch) 超全解析:Vue2 Vue3
前端·javascript·css·vue.js·前端框架·html5
Hacker_Z&Q2 天前
CSS 笔记2 (属性)
前端·css·笔记