一、结构伪类选择器
根据元素在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>
/* 选第一个 */
li:first-child{
color: red;
}
/* 最后一个 */
li:last-child{
color: green;
}
/* 自行规定第几个 */
li:nth-child(4){
color: blueviolet;
}
/* 倒数第几个 */
li:nth-last-child(4){
color:darkkhaki;
}
</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>
在nth-child中可以填写公式:
| 偶数 |
2n/even |
| 奇数 | 2n+1/2n-1/odd |
| 前5个 | -n+5 |
| 第五个往后 | n+5 |
二、伪元素
使用css模拟的标签效果,一般网页的非主题内容可以使用伪元素(网页中的装饰小图)
| ::before | 在父元素内容最前添加一个元素 |
| ::after | 在父元素内容最后添加一个元素 |
<!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>
div{
width: 200px;
height: 200px;
background-color: skyblue;
color: red;
}
.father::before{
/* content必须添加,否则伪元素不生效 */
content:"我";
color: brown;
width: 50px;
height: 50px;
/* 默认是行内元素,宽高不生效 */
display:inline-block;
}
.father::after{
content:"你";
color:blue;
}
</style>
</head>
<body>
<div class="father">爱</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>
div{
height: 100px;
width: 100px;
display: inline-block;
}
.one{
background-color: pink;
/* float: left; */
}
.two{
background-color: skyblue;
/* float: left; */
}
</style>
</head>
<body>
<div class="one">pink</div>
<div class="two">skyblue</div>
</body>
</html>
3.1 浮动的特点
不占用标准流的位置(类似向上覆盖一个图层)
浮动比标准流高半个级别,可以覆盖标准流中的元素
浮动一般顶对齐,加上margin可以改变位置
浮动后的标签具备行内块特点
浮动案例1-小米布局
<!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{
height: 40px;
background-color: #333333;
}
.head{
margin: 0 auto;
background-color: #ffc0cb;
height: 100px;
width: 1226px;
}
.middle{
width: 1226px;
height: 460px;
margin:0 auto;
}
.middleLeft{
float: left;
background-color: #ffa500;
width: 234px;
height: 460px;
}
.middleRight{
float: left;
background-color: #87ceeb;
width: 992px;
height: 460px;
}
</style>
</head>
<body>
<div class="top"></div>
<div class="head"></div>
<div class="middle">
<div class="middleLeft"></div>
<div class="middleRight"></div>
</div>
</body>
</html>

CSS书写顺序:(浏览器执行效率高)
1.浮动/display
2.盒子模型:margin/border/padding/hwbgc
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>
*{
margin: 0;
padding: 0;
}
.father{
width: 640px;
height: 50px;
margin: 50px auto;
}
ul{
list-style: none;
}
li{
float: left;
width: 80px;
height: 50px;
background-color: pink;
}
a{
display: block;
text-decoration: none;
color: white;
font-size: 16px;
line-height: 50px;
text-align: center;
margin: 0 auto;
}
li:hover{
background-color: #008000;
}
</style>
</head>
<body>
<div class="father">
<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>
</div>
</body>
</html>
四、清除浮动
4.1 清除浮动概念
清除浮动标签给其他标签带来的影响
子元素浮动了,就无法撑开父元素,对网页布局造成影响
4.2 清除浮动方法
1 直接设置父元素高度
简单,但是有些布局不能规定父元素高度
2 给父元素最后添加一个块级元素,并设置clear:both
3 单伪元素清楚法
.clearfix::after{
content: '';
display: block;
clear: both;
/* 为了浏览器的兼容性 */
height: 0;
visibility: hidden;
}
一个解决浮动问题和外边距塌陷的万能代码,直接粘到项目里:
.clearfix::before,
.clearfix::after{
content:'';
display:table;
}
.clearfix::after{
clear: both;
}
4 给父元素设置overflow:hidden

1298

被折叠的 条评论
为什么被折叠?



