博客列表 >CSS引入、标签选择器的实例应用

CSS引入、标签选择器的实例应用

a.
a.原创
2020年12月16日 00:35:51785浏览

CSS 样式引入方式

任何元素如果想引入到 HTML 文档中,必须要使用一个适当的标签,CSS 也不例外

方式 说明
1.内部样式 仅对当前文档的元素有效,使用的是 style 标签来定义的
2.外部样式/公共样式 适用于所有引入了 CSS 样式表的 HTML 文档,使用的是 link 标签
3.行内样式 仅适用于当前页面中的指定的,特定的元素。使用的是 style 属性

如下代码 :

  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <title>引入CSS样式的几种方式</title>
  5. <!--使用link标签外部引入-->
  6. <link rel="stylesheet" href="style.css" />
  7. <style>
  8. /* 内部样式 */
  9. h1 {
  10. color: blue;
  11. }
  12. /* 外部引入 */
  13. @import url(style.css);
  14. </style>
  15. </head>
  16. <body>
  17. <h1>引入CSS样式的几种方式</h1>
  18. <!--style属性 -->
  19. <h1 style="color:red">style属性样式</h1>
  20. </body>
  21. </html>

选择器

1.标签选择器

  • 返回的是一组元素
  1. li {
  2. background-color: violet;
  3. color: darkred;
  4. }

2.类选择器

  • 返回一组,选取一类具有共同特征的
  1. .on {
  2. background-color: wheat;
  3. }

3.ID 选择器

  • 浏览器不检查 ID 的唯一性,必须由开发者自行保证
  1. #foo {
  2. background-color: blue;
  3. }

4.上下文选择器

因为 HTML 是一个结构化的文档:第一个元素在文档中有确切的位置,所以根据元素的上下文环境来选择是完全没有问题的

1.后代选择器 :所有层级
  1. ul li {
  2. background-color: red;
  3. }
2.子元素选择器 :仅父子层级
  1. body > ul > li {
  2. background-color: blue;
  3. }
3.同级相邻选择器:仅选择与之相邻的第一个兄弟元素
  1. .start + li {
  2. background-color: tomato;
  3. }
4.同级所有选择器:选中与之相邻的所有兄弟元素
  1. .start1 ~ li {
  2. background-color: rgb(255, 230, 0);
  3. }

