CSS常见的选择器介绍

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

1、元素选择器

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

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

2、类选择器

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

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

3、 ID选择器

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

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

4、属性选择器

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

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

5、伪类选择器

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

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

6、伪元素选择器

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

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

7、后代选择器

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

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

8、子选择器>

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

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

9、相邻兄弟选择器+

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

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

10、通用兄弟选择器~

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

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

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

十一、实际应用样例

 

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

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):

/* 元素选择器 */
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选择器来实现复杂的页面布局和样式设计。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL基本知识

目录 一&#xff0c;MySQL的元数据库 1.1.什么是元数据库 1.2.有哪些元数据库 1.3.切换数据库 二&#xff0c;账户管理 2.1.设置权限 2.2.授权用户 2.3.查看权限 2.4.撤销权限 三&#xff0c;MySQL引擎 3.1什么是数据库引擎 3.2.查看数据引擎 3.3.MyISAM引擎 3.4…

科技云报道:黑马Groq单挑英伟达,AI芯片要变天?

科技云报道原创。 近一周来&#xff0c;大模型领域重磅产品接连推出&#xff1a;OpenAI发布“文字生视频”大模型Sora&#xff1b;Meta发布视频预测大模型 V-JEPA&#xff1b;谷歌发布大模型 Gemini 1.5 Pro&#xff0c;更毫无预兆地发布了开源模型Gemma… 难怪网友们感叹&am…

【Excel PDF 系列】POI + iText 库实现 Excel 转换 PDF

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 前言转换前后效果引入 pom 配置代码实现 前言 最近遇到生成 Excel 并转 pdf 的需求&#xff0c;磕磕碰碰总…

stm32——hal库学习笔记(DMA实验)

一、DMA介绍&#xff08;了解&#xff09; 二、DMA结构框图介绍&#xff08;熟悉&#xff09; 三、DMA相关寄存器介绍&#xff08;熟悉&#xff09; 四、DMA相关HAL库驱动介绍&#xff08;掌握&#xff09; 五、DMA配置步骤&#xff08;掌握&#xff09; 六、编程实战&#xff…

Anaconda和TensorFlow环境搭建!!

Anaconda下载 进入官网下载 https://www.anaconda.com/download 也可以通过清华的映像站下载&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 我这里下载的是3.4.20版本。下载好就可以安装默认安装就行。 打开Anaconda Prompt修改成国内镜像 conda c…

大概了解一下G1收集器

在上一篇文章中&#xff08;链接&#xff1a;大概了解一下CMS收集器&#xff09;我们提到&#xff0c;CMS是一种主要针对旧生代对象进行回收的收集器。与CMS不同&#xff0c;G1号称“全功能的垃圾收集器”&#xff0c;对初生代内存和旧生代内存均进行管理。鉴于此&#xff0c;这…

ubuntu虚拟机与windows之间实现复制粘贴功能

1.首先卸载ubuntu中已有的vm-tools工具 sudo apt-get autoremove open-vm-tools 2.安装open-vm-tools sudo apt-get install open-vm-tools #安装open-vm-tools sudo apt-get install open-vm-tools-desktop 3.重启ubuntu虚拟机

pyspark分布式部署随机森林算法

前言 分布式算法的文章我早就想写了&#xff0c;但是一直比较忙&#xff0c;没有写&#xff0c;最近一个项目又用到了&#xff0c;就记录一下运用Spark部署机器学习分类算法-随机森林的记录过程&#xff0c;写了一个demo。 基于pyspark的随机森林算法预测客户 本次实验采用的…

成功解决ModuleNotFoundError: No module named ‘cv2’

&#x1f525; 成功解决ModuleNotFoundError: No module named ‘cv2’ &#x1f525; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 …

中间件-Nginx漏洞整改(限制IP访问隐藏nginx版本信息)

