中文排版CSS心得

2021-01-08 站長之家

數月來學習web標準,並遵循標準設計和製作web頁面。一直想寫點什麼,整理一下自己的心得體會。寫這篇文章,主要是針對中文排版設計,英文排版因為很少做,所以不涉及。

先介紹如何設定字體、顏色、大小、段落空白等比較簡單的應用,後面再介紹下比如首字下沉、首行縮進。最後講一些常用的web頁面中文排版,比如中文字的截斷、固定寬度詞內折行(word-wrap和word-break)等等。因為只是寫一些應用方面的心得,如果需要完整的CSS屬性介紹,請參考CSS手冊。

1、如何設定文字字體、顏色、大小 —— 使用font

  font-style設定斜體,比如font-style: italic;
  font-weight設定文字粗細,比如font-weight: bold;
  font-size設定文字大小,比如font-size: 12px;(或者9pt,不同單位顯示問題參考CSS手冊)
  line-height設定行距,比如line-height: 150%;
  color設定文字顏色(注意不是font-color),比如color: red;
  font-family設定字體,比如font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;(這是通用的寫法)

  以上都可以寫在一行font屬性裡(除了color屬性需要單獨寫):
  font: italic bold 12px/150% "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;


2、如何控制段落排版 —— 使用margin,text-align

中文段落使用<p>標籤,左右(相當於縮進)、段前段後的空白,都可以用margin。比如:

以下為引用的內容:

  p{
  margin: 18px 6px 6px 18px; /*分別是上、右、下、左,十二點開始的順時針方向*/
  }

文字的對齊方式用text-align,比如:

以下為引用的內容:

  p{
  text-align: center; /*居中對齊*/
  }

對齊方式還有left、right和justify(兩端對齊)

PS.談起margin,我習慣於在寫CSS的時候為所有的標籤定義margin: 0; 因為時而出現由於默認的margin值導致頁面排版問題,而自己找不到原因(特別注意的是ul/ol/p/dt/dd等標籤)

3、豎排文字 —— 使用writing-mode

writing-mode屬性有兩個值lr-tb和tb-rl,前者是默認的左-右、上-下,後者是上-下、右-左。
比如:

以下為引用的內容:

  p{
  writing-mode: tb-rl;
  }

可以結合direction排版。

4、項目符號的問題 —— 使用list-style

在CSS裡項目符號有disc(實心圓點)、circle(空心圓圈)、square(實心方塊)、decimal(阿拉伯數字)、lower-roman(小寫羅馬數字)、upper-roman(大寫羅馬數字)、lower-alpha(小寫英文字母)、upper-alpha(大寫英文字母)、none(無)。比如設定一個列表(ul或ol)的項目符號為方塊,如:

以下為引用的內容:
  li{
  list-style: square;
  }

另外list-style還有一些值,比如可以採用一些小圖片作為項目符號,在list-style下直接寫url(「圖片地址」)就可以了。注意如果一個項目列表的左外補丁(margin-left)設為零的時候,list-style-position: outside(默認是outside)的項目符號不會顯示。可惜的是上述的項目符號似乎並不能設定大小,圓點和方塊始終是那麼點。並且不能設定垂直方向上的對齊。

5、首字下沉 —— 使用:first-letter

偽對象:first-letter配合font-size、float可以製作首字下沉效果。
比如:

以下為引用的內容:

  p:first-letter{
  padding: 6px;
  font-size: 32pt;
  float: left;
  }

#p#中文排版CSS心得(二)#e#

6、首行縮進 —— 使用text-indent

text-indent可以使得容器內首行縮進一定單位。比如中文段落一般每段前空兩個漢字。可以這麼寫:
p{
text-indent: 2em; /*em是相對單位,2em即現在一個字大小的兩倍*/
}
如果font-size是12px的話,那麼text-indent: 2em則縮進24px。

7、關於漢字注音 —— 使用ruby標籤和ruby-align屬性

