CSS教程(二)- CSS选择器
1. 作用
- 匹配文档中的某些元素为其应用样式。
- 根据不同需求把不同的标签选出来。
2. 分类
- 分类
- 基础选择器
- 包含 标签选择器、ID选择器、类选择器、通用选择器等
- 复合选择器
- 包含 后代选择器、子代选择器、伪类选择器等
- 包含 后代选择器、子代选择器、伪类选择器等
- 基础选择器
1 标签选择器
-
介绍
- 又称为元素选择器,根据标签名匹配文档中所有该元素,为页面中某一类标签指定统一的CSS样式。
-
语法
标签名{属性1: 属性值1;属性2: 属性值2;... }
-
示例
-
说明
- 选择器:指需设置样式的 HTML 元素。
- 声明块包含一条或多条用分号分隔的声明。
- 每条声明都包含一个 CSS 属性名称和一个值,以冒号分隔。
- 多条 CSS 声明用分号分隔,声明块用花括号括起来。
-
优点
- 能快速为页面中同类型的标签统一设置样式。
-
缺点
- 不能设计差异化样式,只能选择全部的当前标签。
2 ID选择器
-
介绍
- 根据元素的 id 属性值匹配文档中唯一的元素,id具有唯一性,不能重复使用。
- 在 CSS 中 ID选择器以 # 来定义
-
语法
#id属性值{属性1: 属性值1;属性2: 属性值2;...}
-
示例
-
注意
- id属性值自定义,可以由数字、字母、下划线、- 组成,不能以数字开头;
- 尽量见名知意,多个单词组成时,可以使用连接符,下划线,小驼峰表示。
-
口诀
- 样式#定义,结构id调用,只能调用一次
- 样式#定义,结构id调用,只能调用一次
3 类选择器
-
介绍
-
想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器。
- 根据元素的class属性值匹配相应的元素,class属性值可以重复使用,实现样式的复用(简言之:用于查找或选取要设置样式的 HTML元素)
-
语法
.类名 {属性1: 属性值1;属性2: 属性值2;... }
-
示例
-
说明
- 长名称或词组可以使用中横线来为选择器命名。
- 不要使用纯数字、中文等命名,尽量使用英文字母来表示。
- 命名要有意义,尽量使别人一眼就知道这个类名的目的。
-
口诀
- 样式点定义,结构类调用
-
特殊用法
-
类选择器与其他选择器结合使用
a.c1{ }
- 注意:标签与类选择器结合时,标签在前,类选择器在后
-
class属性值可以写多个(多个类名之间必必须用 空格 分开),共同应用类选择器的样式
<p class="c1 c2"></p>
-
-
示例
4 通用选择器
-
介绍
- 通配符选择器使用 * 定义,它表示选取页面中所有元素(标签)。
-
语法
* {属性1: 属性值1;属性2: 属性值2;... }
-
说明
-
通常在最开始对页面设置内边距与外边距的设置(默认body与页面会存在边距)。
*{padding: 0;margin: 0; }
-
-
示例
5 群组选择器
-
介绍
- 也称为并集选择器,可以使用多个不同的选择器为一组元素统一设置样式。
-
语法
selector1,selector2,selector3{ 属性1: 属性值1;属性2: 属性值2;... }
-
示例
6 后代选择器
-
介绍
- 匹配满足选择器的所有后代元素(包含直接子元素和间接子元素)
-
语法
selector1 selector2{属性1: 属性值1;属性2: 属性值2;... }
-
说明
- 匹配selector1中所有满足selector2的后代元素
- selector1 与 selector2 可以是任意的基础选择器
-
示例
7 子代选择器
-
介绍
- 匹配满足选择器的所有直接子元素,只能选择作为某元素的最近一级子元素
-
语法
selector1>selector2{属性1: 属性值1;属性2: 属性值2;... }
-
说明
- selector2 必须是 selector1 的亲子元素
-
示例
8 伪类选择器
-
介绍
- 为元素的不同状态分别设置样式,必须与基础选择器结合使用。
-
特点
用冒号(:)表示
,如::hover、:first-child、:last_child
1、链接伪类选择器
-
分类
:link 超链接访问前的状态 :visited 超链接访问后的状态 :hover 鼠标滑过时的状态 :active 鼠标点按不抬起时的状态(激活)
-
示例
-
注意
-
超链接如果需要为四种状态分别设置样式,则按照以下顺序【LVHA】声明
:link :visited :hover :active
-
超链接常用设置 :
a{/*统一设置超链接默认样式(不分状态)*/ }a:hover{/*鼠标滑过时改样式*/ }
-
2、焦点伪类选择器
-
:focus
- 用于选取获得焦点的表单元素。
- 一般情况 <input> 类表单元素才能获取
-
示例
3、结构伪类选择器
-
作用
- 根据元素的
结构关系
查找元素
- 根据元素的
-
选择器
选择器 说明 E:first-child 查找第1个E元素 E:last-child 查找最后一个E元素 E:nth-child(N) 查找第N个E元素(第1个元素N值为1) -
:nth-child(公式)
-
作用:根据元素的关系结构
查找多个元素
。公式 功能 2n 偶数标签 2n+1; 2n-1 奇数标签 5n 找到5的倍数的标签 n+5 找到第5个以后的标签 -n+5 找到第5个以前的标签
-
-
示例
4、伪元素选择器
-
作用
- 创建
虚拟
元素(伪元素),用来摆放装饰性
的内容
- 创建
-
选择器
选择器 说明 E::before 在E元素里面最前面添加一个伪元素 E::after 在E元素里面最后面添加一个伪元素 -
注意
- 必须设置 content: “” 属性,用来设置
伪元素的内容
,如果无内容,则引号留白
即可 - 微元素必须是
行内
显示模式 权重
和标签选择器
相同。
- 必须设置 content: “” 属性,用来设置
-
应用场景
- 插入内容:使用::before和::after伪元素在元素的前后插入内容,如在段落前添加引用符号、图标装饰等
- 分割符号:使用::before和::after伪元素在列表项之间添加分割线或其他符号,提高列表的可读性
- 清除浮动:使用::after伪元素来清除浮动,保证容器正确包裹元素
- 首行缩进:使用::first-line伪元素来设置元素内第一行的样式,如字体、颜色等
- 首字母样式:使用::first-letter伪元素来设置元素内第一个字母的样式,如字体大小、颜色等
-
示例
- 总结
相关文章:

