我对CSS选择器的认识

我对CSS选择器的认识

一、简述  

  CSS选择器是对HTML元素进行选择的筛选条件,大概可以分为两类:

  1. 特征选择器——根据元素自身所具有的某种特征进行筛选,比如名称、ID、属性等;
  2. 关系选择器——根据元素与其他元素的关系进行筛选,比如子元素、兄弟元素等;

  在真正使用的时候,几个简单的选择器可以组合成更复杂的选择器,所以谁也说不上CSS选择器有多少。还有两个选择器是功能性的,它们可以给元素已有内容之前或之后添加新内容。 

  我做了一个项目,里面包含一个测试CSS选择器的小功能,请看这里。

二、归纳

  下文中所有的 SELECTOR 都代表任何一个有效的选择器。

  1. 特征选择器:

描述选择器备注
1. 无论有什么特征——即全部 * { }  
2. 元素名称是 "element" element { }  
3. 具有类名 "className" .className { }  
4. 具有id名 "someID" #someID { }  
5. 带有属性  attr SELECTOR[attr] { }  
6. 带有属性 attr,且属性值为 "value" SELECTOR[attr="value"] { }  
7. 带有属性 attr,且其若干个属性值中有一个是 "value" SELECTOR[attr~="value"] { }  
8. 带有属性 attr,且其属性值包含字符串 "str" SELECTOR[attr*="str"] { }  
9. 鼠标正位于其上方 SELECTOR:hover { }  
10. SELECTOR 是个独生子——它的父元素只有它这一个子元素 SELECTOR:only-child { }  
11. SELECTOR 是其父亲的第一个子元素 selector:first-child { }  
12. SELECTOR 是其父亲的第 N 个子元素 selector:nth-child(N) { }  
13. SELECTOR 是其父亲的最后一个子元素 selector:last-child { }  
14. SELECTOR 内部是真空——连空格都没有 SELECTOR:empty { }  
15. SELECTOR 被某个链接锚定了,而且该链接被点击了 SELECTOR:target { } <a href="#topic">跳转到 SELECTOR 处</a>
16. SELECTOR 中被用户通过鼠标拖动选中的内容 SELECTOR::selection { }  
链接专有的特征
17. 未被访问的链接 a:link { }  
18. 已被访问的链接 a:visited { }  
19. 正在被点击的链接 a:active { }  
表格元素专有的特征
20. 目标是启用的 SELECTOR:enabled { }  
21. 目标是禁用的 SELECTOR:disabled { }  
22. 目标是被选中的(单选框、复选框) SELECTOR:checked { }  
23. 目标获得了焦点 SELECTOR:focus { } 能接收用户输入的元素,当它正在接收时,就获得了焦点。
两个功能性选择器
24. 给 SELECTOR 的内容之前加上些东西 SELECTOR:before { }  
25. 给 SELECTOR 内容之后加上些东西 SELECTOR:after { }  

  2. 关系选择器

描述选择器备注
1. SELECTOR1 和 SELECTOR2 SELECTOR1, SELECTOR2 { }  
2. 位于 SELECTOR1 之后的所有兄弟元素 SELECTOR2 SELECTOR1~SELECTOR2 { }  
3. 与 SELECTOR1 紧邻着的 SELECTOR2 元素 selector1 selector2 { }  
4. SELECTOR 的首字母 selector:first-letter { } 类似的还有  SELECTOR:first-line { } 
5. SELECTOR1 的所有子元素 SELECTOR2 selector1>selector2 { }  
6. SELECTOR1 的所有后代元素 SELECTOR2 selector1 selector2 { }  
7. 所有不是 SELECTOR2 的 SELECTOR1 SELECTOR1:not(SELECTOR2) { }  

  个人浅薄之见,肯定有不到之处,希望得到有心之人指正,谢谢!

本文转载于:猿2048https://www.mk2048.com/blog/blog.php?id=h1h2cib&title=我对CSS选择器的认识

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

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

相关文章

【USACO2006 Mar】滑雪缆车 skilift

