当前位置: 首页 > news >正文

css 选择器汇总

目录

  • 所有选择器
  • 伪类选择器

所有选择器

选择器用法
id选择器#myid
类选择器.myclassname
标签选择器div,h1,p
相邻选择器h1+p
子选择器ul > li
后代选择器li a
通配符选择器*
属性选择器a[rel=“external”]
伪类选择器a:hover, li:nth-child

伪类选择器

在CSS3中新增了一个结构伪类选择器,它能用更加简洁的代码,实现我们的某些需求。

定义:结构伪类选择器主要根据的是文档的结构来选择元素,常常用在根据父级选择器选出某些想要的子元素。

主要语法如下:

编号语法含义
1E:first-child匹配父元素中的第一个子元素E
2E:last-child匹配父元素中最后一个E元素
3E:nth-child(n)匹配父元素中的第n个子元素E
4E:first-of-type指定类型E的第一个
5E:last-of-type指定类型E的最后一个
6E:nth-of-type(n)指定类型E的第n个

区别(:nth-child(n) 和 :nth-of-type(n))

:nth-child(n) 和 :nth-of-type(n) 都是 CSS 中的伪类选择器,用于根据它们在父元素中的位置来选择特定的元素。然而,它们之间有一个关键的区别:
:nth-child(n)
这个选择器会选择父元素的第 n 个子元素,无论子元素的类型是什么。它根据元素在父元素中的位置来选择,而不考虑元素的类型。这意味着如果一个父元素有多个不同类型的子元素(例如 div, p, span),:nth-child(n) 会选择第 n 个出现的子元素,无论它的具体类型。
:nth-of-type(n)
相比之下,:nth-of-type(n) 选择器会根据元素的类型来选择特定位置的子元素。它只计算与目标元素相同类型的兄弟元素,并选择其中的第 n 个。例如,如果你想选择所有 p 标签中的第二个,你将使用 p:nth-of-type(2),这将跳过任何非 p 类型的兄弟元素。

示例:

<div id="parent"><p>Paragraph 1</p><div>Div 1</div><p>Paragraph 2</p><div>Div 2</div><p>Paragraph 3</p>
</div>
/* 使用 :nth-child(n) */
#parent > *:nth-child(2) {color: red;
}/* 使用 :nth-of-type(n) */
#parent > p:nth-of-type(2) {color: blue;
}

在上述示例中:
*:nth-child(2) 将选择 #parent 内部的第二个子元素,这里是 div(“Div 1”),并将其文本颜色设置为红色。
p:nth-of-type(2) 将选择 #parent 内部的第二个

元素(“Paragraph 2”),并将其文本颜色设置为蓝色。
总结来说,:nth-child(n) 关注位置,而 :nth-of-type(n) 关注类型和位置。在实际应用中,选择合适的选择器取决于你想要根据元素的类型还是单纯的位置来选择元素。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 普中51单片机:数码管显示原理与实现详解(四)
  • 在本地运行React集成TypeScript的项目
  • BulingBuling - 作息安排 [Reset Your Routine] - 1
  • 【初阶数据结构】深入解析循环队列:探索底层逻辑
  • 深度学习与CV入门
  • 中国科学技术大学发布了2024年少年班录取名单
  • HTML5使用<mark>标签:高亮显示文本
  • java面试-java基础(上)
  • 商家店铺电商小程序模板源码
  • 联想小新14Pro,误删了一个注册表,怎么办?
  • c#的List<T>的SelectMany 和Select
  • 【LinuxC语言】手撕Http协议之GET方法的实现
  • Spring AOP源码篇四之 数据库事务
  • 【C++】初步认识C++
  • Mobile ALOHA: 你需不需要一个能做家务的具身智能机器人
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • CSS 专业技巧
  • Docker容器管理
  • flutter的key在widget list的作用以及必要性
  • HashMap剖析之内部结构
  • JAVA_NIO系列——Channel和Buffer详解
  • Laravel 中的一个后期静态绑定
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • OSS Web直传 (文件图片)
  • React-生命周期杂记
  • Sass Day-01
  • Spring声明式事务管理之一:五大属性分析
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 测试如何在敏捷团队中工作?
  • 给初学者:JavaScript 中数组操作注意点
  • 记一次和乔布斯合作最难忘的经历
  • 面试遇到的一些题
  • 让你的分享飞起来——极光推出社会化分享组件
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 原生JS动态加载JS、CSS文件及代码脚本
  • linux 淘宝开源监控工具tsar
  • MPAndroidChart 教程:Y轴 YAxis
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # centos7下FFmpeg环境部署记录
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (~_~)
  • (03)光刻——半导体电路的绘制
  • (13):Silverlight 2 数据与通信之WebRequest
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (算法)Travel Information Center
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net Stream篇(六)
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 服务 ServiceController