伪类 :after 设置无效,求问原因

准备给树状组件增加层级分割线,需要用伪类设置样式,但是无效。
代码如下:

#tree-wrap {
  .el-tree-node.is-expanded {
    position: relative;
    >.el-tree-node__children::after{
      content: '';
      position: absolute;
      top: 25px;
      bottom: 0;
      left: 40px;
      height: calc(100% - 50px);
      border-left: 1px dashed #666;
    }
  }
}

但是在DOM里没有看到对应的 ::after,
clipboard.png

求问原因。

阅读 7.3k
4 个回答

【破案】查出原因了,用的 scss标签 <style lang="scss" scoped>的scoped干扰了,去掉scoped,伪类正常出现。而删除 scoped属性、可以以组件为单位、对样式进行id划分:(以下为示例)

#xxx {
  .yyy {...}
  EE.zzz {...}
  ...
}

你觉得你截的图能看出来啥,截图截这么窄,咋,怕挤到啊
你的after是在children上加的,你找的位置是哪,是children的父元素;
after伪元素全在children里面好么

下面styles找一下写的::after样式,看一下是不是全中不够被覆盖了

是SASS吗?我写了简单的测试demo,把你的代码代入试了一下是有::after的,你再检查一下代码吧。
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题