当前位置: 首页 > news >正文

CSS 选择器与相关规则详解

CSS(Cascading Style Sheets)的选择器是网页样式设计中至关重要的工具,它们允许开发者精确地定位并应用样式到HTML文档中的元素。下面将逐一介绍几种主要的选择器类型,以及相关的注释和@规则。

1. 类选择器 (Class Selector)

类选择器通过.后跟类名来定义样式,可以应用于多个具有相同类名的元素上:

/* 定义一个名为 "highlight" 的类 */
.highlight {background-color: yellow;
}<!-- 在HTML中使用 -->
<p class="highlight">这段文本将会高亮显示</p>
<div class="highlight">此div也会有相同的背景色</div>

2. ID 选择器 (ID Selector)

ID选择器使用#符号后面紧跟ID名称来指定唯一的元素,每个页面的ID应保证唯一性:

/* 定义一个ID为 "main-header" 的样式 */
#main-header {font-size: 24px;color: #333;
}<!-- 在HTML中使用 -->
<h1 id="main-header">主标题</h1>

3. 伪类选择器 (Pseudo-class Selector)

伪类选择器用于向某些特定状态的元素添加样式,如链接的不同状态:

/* 鼠标悬停时链接的颜色变化 */
a:hover {color: red;
}/* 已访问过的链接颜色 */
a:visited {color: purple;
}

4. 属性选择器 (Attribute Selector)

属性选择器根据HTML元素的属性及其值来选择元素:

/* 选择所有带有href属性的a元素 */
a[href] {text-decoration: underline;
}/* 选择src属性值以".jpg"结尾的img元素 */
img[src$=".jpg"] {border: 1px solid black;
}

5. 伪元素选择器 (Pseudo-element Selector)

伪元素选择器用于选择元素内容的一部分,而不是整个元素本身:

/* 选择每个段落的第一个字母作为伪元素,并设置样式 */
p::first-letter {font-size: larger;text-transform: uppercase;
}/* 创建一个在元素内容之前插入的内容块 */
p::before {content: "Read: ";color: green;
}

6. 后代选择器 (Descendant Selector)

后代选择器用来选择某个元素内部的所有特定后代元素:

/* 选择所有位于ul标签内的li元素 */
ul > li {list-style-type: disc;
}/* 选择任何在div内包含的所有段落 */
div p {margin-bottom: 1em;
}

7. 相邻后代选择器、子选择器 (Child Selector)

子选择器 (> 符号) 指定父元素直接子元素的样式:

/* 只选择直接位于.navbar下的 a 元素 */
.navbar > a {color: white;
}/* 注意:相邻后代选择器实际上指的是相邻兄弟选择器,在这里纠正一下 */
/* 相邻兄弟选择器 (+ 符号) 选择紧随其后的同级元素 */
.h1 + p {margin-top: 0;
}

8. 兄弟选择器 (Sibling Selector)

  • 相邻兄弟选择器 (+ 符号) 选择紧接在某个元素之后的同级元素:
/* 当p元素紧跟在一个h1元素后面时应用样式 */
h1 + p {font-weight: bold;
}/* 一般兄弟选择器 (~ 符号) 选择所有紧跟在同一父元素下某元素之后的同级元素 */
h1 ~ p {color: blue;
}

注释 (Comments)

CSS注释用于解释或临时禁用代码块:

/* 这是一个CSS注释,不会影响样式渲染 */
/* .example-selector {display: none; // 这行样式被注释掉了
} */

@规则 (@ Rules)

  • @media 规则用于创建媒体查询,针对不同设备视口尺寸和特性应用不同的样式:
@media screen and (max-width: 600px) {body {font-size: 14px;}
}
  • @font-face 规则用于定义自定义字体:
@font-face {font-family: 'MyCustomFont';src: url('myfont.woff2') format('woff2'),url('myfont.woff') format('woff');font-weight: normal;font-style: normal;
}body {font-family: 'MyCustomFont', sans-serif;
}
  • @page 规则用于定义打印样式表中的页面布局:
@page {size: A4;margin: 1in;
}

以上仅列举了部分常见的CSS选择器和@规则,实际开发中还有其他许多复杂且强大的组合方式,可根据需要灵活运用。

http://www.lryc.cn/news/293510.html

相关文章:

  • 基于springboot的宠物店系统的设计与实现
  • Llama2大模型开源,大模型的Android时代来了?
  • 取出list中指定数量数据操作,操作完了删除这些数据
  • Cocos XR的WebBox实现流程
  • netstat是一个常用的网络工具,用于显示和分析网络连接、路由表以及网络接口等信息。
  • 【Linux】linux权限
  • XUbuntu22.04之如何创建、切换多个工作区(二百零九)
  • 网络安全之SSL证书加密
  • 格式化日期注解@JsonFormat的使用和TimeZone时区问题
  • ReactNative实现文本渐变
  • 深度学习手写字符识别:训练模型
  • Day 1. 学习linux高级编程之Shell命令和IO
  • STM32--SPI通信协议(1)SPI基础知识总结
  • Debezium系列之:MariaDB10.5以上版本赋予数据库账号读取binlog权限的变化
  • 迅为STM32MP157开发板底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块
  • 「实用分享」用界面组件Telerik UI for Blazor增强你的财务图表!
  • 使用org.openscada.utgard java opcda库做opc客户端时长期运行存在的若干问题
  • 杰克与魔法树的冒险
  • 第九节HarmonyOS 常用基础组件22-Marquee
  • 烽火传递
  • 《深入浅出Go语言》大纲
  • flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用
  • 【鸿蒙】大模型对话应用(三):跨Ability跳转页面
  • 明道云入选亿欧智库《AIGC入局与低代码产品市场的发展研究》
  • 【深度学习】SDXL TensorRT Dockerfile Docker容器
  • 深入了解 Ansible:全面掌握自动化 IT 环境的利器
  • PPT、PDF全文档翻译相关产品调研笔记
  • JavaScript 垃圾回收的常用策略和内存管理
  • 如何结合ChatGPT生成个人魔法咒语词库
  • 瑞_23种设计模式_抽象工厂模式