博客列表 >CSS 样式来源、选择器和权重复习

CSS 样式来源、选择器和权重复习

cool442
cool442原创
2021年12月25日 23:01:46477浏览

CSS 样式来源、选择器和权重

一. 元素样式来源

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>元素样式来源</title>
  8. </head>
  9. <body>
  10. <!-- 1.继承样式 -->
  11. <style>
  12. .a1 {
  13. font-size: 40px;
  14. color: blue;
  15. }
  16. </style>
  17. <div class="a1">
  18. <p>这是P标签,样式继承div标签a1样式颜色、字号。</p>
  19. </div>
  20. <!-- 2.默认样式 -->
  21. <h2>这是h2标签的默认样式</h2>
  22. <h3>这是h3标签的默认样式</h3>
  23. <!-- 3.自定义样式 -->
  24. <!-- 3.1 行内样式 -->
  25. <p style="color: cadetblue; font-size: 30px">这是p标签定义了行内样式</p>
  26. <!-- 3.2 文档样式 -->
  27. <style>
  28. .aa {
  29. display: block;
  30. width: 600px;
  31. font-size: 30px;
  32. line-height: 60px;
  33. color: white;
  34. background-color: darkcyan;
  35. border: 1px solid coral;
  36. }
  37. </style>
  38. <p class="aa">这是p标签定义的文档样式</p>
  39. <!-- 3.3 外部样式 -->
  40. <link rel="stylesheet" href="/style.css" />
  41. <p class="wai">这是p标签定义的外部文档sytle.css样式</p>
  42. </body>
  43. </html>

二、选择器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>选择器</title>
  8. </head>
  9. <body>
  10. <!-- 1. 标签选择器 -->
  11. <style>
  12. h2 {
  13. color: violet;
  14. }
  15. </style>
  16. <h2>通过标签选择器设置样式</h2>
  17. <!-- 2. 属性选择器 -->
  18. <style>
  19. button[value="2"] {
  20. display: block;
  21. padding: 15px;
  22. font-size: 30px;
  23. }
  24. </style>
  25. <button value="2">通过属性选择器设置样式</button>
  26. <!-- 3. 群组选择 -->
  27. <ul>
  28. <li class="qz1">群组选择1</li>
  29. <li class="qz2">群组选择2</li>
  30. <li class="qz3">群组选择3</li>
  31. </ul>
  32. <style>
  33. .qz1,
  34. .qz2,
  35. .qz3 {
  36. color: turquoise;
  37. }
  38. </style>
  39. <!-- 4. 通配选择 -->
  40. <ul class="tp">
  41. <li class="tp1">通配选择1</li>
  42. <li class="tp2">通配选择2</li>
  43. <li class="tp3">通配选择3</li>
  44. </ul>
  45. <style>
  46. .tp * {
  47. color: rgb(0, 89, 255);
  48. font-size: 35px;
  49. }
  50. </style>
  51. <!-- 5. 上下文选择器 -->
  52. <!-- 5.1 子元素 -->
  53. <div class="z1">
  54. <h2>子元素选择h2</h2>
  55. <p>子元素选择p</p>
  56. </div>
  57. <style>
  58. .z1 > h2 {
  59. color: tomato;
  60. }
  61. .z1 > p {
  62. font-size: 25px;
  63. }
  64. </style>
  65. <!-- 5.2 后代元素选择 -->
  66. <div class="hd">
  67. <div>
  68. <p>孙代元素选择</p>
  69. <div>
  70. <p>从孙代</p>
  71. </div>
  72. </div>
  73. </div>
  74. <style>
  75. .hd p {
  76. color: turquoise;
  77. }
  78. </style>
  79. <!-- 5.3 相邻兄弟元素选择 -->
  80. <div>
  81. <h1>老大</h1>
  82. <h2 class="xlxd">老二相邻的兄弟是老三,往后找最近的兄弟</h2>
  83. <h3>老三</h3>
  84. <h4>老四</h4>
  85. </div>
  86. <style>
  87. .xlxd + * {
  88. font-size: 60px;
  89. }
  90. </style>
  91. <hr />
  92. <!-- 5.4 所有兄弟元素选择 -->
  93. <div>
  94. <h1>老大</h1>
  95. <h2 class="xlxd">老二的所有兄弟是往后找所有的兄弟,因此老大不是</h2>
  96. <h3>老三</h3>
  97. <h4>老四</h4>
  98. </div>
  99. <style>
  100. .xlxd ~ * {
  101. font-size: 60px;
  102. }
  103. </style>
  104. </body>
  105. </html>

三、选择器的权重

1. 权重比较规则

- 把“id”,“class”,“标签” 看成一个三位数的整数

- “id”为百位数,有 1 个为 1,有 2 个为 2…

- “class”为十位数,有 1 个为 1,有 2 个为 2…

- “标签”为个位数,有 1 个为 1,有 2 个为 2…

- 三位数大的选择器权重大

  1. <!-- 选择器的权重 -->
  2. <div class="d"><h2 class="css" id="i">选择器的权重</h2></div>
  3. <style>
  4. /* 权重:110 */
  5. .d > #i {
  6. color: red;
  7. }
  8. /* 权重011 */
  9. div > .css {
  10. color: sandybrown;
  11. }
  12. /* 权重111,最大,所以显示该样式 */
  13. div > #i.css {
  14. color: skyblue;
  15. }
  16. /* 权重020 */
  17. .d .css {
  18. color: slateblue;
  19. }
  20. </style>

2. 不推荐用 id 和标签作为选择器

  • id 权重太高, 为了让你的代码具有弹性,尽可能用 class。
  • 标签数量太少了, 而 class 可以有多种命名,使用方便。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议