注:测试浏览器版本号——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还有很多其他不常用的属性值,有时间可以自己研究一下
网友评论