3.13 文字樣式
單位介紹:
html:
<!doctype html>
<html>
<head>
</head>
<body>
<div class="text1">
文字1
<div class="text2">文字2</div>
</div>
</body>
</html>
css:
範例:
若將 em 單位用在其它 css 屬性,例如圓角(border-radius),那就是直接看該元素的文字大小。
例:
font-weight 文字粗體
文字粗體,值有 100、200、300、400(normal)、500、600、700(bold)、800、900。並不是設定就有效,甚至其實看不太出來,常用的只有 normal 及 bold。其它要看字體本身有沒有支援。
範例:
font-style 字體樣式
可選的值有:normal 和 italic。
normal 是預設狀態,即一般字體;italic 會呈現斜體。
範例:
text-decoration 文字畫線
可選的值有:
其它用法:
如果是 underline 的時候,可以設定 text-underline-offset 來指定拉開的距離。
text-transform 英文字大小寫
這主要是用在英文字母才會有效。可選的值有:
capitalize:每個英文單字首字母強制大寫。
text-align 文字水平對齊
可選的值有:
text-indent 首行縮排
預設值為 0。可設定首行縮排,例:
line-height 文字行高
指定倍數或固定單位,建議用倍數觀念來指定。
white-space 關於空格
該如何處理元素內的空白字元。
常用的有以下:
normal:預設值,連續的空白字元會被合併(collapse)。
pre:連續的空白字元(包含斷行)都會被保留。(註:在 code pen 上實測此屬性值不太正確,因為沒有保留空白字元。)
word-break 文字斷行
中文字比較沒有這個問題,英文字就會有問題,常見可設定的有:
當文字內容是網址的時候,可能會遇到超出去的問題,例:
a:alpha 不透明度,0 ~ 1 的小數,1 為完全不透明,0 為完全透明。
s:Saturation 飽合度。0% ~ 100%,一個顏色若飽合度愈高,愈接近純色;一個顏色若飽合度低,就愈接近灰色。
l:Lightness 亮度。0% ~ 100%,一個顏色若沒有亮度,就會是黑色;一個顏色若亮度最高,就是白色。
a:Alpha 不透明度。0 ~ 1 的小數,1 為完全不透明,0 為完全透明。
圖片出自:https://zh.wikipedia.org/wiki/HSL和HSV色彩空间 範例:
font-family 指定字體
一般是直接針對 body 標籤來設定:
以上述為例,瀏覽器會優先用「微軟正黑體」,如果電腦沒有這個字體,就繼續往後找,下一個是「BiauKai」(標楷體),如果有,就使用這個字體。依此類推。
情況:英文字套用 helvetica,中文字套用 BiauKai:
有些字體例如 BiauKai 這個字體中英文都有;然而 helvetica 只有英文字體。那以此情況為例的話,英文字就會套用 helvetica 字體,中文就會套用 BiauKai 字體。
如果需要特別針對某元素,那就直接針對該元素去指定字體即可:
@font-face 字體檔自行載入
網頁上的字體檔副檔名,儘可能使用 woff 或 woff2 字體,較輕量,WOFF 說明文件參考。
透過 CSS 的 @font-face ,就可以使用自己的字體檔:
語法示意:
font-display 決定字體載入方式
可設定的有以下,記 swap 即可:
auto:由瀏覽器自行決定,通常會與 block 相同。
block:在字型未載入完全時,會有一部份的時間會由佔位空間留白,等到字型快載入完成時,出現預設字型,字型載入完成時,再一次替換。
swap:(結論用這個)。先出現預設的字型,然後字型邊下載邊替換。
fallback:先顯示預設字型,當字型載入完畢後,再一次替換,但如果下載時間過長的話(3秒為限),就不會替換。
optional:會依照使用者的網路狀況,當網路速度太慢時,則直接使用預設的字型為主。
故 @font-face 裡以後都寫類似這樣:
Google Fonts
例:請在 practice 資料夾下,建立 font.html 檔案,貼以下的程式: