目标:能够使用结构伪类选择器在HTML中定位元素
E:nth-child(n) { css } 的注意事项
<!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>
/* 需求:使用 nth-child() 给第一个 span 标签添加样式 */
/* div span:nth-child(1) {这个是选不到第一个 span 标签的
color: pink;
} */
div span:nth-child(2) {
color: red;
}
/* 总结:nth-child(n) 选择的是父元素里面的第 n 个孩子,它不管里面的孩子是否是同一种类型 */
</style>
</head>
<body>
<div>
<p>段落标签</p>
<span>span标签1</span>
<span>span标签2</span>
<span>span标签3</span>
</div>
</body>
</html>
上面的问题可以使用 E:first-of-type { css } E:last-of-type { css }
E:nth-of-type(n) { css } E:nth-last-of-type(n) { css }来解决
目标:能够使用伪元素在网页中创建内容
伪元素:一般页面中的非主体内容可以使用伪元素
区别
种类
注意点
目标:能够认识标准流的默认排布方式及其特点
目标:能够认识使用浮动的作用,了解浮动的特点
目标:能够认识清除浮动的目的,并且能够使用清除浮动的方法
清除浮动的介绍
清除浮动的方法
清除浮动的方法 — ① 直接设置父元素高度
清除浮动的方法 — ② 额外标签法
清除浮动的方法 — ③ 单伪元素清除法
/* ① :基本写法 */
.clearfix::after {
content: "";
display: block;
clear: both;
}
/* ② :补充写法 */
.clearfix::after {
content: "";
display: block;
clear: both;
/* 补充代码:在网页中看不到伪元素 */
height: 0;
visibility: hidden;
}
清除浮动的方法 — ④ 双伪元素清除法
作用:①清除浮动 ②解决外边距折叠的塌陷现象
操作:
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
优点:项目中使用,直接给标签加类即可清除浮动
清除浮动的方法 — ⑤ 给父元素设置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>
/* 去除掉标签默认的margin和padding */
* {
margin: 0;
padding: 0;
}
.box {
width: 1226px;
height: 614px;
/* background-color: pink; */
margin: 100px auto;
}
.left {
float: left;
width: 234px;
height: 614px;
background-color: #800080;
}
.right {
float: right;
width: 978px;
height: 614px;
/* background-color: yellow; */
}
.item {
float: left;
width: 234px;
height: 300px;
background-color: #87ceeb;
margin-right: 14px;
margin-bottom: 14px;
}
/* 找到的是 第 4 和第 8个 4倍数 4n */
.item:nth-child(4n) {
/* background-color: red; */
margin-right: 0;
}
/* 找到从第5个开始往后的所有个子元素 */
.item:nth-child(n+5) {
margin-bottom: 0;
}
</style>
</head>
<body>
<!-- 布局流程:从上往下,从外往内 -->
<div class="box">
<div class="left"></div>
<div class="right">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</body>
</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>
/* 1、去除标签默认的margin和padding */
* {
margin: 0;
padding: 0;
}
/* 2、找到ul,去除小圆点 */
ul {
list-style: none;
}
/* 3、找到li标签,设置浮动 */
ul li {
float: left;
}
/* 4、找到a标签,设置宽高 */
ul li a {
/* a标签默认是行内元素,不能直接设置宽高 */
/* 1、转换成行内块元素 */
/* display: inline-block; */
/* 2、转换成块级元素 */
/* display: block; */
/* 3、设置浮动 */
float: left;
width: 80px;
height: 50px;
background-color: #ffc0cb;
text-decoration: none;
text-align: center;
line-height: 50px;
color: #fff;
font-size: 16px;
}
ul li a:hover {
background-color: #008000;
}
</style>
</head>
<body>
<ul>
<li><a href="#">新闻1</a></li>
<li><a href="#">新闻2</a></li>
<li><a href="#">新闻3</a></li>
<li><a href="#">新闻4</a></li>
<li><a href="#">新闻5</a></li>
<li><a href="#">新闻6</a></li>
<li><a href="#">新闻7</a></li>
<li><a href="#">新闻8</a></li>
</ul>
</body>
</html>