CSS版式設計
如何使用CSS設計版式
在這篇文章中,我將介紹使用CSS來設計文字的方法,並使用以下屬性:
text-transform
text-decoration
text-align
vertical-align
line-height
text-indent
text-align-last
word-spacing
letter-spacing
text-shadow
white-space
tab-size
writing-mode
hyphens
text-orientation
direction
line-break
word-break
overflow-wrap
text-transform
此屬性可轉換元素的大小寫。
有四個有效值:
capitalize
– 將每個單字的第一個字母轉為大寫uppercase
– 將所有文字轉為大寫lowercase
– 將所有文字轉為小寫none
– 禁用文字轉換,用於避免繼承此屬性
範例:
1 | p { |
text-decoration
此屬性用於對文字添加裝飾,包括:
underline
– 添加底線overline
– 添加上劃線line-through
– 添加刪除線blink
– 添加閃爍效果none
– 無裝飾
範例:
1 | p { |
您也可以設定裝飾的樣式和顏色。
範例:
1 | p { |
有效的樣式值為 solid
、double
、dotted
、dashed
、wavy
。
您可以將所有屬性寫在一行,或使用以下特定屬性:
text-decoration-line
text-decoration-color
text-decoration-style
範例:
1 | p { |
text-align
默認情況下,text-align
的值爲 start
,表示文本從包含它的箱子的 “start” 開始,原點是 (0, 0)。這表示在從左到右的語言中,它在左上角,在從右到左的語言中,它在右上角。
可能的值有: start
、end
、left
、right
、center
、justify
(在每行末尾保持一致的間距):
1 | p { |
vertical-align
決定內聯元素的垂直對齊方式。
這個屬性有幾個值。首先,可以指定一個長度或百分比值。這些值用於將文本與父元素的基線對齊位置上下對齊(使用負值時)。
然後,我們有以下關鍵字:
baseline
(默認值)–將基線與父元素的基線對齊sub
–使元素下標,模擬sub
HTML 元素的效果super
–使元素上標,模擬sup
HTML 元素的效果top
–將元素的頂部與行的頂部對齊text-top
–將元素的頂部與父元素字體的頂部對齊middle
–將元素的中間與父元素行的中間對齊bottom
–將元素底部與行的底部對齊text-bottom
–將元素底部與父元素字體的底部對齊
line-height
此屬性允許您更改行的高度。每行文本都有一定的字體高度,然後在行之間垂直添加額外的間距。這就是行高:
1 | p { |
text-indent
將段落的第一行縮進一定長度或段落寬度的百分比:
1 | p { |
text-align-last
默認情況下,段落的最後一行遵循 text-align
的值進行對齊。使用此屬性更改此行爲:
1 | p { |
word-spacing
修改每個單詞之間的間距。
可以使用 normal
關鍵字來重置繼承的值,也可以使用長度值:
1 | p { |
letter-spacing
修改每個字母之間的間距。
可以使用 normal
關鍵字來重置繼承的值,也可以使用長度值:
1 | p { |
text-shadow
對文本應用陰影。默認情況下,文本沒有陰影。
此屬性接受一個可選的顏色,以及一組值來設置:
- 陰影與文本的 X 偏移量
- 陰影與文本的 Y 偏移量
- 模糊半徑
如果未指定顏色,則陰影將使用文本顏色。
範例:
1 | p { |
white-space
設置CSS如何處理元素內的空格、換行符和制表符。
折疊空格的有效值爲:
normal
– 折疊空格。當文本到達容器末尾時,添加新行nowrap
– 折疊空格。當文本到達容器末尾時,不換行,並且忽略添加到文本中的任何換行符pre-line
– 折疊空格。當文本到達容器末尾時,添加新行
保留空格的有效值爲:
pre
– 保留空格。當文本到達容器末尾時,不換行,但保留添加到文本中的換行符pre-wrap
– 保留空格。當文本到達容器末尾時,添加新行
tab-size
設置制表符字符的寬度。默認值爲 8,您可以設置一個整數值以設置字符佔用的字符空間,或者使用長度值:
1 | p { |
writing-mode
定義文本是水平還是垂直排列,以及區塊在其上進行的方向。
可以使用以下值:
horizontal-tb
(默認值)vertical-rl
– 將內容垂直排列。換行符位於前一行的左側vertical-lr
– 將內容垂直排列。換行符位於前一行的右側
hyphens
確定是否在達到新行時自動添加破折號。
有效值爲:
none
(默認值)manual
– 只有在已經有可見破折號或隱藏破折號(特殊字符)時才添加破折號auto
– 當文字可能有破折號時添加破折號
text-orientation
當 writing-mode
爲垂直模式時,確定文本的方向。
有效值爲:
mixed
– 默認值,如果語言是垂直的(例如日語),則保留該方向,同時旋轉用西方語言書寫的文本upright
– 將所有文本設置爲垂直方向sideways
– 將所有文本設置爲水平方向
direction
設置文本的方向。有效值爲 ltr
和 rtl
:
1 | p { |
word-break
此屬性指定如何在單詞內斷行。
normal
(默認值) – 文本只在單詞之間斷行,不在單詞內斷行break-all
– 瀏覽器可以在單詞內斷詞(但不添加破折號)keep-all
– 禁止自動換行。主要用於CJK(中日韓)文本。
談到CJK文本,屬性 line-break
用於確定文本的換行方式。我不是這些語言的專家,所以我不涉及這方面的討論。
overflow-wrap
如果單詞太長,無法放入一行中,則可以溢出容器。
此屬性也稱爲
word-wrap
,雖然它是非標准的(但仍可作爲別名使用)
這是默認行爲(overflow-wrap: normal;
)。
我們可以使用以下方式:
1 | p { |
在恰好適合行長度時斷詞,或者:
1 | p { |
如果瀏覽器認爲在前面的某個位置有軟換行的機會,則不添加破折號。在任何情況下,都不添加破折號。
此屬性與 word-break
非常相似。對於西方語言,我們可能選擇使用 overflow-wrap
,而對於非西方語言,則使用 word-break
有特殊處理。
tag: CSS, typography, text styling