搜尋

常用文字樣式

一個吸引目光網頁設計除了視覺設計與配色,「文字樣式」也是非常重要的一部分,這篇教學會介紹 CSS 裡常用的文字樣式,例如 color、font-style、font-weight、text-decoration、letter-spacing、text-shadow 等屬性,精準控制文字的顏色、斜體、粗細、陰影、底線、刪除線、字母間距等樣式效果。

CSS 教學 - 設定文字樣式

常用文字樣式

下方列出可以文字樣式的常用屬性 ( 所有瀏覽器都支援,並都具有繼承特性 ):

樣式屬性 屬性值 說明
color 顏色單位 文字顏色
font-style normal、italic、oblique 文字樣式
font-weight normal、bold、lighter、bolder、1~1000 浮點數 文字粗細
text-decoration text-decoration-line ( none、underline、overline、line-through )
text-decoration-style ( solid、double、dotted、dashed、wavy )
text-decoration-color ( 顏色單位 )
text-decoration-thickness (auto、from-font、length)
文字裝飾
text-emphasis nono、filled、open、dot、circle、double-circle、triangle、sesame 文字重點強調
word-spacing 絕對長度單位、em ( 乘以元素文字大小 ) 單字間距
letter-spacing 絕對長度單位、em ( 乘以元素文字大小 ) 字元間距
text-shadow color、offset-x、offset-y、blur-radius 文字陰影

color 文字顏色

color 樣式屬性可以設定「文字的顏色」,支援 CSS 的所有顏色顯示單位 ( 參考「CSS 顏色單位」),但不支援漸層色,下方的範例使用不同的顏色單位將文字設定為綠色。

線上展示:https://codepen.io/oxxo/pen/rNgGMrv

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (color: green;)</h3>
<h3 class="b">Hello OXXO!! (color: #008800;)</h3>
<h3 class="c">Hello OXXO!! (color: rgb(0, 128, 0);)</h3>
<h3 class="d">Hello OXXO!! (color: hsl(120deg, 100%, 25.1%);)</h3>
<h3 class="e">Hello OXXO!! (color: lab(46.23% -51.7 49.9);)</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 5px;}
  .a {color: green;}
  .b {color: #008800;}
  .c {color: rgb(0, 128, 0);}
  .d {color: hsl(120deg, 100%, 25.1%);}
  .e {color: lab(46.23% -51.7 49.9);}
</style>

CSS 教學 - 設定文字樣式 - color 文字顏色

font-style 文字樣式

font-style 樣式屬性可以設定「文字的樣式」,下方列出相關屬性值:

屬性數值 說明
normal 文字預設樣式。
italic 斜體。
oblique 斜體或指定角度的斜體 ( -90deg~90deg ),如果字型不支援則等於 italic。

幾乎所有的字型都支援 normalitalic 屬性值,但 oblique 屬性數值只支援部分字型 ( 除非字型有額外設定 font-style:oblique;,參考「@font-face 定義字型」),下方的範例使用不同的 font-style 屬性數值改變文字樣式。

線上展示:https://codepen.io/oxxo/pen/RwmLowr

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (font-style: normal;)</h3>
<h3 class="b">Hello OXXO!! (font-style: italic;)</h3>
<h3 class="c">Hello OXXO!! (font-style: oblique;)</h3>
<h3 class="d">Hello OXXO!! ( font-style: oblique 45deg;)</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 5px;}
  .a {font-style: normal;}
  .b {font-style: italic;}
  .c {font-style: oblique;}
  .d {font-style: oblique 45deg;}
</style>

CSS 教學 - 設定文字樣式 - font-style 文字樣式

font-weight 文字粗細

font-weight 樣式屬性可以設定「文字的粗細」,下方列出相關屬性值:

屬性數值 說明
normal 文字預設粗細。
bold 粗體。
lighter 比繼承父元素的文字粗細更細 ( 例如繼承 200 就會變成 100 )。
bolder 比繼承父元素的文字粗細更粗 ( 例如繼承 200 就會變成 300 )。
1~1000 浮點數 通常每隔 100 為單位,例如 100、200、300 等,數值越高越粗。

