VitalSource Bookshelf深色模式下EPUB元素标识及MathJax CSS适配技术问询
VitalSource Bookshelf深色模式下EPUB元素标识及MathJax CSS适配技术问询
嗨,我来帮你搞定VitalSource Bookshelf深色模式下的EPUB CSS适配问题——刚好我之前研究过这个平台的EPUB渲染机制,给你梳理清楚:
一、Bookshelf深色模式的元素标识
VitalSource Bookshelf在切换到深色模式时,确实会给根元素添加可被CSS识别的标识,目前主流版本的规则是:
- 给
<html>标签添加**vss-dark-mode类名**,这是当前最通用的标识 - 部分旧版本的Bookshelf会使用
data-theme="dark"属性绑定在<html>上,用来标记深色模式
二、如何检测/查看这些标识?
要确认具体的标识,你可以直接用Bookshelf的开发者工具来 inspect 元素,步骤很简单:
- 打开Bookshelf并加载你的EPUB,切换到深色模式
- 调出开发者工具:Windows/Linux按
Ctrl + Shift + I,Mac按Cmd + Opt + I(如果快捷键没反应,你可以去Bookshelf的隐藏配置文件夹里修改参数开启调试模式,重启软件后就能调出工具了) - 切换到Elements面板,直接查看
<html>或者<body>标签的属性、类名变化,就能找到对应的深色模式标识
三、针对MathJax的CSS适配示例
知道了标识之后,你就可以精准针对深色模式修改MathJax元素的样式了,给你写个实用的CSS代码示例:
/* 适配主流版本Bookshelf深色模式的MathJax样式 */ html.vss-dark-mode .mjx-chtml, html.vss-dark-mode .mjx-math, html.vss-dark-mode .mathjax, html.vss-dark-mode math { /* 根据你的需求调整样式,比如修改公式文字颜色、移除默认背景 */ color: #f0f0f0 !important; background-color: transparent !important; /* 还可以添加其他样式,比如调整公式的边框、内边距等 */ } /* 兼容旧版本Bookshelf的深色模式 */ html[data-theme="dark"] .mjx-chtml, html[data-theme="dark"] .mjx-math { color: #f0f0f0 !important; }
小提示:如果你的EPUB有自定义的容器类,也可以把选择器写得更具体,尽量避免!important的使用,通过提升选择器优先级来确保样式生效。
内容来源于stack exchange
相关产品推荐
相关产品推荐

