CSS常见选择器总结

news2024/10/4 2:25:44

1.简单选择器

简单选择器是开发中使用最多的选择器,包含:

  • 元素选择器,使用元素的名称

  • 类选择器,使用.类名

  • id选择器,使用#id

id注意事项:

一个HTML文档里面的id值 是唯一的,不能重复
  • id值如果由多个单词组成,单词之间可以用中划线-、下划线_连接,也可以使用驼峰标识
  • 最好不要用标签名作为id值

2.属性选择器

[att] 选择拥有att属性的元素

[att=val] 选择拥有属性att并且属性值为val的元素

<style>
    [title] {
      color: red;
    }
    [title=div] {
      background-color: blue;
    }
  </style>
  
  <div>我是div元素</div>
  <div title="div">我也是div元素</div>
  <p>我是p元素</p>
  <h2 title="h2">我是h2元素</h2>

3.后代选择器

  • 选中所有后代(用 空格 分隔)

  <style>
    /* 所有后代选择器 */
    .home span {
      color: red;
      font-size: 30px;
    }
  </style>
  
  <div class="home">
    <span>啦啦啦啦</span>  //选中
    <div class="box">
      <p>我是p元素</p>
      <span class="home-item">呵呵呵呵</span> //选中
  </div>
  • 选中直接后代(使用 分隔)

  <style>
    /* 所有后代选择器 */
    .home > span {
      color: red;
      font-size: 30px;
    }
  </style>
  
  <div class="home">
    <span>啦啦啦啦</span>  //选中
    <div class="box">
      <p>我是p元素</p>
      <span class="home-item">呵呵呵呵</span> //未选中
  </div>

4.兄弟选择器

  • 相邻兄弟选择器(使用 连接)

  <style>
    .box + .content {
      color: red;
    }
  </style>
  <div class="home">
    <div>叽叽叽叽</div>
    <div class="box">呵呵呵呵</div>
    <div class="content">哈哈哈哈</div> //选中
    <p>我是p元素</p>
  </div>

       选中class="box"的元素的具有class="content "的直接兄弟元素,直接兄弟和class="content "要同时满足,只会选中一个。

  • 普遍兄弟选择器(使用 连接)

  <style>
    .box ~ div {
      background-color: #f6b8b8;
    }
  </style>
  <div class="home">
    <div>叽叽叽叽</div>
    <div class="box">呵呵呵呵</div>
    <div class="content">哈哈哈哈</div> //选中
    <div>嘻嘻嘻嘻</div> //选中
    <div>嘿嘿嘿嘿</div> //选中
    <p>我是p元素</p>
  </div>

       选中class="box"元素的后面的兄弟元素,并且这些兄弟是div元素 ,选中同时满足两个条件的元素,可以选中多个。

5.组合选择器

