深入理解 CSS 选择器:全面指南

简述:CSS(层叠样式表)选择器是网页设计和开发中至关重要的工具。它们用于选择 HTML 元素并应用样式,使得网页变得美观和具有交互性。这里来记录一下,各种 CSS 选择器及其使用方法。


一. Css各种选择器的权重

!important > 行内式 > id选择器 > 类/伪类/属性选择器 > 标签选择器  >  全局选择器    
分别对应:无穷大 > 1000 > 100 > 10 > 1 > 0         


二. 选择器类型

🟣⚫        Ⅰ. 基本选择器

1. 通配符选择器

通配符选择器 (*) 用于选择所有元素。

* {margin: 0;padding: 0;
}

2. 元素选择器

元素选择器用于选择特定类型的 HTML 元素。

p {color: blue;
}

3. 类选择器

类选择器用于选择具有特定类的元素。类名以 . 开头。

.intro {font-size: 20px;
}

4. ID 选择器

ID 选择器用于选择具有特定 ID 的元素。ID 名以 # 开头。

#header {background-color: grey;
}

🟣⚫        Ⅱ. 组合选择器

1. 后代选择器

后代选择器用于选择某元素的所有后代元素。

div p {color: green;
}

2. 子选择器

子选择器用于选择某元素的直接子元素。

ul > li {list-style-type: none;
}

3. 相邻兄弟选择器

相邻兄弟选择器用于选择紧接在某元素后的兄弟元素。

h1 + p {font-weight: bold;
}

4. 普通兄弟选择器

普通兄弟选择器用于选择某元素后所有的兄弟元素。

h1 ~ p {color: red;
}

🟣⚫        Ⅲ. 属性选择器

1. 存在属性选择器

选择具有某个属性的元素。

a[href] {text-decoration: none;
}

2. 特定属性值选择器

选择具有特定属性值的元素。

input[type="text"] {width: 200px;
}

3. 属性值以特定字符串开头的选择器

选择属性值以特定字符串开头的元素。

a[href^="https"] {color: green;
}

4. 属性值以特定字符串结尾的选择器

选择属性值以特定字符串结尾的元素。

a[href$=".pdf"] {color: red;
}

5. 属性值包含特定字符串的选择器

选择属性值包含特定字符串的元素。

a[href*="example"] {color: blue;
}

🟣⚫        Ⅳ. 伪类选择器

1. 链接伪类选择器

用于选择不同状态下的链接元素。

a:link {color: blue;
}
a:visited {color: purple;
}

2. 动态伪类选择器

用于选择鼠标与元素交互时的不同状态。

a:hover {color: red;
}
a:active {color: yellow;
}

3. 结构性伪类选择器

用于选择特定结构中的元素。

p:first-child {font-weight: bold;
}
p:last-child {font-style: italic;
}
p:nth-child(2) {text-decoration: underline;
}

🟣⚫        Ⅴ. 伪元素选择器

1. 首字母伪元素选择器

用于选择元素的首字母。

p::first-letter {font-size: 2em;color: red;
}

2. 首行伪元素选择器

用于选择元素的首行。

p::first-line {font-weight: bold;
}

3. 伪内容选择器

用于在元素的内容前后插入内容。

p::before {content: "Note: ";font-weight: bold;
}
p::after {content: " (end of paragraph)";
}

🟣⚫        Ⅵ. 高级选择器

1. 否定伪类选择器

选择不匹配某选择器的元素。

input:not([type="submit"]) {border: 1px solid black;
}
2. :nth-of-type 选择器

选择属于特定类型的第 N 个元素。

li:nth-of-type(2) {color: green;
}
3. :only-child 选择器

选择父元素中唯一的子元素。

p:only-child {font-size: 20px;
}

 🟣⚫        Ⅶ. 组合复杂选择器

你可以组合各种选择器来创建更复杂的选择规则。

div#content > p.intro::first-line {color: blue;
}


三. 所有选择器的类型,文字目录

1. 基本选择器

  • 通配符选择器
  • 元素选择器
  • 类选择器
  • ID 选择器

2. 组合选择器

  • 后代选择器
  • 子选择器
  • 相邻兄弟选择器
  • 普通兄弟选择器

3. 属性选择器

  • 存在属性选择器
  • 特定属性值选择器
  • 属性值以特定字符串开头的选择器
  • 属性值以特定字符串结尾的选择器
  • 属性值包含特定字符串的选择器

4. 伪类选择器

  • 链接伪类选择器
  • 动态伪类选择器
  • 结构性伪类选择器

5. 伪元素选择器

  • 首字母伪元素选择器
  • 首行伪元素选择器
  • 伪内容选择器

6. 高级选择器

  • 否定伪类选择器
  • :nth-of-type 选择器
  • :only-child 选择器

7. 组合复杂选择器

组合各种选择器,来创建更复杂的选择规则。

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

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

相关文章

207 课程表

题目 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

Qt5.9.9 关于界面拖动导致QModbusRTU(QModbusTCP没有测试过)离线的问题

问题锁定 参考网友的思路: Qt5.9 Modbus request timeout 0x5异常解决 网友认为是Qt的bug, 我也认同;网友认为可以更新模块, 我也认同, 我也编译了Qt5.15.0的code并成功安装到Qt5.9.9中进行使用,界面拖…

51单片机嵌入式开发:3、STC89C52操作8八段式数码管原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 STC89C52操作8八段式数码管原理 1 8位数码管介绍1.1 8位数码管概述1.2 8位数码管原理1.3 应用场景 2 原理图图解2.1 74HC573原理2.2 74HC138原理2.3 数码管原理 3 数码管程序…

树模型详解2-GBDT算法

