一、盒模型

一个web页面由许多html元素组成,而每一个html元素都可以表示为一个矩形的盒子,CSS盒模型正是描述这些矩形盒子的存在。

MDN的描述:

When laying out a document, the browser's rendering engine represents each element as a rectangular box according to the standard CSS basic box model. CSS determines the size, position, and properties (color, background, border size, etc.) of these boxes.

Every box is composed of four parts (or areas), defined by their respective edges: the content edgepadding edgeborder edge, and margin edge.

CSS盒模型有四条边:外边距边、边框边、内填充边、内容边(Content edge、Padding edge、Border edge和Margin edge),四条边由内到外把它划分为四个区域:内容区域、内边距区域、边框区域、外边距区域(Content area、Padding area、Border area和Margin area)。

  • 内容区域(content area )是包含元素真实内容的区域。
  • 内边距区域(padding area) 延伸到包围padding的边框。如果content area设置了背景、颜色或者图片,这些样式将会延伸到padding上。
  • 边框区域(border area )是包含边框的区域,扩展了内边距区域。
  • 外边距区域(margin area)用空白区域扩展边框区域,以分开相邻的元素。

通过CSS属性(width、height、padding、border和margin)来控制它们的尺寸。

二、box-sizing(css3属性)

1.box-sizing的值

1 /* 关键字 值 */
2 box-sizing: content-box;/*默认值*/
3 box-sizing: border-box;
4
5 /* 全局 值 */
6 box-sizing: inherit;
7 box-sizing: initial;
8 box-sizing: unset;

2.box-sizing的作用

box-sizing的作用就是告诉浏览器,使用的盒模型是W3C盒模型,还是IE盒模型。

a.当 box-sizing 的值为 content-box(默认值) 时,其尺寸计算公式为:

width = content-width;
height = content-height;

b.当 box-sizing 的值为 border-box 时,其尺寸计算公式为:

width = content-width   padding-left   padding-right   border-left-width   border-right-width;
height = content-height   padding-top   padding-bottom   border-top-height   border-bottom-height;

无论取何值,盒子尺寸是一样的,改变的是盒子的容量(盒子内部的width和height的计算方式)。

补充:IE6、7为W3C盒模型。

3.对于box-sizing属性值的选择

在项目里,究竟该使用哪种盒模型?我也不知道啊

在MDN上有这样一句话:

Some experts recommend that web developers should consider routinely applying box-sizing: border-box to all elements.

一些专家甚至建议所有的Web开发者们将所有的元素的 box-sizing 都设为 border-box。

Twitter的开源框架Bootstrap3就全局设置了box-sizing: border-box,由此可见IE盒模型的是比较受欢迎的。

补充:

W3C在CSS3中,加入了 calc() 函数。

CSS函数

calc()

可以用在任何一个需要

<length>

<frequency>

,

<angle>

<time>

<number>

、或

<integer>

的地方。有了

calc(),

你就可以通过计算来决定一个CSS属性的值了。

/* property: calc(expression) */
width: calc(100% - 80px);

使用 calc() 函数,我们可以在 content-box 里实现 border-box,相对的,在 border-box 里实现 content-box 也是可以的。

本文转载于:猿2048➝https://www.mk2048.com/blog/blog.php?id=hij20jaa&title=CSS 盒模型与box-sizing

CSS 盒模型与box-sizing相关推荐

  1. html5 box sizing,CSS 盒模型与box-sizing

    一.盒模型 一个web页面由许多html元素组成,而每一个html元素都可以表示为一个矩形的盒子,CSS盒模型正是描述这些矩形盒子的存在. MDN的描述: When laying out a docu ...

  2. css盒模型和元素绘制

    转自:http://www.mysjtu.com/page/M0/S438/438952.html 一.什么是css盒模型? W3C组织就建议把所有网页上的对象都放在一个盒(box)中,设计师可以通过 ...

  3. 深入理解CSS盒模型 - 程序猿的程 - 博客园

    深入理解CSS盒模型 本文是学习中传思客在慕课网开的课程<前端跳槽面试必备技巧>的学习笔记.课程地址:https://coding.imooc.com/class/evaluation/1 ...

  4. html盒子模型子元素怎么水平占满父元素_前端面试常考问题之css盒模型

    一.题目:谈一谈你对CSS盒模型的认识 专业的面试,一定会问 CSS 盒模型.对于这个题目,我们要回答一下几个方面: (1)基本概念:content.padding.margin. (2)标准盒模型. ...

  5. Css盒模型有哪几部分,标准盒模型和IE盒模型有哪些区别

    首先介绍Css的盒模型也就是标准盒模型(BOX Model) 包含了 内容(content) 内边距(padding) 边框(border) 外边框(margin) 这是大家经常用到的,也是现在的标准 ...

  6. 从零开始学前端 - 7. CSS盒模型 margin和padding详解

    作者: 她不美却常驻我心 博客地址: https://blog.csdn.net/qq_39506551 微信公众号:老王的前端分享 每篇文章纯属个人经验观点,如有错误疏漏欢迎指正.转载请附带作者信息 ...

  7. 尖刀出鞘的display常用属性及css盒模型深入研究

    一:diplay:inline-block 含义:指元素创建了一个行级的块级元素,该元素内部(内容)被格式化成一个块级元素,同时元素本身则被格式化成一个行内元素.更简单的说就是说inline-bloc ...

  8. CSS盒模型(详解)

    目录 前言 一.什么是CSS盒模型 二.标准模型+IE模型的区别 1.CSS如何设置两种盒模型 2.JS如何设置/获取盒模型对应宽高: 前言 什么是css,css有几种,让我带你来了解一下 一.什么是 ...

  9. css盒模型(css的两种盒模型:标准盒模型、怪异盒模型)和 css3指定盒子模型种类的box-sizing属性

    所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:外边距(margin ...

最新文章

  1. 虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
  2. 生存分析与R--转载
  3. “报复黑客”:可行的战略还是重大的风险?
  4. OPENCV-6 学习笔记
  5. caffe,deeplab,对Interp(差值)层的理解
  6. Kotlin——中级篇(二): 属性与字段详解
  7. PHP消息通信机制测试代码
  8. 基于递归寻找数组中的最大数字
  9. 21个最佳jQuery插件推荐
  10. java小游戏跳棋_Java跳棋小游戏源代码
  11. 十分钟读懂 黑客如何入侵Windows 操作系统
  12. C语言———求”完数“
  13. 关于table表格头部固定和列固定的方式
  14. 2021/9/2 BLE PRA 广播包
  15. java补空格_JAVA STRING 对象自动补齐空格
  16. c语言求根公式编程,c语言,求根公式
  17. linux下安装OpenOffice及使用java调用OpenOffice转换word、Excel为pdf并添加水印
  18. ChinaSkills技能大赛网络系统管理Debian模块(样题一)||Client配置
  19. 游览器、兼容(五大游览器内核)
  20. 7.20黄金多空依旧反复,原油依然窄幅震荡今日能否突破

热门文章

  1. 算法题:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串“12345”,则输出整数“12345”
  2. linux设置新硬盘权限,Linux 下挂载新硬盘以及更改为普通权限
  3. ltp-ddt eth_iperf_tcp iperf dualtest遇到的问题
  4. CMDB学习之三数据采集
  5. 洛谷P3857 [TJOI2008]彩灯(线性基)
  6. 如何开发一个可运维系统的一点体会
  7. class12_pack_grid_place 放置位置
  8. java项目中Classpath路径到底指的是哪里?
  9. Fragment 横竖屏切换问题
  10. 在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样?