CSS教程(二)- CSS选择器
1. 作用 匹配文档中的某些元素为其应用样式。根据不同需求把不同的标签选出来。 2. 分类 分类 基础选择器 包含 标签选择器、ID选择器、类选择器、通用选择器等 复合选择器 包含 后代选择器、子代选择器、伪类选择器等 1 标签选择器 介绍 又称为元素选择器,根…...

Ubuntu20.04 解决一段时间后键盘卡死 输入延迟很大的问题 ubuntu
Ubuntu20.04 解决一段时间后键盘卡死 输入延迟很大的问题 为了确保您能顺利通过双击快捷方式来重启 IBus,下面详细描述了从脚本创建到快捷方式设置的每一步,包括具体的命令行操作和必要的说明,以确保您能够按步骤成功执行。 步骤 1: 创建并…...

http(s)接口设计注意事项
http(s)在设计时应考虑: 一、签名认证 鉴权,如jwt方式等。 二、重要参数加密 如:用户的登录密码、银行卡号、转账金额、用户身份证等。 三、IP白名单 为了进一步加强API接口的安全性,防止接口的签名或者加密被破解了&#x…...

Font Awesome Web 应用图标
Font Awesome Web 应用图标 引言 在当今的数字时代,图标在Web应用中扮演着至关重要的角色。它们不仅增强了用户界面的视觉吸引力,而且还提高了用户体验和互动性。Font Awesome是一个广受欢迎的图标库,它为开发人员提供了一系列高质量的图标,可以轻松地集成到Web应用中。本…...

bridge-vlan
# 1.topo # 2.创建命名空间 ip netns add ns0 ip netns add ns1 ip netns add ns2 ip netns add ns3 # 3.创建veth设备 ip link add ns0-veth0 type veth peer name hn0-veth0 ip link add ns1-veth0 type veth peer name hn1-veth0 ip link add ns2-veth0 type veth pe…...

【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
MySQL与Oracle一样都是通过逻辑存储结构来管理物理存储结构,即管理硬盘上存储的各种文件。下面将详细介绍InnoDB存储引擎中的数据文件和重做日志文件。 一、数据文件 “.ibd”文件和ibdata文件 这两种文件都是存放Innodb数据的文件,之所以有两种文件来…...

