CSS last-child的坑以及对应的解决办法

730 阅读1分钟

需求

需要隐藏菜单内,最后一个箭头,如截图里的红框所示:

image.png

初步观察误判

通过初步观察上面的层级结构,由于惯性(前端这可怕的惯性思维,o(╥﹏╥)o),我采用了last-child,具体代码如下所示:

.el-popover {
  .el-breadcrumb__item:last-child {
    .el-breadcrumb__separator {
      display: none;
    }
  }
}

却发现怎样也起不了作用,通过翻阅文档才知道,原来last child父元素的最后一个元素,很明显,在最后一个el-breadcrumb__item后面还跟着一个popper__arrow(人家才是最后一个元素啦),那如何解决该问题呢?

last-of-type

它的作用:父元素下相同类型的最后一个子元素

它可以选出同类型的最后一个子元素,将上面的:last-child改为:last-of-type便解决了该问题,效果如下所示:

image.png