比如說<ruby>注音<rt style="font-size: 11px;">zhu yin</rt></ruby>,可以利用ruby-align設置對齊方式。這是在CSS手冊裡面看到的,具體可以自行查閱ruby-align項。

8、固定寬度漢字截斷 —— 使用text-overflow

用後臺語言可以對從資料庫裡的欄位內容做截斷處理,比如說截12個漢字(之後用省略號)。但是有時還需要html標籤的過濾等,而用CSS來控制則沒有這個問題。比如對列表應用以下樣式:

以下為引用的內容:
  li{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  }
9、固定寬度漢字(詞)折行 —— 使用word-break

舉個例子,比如說要在一個固定寬度容器裡面顯示很多地名(假設以空格分隔),為了避免地名中間斷開(即一個字在上面而另一個字折斷到下一行去了)。則可以使用word-break。比如:

以下為引用的內容:

  <div style="width:210px;height: 200px;background: #ccc;word-break:keep-all">
  南京上海 上海上 南 上海上海 南京 上海上海上海 南京上海 上海 南京上海 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京上   海 上海 南京上海 上海
  </div>

 值得注意的是裡面的空格不能以&nbsp;代替(最少要有一個軟空格)。

相關焦點

  • CSS的字體和排版
    今天這篇文章總結下CSS的字體和排版。
  • 一個美觀實用的中文排版開源項目
    今天給大家推薦一個小眾的 GitHub 項目:赫蹏,一個非常美觀又實用的開源項目,超好看的中文排版樣式。赫蹏(hètí)是專為中文內容展示設計的排版樣式增強。它基於通行的中文排版規範而來,可以為網站的讀者帶來更好的文章閱讀體驗。
  • 這個中文排版開源項目你值得擁有
    今天給大家推薦一個小眾的 GitHub 項目:赫蹏,一個非常美觀又實用的開源項目,超好看的中文排版樣式。赫蹏(hètí)是專為中文內容展示設計的排版樣式增強。它基於通行的中文排版規範而來,可以為網站的讀者帶來更好的文章閱讀體驗。
  • 值得紀念的日子,中文網際網路終於有排版規範 | 愛範兒
    ——由 W3C 撰寫的《中文排版規範(草稿)》,是中文網際網路世界對中文網頁排版的權威參考標準。這份《規範》著重解決中文網絡排版的那些不夠標準的問題?W3C 的《中文排版規範》對於中文網絡世界有著重要的意義。它可為將來的創業者、產品開發人員提供一份權威性的參考性文件,保證中文網頁、中文 App 基本的美感。然而,不代表 W3C 出具一份《中文排版規範》,中文網際網路世界的排版水平就有所提升。
  • 通過css解決文字排版標點符號在行首的問題
    對於漢字排版來說,標點符號出現在行首,不符合中國人的閱讀習慣,也不允許標點符號出現在行首。引號、括號、書名號的前一半和後一半都各佔一個字的位置,它們的前一半可以放在一行的開頭,但不能出現在一行的末尾,後一半不出現在一行的開頭。
  • 新手被web頁面排版定位弄懵,教你3種方法弄懂css元素定位!
    div+css是現在比較流行網頁排版技術,其中css的靈活運用是不可缺少的部分。在完成一些複雜的頁面排版都是由最簡單的排版方式演變而來的,應讀者的要求今天給大家講解一下css最基礎的布局元素對齊,在css中我們可以用多種屬性來實現對齊元素,如果你是技術大牛的話這篇文章就可以直接忽略了,技術大牛不喜勿噴!css中元素對齊方式有哪些?
  • 《前端開發》第一節:10天教你學會用Html和CSS寫簡單網頁
    一直想分享我的學習心得給大家,感謝有百家號這樣好的平臺。從今天開始我計劃做一些入門型基礎的教程給大家學習。希望給喜歡的人打開編程的大門。很多人都覺得編程很難,其實難於不難在於自己的努力,我只是帶你入門打牢基礎,後面深入就要靠自己不斷地實踐和學習了。首先來給大家講講前端開發是什麼?
  • 回顧《中文排版需求》
    之後,由日本數大出版社集資與慶應大學合作成立的高級出版實驗室(Advanced Publishing Lab, APL)趁這機會舉辦了一場座談會,W3C 中文標準參與者董福興(Bobby Tung)在會上用日語做了一場「中文排版需求的沿革與標準化活動」為主題的演講。本篇為中文版,根據講稿加以說明,講述《中文排版需求》目前的進程,以及繼續推進它所需的行動。
  • 如何用Markdown輕鬆排版知乎專欄文章?
    痛點從前,寫作時的排版是件辛苦事。不論你把排版環節放在寫作中還是寫作後,總會在心裡清楚意識到,還有這麼一個繁重而無趣的工作在等著你。後來,有了Markdown,排版就變成了一件令人愉悅的事情了。你只需要用非常簡單的記號說明一些特殊位置,例如標題、列表、腳註和圖片等,然後應用不同的樣式,你寫好的文字就能自動轉化為各種漂亮的排版效果了。
  • 英文排版真得比中文排版好看嗎
    朋友們好久不見,想起之前有一個朋友私我說,想知道英文排版概怎麼設計,然後說為什麼同樣的頁面英文排起來就很好看呢?想必大家也非常想知道吧?
  • 英文排版真的比中文排版好看嗎?
    很多的同學會有這樣的疑問為什麼同樣的頁面,英文排版起來會比較好看呢?
  • CSS入門
    -- <link rel="stylesheet" href="style.css"> 導入css文件--> <link rel="stylesheet" href="style.css"></head><body><h1>hello world!
  • 中文排版的最佳實踐
    Requirements for Hangul Text Layout and Typography 倒還好。我本人還在編寫 Requirement for Chinese Text Layout 的草稿。在我完成這個文檔之前,先給大家十條法則,幫助你更好地做中文排版。1.
  • 包裝設計與美學 | 英文排版一定就比中文排版洋氣嗎?
    經常會遇到一個問題,比如:這個包裝設計很洋氣因為是英文,如果換成中文就土了。
  • 中文書寫規範與排版指南
    相關學習資料如下:GB/T 15834―2011 標點符號用法(General rules for punctuation)—— 教育部PDF版本 / Google Doc 電子版 ;臺灣繁體 標點符號手冊 ;BBC 學院—標點符號的使用 ;有幾個要點:中文主體寫作環境下,使用全形中文標點
  • 網頁設計之css+div PK table+css
    首頁 > 教程 > 關鍵詞 > CSS最新資訊 > 正文 網頁設計之css+div PK table+css
  • 前端開發必備的CSS命名規範與常用CSS代碼集合
    編輯 | web前端開發來源 | web前端開發我們在用html+css進行網頁的排版布局時,
  • CSS核心基礎之CSS基礎知識介紹
    html顯示頁面元素,CSS控制排版布局的頁面開發模式,HTML+CSS模式可以提高運行效率,簡化代碼,增加頁面可讀性,提高標籤控制力與搜索排名。1. CSS概念CSS是Cascading  Style Sheet的縮寫,可以翻譯為「層疊樣式表」或」級聯樣式表」 ,即樣式表。
  • 網頁設計:關於CSS框架網頁的設計!
    編寫css也是一樣,從最初只是定義文字顏色、內容排版,到現在定義所有的表現。css框架也漸漸被重視了,因為大家都認識到:從具象的表現中抽出抽象的模塊來重複使用,是減少用戶下載、方便團隊及個人開發最重要的手段。
  • CSS中內聯元素與塊級元素
    > 教程 > 關鍵詞 > CSS最新資訊 > 正文 CSS中內聯元素與塊級元素 《CSS權威指南》中文中