『给它加个壳』纯MarkDown博客阅读体验优化
声明:以下博客皮肤与博主目前所使用的样式不同,之后有空博主会给出下面方案的具体效果图与对应代码。目前本博客使用的是 esofar 开发的开源项目 cnblogs-theme-silence,非常干净清爽,且利于定制,有兴趣的同学可在 Github上找到它,或者点击本博客底部链接直达。
今天鼓捣了一天纯MarkDown书写的博客样式的美化,事实证明图表较多的MarkDown撰写的博文一样可以展现出非常漂亮的效果。为了让纯MarkDown书写的博客有一个干净舒服的阅读体验,我主要针对博客的以下几个方面进行了优化,写出来与大家一起分享一下我的优化经验。因为以前从未接触过CSS,还请各位前辈多多指教!
主题的选择
首先,本博客的主题样式是 LessIsMore。该样式非常简单,符合我们干净利落的目标,也便于我们自定义样式的改造。另一个不错的主题是SimpleMemory,也很漂亮,也可以作为优化的基本主题。
选择好主题以后可以进行大刀阔斧的改动,完全使用自定义的CSS样式,也可以小部分进行更改。不论是大刀阔斧的改革,还是小部分改动,都需要自定义一部分样式。样式的更改需要按照如下步骤:
- 首先点击博客顶栏的管理

- 在博客园后台界面中点击设置。

- 在这里可以看到页面定制CSS的字样,这里就是写自定义CSS的地方。