【USACO2006 Mar】 滑雪缆车 skilift Time Limit 1000 msMemory Limit 131072 KBytes Description 科罗拉多州的罗恩打算为奶牛建造一个滑雪场&#xff0c;为此要在山上规划一条缆车线路。 整座山可以用一条折线来描述&#xff0c;该折线有N个拐点&#xff0c;起点是1&#xff…

yolov4Linux,基于Darknet的YOLOv4目标检测

目录一、Windows环境下的YOLOv4目标检测1、环境配置环境准备&#xff1a;Win10、CUDA10.1、cuDNN7.65、Visual Studio 2019、OpenCV 3.4(1)Visual Studio2019企业版安装(3)下载并安装CUDA10.1&#xff0c;下载安装cuDNN7.65对于cudnn直接将其解开压缩包&#xff0c;然后需要将b…

二元置信椭圆r语言_医学统计与R语言:圆形树状图(circular dendrogram)

微信公众号&#xff1a;医学统计与R语言如果你觉得对你有帮助&#xff0c;欢迎转发输入1&#xff1a; "ggraph")结果1&#xff1a; name 输入2&#xff1a; <- graph_from_data_frame(myedges1, verticesmyvertices,directed T)ggraph(mygraph, layout dend…

Java:检查器框架

我在JavaOne 2012上 了解的有趣的工具之一是Checker Framework 。 Checker Framework的网页之一 指出 &#xff0c;Checker Framework“增强了Java的类型系统&#xff0c;使其更强大&#xff0c;更有用”&#xff0c;从而使软件开发人员“能够检测并防止Java程序中的错误”。 查…

南岸焊接机器人厂_造船三部高效焊接工艺技术年鉴

为了提升公司高效焊自动化率&#xff0c;实现降本增效目标&#xff0c;造船事业三部积极响应公司领导号召&#xff0c;充分挖掘自身资源&#xff0c;2020年&#xff0c;在高效焊接技术、设备开发研究等方面&#xff0c;不断创新、敢于突破&#xff0c;获取了多项焊接新技术、新…

软工Hello World!团队第二周博客汇总

2017.10.20-2017.10.26 Scrum会议&#xff1a; 第一天&#xff1a;http://www.cnblogs.com/liusx0303/p/7704482.html 第二天&#xff1a;http://www.cnblogs.com/Mingezi/p/7709472.html 第三天&#xff1a;http://www.cnblogs.com/lynlyn/p/7717275.html 第四天&#xff1a;h…

什么是css sprites,如何使用?

css sprites&#xff1a;精灵图&#xff08;雪碧图&#xff09;&#xff1a;把一堆小图片整合在一张大图上&#xff0c;通过背景图片相关设置&#xff08;背景图片、背景图是否重复、背景图定位&#xff09;&#xff0c;显示图片&#xff0c;减轻服务器对图片的请求数量 优点&…

线性回归csv数据集_测试数据科学家线性回归的30个问题

你的目标是数据科学家吗&#xff1f;那你对线性回归了解有多深入呢&#xff0c;下面的30道题&#xff0c;可以帮助你或者测试别人是否真的达到的数据科学家的水平&#xff0c;关注回复&#xff0c;答案在评论区&#xff1a;1)是非题&#xff1a;线性回归是一种受监督的机器学习…

linux调试crontab,linux - crontab 的调试,启动thin服务器

linux - crontab 的调试&#xff0c;启动thin服务器2018-11-18 17:10访问量: 1059分类&#xff1a;技术参考&#xff1a;https://askubuntu.com/questions/56683/where-is-the-cron-crontab-log日志默认位置在 /var/log/syslog 中。 grep CRON 。 如果没有安装MTA的话(例如 mai…

番石榴前提条件课

编写过很多Java文章的人可能都编写了以条件为开头的方法&#xff0c;这些条件可以在继续进行该方法的其余实现之前&#xff0c;先验证提供的参数或要操作的对象的状态。 这些会增加方法的冗长性&#xff0c;有时&#xff0c;尤其是在有多个检查的情况下&#xff0c;几乎会淹没该…

