要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。

一、通配符选择器

语法:*{ }

说明:通配符选择器可以选择页面上所有的html标签(包括body,html标签

用途:练习阶段清除页面所有标签的默认样式(使用通配符清除默认样式仅在练习阶段使用)

 <style>
* {
margin: ;
padding: ;
color: red;
background: lightblue;
}
</style>
<div>这是一个div</div>
<p>这是一个p标签</p>

效果:body区域的背景色渲染成了lightblue,div和p标签的字体颜色渲染成了红色

二、标签选择器

语法:标签名 {}

说明:通过html标签名选择标签设置样式,w3c也称作元素选择器或者类型选择器

用途:常用在某些标签的特殊样式 比如a、ul、ol等

 <style>
ul {
list-style: none;
}
a {
text-decoration: none;
color: red;
}
</style> <ul>
<li><a href="">链接</a></li>
<li><a href="">链接</a></li>
<li><a href="">链接</a></li>
</ul>  

效果:li的小圆点去掉和a标签的默认颜色改变

三、id选择器

语法:#id名:{}   (#号和id名紧挨着)

说明:通过标签的id名选择标签设置样式, 整个页面中只能有唯一一个id名

    用途:id优先级较高,有时候用来层叠掉某些类样式

 <style>
#dv {
width: 200px;
height: 200px;
background-color: lightblue;
color: orange;
}
</style>
<div id="dv">
这是一个div
</div>

效果:通过id选择器选择标签设置样式

四、类选择器

语法:.类名 {}   (由.和类名组成,.紧跟在类名前边,与id选择器类似)

说明:通过标签的类名选择到元素

用途:开发中最常用的选择器,不同的标签设置了同一个类名时,可以拥有相同的样式,当然一个标签也可以拥有多个类名。

 <style>
.common {
font-size: 18px;
color: orange;
}
.dv1 {
width: 200px;
height: 200px;
background-color: lightblue;
}
.dv2 {
border: 1px solid #ccc;
width: 200px;
height: 200px;
}
</style>
<div class="dv1 common">
这是div1
</div>
<div class="dv2 common">
这是div2
</div>

效果:两个div都拥有两个样式,且都引用了common样式,这时候div会把引用的类样式都渲染出来,我们通常把相同的样式提取出来

五、属性选择器

用法:[属性名] {}  ([]方括号内部直接写标签的属性名即可)

说明:希望选择有某个属性的元素,可以使用这种选择器,当然属性选择器还有其他用法。

<style>
[class] {
width: 200px;
height: 200px;
border: 1px solid black;
}
</style>
<div class="dv1">
这是div1
</div>
<div class="dv2">
这是div2
</div>

效果:具有class属性的标签都会渲染出相同的样式

标签选择器的其他用法(图表参考w3c)详细用法参考W3C

