结构伪类选择器:
作用与优势:
- 作用:根据元素在HTML中的结构关系查找元素
- 优势:减少对于HTML中类的依赖,有利于保持代码整洁
- 场景:常用于查找某父级选择器中的子元素
首先输入”ul.box>li{$}*10” 构建结构:
选择父元素里边的第一个子元素
.box li:first-child
选择父元素里边的最后一个子元素
.box li:last-child
选择父元素里边的第n个子元素
.box li:nth-child(2)
选择父元素里边倒数第n个子元素
.box li:nth-last-child(3)
.box li:nth-child(even/2n)
偶数选择器输入方式
.box li:nth-child(odd/2n+1/2n-1)
奇数选择器输入方式
.box li:nth-child(n)
父元素中第n个子元素''
.box li:nth-child(2n)
父元素中第2n个子元素
.box li:nth-child(3n)
3的倍数项的子元素
.box li:nth-child(-n + i)
n + i 就是选择父元素里边前i项子元素
.box li:nth-child(n + i)
n + i 就是选择父元素里边第i项到最后一个子元素
注意 nth-child() 这种写法,是将父元素里边所有的子元素进行排序,不管标签类型,是第几个就写第几个
.box h2:nth-child(2)
.box a:nth-child(4)
找到父元素的第1个子元素li标签,再找到li里边的a标签
.box li:nth-child(1) a
nth-of-type结构伪类选择器
nth-of-type 选择的是父元素里边同类型的第n个子元素
区别:
• :nth-child → 直接在所有孩子中数个数
• :nth-of-type → 先通过该 类型 找到符合的一堆子元素,然后在这一堆子元素中数个数
伪元素
伪元素相当于行内元素(span), content为必写属性,不写伪元素不生效::before 在父元素的内容最前添加一个伪元素
- ::after 在父元素的内容最后添加一个伪元素
必须设置content属性才能生效
2. 伪元素默认是行内元素
标准流
- 又称文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以何种方式排列元素
常见标准流排版规则:
- 块级元素:从上往下,垂直布局,独占一行
- 行内元素 或 行内块元素:从左往右,水平布局,空间不够自动折行
浮动
- 让垂直布局的盒子变成水平布局,如:一个在左,一个在右
- float: left; 左浮动
- float: right; 右浮动
浮动的特点
1.浮动元素会脱离标准流(简称:脱标),在标准流中不占位置
2. 浮动元素比标准流高半个级别,可以覆盖标准流中的元素
3. 浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
4. 浮动元素会受到上面标准流元素的影响
5. 浮动元素有特殊的显示效果,浮动的元素顶对齐,代码换行没有缝隙
6. 一行可以显示多个, 可以设置宽高
7.浮动可以使多个(块元素)元素在一行上显示, 紧贴着上一个同方向浮动元素的边缘显示
8.浮动只能影响下边的元素,不会影响上边标准流的块元素
9.浮动的子元素宽度相加超过了父元素的宽度,后边的子元素会掉下来(折行)
10.浮动元素只能浮动到父元素的左边和右边,受到父元素内边距的约束
11.块元素脱标后不会默认父元素的宽度了,默认宽高为0,内容会撑开宽高
, 行内元素脱标之后,可以设置宽高了
浮动的元素不能通过text-align:center或者margin:0 auto,让浮动元素本身水平居中 当文字、行内元素、行内块元素、遇到了浮动元素,不会跑到浮动元素的底下,只会环绕它
块元素浮动之后,不能使用margin: 0 auto来居中啦
行内元素,行内块元素,浮动之后,给他的父元素设置text-align:center 居中无效
清除浮动
清除浮动是解决外边父元素不能设置高度, 里边子元素浮动之后撑不开父元素高度的问题
- 额外标签法, 在最后一个浮动元素的后边,添加块元素,使用clear:both清除浮动
2.单位元素清除浮动:给浮动元素父元素(亲爹)调用clearfix来请浮动
3. 双伪元素清除浮动 给浮动元素的父元素调用clearfix清除浮动
4. 给浮动元素的父元素(亲爹)使用overflow:hidden清除浮动
- 额外标签法, 在最后一个浮动元素的后边,添加块元素,使用clear:both清除浮动