- 如果要大刀阔斧地改动,那么就点击下面的禁用模板默认CSS。否则只需要针对部分Style进行修改即可,即将下面我们要介绍的几个css文件包裹在下面这段代码中即可
<style type="text/css">
...
</style>
禁用模板默认CSS的好处在于可以完全自定义,否则在定义了相同元素css的情况下会优先使用模板的css(如果模板有对该元素定义css的话)展示。建议禁用模板默认CSS。
表格样式
作为有大量图表出现的博文,表格的样式直接关系到用户的体验。由于主题的底色是白色,蓝色作为配色,所以这里表格的配色可以考虑两种:偏灰色 或 偏蓝色。但当表格以蓝色作为基色时,颜色的搭配比较困难,蓝色色调作为表格的底色在纯白的背景上会略显突兀。所以这里博主选择了整体偏灰色的配色方案,表格的背景底色为浅灰,线条为中等灰,标题栏为偏暗一些的灰色。
注:楼主没学过任何设计,搭配全看感觉...
下面是一个典型的Markdown中的表格文本。
|标题栏1|标题栏2|
|:--|:--|
|内容11|内容21|
|内容12|内容22|
|内容13|内容23|
在博主的博客中,上述MarkDown代码的效果如下。
| 标题栏1 | 标题栏2 |
|---|---|
| 内容11 | 内容21 |
| 内容12 | 内容22 |
| 内容13 | 内容23 |
表格的CSS样式表如下:
#cnblogs_post_body table
{
overflow:hidden;
border:1px solid #d3d3d3;
background:#fefefe;
margin:0 auto;
width: 95%;
border-left: 10px;
border-right: 10px;
margin:5% auto 0;
border-radius:5px;
font-family: "consolas";
}
#cnblogs_post_body table td
{
border: 0px;
font-size: 14px;
text-align: center;
border-top:1px solid #e0e0e0;
border-right:1px solid #e0e0e0;
}
#cnblogs_post_body table tr
{
background: #F7F7F7
}
#cnblogs_post_body table th
{
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
font-size: 15px;
text-align: center;
padding-top:5px;
text-shadow: 1px 1px 1px #fff;
background-color:#e8eaeb;
border: 0px;
}
其中 table定义了整个表格的样式,table td定义了每一单元格的样式,table tr定义了每一行的样式。
虽然博主在鼓捣博客之前并没有学过HTML和CSS,但是这些标签的英文含义都非常明确,想改进的童鞋可以了解一些基本的CSS属性改成自己想要的背景色/边框宽度等即可。
表头排序
有些时候我们希望让读者在阅读博客中的表格时能够对自定义的表头进行排序,这一点我们需要通过 JS 来实现。
首先,开发者要发送邮件到 contact@cnblogs.com 申请 JS 权限。
在申请成功后,点击管理-设置,在页面定制CSS代码一节中添加如下部分:
table.tablesorter {
font-family:arial;
background-color: #CDCDCD;
margin:10px 0pt 15px;
font-size: 8pt;
width: 100%;
text-align: left;
}
table.tablesorter thead tr th, table.tablesorter tfoot tr th {
background-color: #e6EEEE;
border: 1px solid #FFF;
font-size: 8pt;
padding: 4px;
}
table.tablesorter thead tr .header {
background-image: url(https://files.cnblogs.com/files/SivilTaram/bg.gif);
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
}
table.tablesorter tbody td {
color: #3D3D3D;
padding: 4px;
background-color: #FFF;
vertical-align: top;
}
table.tablesorter tbody tr.odd td {
background-color:#F0F0F6;
}
table.tablesorter thead tr .headerSortUp {
background-image: url(https://files.cnblogs.com/files/SivilTaram/asc.gif);
}
table.tablesorter thead tr .headerSortDown {
background-image: url(https://files.cnblogs.com/files/SivilTaram/desc.gif);
}
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
background-color: #8dbdd8;
}
再之后,在页脚html代码中添加如下部分:
<script type="text/javascript" src="https://files.cnblogs.com/files/SivilTaram/jquery-sort.js"></script>
<script>
$(document).ready(function()
{
$("table").addClass("tablesorter");
$("table").tablesorter();
}
);
</script>
即可完成表头排序的功能。
三级标题样式
三级标题在MarkDown中是按照如下定义的:
#一级标题
##二级标题
###三级标题
在博主的博客中,这三种标题的样式长这个样子:
一级标题
二级标题
三级标题
三级标题样式的变更主要是修改#cnblogs_body_post h1/2/3这三个样式(class)的属性值,本博客定义三级标题的CSS代码如下:
#cnblogs_post_body h1{
padding-bottom: 4px;
border-bottom: 2px solid #999;
color: #009FAB;
font-family: "黑体","宋体" , "微软雅黑" ,Arial;
font-size: 27px;
font-weight: bold;
line-height: 24px;
margin: 20px 0 !important;
padding: 10px 0 10px 0px;
text-shadow: 2px 1px 2px lightgray;
}
#cnblogs_post_body h2 {
padding-bottom: 4px;
border-bottom: 2px solid #999;
color: #008891;
font-family: "黑体","宋体" , "微软雅黑" ,Arial;
font-size: 24px;
font-weight: bold;
line-height: 24px;
margin: 20px 0 !important;
padding: 10px 0 10px 0px;
text-shadow: 2px 1px 2px lightgray;
}
#cnblogs_post_body h3{
padding-bottom: 4px;
border-bottom: 2px solid #999;
color: #005359;
font-family: "黑体","宋体" , "微软雅黑" ,Arial;
font-size: 20px;
font-weight: bold;
line-height: 23px;
margin: 20px 0 !important;
padding: 10px 0 10px 0px;
text-shadow: 2px 1px 2px lightgray;
}
引用样式
在MarkDown中,引用非常简单,只需要使用>的符号即可。下面是博客中的一个引用效果
这是一个引用块
看起来还不错吧?引用块主要修改#cnblogs_post_body blockquote 样式的内容,本博客的CSS样式如下:
#cnblogs_post_body blockquote {
border-left:3px solid #D7D7D7;
color:#8F9192;
border-bottom: 5px;
margin:10px;
background: no-repeat scroll right top #F7F7F7;
padding:10px 10px 5px;
border:1px dashed #CCC
}
其实搭配CSS样式没有特殊的技巧,很多时候需要我们把自己想象成读博客的人,这样的配色/版式不好看,那就换,改,反复改动后找到一种较为合适的才肯罢休(或许这叫做强迫症精神也不一定)。如果喜欢博主的博客风格,也可以直接拿去用:Github链接。
『给它加个壳』纯MarkDown博客阅读体验优化的更多相关文章
- 纯MarkDown博客阅读体验优化
今天鼓捣了一天纯MarkDown书写的博客样式的美化,事实证明图表较多的MarkDown撰写的博文一样可以展现出非常漂亮的效果.为了让纯MarkDown书写的博客有一个干净舒服的阅读体验,我主要针对博 ...
- 使用coding、daocloud和docker打造markdown纯静态博客
说起独立博客的技术演变,从数据库到纯文本放git是一大进步,从HTML到markdown又是一大进步. 解析技术有没有进步呢?既然markdown是纯文本了,再用PHP/Python/Ruby去实时解 ...
- 利用hexo来配合nginx来打造属于自己的纯静态博客系统
什么是静态网站生成器?顾名思义,就是以最快的速度生成一个高可用的web页面,我们知道Django作为一款非常流行的框架被广泛应用,但是部署起来实在是太麻烦了,各种命令各种配置,动态页面必然要涉及数据库 ...
- 利用基于Go Lang的Hugo配合nginx来打造属于自己的纯静态博客系统
Go lang无疑是目前的当红炸子鸡,极大地提高了后端编程的效率,同时有着极高的性能.借助Go语言我们 可以用同步的方式写出高并发的服务端软件,同时,Go语言也是云原生第一语言,Docker,Kube ...
- 鸿蒙内核源码分析(进程镜像篇)|ELF是如何被加载运行的? | 百篇博客分析OpenHarmony源码 | v56.01
百篇博客系列篇.本篇为: v56.xx 鸿蒙内核源码分析(进程映像篇) | ELF是如何被加载运行的? | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应 ...
- 『编程题全队』Scrum 冲刺博客
1.介绍小组新加入的成员,Ta担任的角色 Answer: 我们小组的倪兢飞同学决定跳槽到团队あ,我们小组开了一个简短而又严肃的会议,满足倪兢飞同学的意愿,并感谢他为团队做出的巨大贡献.虽然我们遗失了一 ...
- 『编程题全队』Beta 阶段冲刺博客集合
『编程题全队』Beta 阶段冲刺博客集合 »敏捷冲刺 日期:2018.5.23 博客连接:『编程题全队』Scrum 冲刺博客 »Day1 日期:2018.5.23 博客连接:『编程题全队』Beta 阶 ...
- 『编程题全队』Alpha 阶段冲刺博客Day5
1.每日站立式会议 1.会议照片 2.昨天已完成的工作统计 孙志威: 1.完成SlotWidget的设计和功能 2.修改了TitleBar上的功能按钮的CSS样式表 孙慧君: 1.登录框的UI设计 2 ...
- 纯CSS打造BiliBili样式博客主题
前言 一直以来,我都在思考如何减少不必要的JS代码,仅通过CSS来实现博客园主题美化.CSS有很多魔法代码,例如:before,iconfont,order,等等,利用好这些技巧,也能实现很好美化效果 ...
随机推荐
- 新手的第一个phonegap Android应用
对PhoneGap开发感兴趣的请加入群 PhoneGap App开发 348192525 手机成为现在软件应用必不可少的一种设备,然而手机平台的不统一造成我们需要为不同手机重写代码,这对一般应用来 ...
- TDD(测试驱动开发)培训录
2014年我一直从事在敏捷实践咨询项目,这也是我颇有收获的一年,特别是咨询项目的每一点改变,不管是代码质量的提高,还是自组织团队的建设,都能让我们感到欣慰.涉及人的问题都是复杂问题,改变人,改变一个组 ...
- JavaScript思维导图—字符串函数
JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/
- 关于Windows高DPI的一些简单总结
我们知道,关于高DPI的支持, Windows XP时代就开始有了, 那时关于高DPI的支持比较简单, 但是从Vista/Win7 到现在Win8 /Win8.1, Windows关于高DPI的支持已 ...
- JavaScript—之对象参数的引用传递
变量 1.JavaScript hoisting >>请看例子,我们拿Chrome的console作为JS的运行环境. 上面直接执行console.log(a), 不带一点悬念地抛出了no ...
- JVM的SNMP监控配置
近期看了一下JVM对监控的支持,除了常规的JMX外居然还有SNMP, 有点意思, 这个网管协议适配的地方还真多,那么就先测试一下. 先随便找一个能在后台持续运行的java小程序,如我手头的BIO的so ...
- Nodejs·网络服务
本章是从NodeJS拥有的模块角度,讲述了网络服务中的应用: net ----- > TCP dgram --> UDP http -----> HTTP https ----> ...
- C#获取文本文件的编码,自动区分GB2312和UTF8
C# 获取文本文件的编码,自动区分GB2312和UTF8 以下是获取文件编码的一个类 using System; using System.IO; using System.Text; /// < ...
- salesforce 零基础学习(十八)WorkFlow介绍及用法
说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上 ...
- iOS-数据持久化基础-JSON与XML数据解析
解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...