选择器 描述
[attribute] 用于选取带有指定属性的元素
[attribute=value] 用于选取带有指定属性和值的元素
[attribute~=value] 用于选取属性值中包含指定词汇的元素
[attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词
[attribute^=value] 匹配属性值以指定值开头的每个元素
[attribute$=value] 匹配属性值以指定值结尾的每个元素
[attribute*=value] 匹配属性值中包含指定值的每个元素

六、后代选择器

语法:每一层选择器用空格隔开

说明:后代选择器可以选择作为某元素后代的元素,不管后代标签再结构中嵌套多深,都会选择到

/*选中div后代中的p*/
div p {
color: red;
} 后代选择器不但可以选中儿子,还可以选中孙子等所有的后代元素。
/*会选中box中的h3*/
.box h3 {
font-size: 50px;
}
<div class="box">
<div>
<div>
<div>
<h3>我是多层嵌套的h3</h3>
</div>
</div>
</div>
</div>

七、子代选择器

语法:父元素选择器 > 子元素选择器 { }

  说明:选择标签的直接子元素,无法选择孙子及后代元素

 <style>
h1 > strong {
color: red;
}
</style>
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>
This is <em>really <strong>very</strong></em> important.
</h1>

效果:第一个h1的strong会变颜色,第二个h1下的strong不会变颜色

子代选择器与后代选择器的区别:子代选择器只能选择直接子元素,选择范围较小。后代选择器可以选择子孙后代元素,选择范围较大。

八、相邻兄弟选择器

语法:元素选择器 + 元素选择器 {}   (两者为相邻元素,且有相同父元素)

说明:可选择紧接在另一元素后的元素,且二者有相同父元素

 <style>
.box {
height: 100px;
width: 100px;
background-color: red;
}
/*h1和div 都会有20px的margin-top值 */
h1,
div {
margin-top: 20px;
}
</style>
<h1>这里是标题</h1>
<div class="box">box中的内容</div>

九、交集选择器

说明:同时选中两个选择器都具有的元素

语法:连续书写选择器,不要添加任何空格(和后代选择器进行区分)

 <style>
p.para {
font-size: 50px;
color: red;
}
</style>
<p class="para">p</p>
<p>我是p <span class="para">特殊</span></p>

效果:会给第一个p标签中的内容添加样式,第二个p中的标签和内容都不会添加样式

交集选择器可以连续交集(选择器可以书写多个)如:  p.para.fs{}  能被选中的元素具有以下特点:是p标签且含有para 和 fs类样式

十、并集选择器  

  语法:逗号隔开每一个选择器

说明:同时设置多个选择器相同的样式

<style>
div, h3, p {
font-size: 50px;
color: red;
}
</style>
<div>div</div>
<h3>h3</h3>
<p>p标签</p>

效果:div,h3和p标签都会设置上样式,并集选择器中的单个选择器也可以使用类选择器,id选择器,属性选择器等。

十一、伪类选择器

说明:CSS 伪类用于向某些选择器添加特殊的效果,工作中用的不太多

用法:详见W3C,伪类选择器

十二、伪元素选择器

说明:CSS 伪元素用于向某些选择器设置特殊效果,before和after常用

用法:伪元素选择器

总结:以上内容几乎涵盖工作当中的所有用法,其中常用的有类选择器、标签选择器、id选择器、属性选择器、伪元素选择器的before和after,有些不常用的没有给出具体效果,可以根据提供的代码,自行实验

CSS汇总之CSS选择器的更多相关文章

  1. CSS系列:CSS选择器

    选择器(selector)是CSS中很重要的概念,所有HTML语言中的标记样式都是通过不同的CSS选择器来控制的.用户只需要通过选择对不同的HTML标签进行选择,并赋予各种样式声明,即可实现各种效果. ...

  2. CSS:CSS样式表及选择器优先级总结

    我们在写网页的时候经常会遇到同一个HTML文件,使用了外部样式.内部样式以及内联样式,那么如果发生冲突时浏览器是怎么抉择的呢? 也会遇到这样的情况,在样式表中,对同一个HTML元素,我们有可能既用到了 ...

  3. Html 之div+css布局之css选择器

    CSS选择器 什么叫选择器?通俗的来说就是 我想改变html 中某个地方的  字体大小 或者背景色 或者其它属性 内边距 外边距,宽度高度 等等 一些Css 样式. 那么我们如何找到对应的 元素呢? ...

  4. CSS选择器、CSS hack及CSS执行效率

    主要内容: 1.CSS选择器.优先级与匹配原理 2. CSS 引入的方式有哪些 ? link 和 @import 的区别是 ? 3.CSS hack 4.如何书高效CSS  一.CSS选择器.优先级与 ...

  5. CSS样式----图文详解:css样式表和选择器

    主要内容 CSS概述 CSS和HTML结合的三种方式:行内样式表.内嵌样式表.外部样式表 CSS四种基本选择器:标签选择器.类选择器.ID选择器.通用选择器 CSS三种扩展选择器:组合选择器.后代选择 ...

  6. [HTML] CSS Id 和 Class选择器

    id 和 class 选择器 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器. id 选择器 id 选择器可以为标 ...

  7. css笔记09:选择器优先级

    1. (1) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  8. CSS 选择器之基本选择器 属性选择器 伪类选择器

    CSS 选择器 常见的选择器列表图 CSS选择器笔记 基本选择器 通配符选择器(*) 元素选择器(E) 类选择器(.className)    所有浏览器都支持类选择器,但多类选择器(.classNa ...

  9. HTML+CSS Day05 基本CSS选择器、复合CSS选择器与CSS继承性

    1.基本CSS选择器 (1)标记选择器 <style>                       h1{ color:red; font-size:25px;}           &l ...

随机推荐

  1. linux登录后出现-bash-4.1$

    linux登录后有时候会出现-bash-4.1$ 造成这样的原因: 与这个用户有关环境变量没了,有关的文件被删除.也就是用户的家目录下面 .bash_profile .bashrc 被删除. 解决办法 ...

  2. Java12新特性 -- switch表达式

    传统switch表达式的弊端: 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行: 所有的case语句共用一个块范围,在不同的case语句定义的变量名不能重复: 不能在 ...

  3. 2. SOFAJRaft源码分析—JRaft的定时任务调度器是怎么做的?

    看完这个实现之后,感觉还是要多看源码,多研究.其实JRaft的定时任务调度器是基于Netty的时间轮来做的,如果没有看过Netty的源码,很可能并不知道时间轮算法,也就很难想到要去使用这么优秀的定时调 ...

  4. Web安全之注入点构造

    在测试过程中,经常需要自己本地构造注入点来进行SQL测试,这边分享一下,不同环境下构造SQL注入的代码. PHP+MYSQL版 <?php $con = mysql_connect(" ...

  5. 机器学习实战3:逻辑logistic回归+在线学习+病马实例

    本文介绍logistic回归,和改进算法随机logistic回归,及一个病马是否可以治愈的案例.例子中涉及了数据清洗工作,缺失值的处理. 一 引言 1 sigmoid函数,这个非线性函数十分重要,f( ...

  6. go-关键字-变量

        var 声明变量 const 常量的关键字, 常量不能出现只声明不赋值的情况. 名字首字母为大写的程序实体可以被任何代码包中的代码访问到. 名字首字母为小写的程序实体则只能被同一个代码包中的代 ...

  7. 关于vue使用的一些小经验

    这一年来说,vue的势头很猛,用户量“噌”“噌”“噌”的涨 为了不掉队不落伍.在后台大哥的胁迫下,不得不选择用了它 刚开始很难接受vue的写法,在编辑器里很容易报错,基本上每行都会出现红色的波浪线 这 ...

  8. python学习-面向对象(六)

    1.类中的实例方法 self参数最大的作用是引用当前方法的调用者 类调用实例方法,python不会位为一个参数绑定调用者(因为实例方法的调用者应该是对象,而此时是类) 2.类方法与静态方法

  9. java23种设计模式(三)单例模式

    原文地址:https://zhuanlan.zhihu.com/p/23713957 一.概述 1.什么是单例模式? 百度百科是这样定义的:单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个 ...

  10. 前端Vue框架-vuex状态管理详解

    新人报道!多多关照-多提宝贵意见 谢谢- vuex理解 采用集中式存储管理模式.用来管理组件的状态,并以自定义规则去观测实时监听值得变化. 状态模式管理理解 属性 理解 state 驱动应用的数据源 ...