幾乎所有的字型都支援 normalbold 屬性值,其他屬性則看字型是否支援 ( 參考「@font-face 定義字型」),舉例來說,Google Fonts 的 Roboto Condensed 字型就支援 100~900 各種粗細字體,下方的範例使用不同的 font-weight 屬性數值改變文字粗細。

線上展示:https://codepen.io/oxxo/pen/RwmLora

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (font-weight: normal;)</h3>
<h3 class="b">Hello OXXO!! (font-weight: 100;)</h3>
<h3 class="c">Hello OXXO!! (font-weight: bold;)</h3>
<h3 class="d">Hello OXXO!! (font-weight: 700;)
  <h3 class="e">Hello OXXO!! (font-weight: bolder;)</h3>  <!-- 子元素 -->
</h3>

<!-- CSS 程式碼 -->
<style>
  @import url("https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap");
  h3 {
    margin: 5px;
    font-family: "Roboto Condensed", sans-serif;
  }
  .a {font-weight: normal;}
  .b {font-weight: 100;}
  .c {font-weight: bold;}
  .d {font-weight: 700;}
  .e {font-weight: bolder;}
</style>

CSS 教學 - 設定文字樣式 - font-weight 文字粗細

text-decoration 文字裝飾

text-decoration 樣式屬性可以設定「文字的裝飾」,所謂的文字裝飾表示刪除線、底線等覆蓋於文字的線條,text-decoration 包含下列四種屬性,四種屬性可以各自獨立撰寫

由於 text-decoration 屬於四個樣式的「集合式簡寫」,所以支援下列幾種寫法 ( 樣式採用空白分隔,順序不拘 ):

p {text-decoration: 裝飾類型;}
p {text-decoration: 裝飾類型 裝飾樣式;}
p {text-decoration: 裝飾類型 裝飾樣式 裝飾顏色;}
p {text-decoration: 裝飾類型 裝飾樣式 裝飾顏色 裝飾粗細;}

下方的範例使用單一個 text-decoration 呈現不同的文字裝飾。

線上展示:https://codepen.io/oxxo/pen/wvbrdLX

