惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
博客园 - Franky
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
腾讯CDC
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
P
Privacy International News Feed
The Cloudflare Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threat Research - Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
S
SegmentFault 最新的问题
美团技术团队
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
Cisco Talos Blog
Cisco Talos Blog
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cisco Blogs
NISL@THU
NISL@THU
J
Java Code Geeks
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
K
Kaspersky official blog
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
I
Intezer
U
Unit 42
博客园 - 聂微东
C
Check Point Blog
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
Latest news
Latest news
博客园 - 司徒正美
G
GRAHAM CLULEY
S
Schneier on Security
V
Visual Studio Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
如何使用 CSS 改出一个令我满意的 Obsidian 外观? - 少数派
2022-08-25 · via 少数派

Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。 


最近,我正在研究使用 Obsidian,想看看大名鼎鼎的「卡片盒笔记法」是否真的能解决我读书过目就忘的困扰。不过困扰还不知道能不能解决,我就发现了新的问题。

Obsidian 有许多优点,其中一个就是自带社区主题库,用户可以随意更换样式,不再天天看千篇一律的外观。然而,尽管社区主题库里有很多主题样式,说实话,没有一个能百分之百令我满意的。

比如「Things」这个主题,我很喜欢它的简洁风格,但是它每一级的标题颜色却似乎并不遵循某种规律,甚至莫名其妙地在二级标题下多出了一条下划线,这一点让完美主义的我无比介意。

我明白,主题风格毕竟只是制作者的个人喜好,肯定是做不到让所有使用者都百分之百满意的。那么,有没有什么办法,可以让我自己来自定义主题呢?

答案是有的,Obsidian 设置中的「CSS 代码片段」这个功能就是为用户对外观进行自定义而准备的。

HTML 与 CSS

Obsidian 的外观本质上是由 CSS 代码所决定的。

我们可以打开 Obsidian 的窗口,按下 Ctrl + Shift + I,即可开启开发者工具(Developer Tools),这个操作和在浏览器中开启开发者工具是一样的,展示出来的也同样是 HTML 文档。

HTML,全称「HyperText Markup Language」,又称为「超文本标记语言」,它的作用就是告诉浏览器这个网页该怎么渲染,比如这段文字是一级标题,这一段文字是正文,而这一段文字是链接,可以跳转别的网页。

听起来和 Obsidian 所使用的 Markdown 很像。没错,Markdown 也是一种标记语言,只不过比 HTML 更轻量级。我们可以将 Obsidian 理解成一个浏览器,它既读得懂 Markdown,也读得懂 HTML。

我们也可以在 Obsidian 笔记里写 HTML 格式的笔记,从编辑视图切换成阅读视图后,会发现它显示出来的效果和 Markdown 并无二致。

当我们在 Obsidian 使用 Markdown 语法撰写笔记时,实际上,Obsidian 是将其渲染成了 HTML 的格式。当我们使用开发者工具时,将选择元素的鼠标移动至文档外的其他地方,也是能够查看到它们的 HTML 源码的。

那么说回来,HTML 和 CSS 之间究竟是什么关系呢?可以简单理解为,HTML 用来读懂格式,CSS 用来修饰格式,比如说 CSS 可以决定正文的字体颜色是什么,字体尺寸是多少等等。

所以,当我们在 Obsidian 的设置中查看已安装的主题,打开主题文件夹后,会发现下载下来的外观其实都是 CSS 格式的文件,正是由这些 CSS 文件来决定当前 Obsidian 仓库的主题外观会长什么样。

按理来说,如果我们想要修改 Obsidian 的外观,就直接对对应的 CSS 文件进行修改,比如我现在正在使用「Things」这个主题,那么我就改「Things.css」这个文件,就可以了。

但其实这样是不妥的,一来是怕牵一发而动全身,如果我们意外改错一个地方,可能就会导致整个文件出错,进而不能正常使用,二来是主题文件如若还在更新,则可能一不小心一下就把辛苦修改的文件覆盖掉。

其实,Obsidian 已经把这些情况考虑到了,并贴心地准备好了「CSS 代码片段」这个功能,以供用户可以更进一步地自定义外观,并且不影响原外观文件,原理就是「CSS 代码片段」的优先级比原文件更高。

比如,假设原文件设置了「--h1-color」这个变量的值为绿色,并让一级标题的颜色由「--h1-color」这个变量来决定,也就是说一级标题应为绿色,但我们在自定义的 CSS 文件里将「--h1-color」这个变量的值改为红色,当 Obsidian 遇到一级标题时,它知道要去找「--h1-color」这个变量,但自定义 CSS 文件和原文件都有「--h1-color」这个变量,值却不一样。那么,谁说了算?自定义 CSS 文件说了算,最后一级标题就会显示成红色。

