你不知道的css——1. 外在盒子、内在盒子,宽度和高度的计算,box-sizing属性

简介: 你不知道的css——1. 外在盒子、内在盒子,宽度和高度的计算,box-sizing属性

每个元素都有两个盒子,外在盒子和内在盒子。

  • 外在盒子负责元素是可以一行显示,还是只能换行显示;
  • 内在盒子负责宽高、内容呈现

“内联盒子” ——无法定义宽高,多个内联盒子会在一行显示,

“块级盒子” ——可以定义宽高,每个块级盒子都独占一行,多个块级盒子只能换行显示,

“块级容器盒子” —— 可以定义宽高,多个块级容器盒子会在一行显示

  • display:block 的元素由外在的“块级盒子”和内在的“块级容器盒子”组成。
  • display:inline-block 的元素由外在的“内联盒子”和内在的“块级容器盒子”组成
  • display:inline 的元素内外都是“内联盒子”
  • display:inline-table 的元素由外在的“内联盒子”和内在的“table盒子”组成,得到一个可以和文字在一行显示的表格

 

内在盒子并不是一个简单的矩形,而是由content,padding,border,margin(透明)四层嵌套构成的。

“内在盒子”又被分成了4个盒子,分别是content box、padding box、border box和margin box

  • margin是透明的,无法设置背景,垂直方向的两个元素的margin还存在合并的情况(margin的塌陷)
  • width属性默认作用于content box上,所以元素最终的宽度offsetWidth = width + 2 *padding + 2 *border
  • height属性默认也作用于content box上,所以元素最终的高度offsetHeight = height+ 2 *padding + 2 *border

box-sizing 属性

box-sizing 属性可以改变width和height的作用对象,默认box-sizing 属性的值为content-box


通过设置 box-sizing: border-box; 可以让width和height作用于border box上,此时元素最终的宽度offsetWidth = width,元素最终的高度offsetHeight = height

box-sizing 属性被发明出来最大的初衷是解决替换元素宽度自适应问题(替换元素的尺寸由内部元素决定,且无论其display属性值是inline还是block,常见的替换元素有 input, textarea, img, video, object )

所以,通常我们会在全局样式中添加下方代码

input, textarea, img, video, object {
  box-sizing: border-box;
}

目录
相关文章
|
3天前
|
Web App开发 前端开发 JavaScript
css【详解】—— content属性(含css计数器)
css【详解】—— content属性(含css计数器)
7 3
|
3天前
|
前端开发 容器
你不知道的css——3. 内外尺寸、流宽度、格式化宽度、格式化高度、首选最小宽度、包裹性、最大宽度
你不知道的css——3. 内外尺寸、流宽度、格式化宽度、格式化高度、首选最小宽度、包裹性、最大宽度
6 2
|
3天前
|
前端开发
css 实用技巧 —— 使用border属性绘图(三角形、梯形、对话框尖角)
css 实用技巧 —— 使用border属性绘图(三角形、梯形、对话框尖角)
6 1
|
3天前
|
前端开发 容器
css【详解】—— margin属性(含margin百分比值,margin负值,margin合并,margin:auto,margin失效)
css【详解】—— margin属性(含margin百分比值,margin负值,margin合并,margin:auto,margin失效)
7 1
|
3天前
|
前端开发
设计--字体样式---斜体,CSS字体属性用法
设计--字体样式---斜体,CSS字体属性用法
|
3天前
|
前端开发
前端 CSS 经典:mix-blend-mode 属性
前端 CSS 经典:mix-blend-mode 属性
6 0
|
3天前
|
前端开发
前端 CSS 经典:backface-visibility 属性
前端 CSS 经典:backface-visibility 属性
7 0
|
前端开发 容器
CSS 实现图片宽度自适应
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82876666 ...
2996 0
|
2天前
|
前端开发 JavaScript
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
|
9天前
|
安全 JavaScript
旋转木马轮播图 html+css+js
旋转木马轮播图 html+css+js