1复合选择器
- 定义:由两个或多个基础选择器,通过不同的方式组合而成。
- 作用:更精准、更高效的选择目标元素(标签)。
1.1后代选择器
- 后代选择器:选中某元素的后代 元素。
- 选择器写法:父选择器 子选择器(CSS属性),父子选择器之间用空格隔开。
<head>
<title>后代选择器</title>
<style>
div span {
color: red;
}
</style>
</head>
<body>
<span>span标签</span>
<div>
<span>这是div的儿子span</span>
</div>
</body>
1.2子代选择器
- 子代选择器:选中某元素的 子代 元素(最近的子级)。
- 选择器写法:父选择器>子选择器(CSS属性) ,父子选择器之间用>隔开。
<head>
<title>子代选择器</title>
<style>
div>span {
color: red;
}
</style>
</head>
<body>
<div>
<p><span>这是div的孙子span</span></p>
<span>这是div的儿子span</span>
</div>
</body>
1.3并集选择器
- 并集选择器:选中 多组 标签设置 相同 的样式。
- 选择器写法:选择器1,选择器2,……,选择器N(CSS属性),选择器之间用 英文逗号 隔开。
<head>
<title>并集选择器</title>
<style>
div,
p,
span {
color: red;
}
</style>
</head>
<body>
<div>div标签</div>
<p>p标签</p>
<span>span标签</span>
</body>
1.4交集选择器-了解
- 交集选择器:选中同时 满足多个条件 的元素。
- 选择器写法:选择器1选择器2(CSS属性),选择器之间连写,没有任何符号。
- 注意:如果交集选择器中有标签选择器,标签选择器必须写在最前面。
<head>
<title>交集选择器</title>
<style>
p.box {
color: red;
}
</style>
</head>
<body>
<p class="box">p 标签,使用了类选择器 box</p>
<p>p 标签</p>
<div class="box">div标签,使用了类选择器box </div>
</body>
1.5伪类选择器
- 伪类选择器:伪类表示元素状态, 选中元素的某个状态设置样式。
- 鼠标悬停状态:选择器:hover (CSS属性)
<head>
<title>伪类选择器</title>
<style>
a:hover {
color: red;
}
.box:hover {
color: goldenrod;
}
</style>
</head>
<body>
<a href="#">这是a标签</a>
<div class="box">这是div标签</div>
</body>
1.5.1伪类-超链接(拓展)
| 选择器 | 作用 |
|---|
| :link | 访问前 |
| :visited | 访问后 |
| :hover | 鼠标悬停 |
| :active | 点击时(激活) |
- 提示:如果要给超链接设置以上四个状态,需要按LVHA的顺序书写。
2 CSS特性
CSS特性:化简代码/定位问题,并解决问题。
2.1继承性
| 描述 | 属性 |
|---|
| 字体大小 | font-size |
| 字体粗细 | font-weight |
| 字体倾斜 | font-style |
| 行高 | line-height |
| 字体族 | font-family |
| 字体复合属性 | font |
| 文字缩进 | text-indent |
| 文本对齐 | text-align |
| 修饰线 | text-decoration |
| 颜色 | color |
- 注意:如果标签自己有样式 则生效自己的样式,不继承。
2.2层叠性
特点:
- 相同的属性会覆盖: 后面 的CSS属性 覆盖前面 的CSS属性。
- 不同的属性会叠加: 不同 的CSS属性都生效。
<head>
<title>css层叠性</title>
<style>
div {
color: red;
font-size: 30px;
}
div {
color: blue;
font-weight: 700;
}
</style>
</head>
<body>
<div>这是div标签</div>
</body>
</html>
2.3优先级
- 优先级:也叫权重,当一个标签使用了 多种 选择器时,基于不同种类的选择器的匹配规则。
- 规则:选择器优先级高的样式生效。
- 公式:通配符选择器<标签选择器<类选择器<id选择器<行内选择器<!important (选中标签的范围越大,优先级越低)
2.4.1优先级-叠加计算
- 叠加计算:如果是复合选择器, 则需要权重叠加计算。
- 公式:(每一级之间不存在进位)
(行内样式,id选择器个数,类选择器个数,标签选择器个数)规则:
- 从左向右依次比较这个数,同一级个数多的优先级高,如果个数相同,则向后比较
- !impotant权重最高
- 继承权中最低
3 背景属性
- 背景图:网页中,使用背景图实现 装饰性 的图片效果。
- 属性名:background-img(Emmet:bgi)
- 属性值:url(背景图url)
<head>
<title>背景属性</title>
<style>
div {
width: 400px;
height: 400px;
background-image: url(./images/1.jpg);
}
</style>
</head>
<body>
<div>div标签</div>
</body>

3.1背景图平铺方式
- 属性名:background-repeat(Emmet:bgr)
- 属性值:
| 属性值 | 效果 |
|---|
| no-repeat | 不平铺 |
| repeat | 平铺(默认效果) |
| repeat-x | 水平方向平铺 |
| repeat-y | 垂直方向平铺 |
3.2背景图位置
- 属性名:background-position(Emmet:bgp)
- 属性值:水平方向位置 垂直方向位置
- 关键字:
| 属性值 | 位置 |
|---|
| left | 左侧 |
| right | 右侧 |
| center | 居中 |
| top | 顶部 |
| bottom | 底端 |
- 坐标(数字+px,正负 都可以)
- 提示:
- 关键字 取值方式写法,可以颠倒 取值顺序。
- 可以只写一个关键字,另一个方向 默认为居中 ;数字 只写一个之表示水平 方向,垂直方向为居中。
3.3背景图缩放
- 作用:设置背景图大小
- 属性名:background-size(Emmet:bgz)
- 常用属性值:
- 关键字:
- cover:等比例缩放背景图片以完全覆盖背景区,可能背景图片部分看不见。
- contain:等比例缩放图片以完全装入背景区,可能被景区部分空白。
- 百分比:根据盒子尺寸计算图片大小。
- 数字+单位(例如:px)
3.4背景图固定
- 作用:背景不会随着元素的内容滚动。
- 属性名:background-attachment (Emmet:bga)
- 属性值:fixed
body{
background-imge:ul(./images/bg.jpg);
background-repeat:no-repeat;
background-attachment:fixed;
}
3.5背景复合属性
- 属性名:background (Emmet:bg)
- 属性值:背景色 背景图 背景平铺方式 背景位置/背景图缩放 背景图固定(空格 隔开各个属性值,不区分顺序 )
div{
width:400px;
height:400px;
background: pink url(./images/1.png) no-repeat right center/cover;
}
4 显示模式
- 显示模式:标签(元素)的显示方式。
- 作用:布局网页的时候,根据标签的显示模式选择合适 的标签摆放内容。
- 常见的显示模式:
| 显示模式 | 特点 | 代表标签 |
|---|
| 块级元素 | 1.独占 一行。2.宽度默认是 父 级的 100%。3.添加 宽高 属性 生效。 | div |
| 行内元素 | 1.一行可以显示多个;2.设置宽高属性不生效;3.宽高尺寸由内容撑开 | span |
| 行内块元素 | 1.一行可以显示多个;2.设置宽高属性生效;3.默认宽高尺寸由内容撑开,添加宽高属性生效 | img |
4.1转换显示模式
| 属性值 | 效果 |
|---|
| block | 块级 |
| inline-block | 行内块 |
| inline | 行内 |