更多 HTML 和 CSS 知识,我推荐观看 B 站 UP 主 DasAutoooo 的入门视频,可快速对两者有个大致的了解。

准备工作

解释完大致的概念之后,我们就可以来到准备阶段了。

我们首先要做的,就是要给电脑安装一个 CSS 编辑器。

在此,我强烈推荐使用微软开发的 Visual Studio Code。因为一个 VS Code,就可以顶无数个不同语言的编辑器,且它自身功能非常强大且实用。

第二步,我们可在 Obsidian 外观设置的页面中,找到「主题」一栏,点击文件夹图样的按钮,即可打开存放外观主题 CSS 文件的文件夹,在此文件夹中就能找到外观主题 CSS 文件。

第三步,我们可点击「CSS 代码片段」一栏右侧的文件夹按钮,在此文件夹中新建一个 CSS 文件,比如新建一个 txt 格式的文档,对其重命名,将后缀改为「.css」即可,创建成功后点击「CSS 代码片段」一栏右侧的刷新按钮就会显示此 CSS 文件,打开开关就能将效果实时应用至外观上。

请注意,Obsidian 每个仓库的外观设置都是独立的,仓库与仓库之间互不影响,所以如果我们另开了一个新的仓库,需要套用相同的外观设置,只要将自建的 CSS 文件复制到新仓库的「CSS 代码片段」文件夹中即可。

最后,我们可打开 VS Code,将原 CSS 外观文件和自建的 CSS 代码片段直接拖拽进去软件里,就能查看或修改 CSS 文件了。

一个小贴士:对于第一次使用 VS Code 的朋友们,修改完 CSS 文件后记得按 Ctrl + S 进行手动保存,或开启自动保存功能。

修改过程

修改文字颜色

在「Things」这个主题中,每一级的标题并不遵循某个规律,六级标题使用了五种颜色,我始终无法理解为什么二级标题和三级标题是同一种颜色。为了我的身心健康,我第一个要改的,就是各级标题的颜色。

按住 Ctrl + Shift + I ,打开开发者工具,点击窗口左上角的「选择网页中的相应元素即可进行检查」,回到 Obsidian 的窗口,此时鼠标移动至任何地方都会有高亮突出显示。

我已经事先准备好了六级标题的文本,移动鼠标点选「一级标题」的字样,开发者工具窗口就会高亮显示此处的 HTML 元素。不仅如此,右侧的样式窗口会展示所有与这个 HTML 元素相关的 CSS 样式。

值得注意的是「<style>」这一个框框,我们可以看到其中一行写着「color: var(--h1-color)」,意思就是文本的颜色由「--h1-color」这个变量的值所决定。

「--h1-color」的值是什么?

我们可以打开「Things.css」来查看,使用 Ctrl + F 对「--h1-color」进行检索,马上就能看到「--h1-color: var(--text-normal)」,原来「--h1-color」的值又是由「--text-normal」所决定的。我们继续检索「--text-normal」,会发现「--text-normal」有两个值,这是因为 Obsidian 的外观有深色和浅色两种模式,所以原作者会做出区分。

那么,我们现在是要修改「--text-normal」的值,就能修改一级标题的文本颜色了吧?道理确实是这样的,但是实际操作起来却不能这么做。

因为我们可以从 CSS 文件中看到,「--text-normal」不止对一级标题的文本颜色产生影响,其他文本的颜色也是由它所决定的,所以如果我们修改了「--text-normal」的值,一级标题的文本颜色确实会有所变化,但有可能其他文本的颜色也会因此改变。

在不确定的情况下,尽量不要去修改变量,除非你确实要批量地改动整个 CSS 样式,不然,要改就只改最直接影响元素的属性就好。

比如,在这个例子中,一级标题的颜色写着「color: var(--h1-color)」,那就直接指定颜色是什么就好,比如改成「color: #de1a17」。CSS 不仅支持使用十六进制值来指定颜色,我们还可以使用 RGB、RGBA、HSL、HSLA 来指定颜色。

修改过程如下,复制开发者工具窗口中 <style> 这个框框里的内容,或者在原外观文件中找到这部分内容并复制,我建议是使用后者这个方法,因为这样在格式上不容易出错。

将复制的内容粘贴至自建的 CSS 文件里,大括号内没有改动的设置可以删除,仅留下要改动的内容即可。

具体的写法为:

.empty-state-title,
.markdown-preview-view h1,
.HyperMD-header-1 .cm-header-1,
.cm-s-obsidian .cm-header-1 {
  color: #de1a17;
}

