CSS常见的选择器介绍

CSS(层叠样式表)选择器是一种模式,用于选择要应用样式的HTML元素。以下是一些常见的CSS选择器类型和实际应用样例供参考:

1、元素选择器

直接通过HTML元素名称选择元素。例如,p选择所有<p>元素。

css 复制代码
/* 使所有段落文字变为蓝色 */
p {
  color: blue;
}

2、类选择器

通过HTML元素的class属性选择元素。类选择器在CSS中以点.开头。例如,.my-class选择所有class="my-class"的元素。

css 复制代码
/* 设置类名为"highlight"的元素的背景颜色为黄色 */
.highlight {
  background-color: yellow;
}

3、 ID选择器

通过HTML元素的id属性选择元素。ID选择器在CSS中以井号#开头。例如,#my-id选择id="my-id"的元素。

css 复制代码
/* 设置ID为"main-title"的元素的字体大小为24px */
#main-title {
  font-size: 24px;
}

4、属性选择器

根据元素的属性及属性值来选择元素。例如,[type="text"]选择所有type="text"的元素。

css 复制代码
/* 为所有type属性值为"submit"的<input>元素设置边框样式 */
input[type="submit"] {
  border: 2px solid black;
}

5、伪类选择器

用于定义元素的特殊状态。例如,:hover可以选择鼠标悬停在其上的元素。

css 复制代码
/* 当鼠标悬停在链接上时,将链接的文本颜色改为红色 */
a:hover {
  color: red;
}

6、伪元素选择器

用于选择元素的某个部分。例如,::before可以在元素内容的前面插入新内容。

css 复制代码
/* 在所有段落的内容前添加一个红色的星号 */
p::before {
  content: "★ ";
  color: red;
}

7、后代选择器

选择某元素内部的后代元素。例如,div p选择所有位于<div>元素内部的<p>元素。

css 复制代码
/* 选择<div>元素内部的所有<p>元素,并设置其字体颜色为灰色 */
div p {
  color: gray;
}

8、子选择器>

选择直接子元素。例如,ul > li仅选择直接位于<ul>元素内部的<li>元素。

css 复制代码
/* 仅为<ul>的直接子元素<li>设置列表项符号样式 */
ul > li {
  list-style-type: disc;
}

9、相邻兄弟选择器+

选择紧接在另一元素后的元素。例如,h1 + p选择紧跟在<h1>元素后的第一个<p>元素。

css 复制代码
/* 为紧跟在<h2>元素后的第一个<p>元素设置顶部边距 */
h2 + p {
  margin-top: 0;
}

10、通用兄弟选择器~

选择同一父元素下,某元素之后的所有兄弟元素。例如,h1 ~ p选择所有在<h1>元素之后的<p>元素。

css 复制代码
/* 为所有紧跟在<h2>元素后的<p>元素设置文本缩进 */
h2 ~ p {
  text-indent: 1.5em;
}

这些选择器可以组合使用,以创建更具体的选择规则,满足复杂的样式需求。

十一、实际应用样例

下面是一个综合示例,展示了如何将不同的CSS选择器组合在一起,以实现复杂的样式设计。假设我们有一个博客页面,其中包含标题、多个帖子(每个帖子都有标题、内容和评论),以及一些链接。我们将应用不同的样式来美化这个页面。

HTML示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>博客页面</title>
<link rel="stylesheet" href="style.css">
</head>
<body>

<div id="blog">
  <h1>我的博客</h1>
  <article class="post">
    <h2>帖子标题</h2>
    <p>这是帖子的内容...</p>
    <p class="comment">这是一个评论。</p>
  </article>
  <article class="post highlight">
    <h2>另一个帖子标题</h2>
    <p>这是另一个帖子的内容...</p>
    <p class="comment">这是另一个评论。</p>
  </article>
  <a href="#">更多帖子</a>
</div>

</body>
</html>

CSS样式(style.css):

css 复制代码
/* 元素选择器 */
body {
  font-family: Arial, sans-serif;
}

/* ID选择器 */
#blog {
  margin: 20px;
}

/* 类选择器 */
.post {
  background-color: #f9f9f9;
  margin-bottom: 20px;
  padding: 10px;
}

/* 属性选择器 */
a[href="#"] {
  color: green;
}

/* 伪类选择器 */
a:hover {
  text-decoration: none;
}

/* 伪元素选择器 */
.post > h2::after {
  content: " - 阅读更多";
  font-size: 14px;
  color: #777;
}

/* 后代选择器 */
#blog .post p {
  line-height: 1.6;
}

/* 子选择器 */
#blog > h1 {
  color: navy;
}

/* 相邻兄弟选择器 */
.post + .post {
  border-top: 2px solid #eee;
}

/* 通用兄弟选择器 */
.highlight ~ a {
  font-weight: bold;
}

/* 组合使用 */
#blog .post.highlight > h2 {
  color: red;
}

#blog .post p.comment {
  font-style: italic;
  color: #999;
}

在这个示例中,我们使用了各种选择器来实现不同的样式效果:

  • 使用ID选择器(#blog)为博客容器添加边距。
  • 使用元素选择器(body)设置全局字体。
  • 使用类选择器(.post.highlight)为帖子和高亮帖子设置背景和颜色。
  • 使用属性选择器(a[href="#"])为特定链接设置颜色。
  • 使用伪类选择器(a:hover)移除链接悬停时的下划线。
  • 使用伪元素选择器(.post > h2::after)在帖子标题后添加额外的文本。
  • 使用后代选择器(#blog .post p)设置帖子段落的行高。
  • 使用子选择器(#blog > h1)为博客标题设置颜色。
  • 使用相邻兄弟选择器(.post + .post)在帖子之间添加顶部边框。
  • 使用通用兄弟选择器(.highlight ~ a)为紧跟在高亮帖子后的所有链接设置加粗样式。
  • 组合使用选择器(#blog .post.highlight > h2#blog .post p.comment)为高亮帖子的标题和所有帖子的评论设置特定样式。

这个示例展示了如何通过组合不同的CSS选择器来实现复杂的页面布局和样式设计。

相关推荐
小马哥编程2 小时前
【前端基础】CSS基础
前端·css
Justinc.2 小时前
CSS3新增边框属性(五)
前端·css·css3
fruge3 小时前
纯css制作声波扩散动画、js+css3波纹催眠动画特效、【css3动画】圆波扩散效果、雷达光波效果完整代码
javascript·css·css3
As977_3 小时前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
susu10830189113 小时前
vue3 css的样式如果background没有,如何覆盖有background的样式
前端·css
我要洋人死6 小时前
导航栏及下拉菜单的实现
前端·css·css3
小白白一枚11117 小时前
css实现div被图片撑开
前端·css
@蒙面大虾17 小时前
CSS综合练习——懒羊羊网页设计
前端·css
顾菁寒18 小时前
WEB第二次作业
前端·css·html
前端Hardy1 天前
HTML&CSS:爱上班的猫咪
前端·javascript·css·vue.js·html