在写笔记的时候发现表格前后总是有空行,删掉之后表格会变成代码显示,希望在编辑视图和阅读视图中表格与上下正文都没有空行。请问有人解决过这个问题吗。
- 表格 前 必须有空行,否则源码显示
- 分割线
---
前 必须有空行,否则让前面行的文字变标题显示 - 列表/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"]
会更优
- 如果能知道什么能指代空白行的话,将指代空白行的代码替换
删了之后就正常显示了,感谢感谢