HTML

  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <title>上下文选择器</title>
  5. <style>
  6. ul li {
  7. background-color: red;
  8. }
  9. body > ul > li {
  10. background-color: blue;
  11. }
  12. .start + li {
  13. background-color: tomato;
  14. }
  15. .start1 ~ li {
  16. background-color: rgb(255, 230, 0);
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <ul>
  22. <li>上下文选择器</li>
  23. <li>上下文选择器</li>
  24. <li class="start">上下文选择器</li>
  25. <li>上下文选择器</li>
  26. <li>
  27. 上下文选择器
  28. <ul>
  29. <li>adfasdf</li>
  30. <li>adfasdf</li>
  31. <li>adfasdf</li>
  32. <li>adfasdf</li>
  33. <li>adfasdf</li>
  34. </ul>
  35. </li>
  36. <li>上下文选择器</li>
  37. <li class="start1">上下文选择器</li>
  38. <li>上下文选择器</li>
  39. <li>上下文选择器</li>
  40. <li>上下文选择器</li>
  41. </ul>
  42. </body>
  43. </html>

重点
1.空格所有层级
2.>:父子级
3.+:相邻兄弟
4.~:所有相邻兄弟

5.伪类选择器

结构伪类

1.匹配任意位置的元素:nth-of-type(an+b);an+b: an 起点,b 是偏移量,n = (0,1,2,3,4….)

2.反向获取任意位置的元素:nth-last-of-type(an+b)

3.只选择索引为偶数的子元素:nth-of-type(2n),nth-of-type(even);只选择索引为奇数的子元素:nth-of-type(2n-1),nth-of-type(2n+1),nth-of-type(odd)

HTML:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>结构伪类</title>
  7. <style>
  8. /* 选中第三个li元素
  9. .start li:nth-of-type(0n + 3) {
  10. background-color: salmon;
  11. }
  12. */
  13. /* 因为0*0等于0所以 0n就没有意义可以简化为: */
  14. .start li:nth-of-type(3) {
  15. background-color: salmon;
  16. }
  17. /*全部选中
  18. 如果直接全选这样就没有意义,可直接使用标签选择器。但是带上偏移量就不同了
  19. .start1 li:nth-of-type(1n) {
  20. background-color: sandybrown;
  21. }
  22. */
  23. /*从第4个开始全部选中
  24. .start1 li:nth-of-type(1n + 4) {
  25. background-color: seagreen;
  26. }
  27. 1*1还是等于1可简化如下写法:
  28. */
  29. .start1 li:nth-of-type(n + 4) {
  30. background-color: seagreen;
  31. }
  32. /* 选中最后3个
  33. .start1 li:nth-of-type(n + 8) {
  34. background-color: skyblue;
  35. }
  36. 考虑到有可能元素过多,可以使用反向获取 :
  37. */
  38. .start1 li:nth-last-of-type(-n + 3) {
  39. background-color: rgb(255, 0, 0);
  40. }
  41. /*选中倒数第2个*/
  42. .start1 li:nth-last-of-type(2) {
  43. background-color: rgb(0, 174, 255);
  44. }
  45. /*选中所有索引为偶数的元素 */
  46. /*
  47. .start2 li:nth-of-type(2n) {
  48. background-color: yellowgreen;
  49. }
  50. */
  51. /*选中所有索引为偶数的元素 */
  52. /*
  53. .start2 li:nth-of-type(2n + 1) {
  54. background-color: rgb(223, 51, 151);
  55. }
  56. */
  57. /*这里还可以用even odd */
  58. .start2 li:nth-of-type(even) {
  59. /*偶数*/
  60. background-color: yellowgreen;
  61. }
  62. .start2 li:nth-of-type(odd) {
  63. /*奇数*/
  64. background-color: rgb(223, 51, 151);
  65. }
  66. </style>
  67. </head>
  68. <body>
  69. <ul class="start1">
  70. <li>item1</li>
  71. <li>item2</li>
  72. <li>item3</li>
  73. <li>item4</li>
  74. <li>item5</li>
  75. <li>item6</li>
  76. <li>item7</li>
  77. <li>item8</li>
  78. <li>item9</li>
  79. <li>item10</li>
  80. </ul>
  81. <ul class="start2">
  82. <li>item101</li>
  83. <li>item102</li>
  84. <li>item103</li>
  85. <li>item104</li>
  86. <li>item105</li>
  87. <li>item106</li>
  88. <li>item107</li>
  89. <li>item108</li>
  90. <li>item109</li>
  91. <li>item1010</li>
  92. </ul>
  93. </body>
  94. </html>

语法糖

  • 选择第一个子元素
    first-of-type
  1. ul li:first-of-type {
  2. background-color: blue;
  3. }
  • 选中最后一个子元素
    last-of-type
  1. ul li:last-of-type {
  2. background-color: red;
  3. }
  • 如果只想匹配父元素中唯一子元素,使用 only-of-type 可快速实现
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>only-of-type</title>
  7. <style>
  8. /*选中最后一个ul里的所有子元素 */
  9. ul:last-of-type li {
  10. background-color: yellowgreen;
  11. }
  12. /*也可以用only-of-type */
  13. ul li:only-of-type {
  14. background-color: rgb(205, 50, 115);
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <ul>
  20. <li>item11</li>
  21. <li>item12</li>
  22. <li>item13</li>
  23. <li>item14</li>
  24. <li>item15</li>
  25. </ul>
  26. <ul>
  27. <li>item21</li>
  28. <li>item22</li>
  29. <li>item23</li>
  30. <li>item24</li>
  31. <li>item25</li>
  32. </ul>
  33. </body>
  34. </html>

课表颜色区别实例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>使用伪类选择器给每行表格添加区别颜色</title>
  7. <style>
  8. tr:nth-of-type(even) {
  9. background-color: rgb(236, 241, 226);
  10. }
  11. tr:nth-last-of-type(3) td:first-of-type {
  12. background-color: rgb(255, 255, 255);
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <table border="1" height="400" width="500" cellspacing="0" cellpadding="10">
  18. <caption>
  19. XX小学冬季课程表
  20. </caption>
  21. <thead>
  22. <tr>
  23. <th colspan="2">X</th>
  24. <th>周一</th>
  25. <th>周二</th>
  26. <th>周三</th>
  27. <th>周四</th>
  28. <th>周五</th>
  29. </tr>
  30. </thead>
  31. <tbody>
  32. <tr>
  33. <td rowspan="4">上午</td>
  34. <td>语文</td>
  35. <td>生物</td>
  36. <td>英语</td>
  37. <td>音乐</td>
  38. <td>美术</td>
  39. <td>语文</td>
  40. </tr>
  41. <tr>
  42. <td>数学</td>
  43. <td>数学</td>
  44. <td>语文</td>
  45. <td>语文</td>
  46. <td>语文</td>
  47. <td>语文</td>
  48. </tr>
  49. <tr>
  50. <td>英语</td>
  51. <td>英语</td>
  52. <td>语文</td>
  53. <td>语文</td>
  54. <td>语文</td>
  55. <td>语文</td>
  56. </tr>
  57. <tr>
  58. <td>体育</td>
  59. <td>体育</td>
  60. <td>语文</td>
  61. <td>语文</td>
  62. <td>语文</td>
  63. <td>语文</td>
  64. </tr>
  65. <tr align="center">
  66. <td colspan="7">中午休息</td>
  67. </tr>
  68. <tr>
  69. <td rowspan="3">下午</td>
  70. <td>思想品德</td>
  71. <td>语文</td>
  72. <td>英语</td>
  73. <td>音乐</td>
  74. <td>美术</td>
  75. <td>语文</td>
  76. </tr>
  77. <tr>
  78. <td>美术</td>
  79. <td>数学</td>
  80. <td>语文</td>
  81. <td>语文</td>
  82. <td>语文</td>
  83. <td>语文</td>
  84. </tr>
  85. <tr>
  86. <td>课外活动</td>
  87. <td colspan="5">自行活动(自愿参加)</td>
  88. </tr>
  89. </tbody>
  90. </table>
  91. </body>
  92. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议