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

以下是我的 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

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

广告 我要投放

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • Achuan-2
    订阅者

    任务列表里的代码块不能显示的代码类型,加个 block 就可以了

    .vditor-ir__node[data-type='code-block'] {
        position: relative;
        display: block;
    }
    

    1 回复
  • 其他回帖
  • zqhjl 2 评论
    作者

    嗯,我最后就是这么实现的,只是会有个小问题:鼠标点击代码块后移开,这个类型输入区域还是会显示

    这个也不算问题吧,默认就是这样的
    Achuan-2
    @Achuan-2 可能我还是强迫症吧,想实现 notion 那种效果,但是确实做不到
    zqhjl
  • Achuan-2 1 评论
    订阅者

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

    代码样式.gif

    哈哈哈没事没事,共同进步嘛
    zqhjl
  • zqhjl 2 评论
    作者

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

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

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