Blogger Information
Blog 6
fans 0
comment 1
visits 3350
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS基础1:元素样式来源,选择器,权重
超的php学习历程
Original
462 people have browsed it

CSS基础1

1.CSS是什么

Cascading Style Sheets(CSS)既层叠样式表。
主要功能:1. 设置元素样式(翻译:长什么样子) 2.元素布局(翻译:在哪里显示)。

2.元素样式来源有哪些

2.1 CSS工作流:1.找到元素 2.设置样式。

2.2 CSS元素样式来源:

  1. 默认样式:用户代理样式(既浏览器样式)。
  2. 自定义样式:分为行内样式(style=“…”),文档样式(style标签),外部样式(style.css使用link标签引用外部文件)
  3. 继承样式:(关键词inhert),通常关于文本的颜色,字体,字号可以继承,而盒模型样式不能继承。

2.3 元素样式优先级排序

行内样式 > 文档样式 > 外部样式 > 默认样式 > 继承样式

2.4实例演示几种样式来源:

  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. <link rel="stylesheet" href="css/style1.css" />
  8. <title>实例演示样式来源</title>
  9. </head>
  10. <body>
  11. <!-- 1.默认样式来源 -->
  12. <h1>默认样式</h1>
  13. <!-- 2.自定义样式 -->
  14. <!-- 2.1 行内样式 -->
  15. <h2 style="color: brown">行内样式</h2>
  16. <!-- 2.2 文档样式 -->
  17. <h3>文档样式</h3>
  18. <style>
  19. h3 {
  20. color: cadetblue;
  21. }
  22. </style>
  23. <!-- 2.3 外部样式 -->
  24. <h4>外部样式</h4>
  25. <!-- 继承样式 -->
  26. <div>
  27. div父样式
  28. <p>p标签继承父样式</p>
  29. <h5>h5继承父样式</h5>
  30. </div>
  31. <style>
  32. div {
  33. color: yellowgreen;
  34. }
  35. p {
  36. color: thistle;
  37. color: inherit;
  38. }
  39. h5 {
  40. color: tomato;
  41. color: inherit;
  42. }
  43. </style>
  44. </body>
  45. </html>

效果图:

3. 选择器

什么是选择器,理解就是要设置css样式的对象,可以作为选择器的对象有以下几种:
3.1基本选择器:tag,例如h1
3.2属性选择器:例如 <h1 title="a"> hello </h1> 种的title,应用中使用h1[titile=”a”]来选择引用。其中 id和class属于高频属性,简化用法为id用”#”代替,class用“.” 代替。推荐是用class,因为在后面权重中id得权重过高,无进一步提升空间。
3.3群组选择器:多个选择器并列,用逗号隔开,例如.a,p {color:red}
3.4通配符选择器:用*号表示,例如 html body *{color:red}
3.5上下文选择器/层级选择器:其中,子元素用”>”表示;后代元素用“空格”表示;邻居兄弟元素用“+ *”表示;所有兄弟元素用“~ *” 表示。
实例代码

  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>CSS选择器的种类及用法</title>
  8. </head>
  9. <body>
  10. <!-- 1. 基本选择器 tag -->
  11. <h1>这是基本选择器,使用h1标签</h1>
  12. <style>
  13. h1 {
  14. color: khaki;
  15. }
  16. </style>
  17. <!-- 2. 属性选择器 -->
  18. <h2 title="a">这是属性选择器,h2[title="a"]</h2>
  19. <style>
  20. h2[title="a"] {
  21. color: red;
  22. }
  23. </style>
  24. <h3 id="a">这是属性选择器,h3#id</h3>
  25. <style>
  26. h3#a {
  27. color: saddlebrown;
  28. }
  29. </style>
  30. <h4 class="a">这是属性选择器,h4.class</h4>
  31. <style>
  32. h4.a {
  33. color: skyblue;
  34. }
  35. </style>
  36. <!-- 3. 通配符选择器 -->
  37. <div>
  38. <ul class="list">
  39. <li class="item1">item1</li>
  40. <li class="item2">item2</li>
  41. <ul class="list2">
  42. <li class="item">item1</li>
  43. <li class="item second">item2</li>
  44. <ul class="list3">
  45. <li class="item">item1</li>
  46. <li class="item">item2</li>
  47. <li class="item">item3</li>
  48. </ul>
  49. <li class="item">item3</li>
  50. </ul>
  51. <li class="item3">item3</li>
  52. <li class="item4">item4</li>
  53. </ul>
  54. <style>
  55. /* 子元素选择器“>” */
  56. .list > li {
  57. border: 1px solid slateblue;
  58. }
  59. /* 后代元素选择器用“空格” */
  60. .list2 li {
  61. border: tomato solid 1px;
  62. }
  63. /* 邻居兄弟元素选择器用“+ *” */
  64. .item2 + * {
  65. background-color: green;
  66. }
  67. /* 所有兄弟元素选择器用“~ *” */
  68. .item.second ~ * {
  69. color: turquoise;
  70. }
  71. </style>
  72. </div>
  73. </body>
  74. </html>

