提示:文章根据学习情况进行记录
目录
一、结构伪类选择器
目标:能够使用结构伪类选择器在HTML中定位元素
1.作用与优势:
1.作用:根据元素在HTML中的结构关系查找元素
2.优势:减少对于HTML中类的依赖,有利于保持代码整洁
3. 场景:常用于查找某父级选择器中的子元素
2.选择器
代码试验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 选中第一个 */
/* li:first-child{
background-color: green;
} */
/* 选中最后一个 */
/* li:last-child{
background-color: blue;
} */
/* 选中第六个 */
/* li:nth-child(6){
background-color: red;
} */
/* 选中倒数第二个 */
li:nth-last-child(2){
background-color: pink;
}
</style>
</head>
<body>
<!-- ul>li{这是第$个li}*8 -->
<ul>
<li>这是第1个li</li>
<li>这是第2个li</li>
<li>这是第3个li</li>
<li>这是第4个li</li>
<li>这是第5个li</li>
<li>这是第6个li</li>
<li>这是第7个li</li>
<li>这是第8个li</li>
</ul>
</body>
</html>
3.注意点
1. n为:0、1、2、3、4、5、6、……
2. 通过n可以组成常见公式
代码试验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 偶数 */
/* li:nth-child(2n){
background-color: green;
} */
/* 奇数 */
/* li:nth-child(2n+1){
background-color: green;
} */
/* 前5个 */
/* li:nth-child(-n+5){
background-color: green;
} */
/* 4的倍数 */
li:nth-child(4n){
background-color: green;
}
</style>
</head>
<body>
<ul>
<li>这是第1个li</li>
<li>这是第2个li</li>
<li>这是第3个li</li>
<li>这是第4个li</li>
<li>这是第5个li</li>
<li>这是第6个li</li>
<li>这是第7个li</li>
<li>这是第8个li</li>
</ul>
</body>
</html>
二、伪元素
目标:
能够使用
伪元素
在网页中创建内容
➢
伪元素:
一般页面中的非主体内容可以使用伪元素
➢
区别:
1. 元素:HTML 设置的标签
2. 伪元素:由 CSS 模拟出的标签效果
➢
种类:
![](https://i-blog.csdnimg.cn/blog_migrate/1259b6b0cec83774892bec452e4ea878.png)
➢
注意点:
1. 必须设置content属性才能生效
2. 伪元素默认是行内元素
小结
➢
伪元素的必加属性是?
• content属性
➢
伪元素创建出来后默认的显示模式是?
• 行内元素
代码试验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.father{
width: 300px;
height: 300px;
background-color: pink;
}
.father::before{
/* 内容 */
/* content属性必须添加,否则伪元素不生效 */
content: "老鼠";
color: green;
widows: 100px;
height: 100px;
background-color: blue;
/* 默认是行内元素,宽高不生效 */
display: block;
}
.father::after{
content:"大米";
}
</style>
</head>
<body>
<!-- 伪元素 通过css创建标签,装饰性不重要的小图 -->
<!-- 找父级,在这个父级里面创建了标签 -->
<div class="father">爱</div>
<!-- 老鼠爱大米 -->
</body>
</html>
三、标准流
目标:
能够认识
标准流
的默认排布方式及其特点
➢
标准流:又称
文档流
,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以何种方式排列元素
➢
常见标准流排版规则:
1. 块级元素:从上往下,
垂直布局
,独占一行
2. 行内元素 或 行内块元素:从左往右,
水平布局
,空间不够自动折行
小结
➢
标准流中块级元素的排版规则是?
• 从上往下、
垂直布局
、独占一行
➢
标准流中行内元素或行内块元素的排版规则是?
• 从左往右、
水平布局
、空间不够自动折行
四、浮动
目标:
能够认识使用
浮动的作用
,了解
浮动的特点
➢
浮动的作用是什么?
1. 早期作用:图文环绕
2. 现在作用:用于布局,让垂直布局的盒子变成水平布局,如:一个在左,一个在右
➢
左浮动的属性是?右浮动的属性是?
1. 左浮动:
float : left
2. 右浮动:
float : right
代码试验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* img{
float: left;
} */
div{
width: 100px;
height: 100px;
}
.one{
background-color: pink;
float: left;
}
.two{
background-color: aqua;
float: left;
}
</style>
</head>
<body>
<!-- 1.图文环绕 -->
<!-- <img src="./images/1.jpg" alt="">大写的青春里应有大写的家国情怀,让青春走出孤芳自赏的小我,把自己的小我融入祖国的大我、人民的大我,与时代同步伐、与人民共命运。大写的青春用读书积蓄力量,用拼搏昭示希望。大写的青春里应有大写的家国情怀,让青春走出孤芳自赏的小我,把自己的小我融入祖国的大我、人民的大我,与时代同步伐、与人民共命运。大写的青春用读书积蓄力量,用拼搏昭示希望。大写的青春里应有大写的家国情怀,让青春走出孤芳自赏的小我,把自己的小我融入祖国的大我、人民的大我,与时代同步伐、与人民共命运。大写的青春用读书积蓄力量,用拼搏昭示希望。最后我认为作为一名大学生,更应该书写大写的人生,时时刻刻与国家同呼吸,共命运。我们要在这场战役中学习谱写“大写的青春”让青春梦想在中华民族复兴的伟大的中国梦中绽放。大写的青春里应有大写的家国情怀,让青春走出孤芳自赏的小我,把自己的小我融入祖国的大我、人民的大我,与时代同步伐、与人民共命运。大写的青春用读书积蓄力量,用拼搏昭示希望。大写的青春里应有大写的家国情怀,让青春走出孤芳自赏的小我,把自己的小我融入祖国的大我、人民的大我,与时代同步伐、与人民共命运。大写的青春用读书积蓄力量,用拼搏昭示希望。大写的青春里应有大写的家国情怀,让青春走出孤芳自赏的小我,把自己的小我融入祖国的大我、人民的大我,与时代同步伐、与人民共命运。大写的青春用读书积蓄力量,用拼搏昭示希望。最后我认为作为一名大学生,更应该书写大写的人生,时时刻刻与国家同呼吸,共命运。我们要在这场战役中学习谱写“大写的青春”让青春梦想在中华民族复兴的伟大的中国梦中绽放。 -->
<!-- 2.网页布局:块在一行排列 -->
<div class="one">one</div>
<div class="two">two</div>
</body>
</html>
浮动的特点
1.
浮动元素会脱离标准流(简称:脱标),在标准流中不占位置
• 相当于从地面飘到了空中
2.
浮动元素比标准流高半个级别,可以覆盖标准流中的元素
3.
浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
4.
浮动元素有特殊的显示效果
• 一行可以显示多个
• 可以设置宽高
➢
注意点:
• 浮动的元素不能通过text-align:center或者margin:0 auto
代码试验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/*浮动的标签顶对齐*/
/*浮动:在一行排列,宽高生效--浮动后的标签具备行内块特点*/
.one{
width: 100px;
height: 100px;
background-color:pink;
float: left;
margin-top: 50px;
}
.two{
width: 200px;
height: 200px;
background-color: skyblue;
float: left;
}
.three{
width: 300px;
height: 300px;
background-color:orange;
}
</style>
</head>
<body>
<div class="one">one</div>
<div class="two">two</div>
<div class="three">three</div>
</body>
</html>
小结
➢
浮动元素的特点有哪些?
1. 浮动元素会脱标,在标准流中不占位置
2. 浮动元素比标准流高出半个级别,可以覆盖标准流中的元素
3. 浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
4. 浮动元素有特殊的显示效果:① 一行可以显示多个 ② 可以设置宽高
五、清除浮动
1.清除浮动的方法一直接设置父元素高度
>特点:
·优点:简单粗暴,方便
·缺点:有些布局中不能固定父元素高度。如:新闻列表、京东推荐模块
2.清除浮动的方法一额外标签法
>操作:
1.在父元素内容的最后添加一个块级元素2.给添加的块级元素设置clear:both特点:
·缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂
代码案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.top {
margin: 0 auto;
width: 1000px;
/* height: 300px; */
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
.clearfix {
/* 清除左右两侧浮动的影响 */
clear: both;
}
</style>
</head>
<body>
<!-- 父子级标签, 子级浮动, 父级没有高度, 后面的标准流盒子会受影响, 显示到上面的位置 -->
<div class="top">
<div class="left"></div>
<div class="right"></div>
<div class="clearfix"></div>
</div>
<div class="bottom"></div>
</body>
</html>
3.清除浮动的方法一单伪元素清除法
>操作:用伪元素替代了额外标签
1∶基本写法
1∶基本写法
![](https://i-blog.csdnimg.cn/blog_migrate/5b7e073f627fed10e0fe0aa724550c5c.png)
2∶补充写法
![](https://i-blog.csdnimg.cn/blog_migrate/6f09812cce69a9a627a9fa133d2ec30a.png)
>特点:
·优点:项目中使用,直接给标签加类即可清除浮动
案例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.top {
margin: 0 auto;
width: 1000px;
/* height: 300px; */
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
/* 单伪元素清除浮动 和 额外标签法原理是一样的 */
.clearfix::after {
content: '';
/* 伪元素添加的标签是行内, 要求块 */
display: block;
clear: both;
/* 为了兼容性 */
height: 0;
visibility: hidden;
}
</style>
</head>
<body>
<!-- 父子级标签, 子级浮动, 父级没有高度, 后面的标准流盒子会受影响, 显示到上面的位置 -->
<div class="top clearfix">
<div class="left"></div>
<div class="right"></div>
<!-- 通过css 添加标签 -->
</div>
<div class="bottom"></div>
</body>
</html>
4.清除浮动的方法—双伪元素清除法
>操作:
特点:
·优点:项目中使用,直接给标签加类即可清除浮动
案例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.top {
margin: 0 auto;
width: 1000px;
/* height: 300px; */
background-color: pink;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
/* .clearfix::before 作用: 解决外边距塌陷问题
外边距塌陷: 父子标签, 都是块级, 子级加margin会影响父级的位置
*/
/* 清除浮动 */
.clearfix::before,
.clearfix::after {
content: '';
display: table;
}
/* 真正清除浮动的标签 */
.clearfix::after {
/* content: '';
display: table; */
clear: both;
}
</style>
</head>
<body>
<!-- 父子级标签, 子级浮动, 父级没有高度, 后面的标准流盒子会受影响, 显示到上面的位置 -->
<div class="top clearfix">
<div class="left"></div>
<div class="right"></div>
</div>
<div class="bottom"></div>
</body>
</html>
5.清除浮动的方法一给父元素设置overflow : hidden
操作:
1.直接给父元素设置overflow : hidden特点:
·优点:方便
案例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.top {
margin: 0 auto;
width: 1000px;
/* height: 300px; */
background-color: pink;
overflow: hidden;
}
.bottom {
height: 100px;
background-color: green;
}
.left {
float: left;
width: 200px;
height: 300px;
background-color: #ccc;
}
.right {
float: right;
width: 790px;
height: 300px;
background-color: skyblue;
}
</style>
</head>
<body>
<!-- 父子级标签, 子级浮动, 父级没有高度, 后面的标准流盒子会受影响, 显示到上面的位置 -->
<div class="top">
<div class="left"></div>
<div class="right"></div>
</div>
<div class="bottom"></div>
</body>
</html>
(拓展补充)BFC的介绍
➢
块格式化上下文(Block Formatting Context):BFC
•
是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。
➢
创建BFC方法:
1. html标签是BFC盒子
2. 浮动元素是BFC盒子
3. 行内块元素是BFC盒子
4. overflow属性取值不为visible。如:auto、hidden…
5. ……
➢
BFC盒子常见特点:
1. BFC盒子会默认包裹住内部子元素(标准流、浮动)→ 应用:清除浮动
2. BFC盒子本身与子元素之间不存在margin的塌陷现象 → 应用:解决margin的塌陷
3. ……
总结
◆
能够使用
结构伪类选择器
在HTML中选择元素
◆
能够说出
标准流
元素的布局特点
◆
能够说出
浮动元素
的特点
◆
能够使用浮动完成
小米模块布局案例
◆
能够说出
清除浮动
的目的,并能够使用
清除浮动的方法