CSS - 选择器:通往时尚网页的大门

你好,未来的网页设计巨星!我很高兴能成为你在这个激动人心的CSS选择器世界中的向导。作为一个教授计算机科学超过十年的老师,我可以告诉你,掌握选择器就像打开了一个网页设计宝藏的宝箱。那么,让我们跳进去,让你的网页大放异彩!

CSS - Selectors

选择器类型

在我们开始冒险之前,让我们快速了解一下我们将要探索的不同类型的选择器:

选择器类型 示例 描述
通用 * 选择所有元素
元素 p 选择所有

元素

.classname 选择 class="classname" 的元素
ID #idname 选择 id="idname" 的元素
属性 [attribute] 选择具有指定属性的元素
selector1, selector2 选择匹配任一选择器的所有元素
伪类 :hover 选择处于特定状态的元素
伪元素 ::first-line 选择元素的一部分
后代 div p 选择 div 元素内的所有

元素

子元素 div > p 选择父元素为 div 的所有

元素

相邻兄弟 div + p 选择紧随 div 元素之后的第一个

元素

一般兄弟 div ~ p 选择与 div 元素同级的所有

元素

现在,让我们详细探索每一个!

CSS 通用选择器

通用选择器就像是CSS的瑞士军刀——它选择所有东西!它的表示符号是一个星号(*)。

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

这段代码重置了所有元素的边距和内边距,并设置了 box-sizing 属性。它通常在样式表的开始处使用,以创建一个干净的工作环境。

CSS 元素选择器

元素选择器目标特定的HTML元素。它们简单但强大。

p {
font-size: 16px;
line-height: 1.5;
}

h1 {
color: #333;
font-family: 'Arial', sans-serif;
}

在这里,我们设置了所有

元素的字体大小为16像素,行高为1.5。我们还设置了所有

元素的字体颜色为深灰色,并将字体设置为Arial。

CSS 类选择器

类选择器非常灵活。它们允许你将样式应用到具有相同类的多个元素上。

.highlight {
background-color: yellow;
font-weight: bold;
}

.error-message {
color: red;
border: 1px solid red;
padding: 10px;
}

在这个示例中,任何具有 class="highlight" 的元素都将有一个黄色背景和加粗文本。具有 class="error-message" 的元素将以红色显示,并带有红色边框和一些内边距。

CSS ID选择器

ID选择器用于样式化一个单一且独特的元素。它们前面有一个井号(#)符号。

#header {
background-color: #f0f0f0;
padding: 20px;
}

#main-content {
max-width: 800px;
margin: 0 auto;
}

这段代码样式化了具有 id="header" 的元素和具有 id="main-content" 的元素。记住,ID在页面中应该是唯一的!

CSS 属性选择器

属性选择器根据元素的属性或属性值来目标元素。

[type="text"] {
border: 1px solid #ccc;
padding: 5px;
}

[href^="https"] {
color: green;
}

[class*="btn"] {
cursor: pointer;
}

在这里,我们样式化了所有 type="text" 的元素、以 "https" 开头的链接,以及类名包含 "btn" 的元素。

CSS 组选择器

组选择器允许你对多个选择器应用相同的样式。它们用逗号分隔。

h1, h2, h3 {
font-family: 'Georgia', serif;
color: #333;
}

.error, .warning {
font-weight: bold;
}

这段代码将相同的字体家族和颜色应用到 h1、h2 和 h3 元素上,并使 .error 和 .warning 类都加粗。

CSS 伪类选择器

伪类选择器目标处于特定状态的元素。

a:hover {
text-decoration: underline;
}

input:focus {
outline: 2px solid blue;
}

li:nth-child(odd) {
background-color: #f0f0f0;
}

这些样式会在鼠标悬停时给链接添加下划线,给聚焦的输入框添加蓝色轮廓,以及给每个奇数列表项添加浅灰色背景。

CSS 伪元素选择器

伪元素选择器允许你样式化元素的具体部分。

p::first-letter {
font-size: 2em;
font-weight: bold;
}

h1::before {
content: "? ";
}

div::selection {
background-color: yellow;
}

这段代码放大并加粗了段落的第一个字母,给 h1 元素之前添加了一个指向手指表情符号,并将 div 中选中的文本背景设置为黄色。

CSS 后代选择器

后代选择器目标另一个元素的后代。

article p {
line-height: 1.6;
}

.container .box {
border: 1px solid #ccc;
}

在这里,我们样式化了文章中的所有段落,以及类名为 "box" 且位于类名为 "container" 的元素内的所有元素。

CSS 子元素选择器

子元素选择器目标一个元素的直接子元素。

ul > li {
list-style-type: square;
}

div > p {
margin-bottom: 10px;
}

这段代码给无序列表的直接子列表项添加了方形项目符号,并为 div 的直接子段落添加了下边距。

CSS 相邻兄弟选择器

相邻兄弟选择器目标紧随另一个元素之后的元素。

h1 + p {
font-size: 1.2em;
font-weight: bold;
}

.button + .button {
margin-left: 10px;
}

在这里,我们使紧随 h1 元素之后的第一个段落的字体变大并加粗,并为紧随其他按钮之后的按钮添加了左边距。

CSS 一般兄弟选择器

一般兄弟选择器目标另一个元素的兄弟元素,即使它们不是紧邻的。

h1 ~ p {
color: #666;
}

.highlight ~ li {
font-style: italic;
}

这段代码改变了所有与 h1 元素同级的段落的颜色,并使紧随类名为 "highlight" 的元素之后的列表项斜体。

CSS 嵌套选择器

嵌套选择器允许你通过在彼此之间嵌套选择器来编写更简洁、更易读的CSS。

.container {
max-width: 1200px;
margin: 0 auto;

.header {
background-color: #f0f0f0;
padding: 20px;

h1 {
color: #333;
}
}

.content {
padding: 20px;

p {
line-height: 1.6;
}
}
}

这种嵌套结构清楚地展示了元素之间的关系,使CSS更具组织性。

CSS嵌套选择器的特点

  1. 提高可读性:嵌套反映了你的HTML结构。
  2. 减少重复:你不需要重复父选择器。
  3. 更易于维护:对父选择器的更改会自动应用到嵌套选择器。
  4. 范围限制:样式自然地限定在其父级上下文中。

记住,尽管嵌套可以很强大,但不要嵌套得太深,否则会使你的CSS难以理解和维护。

那么,我热切的网页设计学徒,你就完成了CSS选择器的旋风之旅。有了这些工具,你已经走上了创建美丽网页的道路。记住,熟能生巧,所以不要害怕尝试不同的选择器和组合。快乐编码!

Credits: Image by storyset