如何理解HTML预览样式的构成和优先级
HTML 的样式是如何生成的?
在 MarkEditor 中,原始文本在预览的时候,会解析为带样式的 HTML 源码,其中对应的样式(CSS)由下面三部分组成:
这是最基础的部分,不同步的 Theme 对应的 CSS 样式也是不同的。
如何理解这些样式的优先级?
如上三种 CSS 样式的组成,实际是 一+二+三
的次序,同时 产生最终样式的。
除了第一部分
作为基础之外,二
和三
在多数场景下,应该只要出现一个,以避免冲突。比如应该要尽可能避免:
1, 同时使用 根目录设置中的 CSS、模板设定
以及 微信公众号的自定义 CSS
;
2,同时使用 微信公众号的自定义 CSS
以及 Markdown to Slide
这个插件;
3,依次类推……
不然可能会产生《为什么预览的样式跟编辑器主题不匹配》这样的问题。
当然,利用现有的规则,我们也可以实现《如何让文章的样式和预览的样式不一样》如此特别的效果。
利用嵌入的 CSS 样式进行微调
在具体嵌入的 CSS 样式中,一般会有继承优先级的问题,所以,微调的时候,经常会使用 !import
这种标记。
比如可以参考 《如何处理加粗语法和样式修饰语法的色彩冲突》
HTML 的样式,最终会作用于什么地方?
最终的 HTML 的呈现,需要这些 CSS 样式的支持,这些样式会改变:
1,MarkEditor 内预览栏的结果
2,基于浏览器的预览页面
3,导出的 PDF、图片 时候的样式
但是,如果最终内容同步到比如 Bitcron 的外部,则页面的最终样式,并不是 MarkEditor 决定的,而是具体网站的模板文件决定的。
Comments