效果图:

4.选择器权重

CSS规则是同样名称后写的覆盖前面的,为了保证前面的能生效,产生出权重的概念,权重是由specificity(0,0,0)表示的,个位代表tag数量,十位代表class数量,百位代表id数量,这也是为什么程序员在代码中将id认为成唯一的原因,因为id权重过高,很有可能遇到提权重的瓶颈,tag的语义化标签数量有限,不能满足复杂度需求,class没有数量限制,可以自定义,所以成为代码中最常用的属性,其对增加代码的弹性起到了重要作用。
最重要的是要学会权重的计算,并在实际编程中使用权重。
实例

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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. <h1 class="title" id="active">Hello</h1>
  11. <style>
  12. /* 1 1 2 */
  13. /* 2: 表示2个标签,
  14. 1: 表示1个class
  15. 1: 表示1个id */
  16. body h1.title#active {
  17. color: red;
  18. }
  19. /* 0 1 2 */
  20. /* 2: 表示2个标签,
  21. 1: 表示1个class
  22. 0: 表示没有id */
  23. body h1.title {
  24. color: blue;
  25. }
  26. /* 就想放在第一行,又想让它生效,只有提权 */
  27. /* 0 0 2 */
  28. /* 2: 表示2个标签,
  29. 0: 表示没有class
  30. 0: 表示没有id */
  31. body h1 {
  32. color: green;
  33. }
  34. /* 相同的权重,由位置决定样式 */
  35. /* 0 0 1 */
  36. /* 1: 表示只有一个标签,
  37. 0: 表示没有class
  38. 0: 表示没有id */
  39. h1 {
  40. color: darkorange;
  41. }
  42. /* 三个权重的位置, 从右到左
  43. 第1位: 标签数量
  44. 第2位: class数量
  45. 第3位: id数量 */
  46. /* css 将 id, class, tag 看成一个"三位整数", id -> 百位, class -> 十位, tag -> 个位 */
  47. /* h1 {
  48. color: violet !important;
  49. } */
  50. /* id : 为什么不推荐用? 因为权重太高, 为了让你的代码具有弹性,尽可能用class */
  51. /* 为什么不用权重最低的标签呢? 只是标签的数量太少了, 而class可以任何命名 */
  52. /* bootstrap , element ui */
  53. </style>
  54. <div class="col-md-3 vip">Bootstrap</div>
  55. <style>
  56. /* 0 2 1 */
  57. div.col-md-3.vip {
  58. border: 5px solid red;
  59. }
  60. /* 0 1 1 */
  61. div.col-md-3 {
  62. border: 1px solid #000;
  63. }
  64. </style>
  65. </body>
  66. </html>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post