CSS选择器与CSS的继承,层叠和特殊性

更新日期: 2020-01-03阅读: 1.7k标签: 选择器

什么是选择器?选择器{样式;},在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素,类似这样body{color: pink;font-size: 16px;};

  1. :标签选择器其实就是html代码中的标签,比如<html>、<body>、<h1>、<p>、<img>等
  2. .类选器名称{css样式代码;}这样的类选择器在css样式编码中是最常用到的,注意:1.英文圆点开头2.其中类选器名称可以任意起名(但不要起中文);除此之外,还有ID选择器,不过在很多方面,ID选择器都类似于类选择符,但也有一些重要的区别:1>为标签设置id="ID名称",而不是。2>ID选择符的前面是井号(#)号,而不是英文圆点(.)。
  3. 类和ID选择器的区别?相同点:可以应用于任何元素;不同点:1、ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次。2、可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)。
  4.  .food>li{border:1px solid red;}这样是什么选择器?答:子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素。
  5. 与子选择器容易混淆的是包含(后代)选择器,即加入空格,用于选择指定标签元素下的后辈元素。注意这个选择器与子选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。总结:>作用于元素的第一代后代,空格作用于元素的所有后代。
  6. 选择器里面最牛叉的是通用选择器,通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中所有标签元素
  7. 更有趣的是伪类选择符,为什么叫做伪类选择符,它允许给html不存在的标签(标签的某种状态)设置样式!
    关于伪选择符:关于伪类选择符,到目前为止,可以兼容所有浏览器的“伪类选择符”就是 a 标签上使用 :hover 了(其实伪类选择符还有很多,尤其是 css3 中,但是因为不能兼容所有浏览器,本教程只是讲了这一种最常用的)。其实 :hover 可以放在任意的标签上,比如说 p:hover,但是它们的兼容性也是很不好的,所以现在比较常用的还是 a:hover 的组合。

  8. 分组选择符:分组选择符(,),可以为html中多个标签元素设置同一个样式
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>css选择器</title>
        <style type="text/css">
        body{
            color: pink;
            font-size: 16px;
        }
        ul{
            list-style: lower-alpha;
        }/*标签选择器*/
        .box{
            border: 1px inset red;
        }/*类选择器*/
        #box{
            line-height: 30px;
        }/*ID选择器*/
        li>em{
            color: red;
            font-style: normal;
        }/*子选择器*/
        ul li{
            background: #008000;
        }/*后代选择器*/
        *{
            font:18px/1.5em "microsoft sans serif"
        }/*通配符选择器*/
        li>a:hover{
            color:rgb(255,255,255);
        }/*伪类选择器*/
        li>span,p{
            color: #000;
        }/*分组选择器*/
        </style>
    </head>
    <body>
    <div class="box" id="box">
        <ul>
            <li>首先应该知道为什么学习,<em>而不要盲目地为了学习而学习。</em></li>
            <li><a href="#">学习最重要的就是态度,态度和方式决定结果。</a></li>
            <li>需要从根本上认为学习是一件值得的事情,从思想上端正才会有学习的劲头。</li>
            <li>很多实例表明不同的心态会有不一样的学习效果,要以健康乐观的心态去学习,能成为怎样的学生都是由自己决定的。</li>
            <li><span>行为决定命运,有的人学习是为了充实自己或者找工作,</span>所以需要明白自己究竟是为什么学习。</li>
        </ul>
        <p>Behavior determines destiny. Some people study to enrich themselves or find a job, so they need to understand why they study.</p>
    </div>
    </body>
</html>


