对于css来说,他的基本语法就是

选择器 {
           K:V;
           K:V;
           K:V
       }

所以css的学习就分为两个部分:

* 1  选择器 选中元素(标签)

* 2  各种属性

其中选择器尤为重要,因为如果无法确定样式具体作用的标签,那么设置样式也就无从谈起。所以今天我们一起来聊一聊css中的选择器。

一 基本选择器

首先我们需要掌握几种基本选择器,如果能熟练掌握基本选择器,实际上就可以开发出大部分的页面样式。

1.1 标签选择器

最基本的选择器就是标签选择器,标签选择器就是直接使用div,p这种标签名,这种设定会影响到页面中所有的该标签。

2css.html(head部分)

<style>
/* 所有p标签都起作用*/
p {
color: orange;
}
</style>

2css.html(body部分)

     <p>第一段</p>
<div>
<div>
<div>
<div>
<p>我隐藏的比较深</p>
</div>
</div>
</div>
</div>

实现效果:

两个p标签都改变了样式,字体颜色变成了橘黄色。

1.2 类选择器

如果我们只希望更改第一个p标签的样式,而不更改第二个p标签,这时候就可以选择类选择器,具体实现方法就是给标签添加class属性,要注意可以给不同的标签赋予同样的类名,因为物以类聚,人以群分,从而实现同一类的样式控制。给类设样式时我们使用 .类名 的方式。

2css.html(head部分)

     <style>
/* 选中class含有p1的元素 */
.p1 {
color: red;
}
</style>

2css.html(body部分)

     <p class="p1">第一段</p>
<div>
<div>
<div>
<div>
<p>我隐藏的比较深</p>
</div>
</div>
</div>
</div>

实现效果:

Q:那么又一个新问题来了,我们能否给一个标签设置不同的类呢??答案是可以的,我们使用 class="类名1 类名2 ..." 的方式。要注意不同类名之间用空格隔开。

2css.html(head部分)

     <style>
/* 选中class含有p1的元素 */
.p1 {
color: red;
}
.h2 {
text-align: center; /*让文字水平居中*/
background-color: aqua
}
</style>

2css.html(body部分)

 <!--有多个class就写在class属性里面,用空格隔开-->
<h2 class="p1 h2">二级标题</h2>

实现效果:

1.3 id选择器

id选择器与class选择器很类似,同样是给标签设置id属性,赋予id值。给id设置样式时我们使用 #id值 的格式。其实我们也可以给不同的标签设置同样的id值来实现同类样式控制,但极其不建议这样做。作为一个开发人员,我们必须对id唯一性有一个认识,即每一个id值都是独一无二,不允许重复的。一般我们使用id选择器就是表示一个独一无二的标签。

3css.html(head部分)

     <style>
/* 选中id值为p2的元素,表示某一个独一无二的区域时常用 */
#p2 {
color: blue
}
</style>

3css.html(body部分)

     <p>这是段落</p>
<p id="p2">这是段落</p>
<p>这是段落</p>

实现效果:

1.4 通配符选择器(基本不用)

通配符选择器就是针对html中的所有标签,用 * 表示,但我们基本不用,因为相比而言,通配符选择器的代价大,效率低。通常使用并集选择器代替(下文有举例)。

3css.html(head部分)

     <style>
/* 通配符选择器 ,所有工程上很少使用,因为效率太低 */
* {
color:blue;
}
</style>

3css.html(body部分)

     <div>div</div>
<p>p</p>
<h1>h1</h1>

实现效果:

二 高级选择器

除了以上基本选择器之外,我们还需要掌握几种高级选择器,他们功能更强大,开发起来速度更快。

2.1 后代选择器

后代选择器,就是先写出父代,然后再写出子代,以 父代 子代 的方式确定样式作用的标签,以空格连接。

5css.html(head部分)

     <style>
/*后代选择器,中间以空格连接*/
ul li {
font-size: 30px;
color: green;
}
div li {
background-color: skyblue;
}
</style>

5css.html(body部分)

     <ul>
<li>
<p>111</p>
</li>
<li>222</li>
<li>333</li>
<li>444</li>
</ul>
<div>
<ul>
<li>item</li>
</ul>
</div>

实现效果:

2.2 交集选择器

交集选择器,就是既满足条件A,又满足条件B的标签,以 AB 的方式确定样式作用的标签,注意不要用空格连接!