华为云前台展示公网访问需要购买EIP,EIP流量走向
华为云前台网络(VPC,安全组,EIP) 1.EIP网段是从哪里划分的? 管理员在后台Service_OM已设置 Service_OM-网络资源-外部网络-创建外部网络基本信息:配置参数:*名称 public*网络类型 LOCAL 不带标签 类似开…...

排序算法 -插入排序
文章目录 1.插入排序(Insertion Sort)1.1 简介1.2 插入排序的步骤1.3 插入排序的C实现1.4 插入排序的时间复杂度1.5 插入排序的空间复杂度1.6 插入排序的动画 2. 二分插入排序(Binary Insertion Sort)2.1 简介2.2 二分插入排序步骤…...

如何使用.bat实现电脑自动重启?
1、在电脑桌面新建一个记事本文档,将如下内容写进去: echo off shutdown /r /t 02、然后,保存一下,再把桌面此文件重命名为电脑重启.bat 3、双击此程序,可以立刻重启电脑。 PS:① 此程序会不保存任何当前…...

使用VSCode远程连接服务器并解决Neo4j无法登陆问题
摘要:本文介绍了如何通过VSCode连接内网部署的Neo4j服务器,并启动服务。在访问Neo4j登录界面时,遇到了端口映射问题导致无法登录。通过手动添加7687端口的映射后,成功登录Neo4j。 我在内网部署了一台服务器,并在其上运…...

使用React和Vite构建一个AirBnb Experiences克隆网站
这一篇文章中,我会教你如何做一个AirBnb Experiences的克隆网站。主要涵盖React中Props的使用。 克隆网站最终呈现的效果: 1. 使用vite构建基础框架 npm create vitelatestcd airbnb-project npm install npm run dev2. 构建网站的3个部分 网站从上…...

HBase压测 ycsb
## ycsb 导入数据 rootXX.14.40.1971、对portrait压测 ansible hadoop -i hosts_hbase_portrait_20230730.txt -m shell -a "hostname && chdir/data/workspace/ycsb-0.17.0 nohup bin/ycsb load hbase20 -P workloads/workload_insert -cp /usr/local/fqlhadoop/…...

基于Python+Django+Vue3+MySQL实现的前后端分类的商场车辆管理系统
项目名称:基于PythonDjangoVue3MySQL实现的前后端分离商场车辆管理系统 技术栈 开发工具:PyCharm、Visual Studio Code (VSCode)运行环境:Python 3.10、MySQL 8.0、Node.js 18技术框架:Django 5、Vue 3.4、Ant-Design-Vue 4.12 …...

网络安全web基础_HTML基础(扫盲篇)
web基础_HTML扫盲篇 一、什么是 HTML? 二、HTML 的基本特点 三、HTML 基本结构概述 1.文档声明(!DOCTYPE html) 2. html元素 3. head元素 4. body 元素 四、HTML5的主要标签清单 文档结构标签 文本内容标签 链接和锚点标签 表格标…...

(附项目源码)Java开发语言,监督管家APP的设计与实现 58,计算机毕设程序开发+文案(LW+PPT)
摘要 随着互联网的快速发展和智能手机的普及,越来越多的用户选择通过移动应用程序进行事项设定、提醒通知和事项打卡。监督管家APP作为一个专注于事项设定、提醒通知、事项打卡的监督管理平台,具有广泛的应用前景和商业价值。本研究旨在构建一个功能丰富…...

