css选择器按功能分,CSS 选择器

概览

在 CSS 中,选择器用于选择需要添加样式的元素。

CSS 选择器非常丰富,现将 CSS 1 - 3 目前所有的选择器列举如下。

选择器

例子

例子描述

CSS版本

.class

.intro

选择 class="intro" 的所有元素。

1

#id

#firstname

选择 id="firstname" 的元素。

1

*

*

选择所有元素。

2

element

p

选择所有

元素。

1

selector,selector

div,p

选择所有

元素和所有

元素。

1

selector selector

div p

选择

元素内部的所有

元素。

1

selector>selector

div>p

选择父元素为

元素的所有

元素。

2

selector+selector

div+p

选择紧接在

元素之后的所有

元素。

2

[attribute]

[target]

选择带有 target 属性所有元素。

2

[attribute=value]

[target=_blank]

选择 target="_blank" 的所有元素。

2

[attribute~=value]

[title~=flower]

选择 title 属性包含单词 "flower" 的所有元素。

2

[attribute|=value]

[lang|=en]

选择 lang 属性值以 "en" 开头的所有元素。

2

:link

a:link

选择所有未被访问的链接。

1

:visited

a:visited

选择所有已被访问的链接。

1

:active

a:active

选择活动链接。

1

:hover

a:hover

选择鼠标指针位于其上的链接。

1

:focus

input:focus

选择获得焦点的 input 元素。

2

:first-letter

p:first-letter

选择每个

元素的首字母。

1

:first-line

p:first-line

选择每个

元素的首行。

1

:first-child

p:first-child

选择属于父元素的第一个子元素的每个

元素。

2

:before

p:before

在每个

元素的内容之前插入内容。

2

:after

p:after

在每个

元素的内容之后插入内容。

2

:lang(language)

p:lang(it)

选择带有以 "it" 开头的 lang 属性值的每个

元素。

2

selector~selector

p~ul

选择前面有

元素的每个

  • 元素。

3

[attribute^=value]

a[src^="https"]

选择其 src 属性值以 "https" 开头的每个 元素。

3

[attribute$=value]

a[src$=".pdf"]

选择其 src 属性以 ".pdf" 结尾的所有 元素。

3

[attribute*=value]

a[src*="abc"]

选择其 src 属性中包含 "abc" 子串的每个 元素。

3

:first-of-type

p:first-of-type

选择属于其父元素的首个

元素。

3

:last-of-type

p:last-of-type

选择属于其父元素的最后

元素。

3

:only-of-type

p:only-of-type

选择属于其父元素只有唯一的

元素。

3

:only-child

p:only-child

选择属于其父元素只有唯一的子元素

.

3

:nth-child(n)

p:nth-child(2)

选择属于其父元素的第二个子元素

.

3

:nth-last-child(n)

p:nth-last-child(2)

同上,从最后一个子元素开始计数。

3

:nth-of-type(n)

p:nth-of-type(2)

选择属于其父元素第二个

元素。

3

:nth-last-of-type(n)

p:nth-last-of-type(2)

同上,但是从最后一个子元素开始计数。

3

:last-child

p:last-child

选择属于其父元素最后一个子元素

.

3

:root

:root

选择文档的根元素。

3

:empty

p:empty

选择没有子元素的每个

元素(包括文本节点)。

3

:target

#news:target

选择当前活动的 #news 元素。

3

:enabled

input:enabled

选择每个启用的 元素。

3

:disabled

input:disabled

选择每个禁用的 元素

3

:checked

input:checked

选择每个被选中的 元素。

3

:not(selector)

:not(p)

选择非

元素的每个元素。

3

::selection

::selection

选择被用户选取的元素部分。

3

:out-of-range

input:out-of-range

匹配值在指定区间之外的 元素。

3

:in-range

input:in-range

匹配值在指定区间之内的 元素。

3

:read-write

input:read-write

匹配可读可写的 元素。

3

:optional

input:optional

匹配可选输入的 元素。

3

:required

input:required

匹配必须输入的 元素。

3

:valid

input:valid

匹配输入有效的 元素。

3

:invalid

input:invalid

匹配输入无效的 元素。

3