<!-- HTML 程式碼 -->
<h3 class="a">Hello Oxxo!!</h3>
<h3 class="b">Hello Oxxo!!</h3>
<h3 class="c">Hello Oxxo!!</h3>
<h3 class="d">Hello Oxxo!!</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {
    margin: 15px;
    font-size:30px;
  }
  .a {text-decoration: underline red 10px;}
  .b {text-decoration: underline wavy green 5px;}
  .c {text-decoration: line-through double #ff550088 5px;}
  .d {text-decoration: line-through wavy #00009988 50%;}
</style>

CSS 教學 - 設定文字樣式 - text-decoration 文字裝飾

text-decoration-line 裝飾類型可以重複撰寫 ( 裝飾樣式、顏色和粗細只能有一種 ),變成混合樣式的奇妙效果。

線上展示:https://codepen.io/oxxo/pen/qBGVRQj

<!-- HTML 程式碼 -->
<h3>Hello Oxxo!!</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {
    margin: 100px 15px;
    font-size:30px;
    text-decoration: underline overline line-through wavy #ff000055 50%;
  }
</style>

CSS 教學 - 設定文字樣式 - text-decoration-line 裝飾類型可以重複撰寫

text-emphasis 文字重點強調

text-emphasis 樣式屬性可以設定「文字重點強調」,會在指定文字的上方增加一些符號指示,讓文字更加醒目,下方列出相關屬性值:

屬性數值 說明
none 不強調,預設值。
filled 實心小圓點。
open 空心小圓點。
dot 實心小圓點,類似 filled。
circle 實心大圓點。
double-circle 有外框的實心大圓點。
triangle 實心三角形。
sesame 芝麻形 ( 約 1/5 圓弧角 )。
'*'"*" 使用引號呈現特殊符號 ( 例如米字號 )。

下方的範例使用不同的 text-emphasis 來標記文字。

線上展示:https://codepen.io/oxxo/pen/LYozXGb

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (text-emphasis: filled;)</h3>
<h3 class="b">Hello OXXO!! (text-emphasis: open;)</h3>
<h3 class="c">Hello OXXO!! (text-emphasis: dot;)</h3>
<h3 class="d">Hello OXXO!! (text-emphasis: circle;)</h3>
<h3 class="e">Hello OXXO!! (text-emphasis: double-circle;)</h3>
<h3 class="f">Hello OXXO!! (text-emphasis: triangle;)</h3>
<h3 class="g">Hello OXXO!! (text-emphasis: sesame;)</h3>
<h3 class="h">Hello OXXO!! (text-emphasis: ">";)</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 10px;}
  .a {text-emphasis: filled;}
  .b {text-emphasis: open;}
  .c {text-emphasis: dot;}
  .d {text-emphasis: circle;}
  .e {text-emphasis: double-circle;}
  .f {text-emphasis: triangle;}
  .g {text-emphasis: sesame;}
  .h {text-emphasis: ">";}
</style>

CSS 教學 - 設定文字樣式 - text-emphasis 文字重點強調

標記符號的顏色預設與文字顏色相同,但也可以額外在符號後方指定顏色 ( 使用空白分隔 ),顏色支援「單色」的所有色彩單位,下方範例會將標記符號加上不同的顏色。

線上展示:https://codepen.io/oxxo/pen/JjqreKR

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (text-emphasis: filled;)</h3>
<h3 class="b">Hello OXXO!! (text-emphasis: open;)</h3>
<h3 class="c">Hello OXXO!! (text-emphasis: dot;)</h3>
<h3 class="d">Hello OXXO!! (text-emphasis: circle;)</h3>
<h3 class="e">Hello OXXO!! (text-emphasis: double-circle;)</h3>
<h3 class="f">Hello OXXO!! (text-emphasis: triangle;)</h3>
<h3 class="g">Hello OXXO!! (text-emphasis: sesame;)</h3>
<h3 class="h">Hello OXXO!! (text-emphasis: ">";)</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 10px;}
  .a {text-emphasis: filled red;}
  .b {text-emphasis: open orange;}
  .c {text-emphasis: dot green;}
  .d {text-emphasis: circle #0000ff;}
  .e {text-emphasis: double-circle rgb(0,0,150);}
  .f {text-emphasis: triangle #99009977;}
  .g {text-emphasis: sesame hsl(0, 0%, 0%, 0.5);}
  .h {text-emphasis: "哈" lch(50% 50 180 / 0.6);}
</style>

CSS 教學 - 設定文字樣式 - text-emphasis 文字重點強調

word-spacing 單字間距

word-spacing 樣式屬性可以設定「英文單字的間距」,使用 CSS 的「絕對」長度單位 ( 參考「CSS 長度與角度單位」) 或 em ( 乘以元素文字大小 ),如果設定為 normal 則為 0,此外需要注意的是,CSS 對於「單字」的定義是指「兩個空白之間的文字」,並非真正的單字,如果用空白包覆一串中文字,則這串中文字也會被視為「單字」,下方的範例將單字設定為不同的間距。

線上展示:https://codepen.io/oxxo/pen/NWVajgX

<!-- HTML 程式碼 -->
<h3 class="a">Hello Oxxo!! 單字 單字!</h3>
<h3 class="b">Hello Oxxo!! 單字 單字!</h3>
<h3 class="c">Hello Oxxo!! 單字 單字!</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 5px;}
  .a {word-spacing: 10px;}
  .b {word-spacing: 20px;}
  .c {word-spacing: 30px;}
</style>

CSS 教學 - 設定文字樣式 - word-spacing 單字間距

如果使用 em 作為單位,則會間距會乘以元素的字體大小,例如文字大小 20px,0.5em 等於 10px,最後所呈現的效果就會相同。

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (word-spacing: 0.5em;)</h3>
<h3 class="b">Hello OXXO!! (word-spacing: 10px;)</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 5px;}
  .a {
    font-size: 20px;
    word-spacing: 0.5em;  /* 20px x 0.5 = 10px */
  }
  .b {
    font-size: 20px;
    word-spacing: 10px;
  }
