赫蹏
21 |22 | 古代称用以书写的小幅绢帛。后亦以借指纸。《汉书·外戚传下·孝成赵皇后》:「武(籍武)发篋中,有裹药二枚,赫蹏书。」颜师古注:「邓展曰:『赫音兄弟鬩墙之鬩。』应劭曰:『赫蹏,薄小纸也。』」宋赵彦卫 25 | 《云麓漫钞》卷七:「《赵后传》所谓『赫蹏』者,注云『薄小纸』,然其寔亦縑帛。」 26 |27 | 28 | 63 | 64 |
介绍#
65 |66 | 赫蹏是专为中文网页内容设计的排版样式增强。它基于通行的中文排版规范,可为网站的读者带来更好的内容阅读体验。它的主要特性有: 71 |
72 |-
73 |
- 贴合网格的排版; 74 |
- 全标签样式美化; 75 |
- 预置古文、诗词样式; 76 |
- 预置多种排版样式(行间注、多栏、竖排等); 77 |
- 多种预设字体族(仅限桌面端); 78 |
- 简/繁体中文支持; 79 |
- 自适应黑暗模式; 80 |
- 81 | 中西文混排美化,不再手敲空格(基于JavaScript脚本); 82 | 83 |
- 标点挤压(基于JavaScript脚本); 84 |
- 85 | 兼容normalize.css、CSS Reset[1]等常见样式重置; 90 | 91 |
- 移动端支持; 92 |
- …… 93 |
总之,用上就会变好看。
95 | 96 |97 | 98 |
99 | 使用方法# 100 |
101 |102 | 项目地址:https://github.com/sivan/heti,使用方法如下: 105 |
106 |-
107 |
-
108 | 在页面的
</head>标签前中引入heti.css样式文件: 109 |
110 |<link rel="stylesheet" href="//unpkg.com/heti/umd/heti.min.css">
111 | -
112 | 在要作用的容器元素上增加
class="heti"的类名即可: 113 | 114 |
119 |<article class="entry heti"> 115 | <h1>我的世界观</h1> 116 | <p>有钱人的生活就是这么朴实无华,且枯燥。</p> 117 | …… 118 | </article>
120 |
<body>或<div class="container">)上。
128 |
129 | 130 | 131 |
132 | 效果示例# 133 |
134 |135 | 本页面全页应用了赫蹏样式,所见即所得。下面是内置的多种排版效果演示。 136 |
137 | 138 |139 | 古文# 140 |
141 |如何使用?
143 |
144 | 为容器元素<div class="heti">添加名为heti--ancient的class即可实现古文版式:
146 |
<div class="heti heti--ancient">...</div>
148 | 示例
151 |出师表
154 | 158 |159 | 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。 160 |
161 |162 | 宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。 163 |
164 |165 | 侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。 166 |
167 |168 | 将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。 169 |
170 |171 | 亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。 172 |
173 |174 | 臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。 175 |
176 |177 | 先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。 178 |
179 |180 | 愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。 181 |
182 |今当远离,临表涕零,不知所言。
183 |188 | 诗词# 189 |
190 |如何使用?
192 |-
193 |
-
194 | 诗词:为容器元素
<div class="heti">添加名为heti--poetry的class实现诗词版式: 197 |
206 |<div class="heti heti--poetry"> 198 | <h2>九月九日忆山东兄弟<span class="heti-meta heti-small">[唐]<abbr title="号摩诘居士">王维</abbr></span></h2> 199 | <p class="heti-x-large"> 200 | 独在异乡为异客<span class="heti-hang">,</span><br> 201 | 每逢佳节倍思亲<span class="heti-hang">。</span><br> 202 | 遥知兄弟登高处<span class="heti-hang">,</span><br> 203 | 遍插茱萸少一人<span class="heti-hang">。</span> 204 | </p> 205 | </div>
207 | -
208 | 诗节:在古文版式
<div class="heti 210 | heti--ancient">中,为诗句添加名为heti-verse的class可以将其居中显示: 212 |
221 |<div class="heti heti--ancient"> 213 | <h2>一剪梅·红藕香残玉簟秋<span class="heti-meta heti-small">[宋]<abbr title="号易安居士">李清照</abbr></span></h2> 214 | <p class="heti-verse heti-x-large"> 215 | 红藕香残玉簟秋。轻解罗裳,独上兰舟<span class="heti-hang">。</span><br> 216 | 云中谁寄锦书来,雁字回时,月满西楼<span class="heti-hang">。</span><br> 217 | 花自飘零水自流。一种相思,两处闲愁<span class="heti-hang">。</span><br> 218 | 此情无计可消除,才下眉头,却上心头<span class="heti-hang">。</span> 219 | </p> 220 | </div>
222 | -
223 | 搭配使用标点悬挂
<span class="heti-hang">、元信息<span class="heti-meta 227 | heti-small">来丰富展示效果。 229 |
230 |
示例
234 |237 | 一剪梅·红藕香残玉簟秋 243 |
244 |
245 | 红藕香残玉簟秋。轻解罗裳,独上兰舟。
249 | 云中谁寄锦书来,雁字回时,月满西楼。
253 | 花自飘零水自流。一种相思,两处闲愁。
257 | 此情无计可消除,才下眉头,却上心头。
261 |
264 |
266 | 赠汪伦 271 |
272 |
273 | 李白乘舟将欲行,
275 | 忽闻岸上踏歌声。
277 | 桃花潭水深千尺,
279 | 不及汪伦送我情。
280 |
286 | 行间注# 287 |
288 |如何使用?
290 |
291 | 为容器元素<div class="heti">添加名为heti--annotation的class后,搭配<ruby>元素即可实现整齐的行间注效果:
293 |
<div class="heti heti--annotation">...</div>
295 | 示例
298 |庖丁解牛
301 | 305 |306 | 吾生也有涯,而知也无涯。以有涯随无涯,殆已!已而为知者,殆而已矣!为善无近名,为恶无近刑。缘督以为经,可以保身,可以全生,可以养亲,可以尽年。 307 |
308 |
309 |
344 | 文惠君曰:「嘻,善哉!技
354 | 庖丁释刀对曰:「臣之所好者,道也,进乎技矣。始臣之解牛之时,所见无非牛者。三年之后,未尝见全牛也。方今之时,臣以神遇而不以目视,官知止而神欲行。依乎天理,批大
文惠君曰:「善哉!吾闻庖丁之言,得养生焉。」
399 |404 | 多栏排版# 405 |
406 |赫蹏预置了多种多栏布局类,可以按栏数或每栏行宽进行设置。
407 |如何使用?
409 |
410 | 为容器元素<div class="heti">添加名为heti--columns-2的class即可实现双栏排版:
412 |
<div class="heti heti--columns-2">...</div>
414 | | 方式 | 418 |对应类名 | 419 |可选数值 | 420 |
|---|---|---|
| 按栏目数量 | 425 |heti--columns-3 |
426 | 2, 3, 4 | 427 |
| 按每栏行宽 | 430 |heti--columns-16em |
431 | 16em, 20em, 24em, … +4em, … , 48em | 432 |
示例
438 |441 | 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。 442 |
443 |444 | 宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。 445 |
446 |447 | 侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。 448 |
449 |450 | 将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。 451 |
452 |453 | 亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。 454 |
455 |456 | 臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。 457 |
458 |459 | 先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。 460 |
461 |462 | 愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。 463 |
464 |今当远离,临表涕零,不知所言。
465 |471 | 竖排排版# 472 |
473 |赫蹏预置了传统的竖排(直排)方向排版,同样贴合栅格。
474 |如何使用?
476 |
477 | 为容器元素<div class="heti">添加名为heti--vertical的class即可实现竖排布局:
479 |
<div class="heti heti--vertical">...</div>
481 | 示例
484 |出師表
488 |489 | 作者:諸葛亮(181年-234年10月8日) 491 |
492 |493 | 先帝創業未半,而中道崩殂;今天下三分,益州疲弊,此誠危急存亡之秋也﹗然侍衞之臣,不懈於內;忠志之士,忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。 494 |
495 |496 | 誠宜開張聖聽,以光先帝遺德,恢弘志士之氣﹔不宜妄自菲薄,引喻失義,以塞忠諫之路也。 497 |
498 |499 | 宮中、府中,俱為一體;陟罰臧否,不宜異同。若有作姦、犯科,及為忠善者,宜付有司,論其刑賞,以昭陛下平明之治;不宜偏私,使內外異法也。 500 |
501 |502 | 侍中、侍郎郭攸之、費禕、董允等,此皆良實,志慮忠純,是以先帝簡拔以遺陛下。愚以為宮中之事,事無大小,悉以咨之,然後施行,必能裨補闕漏,有所廣益。將軍向寵,性行淑均,曉暢軍事,試用於昔日,先帝稱之曰「能」,是以眾議舉寵為督。愚以為營中之事,悉以咨之,必能使行陣和睦,優劣得所。 503 |
504 |505 | 親賢臣,遠小人,此先漢所以興隆也﹔親小人,遠賢臣,此後漢所以傾頹也。先帝在時,每與臣論此事,未嘗不歎息痛恨於桓、靈也!侍中、尚書、長史、參軍,此悉貞良死節之臣,願陛下親之、信之,則漢室之隆,可計日而待也。 506 |
507 |508 | 臣本布衣,躬耕於南陽,苟全性命於亂世,不求聞達於諸侯。先帝不以臣卑鄙,猥自枉屈,三顧臣於草廬之中,諮臣以當世之事;由是感激,遂許先帝以驅馳。後值傾覆,受任於敗軍之際,奉命於危難之間,爾來二十有一年矣。先帝知臣謹慎,故臨崩寄臣以大事也。受命以來,夙夜憂歎,恐託付不效,以傷先帝之明。故五月渡瀘,深入不毛。今南方已定,兵甲已足,當獎率三軍,北定中原,庶竭駑鈍,攘除姦凶,興復漢室,還於舊都。此臣所以報先帝而忠陛下之職分也。至於斟酌損益,進盡忠言,則攸之、禕、允之任也。 509 |
510 |511 | 願陛下託臣以討賊興復之效;不效,則治臣之罪,以告先帝之靈。若無興德之言,則責攸之、禕、允等之慢,以彰其咎。陛下亦宜自謀,以諮諏善道,察納雅言,深追先帝遺詔。臣不勝受恩感激。今當遠離,臨表涕零,不知所言! 512 |
513 |520 | 英文排版# 521 |
522 |效果演示
524 |Lorem Ipsum
527 |
528 | There is no one who loves pain itself, who
530 | seeks after it and wants to have it, simply
531 | because it is pain...
533 |
535 | Lorem Ipsum is simply dummy text of 536 | the printing and typesetting industry. Lorem 537 | Ipsum has been the industry's standard dummy 538 | text ever since the 1500s, when an unknown 539 | printer took a galley of type and scrambled it 540 | to make a type specimen book. It has survived 541 | not only five centuries, but also the leap into 542 | electronic typesetting, remaining essentially 543 | unchanged. It was popularised in the 1960s with 544 | the release of Letraset sheets containing Lorem 545 | Ipsum passages, and more recently with desktop 546 | publishing software like 547 | Aldus PageMaker including versions of 548 | Lorem Ipsum. 549 |
550 |551 | The standard chunk of Lorem Ipsum used since the 552 | 1500s is reproduced below for those interested. 553 | Sections 1.10.32 and 1.10.33 from 554 | "de Finibus Bonorum et Malorum" by 555 | Cicero are also reproduced in their exact 556 | original form, accompanied by English versions 557 | from the 1914 translation by H. Rackham. 558 |
559 |564 | 565 |
566 | 设计原则# 567 |
568 |569 | 赫蹏项目的初衷很简单:它不作为一个CSS 570 | Reset出现,而是根据通行的中文排版规范,对网页正文区域进行排版样式增强。在部分CSS特性尚未有浏览器支持前,可通过JavaScript实现功能补充。 571 |
572 |文字
573 |574 | 参考《中文排版需求[2]》中描述的常用书籍排版字体,赫蹏提供了黑体、宋体和传统三种字体风格,前两者分别对应无衬线、衬线字体族。文字默认采用16px作为标准字号。在标题等文字较大的情况下,会适当地增加字间距以便获得更好地可读性。 580 |
581 |查看字体风格详细对照表
583 || 591 | | 黑体 | 592 |宋体 | 593 |传统 | 594 |备注 | 595 |||||
|---|---|---|---|---|---|---|---|---|
| 标题 | 600 |黑体 | 601 |宋体 | 602 |楷体 | 603 |
604 | 记忆中的站台606 | |
608 | ||||
| 正文 | 611 |宋体 | 612 |
613 | 那是一个风雨交加的夜晚。 615 | |
617 | ||||||
| 引用 | 620 |楷体 | 621 |
622 | 624 | 锣鼓喧天,鞭炮齐鸣,红旗招展,人山人海。 625 |626 | |
628 | ||||||
| 强调 | 631 |宋体 | 632 |
633 | 635 | 父亲特意嘱咐了我两句。 636 | 637 | |
639 | ||||||
| 对话 | 642 |楷体 | 643 |
644 |
646 | 他说: |
652 | ||||||
| 图例 | 655 |黑体 | 656 |
657 |
664 | |
668 | ||||||
| 表头 | 671 |黑体 | 672 |
673 |
|
693 | ||||||
| 角标 | 696 |黑体 | 697 |黑体 | 698 |黑体 | 699 |鲁迅[1]曾经没有说过 | 700 |
标点
706 |707 | 参考《中文排版需求》制定符号样式。唯一的差异在于简体中文一律采用直角引号(「」)替代弯引号(“”),这样可以保持字符等宽。 708 |
709 |查看如何将引号设置为弯引号(“”)
711 |712 | 通过源码引用的方式覆盖`_variables.scss`文件中`$chinese-quote-set`变量的值为`cn`即可将引号设为GB/T 713 | 15834-2011的国家标准。 714 |
715 |间距
717 |718 | 为保持页面元素总是贴合垂直栅格,块级元素(段落、列表、表格等)采用一行行高作为底边距,半行行高作为顶边距。标题根据亲密性原则采用相反的边距设计。 719 |
720 | 721 |722 | 723 |
724 | 附录# 725 |
726 |727 | 兼容性# 728 |
729 |730 | 赫蹏在间距、边框、位置属性上采用了Logical 731 | properties,在所有现代浏览器上表现良好。 732 |
733 |查看兼容性列表
735 || 742 | | Chrome | 743 |Safari | 744 |Firefox | 745 |IE | 746 |Edge | 747 |
|---|---|---|---|---|---|
| 兼容性 | 750 |69 | 751 |12.1 | 752 |3 | 753 |暂未支持 | 754 |79 | 755 |
761 | 标签示例表# 762 |
763 |查看标签示例表
765 || 类型 | 772 |标签 | 773 |效果 | 774 |
|---|---|---|
| 链接 | 777 |
778 | <a
780 | href="https://github.com/sivan/heti"
781 | title="赫蹏">heti.css</a>
783 | |
784 | 785 | heti.css 790 | | 791 |
| 缩写 | 794 |
795 | <abbr title="Cascading Style
797 | Sheets">CSS</abbr>
799 | |
800 | 801 | CSS 804 | | 805 |
| 代码 | 808 |
809 | <code>.heti { star: 5;
811 | }</code>
813 | |
814 | .heti { star: 5; } |
815 |
| 专名号 | 818 |
819 | 此时来自<u
821 | title="位于山东省聊城市阳谷县城东">景阳冈</u>的<u>武松</u>大喝一声:<q>纳命来!</q>
823 | |
824 |
825 | 此时来自景阳冈的武松大喝一声:纳命来!829 | |
830 |
| 文本变动 | 833 |
834 | 这次考试,我考了<del
836 | datetime="17:00:00">58</del><ins
837 | datetime="18:15:00">98</ins>分呢!
839 | |
840 |
841 | 这次考试,我考了 |
845 |
| 文本更新 | 848 |
849 | 因为谁也不认识,所以最后我们决定念<s>dí</s>tí。
852 | |
853 |
854 | 因为谁也不认识,所以最后我们决定念 |
856 |
| 引号 | 859 |
860 | 窃·格瓦拉曾经说过:<q>打工是不可能打工的。</q>
863 | |
864 |
865 | 窃·格瓦拉曾经说过:打工是不可能打工的。868 | |
869 |
| 术语 | 872 |
873 | <dfn>窃·格瓦拉</dfn>,中国大陆网络红人、罪犯。被奉为百度「戒赌吧」400万会员的「精神领袖」。
876 | |
877 | 878 | 窃·格瓦拉,中国大陆网络红人、罪犯。被奉为百度「戒赌吧」400万会员的「精神领袖」。 880 | | 881 |
| 标记 | 884 |
885 | 这道题<mark>必考</mark>,你们爱记不记。
888 | |
889 | 这道题必考,你们爱记不记。 | 890 |
| 强调 | 893 |
894 | 稳住,<em>我们能赢</em>!
897 | |
898 | 稳住,我们能赢! | 899 |
| 着重号 | 902 |
903 | 我们<span
905 | class="heti-em">必将</span>战胜这场疫情。
907 | |
908 | 909 | 我们必将战胜这场疫情。 911 | | 912 |
918 | 增强脚本beta# 920 |
921 |
922 | 由于部分CSS特性尚未有浏览器支持等原因,可选择使用增强脚本进行排版效果优化。在页面的</body>标签前引入JavaScript脚本后初始化即可:
923 |
<script src="//unpkg.com/heti/umd/heti-addon.min.js"></script>
925 | <script>
926 | const heti = new Heti('.heti');
927 | heti.autoSpacing();
928 | </script>
929 | 目前支持的功能有:
930 |-
931 |
- 932 | 中英文混排优化:无论你的输入习惯是否在中西文之间留有「空格」[3],都会统一成标准间距(¼字宽的空白); 935 | 936 |
- 937 | 标点挤压:自动对中文标点进行½字宽的挤压(弯引号和间隔符挤压¼字宽)。 938 | 939 |
效果演示:
941 || 中西文混排美化 | 947 ||||
|---|---|---|---|
| 默认文本 | 950 |
951 |
952 | Hello, world!是大家第一次学习Programming时最常写的demo,它看似简单,但对有些人来说寥寥数语有时也会产生bug。
954 |
955 | |
956 | ||
| 脚本效果 | 959 |
960 |
961 | Hello, world!是大家第一次学习Programming时最常写的demo,它看似简单,但对有些人来说寥寥数语有时也会产生bug。
963 |
964 | |
965 | ||
| 标点挤压 | 968 ||||
| 默认文本 | 971 |
972 | 979 | 古代称用以书写的小幅绢帛。后亦以借指纸。《汉书·外戚传下·孝成赵皇后》:「武(籍武 980 | )发篋中,有裹药二枚,赫蹏书。」颜师古注:「邓展曰:『赫音兄弟鬩墙之鬩。』应劭曰:『赫蹏,薄小纸也。』」宋赵彦卫《云麓漫钞》卷七:「《赵后传》所谓『赫蹏』者,注云『薄小纸』,然其寔亦縑帛。」 984 |985 | |
986 | ||
| 脚本效果 | 989 |
990 | 996 | 古代称用以书写的小幅绢帛。后亦以借指纸。《汉书·外戚传下·孝成赵皇后》:「武(籍武 997 | )发篋中,有裹药二枚,赫蹏书。」颜师古注:「邓展曰:『赫音兄弟鬩墙之鬩。』应劭曰:『赫蹏,薄小纸也。』」宋赵彦卫《云麓漫钞》卷七:「《赵后传》所谓『赫蹏』者,注云『薄小纸』,然其寔亦縑帛。」 1001 |1002 | |
1003 | ||
1019 | 开源协议# 1020 |
1021 |「赫蹏」遵循MIT协议开源。
1022 | 1023 | 1040 |
664 |