或者,在当前这个案例中,我们可以发现,虽然「--text-normal」会影响到除了一级标题之外的其他文本的颜色,但是「--h1-color」这个变量却只会影响一级标题文本的颜色,所以,在这种确定只影响我们要修改的部分的情况下,我们也可以通过修改「--h1-color」的值来改变一级标题的颜色。

「--h1-color」的值要如何修改呢?

在原 CSS 文件中通过搜索找到「--h1-color」,我们会发现,「--h1-color」是被放在「:root」内的。写在「:root」内的变量,可以理解为全局变量。

于是,在自建的 CSS 文件中,我们可以这样写:

:root {
  --h1-color: #de1a17;
}

如此操作,保存好修改的 CSS 文件,效果就会即刻在 Obsidian 里生效。

修改颜色大致就是以上的步骤,我们可以依样画葫芦,对其他格式的颜色进行调整。

一个小贴士:使用 VS Code 的好处之一,就是可以像设计软件一样手动即时调整颜色。

修改文字背景颜色

文字背景颜色出现的频率,比文字颜色要低得多,通常是在使用了高亮功能之后,我们才能看到文字背景颜色的存在。

Things 主题中高亮功能的文字背景颜色,只能用「低调」来形容,仿佛怕被注意到一样,所以我决定要把高亮功能的文字背景颜色也改一改。

操作步骤和修改文字颜色差不多,使用开发者工具定位元素,再查看它的样式。不同的是,<style> 没有指定文字颜色或者文字背景颜色。

但是在其附近能看到以下内容:

.cm-s-obsidian span.cm-formatting-highlight,
.cm-s-obsidian span.cm-highlight {
  background-color: var(--text-highlight-bg);
  color: var(--text-normal);
}

这段就是决定高亮文字的颜色和背景颜色的 CSS 代码,将其复制到自建 CSS 文件中,修改这两种属性的值就修改完成了。

值得注意的是,如果我们这时从编辑视图切换成阅读视图,会发现高亮颜色还是老样子,没有任何改变。这很正常,有的时候编辑视图和阅读视图的 CSS 代码并不相同,若只改动了编辑视图,当然影响不了阅读视图。

我们通过开发者工具对阅读模式下的高亮内容进行查找,找到以下内容:

.markdown-rendered mark {
  background-color: var(--text-highlight-bg);
  color: var(--text-normal);
}

这段就是阅读模式下决定高亮内容颜色的 CSS 代码,修改大括号内两种颜色的值即可。

虽然颜色修改成功了,但其实还有一个问题需要注意,那就是 Obsidian 有深色模式和浅色模式,有的时候在深色模式下看得清楚和舒适的颜色,却不一定能够适用于浅色模式。那么,如何对这两种模式进行区分呢?

很简单,在大括号前的每一行选择器前面加上「.theme-light」或者「.theme-dark」,用英文空格隔开,例如——

.theme-light .cm-s-obsidian span.cm-formatting-highlight,
.theme-light .cm-s-obsidian span.cm-highlight {
  background-color: #ffe1be;
  color: #000000;
}

这样就能把浅色模式和深色模式的颜色进一步加以区分了。

修改字体

除了修改颜色,我们还可以修改 Obsidian 使用的字体。

查看当前主题使用的是什么字体,可以先在原 CSS 文件中搜索「font-family」,有的时候作者们会直接在属性里写明用哪些字体,有的时候他们也会先写好一个变量,然后将属性的值导向变量的值,就不用反复写明用哪些字体了。

通过搜索,我在「Things.css」里找到了作者写的四个字体相关的变量。

:root {
  --text: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
  --text-editor: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
  --font-monospace: 'JetBrains Mono', SFMono-Regular, Consolas, 'Roboto Mono', monospace;
  --font-ui: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
}

它们分别是「--text」(决定阅读模式下的字体)、「--text-editor」(决定编辑模式下的字体)、「--font-monospace」(决定代码块中使用的字体)、「--font-ui」(决定 UI 界面使用的字体)。

就拿「--text-editor」来举例吧,它的值由很多个字体所组成,用逗号进行分隔,排在越前,优先级越高,编辑器就会优先用排在队前的字体来渲染。如果编辑器发现用不上,就用后面的字体,所以最后一个字体往往是最最通用的字体,以确保所有文字都能够正常显示。

比如这个案例中使用的「sans-serif」,指的就是无衬线字体,如果前面的西文字体没有包含中文,编辑器排查到最后,就会用上无衬线字体来显示中文。

图源:newenglandrepro.com