</style>

CSS 教學 - 設定文字樣式 - word-spacing 單字間距

letter-spacing 字元間距

letter-spacing 樣式屬性可以設定「字元的間距」,使用 CSS 的「絕對」長度單位 ( 參考「CSS 長度與角度單位」) 或 em ( 乘以元素文字大小 ),字元表示每一個字母或每一個中文字,下方的範例將每個字元設定為不同的間距。

線上展示:https://codepen.io/oxxo/pen/YzbrVrW

<!-- HTML 程式碼 -->
<h3 class="a">Hello Oxxo!! 大家好呀!</h3>
<h3 class="b">Hello Oxxo!! 大家好呀!</h3>
<h3 class="c">Hello Oxxo!! 大家好呀!</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 5px;}
  .a {letter-spacing: 2px;}
  .b {letter-spacing: 5px;}
  .c {letter-spacing: 10px;}
</style>

CSS 教學 - 設定文字樣式 - letter-spacing 字元間距

如果使用 em 作為單位,則會間距會乘以元素的字體大小,例如文字大小 20px,0.5em 等於 10px,最後所呈現的效果就會相同。

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (letter-spacing: 0.5em;)</h3>
<h3 class="b">Hello OXXO!! (letter-spacing: 10px;)</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {margin: 5px;}
  .a {
    font-size: 20px;
    letter-spacing: 0.5em;  /* 20px x 0.5 = 10px */
  }
  .b {
    font-size: 20px;
    letter-spacing: 10px;
  }
</style>

CSS 教學 - 設定文字樣式 - letter-spacing 單字間距

text-shadow 文字陰影

text-shadow 樣式屬性可以設定「文字陰影」,下方列出相關屬性值,除了顏色和模糊半徑,其他兩個屬性是必須屬性,使用時 x、y 和模糊半徑需要按照順序撰寫,屬性之間使用「空白」分隔

屬性數值 說明
color 陰影顏色,預設使用文字顏色,單色顏色單位。
offset-x x 軸偏移量,右正左負,單位 px 或 em ( 乘以文字大小 )。
offset-y y 軸偏移量,下正上負,單位 px 或 em ( 乘以文字大小 )。
blur-radius 模糊半徑 ( 模糊程度 ),單位 px 或 em ( 乘以文字大小 )。

下方的範例使用不同的 text-shadow 來呈現文字陰影。