CSS 选择器这么多,都需要掌握吗?多吗,分组去记忆还是很好掌握的,掌握的越多你就越能随心所欲的操纵HTML文档。

上面的选择器只是基础,掌握了上面的内容,只能说明你识字了,至于能不能组成句子,甚至优美的句子还有很大的距离。

记住并使用选择器

如何记住这么多选择器呢?我个人记忆方式是,一是分组,二是使用,在此分享给大家。

基础选择器

类选择器.class,ID选择器#id,通配符选择器*,元素选择器element是四个最基本的选择器,相信你早就记住了。

* {

color: black;

}

a {

color: blue;

}

.msg {

color: red;

}

#top {

background-color: #ff0000;

}

选择器组合

通过使用特定的符号来连接选择器可以实现更加丰富的选择功能。

selector, selector

逗号连接两个或多个选择器实现多选的功能。

h1, h2, .title {

color: black;

}

h1, h2 标签和 class="title" 的元素的字体颜色都设置为黑色。

selector selector

空格直接相连的两个或多个选择器可以实现精确定位的功能。

#header h3 {

color: #fff;

}

ID为header的元素下面的h3元素字体颜色设置为白色。

selector > selector

大于号连接的两个选择器实现父子选择的功能。

HTML文档片段

hello,job1...

hello,job2...

hi,job3...

hi,job4...

CSS样式

.info > p {

background-color: yellow;

}

.info下的所有直接子元素 p(带有hello的段落)背景被设置为黄色,其余的(带有hi的段落,不是子元素或不是直接子元素)不受影响。

1460000006770203

selector + selector

加号相连的两个选择器实现同级紧邻的元素选择的功能。

HTML部分文档

欢迎来到我到的主页

我是唐老鸭。

我最好的朋友是米老鼠。

我的样式会改变。

CSS样式

div + p + p {

background-color: yellow;

}

div 紧挨的第一个同级元素 p 是“我最好的朋友是米老鼠。”,然后又一个 + 连着 p 最终选中最后一个 p.

1460000005103687

selector ~ selector

波浪线连接的两个选择器实现同级并在其下面所有选择器指定元素的选择功能(好绕,看例子吧)。

HTML文档

A div element.
  • Coffee
  • Tea
  • Milk

The first paragraph.

  • Coffee
  • Tea
  • Milk

Another list

  • Coffee
  • Tea
  • Milk

CSS样式

p ~ ul{

background:#ff0000;

}

1460000005103689

p 元素同级的 ul 并且 ul 元素是在 p 的下面。

注意:这个是CSS3新增的选择器。

选择器结合

结合的意思嘛,就是连着写在一起呗。

div#user {

color: black;

}

我是黑色字体

常用的就是 element#id,element.class.

也有一种多类选择器,也算选择器结合

HTML文档

This paragraph is very important.

This is a warning.

This paragraph is a very important warning.

CSS样式

.important {font-weight: bold;}

.warning {font-style: italic;}

.important.warning {background: silver;}

注意:在 IE7 之前的版本中,不能正确地处理多类选择器。

属性选择器

HTML标签可以定义若干属性,我们可以通过属性选择器进行元素的选取。

注意区分CSS3新增的属性选择器。

[attribute]

选取包含某属性的元素。

a[href]

选取包含href属性的a标签。

[attribute=value]

选择某个属性attribute并且属性值为value的元素。

.info[ref='good']

[attribute~=value]

选择某个属性attribute并且属性值中有value这个单词的元素。

这里是指单词,属性值如果是 boy man 则有两个单词。

p[class~='man']

[attribute|=value]

属性起始值为value的元素。

p[class|='cls']

以上是CSS2开始提供的属性选择器,下面的将是CSS3提供的选择器,注意区别使用。

[attribute^=value]

属性值以value开始的元素。

[attribute$=value]

属性值以value结尾的元素。

[attribute*=value]

属性值包含value的元素,不一定是单词哟。

伪类选择器

所谓的伪类,你可以简单的理解为带 : 的选择器。伪类很好理解,一般从名称上就可以知道其作用了。

可以从以下几个方面去记。下面的归类只用来方便记忆,这些选择器并不局限于我所列举的场景。

