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 可以有多种命名,使用方便。

更多相关文章

  1. android 登陆、提交数据或加载数据时提示页面
  2. Android(安卓)写一个属于自己的印象笔记
  3. 自定义android的tab样式
  4. Android自定义Button按钮显示样式
  5. Android(安卓)TextView 丰富多彩的字体样式代码
  6. Android(安卓)ClickableSpan 应用实例
  7. Android下修改SeekBar样式
  8. Android(安卓)ClickableSpan 应用实例
  9. android 布局权重问题(最近布局经常坑爹)

随机推荐

  1. Java项目中的classpath
  2. Tomcat 网站部署(三)
  3. 如何将树路径转换为json对象
  4. java基础中一些值得聊的话题(内存篇)
  5. 为可执行文件夹提供自定义图像
  6. java解析xml问题:如何获得一级标签下全部
  7. spring框架中一个跟String的trim方法一样
  8. java中的Unicode到String但很棘手
  9. hbase中出现的java.net.BindException-Pr
  10. 处理“您确定您想要离开这个页面”Msg在S