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选择器和@规则,实际开发中还有其他许多复杂且强大的组合方式,可根据需要灵活运用。
相关文章:
CSS 选择器与相关规则详解
CSS(Cascading Style Sheets)的选择器是网页样式设计中至关重要的工具,它们允许开发者精确地定位并应用样式到HTML文档中的元素。下面将逐一介绍几种主要的选择器类型,以及相关的注释和规则。 1. 类选择器 (Class Selector) 类选…...
基于springboot的宠物店系统的设计与实现
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…...
Llama2大模型开源,大模型的Android时代来了?
就昨天凌晨,微软和Meta宣布Llama2大模型开源且进一步放开商用,一下朋友圈刷屏。要知道,开源界最强大的模型就是过去Meta开源的Llama,而现在Llama2更强大,又开放商用,更有微软大模型霸主企业撑腰(微软既投资大模型界的IOS——ChatGPT,又联合发布大模型的Android——Llam…...
取出list中指定数量数据操作,操作完了删除这些数据
直接看代码吧,有注释 package com.ep.crm.task;import java.util.ArrayList; import java.util.List; import java.util.Random;public class Test {public static void main(String[] args) {List<String> list new ArrayList<String>();// 生成随机整数Random …...
Cocos XR的WebBox实现流程
1. 正常3D场景下的webview 1.1 组件角色 Cocos Creator正常3D场景下只有在UI组件才支持webview,即作为下图中的UI Nodes(Canvas Node)的子节点,和3D组件是隔离开的,不能显示在3D空间中,UI Nodes(Canvas Node)是一个平面内的矩形…...
netstat是一个常用的网络工具,用于显示和分析网络连接、路由表以及网络接口等信息。
netstat 是一个常用的网络工具,用于显示和分析网络连接、路由表以及网络接口等信息。 它可以提供关于网络活动的实时统计数据,包括正在监听的端口、已建立的连接、网络接口的状态等。 使用 netstat 命令可以列出当前系统中的网络连接情况。以下是一些常…...
【Linux】linux权限
linux权限 一,Linux权限的概念二,Linux权限管理1.文件访问者分类2.文件类型和访问权限3.文件权限值的表示方法4.文件访问权限的设置 三,目录的权限四,粘滞位五,权限掩码1.什么是权限掩码2.权限掩码的计算 一࿰…...
XUbuntu22.04之如何创建、切换多个工作区(二百零九)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
网络安全之SSL证书加密
简介 SSL证书是一种数字证书,遵守SSL协议,由受信任的数字证书颁发机构(CA)验证服务器身份后颁发。它具有服务器身份验证和数据传输加密的功能,能够确保数据在传输过程中的安全性和完整性。 具体来说,SSL证…...
格式化日期注解@JsonFormat的使用和TimeZone时区问题
JsonFormat的使用 目的 为了便于date类型字段的序列化和反序列化,需要在数据结构的Date、Timestamp、DateTime类型的字段上用JsonFormat注解进行注解 使用 JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当…...
ReactNative实现文本渐变
我们直接上图,可以看到上面文本的效果,使用SVG实现 1.首先还是要引入react-native-svg库 2.使用该库下面的LinearGradient和Text 好,话不多说,我们看具体代码 <Svg width={422} height={30} viewBox={0 0 422 30}><Defs><LinearGradientid="Gradien…...
深度学习手写字符识别:训练模型
说明 本篇博客主要是跟着B站中国计量大学杨老师的视频实战深度学习手写字符识别。 第一个深度学习实例手写字符识别 深度学习环境配置 可以参考下篇博客,网上也有很多教程,很容易搭建好深度学习的环境。 Windows11搭建GPU版本PyTorch环境详细过程 数…...
Day 1. 学习linux高级编程之Shell命令和IO
1.C语言基础 现阶段学习安排 2.IO编程 多任务编程(进程、线程) 网络编程 数据库编程 3.数据结构 linux软件编程 1.linux: 操作系统:linux其实是操作系统的内核 系统调用:linux内核的函数接口 操作流程ÿ…...
STM32--SPI通信协议(1)SPI基础知识总结
前言 I2C (Inter-Integrated Circuit)和SPI (Serial Peripheral Interface)是两种常见的串行通信协议,用于连接集成电路芯片之间的通信,选择I2C或SPI取决于具体的应用需求。如果需要较高的传输速度和简单的接口,可以选择SPI。如果需要连接多…...
Debezium系列之:MariaDB10.5以上版本赋予数据库账号读取binlog权限的变化
Debezium系列之:MariaDB10.5以上版本赋予数据库账号读取binlog权限的变化 一、背景二、BINLOG MONITOR权限三、BINLOG MONITOR和REPLICA MONITOR的区别四、MariaDB版本升级的影响五、总结一、背景 数据接入会检测账号是否具有REPLICATION SLAVE、REPLICATION CLIENT的权限Mari…...
迅为STM32MP157开发板底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块
底板扩展接口丰富 底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口CAMERA接口、ADC电位器、SPDIF、SDIO接口等。 支持多种显示屏 迅为在MP157开发板支持了多种屏幕࿰…...
「实用分享」用界面组件Telerik UI for Blazor增强你的财务图表!
Telerik UI for Blazor拥有110个原生的、易于定制的Blazor UI组件和高性能网格组件,能节约一半的时间开发全新的Blazor应用程序并使传统web项目现代化,其中囊括了设计和生成工具等。Telerik UI for Blazor控件提供的控件,可轻松满足应用程序对…...
使用org.openscada.utgard java opcda库做opc客户端时长期运行存在的若干问题
牛11月09日反馈东区存在以下问题,由于在现场未来得及处理。11月10日反馈西区亦存在此问题。经排查此问题已存在相当长一段时间(最长为9月底即存在)。 1、读报错Value: [[org.jinterop.dcom.core.VariantBody$EMPTY212c0aff]], Timestamp: Mo…...
杰克与魔法树的冒险
从前有一个小村庄,里面住着一个善良勇敢的小男孩叫杰克。杰克非常喜欢冒险和探索未知的事物。 一天,杰克听说村庄附近的森林里有一个神奇的魔法树,树上结满了金色的苹果。他决定去寻找这棵魔法树,并带回一些金苹果给村庄的居民们。…...
第九节HarmonyOS 常用基础组件22-Marquee
1、描述 跑马灯组件,用于滚动展示一段单行文本,仅当文本内容宽度超过跑马灯组件宽度时滚动。 2、接口 Marquee(value:{start:boolean, step?:number, loop?:number, fromStart?: boolean ,src:string}) 3、参数 参数名 参数类型 必填 描述 st…...
生成式推荐GR4AD
prompt 快手《Generative Recommendation for Large-Scale Advertising》值得阅读,生成式推荐这事 这两年聊的人很多,真能在大规模系统里全量落地的,基本没有。 这次快手团队把生成式推荐真正搬进大规模广告系统,是国内生成…...
TypeScript + Cloudflare 全家桶部署项目全流程
我的项目技术栈是 TypeScript Cloudflare 全家桶(Workers, KV, DB, Pages)。基于现在的架构,我整理了一份**“从本地到边缘”的部署清单**。这套流程主要依赖 Wrangler CLI(Cloudflare 的官方命令行工具)来完成。 以下…...
饲草打包机的设计及其三维造型【农业机械】(论文+5张cad图纸+solidworks三维+动画+答辩】
饲草打包机作为农业机械化作业的关键设备,其设计需兼顾效率、可靠性与操作便捷性。传统饲草处理依赖人工捆扎,不仅劳动强度大,且打包质量参差不齐,易受天气影响导致饲草霉变。针对这一痛点,新型饲草打包机通过优化机械…...
医学图像分类与诊断数据集5040张VOC+YOLO
医学图像分类与诊断数据集5040张VOCYOLO数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):5040 标注数量(xml文件个数):5040 标注数…...
中国AI Agent发展现状与生态分析
中国AI Agent发展现状与生态分析 1. 标题 (Title) [从“工具助手”到“决策伙伴”:全景拆解中国AI Agent的爆发逻辑、玩家图谱与下一个十年机遇][万字深度:202X中国AI Agent发展白皮书——技术攻坚、商业落地与生态全景解析][抢滩AGI入口之战:…...
从春招到Offer:一位应届生的多益网络软件开发求职全记录
1. 春招末班车:从"破罐破摔"到投出第一份简历 五月的广州已经热得让人喘不过气,我的求职焦虑却比天气更让人窒息。看着身边同学一个个晒出offer,我才惊觉自己错过了整个金三银四。毕设和论文像两座大山,把求职计划硬生生…...
Spring Boot 3.0升级实战:从2.x迁移到3.x的完整避坑指南
Spring Boot 3.0升级实战:从2.x迁移到3.x的完整避坑指南 Spring Boot 3.0的发布为Java开发者带来了诸多令人振奋的新特性,但同时也意味着从2.x版本升级并非简单的版本号变更。本文将深入剖析升级过程中的关键挑战,提供一套经过实战验证的迁移…...
如何在iPhone 6s上解决内核利用失败问题:TrollInstallerX完全指南
如何在iPhone 6s上解决内核利用失败问题:TrollInstallerX完全指南 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否在使用TrollInstallerX越狱iPhone 6…...
AI赋能前端开发:让快马平台智能生成仪表盘页面架构与代码
最近在做一个数据可视化项目时,遇到了一个典型的前端开发需求:需要快速搭建一个专业级的仪表盘页面。这个页面需要包含数据概览卡片、图表展示区和用户留言列表三大核心模块。作为一个独立开发者,既要考虑UI美观度,又要兼顾代码质…...
QFIL线刷救砖全攻略:遇到EDL模式切换失败怎么办?附详细COM端口排查方法
QFIL线刷救砖实战指南:EDL模式切换失败的系统级解决方案 当你面对安卓设备变砖的紧急状况,线刷往往是最后的救命稻草。但就在这关键时刻,"Download Fail:Switch To EDL Fail"的红色报错突然弹出,那种从希望到绝望的落差…...