跟 a 紧密关联的

a:link

所有未被访问的链接。

a:hover

鼠标移动到链接上面。

a:active

鼠标点按在链接上不松开。

a:visited

链接已经点击过。

注意: 为了产生预期的效果,在CSS定义中,尽量采用上面四个的顺序去定义。

:target

是CSS3中新增的选择器,用于标示当前处于活动的锚标记。

HTML文档

This is a heading

Jump to New content 1

Jump to New content 2

Click on the links above and the :target selector highlight the current active HTML anchor.

New content 1...

New content 2...

CSS样式

:target {

border: 2px solid #D4D4D4;

background-color: #e5eecc;

}

当点击锚定位a标签时,相应的锚元素会设置为指定样式。

1460000005103691

跟 input 紧密关联的

:focus

选择具有焦点的元素,一般都是输入元素。

除了 :focus 是CSS2开始有的,下面的都是CSS3新增的伪类。

:enabled

可用的输入元素。

:disabled

不可用的输入元素。

input[type="text"]:disabled {

background:#dddddd;

}

:valid

匹配输入合法的元素,例如:email,number等等。

:invalid

不合法的。

input:invalid {

border:2px solid red;

}

:optional

匹配可选输入元素。

:required

匹配设置了“required”的元素。

input:required {

background-color: yellow;

}

:read-write

匹配可读可写的元素。

:read-only

匹配设置了“readonly”的元素。

input:read-only {

background-color: yellow;

}

readonly 和 disabled 可以实现同样的功能,禁止用户输入和更改。

:out-of-range

匹配设置范围且值范围超出范围的元素。

input:out-of-range {

border:2px solid red;

}

:in-range

匹配在设置值范围内的元素。

:checked

匹配被选中的元素。

父子及排序关系相关

先说一下常用于 p 的:

:first-letter

第一个字母,一般用于实现首字母大写。

:first-line

选取第一行。

比较通用的

:before

在元素之前插入内容。

:after

在元素之后插入内容。

示例

p:before {

content:"Read this -";

}

之前之后是指元素内部的前面和后面。

::before

xxxx

::after

上面几个是CSS1或2开始支持的,下面的除了:first-child 是CSS2开始的,其余的都是CSS3伪类。

:root

选择文档的根元素,基本就是 标签。

:empty

没有任何子级(包括文本内容)的元素。

父子关系伪类有两种,一种是*-type 的,作用于父元素,另一种是*-child的,作用于子元素,还是看例子好理解。

:first-of-type

选取一个元素的父元素的第一个这个元素。

HTML文档

This is a heading

The first paragraph.

The second paragraph.

The third paragraph.

The fourth paragraph.

CSS样式

p:first-of-type {

background:#ff0000;

}

第一个 p 标签将被设置背景色。p 的父元素是body,body的第一个p元素被选中。

:last-of-type

这个元素的父元素的最后一个这个元素被选中。

:only-of-type

这个元素的父元素只有一个这个元素,可以有其他元素不影响,唯一的这个元素被选中。

:nth-of-type(n)

这个元素的父元素的第n个元素被选中。

n 可以是一个数字,一个关键字,或者一个公式。

数字:从1开始,代表第一个元素

关键字:奇数 odd 偶数 even

表达式:公式(an+b) a 代表一个循环的大小,n是计数器(从0开始),b是偏移量。

示例

tr:nth-of-type(2n+1) {

background:#ff0000;

}

奇数行(1,3,5,7...)设置背景。

:nth-last-of-type(n)

从后往前计算。

说完 type 该说 child 了。

:first-child

这个是CSS2开始有的伪类选择器,选取这个元素的第一个子元素。

示例

ul:first-child {

color: blue;

}

让ul的第一个li的字体为蓝色。

:last-child

最后一个子元素。

:nth-child(n)

第几个子元素,n配置同上。

:nth-last-child(n)

从后开始找子元素。

还剩下几个,单独列出来吧。

其他

:lang(language)

选取lang属性的起始值为language的元素。

:not(selector)

选择器的取反,这个很好理解。

示例

:not(a) {

color: black;

}

所有的非a标签。

::selection