前端基础的讲解-JS(11)
对象 对象是什么? 在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,所有的数据类型都可以存放在内。 属性:即事物的特征,在对象中用属性来表示(常用名词…...

Python魔法方法深度解析:解密__call__、__new__和__del__的核心奥义
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! Python中的魔法方法(Magic Methods)是构建Python高级功能的基础,它们使得对象可以…...

当微软windows的记事本被AI加持
1985年,微软发布了Windows 1.0,推出了一款革命性的产品:记事本(Notepad)。这款软件旨在鼓励使用一种未来主义的新设备——鼠标,并让人们可以不依赖VI等键盘工具就能书写文本和编写代码。记事本因其简洁和高…...

Python酷库之旅-第三方库Pandas(213)
目录 一、用法精讲 996、pandas.DatetimeIndex.day属性 996-1、语法 996-2、参数 996-3、功能 996-4、返回值 996-5、说明 996-6、用法 996-6-1、数据准备 996-6-2、代码示例 996-6-3、结果输出 997、pandas.DatetimeIndex.hour属性 997-1、语法 997-2、参数 99…...

普林斯顿:LLM基于边际优化的梯度纠缠
📖标题:A Common Pitfall of Margin-based Language Model Alignment: Gradient Entanglement 🌐来源:arXiv, 2410.13828 🌟摘要 🔸从人类反馈中强化学习(RLHF)已成为对齐语言模型…...

通俗易懂:什么是 Java 类加载?
文章目录 类加载过程的三个阶段一个简单的案例:类加载的工作原理使用这个类类加载的顺序类加载的特点类加载的好处总结推荐阅读文章 在 Java 中, 类加载是一种将我们写的 Java 类文件加载到内存中的过程,让 JVM(Java 虚拟机&…...

Dijkstra 算法的实现方案
下面是一个基于 Dijkstra 算法的实现方案,能够在 DEM(数字高程模型)数据上进行寻路,并满足以下需求: 使用 Qt C++ 编写; 规避 DEM 中的障碍物; 支持指定起点和终点; 使用 GDAL 库读取 DEM 文件; 输出路径到 TXT 文件; 输出的坐标为地理坐标(例如经纬度),而不是像…...

OpenGL 进阶系列07 - 阴影贴图(shadowmap )
一:概述: 在 OpenGL 中,Shadow Mapping(阴影贴图)是一种常用的实时阴影技术,用于渲染物体的阴影效果。这种方法通过生成光源视角下的深度贴图,再在场景渲染时使用它来判断物体是否被遮挡,从而实现阴影效果。下面是实现 Shadow Mapping 的基本步骤和相关知识。 二:绘制…...

【CAN介绍】【第一篇章】
1. CAN简介 • CAN 总线( Controller Area Network Bus )控制器局域网总线 • CAN 总线是由 BOSCH 公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线,广泛应用于汽车、嵌入式、工业控制等领域 • CAN 总线特征࿱…...

【统计子矩阵——部分前缀和+双指针】
题目 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; const int N 510; int s[N][N]; int main() {ios::sync_with_stdio(0);cin.tie(0);int n, m, k;cin >> n >> m >> k;for(int i 1; i < n; i)for(int j 1; j <…...

用正则表达式检查是IP否为内网地址
用正则表达式检查是ip否为内网地址 PHP function isIntranet($ip) {/* IPV4内网地址A 类10.0.0.0~10.255.255.255B 类172.16.0.0~172.31.255.255C 类192.168.0.0~192.168.255.255*/// 检查是否为 IPv4 内网地址if (preg_match(/^10\./, $ip…...

Leetcode刷题笔记14
136. 只出现一次的数字 136. 只出现一次的数字 - 力扣(LeetCode) 核心思想:按位异或运算 利用按位异或运算的性质来解决这个问题: 异或运算的性质: a ^ a 0:相同的数异或结果为0。 a ^ 0 a:…...

PHP图书绘本借阅管理系统小程序源码
📚 图书绘本借阅管理系统:打造孩子的阅读乐园 📚 🏷️ 引言:为什么我们需要图书绘本借阅管理系统? 在孩子的成长旅程中,阅读是不可或缺的一部分。然而,面对琳琅满目的图书和绘本&a…...

【JavaWeb】JavaWeb入门之XML详解
目录 1.XML介绍 1.1.XML概述 1.1.1.什么是XML 1.1.2.XML的作用 1.1.3.XML与HTML的比较 1.1.4.XML和properties(属性文件)比较 1.1.5.W3C组织 1.2.XML语法概述 1.2.1.XML文档展示 1.2.2.XML文档的组成部分 1.3.XML文档声明 1.3.1.什么是XML文…...

JS手写-this绑定实现
在 JavaScript 中,bind、call 和 apply 方法都可以用来改变函数的 this 指向。下面我们将分别实现这些方法的简单版本。 1. 实现 bind bind 方法创建一个新的函数,在调用时设置 this 值,并返回这个新的函数。 Function.prototype.myBind …...