2. CSS选择器与伪类
2.1 基本选择器回顾
在开始介绍CSS3选择器之前,我们先回顾一下CSS的基本选择器。这些选择器是所有CSS开发的基础。
2.1.1 元素选择器
元素选择器用于选中指定类型的HTML元素。
/* 选中所有的<p>元素 */
p {color: blue;
}
2.1.2 类选择器
类选择器用于选中拥有特定类名的元素。类选择器以句点(.)开头。
/* 选中所有类名为"example"的元素 */
.example {color: red;
}
2.1.3 ID选择器
ID选择器用于选中拥有特定ID的元素。ID选择器以井号(#)开头。
/* 选中ID为"header"的元素 */
#header {background-color: green;
}
2.1.4 后代选择器
后代选择器用于选中某个元素的所有后代元素。
/* 选中所有在<div>内的<p>元素 */
div p {color: purple;
}
2.1.5 组选择器
组选择器用于选中多个选择器对应的元素。
/* 选中所有的<h1>和<p>元素 */
h1, p {margin: 0;
}
2.2 CSS3新增选择器
CSS3引入了许多新选择器,使得选择元素更加精确和灵活。
2.2.1 属性选择器
属性选择器允许你根据元素的属性及其值来选中元素。
/* 选中所有属性包含"example"的元素 */
a[href*="example"] {color: red;
}/* 选中所有属性以"example"结尾的元素 */
a[href$="example"] {color: blue;
}/* 选中所有属性以"example"开头的元素 */
a[href^="example"] {color: green;
}
2.2.2 目标伪类选择器
:target
选择器用于选中当前活动的锚点目标。
/* 当链接目标被选中时改变其样式 */
:target {background-color: yellow;
}
2.2.3 :nth-child()
选择器
:nth-child()
选择器允许开发者选中特定的子元素。
/* 选中每个第二个子元素 */
li:nth-child(2n) {background-color: lightgray;
}/* 选中每个第三个同类型的子元素 */
li:nth-of-type(3n) {color: blue;
}
2.3 伪类与伪元素
伪类和伪元素是CSS的重要特性,用于选择不可见的元素或元素的某一部分。
2.3.1 伪类
伪类用于选中元素的特定状态。
/* 选中鼠标悬停时的元素 */
a:hover {color: orange;
}/* 选中获得焦点的输入框 */
input:focus {border-color: blue;
}
2.3.2 伪元素
伪元素用于选择元素的一部分,如首字母或内容前后的位置。
/* 选中<p>元素的首字母 */
p::first-letter {font-size: 2em;color: red;
}/* 在每个<p>元素的内容前插入内容 */
p::before {content: "Note: ";font-weight: bold;
}
2.4 选择器的优先级与最佳实践
选择器的优先级决定了当多个选择器匹配同一个元素时,哪个选择器的样式会被应用。了解选择器的优先级对编写高效的CSS代码非常重要。
2.4.1 选择器优先级规则
优先级由四个部分组成,从高到低依次是:内联样式、ID选择器、类选择器/属性选择器/伪类、元素选择器/伪元素。
/* 内联样式优先级最高 */
<style><div style="color: red;">内联样式</div>
</style>/* ID选择器 */
#id {color: blue; /* 优先级为 0, 1, 0, 0 */
}/* 类选择器 */
.class {color: green; /* 优先级为 0, 0, 1, 0 */
}/* 元素选择器 */
div {color: yellow; /* 优先级为 0, 0, 0, 1 */
}
2.4.2 注意事项
- 避免过度使用ID选择器:ID选择器优先级很高,不易覆盖,尽量使用类选择器。
- 结构清晰:确保CSS代码结构清晰,选择器简洁易懂。
- 使用后代选择器谨慎:后代选择器的优先级较高,过多使用会导致样式难以维护。
- 利用浏览器开发工具:使用浏览器开发工具(如Chrome DevTools)来调试和查看选择器优先级。
2.5 选择器的优先级与最佳实践
选择器的优先级决定了当多个选择器匹配同一个元素时,哪个选择器的样式会被应用。了解选择器的优先级对编写高效的CSS代码非常重要。
2.5.1 选择器优先级规则
优先级由四个部分组成,从高到低依次是:内联样式、ID选择器、类选择器/属性选择器/伪类、元素选择器/伪元素。
/* 内联样式优先级最高 */
<style><div style="color: red;">内联样式</div>
</style>/* ID选择器 */
#id {color: blue; /* 优先级为 0, 1, 0, 0 */
}/* 类选择器 */
.class {color: green; /* 优先级为 0, 0, 1, 0 */
}/* 元素选择器 */
div {color: yellow; /* 优先级为 0, 0, 0, 1 */
}
2.5.2 注意事项
- 避免过度使用ID选择器:ID选择器优先级很高,不易覆盖,尽量使用类选择器。
- 结构清晰:确保CSS代码结构清晰,选择器简洁易懂。
- 使用后代选择器谨慎:后代选择器的优先级较高,过多使用会导致样式难以维护。
- 利用浏览器开发工具:使用浏览器开发工具(如Chrome DevTools)来调试和查看选择器优先级。
相关文章:
2. CSS选择器与伪类
2.1 基本选择器回顾 在开始介绍CSS3选择器之前,我们先回顾一下CSS的基本选择器。这些选择器是所有CSS开发的基础。 2.1.1 元素选择器 元素选择器用于选中指定类型的HTML元素。 /* 选中所有的<p>元素 */ p {color: blue; }2.1.2 类选择器 类选择器用于选中…...

