博客列表 >css选择器权重、伪类选择器学习

css选择器权重、伪类选择器学习

阿杰
阿杰原创
2022年03月23日 12:18:01568浏览

一、css选择器的权重

1、文档样式大于外部样式

  • 外部样式

  • 文档样式
  1. <style>
  2. body{
  3. background-color: lightcoral;
  4. }
  5. </style>

2、权重的具体对比

  • 权重表达式:(a,b,c), a:id个数,b:class个数,c:标签个数
  1. <ul>
  2. <li>权重(0,0,0)</li>
  3. <li>权重(0,0,1)</li>
  4. <li>权重(0,0,2)</li>
  5. <li class="title">权重(0,1,0)</li>
  6. <li class="title">权重(0,1,1)</li>
  7. <li id="active" class="title">权重(1,1,2)</li>
  8. <li id="active" class="title">权重(1,1,2)</li>
  9. </ul>
  1. /* 下面对li来比较 */
  2. /* 权重:(0,0,0) */
  3. ul{
  4. color: blue;
  5. }
  6. /* 权重:(0,0,1) */
  7. li{
  8. color: violet;
  9. }
  10. /* 权重:(0,0,2) */
  11. ul li{
  12. color: brown;
  13. }
  14. /* 权重:(0,1,0) */
  15. .title{
  16. color: lightgreen;
  17. }
  18. /* 权重:(0,1,1) */
  19. li.title{
  20. color: lightblue;
  21. }
  22. /* 权重:(0,1,2) */
  23. ul li.title{
  24. color: red;
  25. }
  26. /* 权重:(1,1,1) */
  27. li#active.title{
  28. color: lightseagreen;
  29. }
  30. /* 权重:(1,1,2) */
  31. ul li#active.title{
  32. color: yellowgreen;
  33. }

结论:(0,0,0)<(0,0,1)<(0,0,2)<(0,1,0)<(0,1,1)<(0,1,2)<(1,1,1)<(1,1,2)

  • !important: 最高指示,忽略任何权重
  1. li{
  2. color: black!important;
  3. }

二、伪类选择器学习

以:开头

  1. <!-- 结构伪类 -->
  2. <ul class="main">
  3. <li>item1</li>
  4. <li>item2</li>
  5. <li>item3</li>
  6. <li>item4</li>
  7. <li>item5</li>
  8. <li>item6</li>
  9. <li>item7</li>
  10. <li>item8</li>
  11. <li>item9</li>
  12. <li>item10</li>
  13. </ul>

1、:nth-of-type(n) 表达式

  • 第几个表示
  1. /* nth-of-type(n) */
  2. .main>li:nth-of-type(1){
  3. background-color: blue;
  4. }
  5. .main>li:nth-of-type(4){
  6. background-color: red;
  7. }

  • 第一个和最后一个表示、倒数第几个
  1. .main>li:first-of-type{
  2. background-color: blue;
  3. }
  4. .main>li:last-of-type{
  5. background-color: red;
  6. }

2、 :nth-of-type(an+b) 表达式

  • a: 系数, [0,1,2,…],n: [0,1,2,3,….],b: 偏移量, 从0开始
  • 匹配一个
  1. /* nth-of-type(an+b) */
  2. /* 匹配一个,a=0 ,n=[0,1,...],b*/
  3. .main>li:nth-of-type(2){
  4. background-color: blue;
  5. }

  • 匹配一组
  1. /* 匹配一组, a=1, n=[0,1,2...],b=[1,2,3..] */
  2. .main>li:nth-of-type(1n){
  3. background-color: red;
  4. }
  5. .main>li:nth-of-type(n){
  6. background-color: red;
  7. }
  8. .main>*{
  9. background-color: red;
  10. }

  • 匹配第3个元素后面的所有兄弟元素
  1. /* 匹配第3个元素后面的所有兄弟元素 */
  2. .main>li:nth-of-type(n+3){
  3. background-color: red;
  4. }

  • 取前3个与后三 ,a=-1
  1. /* 取前3个与后三 a=-1 */
  2. .main>li:nth-of-type(-n+3){
  3. background-color: red;
  4. }
  5. .main>li:nth-last-of-type(-n+3){
  6. background-color: red;
  7. }

  • 取奇数和偶数项
  1. /* odd: 奇数, even: 偶数 */
  2. .main>li:nth-of-type(odd){
  3. background-color: red;
  4. }
  5. .main>li:nth-of-type(even){
  6. background-color: blue;
  7. }

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