1. 通配选择器
在CSS中,一个星号(*)就是一个通配选择器,它可以匹配任意类型的HTML元素。
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS通配选择器</title>
<style>
* {
color: royalblue;
font-size: 7px;
}
</style>
</head>
<body>
<div>
The first line.
<div>
The second line.
<p>
The third line.
<span>
Happy!
</span>
</p>
</div>
</div>
</body>
</html>
效果如下:
2. 元素选择器 / 伪元素选择器
- 元素选择器
最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。
如果设置 HTML 的样式,选择器通常将是某个 HTML 元素。
比如 p、h1、a,甚至可以是 html 本身。
举个例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS元素选择器</title>
<style>
/* p 就是元素选择器 */
p {
color: royalblue;
font-size: 7px;
}
</style>
</head>
<body>
<div>
The first line.
<div>
The second line.
<p>
The third line.
<span>
Happy!
</sp>
</p>
</div>
</div>
</body>
</html>
效果如下:
- 伪元素选择器
CSS 伪元素用于设置元素指定部分的样式
例如,它可用于:
- 设置元素的首字母、首行的样式
- 在元素的内容之前或之后插入内容
常用CSS伪元素选择器:
选择器 | 例子 | 例子描述 |
---|---|---|
::after | p::after | 在每个 <p>元素之后插入内容。 |
::before | p::before | 在每个 <p>元素之前插入内容。 |
::first-letter | p::first-letter | 选择每个 <p> 元素的首字母。 |
::first-line | p::first-line | 选择每个 <p> 元素的首行。 |
::selection | p::selection | 选择用户已选取的元素部分。(这里是 p 元素) |
举个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS伪元素选择器</title>
<style>
p::first-letter {
font-size: 50px;
}
</style>
</head>
<body>
<div>
<p>The first paragraph.</p>
<p>The second paragraph.</p>
<p>The third paragraph.</p>
</div>
</body>
</html>
效果如下:
3. 属性选择器 / 类选择器 / 伪类选择器
- 属性选择器
属性选择器可以根据元素的属性及属性值来选择元素。
举个例子:
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>CSS属性选择器</title>
<style>
/*
只有等号的时候,就是完全匹配title的值
等号前有个星号*,就是部分匹配title的值,只要有点击出现即可
等号前有个^,就会匹配以点击开始的title的值
等号前有个$,就会匹配以点击结束的title的值
*/
[title*="点击"] {
color: green;
border: 3px solid silver;
}
.button,
input[type="submit"] {
border: 0;
}
input[type="text"] {
width: 80%;
padding: 5px;
}
</style>
</head>
<body>
<input type="text" />
<input type="submit" value="Submit" />
<button title="点击此处登陆">登陆 </button>
<button>注册</button>
<a title="点击跳转百度" href="http://baidu.com">百度</a>
</body>
</html>
效果如下:
- 类选择器
类选择器使用( . )(英文点号)进行标识,后面紧跟类名
举个例子:
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>CSS类选择器</title>
<style>
.lightgreen {
color: lightgreen;
}
.lightgray {
color: lightgray;
}
.lightblue {
color: lightblue;
}
.bold {
font-weight: 900;
}
/* 页面中任何同时存在lightgreen和bold的元素,作用于以下样式 */
.lightgreen.bold {
border: 3px solid lightcyan;
}
/* lightgreen底下的所有的bold */
.lightgreen .bold {
border: 3px solid lightseagreen;
}
</style>
</head>
<body>
<!-- 指定多个类名的时候,中间用空格隔开 -->
<p class="lightgreen bold">
类选择器 class
</p>
<div class="lightgray bold">
A Hello
</div>
<p class="lightblue">
B Hello
</p>
<p class="lightgreen">
<span class="bold">
C Hello
</span>
</p>
</body>
</html>
效果如下:
- 伪类选择器
伪类用于定义元素的特殊状态。
常用的伪类选择器:
选择器 | 例子 | 例子描述 |
---|---|---|
:hover | a:hover | 鼠标悬停在链接时样式。 |
:link | a:link | 未访问链接样式。 |
:visited | a:visited | 已访问链接样式。 |
:active | button:active | 按钮点击激活时样式。 |
:focus | input:focus | 输入框聚焦时样式 |
举个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS伪类选择器</title>
<style>
/* 当鼠标光标聚焦于input时 */
input:focus {
outline: none;
background: #aaa;
}
</style>
</head>
<body>
<input type="text" />
<button>点击</button>
</body>
</html>
效果如下:
4. 后代选择器 / 子元素选择器
- 后代选择器
后代选择器可以选择作为某元素后代的元素。
写法:外层标签写在前面,内层标签写在后面,中间用「空格」分隔。.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS后代选择器</title>
<style>
div {
padding: 10px;
background: rgba(255, 0, 0, 0.2);
}
.first .second {
border: 2px solid lightcyan;
}
.first .second .third {
border: 2px solid lightskyblue;
}
</style>
</head>
<body>
<div class="first">
a Hello
<div class="second">
b Hello
<div class="third">
c1 Hello
</div>
<div class="third">
c2 Hello
</div>
<span class="second">
SPAN
</span>
</div>
</div>
</body>
</html>
效果如下:
- 子元素选择器
与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。
写法:父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接
举个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS子元素选择器</title>
<style>
div {
padding: 10px;
background: rgba(255, 0, 0, 0.2);
}
.first > .second {
border: 2px solid lightcyan;
}
.first .second .third {
border: 2px solid lightskyblue;
}
</style>
</head>
<body>
<div class="first">
a Hello
<div class="second">
b Hello
<div class="third">
c1 Hello
</div>
<div class="third">
c2 Hello
</div>
<span class="second">
SPAN
</span>
</div>
</div>
</body>
</html>
效果如下:
5. 相邻选择器 / 通用相邻选择器
- 相邻选择器
选择所选元素同层级的下一个元素。
举个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS相邻选择器</title>
<style>
div {
min-height: 50px;
background: rgba(0, 0, 0, 0.1);
margin: 10px;
}
/*
相邻选择器 +
选中a类的下一个div
*/
.a + div {
background: rgba(255, 0, 0, 0.3);
}
</style>
</head>
<body>
<div class="a">
a Hello
<div>
a1 Hello
</div>
</div>
<div class="b">
b Hello
</div>
<div class="c">
c Hello
</div>
<div>
d Hello
</div>
</body>
</html>
效果如下:
- 通用相邻选择器
选择所选元素同层级的下面所有元素。
举个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS通用相邻选择器</title>
<style>
div {
min-height: 50px;
background: rgba(0, 0, 0, 0.1);
margin: 10px;
}
/*
通用相邻选择器 ~
选中b类接下来所有的div
*/
.b ~ div {
background: rgba(0, 255, 0, 0.3);
}
</style>
</head>
<body>
<div class="a">
a Hello
<div>
a1 Hello
</div>
</div>
<div class="b">
b Hello
</div>
<div class="c">
c Hello
</div>
<div>
d Hello
</div>
</body>
</html>
效果如下:
6. ID 选择器
id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
id 选择器以 “#” 来定义。
举个例子:
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>CSSID选择器</title>
<style>
#logo {
color: cyan;
}
.lightgray {
color: lightgray;
}
</style>
</head>
<body>
<p id="logo">
ID选择器 id
</p>
<div class="lightgray">
A Hello
</div>
<p>
<span id="logo">
C Hello
</span>
</p>
<p id="logo">
LOGO
</p>
</body>
</html>
效果如下:
CSS学习笔记(三)