tcpdump源码分析
进入tcpdump.c(函数入口)之前,先看一些头文件netdissect.h里定义了一个数据结构struct netdissect_options来描述tcdpump支持的所有参数动作,每一个参数有对应的flag, 在tcpdump 的main 里面, 会根据用户的传入的参数来…...

搭建Harbor镜像仓库
前言 1、系统版本:CentOS9 2、harbor版本:v2.9.4 3、提前安装好docker和docker-compose,参考地址。我这里安装的版本是docker:26.1.3 docker-compose:v2.27.1 安装步骤 下载安装包 1、下载地址:ha…...

【C/C++】Makefile文件的介绍与基本用法
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c系列专栏:C/C零基础到精通 🔥 给大…...

PHP生成二维码+二维码包含logo图片展示
composer require chillerlan/php-qrcode 用到的扩展自己安装(注:只生成二维码只要开gd扩展就行) 仅生成二维码看这个: use chillerlan\QRCode\QRCode;public function QRCode(){$qrcode new QRCode();$url "http://ww…...

vue项目打包教程
如果是用 vue-cli 创建的项目,则项目目录中没有 config 文件夹,所以我们需要自建一个配置文件;在vue项目目录下创建文件 vue.config.js,需注意文件名称必须是 vue.config.js,然后在文件中插入以下代码: 文件…...

制作电子画册速成攻略,快来试试
当今社会,数字媒体日益普及,电子画册作为一种崭新的展示方式,受到了越来越多人的青睐。它不仅形式新颖,互动性强,而且制作起来也并不复杂。想知道如何快速掌握制作电子画册的技巧吗?我来教你吧。 接下来&…...
【java程序设计期末复习】chapter7 内部类和异常类
内部类和异常类 内部类 ava支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。 注意 (1)内部类的类体中不可以声明类变量和类方法。 (2)外嵌类的类体中可以用内部类…...

Windows下安装配置深度学习环境
Windows下安装配置深度学习环境 1. 准备工作 1.1 环境准备 操作系统:win10 22H2 GPU:Nvidia GeForce RTX 3060 12G 1.2 安装Nvidia驱动、cuda、cuDNN 下载驱动需要注册并登录英伟达账号。我这里将下面用到的安装包放到了百度网盘,可以关注微信…...

如何使用ssh将vscode 连接到服务器上,手把手指导
一、背景 我们在开发时,经常是window上安装一个vscode编辑器,去连接一个虚拟机上的linux,这里常用的是SSH协议,了解其中的操作非常必要。 二、SSH协议 SSH(Secure Shell)是一种安全协议,用于…...
Tomcat调优参数
JVM优化 Tomcat是一个Web容器,所有的jar其实都共享Tomcat中的JVM参数,所以Tomcat的JVM参数优化至关重要。 Tomcat的JVM参数是在启动脚本中设置的,如想要设置最大堆内存和最小堆内存时: 在windows的启动脚本catalina.bat中的set &q…...

云计算和大数据处理
文章目录 1.云计算基础知识1.1 基本概念1.2 云计算分类 2.大数据处理基础知识2.1 基础知识2.3 大数据处理技术 1.云计算基础知识 1.1 基本概念 云计算是一种提供资源的网络,使用者可以随时获取“云”上的资源,按需求量使用,并且可以看成是无…...

VAE-变分自编码器(Variational Autoencoder,VAE)
变分自编码器(Variational Autoencoder,VAE)是一种生成模型,结合了概率图模型与神经网络技术,广泛应用于数据生成、表示学习和数据压缩等领域。以下是对VAE的详细解释和理解: 基本概念 1. 自编码器&#…...
Android Room 使用模版
文章目录 一、配置依赖 plugins {id kotlin-kapt }android {compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}kotlinOptions {jvmTarget 17} }dependencies {implementation("androidx.room:room-runtime:2.4.2&…...

Linux/Ubuntu 中安装 ZeroTier,实现内网穿透,2分钟搞定
相信很多人都有远程连接家中设备的需求,如远程连接家中的NAS、Windows等服务,所以会涉及到一个内网穿透工具的使用,如果没有公网IP的情况下,推荐大家使用ZeroTier,这是一款强大的内网穿透工具。 mac和windows版的操作…...

java技术:oauth2协议
目录 一、黑马程序员Java进阶教程快速入门Spring Security OAuth2.0认证授权详解 1、oauth服务 WebSecurityConfig TokenConfig AuthorizationServer 改写密码校验逻辑实现类 2、oauth2支持的四种方式: 3、oauth2授权 ResouceServerConfig TokenConfig 4、…...
Java 18 新特性详解
Java 18 新特性详解 Java 18 作为 Oracle 推出的又一重要版本,继续秉持着 Java 平台“创新但不破坏”的原则,带来了多项旨在提升开发效率、性能和安全性的新特性。本篇文章将深入解析 Java 18 引入的主要特性,并探讨它们如何影响开发者的工作…...

【css3】06-css3新特性之网页布局篇
目录 伸缩布局或者弹性布局【响应式布局】 1 设置父元素为伸缩盒子 2 设置伸缩盒子主轴方向 3 设置元素在主轴的对齐方式 4 设置元素在侧轴的对齐方式 5 设置元素是否换行显示 6 设置元素换行后的对齐方式 7 效果测试原码 伸缩布局或者弹性布局【响应式布局】 1 设置父元…...

【开源】大学生竞赛管理系统 JAVA+Vue+SpringBoot+MySQL
目录 一、系统介绍 学生管理模块 教师管理模块 竞赛信息模块 竞赛报名模块 二、系统截图 三、核心代码 一、系统介绍 基于Vue.js和SpringBoot的大学生竞赛管理系统,分为管理后台和用户网页端,可以给管理员、学生和教师角色使用,包括学…...

跨境选品师不是神话:普通人也能轻松掌握,开启全球贸易新篇章!
随着互联网技术的飞速发展,跨境电商行业已成为全球经济的新增长点。在这个背景下,一个新兴的职业——跨境选品师,逐渐走进了人们的视野。那么,跨境选品师究竟是做什么的?普通人又该如何成为优秀的跨境选品师呢? 一、跨境选品师的…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...
linux设备重启后时间与网络时间不同步怎么解决?
linux设备重启后时间与网络时间不同步怎么解决? 设备只要一重启,时间又错了/偏了,明明刚刚对时还是对的! 这在物联网、嵌入式开发环境特别常见,尤其是开发板、树莓派、rk3588 这类设备。 解决方法: 加硬件…...