Blogger Information
Blog 9
fans 0
comment 0
visits 3946
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
选择器的权重
恒儿哥哥
Original
507 people have browsed it

1.上下文选择器/层级选择器
css语法表达
1.子元素:>
2.后代元素: 空格
3.相邻兄弟:+
4.所有兄弟:~
层级:>,空格
平级:+,~
2.选择器权重
页面元素:标签+属性 样式规则:选择器{声明}

1.选择器的权重,计算过程

  1. <div class="a">
  2. <h1 id="b" class="c">hello world</h1>
  3. </div>
  4. css文件
  5. div {
  6. background-color: red;
  7. width: 200px;
  8. }
  9. div > h1 {
  10. color: blue;
  11. }

div标签的样式的权重是:0个id,0个class,1 个标签 ——(0,0,1)
h1标签的权重是: 0个id,0个class,2 个标签(div+h1) ——(0,0,2)

  1. 现在改变字的颜色
    1. div {
    2. background-color: red;
    3. width: 200px;
    4. }
    5. div > h1 {
    6. color: blue;
    7. }
    8. div > h1 {
    9. color: cyan;
    10. }
    这里通过后写样式覆盖先前的样式将字的颜色经行改变
  2. 现在想将字改回原来的颜色
    有两种方法:
    1.第一种是继续使用后写的样式去覆盖先前的样式
    2.第二种就是改变样式的权重
    1. div {
    2. background-color: red;
    3. width: 200px;
    4. }
    5. div > h1.leteracy {
    6. color: blue;
    7. }
    8. div > h1 {
    9. color: cyan;
    10. }
    现在div > h1.leteracy的权重是:0个id,1个class,2个tagName —— (0,1,2)
    而先前div > h1的权重是:0个id,0个class,2个tagName —— (0,0,2)
    显然(0,1,2) > (0 , 0 ,2)
    通过这样的写法,css通过选择器的权重从而可以忽略书写的顺序
  3. 调试样式
    在样式后加 !important 从而忽略样式的权重
    1. div {
    2. background-color: red;
    3. width: 200px;
    4. }
    5. div > h1.leteracy {
    6. color: blue;
    7. }
    8. div > h1 {
    9. color: cyan !important;
    10. }
    此时虽然上一个h1的权重大于后一个的权重,但是后一个样式中加了!important就只显示后一个的样式
    伪类选择器
    1.计算权重,伪类也算是class
    结构伪类
    1.生成无序列表
    1. <ul class="list">
    2. <li class="item1">item1</li>
    3. <li class="item2">item2</li>
    4. <li class="item3">item3</li>
    5. <li class="item4">item4</li>
    6. <li class="item5">item5</li>
    7. <li class="item6">item6</li>
    8. <li class="item7">item7</li>
    9. <li class="item8">item8</li>
    10. <li class="item9">item9</li>
    11. <li class="item10">item10</li>
    12. <li class="item11">item11</li>
    13. <li class="item12">item12</li>
    14. <li class="item13">item13</li>
    15. <li class="item14">item14</li>
    16. <li class="item15">item15</li>
    17. </ul>
    2.改变全部样式CSS写法
    写法1:
    1. ul {
    2. width:100px;
    3. background-color: black;
    4. }
    5. ul>li {
    6. color:aqua;
    7. background-color: violet;
    8. }
    9. // 写法2:使用伪类:匹配分组的任意位置的子元素th-of-type(n)
    10. ul {
    11. width:100px;
    12. background-color: black;
    13. }
    14. ul>:nth-of-type(n) {
    15. color:aqua;
    16. background-color: violet;
    17. }
    效果是一样的
    参数解释:
    1. :nth-of-type(an+b):
    2. a=[0,1,2….]
    3. n=[0,1,2,….]
    b为偏置量
    如 -n+3 :
    -n result
    0 5
    -1 4
    -2 3
    -3 2
    -4 1
    忽略 =< 0 的数字
    即改变前五个的样式
    将其改成:nth-last-type-(an+b):一样的参数就会变成后五个
    又如:
    :nth-of-type(-2n+15)
    -n -2n+15
    0 15
    1 13
    2 11
    3 9
    4 7
    5 5
    6 3
    7 1
    将选中这些样式
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