樣式標準化

概述

「漢字標準格式」使用由Nicolas Gallagher及Jonathan Neal主導開發的Normalize.css來增進各瀏覽器間樣式的一致性,並以此框架為基礎,延伸了專為各漢字語言及地區開發的本地樣式標準化模組。下文將詳細介紹其功能。

提示:樣式標準化着重於網頁、元素的初始樣式修正及標準化,不包含各種元素間的使用情境樣式或單一指定的字體。

Normalize.css

參考其作者編寫的說明文件(英),及Oli Studholme對一般CSS reset與Normalize.css的比較(英)來瞭解更多資訊。

本地樣式標準化

「漢字標準格式」內建本地化(locale)的樣式標準化模組。這個模組在Normalize.css的基礎上,提供了漢字地區的本地化樣式,根據元素語言屬性的語言、文字變體或地區等元信息,配適相應而合理的樣式。

<* lang="[巨集]-[語言]-[文字及變體]-[地區]">

全域字體樣式

各種漢字字體的行高不一,且漢字需要較西文鬆散的行距空間,故全域行高預設使用1.3em以求一致,並在瀏覽器及作業系統支援的前提下,啓用亞像素文字渲染。

縮進

多數包含縮進的元素皆改用二個漢字2em)的寬度取代UA樣式中預設的縮進寬度(40px),以求文字的高度對齊。

有序與無序清單

有序清單ol及無序清單ul元素的左間隙(padding-left)縮進。

無序清單

後天免疫缺乏症候群的病程:


有序清單

為什麼現代的印度音樂仍能保有一種強烈的、一聽就能辨別出來的風格,而中國音樂卻不是這樣?

  1. 我們口口聲聲說的「中國音樂」到底是什麼?所謂「少數民族」音樂算在內麼?算的話,我能找到讓你非常困惑的、無法跟印度音樂區分開來的「中國音樂」;不算的話,那麼我們在說漢人的音樂?漢文化千百年來和異族文化的融混我們暫且不提,今人能聽到的漢樂是哪些?它們能歸納出什麼特徵,比如音階?答案沒有想象中那麼單純的。

  2. 印度音樂是什麼?僅僅取所謂的印度古典音樂,南有卡那提克、北有印度斯坦,已經有極大差異,它們各自內部又因爲地域、族羣、宗教等差異導致門派林立,對音樂的認識和演繹有很大不同。

  3. 我們都知道外國人喜歡開「亞洲人長得都一樣」的笑話,我們也覺得西洋人長的像。這點在對音樂的認識上也是,因爲不夠瞭解,感知才會被籠統、表面的印象所佔據。不記得講沒講過這個故事,曾經有個朋友發來一段音樂叫我聽,說一聽就是那種東歐的風情。我聽了一下告訴她,這是琉球/沖繩民樂。別笑話人家,這種錯誤誰都會有。

  4. 通常聽音樂最容易去抓的幾個特徵:音階、特徵樂器、語言。這些的確很容易讓人產生簡單的判斷。尤其是樂器,聽到西塔琴、撻布拉的聲音會馬上想到「印度音樂」,聽到嗩吶、古琴、琵琶會想到中國音樂。但是實際情況沒那麼簡單。

圖表與區塊引用元素

圖表figure、區塊引用blockquote等元素的左右邊界(margin)縮進。

圖表元素

唯有知識才能解決問題。

面對記者的採訪,吳寶春如是說,話語更顯其從容自若的氣質。
<figure>
  <blockquote>
    <p>唯有知識才能解決問題。
  </blockquote>
  <figcaption>面對記者的採訪,吳寶春如是說,話語更顯其從容自若的氣質。</figcaption>
</figure>

區塊引用元素

「我是柏林人」是1963年6月26日美國總統約翰·甘迺迪在西柏林演講中的一句名言。當時正值冷戰,柏林牆已開始建造,西柏林被東德包圍。 這一部份演說內容及譯文如下:

Two thousand years ago the proudest boast was civis Romanus sum. Today, in the world of freedom, the proudest boast is ‘Ich bin ein Berliner’… All free men, wherever they may live, are citizens of Berlin, and, therefore, as a free man, I take pride in the words ‘Ich bin ein Berliner!’

