css中:last-child不生效的解决方法

  发布时间:2022-07-29 16:56:34   作者:Dark_programmer   我要评论
本文主要介绍了css中:last-child不生效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在产品需求中,总有对第一个或者最后一个同类元素进行特殊的样式处理。

如果使用js来判断哪个是第一个、最后一个也并不是不可以。
但是,完全属于css的管理范围为什么要去使用js呢?

css选择器出场!

下面仅展示:last-child效果

1.期望效果

代码展示:

<template>
  <div class="root-container">
    <div class="father">
      <div class="child" v-for="item in 10" :key="item">
        一共10个元素,我是第{{item}}个
        <template v-if="item== 10">(css控制我的颜色)</template>
      </div>
    </div>
  </div>
</template>
<style lang='scss' scoped>
.father {
  width: 500px;
  border: 1px solid #b2b6b6;
  text-align: center;
  .child {
    padding: 10px 0;
    &:last-child {
      color: red;
    }
  }
}
</style>

展示的效果也和期望中的一样,最后一个元素文字为红色

2. 非期望效果

但有时候:last-child实现的却和想象中的 不太一样!!!!
代码如下:

<template>
  <div class="root-container">
    <div class="father">
      <div class="child" v-for="item in 10" :key="item">
        一共10个元素,我是第{{item}}个
        <template v-if="item== 10">(css控制我的颜色)</template>
      </div>
      <p>我是多余的元素</p>
    </div>
  </div>
</template>
<style lang='scss' scoped>
.father {
  width: 500px;
  border: 1px solid #b2b6b6;
  text-align: center;
  .child {
    padding: 10px 0;
    &:last-child {
      color: red;
    }
  }
}
</style>

看代码也可以看出来,仅仅是多了一个p标签,明明把:last-child是设置给了.child,但是需要的效果却没有了。

3. 分析问题

为什么:last-child没有起作用?

3.1 el:last-child 的匹配规则

1.查找 el 选择器匹配元素的所有同级元素(siblings)

2.在同级元素中查找最后一个元素

3.检验最后一个元素是否与选择器 el 匹配

期望中的效果实现了,是因为el:last-child匹配到的最后一个元素也是.child
非期望效果出现,是因为el:last-child匹配到的最后一个元素也是p标签而不是.child

4. 解决办法

方法1、
:last-child在其父元素内没有其它的标签,即让其父元素仅包含该种类型标签

方法2、
使用其它标签选择器:last-of-type
具体使用规则 :last-of-type — MDN

到此这篇关于css中:last-child不生效的解决方法的文章就介绍到这了,更多相关css :last-child不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • css中:last-child不生效的解决方法

    本文主要介绍了css中:last-child不生效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学
    2022-07-29
  • CSS浮动引起的高度塌陷问题

    本文主要介绍了CSS浮动引起的高度塌陷问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-27
  • 使用CSS实现六边形的图片效果

    这篇文章主要介绍了使用CSS实现六边形的图片效果,这个效果的难点在于六边形的绘制, 那么接下来我们就一起来看下作者是怎么实现他的吧
    2022-07-26
  • el-form每行显示两列底部按钮居中效果的实现

    这篇文章主要介绍了el-form每行显示两列底部按钮居中效果的实现,解决办法也很简单只需给el-form 添加 inline 属性,给每个 item 设置宽度,给底部按钮 flex 布局,本文给大
    2022-07-26
  • 纯CSS打字动画的实现示例

    本文主要介绍了纯CSS打字动画的实现示例,逐个显示一段文本中的字符,模拟出一种打字的效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
    2022-07-25
  • 新的CSS 伪类函数 :is() 和 :where()示例详解

    这篇文章给大家介绍了新的CSS 伪类函数 :is() 和 :where()示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下
    2022-07-25
  • 详解flex:1什么意思

    今天在做项目的时候遇到一个关于布局的问题, 就是 flex: 1,那么flex:1是什么意思,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
    2022-07-22
  • CSS子盒子水平和垂直居中的五种方法

    本文主要介绍了CSS子盒子水平和垂直居中的五种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习
    2022-07-19
  • css让页脚保持在底部位置的四种方案

    本文主要介绍了css让页脚保持在底部位置的四种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习
    2022-07-18
  • 浅谈为什么我的 z-index 又不生效了

    z-index 似乎是一个很简单的属性,你给它设置哪个值,元素就会位于 z 轴的哪个位置。但它实际上并没有我们想象的这么简单,这个属性背后是一系列决定元素所在层级的规则,
    2022-07-13

最新评论