線上展示:https://codepen.io/oxxo/pen/GRaMwmd

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!! (text-shadow: red 1em 5px 10px;)</h3>
<h3 class="b">Hello OXXO!! (text-shadow: green 0.3em 0.3em 0.2em;)</h3>
<h3 class="c">Hello OXXO!! (text-shadow: #00000066 2px 2px 2px;)</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {
    margin: 10px; 
    font-size: 20px;
  }
  .a {text-shadow: red 1em 5px 10px;}
  .b {text-shadow: green 0.3em 0.3em 0.2em;}
  .c {text-shadow: #00000066 2px 2px 2px;}
</style>

CSS 教學 - 設定文字樣式 - text-shadow 文字陰影

除了使用單層陰影,也可以使用逗號分隔「多個」陰影,創造出陰影「疊加」的效果,此外,如果搭配較粗的字型,將字型顏色設定為「半透明」,甚至可以做出有趣的「邊框」或「立體」效果,越左側的文字陰影所在圖層越高,會遮蔽右邊的文字陰影,使用時需要注意,只要某一項文字陰影格式寫錯,就會發生樣式錯誤而無法顯示文字陰影。

下方的範例會呈現多重文字陰影。

線上展示:https://codepen.io/oxxo/pen/GRaMwyG

<!-- HTML 程式碼 -->
<h3 class="a">Hello OXXO!!</h3>
<h3 class="b">Hello OXXO!!</h3>
<h3 class="c">Hello OXXO!!</h3>

<!-- CSS 程式碼 -->
<style>
  h3 {
    margin: 20px; 
    font-family: Impact;
    font-size: 40px;
  }
  .a {
    text-shadow: red 3px 3px 4px,
                orange 6px 6px 4px,
                yellow 9px 9px 4px,
                green 12px 12px 4px,
                blue 15px 15px 4px,
                purple 18px 18px 4px;
  }
  .b {
    color: #00000000;
    text-shadow: yellow 0 0 0,
                black 2px 0px 0,
                black 0px 2px 0,
                black -2px 0px 0,
                black 0px -2px 0;
  }
  .c {
    color: #ffcc00;
    text-shadow: #ee8800 1px 1px,
                #dd7700 2px 2px,
                #cc6600 3px 3px,
                #bb5500 4px 4px,
                #aa4400 5px 5px,
                #993300 6px 6px,
                #882200 7px 7px,
                #771100 8px 8px,
                #660000 9px 9px;
  }
</style>

CSS 教學 - 設定文字樣式 - text-shadow 多重文字陰影

小結

這篇教學介紹的文字樣式,不論是顏色、底線、陰影等,都是很常應用在網頁裡的文字效果,透過這些文字樣式的應用,一定能讓網頁增添許多不同的色彩和感覺。

意見回饋

如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

CSS 教學

基本介紹

認識 CSS 開始使用 CSS CSS 語法規則 CSS 命名原則

CSS 選擇器

認識 CSS 選擇器 優先順序 ( 權重 ) 樣式繼承與聯集 元素選擇器 ID 和 Class 選擇器 屬性選擇器 文件結構選擇器 虛擬類別選擇器 ( 結構 ) 虛擬類別選擇器 ( 類型 ) 虛擬類別選擇器 ( 輸入 ) 虛擬類別選擇器 ( 行為 ) 虛擬類別選擇器 ( 超連結 ) 虛擬類別選擇器 ( 邏輯 ) 虛擬類別選擇器 ( 其他 ) 虛擬元素選擇器 群組與組合選擇器

數值與單位

關鍵字與文字數值 長度與角度單位 顏色單位 位置名稱與時間單位

變數與內容函式

變數 數學計算 文字與清單計數 生成內容與引號

顏色與濾鏡

色彩模型 漸層色 影像濾鏡

文字樣式

使用通用字型 使用外部字型 @font-face 定義字型 文字尺寸 常用文字樣式 文字換行 文字空白與 Tab 大小 文字行高與縮排 文字水平與垂直對齊 文字書寫方向 特殊文字樣式

元素容器

容器顯示類型 ( display ) 元素 display 對照表 盒子模型 ( Box Model ) 寬度與高度 內邊距 ( padding ) 外邊界 ( margin ) 邊框 ( border ) 邊框圓角 影像邊框 輪廓 ( outline ) 可見性與透明度 內容溢出與裁切

背景與陰影

背景顏色 背景圖 ( 定位、尺寸 ) 背景圖 ( 固定、重複 ) 背景圖 ( 多重背景、混合 ) 背景縮寫 ( background ) 容器陰影 ( box-shadow )

清單與表格

清單樣式 清單計數器 定義計數規則 表格基本樣式 表格邊框樣式 表格內容寬度與對齊

基本排版與定位

元素排版方式 浮動 ( float ) 浮動形狀 定位 ( position )

Flexbox 彈性排版

Flexbox 彈性盒子 Flexbox 對齊方式 Flexbox 彈性伸縮

Grid 網格排版

Grid 網格容器與格線 Grid 網格空間與命名 Grid 網格流向與間距 Grid 排列網格項目 Grid 項目對齊與順序

轉場與動畫

轉場 ( transition ) 轉場觸發事件 動畫 ( animation ) 動畫觸發事件 多重動畫的權重與順序

變形、裁切與遮罩

裁切路徑 ( clip-path ) 影像遮罩 ( mask )