兩千年前最自豪的句子是「civis Romanus sum」(我是羅馬公民)。今天,在自由世界,最自豪的句子是「Ich bin ein Berliner」(我是柏林人)……所有自由人,無論生活在哪裡,都是柏林的公民。因此,身為自由人,我以「Ich bin ein Berliner」感到自豪!

以德語說出「我是柏林人」這句子,是甘迺迪在最後才想到的。他走上舍嫩貝格市政廳(Rathaus Schöneberg)時,向翻譯員羅伯特·洛赫納請教這句子的德語說法,以小紙張標下讀音,並練習了幾次。

——《維基百科·我是柏林人》

聯絡資訊元素

聯絡資訊address元素去除了西文常見的地址意大利體樣式。

想瞭解更多關於我們的資訊,可以前往,

香港尖沙咀彌敦道105號
九龍清真寺

<p>想瞭解更多關於我們的資訊,可以前往,

<address>
香港尖沙咀彌敦道105號<br>
九龍清真寺
</address>

提示:聯絡資訊元素用以標示網頁或文章作者的聯絡資訊,並不適用於所有的地址文本。

格式預處理元素

格式預處理pre元素跟隨其原始代碼之格式,長文文本寬度大於其容器時仍不斷行,並啓用橫向捲軸。

這是一段正常的段落文本。

void !function(a,b){var c=b.documentElement,d,e;function D(a,d) {d=a*d/100+b.getElementById("main").textContent;return d;}return new D(20,5);}(window||this,window.document);

上方是一個格式預處理pre元素。

超連結元素

超連結a元素預設不使用底線。

強調與重點

藉由差異於父文本的文字樣式,可以突顯警示或重要性,達成強調或重點標示的需求,着重號及粗體皆為此目的的排版手段之一。

提示:「強調」「重點」分別表示二種形而相似、概念卻有所不同的排版概念——前者用於凸顯語氣的加重、需要讀者多所留意之處;後者則表示段落甚或全文的重要概念或結論——請務必辨明二者的用法。

強調

隷屬中文及日文語言屬性的強調em元素預設使用着重號;屬中、日文非漢字(如羅馬拼音)及其他語言的強調元素仍使用意大利體(斜體)。

着重號遇標點時不顯示(需配合JS腳本)。中文着重號位字元下方,使用「●」(U+25CF);日文着重號則位上方,使用「﹅」(U+FE45)。

提示:強調元素的着重號修正包含樣式表及腳本的多重回退(fallback),然搭配腳本可有較佳且更為一致的效果。

中文的着重號形式

至今關於古希臘遊吟詩人Ὅμηρος的資料很少,所以對其生平有很多說法,但都無確鑿證據。

<p>至今<em>關於古希臘遊吟詩人Ὅμηρος的資料很少</em>,所以對其生平有很多說法,但都無確鑿證據。

日文的着重號形式

アンネリース・マリー・フランク(ドイツ語:Annelies Marie Frank、1929年6月12日-1945年3月上旬)は、『Annieの日記』の著者として知られるユダヤ系ドイツ人の少女である。

