【已解决】表格前后空行怎么删除

在写笔记的时候发现表格前后总是有空行,删掉之后表格会变成代码显示,希望在编辑视图和阅读视图中表格与上下正文都没有空行。请问有人解决过这个问题吗。

  • 表格 必须有空行,否则源码显示
  • 分割线--- 必须有空行,否则让前面行的文字变标题显示
  • 列表/Callout/引用 需要跟空行,否则阅读模式下“被吸入”

我看大佬们分享的解决方案是:CSS压缩显示这些必须存在的空行
我使用的CSS:

  • 原版来自B站咬猪娃大佬的视频
  • 额外新增压缩 标题前 空行,不需要的话删掉2个 , .HyperMD-header 就成)
  • 你自己要再新增表格后的话在 , .cm-callout 后面增加 , .cm-table-widget 应该能实现
    注意看规律,不要增减标点符号
/*
特定空白行压缩
前:
- 水平分割线 .hr
- 表格 .cm-table-widget
- 标题 .HyperMD-header
后
- 引用 .HyperMD-quote
- Callout .cm-callout
- 列表 .HyperMD-list-line
*/

.is-live-preview :is([class=cm-line]:has(+ :is(.hr, .cm-table-widget, .HyperMD-header))), /*前*/
.is-live-preview :is(.HyperMD-quote, .cm-callout, .HyperMD-list-line):not(.HyperMD-quote.HyperMD-callout) + [class="cm-line"]{ /*后*/
    padding-top: 0em !important;
    padding-bottom: 0em !important;
    line-height: 0.5;
    transition: 0.5s line-height,0.5s background-color;/*0.5s行高、背景颜色变化完毕*/
    border-radius: var(--radius-s);
}


.is-live-preview :is([class=cm-line]:has(+ :is(.hr, .cm-table-widget, .HyperMD-header))):hover, /*前*/
.is-live-preview :is(.HyperMD-quote, .cm-callout, .HyperMD-list-line):not(.HyperMD-quote.HyperMD-callout) + [class="cm-line"]:hover { /*后*/
    background-color: hsla(var(--color-accent-hsl), 0.4);
}
/*˗ ˗ 额外调整表格前˗ ˗ */
.markdown-source-view.mod-cm6 .cm-table-widget {
    margin-top: -8px!important;
}

已经解决啦,感谢大佬

【Obsidian 空白行优化】Obsidian 空白行优化_哔哩哔哩_bilibili
我们上面B站大佬的CSS片段,然后把注释中的“表格后的行”的代码改成下面的代码即可:

/* 表格后的行 */
.blank-line-tweak .is-live-preview .cm-embed-block.cm-table-widget.markdown-rendered + .cm-line{
    padding-top: 0em !important;
    padding-bottom: 0em !important;
    line-height: 0.3;
    transition: 0.5s line-height,0.5s background-color;
    border-radius: var(--radius-s);
}

大佬,这个代码好像会导致折叠,有啥解决方法么

我还真没遇见这个问题,一个一个删代码试试,看看是哪一部分的问题

  • 虽然CSS代码注释写的是「特定空白行」压缩,实际我使用觉得效果应该是「特定行」压缩
  • 想解决你截图的问题,最简单办法:不再压缩列表后的行(删掉CSS中的2个 , .HyperMD-list-line
    • 如果能知道什么能指代空白行的话,将指代空白行的代码替换[class="cm-line"]会更优

删了之后就正常显示了,感谢感谢 :partying_face: