代码块类型输入区域如何获得焦点?

以下是我的 css 写法:

.vditor-ir__marker[data-type="code-block-info"] {
  opacity: 0;
}

.vditor-ir__node[data-type="code-block"]:hover
  .vditor-ir__marker[data-type="code-block-info"],
.vditor-ir__node[data-type="code-block"]:focus-within
  .vditor-ir__marker[data-type="code-block-info"] {
  opacity: 1;
}

尽管使用了 :focus-within,但是输入的时候如果把鼠标悬停在弹出菜单上时,类型输入区域的透明度还是会变回 0,如下图:

代码块类型输入区域.gif

所以想问问,应该如何获得焦点呢?

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • zqhjl 2 评论
    作者

    我把这段代码加在默认主题下的效果也是如此,这样可能更好理解一些:

    默认主题下代码块类型输入区域 bug.gif

    --expand 的时候不要设置 opacity 为 0
    Vanessa 1
    @Vanessa 这应该算是间接办法了(捂脸,不过还是很奇怪为什么不能获得焦点
    zqhjl
  • 其他回帖
  • Achuan-2
    订阅者

    V 姐用 js 有加了一个 focus 产生的类名,用这个就好.vditor-ir__node--expand

    .vditor-ir__node--expand[data-type='code-block'] span.vditor-ir__marker--info {
        opacity: 1;
    }
    
    1 回复
  • Vanessa
    订阅者

    只要光标在编辑器中就是 focus 状态,可能需要重置 .vditor-ir__node[data-type="code-block"] span.vditor-ir__marker--info

    2 回复
  • Achuan-2 1 评论
    订阅者

    感谢老哥,现在代码块更简洁好看了

    代码样式.gif

    哈哈哈没事没事,共同进步嘛
    zqhjl
  • 查看全部回帖