匹配元素中被用户选中或处于高亮状态的部分。

示例

::selection {

color:#ff0000;

background-color:blue;

}

鼠标拉选中的部分字体设置为红色,背景设置为蓝色。

后续会再跟进和补充一些东西,先发这些吧。

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

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

相关文章

tensor数据类型转换_PyTorch的tensor数据类型及其相关转换

1 基本类型PyTorch的数据类型为各式各样的tensor,tensor可以理解为高维矩阵,与Numpy中的array类似。PyTorch中的tensor包括CPU上的数据类型和GPU上的数据类型。Torch定义了七种CPU tensor类型和八种GPU tensor类型。通过使用type函数可以查看变量类型&am…

cli3解决 ie11语法错误 vue_【VUE3.0】它来了,2020年09月18日,Vue.js 3.0 正式发布,但是........

您曾见过凌晨的苹果发布会,那前端界的发布会你见过吗?在Vue3正式发布前,Vue的作者尤雨溪发表主题演讲。注意!注意!注意!发布会中表示不建议大家立刻升级到Vue3.0版本,之前项目中某些依赖项可能还…

centos修改磁盘uuid_为什么MySQL用uuid做主键会被骂?

“ 在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 形且唯一,单机递增),而是推荐连续自增的主键 id,官方的推荐是 auto_increment。那么为什么不建议采用 uuid,使用 uuid 究竟有…

从客户端登陆服务器的配置文件,BLE模式和配置文件

BLE模式和配置文件(原文)本文档探讨了BLE如何工作,特别是如何将两种BLE模式(连接和广告)用于不同的目的。外围设备和中央设备vs服务器和客户端当我们通过BLE连接设备时,我们将它们视为外设(从设备)设备或中央(主设备)设备。 蓝牙标准建立了该区分方式以匹…

和preload_通过LD_PRELOAD绕过disable_functions

0x00 前言前段时间碰到拿到shell以后限制了basedir并且无法执行命令的情况,解决办法是上传恶意的.so文件,并通过设置LD_PRELOAD,然后调用新进程来加载恶意.so文件,达到绕过的效果。当时做这道题目的时候是跟着别人的题解直接套的(…

群晖服务器性能测试,对群晖DS716+进行性能测试_群晖 DS716+_企业存储技术与评测-中关村在线...

Iometer是一个工作在单系统和集群系统上用来衡量和描述I/O子系统的工具。可以被配置为模拟任何程序或者基准测试程序的磁盘和网络I/O的负载,或者用来产生整个综合的I/O负载。它也可以用来产生并测量单系统或者多系统(网络)的负载。在性能测试环节,我们采…

传播路由_什么路由器穿墙效果好?购买防骗知识

买无线路由器,首要辨识什么路由器穿墙效果好。面对市面上五花八门的路由器,很多小白在看到纷繁的参数就凌乱了,上了无良商家的当。小编觉得授人以鱼不如授人以渔,所以给大家写了一篇辨别什么路由器穿墙效果好的防入坑购买指南。我…

小程序消息服务器webapi,小程序订阅消息

# 小程序订阅消息# 功能介绍消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。 订阅消息推送位置:服务通知订阅消息下发条件:用户自主订阅订阅消息卡片跳转能力:点击…

php生成pdf中文断码_Rmarkdown导出中文PDF解决方案

Rmarkdown非常适合R语言使用者导出格式漂亮的文档,但是输出中文PDF的过程中会遇到各种麻烦的问题,本文整理了我的经验供大家参考。总的来说,通过Rmarkdown输出中文版pdf报告,要解决以下两个核心问题:导出PDF需要配置Te…

分数的大小比较优秀教案_人教版小学数学五年级下册异分母分数加、减法公开课优质课课件教案视频...

教学案例-《异分母分数加减法》教学目标:1.借助直观图形,在操作、观察、比较、的活动中理解异分母分数加减法的算理,掌握计算方法,并能正确进行计算。2.渗透转化、迁移的数学思想,积累研究分数问题的数学活动经验。3.能…

分号可以用来分段么_更高效的GMX分段模拟方法:修改tpr文件

■2020-11-01 22:42:18在以前的一篇文章中, 我简单说过基于GROMACS的分段模拟方法[1]. 这种方法非常通用, 几乎能完成任意的功能, 且无须修改源代码, 但是运行效率比较差, 因为每次运行mdrun都要重新生成tpr文件. 对大分子来说, 使用grompp生成tpr还是很耗时的, 可能会成为运行…

java list拷贝_深入了解浅拷贝与深拷贝

在学习深拷贝和浅拷贝之前&#xff0c;咱们先来一个例子&#xff1a;import java.util.ArrayList;public class MyBaby implements Cloneable {/*** 私有变量*/private ArrayList<String> list new ArrayList<>();Overrideprotected Object clone() throws CloneN…

放大镜_屏幕放大镜怎么样使用方法

首先&#xff0c;打开控制面板&#xff0c;然后找到并单击“显示”&#xff0c;然后启动放大镜。放大镜的放大倍率基于原始屏幕&#xff0c;而不是矢量放大倍率。有关放大镜的详细操作&#xff0c;请单击帮助按钮&#xff0c;其中有特定说明。捷径一&#xff1a;win 可以快速调…

mysql取消主键_mysql如何删除主键?

当一个表中设置了主键之后&#xff0c;如果想要删除主键了要怎么做&#xff1f;下面本篇文章就给大家介绍MySQL删除主键的方法&#xff0c;希望对你们有所帮助。首先我们来看看删除主键的语法&#xff1a;ALTER TABLE TABLE_NAME DROP PRIMARY KEY;在MySQL中删除主键要考虑两种…

公认音质好的耳机品牌_什么品牌蓝牙耳机音质比较好?2020五款HIFI音质蓝牙耳机推荐...

对于蓝牙耳机&#xff0c;绝大多数人的需求都是听音乐&#xff0c;同时也作为一个穿戴的修饰品。基于这些需求&#xff0c;在我们选择蓝牙耳机的时候&#xff0c;就会选择一些外观比较好看的时尚音乐蓝牙耳机&#xff0c;既有时尚的外观&#xff0c;又有较好的音质。那么现在有…

mysql取消操作系统_Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)...