通过css选择器,我们可以对元素进行样式的设置,当然CSS中有一些概念是需要深刻理解的,比如CSS的继承、层叠和特殊性。

  • CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。 
  • 有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?这时你需要注意浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。 权值的规则: 标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。 注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。 
  • 层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用。简单来说理解为后面的样式会覆盖前面的样式。 内联样式表(标签内部)>嵌入样式表(当前文件中)>外部样式表(外部文件中)。
  • 我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。 注意:!important要写在分号的前面;这里注意当网页制作者不设置css样式时,浏览器会按照自己的一套样式来显示网页。并且用户也可以在浏览器中设置自己习惯的样式,比如有的用户习惯把字号设置为大一些,使其查看网页的文本更加清楚。这时注意样式优先级为:浏览器默认的样式<网页制作者样式<用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>CSS的继承、层叠和特殊性</title>
        <style type="text/css">
        div{
            font: 18px/2em "microsoft yahei";
            border: 1px solid sienna;
        }
        p{
            color: #f90;
        }/*权值为1*/
        p span{
            color: red;
        }/*权值为1+1=2*/
        .Adults{
            color: #00FF00;
        }/*权值为10*/
        p span.Adults{
            color: #4169E1;
        }/*权值为1+1+10=12*/
        #Adults{
            color: yellow;
        }/*权值为100*/
        #Adults .Adults em{
            color: greenyellow;
        }/*权值为100+10+1=111*/
        .box2{
            font-size: 18px!important;
            text-transform: uppercase;
            word-spacing: -2px;
        }
        .box2{
            font-size: 12px;
        }/*后面的样式会覆盖前面的样式,内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)*/
        </style>
    </head>
    <body>
        <div>
            <p id="Adults">成年人的世界没有“容易”二字,一,少解释,多做事二,永远不要给背叛你的人第二次背叛你的机会三,收起过去的那些脾气四,不要太在意别人的看法五,再大的委屈也不要在人群中表现出来六,别人夸你的时候,你要有自知之明七,不要去巴结任何人八,不要无休止地忍让;<span class="Adults">成年人的世界,虽然很精彩,但是也很残酷,讲人情但是更讲的是规则和实力。<em>所以我们只有做一个内心坚强的人,让自己变得更好,我们才会发现世界的广阔和人生的美好,才能真正地享受人生。</em></span></p>
            <div class="box2"><p>Therefore, only by being a strong person and making ourselves better, can we discover the world and the beauty of life, and truly enjoy life.</p></div>
        </div>
    </body>
</html>


链接: https://www.fly63.com/article/detial/8090

CSS3 target 选择器_:target伪类的使用

arget作为目标伪类选择器,是css3中的新特性之一。URL 带有后面跟有锚名称 #,指向文档内某个具体的元素。这个被链接的元素就是目标元素(target element)。:target 选择器可用于选取当前活动的目标元素。

css兄弟选择器(+ 和 ~)的使用和区别

这篇文章主要讲解css中兄弟选择器的使用,以及+和~的区别有哪些?+ 选择器:如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。 ~ 选择器:作用是查找某一个指定元素的后面的所有兄弟结点。

jquery的选择器有哪些?如何对元素取值和设置值

jQuery 选择器 jQuery 选择器允许您对 HTML 元素组或单个元素进行操作, Jquery 选择器包括:基本选择器、层叠选择器 、基本过滤选择器 、内容过滤选择器、可视化过滤选择器.....

CSS中的focus-within伪类选择器

在CSS中 :focus-within 是一个伪类,CSS中伪类:focus-within能非常方便处理获取焦点状态, 当元素本身或其后代获得焦点时,:focus-within伪类的元素就会有效。

vue 选择器_实现scoped深度作用选择器

vue项目中,当<style>标签有scoped属性时,它的 CSS 样式只作用于当前组件中的元素,父组件的样式将不会渗透到子组件中。如果你希望 scoped 样式中的一个选择器能够作用得更深,例如影响子组件

css 选择器符号

空格:后代选择器,表示div元素里面所有的p元素。> 子选择器:表示div元素里面所有的子代(不含孙代及以后)p元素,~兄弟元素选择器:表示.cls元素往后的同级的p元素

css选择器总结_30个CSS3选择器

总结30个CSS3选择器:*选择器是选择页面上的全部元素,上面的代码作用是把全部元素的margin和padding设为0,最基本的清除浏览器默认样式的方法。

css节点选择器

基础选择器是选择器的所有选择器的基本组成元素,也最简单,包含如下5个类别:ID选择器,标签选择器,类选择器,属性选择器,通配选择器

CSS3 中关于 *-of-type 和 *-child的差异性及适用场景

CSS3 中有很多表示元素序号的选择器,有以下几种:first-child、:first-of-type、:last-of-type、:only-of-type、:only-child、:nth-child(n)、:nth-last-child(n)、:nth-of-type(n)、:nth-last-of-type(n)、:last-child

微信小程序文档没写支持, 但是实际支持的选择器有哪些?

目前支持的选择器有,在实践中我发现, 除了文档上说的几种选择器, 经过测试发现其实还有几种支持的选择器没有列举!还支持哪些选择器?

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!