交集选择器(两个选择器紧密相连

选中同时满足两个条件的元素:

  <style>
    div.box {
      color: red;
      font-size: 30px;
    }
  </style>
  <div class="box">我是box里面的div元素</div> //选中
  <div>我是普通div元素</div>
  <p class="box">我是p元素</p>

并集选择器(两个选择器以,分隔)

只要符合其中一个条件就选中

  <style>
   h1, h2 {
      color: red;
      font-size: 40px;
    }
  </style>
  <p>我是p元素</p> //选中 
  <h1>我是h1元素</h1> //选中

 

6.伪类选择器

伪类是 选择器的一种 ,它用于选择处于特定状态的元素。
常见的伪类有:

1.动态伪类

  • a:link 未访问的链接
  • a:visited 已访问的链接
  • a:hover 鼠标挪动到链接上(重要)
  • a:active 激活的链接(鼠标在链接上长按住未松开)
   <style>
    /* a元素的链接从来没有被访问过 */
    a:link {
      color: red;
    }
    /* a元素被访问过了颜色 */
    a:visited {
      color: green;
    }
    /* a元素鼠标放到上面 */
    a:hover {
      color: blue;
    }
    /* 点下去了, 但是还没有松手 */
    a:active {
      color: purple;
    }
    /* 所有的状态下同样的样式 */
    a {
      color: orange;
    }
    /* a/input元素聚焦(获取焦点) */
    input:focus {
      color: yellow;
    }
  </style>
  <a href="http://www.mi.com">小米</a>
  <a href="http://www.baidu.com">百度一下</a>
使用注意
  • :hover必须放在:link和:visited后面才能完全生效
  • :active必须放在:hover后面才能完全生效
所以建议的编写顺序是 :link、:visited、:hover、:active

 除了a元素,:hover、:active也能用在其他元素上

  <style>
    /* 鼠标放到div元素上面 */
    div:hover {
      color: blue;
    }
    /* 点下去了, 但是还没有松手 */
    div:active {
      color: purple;
    }
  </style>

  <div>我是div元素</div>

动态伪类(:focus) 

选中拥有输入焦点的元素(能接收键盘输入),适用于 input 和 元素(a元素可以被键盘的Tab键选中聚焦)

    /*-------- a/input元素聚焦(获取焦点)-------- */
 <style>   
    input:focus {
      background-color: #ea3f9d;
      color: yellow;
    }
    a:focus{
      background-color: #ea3f9d;
      color: yellow;
    }
  </style>
  <a href="http://www.baidu.com">百度一下</a>
  <input type="text">
动态伪类的编写顺序建议为:
:link、:visited、:focus、:hover、:active
直接给a元素设置样式,相当于给a元素的所有动态伪类都设置了
  • 相当于a:link、a:visited、a:hover、a:active、a:focus的color都是设置了相同样式

2.结构伪类

:nth-child

:nth-child(1)
  • 是父元素中的第1个子元素
:nth-child(2n)
  • n代表任意正整数和0 (0,1,2,3...)
  • 是父元素中的第偶数个子元素(第2、4、6、8......个)
  • 跟:nth-child(even)同义
:nth-child(2n + 1)
  • n代表任意正整数和0 (0,1,2,3...)
  • 是父元素中的第奇数个子元素(第1、3、5、7......个)
  • 跟:nth-child(odd)同义
nth-child(-n + 2)
  • 代表前2个子元素
<style>
    ul li:nth-child(3) {
      color: red;
    }
    /* 0, 1, 2, 3, 4, 5...... */
    ul li:nth-child(2n) {
      color: green;
    }
    ul li:nth-child(2n + 1) {
      color: rgb(102, 235, 72);
    } */
    div > div:nth-child(4n + 1) {
      color: orange;
    }
    div > div:nth-child(4n + 2) {
      color: purple;
    }
    div > div:nth-child(4n + 3) {
      color: red;
    }
    div > div:nth-child(4n) {
      color: blue;
    }
    /* 前几个 */
    div > div:nth-child(-n + 5) {
      font-size: 20px;
    }
  </style>
  <ul>
    <li>列表元素1</li>
    <li>列表元素2</li>
    <li>列表元素3</li>
    <li>列表元素4</li>
    <li>列表元素5</li>
    <li>列表元素6</li>
  </ul>
  <div>
    <div>列表元素1</div>
    <div>列表元素2</div>
    <div>列表元素3</div>
    <div>列表元素4</div>
    <div>列表元素5</div>
    <div>列表元素6</div>
    <div>列表元素7</div>
    <div>列表元素8</div>
    <div>列表元素9</div>
    <div>列表元素10</div>
  </div>

 

 :nth-last-child( )

从最后一个子元素开始往前计数

  •  :nth-last-child(1),代表倒数第一个子元素
  •  :nth-last-child(-n + 2),代表最后2个子元素

:nth-of-type( )

不同点是:nth-of-type()计数时只计算同种类型的元素

:nth-last-of-type( )

不同点是:nth-last-of-type()从最后一个这种类型的子元素开始往前计数

3.否定伪类

4.伪元素选择器

常用的伪元素有
  • ::before
  • ::after

::before和::after用来在一个元素的内容之前或之后插入其他内容(可以是文字、图片)

常通过 content 属性 来为一个元素添加修饰性的内容。
    /* 伪元素 */
  <style>
    .item::before {
      content: "321";
      color: orange;
      font-size: 20px;
    }
    .item::after {
      content: url("../images/hot_icon.svg");
      font-size: 20px;
      position: relative; /* 相对定位 */
      left: 5px;
      top: 2px;
    }
  </style>
 <div class="item">我是box3</div>

  • ::first-line(选中第一行)
  • ::first-letter (选中第一个字母)
  <style>
    .box {
      width: 800px;
      background-color: #f00;
      color: #fff;
    }
    .box::first-line {
      font-size: 30px;
      color: orange;
    }
    .box::first-letter {
      font-size: 50px;
      color: blue;
    }
  </style>
  
  <div class="box">
    雁门关,别名西陉关 ,坐落于我国山西省忻州市代县以北约成员国20千米的雁门山。它是长城上的一个关键大关,与宁武关、偏关并称之为“外三关”。坐落于偏关县大河上,辖四侧墙,总长度数百公里。迄今仍有30千米储存完好无损,所有用砖遮盖,沿堤岸耸立,十分壮阔。“边关丁宁岩,山连紫塞,地控大河北,鑫城携手共进强。”这也是前人对偏关的赞扬。早在春秋战国时代,这儿便是赵武灵王攻克胡林的竞技场。唐朝名将在关东建有九龙庙,宋代建有魏镇、杨三关。现有的关城始建明洪武二十三年,是重点学科文物古迹。
  </div>

为了区分伪元素和伪类,建议伪元素使用2个冒号::

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云服务器x86计算架构ECS实例规格汇总

阿里云企业级服务器基于X86架构的实例规格&#xff0c;每一个vCPU都对应一个处理器核心的超线程&#xff0c;基于ARM架构的实例规格&#xff0c;每一个vCPU都对应一个处理器的物理核心&#xff0c;具有性能稳定且资源独享的特点。阿里云服务器网aliyunfuwuqi.com分享阿里云企业…

特约|数码转型思考:Web3.0与银行

日前&#xff0c;欧科云链研究院发布重磅报告&#xff0c;引发银行界及金融监管机构广泛关注。通过拆解全球70余家银行的加密布局&#xff0c;报告认为&#xff0c;随着全球采用率的提升与相关技术的成熟&#xff0c;加密资产已成为银行业不容忽视也不能错过的创新领域。 作为…

尚硅谷kafka3.0.0

目录 &#x1f483;概述 ⛹定义 ​编辑⛹消息队列 &#x1f938;‍♂️消息队列应用场景 ​编辑&#x1f938;‍♂️两种模式&#xff1a;点对点、发布订阅 ​编辑⛹基本概念 &#x1f483;Kafka安装 ⛹ zookeeper安装 ⛹集群规划 ​编辑⛹流程 ⛹原神启动 &#x1f938;‍♂️…

gRPC之gateway集成swagger

1、gateway集成swagger 1、为了简化实战过程&#xff0c;gRPC-Gateway暴露的服务并未使用https&#xff0c;而是http&#xff0c;但是swagger-ui提供的调用服 务却是https的&#xff0c;因此要在proto文件中指定swagger以http调用服务&#xff0c;指定的时候会用到文件 prot…

WebService SOAP1.1 SOAP1.12 HTTP PSOT方式调用

Visual Studio 2022 新建WebService项目 创建之后启动运行 设置默认文档即可 经过上面的创建WebService已经创建完成&#xff0c;添加HelloWorld3方法&#xff0c; [WebMethod] public string HelloWorld3(int a, string b) { //var s a b; return $"Hello World ab{a …

Markdown语法详解

文章目录 [toc] 一、简介二、样式1. 标题2. 字体3. 引用4. 分割线5. 图片6. 超链接7. 列表8. 表格9. 代码 一、简介 以前写学习文档常用的软件都是Word或者CSDN自带的编辑器&#xff0c;但Word用起来不太灵活&#xff0c;而CSDN自带编辑器又感觉逼格不够&#xff08;主要原因&…

(自我剖析一下我博客“问答”中的第三个问题)准确率一直居低不上是什么原因引起的?

我提的问题是&#xff1a; “我使用单层GRU训练minist数据集时&#xff0c;准确率一直处于下图的状态是为什么&#xff1f; 什么原因引起的&#xff1f;” 这种debug就比较难受&#xff0c;因为程序是能跑的&#xff0c;任何“error”都没有出。这就表明在程序中有某些小细节没…

【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar

SwiftUI模块系列 - 已更新60篇 SwiftUI项目 - 已更新5个项目 往期Demo源码下载 技术:SwiftUI、SwiftUI4.0、Instagram、Firebase 运行环境: SwiftUI4.0 Xcode14 MacOS12.6 iPhone Simulator iPhone 14 Pro Max SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建Tab…

数据集的特征提取

1、 特征提取 1.1、 将任意数据&#xff08;如文本或图像&#xff09;转换为可用于机器学习的数字特征 注&#xff1a;特征值化是为了计算机更好的去理解数据 字典特征提取(特征离散化)文本特征提取图像特征提取&#xff08;深度学习将介绍&#xff09; 2 特征提取API sklear…

Python OpenCV通过灰度平均值进行二值化处理以减少像素误差

Python OpenCV通过灰度平均值进行二值化处理以减少像素误差 前言前提条件相关介绍实验环境通过灰度平均值进行二值化处理以减少像素误差固定阈值二值化代码实现 灰度平均值二值化代码实现 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容…

数据安全与PostgreSQL:最佳保护策略

在当今数字化时代&#xff0c;数据安全成为了企业不可或缺的一环。特别是对于使用数据库管理系统&#xff08;DBMS&#xff09;的组织来说&#xff0c;确保数据的完整性、保密性和可用性至关重要。在众多DBMS中&#xff0c;PostgreSQL作为一个强大而灵活的开源数据库系统&#…

酒类商城小程序怎么做

随着互联网的快速发展&#xff0c;线上购物越来越普及。酒类商品也慢慢转向线上销售&#xff0c;如何搭建一个属于自己的酒类小程序商城呢&#xff1f;下面就让我们一起来看看吧&#xff01; 一、登录乔拓云平台 首先&#xff0c;我们需要进入乔拓云平台的后台&#xff0c;点击…

Pytorch公共数据集、tensorboard、DataLoader使用

本文将主要介绍torchvision.datasets的使用&#xff0c;并以CIFAR-10为例进行介绍&#xff0c;对可视化工具tensorboard进行介绍&#xff0c;包括安装&#xff0c;使用&#xff0c;可视化过程等&#xff0c;最后介绍DataLoader的使用。希望对你有帮助 Pytorch公共数据集 torc…

【第三天】C++类和对象进阶指南:从堆区空间操作到友元的深度掌握

一、new和delete 堆区空间操作 1、new和delete操作基本类型的空间 new与C语言中malloc、delete和C语言中free 作用基本相同 区别&#xff1a; new 不用强制类型转换 new在申请空间的时候可以 初始化空间内容 2、 new申请基本类型的数组 3、new和delete操作类的空间 4、new申请…

【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 2/7部分-搭建TabBar

SwiftUI模块系列 - 已更新60篇 SwiftUI项目 - 已更新5个项目 往期Demo源码下载 技术:SwiftUI、SwiftUI4.0、Instagram、Firebase 运行环境: SwiftUI4.0 Xcode14 MacOS12.6 iPhone Simulator iPhone 14 Pro Max SwiftUI基于Firebase搭建一个类似InstagramApp 2/7部分-搭建Tab…

构建离线应用:Apollo与本地状态管理

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

网络流探索:解决网络最大流问题的算法集锦

1.初识网络流 网络流一直是初学者心中很难过去的一道坎&#xff0c;很多人说它是一个不像DFS/BFS那么直观的算法&#xff0c;同时网上也有各种参差不齐的材料&#xff0c;让人感到一知半解。 如果你也有这样的感觉&#xff0c;那么不要灰心&#xff0c;坚持住&#xff0c;因为…

【仙逆】王林用计灭富二代,有长命锁也没用,藤化元一怒请一人出山

【侵权联系删除】【文/郑尔巴金】 仙逆动漫第七集已经更新了。而这一集看下来&#xff0c;可以说非常精彩&#xff0c;全程在打&#xff0c;期间还能看到主角王林用谋&#xff0c;是如何一步步的把敌人藤厉引入陷阱灭杀的&#xff0c;更可以看到王林是如何筑基的。那么多的不说…

Windows系统下安装CouchDB3.3.2教程

安装 前往CouchDB官网 官网点击download下载msi文件 双击该msi文件&#xff0c;一直下一步 创建个人account 设置cookie value 用于进行身份验证和授权。 愉快下载 点击OK 重启 启动 重启电脑后 打开浏览器并访问以下链接&#xff1a;http://127.0.0.1:5984/ 如果没有问…

SQL UPDATE 语句(更新表中的记录)

SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录。 还可以使用AND或OR运算符组合多个条件。 SQL UPDATE 语法 具有WHERE子句的UPDATE查询的基本语法如下所示&#xff1a; UPDATE table_name SET column1 value1, column2 value2, ... WHERE conditi…