前端学习随笔6 盒模型及相关属性

注:测试浏览器版本号——chrome 75.0.3770.80;opera 60.0.3255.109;firefox 67.0;ie 11。

一 心得体会

最大的收获是第一次知道了outline(轮廓)这个属性,之前都没有使用过,所以没有注意到这个属性,还有就是对(display)显示类型有了一个新的认识,除了常用的一些显示类型,还有很多其他独特的显示类型,这为我们页面布局提供了很多新的选择。
在这里建议初学者一定要把css文档从头到尾完整的看一遍,有一个初步的印象,如果有时间可以把每个属性及属性值都实验一遍,加深印象。

二 相关知识点

1 盒模型的概念

盒模型分为标准盒模型和怪异盒模型两种,其宽高取值方式如下图,第一张为标准盒模型,第二张为怪异盒模型。

标准盒模型
怪异盒模型

在测试的浏览器中均默认的是标准盒模型,较为统一。标准盒模型和怪异盒模型均可以通过box-sizing来设置,语法如下:

box-sizing: border-box(怪异盒模型) | content-box(标准盒模型)

2.盒子的溢出

当盒子尺寸固定是,里面内容可能会超出设置的大小,那么超出部分该如何显示呢?这里我们需要引入overflow属性,其语法为:

overflow: auto | hidden | visible | scroll

取值含义分别是:

  • auto: 由浏览器定夺,如果内容被修剪,就会显示滚动条
  • hidden:超出部分内容隐藏,无法查看
  • visible:超出部分不隐藏,显示在盒子外面
  • scoll:超出部分内容会隐藏,出现滚动条,通过滚动查看隐藏内容

3.盒子的背景剪裁

《CSS之圆角边框渐变的实现》中讲述的三个跟背景相关的属性background-origin,background-clip,background-size即为背景剪裁的要素,这里不重复叙述了。

4.盒子的轮廓

简单来讲,outline(轮廓)跟border(边框)属性及属性值都一样,我们可以理解成其是边框的外边框,下图所示的是轮廓盒边框的相对位置。

image.png

与border不同的是,outline不占位置,不影响布局。
注:outline在不同浏览器的层叠顺序不同,在chrome/firefox/opera中前面的outline会遮挡后面的内容(如果outline的宽度够遮挡),而在ie中前面的outline会在后面的内容下面(如果outline的宽度够遮挡)。有兴趣的可以试验一下。

5.盒子的显示类型

display属性控制着盒子的显示类型,其部分属性值为:

display: none | block | inline | inline-block | flex | grid |table

取值含义分别是:

  • none —— 隐藏元素,并从布局中删除元素,屏幕阅读技术无法访问
  • block —— 块元素尝试获取整个宽度,并在布局中开始新行
  • inline —— 内联元素与其他内联元素保持在同一行,不会开始新行,设置宽高无效
  • inline-block —— 内联块元素在外部视为内联元素,但在内部属于块元素,可以设置宽高
  • flex —— 弹性布局脱离块元素和内联元素的约束,属于一种全新的布局,很重要,后面单独讲述,详细内容还可以参考阮一峰老师的《Flex 布局教程》
  • grid —— 网格布局,一种不是很常见的布局方式,后面单独讲述
  • table —— 是元素具备表格的特征,避免滥用表格

注:display还有很多其他不常用的属性值,有时间可以自己研究一下

你可能感兴趣的:(前端学习随笔6 盒模型及相关属性)