CSS选择器类型总结
CSS选择器类型总结
1.通用选择器
一般用于给所有元素做一些通用性的样式设置,比如清除内边距、外边距等。但是效率比较低,尽量不要使用。
* {
margin: 0;
padding: 0;
}
2.元素选择器
也叫做“标签选择器”,用于选中一类标签进行样式设置。
div { color: #ff0000; }
span { font-size: 18px; }
3.类选择器
给元素添加class属性,通过
.class属性值来选中元素。
- 一个元素可以有多个class值,每个class值之间用空格隔开;
- class值如果由多个单词组成,单词之间可以用
中划线-、下划线_,也可以使用驼峰标识; - 最好不要用标签名作为class值;
.box {
width: 100px;
height: 100px;
background-color: #ff0000;
}
<div class="box"></div>
4.id选择器
给元素添加id属性,通过
#id属性值来选中元素。
- 一个HTML文档里面的id值是唯一的,不能重复;
- id值如果由多个单词组成,单词之间可以用
中划线-、下划线_,也可以使用驼峰标识; - 最好不要用标签名作为id的值;
#container { color: #ff0000; }
<div id="container"></div>
5.属性选择器
[attr]:选中拥有attr属性的元素;/* 选中拥有title属性的元素 */
[title]: { color: #ff0000; }
<div title="one">内容</div>
[attr=val]:选中attr属性值恰好等于val的元素;/* 选中title值恰好等于one的元素 */
[title="one"] { color: #ff0000; }
<div title="one">内容</div>
[attr*=val]:选中attr属性值包含单词val的元素;/* title属性值包含单词one的元素 */
[title*="one"] { color: #ff0000; }
<div title="one">内容1</div>
<p title="aaaone">内容2</p>
<span title="one-two">内容3</span>
[attr^=val]:选中attr属性值以val开头的元素;/* title属性值以单词one开头的元素 */
[title^="one"] { color: #ff0000; }
<div title="one">内容1</div>
<span title="one-two">内容2</span>
<p title="one two">内容3/p>
[attr|=val]:选中attr属性值恰好等于val或以单词val开头后面紧跟连字符-的元素;/* title属性值恰好等于one或者以单词one开头且后面跟着连字符-的元素 */
[title|="one"] { color: #ff0000; }
<div title="one">内容1</div>
<span title="one-two">内容2</span>
[attr~=val]:选中attr属性值包含单词val的元素(单词之间必须用空格隔开);/* title属性值包含单词one的元素(单词one与其他单词之间必须用空格隔开) */
/* 效果类似于类选择器 */
[title~="one"] { color: #ff0000; }
<div title="one">内容1</div>
<p title="one two">内容2</p>
[attr$=val]:选中attr属性值以单词val结尾的元素;/* title属性值以单词one结尾的元素 */
[title$="one"] { color: #ff0000; }
<div title="two-one">内容1</div>
<p title="two one">内容2</p>
6.后代选择器
选择指定元素下的子元素,包括直接和间接子元素,使用空格进行隔开。
/* 选择div下所有span元素 */
div span { color: #ff0000; }
<div>
<span>文字内容1</span>
<p>
<span>文字内容2</span>
</p>
</div>
7.子代选择器
选择指定元素下的直接子元素,不包括间接子元素,使用
>。
/* 选择div元素下的直接span元素 */
div > span { color: #ff0000; }
<div>
<span>文字内容1</span>
</div>
8.兄弟选择器
相邻兄弟选择器
+:选择某元素后面紧挨的兄弟元素;/* div元素后面紧挨的p元素 */
div + p { color: #ff0000; }
<div></div>
<p>内容</p>
全兄弟选择器
~:选择某元素后面的兄弟元素,不需要紧挨;/* div元素后面的p元素 */
div ~ p { color: #ff0000; }
<div></div>
<p>内容1</p>
<p>内容2</p>
9.交集选择器
选择同时符合多个条件的元素。
/* 选择div元素且class为one的 */
div.one { color: #ff0000; }
/* 选择div元素且class为one且title属性值等于one的 */
div.one[title="one"] { color: #ff0000; }
<div class="one" >内容1</div>
<div class="one" title="one">内容2</div>
10.并集选择器
不同选择条件,中间用
,连接,进行全部选中。
/* 所有的div元素 + 所有class值有one的元素 + 所有title属性值等于one的元素 */
div, .one, [title="one"] { color: #ff0000; }
<div>内容1</div>
<span title="one">内容2</span>
<p class="one">内容3</p>
11.伪类选择器
11.1.动态伪类
:link:a:link未访问的链接;:visited:a:visited已访问的链接;:hover:a:hover鼠标移动到链接上;:active:a:active激活的链接(鼠标在链接上长按未松开);:focus:当前拥有输入焦点的元素(能接收键盘的输入,一般为input);
注意点:
:hover必须放在:link和:visited后面才能完全生效;:active必须放在:hover后面才能完全生效;- 建议编写顺序:link、visited、focus、hover、active;
- 处理a元素,
:hover和:active也能用于其他元素;
11.2.目标伪类和语言伪类
目标伪类:
:target;语言伪类:
:lang;
11.4.元素状态伪类
:enabled:可用的;:disable:禁用的;:checked:选中的;
11.5.结构伪类
:nth-child(n):父元素中的第n个子元素(n代表任意正整数和0,也可用even(偶数)和odd(奇数));/* 选中所有父元素下的第一个为p的元素 */
p:nth-child(1) { color: #ff0000; }
:nth-last-child(n):与:nth-child相反,父元素中倒数第n个子元素;/* 选中父元素下倒数第一个为p的元素 */
p:nth-last-child(1) { color: #ff0000; } /* 选中最后两个为p的元素 */
p:nth-last-child(-n + 2) { color: #ff0000; }
nth-of-type(n):计数时只计算同种类型的元素;/* 选中父元素下所有p元素中的第二个p元素 */
p:nth-of-type(2) { color: #ff0000; }
:nth-last-of-type(n):从后往前计算同种类型的元素;/* 选中父元素下所有p元素中倒数第二个p元素 */
p:nth-last-of-type(2) { color: #ff0000; }
:first-child:等同于:nth-child(1);:last-child:等同于:nth-last-child(1);:first-of-type:等同于:nth-of-type(1);:last-of-type:等同于:nth-last-of-type(1);:only-child:是父元素中唯一的子元素;:only-of-type:是父元素中唯一的指定类型的元素;:empty:里面完全空白的元素,不包含子元素和内容;:root:根元素,就是html元素;
11.6.否定伪类
:not()的格式是:not(x)表示除x以外的元素(x表示简单的选择器,可以是元素、通用、属性、类、id、伪类(除否定伪类)选择器等)。
/* 选中父元素下所有p元素不是第一个和最后一个的p元素 */
p:not(:first-of-type):not(:last-of-type) { color: #ff0000; }
注意::not()只支持简单选择器,不支持组合选择器,比如交集和并集选择器等。
CSS选择器类型总结的更多相关文章
- 第二天(CSS 选择器)
1.常用的CSS选择器 类型选择器: 例如: p { color : red ; } 后代选择器: 例如: h2 span { font-weight : bold ; ...
- css格式比较及选择器类型总结
在前端入门的前三天把网页制作过程中常用的一些标签和属性都认识和练习了一遍,能够做出简单模块的框架.就像老师说的网页制作就像建一栋大楼,html是砖和水泥,css是精装,js是完善各个功能.现在就开始进 ...
- css选择器
常用css选择器,希望对大家有所帮助,不喜勿喷. 1.*:通用选择器 * { margin: 0; padding: 0; } 选择页面上的全部元素,通常用于清除浏览器默认样式,不推荐使用. 2.#i ...
- CSS选择器的权重与优先规则?
我们做项目的时候,经常遇到样式层叠问题,被其他的样式覆盖,或者写的权重不高没效果,对权重没有具体的分析,做了一个总结. css继承是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用 ...
- CSS系列:CSS选择器
选择器(selector)是CSS中很重要的概念,所有HTML语言中的标记样式都是通过不同的CSS选择器来控制的.用户只需要通过选择对不同的HTML标签进行选择,并赋予各种样式声明,即可实现各种效果. ...
- 细说CSS选择器
众所周知,CSS的一个核心特征就是能向文档中的一组元素类型应用某些规则.每个规则都有两个基本部分:选择器(selector)和声明块(declaration block).下图显示了规则的各个部分. ...
- CSS选择器详解
选择器是CSS的核心,从最初的元素.class/id选择器,演进到伪元素.伪类,以及CSS3中提供的更丰富的选择器,定位页面上的任意元素开始变得愈发的简单. 1.元素选择器 这是最基本的CSS选择器, ...
- CSS和CSS选择器
一:CSS CSS有三种书写形式(优先级从高到低) 1)行内样式:(内联样式)直接在标签style属性中书写 2)内页样式:在本网页的style标签中书写 3)外部样式:在单独的CSS文件中书写,然后 ...
- CSS 选择器(转)
原文转自:http://www.cnblogs.com/xyzhanjiang/p/5447406.html CSS 选择器除了样式表匹配元素时需要用到,在使用 jQuery 等库的时候也可以利用 C ...
随机推荐
- 【Golang】基于beego/orm实现相同表结构不同表名的分表方法实现
一.背景 在业务场景开发的过程中, 随着数据量的增加,相同表结构不同表名的分表策略是常用的方案选择之一.如下以golang做为后端业务开发,尝试修改beego的orm库做一个相同表结构不同表名的分表实 ...
- 论文翻译:2020_WaveCRN: An efficient convolutional recurrent neural network for end-to-end speech enhancement
论文地址:用于端到端语音增强的卷积递归神经网络 论文代码:https://github.com/aleXiehta/WaveCRN 引用格式:Hsieh T A, Wang H M, Lu X, et ...
- 『与善仁』Appium基础 — 10、Appium基本原理
目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...
- 花了30天才肝出来,史上最全面Java设计模式总结,看完再也不会忘
本文所有内容均节选自<设计模式就该这样学> 序言 Design Patterns: Elements of Reusable Object-Oriented Software(以下简称&l ...
- 通过get方法的方式获取配置项信息
这种写法比其他的方法好的一点是,当你需要修改参数名或者参数值的时候,只需要改一个地方就可以了,其他地方根本不用动,面向接口编程. eureka-server.properties archaius.d ...
- 洛谷 P7451 - [THUSCH2017] 杜老师(线性基+根分+结论题)
题面传送门 看到乘积为平方数我们可以很自然地想到这道题,具体来说,我们对 \(1\sim 10^7\) 中所有质因子标号 \(1,2,\cdots,\pi(10^7)\),对于 \(x\in[l,r] ...
- Codeforces 464E The Classic Problem(主席树+最短路+哈希,神仙题)
题目链接 题意:给出一张 \(n\) 个点 \(m\) 条边的无向图,第 \(i\) 条边连接 \(u_i,v_i\),边权为 \(2^{w_i}\),求 \(s\) 到 \(t\) 的最短路. \( ...
- BZOJ 3238 差异
BZOJ 3238 差异 看这个式子其实就是求任意两个后缀的 $ LCP $ 长度和.前面的 $ len(T_i)+len(T_j) $ 求和其实就是 $ n(n-1)(n+1)/2 $ ,这个是很好 ...
- TVB斜率限制器
TVB斜率限制器 本文参考源程序来自Fluidity. 简介 TVB斜率限制器最早由Cockburn和Shu(1989)提出,主要特点是提出了修正minmod函数 \[\tilde{m}(a_1, a ...
- MEGA软件——系统发育树构建方法(图文讲解) 转载
转载:http://www.plob.org/2012/12/02/4927.html 一.序列文本的准备 构树之前先将目标基因序列都分别保存为txt文本文件中(或者把所有序列保存在同一个txt文本中 ...