中间件-Nginx漏洞整改&#xff08;限制IP访问&隐藏nginx版本信息&#xff09; 一、限制IP访问1.1 配置Nginx的ACL1.2 重载Nginx配置1.3 验证结果 二、隐藏nginx版本信息2.1 打开Nginx配置文件2.2 隐藏Nginx版本信息2.3 保存并重新加载Nginx配置2.4 验证结果2.5 验证隐藏版本…

ubuntu20.04安装和使用 Maldet (Linux Malware Detect)

1、下载 Maldet sudo wget http://www.rfxn.com/downloads/maldetect-current.tar.gz 2、解压Maldet sudo tar -xvf maldetect-current.tar.gz 3、进入到Maldet目录&#xff0c;然后运行安装脚本 sudo ./install.sh 4、安装ClamAV sudo apt-get update sudo apt-get in…

Jenkins 中针对视图分组(11)

一、将没有在视图的项目进行归纳操作&#xff1b; 新增的项目规则&#xff0c;并入到某就一个视图中&#xff0c;但常规是设置一个规则&#xff0c;后续按照规则走&#xff0c;就不用单独设置 1、首先到控制台页面&#xff0c;如果没有视图分组就点击加号新增&#xff1b;已存在…

JavaScript异步编程

回调地狱 回调地狱是一种由于过度使用嵌套回调函数而导致的代码结构不清晰、难以理解和维护的问题。一个典型例子是嵌套多个回调函数&#xff0c;每个回调函数都作为另一个回调函数的参数。这样会导致各个部分之间高度耦合、程序结构混乱、流程难以追踪&#xff0c;每个任务只能…

PowerShell入门:掌握基本的输入输出命令

PowerShell入门&#xff1a;掌握基本的输入输出命令 本文将深入探讨PowerShell中的基本输入输出命令&#xff0c;以及如何使用这些命令来简化日常任务。 PowerShell的基本概念 在深入了解输入输出命令之前&#xff0c;让我们先快速了解一下PowerShell的一些基本概念。PowerS…

详解顺序结构滑动窗口处理算法

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

modelValue实现组件的双向数据绑定

modelValue modelValue是Vue.js 3.x中的一个重要概念&#xff0c;用于实现组件的双向数据绑定。当在父组件中使用v-model指令绑定一个子组件时&#xff0c;子组件需要声明一个modelValue属性来接收这个绑定值。同时&#xff0c;子组件还需要通过$emit方法触发一个名为update:m…

普通jar和SpringBootjar的区别

普通的 JAR&#xff08;Java Archive&#xff09;文件是一种压缩文件格式&#xff0c;它通常用于打包 Java 类文件、资源文件和其他相关文件。这些 JAR 文件可以包含任何类型的 Java 代码&#xff0c;并且可以由任何 Java 虚拟机&#xff08;JVM&#xff09;运行。普通的 JAR 文…

【2024】TCP、UDP和 HTTP 的区别是?

前言 作为前端开发者&#xff0c;理解TCP、UDP和HTTP这三种基本协议的区别和应用&#xff0c;对于构建高效、可靠的Web应用至关重要。本文将通过深入浅出的解释和实际的例子&#xff0c;帮助你掌握这些基础知识。 核心对比 TCP和UDP都是传输层协议&#xff0c;它们的主要区别…

性能优化问题思考总结

INP 是什么&#xff1f; Interaction to Next Paint (INP) INP是一项指标&#xff0c;通过观察用户在访问网页期间发生的所有点击、点按和键盘互动的延迟时间&#xff0c;评估网页对用户互动的总体响应情况。 互动是指在同一逻辑用户手势期间触发的一组事件处理脚本。例如&a…

龙蜥OS 尝试

> 尝试一下龙蜥OS&#xff0c;和Centos8应该没什么区别。 阿里云版本龙蜥 https://alinux3.oss-cn-hangzhou.aliyuncs.com/aliyun_3_x64_20G_nocloud_alibase_20230727.vhd Index of /anolis/8.8/isos/GA/x86_64/ (openanolis.cn) 网卡 我在虚拟机上安装完后&#xff0c;…