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

相关推荐
蓝婷儿3 小时前
第二章:CSS秘典 · 色彩与布局的力量
前端·css
美酒没故事°16 小时前
纯css实现蜂窝效果
前端·javascript·css
微刻时光21 小时前
影刀RPA开发-CSS选择器介绍
css·python·低代码·自动化·rpa·影刀rpa·影刀实战
码农黛兮_461 天前
HTML、CSS 和 JavaScript 基础知识点
javascript·css·html
读心悦1 天前
CSS结构性伪类、UI伪类与动态伪类全解析:从文档结构到交互状态的精准选择
css·ui·交互
码农黛兮_462 天前
CSS3 基础知识、原理及与CSS的区别
前端·css·css3
(((φ(◎ロ◎;)φ)))牵丝戏安2 天前
根据输入的数据渲染柱形图
前端·css·css3·js
逍遥德2 天前
CSS可以继承的样式汇总
前端·css·ui
读心悦2 天前
CSS3 选择器完全指南:从基础到高级的元素定位技术
前端·css·css3
_龙衣2 天前
将 swagger 接口导入 apifox 查看及调试
前端·javascript·css·vue.js·css3