与adaboost一样,GBDT也是采用前向分步算法,只是它会用决策树cart算法作为基学习器,因此先要从分类树和回归树讲起 决策树-提升树-梯度提升树 决策树cart算法 回归树:叶子结点的值是所有样本落在该叶子结点的平均值 如何构建&a…

【绿色版】Mysql下载、安装、配置与使用(保姆级教程)

大家都知道,Mysql安装版的卸载过程非常繁琐,而且卸载不干净会出现许多问题,很容易让大家陷入重装系统的窘境。基于此,博主今天给大家分享绿色版Mysql的安装、配置与使用。 目录 一、Mysql安装、配置与使用 1、下载解压 2、创建…

zabbix 配置钉钉告警

1.申请一个钉钉企业版 2.群内申请一个机器人 下载电脑版钉钉,登录后,在要接收群消息的群里,点击右上角设置图标,下滑找到机器人,添加一个机器人,保存机器人的webhook地址 保存这里的加签字符串 保存这里的…

深度网络现代实践 - 深度前馈网络之反向传播和其他的微分算法篇

序言 反向传播(Backpropagation,简称backprop)是神经网络训练过程中最关键的技术之一,尤其在多层神经网络中广泛应用。它是一种与优化方法(如梯度下降法)结合使用的算法,用于计算网络中各参数的…

香橙派AIpro开发板评测:部署yolov5模型实现图像和视频中物体的识别

OrangePi AIpro 作为业界首款基于昇腾深度研发的AI开发板,自发布以来就引起了我的极大关注。其配备的8/20TOPS澎湃算力,堪称目前开发板市场中的顶尖性能,实在令人垂涎三尺。如此强大的板子,当然要亲自体验一番。今天非常荣幸地拿到…

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method--论文笔记

论文笔记 资料 1.代码地址 https://github.com/iBelieveCJM/pseudo_label-pytorch 2.论文地址 3.数据集地址 论文摘要的翻译 本文提出了一种简单有效的深度神经网络半监督学习方法。基本上,所提出的网络是以有监督的方式同时使用标记数据和未标记数据来训练的…

ASCII码对照表(Matplotlib颜色对照表)

文章目录 1、简介1.1 颜色代码 2、Matplotlib库简介2.1 简介2.2 安装2.3 后端2.4 入门例子 3、Matplotlib库颜色3.1 概述3.2 颜色图的分类3.3 颜色格式表示3.4 内置颜色映射3.5 xkcd 颜色映射3.6 颜色命名表 4、Colorcet库5、颜色对照表结语 1、简介 1.1 颜色代码 颜色代码是…

2024亚太杯数学建模竞赛(B题)的全面解析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024亚太杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…

数据库-MySQL 实战项目——书店图书进销存管理系统数据库设计与实现(附源码)

一、前言 该项目非常适合MySQL入门学习的小伙伴,博主提供了源码、数据和一些查询语句,供大家学习和参考,代码和表设计有什么不恰当还请各位大佬多多指点。 所需环境 MySQL可视化工具:navicat; 数据库:MySq…

MySQL:如何在已经使用的数据表中增加一个自动递增的字段

目录 一、需求 二、实现步骤 (一)数据表students (二)添加整型字段 (三)更新SID字段的值 1、使用用户定义的变量和JOIN操作 2、用SET语句和rownum变量 (1)操作方法 &#x…

使用antd的<Form/>组件获取富文本编辑器输入的数据

前端开发中,嵌入富文本编辑器时,可以通过富文本编辑器自身的事件处理函数将数据传输给后端。有时候,场景稍微复杂点,比如一个输入页面除了要保存富文本编辑器的内容到后端,可能还有一些其他输入组件获取到的数据也一并…

MySQL篇三:数据类型

文章目录 前言1. 数值类型1.1 tinyint类型1.2 bit类型1.3 小数类型1.3.1 float1.3.2 decimal 2. 字符串类型2.1 char2.2 varchar2.3 char和varchar比较 3. 日期类型4. enum和set 前言 数据类型分类: 1. 数值类型 1.1 tinyint类型 在MySQL中,整型可以指…

如何第一次从零上传项目到GitLab

嗨,我是兰若,今天想给大家说下,如何上传一个完整的项目到与LDAP集成的GitLab,也就是说这个项目之前是不在git上面的,这是第一次上传,这样上传上去之后,其他小伙伴就可以根据你这个项目的git地址…

自动批量将阿里云盘文件发布成WordPress文章脚本源码(以RiPro主题为例含付费信息下载地址SEO等自动设置)源码

背景 很多资源下载站,付费资源下载站,付费内容查看等都可以用WordPress站点发布内容,这些站点一般会基于一个主题,付费信息作为文章附属的信息发布,底层存储在WP表里,比如日主题,子比主题等。 …

2-5 softmax 回归的简洁实现

我们发现通过深度学习框架的高级API能够使实现线性回归变得更加容易。 同样,通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节如在上节中一样, 继续使用Fashion-MNIST数据集,并保持批量大小为256。 import torch from torc…

【基础篇】第4章 Elasticsearch 查询与过滤

在Elasticsearch的世界里,高效地从海量数据中检索出所需信息是其核心价值所在。本章将深入解析查询与过滤的机制,从基础查询到复合查询,再到全文搜索与分析器的定制,为你揭开数据检索的神秘面纱。 4.1 基本查询 4.1.1 Match查询…

多语言版在线出租车预订完整源码+用户应用程序+管理员 Laravel 面板+ 司机应用程序最新版源码

源码带PHP后台客户端源码 Flutter 是 Google 开发的一款开源移动应用开发 SDK。它用于开发 Android 和 iOS 应用,也是为 Google Fuchsia 创建应用的主要方法。Flutter 小部件整合了所有关键的平台差异,例如滚动、导航、图标和字体,可在 iOS 和…