赫蹏
古代称用以书写的小幅绢帛。后亦以借指纸。《汉书·外戚传下·孝成赵皇后》:「武(籍武)发篋中,有裹药二枚,赫蹏书。」颜师古注:「邓展曰:『赫音兄弟鬩墙之鬩。』应劭曰:『赫蹏,薄小纸也。』」宋赵彦卫 《云麓漫钞》卷七:「《赵后传》所谓『赫蹏』者,注云『薄小纸』,然其寔亦縑帛。」
介绍#
- 贴合网格的排版;
- 全标签样式美化;
- 预置古文、诗词样式;
- 预置多种排版样式(行间注、多栏、竖排等);
- 多种预设字体族(仅限桌面端);
- 简/繁体中文支持;
- 自适应黑暗模式;
- 中西文混排美化,不再手敲空格(基于JavaScript脚本);
- 标点挤压(基于JavaScript脚本);
- 兼容normalize.css、CSS Reset[1]等常见样式重置;
- 移动端支持;
- ……
总之,用上就会变好看。
使用方法#
项目源文件:https://github.com/sivan/heti,生产文件已同步至unpkg.com。使用方法如下:
-
在页面的
</head>
标签前中引入heti.css
样式文件:<link rel="stylesheet" href="//unpkg.com/heti/umd/heti.min.css">
-
在要作用的容器元素上增加
class="heti"
的类名即可:<article class="entry heti"> <h1>我的世界观</h1> <p>有钱人的生活就是这么朴实无华,且枯燥</p> …… </article>
<body>
或<div class="container">
)上。
效果示例#
本页面全页应用了赫蹏样式,所见即所得。下面是内置的多种排版效果演示。
示例1:古文
出师表
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。
今当远离,临表涕零,不知所言。
示例2:诗词
一剪梅·红藕香残玉簟秋
红藕香残玉簟秋。轻解罗裳,独上兰舟。
云中谁寄锦书来,雁字回时,月满西楼。
花自飘零水自流。一种相思,两处闲愁。
此情无计可消除,才下眉头,却上心头。
赠汪伦
李白乘舟将欲行,
忽闻岸上踏歌声。
桃花潭水深千尺,
不及汪伦送我情。
示例3:行间注
庖丁解牛
吾生也有涯,而知也无涯。以有涯随无涯,殆已!已而为知者,殆而已矣!为善无近名,为恶无近刑。缘督以为经,可以保身,可以全生,可以养亲,可以尽年。
文惠君曰:「嘻,善哉!技
庖丁释刀对曰:「臣之所好者,道也,进乎技矣。始臣之解牛之时,所见无非牛者。三年之后,未尝见全牛也。方今之时,臣以神遇而不以目视,官知止而神欲行。依乎天理,批大
文惠君曰:「善哉!吾闻庖丁之言,得养生焉。」
示例4:英文演示
Lorem Ipsum
There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.
多栏排版#
赫蹏预置了多种多栏布局类,可以按栏数或每栏行宽进行设置。
查看使用说明
为容器元素添加名为heti--columns-2
的class即可实现双栏排版。
<div class="heti heti--columns-2">...</div>
方式 | 对应类名 | 可选数值 |
---|---|---|
按栏目数量 | heti--columns-3 |
2, 3, 4 |
按每栏行宽 | heti--columns-16em |
16em, 20em, 24em, … +4em, … , 48em |
竖排排版#
赫蹏预置了传统的竖排(直排)方向排版,同样贴合栅格。
查看使用说明
为容器元素添加名为heti--vertical
的class即可实现竖排布局。
<div class="heti heti--vertical">...</div>
设计原则#
赫蹏项目的初衷很简单:它不作为一个CSS Reset出现,而是根据通行的中文排版规范,对网页正文区域进行排版样式增强。在部分CSS特性尚未有浏览器支持前,可通过JavaScript实现部分补充(非必要)。
核心
美化中文方块字排版,作用范围是网页中的文章区域(含标题、正文、元信息等),不包含网页导航、表单、侧边栏等区域(它们也不需要这套格式排版)。
使用heti.css
时建议搭配良好的中文书写习惯,即:使用正确的HTML标签(可参考后面的标签示例表)、正确的引号、中文全角标点等。使用Markdown书写文章将助你一臂之力。
文字
参考《中文排版需求[2]》中描述的常用书籍排版字体,赫蹏提供了黑体、宋体和传统三种字体风格,前两者分别对应无衬线、衬线字体族。文字默认采用16px作为标准字号。在标题等文字较大的情况下,会适当地增加字间距以便获得更好地可读性。
查看字体风格对照表
黑体 | 宋体 | 传统 | 备注 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
标题 | 黑体 | 宋体 | 楷体 |
记忆中的站台 |
||||||
正文 | 黑体 | 宋体 | 宋体 |
那是一个风雨交加的夜晚。 |
||||||
引用 | 黑体 | 宋体 | 楷体 |
锣鼓喧天,鞭炮齐鸣,红旗招展,人山人海。 |
||||||
强调 | 黑体 | 宋体 | 宋体 |
父亲特意嘱咐了我两句。 |
||||||
对话 | 黑体 | 宋体 | 楷体 |
他说: |
||||||
图例 | 黑体 | 宋体 | 黑体 |
|
||||||
表头 | 黑体 | 宋体 | 黑体 |
|
||||||
角标 | 黑体 | 黑体 | 黑体 | 鲁迅[1]曾经没有说过 |
标点
参考《中文排版需求》制定符号样式。唯一差异在于简体中文一律采用直角引号(「」)替代圆角引号(“”),这样可以保持字符等宽。
间距
为保持页面元素总是贴合垂直栅格,块级元素(段落、列表、表格等)采用一行行高作为底边距,半行行高作为顶边距。标题根据亲密性原则采用相反的边距设计。
附录#
兼容性#
赫蹏在间距、边框、位置属性上采用了Logical properties,在所有现代浏览器上表现良好。
查看兼容性列表
Chrome | Safari | Firefox | IE | Edge | |
---|---|---|---|---|---|
兼容性 | 4 | 3.1 | 3 | 暂未支持 | 79 |
标签示例表#
查看标签示例表
类型 | 标签 | 效果 |
---|---|---|
链接 | <a href="https://github.com/sivan/heti" title="赫蹏">heti.css</a> |
heti.css |
缩写 | <abbr title="Cascading Style Sheets">CSS</abbr> |
CSS |
代码 | <code>.heti { star: 5; }</code> |
.heti { star: 5; } |
专名号 | 此时来自<u title="位于山东省聊城市阳谷县城东">景阳冈</u>的<u>武松</u>大喝一声:<q>纳命来!</q> |
此时来自景阳冈的武松大喝一声:纳命来! |
文本变动 | 这次考试,我考了<del datetime="17:00:00">58</del><ins datetime="18:15:00">98</ins>分呢! |
这次考试,我考了 |
文本更新 | 因为谁也不认识,所以最后我们决定念<s>dí</s>tí。 |
因为谁也不认识,所以最后我们决定念 |
引号 | 窃·格瓦拉曾经说过:<q>打工是不可能打工的。</q> |
窃·格瓦拉曾经说过:打工是不可能打工的。 |
术语 | <dfn>窃·格瓦拉</dfn>,中国大陆网络红人、罪犯。被奉为百度「戒赌吧」400万会员的「精神领袖」。 |
窃·格瓦拉,中国大陆网络红人、罪犯。被奉为百度「戒赌吧」400万会员的「精神领袖」。 |
标记 | 这道题<mark>必考</mark>,你们爱记不记。 |
这道题必考,你们爱记不记。 |
强调 | 稳住,<em>我们能赢</em>! |
稳住,我们能赢! |
着重号 | 我们<span class="heti-em">必将</span>战胜这场疫情。 |
我们必将战胜这场疫情。 |
增强脚本beta#
由于部分CSS特性尚未有浏览器支持等原因,可选择使用增强脚本进行排版效果优化。目前增强脚本的功能有:
- 中英文混排优化:无论你的输入习惯是否在中西文之间留有「空格」[3],都会统一成标准间距(¼字宽的空白);
- 标点挤压:自动对中文标点进行½字宽的挤压(间隔符挤压¼字宽)。
使用方法与效果
在页面的</body>
标签前引入JavaScript脚本:
<script src="//unpkg.com/heti/umd/heti-addon.min.js"></script>
<script>
const heti = new Heti('.heti');
heti.autoSpacing();
</script>
中英文间距 | |||
---|---|---|---|
默认文本 |
Hello, world!是大家第一次学习Programming时最常写的demo,它看似简单,但对有些人来说寥寥数语有时也会产生bug。
|
||
脚本效果 |
Hello, world!是大家第一次学习Programming时最常写的demo,它看似简单,但对有些人来说寥寥数语有时也会产生bug。
|
||
标点挤压 | |||
默认文本 |
古代称用以书写的小幅绢帛。后亦以借指纸。《汉书·外戚传下·孝成赵皇后》:「武(籍武 )发篋中,有裹药二枚,赫蹏书。」颜师古注:「邓展曰:『赫音兄弟鬩墙之鬩。』应劭曰:『赫蹏,薄小纸也。』」宋赵彦卫 《云麓漫钞》卷七:「《赵后传》所谓『赫蹏』者,注云『薄小纸』,然其寔亦縑帛。」 |
||
脚本效果 |
古代称用以书写的小幅绢帛。后亦以借指纸。《汉书·外戚传下·孝成赵皇后》:「武(籍武 )发篋中,有裹药二枚,赫蹏书。」颜师古注:「邓展曰:『赫音兄弟鬩墙之鬩。』应劭曰:『赫蹏,薄小纸也。』」宋赵彦卫 《云麓漫钞》卷七:「《赵后传》所谓『赫蹏』者,注云『薄小纸』,然其寔亦縑帛。」 |
开源协议#
「赫蹏」遵循MIT协议开源。