博客列表 >CSS样式层叠和优先级

CSS样式层叠和优先级

杨向贤
杨向贤原创
2020年10月10日 16:21:301242浏览

CSS样式层叠

Css是用来干嘛的?

  • 美化静态HTML页面
  • 实现表现和内容分离
  • 便于页面风格的统一和修改(样式重用,提高开发效率)

HTML中使用CSS的方法

  1. 行内样式:混合在HTML标签里面,对每个元素单独定义样式

    <a href="#" style="background-color: blue">行内样式</a>

  2. 页面的内部样式:在<head>与</head>之间添加样式(重用性差,容易冗余)

    1. <head>
    2. <meta charset="UTF-8" />
    3. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    4. <!-- 引入外部资源 -->
    5. <link rel="stylesheet" href="style.css" />
    6. <title>实例</title>
    7. <style>
    8. .nav{
    9. background-color: yellow;
    10. }
    11. </style>
  3. 链接外部样式资源:使用Link标签,只需要把公共的CSS单独保存为一个文件,其他页面就可以分别调用自身的CSS文件,如果要改变网站风格,修改公共的CSS文件就可以了,是开发常用的HTML+CSS使用方式
    1. <head>
    2. <meta charset="UTF-8" />
    3. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    4. <!-- 引入外部资源 -->
    5. <link rel="stylesheet" href="style.css" /><!--link方式-->
    6. <title>实例</title>
    7. <style>
    8. @import url("style.css");/**import方式**/
    9. </style>
    10. </head>
  4. 导入外部样式:import方式导入CSS样式表,和链接外部样式资源类似

    四种样式也有优先级,按照就近原则:行内样式 > 页面内部样式 > 链接外部样式资源 > 导入外部样式


样式引入实例

  1. <head>
  2. <meta charset="UTF-8" />
  3. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  4. <title>样式引人</title>
  5. <!-- link方式加载样式 -->
  6. <link rel="stylesheet" href="sytle1.css" />
  7. <style>
  8. /* 导入外部样式 */
  9. /* @import url("sytle.css"); */
  10. /* 页面内部样式 */
  11. .title {
  12. color: teal;
  13. background-color: wheat;
  14. text-align: center;
  15. margin: auto;
  16. width: 20em;
  17. height: 5em;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <head class="nav">
  23. <h1 class="title">标题</h1>
  24. <table class="girad">
  25. <tr>
  26. <!-- 行内样式 -->
  27. <td style="background-color: blue">1</td>
  28. <td>2</td>
  29. <td>3</td>
  30. <td>4</td>
  31. </tr>
  32. </table>
  33. </head>
  34. </body>


CSS优先级和继承

CSS的冲突,就是优先级

CSS优先级规则

  1. CSS层叠样式表引入方法的优先级:内联式>内嵌式>链接式>导入式
  2. 在多个外部样式中,后出现的样式的优先级高于先出现的样式,也就是覆盖
  3. 选择器的优先级:ID样式>class样式>标记样式
  4. !important,这个样式的优先级就会默认提升到顶级,就像root权限一样

离代码越近,优先级越高

实例

  1. <body>
  2. <table class="gridtable" cellpadding="15" cellspacing="2">
  3. <!-- 同时有ID和class ,id权重高 -->
  4. <tr class="row1" id="test">
  5. <td rowspan="2"><a href="#">酒店</a></td>
  6. <td><a href="#">海外酒店</a></td>
  7. <td><a href="#">团购</a></td>
  8. </tr>
  9. <tr class="row1">
  10. <td><a href="#">特价酒店</a></td>
  11. <td><a href="#">民宿</a></td>
  12. </tr>
  13. <tr class="row2">
  14. <td rowspan="2"><a href="#">机票</a></td>
  15. <td><a href="#">火车票</a></td>
  16. <td><a href="#">汽车票</a></td>
  17. </tr>
  18. <tr class="row2">
  19. <td><a href="#">特价机票</a></td>
  20. <td><a href="#">专车.出租车</a></td>
  21. </tr>
  22. <tr class="row3">
  23. <td rowspan="2"><a href="#">旅游</a></td>
  24. <td><a href="#">目的地攻略</a></td>
  25. <td><a href="#">游轮</a></td>
  26. </tr>
  27. <tr class="row3">
  28. <td><a href="#">周边游</a></td>
  29. <td><a href="#">定制旅行</a></td>
  30. </tr>
  31. <tr class="row4">
  32. <td><a href="#">景点.玩乐</a></td>
  33. <td><a href="#">美食</a></td>
  34. <td><a href="#">购物</a></td>
  35. </tr>
  36. <tr class="row4">
  37. <td><a href="#">礼品卡</a></td>
  38. <td><a href="#">WIFI电话卡</a></td>
  39. <td><a href="#">签证</a></td>
  40. </tr>
  41. </table>
  42. </body>
  1. /** CSS 代码片段 **/
  2. #test {
  3. background-color: #e46766;
  4. }
  5. /* 0,1,0 */
  6. .gridtable {
  7. width: 608px;
  8. height: 57px;
  9. margin: 0 auto;
  10. text-align: center;
  11. }
  12. /* 0,1,1 */
  13. .gridtable a {
  14. text-decoration: none;
  15. color: #1f0c13;
  16. }
  17. .row1 {
  18. background-color: #267bd9;
  19. }
  20. /* 0,1,1 */
  21. .row1 a {
  22. color: #ffffff;
  23. }
  24. .row2 {
  25. background-color: #267bd9;
  26. }
  27. .row3 {
  28. background-color: #2e9415;
  29. }
  30. .row4 {
  31. background-color: #e58a1a;
  32. }

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议