<p [lang="ja"]>アンネリース・マリー・フランク(ドイツ語:Annelies Marie Frank、Annieアンネの日記』の著者として知られるユダヤ系ドイツ人の少女である。</em>

西文或拼音的強調形式

「天下為公」是Sun Yat-sen先生有名的思想理論之一。

<p>「天下為公」是<em lang="yue-Latn">Sun Yat-sen</em>先生有名的思想理論之一。

更詳盡的範例及測試,請見程式測試頁·強調元素(着重號)

重點

重點strong元素以粗於父文本的字重來凸顯其重要性。

希望我們每一個人,都可以為自己的人生負責、找尋並達成自己設定的目標,才不枉為人。

<p>希望我們每一個人,都可以<strong>為自己的人生負責、找尋並達成自己設定的目標,</strong>才不枉為人。

其他粗體文本

術語dfn及關鍵字b元素的樣式同重點strong元素,以粗於父文本的字重來凸顯其重要性。術語dfn元素僅在中文、日文環境中顯示為粗體,在其他語言中則跟隨瀏覽器UA樣式,顯示為意大利體(斜體)。

火龍果又稱紅龍果、龍珠果,是仙人掌科三角柱屬(Hylocereus)或蛇鞭柱屬(Selenicereus)植物果實,呈橢圓形,直徑約10公分,外觀為紅色或黃色,有綠色圓角三角形的葉狀體,白色、紅色或黃色果肉,具有黑色種子的水果。


A pitaya or pitahaya is the fruit of several cactus species. ‘Pitaya’ usually refers to fruit of the genus Selenicereus, while ‘Pitahaya’ always refers to fruit of the genus Hylocereus.

<p>
  <dfn>火龍果</dfn>又稱紅龍果、龍珠果,是仙人掌科三角柱屬(<i lang="la">Hylocereus</i>)或蛇鞭柱屬(<i lang="la">Selenicereus</i>)植物果實,呈橢圓形,直徑約10公分,外觀為紅色或黃色,有綠色圓角三角形的葉狀體,白色、紅色或黃色果肉,具有黑色種子的水果。

<p lang="en">
  A <dfn>pitaya</dfn> or <dfn>pitahaya</dfn> is the fruit of several cactus species. ‘Pitaya’ usually refers to fruit of the genus <i lang="la">Selenicereus</i>, while ‘Pitahaya’ always refers to fruit of the genus <i lang="la">Hylocereus</i>.

來源與引用元素

樣式標準化模組移除了隷屬中文及日文語言屬性下、來源cite元素的意大利體(斜體)樣式;引用q元素則依語言及地區屬性採用相應的內外引號,以突顯引用文本的結構。

來源元素

漢語語音學》探討了諸多同「漢語語音學」相關的學術議題,值得喜歡語言的同好們一讀。


Webster Dictionary defines ‘marriage’ as…

<p>
  <cite>《漢語語音學》</cite>探討了諸多同「漢語語音學」相關的學術議題,值得喜歡語言的同好們一讀。

<p lang='en'>
  <cite>Webster Dictionary</cite> defines ‘marriage’ as…

引用元素

中文的引號形式

那個清晨漫步在高雄澄清湖湖畔,忽見余光中從旁擦身而過,對我吟詩:顯赫的是太陽的金輦/絢爛的是雲旗和霞旌/東經,西經,勾勒的行程/南緯,北緯,架設的驛站/等待絡繹繽紛的隨扈/簇擁著春天的主人……


陈丹青曾在其作品《纽约琐记》中这么评论,文艺复兴的重头作品不必在美国找。全美大概仅得一枚芬奇肖像,供在华盛顿国家美术馆,用丝绒绳子拦着。

<p [lang='zh-Hant']>
  那個清晨漫步在<u class="pn">高雄</u><u class="pn">澄清湖</u>湖畔,忽見<u class="pn">余光中</u>從旁擦身而過,對我吟詩:<q>顯赫的是太陽的金輦/絢爛的是雲旗和霞旌/東經,西經,勾勒的行程/南緯,北緯,架設的驛站/等待絡繹繽紛的隨扈/簇擁著春天的主人……</q>

<p [lang='zh-Hans']>
  陈丹青曾在其作品<cite>《纽约琐记》</cite>中这么评论,<q>文艺复兴的重头作品不必在美国找。全美大概仅得一枚芬奇肖像,供在华盛顿国家美术馆,用丝绒绳子拦着。</q>

英文的引號形式

Albert Einstein once said: Try not to become a man of success, but rather try to become a man of value.


Friendship is certainly the finest balm for the pangs of disappointed love, Jane Austen always speaks to my heart.

<p lang='en'>
  Albert Einstein once said: <q>Try not to become a man of success, but rather try to become a man of value.</q>

<p lang='en-GB'>
  <q>Friendship is certainly the finest balm for the pangs of disappointed love,</q> Jane Austen always speaks to my heart.

排版小技巧

行內引用若是詩篇等多行文字文本時,可以使用斜線「」來表示原文的斷行。

計算機相關文本

計算機相關文本——如代碼code、輸入鍵kbd、計算機輸出示例samp及格式預處理pre等元素——使用「等寬基型、無襯線基型」的字體回退順序,漢字得以用較清晰的系統預設黑體顯示。

代碼

這是一段包含了const CODE = "代碼"的段落p元素。

<p>這是一段包含了<code>const CODE = "代碼"</code>的段落<code>p</code>元素。

輸入鍵

command + P makes the picture walk, walk, walk,’ sang Phil.

<p><kbd>command</kbd> + <kbd>P</kbd> makes the picture walk, walk, walk,’ sang Phil.

計算機輸出示例

火龍果電腦居然跟我說:不能在brainstrom接口上插入芝士。我壓根兒看不懂這是什麼意思。

<p>火龍果電腦居然跟我說:<samp>不能在brainstrom接口上插入芝士</samp>。我壓根兒看不懂這是什麼意思。

變音文字與變數元素

變音文字i及變數var元素,使用「手寫體基型、襯線基型」的字體回退順序。

此時我靈機一動,如果我們在microwave內加上一層散熱片會如何?也許幫助我們脫離這個窘境,說不準還能一舉拿下發明比賽的名次呢!

<p>此時我靈機一動,<i>如果我們在microwave內加上一層散熱片會如何?</i>也許幫助我們脫離這個窘境,說不準還能一舉拿下發明比賽的名次呢!

船名

西文排版中,船名多使用意大利體表示。

Tsimtsum had been sunk for weeks by then.

<p lang="en"><i class="ship">Tsimtsum</i> had been sunk for weeks by then.

文字裝飾線

二大使用漢字作為書寫系統的語言——中文及日文——皆不使用空格分詞,因而在當前的網頁環境下,難以明確標示或辨明二相鄰的同種裝飾線文字。樣式標準化模組內建了樣式及腳本的「文字裝飾線」雙重修正,毋需插入空白即可得到視覺上的間隔效果,同時避免了樣式性的標記。

提示:相鄰文字裝飾線修正包含樣式表及腳本的多重回退(fallback),然搭配腳本可有較佳且更為一致的效果。

提示二:在二相鄰的裝飾線元素間,可存在不限數量的註解、機會斷行wbr元素並仍保有間隔效果;惟其餘受隱藏的元素(如容器顯示樣式設定為display: none者)將使二側的裝飾線元素失去相鄰關係,從而影響間隔效果。

註記與增訂元素

預設的UA樣式中,註記u與增訂ins元素皆使用「底線」呈現,由於該底線會附着於漢字下方,影響易讀性,我們使用「底部邊框」(border-bottom)取代「裝飾底線」(text-decoration)。二個相鄰的註記或增訂元素效果如下,

英國倫敦是個世上少有、數一數二,且融合古典及現代的大城市。

<p><u class="pn">英國</u><!--注意:中間毋需插入任何空白--><u class="pn">倫敦</u>是個世上少有、數一數二,且融合古典及現代的大城市。

更完整的辨義功能

歐洲大陸眾多的西文當中,我最喜歡的語言是隷屬於羅曼語族的西文。


「先看完電影,」他說,「阿呆舉辦的派對我們晚點去。」

<p><u class="pn">歐洲大陸</u>眾多的<u class="pn">西</u>文當中,我最喜歡的語言是隷屬於<u class="pn">羅曼</u>語族的<u class="pn">西</u>文。

<p>「先看完電影,」他說,「<u class="pn">阿呆</u>舉辦的派對我們晚點<u class="typo"></u>去。」

提示:「註記u元素」雖有明確的樣式,用於避免文字上的爭議,但並不改變文本的本來意義,常有表示專名(中文專名號)或原、引文的拼寫錯誤等用途;而「增訂ins元素」表示相應文本在版本修改、增訂間的記錄。

訛訊與刪訂元素

二個相鄰的訛訊或刪訂元素效果如下,

太陽系有九大行星八大行星。

<p>太陽系有<s>九大行星</s><s></s>八大行星。

立法院常設有一六一二二五一一三位議員。

<p>立法院常設有<del datetime="1992-0-0">一六一</del><del datetime="1998-0-0">二二五</del><ins datetime="1998-0-0">一一三</ins>位議員。

提示:「訛訊s元素」用於標明錯誤或不再正確的資訊;而「刪訂del元素」表示相應文本在版本修改、刪訂間的記錄。

更詳盡的範例及測試,請見程式測試頁·文字裝飾線

行間注元素

「行間注」包含漢字標音(亦作漢字注音)及雙語對照二大功能,前者更可細分為「羅馬拼音」及「注音符號」。搭配腳本的樣式標準化模組完整支援行間注的所有功能,按需求加入相應的類別屬性(class)即可。

注意:除基本行間注外,包含注音、複合式行間注及拼-注音共同標注功能皆需配合JavaScript腳本方可正常顯示。

基本行間注

基本行間注的形式係「注文」位「基文」上方居中,適用雙語對照、羅馬拼音等。

雙語對照

萬維網World Wide Web

<ruby>萬維網<rt>World Wide Web</rt></ruby>

羅馬拼音

qiáo 一彎yìwān流水liúshuĭjià小橋xiăoqiáo 兩岸liăng'àn楊柳yángliŭ隨風suífēngpiāo

<p>
  <ruby><rt></rt><rt>qiáo</rt><rt></rt>
    一彎<rt>yìwān</rt>流水<rt>liúshuĭ</rt><rt>jià</rt>小橋<rt>xiăoqiáo</rt></ruby>
</p>

注音行間注

注音行間注的「注文」位「單個基文漢字」的右側,用於標注漢字發音。現支援國語(普通話)注音符號及台灣方言音符號。

那美麗的高塔竟在瞬間ㄏㄨㄚˋㄗㄨㄛˋㄐㄧㄈㄣˇ那曾令人ㄗㄜˊㄕㄜˊ˙ㄉㄜㄍㄨㄟˇㄈㄨˇㄕㄣˊㄍㄨㄥ 只能長存在人們心中。

與各種字級語意元素並用,

ㄨㄛ˅˙ㄉㄜㄆㄥˊㄧㄡ˅˙ㄚ——請知道 ——「 ㄔㄞˊㄇㄧ˅ㄧㄡˊㄧㄢˊㄐㄧㄤˋㄘㄨˋㄔㄚˊ」, 這些都是ㄨㄛˇ˙ㄇㄣㄖˋㄔㄤˊㄕㄥㄏㄨㄛˊ ㄅㄧˋㄅㄟˋ ˙ㄉㄜ ㄑㄧㄧㄤˋ ㄉㄨㄥ 西ㄒㄧ

直接於ruby元素標籤上,加入zhuyinmps類別即可顯示注音行間注,

<ruby class="zhuyin"><rt>ㄔㄞˊ</rt><rt>ㄇㄧ˅</rt><rt>ㄧㄡˊ</rt><rt>ㄧㄢˊ</rt><rt>ㄐㄧㄤˋ</rt><rt>ㄘㄨˋ</rt><rt>ㄔㄚˊ</rt>
</ruby>

複合式行間注

複合式行間注可為一段基文同時標注雙注文,以更精煉的空間顯示更多資訊。

朋友們,歡迎來到 紐約 New York City Niǔyuē Shì

<ruby class="complex">
  <rb>紐約</rb><rb></rb>

  <rtc lang="en">
    <rt rbspan="2">New York City</rt>
  </rtc>

  <rtc lang="cmn-Latn">
    <rt>Niǔyuē</rt>
    <rt>Shì</rt>
  </rtc>
</ruby>

如上方代碼所示,使用複合式行間注需為ruby元素標籤套用類別complex,並依「ruby text container」語法格式書寫。

拼音-注音共同標注

拼音-注音共同標注屬於複合式行間注的特殊情況,可同時為一段文本標注拼音與注音。

guá ū tsi̍t ê pîng-iú i tsin-ū tsì-khì ㆣㄨㄚˋ ㄨ˫ ㄐㄧㆵ̍ ㆤˊ ㄅㄧㄥˊ ㄧㄨˋ ㄐㄧㄣ ㄨ˫ ㄐㄧ˪ ㄎㄧ˪
tsū sè-hàn li̍p-tsì kóng beh siá-kua tshiùnn-kua thàn-tsînn ㄗㄨ˫ ㄙㆤ˪ ㄏㄢ˪ ㄉㄜ˫ ㄌㄧㆴ̍ ㄐㄧ˪ ㄍㆲˋ ㆠㆤㆷ ㄒㄧㄚˋ ㄍㄨㄚ ㄑㄧㆫ˪ ㄍㄨㄚ ㄊㄢ˪ ㄐㆪˊ
CD。 i ta̍k-kang lóng-teh siáu tiān-iánn thiann a-tok-á ê ㄉㄚㆶ̍ ㄍㄤ ㄌㆲˋ ㄉㆤㆷ ㄒㄧㄠˋ ㄉㄧㄢ˫ ㄧㆩˋ ㄊㄧㆩ ㄉㆦㆶ ㄚˋ ㆤˊ

——朱約信〈歡迎來唱我的歌〉
<ruby lang="zh-nan-Hant" class="rightangle">
  <rb></rb>
  <rb></rb>
  <rb></rb><rb></rb>
  <rb></rb><rb></rb><rtc class="romanization">
    <rt>guá</rt>
    <rt>ū</rt>
    <rt rbspan="2">tsi̍t-ê</rt>
    <rt rbspan="2">pîng-iú</rt>
  </rtc>

  <rtc class="zhuyin">
    <rt>ㆣㄨㄚˋ</rt>
    <rt>ㄨ˫</rt>
    <rt>ㄐㄧㆵ̍</rt>
    <rt>ㆤˊ</rt>
    <rt>ㄅㄧㄥˊ</rt>
    <rt>ㄧㄨˋ</rt>
  </rtc>
</ruby>

如上方代碼所示,使用「拼音-注音共同標注」式行間注時,需為ruby元素標籤套用類別complexrightangle,並依「ruby text container」語法格式書寫。最後,在rtc元素標籤上,加入相應的拼音romanization或注音zhuyin類別。

示例:注音及雙行拼音共同標注

ㄐㄧㆵ͘ ㄌㄤˊ ㄏㄨㄢˊ ㄌㄜˋ ㄐㄧㆵ͘ ㄧㆫ˫ ㆠㄜˊ ㄌㄤˊ ㄏㄨㄢˊ ㄌㄜˋ ㄑㄧㄣ ㄑㄧㆫ˫ Tsi̍t lâng hoân‑ló chi̍t iūⁿ bô‑lâng hoân‑ló chhin‑chhiūⁿ Tsi̍t lâng huân-ló tsi̍t iūnn bô-lâng huân-ló tshin-tshiūnn

<ruby class="complex">
  <rb></rb>
  <rb></rb>
  <rb></rb>
  <rb></rb>
  <rb></rb>
  <rb></rb><rb></rb>
  <rb></rb>
  <rb></rb>
  <rb></rb>
  <rb></rb>
  <rb></rb><rtc class="zhuyin">
    <rt>ㄐㄧㆵ͘</rt>
    <rt>ㄌㄤˊ</rt>
    <rt>ㄏㄨㄢˊ</rt>
    <rt>ㄌㄜˋ</rt>
    <rt>ㄐㄧㆵ͘</rt>
    <rt>ㄧㆫ˫</rt>
    <rt>ㆠㄜˊ</rt>
    <rt>ㄌㄤˊ</rt>
    <rt>ㄏㄨㄢˊ</rt>
    <rt>ㄌㄜˋ</rt>
    <rt>ㄑㄧㄣ</rt>
    <rt>ㄑㄧㆫ˫</rt>
  </rtc>
  <rtc class="romanization">
    <rt>Tsi̍t</rt>
    <rt>lâng</rt>
    <rt rbspan="2">hoân‑ló</rt>
    <rt>chi̍t</rt>
    <rt>iūⁿ</rt>
    <rt rbspan="2">bô‑lâng</rt>
    <rt rbspan="2">hoân‑ló</rt>
    <rt rbspan="2">chhin‑chhiūⁿ</rt>
  </rtc>
  <rtc class="romanization">
    <rt>Tsi̍t</rt>
    <rt>lâng</rt>
    <rt rbspan="2">huân-ló</rt>
    <rt>tsi̍t</rt>
    <rt>iūnn</rt>
    <rt rbspan="2">bô-lâng</rt>
    <rt rbspan="2">huân-ló</rt>
    <rt rbspan="2">tshin-tshiūnn</rt>
  </rtc>
</ruby>

更詳盡的範例及測試,請見程式測試頁·行間注元素