css3笔记系列-3.css中的各种选择器详解,不看后悔系列
最详细的css3选择器解析
选择器是什么?
比较官方的解释:在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。
最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。
看代码,元素选择器就是这个:
h1作为一个元素标签,是最基本的选择器,这样可以对h1标签设置属性。
选择器有哪些?
常见的选择器:元素选择器,类选择器,ID选择器,属性选择器,派生选择器。
本文的思路就是先讲讲最常用的选择器,再讲讲用得比较少的选择器。
如果你觉得能学到不少知识,点个关注哦,精彩美文第一时间为你奉上。
选择器-元素选择器
元素选择器,最常用的选择器之一,常用于html标签,p标签,h1-h6标签等的样式设定。具体怎么用就不详细介绍了,
上面开头已经举例说明了。在 W3C 标准中,元素选择器又称为类型选择器(type selector)。“类型选择器匹配文档语言
元素类型的名称。类型选择器匹配文档树中该元素类型的每一个实例。”
选择器-类选择器
类选择器与元素选择器看起来很类似,但是还是有一些区别。类选择器允许以一种独立于文档元素的方式来指定样式。
该选择器可以单独使用,也可以与其他元素结合使用。
提示:只有适当地标记文档后才能使用这些选择器,所以使用这种选择器通常需要先做一些构想和计划。要应用样式而不考
虑具体设计的元素,最常用的方法就是使用类选择器。类选择器怎么用,如下图:
图中的body标签里面,有一个div,div有一个class属性,这就是所谓的类,但是这个类不同于java语言的类。然后我们
需要对这个div设置一些样式,看style里面,.select这个就是类选择器了,类选择器需要配合标签的class属性一起使用。
类选择器可以结合元素选择器来使用。这种选择器称为结合元素选择器。
这里就将与类选择器相关的选择器详细介绍一下。
例如:
选择器会匹配class属性包含select的所有p标签,所以选择器p.select解释为:“其class属性值为select的所有段落”。
还有一个多类选择器。怎么用呢?看下面
具体是什么意思呢?就是说:本来我的一个select的样式是够用的,但是突然加了需求,需要再加一个字体的大小,
但是只想P标签使用,并且select又不是一个标签在使用,waring也不是只有一个P标签使用,这时候,多类选择器就出
现了,其实标签的style属性也可以,但是不推荐这么干。使用多类选择器之后,这个标签就同时结合了这两个选择器里
面的样式属性。class里面的类的先后顺序没关系。
选择器-ID选择器
在某些方面,ID选择器类似于类选择器,但是也有一些重要的区别。语法:类选择器是在名称前面加一个. ID选择
器在前面加上一个#
用法:类选择器可以多次使用,ID选择器只能使用在一个元素标签上面,并且只能使用一次,不能重复使用(在一个
文档里面),原因是在一个文档里面,ID是唯一的。
示例:
这样就为ID为test的标签h1设置了字体颜色属性
注意事项:
- ID选择器在一个文档中只能使用一次
- 不能使用ID词列表(意思是不能使用类选择器那样的结合,因为id属性不允许有一空格分隔的词列表)
- 一般情况下ID选择器与类选择器都是区分大小写的。
选择器-属性选择器
属性选择器相对上面两种选择器来说用得比较少,也很简单,来看看吧。
属性选择器可以根据元素的属性以及属性值来选择元素。
简单属性选择
如果希望选择有某个属性的的元素,而不论属性值是什么,可以使用简单属性选择器如:
意思就是说将所有带有href属性的元素设置字体属性为“微软雅黑”
*{
font-size:12px;
}
这是通配符选择器,css系列第一篇有说明!
示例中,*可以换成标签名,如
意思是设置所有的name属性的input标签的字体大小为20px。
根据具体属性值选择
除了选择拥有某些属性的元素外,还可以选择某些拥有特定属性值的元素。
示例
意思是选择input标签中,name属性为username的input标签,再为它设置样式。
属性与属性值完全匹配
属性与属性值完全匹配与上面的根据具体值属性有什么区别呢?还记得我们之前在类选择器里面讲解的多类选择器吧。
当我们要选择这类标签的时候,就需要属性与属性值完全匹配了,当然这只是一个示例。
这里面,如果我们用这个选择器来代替是否可行?
答案是不行的,这时候我们需要知道属性与属性值完全匹配了,看看下面
这样就可以精准的找到这个p标签了,并且可以为他设置一些样式,其实这样看,你是不是觉得这个没有什么用?
其实这是有实际作用的,比如说在动态改变这个元素的样式,是很方便的。
属性选择器这一块还有一些需要了解的,但是不是很常用,这里就只解释一下怎么个用法就行了。
选择器 | 描述 |
---|---|
[attribute] | 用于选取带有指定属性的元素。 |
[attribute=value] | 用于选取带有指定属性和值的元素。 |
[attribute~=value] | 用于选取属性值中包含指定词汇的元素。 |
[attribute|=value] | 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。 |
[attribute^=value] | 匹配属性值以指定值开头的每个元素。 |
[attribute$=value] | 匹配属性值以指定值结尾的每个元素。 |
[attribute*=value] | 匹配属性值中包含指定值的每个元素。 |
选择器-后代选择器
后代选择器又称为包含选择器,后代选择器可以选择作为某元素后代的元素
根据上下文选择元素
以上代码的意思是选择test里面的所有的p标签,然后将他们的背景颜色改成红色。是不是很简单,效率高。
如果你一个一个的设置p标签也是可以的,但是效率太低了,人工效率哈。
选择器-子元素选择器
子元素选择器与后代选择器相比,子元素选择器只能选择作为元素子元素的元素
这里的代码,就只能将class为test里面的子元素h1的背景变成红色,class为test2,以及class为test1
里面的都不是class为test的子元素,这一点要注意。
- 结合后代选择器和子选择器
后代选择器还可以与子选择器共同使用这样的效果是在h1下面的a标签的下划线会被取消掉
选择器-相邻兄弟选择器
如果需要选择紧接在另一个元素后的元素,而二者有相同的元素,可以使用相邻兄弟选择器。
示例:
这个选择器读作“选择紧接在div1后面的h1标签,并且是一个”,这个选择器也一样,可以和前面的子元素选择器一起使用。
伪类css伪类是用于向某些选择器添加特殊的效果。什么意思呢?看看代码你就知道了。
这段代码是说当鼠标移动到p标签的时候,给p标签添加一些样式。类似的还有很多。
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */
具体的用法视情况而定。
这期的选择器笔记就到这里了,如果你觉得不错,请关注我哦!
扫描二维码 获取更多精彩
点“在看”你懂得
css3笔记系列-3.css中的各种选择器详解,不看后悔系列的更多相关文章
- CSS中的背景用法详解
background 属性是CSS中用于设置元素背景的属性,最简单的background属 性名,是针对背景若干设定的合并简写,最早的CSS只能使用单一背景图片,而在现在却可以设置多个背景图片.而不用 ...
- ie浏览器css中的行为expression详解
CSS中的行为——expression (ie only) 最近对CSS中的行为比较感兴趣,虽然是不符合标准的也只有ie才能识别,但是他确实给css的功能扩展了不少.下面是摘自互联网上的文字和例子,因 ...
- CSS中Position 的用法详解。
记得一年前,到一家公司面试的时候,问我position有哪几个属性,我憋半天才回答出2个,大家估计都清楚,就是我们经常用到的2个(relative,absolute). 最近又用到了好多,深入研究了下 ...
- CSS中的盒子模型详解
很多人对盒子模型搞晕头了,下面通过一个简单的代码来分析盒子模型的结构! 为了方便方便观看!在第一个div中画了一个表格,并将其尺寸设置成与div内容大小一样!且设置body的margin和paddin ...
- Css中display:inline-block用法详解
display:block就是将元素显示为块级元素 block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div&g ...
- CSS中属性position位置详解功能讲解与实例分析
position有五个值:static.relative.absolute.fixed.inherit. static 是默认值.就是按正常的布局流从上到下从左到右布局,平常我们做网页制作时,没有指定 ...
- 关于css中的align-content属性详解
align-content 作用: 会设置自由盒内部各个项目在垂直方向排列方式. 条件:必须对父元素设置自由盒属性display:flex;,并且设置排列方式为横向排列flex-direction:r ...
- css中绝对定位和相对定位详解
相对定位relative和绝对定位absolute 相对定位 相对定位是标签在根据没加position样式前的位置来定位不会受父级标签的定位的影响,并且定位后不会脱离文本流,会占据原来的位置. 接下来 ...
- 跟着阿里p7一起学java高并发 - 第19天:JUC中的Executor框架详解1,全面掌握java并发核心技术
这是java高并发系列第19篇文章. 本文主要内容 介绍Executor框架相关内容 介绍Executor 介绍ExecutorService 介绍线程池ThreadPoolExecutor及案例 介 ...
随机推荐
- MongoDB启动.mongorc.js报错解决方法
在bin目录下输入./mongo --norc 不去加载.mongorc.js
- 每日一译系列-模块化css怎么玩(译文)
原文链接:How Css Modules Work 原文作者是Preact的作者 这是一篇关于如何使用Css Modules的快速介绍,使用到的工具是Webpack吊炸的css-loader 首先,我 ...
- Snap们崛起告诉我们:这个世界太需要悄悄话
北京时间3月3日凌晨,"阅后即焚"应用Snapchat母公司Snap在纽约证券交易所上市.开盘价24美元,比其初定的17美元IPO价格高出近41.2%,按照24美元的股价计算, ...
- 记一个 Base64 有关的 Bug
本文原计划写两部分内容,第一是记录最近遇到的与 Base64 有关的 Bug,第二是 Base64 编码的原理详解.结果写了一半发现,诶?不复杂的一个事儿怎么也要讲这么长?不利于阅读和理解啊(其实是今 ...
- 54-with管理文件操作上下文
目录 with管理文件操作上下文 with管理文件操作上下文 之前我们使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用.其实我们可以更方便的打开文件,即Pyt ...
- 2020年,MyBatis常见面试题总结
Mybatis 技术内幕系列博客,从原理和源码角度,介绍了其内部实现细节,无论是写的好与不好,我确实是用心写了,由于并不是介绍如何使用 Mybatis 的文章,所以,一些参数使用细节略掉了,我们的目标 ...
- 从输入URL到页面展示
当我们输入 URL 并按回车后,浏览器会对 URL 进行检查,首先判断URL格式,比如是ftp http ed2k等等,我们这里假设这个URL是http://hellocassie.cn,那么浏览器会 ...
- fsLayuiPlugin数据字典使用
概述 数据字典主要解决下拉框数据填充和数据表格转义处理,一个数据字典可以多处使用. 1.多个页面下拉框使用同样的数据,改一个地方需要把所有页面都要修改 2.数据表格转义代替自己手动写templet解析 ...
- Spring源码阅读笔记04:默认xml标签解析
上文我们主要学习了Spring是如何获取xml配置文件并且将其转换成Document,我们知道xml文件是由各种标签组成,Spring需要将其解析成对应的配置信息.之前提到过Spring中的标签包括默 ...
- ES6的函数
1,带参数默认值的函数 JS函数有个独特的行为:可以接受任意数量的参数,而无视函数声明的形参数量.未提供的参数会使用默认值来代替.实际传递的参数允许少于或多于正式指定的参数. 在ES6中可以直接在形参 ...