dw空心圆项目符号_如何懂建筑施工图?搞懂这些符号解析,耐下性子研究不会学不会...

施工图纸一个建筑方向&#xff0c;是房屋建筑的依据&#xff0c;更是一种工程语言&#xff0c;它能够明确的规定出我们建造出怎样的建筑&#xff0c;看懂它是入行基础。当然建筑图包含的因素比较多&#xff0c;有具体的建筑符号&#xff0c;尺寸、做法以及技术要求都在里面&…

子域名查询技术

子域名查询是渗透测试中的重要一环&#xff0c;收集尽可能多的子域名就是尽可能地扩大我们的攻击面和了解网络内部结构。 子域名保存位置利用点具体用法DNS服务器区域传送漏洞dig ns.dnsdomain.com target.com axfr主站链接网站爬虫百度site:target.com被动解析字典枚举解析fie…

Dashboard集群

#Dashboard集群 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##8.Dashboard集群#####在controller1安装配置#安装 yum install openstack-dashboard -y#配置 cp /etc/openstack-dashboard/local_settings{,.bak} #egrep -v #|^$ /etc/openstack-…

canvas学习和滤镜实现

最近学习了 HTML5 中的重头戏--canvas。利用 canvas&#xff0c;前端人员可以很轻松地、进行图像处理。其 API 繁多&#xff0c;这次主要学习常用的 API&#xff0c;并且完成以下两个代码&#xff1a;实现去色滤镜实现负色(反色)滤镜 欢迎入群&#xff1a;857989948 。IT 技术深…

python 数据分析库_五个 Python 常用数据分析库

前言 Python 是常用是数据分析工具&#xff0c;常用的数据分析库有很多&#xff0c;下面主要介绍如下五个分析库&#xff1a;NumPy、Pandas、SciPy、StatsModels、Matplotlib。 NumPy 是一个非常常用的数据分析库&#xff0c;更准确点说是一个数学计算库&#xff0c;包括下面的…

android代码混淆作用,Android分享:代码混淆那些事

1) 前言ProGuard是一个开源的Java代码混淆器。它可以混淆Android项目里面的java代码&#xff0c;对的&#xff0c;你没看错&#xff0c;仅仅是java代码。它是无法混淆Native代码&#xff0c;资源文件drawable、xml等。2) ProGuard作用压缩: 移除无效的类、属性、方法等优化: 优…

echarts图形,图形自适应窗口大小

一个页面只有一个echarts图形时&#xff0c;可以写为myChart.setOption(option);window.onresize myChart.resize;一个页面含有多个echarts图形时&#xff0c;则只有一个图形可自适应窗口大小&#xff0c;另外一个则不能随窗口大小而改变图形大小&#xff0c;解决办法为在每一…

施工部署主要不包括_建筑工程施工方案及培训实例

[南京]大型土石方工程施工方案本资料为[南京]大型土石方工程施工方案格&#xff0c;共43页。内容简介&#xff1a;本工程位于南京化工园内&#xff0c;扬子玉带扬巴路附近&#xff0c;工程项目为江苏成品油管道配设施扬子玉带油库套油库工程&#xff0c;由中国石化股份有限公司…

Markdown 进阶

目录 markdown进阶语法 内容目录加强代码块脚注流程图时序图LaTeX公式 markdown进阶语法 内容目录 使用 [TOC] 引用目录&#xff0c;将 [TOC] 放至文本的首行&#xff0c;编辑器将自动生成目录有一些编辑器不支持[TOC]标记 加强代码块 使用3个 "" “语言名称”…

Python 字典 values() 方法

描述 Python 字典 values() 方法以列表形式&#xff08;并非直接的列表&#xff0c;若要返回列表值还需调用list函数&#xff09;返回字典中的所有值。 语法 values() 方法语法&#xff1a; D.values() 参数 无。返回值 以列表形式返回字典中的所有值。 实例 以下实例展示了 va…