博客列表 >前端样式之元素选择器

前端样式之元素选择器

Dz
Dz原创
2020年07月17日 22:21:42851浏览

简单的选择器

  • 场景↓
    1. <body>
    2. <div class="container">
    3. <div class="item" id="first">1</div>
    4. <div class="item">2</div>
    5. <div class="item">3</div>
    6. <div class="item">4</div>
    7. <div class="item center">5</div>
    8. <div class="item">6</div>
    9. <div class="item">7</div>
    10. <div class="item">8</div>
    11. <div class="item">9</div>
    12. </div>
    13. </body>

元素选择器

  • 标签选择器,如body、div等等
    1. body {
    2. }
    3. div{
    4. }

类选择器

  • 对应着html中的class属性,如class=”item”
    1. .item {
    2. }
  • 多个类复合应用,如class=”item center”
    1. .item.center{
    2. }

id选择器

  • 如id=”first”
    1. #first {
    2. }

简单选择器的优先级

  • id > class > 元素

上下文选择器

  • 场景↓
    1. <body>
    2. <div class="container">
    3. <div class="item">1</div>
    4. <div class="item">2</div>
    5. <div class="item">3</div>
    6. <div class="item">4</div>
    7. <div class="item center">5</div>
    8. <div class="item">6</div>
    9. <div class="item">7</div>
    10. <div class="item">8</div>
    11. <div class="item">9</div>
    12. </div>
    13. </body>

后代选择器

  • 选择标签或类下所有的标签或类,如选择body下的所有div
    1. body div {
    2. }

父子选择器

  • 选择标签或类下一级的标签或类,如选择body下一级div
    1. body > div {
    2. }

同级相邻选择器

  • 选择类同级的下一个类,如选择class=”item center”下一个class=”item”
    1. .item.center + .item {
    2. }

同级所有选择器

  • 选择类同级后面所有的类,如选择class=”item center”后面所有的class=”item”
    1. .item.center ~ .item {
    2. }

伪类选择器

不分组的伪类选择器

  • 场景↓

    1. <body>
    2. <div class="container">
    3. <div class="item">1</div>
    4. <div class="item">2</div>
    5. <div class="item">3</div>
    6. <div class="item">4</div>
    7. <div class="item">5</div>
    8. <div class="item">6</div>
    9. <div class="item">7</div>
    10. <div class="item">8</div>
    11. <div class="item">9</div>
    12. </div>
    13. </body>
  • 选择第一个子元素

    1. .container > *:first-child {
    2. }

    或者

    1. .container > .item:first-child {
    2. }
  • 选择最后一个子元素

    1. .container > :last-child {
    2. }
  • 选择指定个数元素,如第3个元素

    1. .container > :nth-child(3) {
    2. }
  • 只选择偶数单元格元素

    1. .container > :nth-child(2n) {
    2. }

    或者

    1. .container > :nth-child(even) {
    2. }
  • 只选择奇数单元格元素

    1. .container > :nth-child(2n-1) {
    2. }

    或者

    1. .container > :nth-child(odd) {
    2. }
  • 从指定位置(如从第4个元素开始),选择剩下的所有元素

    1. .container > .item:nth-child(n + 4) {
    2. }
  • 只取前几个元素(如只取前3个元素)

    1. .container > .item:nth-child(-n + 3) {
    2. }
  • 只取最后几个元素(如只取最后3个元素)

    1. .container > .item:nth-last-child(-n + 3) {
    2. }
  • 取倒数第几个元素(如取倒数第2个元素)

    1. .container > .item:nth-last-child(2) {
    2. }

分组的伪类选择器

  1. 元素按类型进行分组
  2. 在分组中根据索引进行选择
  • 场景↓

    1. <body>
    2. <div class="container">
    3. <div class="item">1</div>
    4. <div class="item">2</div>
    5. <div class="item">3</div>
    6. <span class="item">4</span>
    7. <span class="item">5</span>
    8. <span class="item">6</span>
    9. <span class="item">7</span>
    10. <span class="item">8</span>
    11. <span class="item">9</span>
    12. </div>
    13. </body>
  • 选择div组中的第一个元素

    1. .container div:first-of-type {
    2. }
  • 选择div组中的最后一个元素

    1. .container div:last-of-type {
    2. }
  • 选择span组中的指定一个元素,如选择第3个元素

    1. .container span:nth-of-type(3) {
    2. }
  • 选择span组中的前几个元素,如选择前3个元素

    1. .container span:nth-of-type(-n + 3) {
    2. }
  • 选择span组中的最后几个元素,如选择最后2个元素

    1. .container span:nth-last-of-type(-n + 3) {
    2. }

总结

  1. id选择器的应用场景目前只有二种场景: 表单元素, 锚点,开发中css样式尽量使用类选择器不要使用id选择器
  2. 相同元素,后面追加的样式会覆盖前面的样式
  3. 开发中伪类选择器应结合实际情况选择使用分组或者不分组伪类选择器
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
灭绝师太2020-07-18 15:36:551楼
总结得很细也很全,css3新增的一些动画样式,可以去研究下,很有意思。