对于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. AGC刷题记

    已经刷不了几天了... AGC001 A-BBQ Easy 排个序就过了 B-Mysterious Light 手膜一下,你会发现魔改一下\(gcd\)就行了 C-Shorten Diameter 刚 ...

  2. java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream

    扩展阅读:https://blog.csdn.net/kimylrong/article/details/50353161

  3. js实现QQ跳转到支付宝APP并领取红包!附:动图demo

    前天我在sg开源了js实现微信跳转到支付宝并领红包的代码.https://segmentfault.com/a/11...于是朋友圈开始刷屏,各种套路,各种标题,再附上短链接,引起了很多人的好奇,然后 ...

  4. css浮动(float)及如何清除浮动

    前言: CSS浮动是现在网页布局中使用最频繁的效果之一,而浮动可以帮我们解决很多问题,那么就让我们一起来看一看如何使用浮动. 一.css浮动(float)(1)html文档流 自窗体自上而下分成一行一 ...

  5. eclipse调试断点

    1.条件断点 如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建.在调试界面中,“断点”视图会把所有被创建的断点列出来.我们可以给它加一个布尔条件,也就是说,该断点会被激活并且如果布尔 ...

  6. struts2之单文件上传(7)

    前台页面jsp <!-- 拦截的时候用这个 <s:form action="uploadAction" enctype="multipart/form-dat ...

  7. 在npm install时node-gyp出现错误

    在执行npm install的时候出现了下面的错误,安装Xcode并执行sudo xcode-select -s /Applications/Xcode.app/Contents/Developer, ...

  8. java中commons-beanutils的介绍(转)

    1.   概述 commons-beanutil开源库是apache组织的一个基础的开源库.为apache中很多类提供工具方法.学习它是学习其它开源库实现的基础. Commons-beanutil中包 ...

  9. P2502 [HAOI2006]旅行 最小生成树

    思路:枚举边集,最小生成树 提交:1次 题解:枚举最长边,添加较小边. #include<cstdio> #include<iostream> #include<algo ...

  10. 51 Nod 1354 选数字(体现动态规划的本质)

    1354 选数字  基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 当给定一个序列a[0],a[1],a[2],...,a[n-1] 和一个整数K时 ...