zoukankan      html  css  js  c++  java
  • 通过id设置的css属性和通过元素设置的css属性冲突了,优先级哪个高?

    ---恢复内容开始---

    <!DOCTYPE html>
    <html>
    <head>
        <title>div test</title>
    </head>
    
    <style> 
    
    
     div{
    
             height: 300px;
             width:200px;
             background: blue;
     }
    
    #main{
    
        background: red;
    }
    
    #footer{
    
        background:grey;
    }
    
    </style>
    
    <body>
    
        <div id="header"></div>
        <div id="main"></div>
        <div id="footer"></div>
    
    </body>
    
    </html>

    以上代码先是设置了所有的div的背景色是蓝色,这样body中的三个div的背景色就都是蓝色的了,后来又通过id的形式设置了main这个div的背景色是red,这个属性会覆盖掉通过div设置的蓝色背景,footer也是一样的道理。

    可如果是这样结果是什么样子的呢?

    <!DOCTYPE html>
    <html>
    <head>
        <title>div test</title>
    </head>
    
    <style> 
    #main{
    
        background: red;
    }
    
    #footer{
    
        background:grey;
    }
    
     div{
    
             height: 300px;
             width:200px;
             background: blue;
     }
    
    
    </style>
    
    <body>
    
        <div id="header"></div>
        <div id="main"></div>
        <div id="footer"></div>
    
    </body>
    
    </html>

    main和footer这两个div的颜色最后会是蓝色的吗?经过chrome测试,发现并没有。

    这说明浏览器渲染html的时候并不是从上到下按照css代码的编写顺序执行的,而是id的css属性会覆盖掉元素的css属性,和css代码写在前面后面没有关系。

    ---恢复内容结束---

    <!DOCTYPE html>
    <html>
    <head>
        <title>div test</title>
    </head>
    
    <style> 
    
    
     div{
    
             height: 300px;
             width:200px;
             background: blue;
     }
    
    #main{
    
        background: red;
    }
    
    #footer{
    
        background:grey;
    }
    
    </style>
    
    <body>
    
        <div id="header"></div>
        <div id="main"></div>
        <div id="footer"></div>
    
    </body>
    
    </html>

    以上代码先是设置了所有的div的背景色是蓝色,这样body中的三个div的背景色就都是蓝色的了,后来又通过id的形式设置了main这个div的背景色是red,这个属性会覆盖掉通过div设置的蓝色背景,footer也是一样的道理。

    可如果是这样结果是什么样子的呢?

    <!DOCTYPE html>
    <html>
    <head>
        <title>div test</title>
    </head>
    
    <style> 
    #main{
    
        background: red;
    }
    
    #footer{
    
        background:grey;
    }
    
     div{
    
             height: 300px;
             width:200px;
             background: blue;
     }
    
    
    </style>
    
    <body>
    
        <div id="header"></div>
        <div id="main"></div>
        <div id="footer"></div>
    
    </body>
    
    </html>

    main和footer这两个div的颜色最后会是蓝色的吗?经过chrome测试,发现并没有。

    这说明浏览器渲染html的时候并不是从上到下按照css代码的编写顺序执行的,而是id的css属性会覆盖掉元素的css属性,和css代码写在前面后面没有关系。

  • 相关阅读:
    angularjs中的页面访问权限设置
    Html页面head标签元素的意义和应用场景
    脚本引用中的defer和async的用法和区别
    自适应页面中如何使用雪碧图
    网页颜色分辨测试小游戏的js化辨别及优化
    jQuery1.9及其以上版本中动态元素on绑定事件无效解决方案
    Data URL简介及Data URL的利弊
    浏览器调试:事件定位与源码查找
    简述ES5 ES6
    移动端中pagehide、pageshow的应用
  • 原文地址:https://www.cnblogs.com/yfish/p/6390031.html
Copyright © 2011-2022 走看看