zoukankan      html  css  js  c++  java
  • CSS的特点

    1.继承

    CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为span标签。

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>继承</title>
    <style type="text/css">
    p{color:red;}
    p{
        border:1px solid red;
    }
    </style>
    </head>
    <body>
        <h1>Hello</h1>
        <p>Hello,everybody. <span>My name is chen...</span> Nice to meet you.</p>
    </body>
    </html>

    运行结果:

    由运行结果可看出,p中的文本与span中的文本都设置为了红色。但注意有一些css样式是不具有继承性的。如border:1px solid red;

    在上面例子中它代码的作用只是给p标签设置了边框为1像素、红色、实心边框线,而对于子元素span是没用起到作用的。

    2.特殊性

    有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?我们来看一下面的代码:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>特殊性</title>
    <style type="text/css">
    p{color:red;}
    .first{color:blue;}/*因为权值高显示为蓝色*/
    </style>
    </head>
    <body>
        <h1>Hello</h1>
        <p class="first">Hello,everybody. <span>My name is chen...</span> Nice to meet you.</p>
    </body>
    </html>

    运行结果:

    p和.first都匹配到了p这个标签上,那么会显示哪种颜色呢?blue是正确的颜色,那么为什么呢?是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

    下面是权值的规则:

    标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:

    p{color:red;} /*权值为1*/
    p span{color:green;} /*权值为1+1=2*/
    .warning{color:white;} /*权值为10*/
    p span.warning{color:purple;} /*权值为1+1+10=12*/
    #footer .note p{color:yellow;} /*权值为100+10+1=111*/

    注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

    3.层叠

    我们来思考一个问题:如果在html文件中对于同一个元素可以有多个css样式存在并且这多个css样式具有相同权重值怎么办?好,这一小节中的层叠帮你解决这个问题。

    层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用。

    如下面代码:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>层叠</title>
    <style type="text/css">
    p{color:red;}
    p{color:green;}
    </style>
    </head>
    <body>
        <h1>Hello</h1>
        <p>My name is chen.</p>
    </body>
    </html>

    运行结果:

    最后 p 中的文本会设置为blue,这个层叠很好理解,理解为后面的样式会覆盖前面的样式。

    所以前面的css样式优先级就不难理解了:

    内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)

    4.重要性

    我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。

    如下代码:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>重要性</title>
    <style type="text/css">
    p{color:red!important;}
    p.first{color:blue;}
    </style>
    </head>
    <body>
        <h1>Hello</h1>
        <p class="first">My name is chen.</p>
    </body>
    </html>

    这时 p 段落中的文本会显示的red红色。

    运行结果:

    注意:!important要写在分号的前面

    这里注意当网页制作者不设置css样式时,浏览器会按照自己的一套样式来显示网页。并且用户也可以在浏览器中设置自己习惯的样式,比如有的用户习惯把字号设置为大一些,使其查看网页的文本更加清楚。这时注意样式优先级为:浏览器默认的样式 < 网页制作者样式 < 用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式。

  • 相关阅读:
    Benelux Algorithm Programming Contest 2016 Preliminary K. Translators’ Dinner(思路)
    Benelux Algorithm Programming Contest 2016 Preliminary Target Practice
    Benelux Algorithm Programming Contest 2016 Preliminary I. Rock Band
    Benelux Algorithm Programming Contest 2016 Preliminary A. Block Game
    ICPC Northeastern European Regional Contest 2019 Apprentice Learning Trajectory
    ICPC Northeastern European Regional Contest 2019 Key Storage
    2018 ACM ICPC Asia Regional
    2018 ACM ICPC Asia Regional
    Mybatis入库出现异常后,如何捕捉异常
    优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止
  • 原文地址:https://www.cnblogs.com/dorra/p/7183350.html
Copyright © 2011-2022 走看看