5css.html(head部分)

     <style>
/*交集选择器 表示给同时满足这两个条件的元素设置样式。。注意中间不能加空格*/
div.box {
color: orange;
}
</style>

5css.html(body部分)

     <div class="box">
<ul>
<li>item</li>
</ul>
</div>
<div>
这是第二个div
</div>

实现效果:

只有第一个div改变了样式,因为它的class为box,满足了交集选择器的要求。

2.3 并集选择器

并集选择器就是所列出来的标签都会采用这种样式,以 A,B,C ... 的方式确定样式作用的标签,以,连接。

我们将通配符选择器中所举的例子进行简单更改。

4css.html(head部分)

     <style>
div,p,h1 {
color: green;
}
</style>

4css.html(body部分)

     <div>div</div>
<p>p</p>
<h1>h1</h1>

实现效果:

以上就是关于选择器的相关知识,希望在开发中能够根据实际场景,灵活选择不同的选择器。

【CSS】聊一聊css的选择器的更多相关文章

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

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

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

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

  3. 前端学习——css基础知识,选择器与html模板、值得收藏的html标签

    一.css需要的html(采用html5标准) DTD,文档类型声明: <!Doctype html> 文本编码声明: <meta charset="utf-8" ...

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

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

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

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

  6. css中所有的选择器

    认识css中所有的选择器 什么是选择器 每一条样式申明(定义)由两部分组成 选择器{ 样式:    } 标签选择器 p{ font-size:12px:  line-height:1.6em;     ...

  7. CSS——类和ID选择器的区别

    1.相同点,可以应用在任何元素. 2.不同点,ID选择器只能在元素里只能分别引用,不能同时引用. 如: <style type="text/css">.stress{( ...

  8. css格式比较及选择器类型总结

    在前端入门的前三天把网页制作过程中常用的一些标签和属性都认识和练习了一遍,能够做出简单模块的框架.就像老师说的网页制作就像建一栋大楼,html是砖和水泥,css是精装,js是完善各个功能.现在就开始进 ...

  9. 从零开始学 Web 之 CSS(一)选择器

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

随机推荐

  1. javascript内置对象:Date

    JavaScript内置函数:Date时间<script>    var today=new Date();    weeks=["日","一",& ...

  2. H5页面测试总结

    前言 在最近几个项目中,小编接触了较多关于H5页面的测试,H5页面的测试除了业务逻辑功能测试外,其他部分的测试方法基本是可以通用的,在此对H5页面的一些通用测试方法进行总结分享给大家. H5页面介绍 ...

  3. 查看PublicKeyToken和生成PublicKeyToken

    http://hi.baidu.com/honfei/item/7777500b20d8ff8a02ce1bd2

  4. vue项目更换目录后执行npm run dev 就报错(新手进)

    在我们搭建好一个VUE项目的环境后,觉得这个项目存放的位置不好,想移动一下,但是移动后我们发现执行npm run dev就会报下面的错误: 明明只是移动了一下位置,就报错,实在是太恶心了. 但是只要我 ...

  5. oracle基本使用

    一.数据库 1.1 主流数据库 微软: sql server .access 瑞典MySQL: AB公司mysql IBM公司: db2 美国Sybase公司:sybase 美国oracle公司: o ...

  6. Linux命令(用户管理、组和时间管理)

    用户管理    Linux系统是一个多用用户的系统 用户分为三类:      超级用户(root)用户的id是0     伪用户     用户的id是1----499,虽然存在,但不能被登录      ...

  7. GDB之调试器用法

    GDB 完成的作用: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式 当程序被停住时,可以检查此时程序中所发生的事,并追索上文 动 ...

  8. Flume-Taildir Source 监控目录下多个文件的追加

    Exec source 适用于监控一个实时追加的文件,但不能保证数据不丢失:Spooldir Source 能够保证数据不丢失,且能够实现断点续传,但延迟较高,不能实时监控:而 Taildir Sou ...

  9. maven plugin

    assembly plugin [Maven学习]maven-assembly-plugin的使用 https://www.cnblogs.com/f-zhao/p/6929814.html使用Mav ...

  10. ThinkPHP空操作与命名空间

    命名空间:相当于一个虚拟的目录 正常管理文件使用文件夹--物理区分 TP框架的初始命名空间是:ThinkPHP\Library 在TP框架下命名空间里面使用\代表的是初始命名空间(ThinkPHP\L ...