我们可以注意到,由于「Things」主题的作者并非国人,所以他没有为中文字体做特殊的设置。

那我想自定义中文字体该怎么写到 CSS 里呢?把字体名称写进值里即可,别忘了用逗号隔开。字体需要是已安装在电脑上的。还是老样子,我们可以通过修改变量的值来批量修改,也可以具体修改某种格式使用什么字体。

需要注意的是,通常情况下,我们会先写英文字体,后写中文字体,避免英文显示成中文字体包里的英文。

:root {
  --text-editor: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', 思源宋体, sans-serif;
}

另外一个需要注意的地方是,最好是用那些拥有不同字重的字体,这样后续调整字重的时候才会有所区别。

「font-weight」这个属性就是用来决定字重的,字重的值可以是一个介于 1 至 1000 之间的整数,也可以是「normal」(相当于数字值 400)、「bold」(相当于数字值 700)、「lighter」和「bolder」。

除了字重之外,我们还可以调整字号。「font-size」这个属性就是用来决定字号的,值的单位可以是 px(像素),或者 em(1 em = 16 px)。

修改下划线

Markdown 并没有关于下划线的语法,如果我们要添加下划线的话,可以使用 HTML 的语法来标记。

<u>下划线</u>

<u> 是 HTML 的标签,有标签,就可以在 CSS 里改样式,比如换个颜色。

u {
  color: #ff9a71;
}

而另一个困扰我的下划线设置,来自于二级标题。

不知道为什么,「Things」主题无端端地要在二级标题底下加一条分割线,这是最折磨我的地方,我必须要将它去掉。

由于这条分割线仅出现在阅读模式下,所以我先切换到了阅读模式,并用开发者工具对二级标题进行查看。我能看得见这条线,说明某个地方给它设置了颜色。

或许,你首先需要了解一下什么是「盒子模型」。(图源:菜鸟教程)

找了一会,我发现问题是出在作者给 <h2> 这个标签设置了 border 底部有距离 2px 的实线(solid),并给这条线赋予了颜色。

h2 {
  border-bottom: 2px solid var(--background-modifier-border);
  width: 100%;
  padding-bottom: 2px;
}

所以我只要把实线去掉就可以解决问题。需要注意的是,我们一定要修改到 border-bottom 的值,而不能删去 border-bottom 这个属性,不然 Obsidian 会理解成是对这个属性的值不做改动。

反过来,如果你觉得各级标题下加分割线是一个不错的选择,也可以在其他级别的标题下都加上一个实线的 border-bottom。

修改关系图谱

当我们想要修改关系图谱各个部分的颜色时,会发现使用开发者工具无法查看到它的元素。

官方文档给出的解释是「由于关系图谱是使用 <canvas> 和 WebGL 渲染的,因此自定义 CSS 无法改变图谱中节点和连线的外观。」不过,官方文档也有给出了用 CSS 修改颜色的写法。

.graph-view.color-fill
.graph-view.color-fill-tag
.graph-view.color-fill-attachment
.graph-view.color-arrow
.graph-view.color-circle
.graph-view.color-line
.graph-view.color-text
.graph-view.color-fill-highlight
.graph-view.color-line-highlight
.graph-view.color-fill-unresolved

比如说我们要修改笔记节点的颜色,可以使用「.graph-view.color-fill」。

.graph-view.color-fill {
  color: #5784ff;
}

修改鼠标移至笔记节点时关系图谱会高亮显示不同的颜色,可以使用「.graph-view.color-fill-highlight」。

.graph-view.color-fill-highlight {
  color: #fff;
}

修改当前使用的笔记节点的颜色,可以使用「.graph-view.color-circle」。

.graph-view.color-circle {
  color: #ffd000;
}

修改尚未创建的笔记节点的颜色,可以使用「.graph-view.color-fill-unresolved」。

.graph-view.color-fill-unresolved {
  color: #ff0000;
}

结语

我对 Obsidian 的使用需求并没有很多,简单够用就行,以上就是我最常使用的 CSS 修改 Obsidian 外观小技巧,更多更深入更有趣的内容欢迎大家自行探索~

参考资料:

  1. Obsidian主题样式修改半入门教学
  2. 关系图谱

推荐阅读:

  1. 为初学者准备的:CSS 速成
  2. 为初学者准备的:HTML 速成
  3. 使用 CSS 代码片段增强 Obsidian 视觉效果(一)

关联阅读

> 暑期征文 数字文具盒 火热征稿中,分享学习方法,拿走现金奖励 🧑‍🎓

> 实用、好用的 正版软件,少数派为你呈现 🚀