html页面中任何元素都是一个盒子(box)。学好css的基础是理解盒模型的工作原理。
盒子的大小可以有两种控制方式:
width
height
min-content
max-content
请看下面的例子,看看这两种方式有什么区别。
上例中,p0没有设置width和height,p0是一个block,所以它会占满父元素的整个内容宽度。p1和p2通过设置width: max-content、width: min-content,它们的宽度由内容决定。p3设置宽度高度为固定尺寸,此时内容过多导致overflow出现。
width: max-content
width: min-content
overflow
盒模型由图中几个区域组成,每个区域都有不同的作用。
盒模型组成:Margin box(外边距)、Border box(边框)、Padding box(内边距)、Content box(内容)
background
overflow: scroll
border
margin
outline
box-shadow
在谷歌浏览器中,点击F12打开开发者工具,选中一个元素,可以在下方样式看到该元素的盒子各区域尺寸详情。
通常,浏览器会给我们的html页面设置一个默认样式(user agent style)。例如,一个段落p的display为block,而span的display为inline,这些都是默认的样式。我们可以通过设置css来覆盖这些默认样式。
p
display
block
span
inline
box-sizing定义了如何去计算一个元素的高度和宽度。当你设置了元素的width和height尺寸时,默认情况下设置的是content区域的尺寸,这意味着盒子最终的大小为会加上borderSize和paddingSize,而不是你设置的尺寸。我们可以设置box-sizing为border-box, 覆盖这一默认行为,此时我们设置的width和height尺寸就是盒子最终的尺寸(包括边框和内边距)。请看下面的例子:
box-sizing
border-box
p1和p2的box-sizing属性不同,即使我们设置的width、height和padding大小一样,最终盒子的大小也不一样。
padding
box-sizing可以设置如下两种值:
content-box
谷歌learn css: https://web.dev/learn/css/box-model/
MDN: Web Docs
(完)
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8