小弟今天记录一下在Linux系统下面的MySQL的简单使用&#xff0c;如下&#xff1a;服务启动与关闭 启动与关闭 查看版本环境Linux版本&#xff1a;centeros 6.6(下面演示)&#xff0c;Ubuntu 12.04(参见文章末尾红色标注字体)MySQL版本&#xff1a;5.1.73查看MySQL服务的启动状态…

python日期转化成周数_[转]浅析使用python计算两个日期间隔天数﹑周数和指定若干天后对应的日期等...

>>> import datetime>>> help(datetime)http://docs.python.org/library/datetime.html查看2009年5月31日和2009年2月1日间隔多少天>>> d1datetime.date(2009,05,31)>>> d2datetime.date(2009,02,01)>>> d1-d2datetime.timedelta…

python笔记小白入门_Python 笔记:全网最详细最小白的Class类和实例详解

面向对象最重要的概念就是类(class)和实例(instance)&#xff0c;类是抽象&#xff0c;而实例(Instance)则是一个个具体的对象面向对象三大特点&#xff1a;封装、继承和多态class Animal(object):def __init__(self, name):self.name name # 初始化类变量def Dog(self): # 创…

java 字符串转dom对象_xml类型的字符串转换为Dom对象

我写这篇博客的目的是因为我在这一点转换方面耽搁了快2天时间&#xff0c;真是惭愧呀&#xff0c;dom4j.jar包有自带方法DocumentHelper.parseText(String text)用于将字符串类型的xml转换为Dom对象&#xff0c;从而进行下面的解析&#xff0c;还有一个关键是&#xff1a;产生字…

java nlpir_中科院NLPIR中文分词java版

摘要&#xff1a;为解决中文搜索的问题&#xff0c;最开始使用 版 SCWS &#xff0c;但是处理人名和地名时&#xff0c;会出现截断人名地名出现错误。开始使用 NLPIR 分词&#xff0c;在分词准确性上效果要比 SCWS 好。本文介绍如何在 系统下 JAVA &#xff0c;生成可以执行的 …