與文字間距有關的CSS屬性
本文說明與文字間距相關的 CSS 屬性。
您可以學習如何使用以及撰寫像是 line-height 和 word-spacing 等屬性。
YouTube Video
建立用於預覽的 HTML
css-text-space.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-text-space.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>Text-Related CSS Properties Example</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Typography (Text-Related)</h2>
20 </header>
21 <article>
22 <h3>line-height</h3>
23 <section>
24 <header><h4>line-height: normal</h4></header>
25 <section class="sample-view">
26 <p class="line-height-normal">This is a paragraph with normal line height.</p>
27 </section>
28 <header><h4>line-height: 1.5</h4></header>
29 <section class="sample-view">
30 <p class="line-height-150">This is a paragraph with 1.5 line height.</p>
31 </section>
32 <header><h4>line-height: 200%</h4></header>
33 <section class="sample-view">
34 <p class="line-height-200">This is a paragraph with 200% line height.</p>
35 </section>
36 </section>
37 </article>
38 <article>
39 <h3>letter-spacing</h3>
40 <section>
41 <header><h4>letter-spacing: normal</h4></header>
42 <section class="sample-view">
43 <p class="letter-spacing-normal">This is text with normal letter spacing.</p>
44 </section>
45 <header><h4>letter-spacing: 4px</h4></header>
46 <section class="sample-view">
47 <p class="letter-spacing-wide">This is text with wide letter spacing.</p>
48 </section>
49 <header><h4>letter-spacing: -1px</h4></header>
50 <section class="sample-view">
51 <p class="letter-spacing-narrow">This is text with narrow letter spacing.</p>
52 </section>
53 </section>
54 </article>
55 <article>
56 <h3>word-spacing</h3>
57 <section>
58 <header><h4>word-spacing: normal</h4></header>
59 <section class="sample-view">
60 <p class="word-spacing-normal">This is text with normal word spacing.</p>
61 </section>
62 <header><h4>word-spacing: 4px</h4></header>
63 <section class="sample-view">
64 <p class="word-spacing-wide">This is text with wide word spacing.</p>
65 </section>
66 <header><h4>word-spacing: -1px</h4></header>
67 <section class="sample-view">
68 <p class="word-spacing-narrow">This is text with narrow word spacing.</p>
69 </section>
70 <header><h4>word-spacing: -0.1em; letter-spacing: -0.05em;</h4></header>
71 <section class="sample-view">
72 <p class="word-and-letter-spacing">This is text with word and letter spacing.</p>
73 </section>
74 </section>
75 </article>
76 <article>
77 <h3>word-break</h3>
78 <section>
79 <header><h4>word-break: normal</h4></header>
80 <section class="sample-view">
81 <p class="box word-break-normal">Thisisaverylongwordthatwillnotbreakwithword-breaknormal.</p>
82 </section>
83 <header><h4>word-break: break-all</h4></header>
84 <section class="sample-view">
85 <p class="box word-break-break-all">Thisisaverylongwordthatwillnotbreakwithword-breaknormal.</p>
86 </section>
87 <header><h4>word-break: keep-all</h4></header>
88 <section class="sample-view">
89 <p class="box word-break-keep-all">これは日本語の文章です。この設定では自然に改行されます。</p>
90 </section>
91 </section>
92 </article>
93 <article>
94 <h3>hyphens</h3>
95 <section>
96 <header><h4>hyphens: none</h4></header>
97 <section class="sample-view">
98 <p class="no-hyphens">
99 Supercalifragilisticexpialidocious is a very long word.
100 </p>
101 </section>
102 <header><h4>HTML</h4></header>
103<pre>
104<p class="no-hyphens">
105 Supercalifragilisticexpialidocious is a very long word.
106</p>
107</pre>
108 <header><h4>hyphens: manual</h4></header>
109 <section class="sample-view">
110 <p class="manual-hyphens">
111 Super­califragilistic­expialidocious is a very long word.
112 </p>
113 </section>
114 <header><h4>HTML</h4></header>
115<pre>
116<p class="manual-hyphens">
117 Super&shy;califragilistic&shy;expialidocious is a very long word.
118</p>
119</pre>
120 <header><h4>hyphens: auto</h4></header>
121 <section class="sample-view">
122 <p class="auto-hyphens">
123 Supercalifragilisticexpialidocious is a very long word.
124 </p>
125 </section>
126 <header><h4>HTML</h4></header>
127<pre>
128<p class="auto-hyphens">
129 Supercalifragilisticexpialidocious is a very long word.
130</p>
131</pre>
132 </section>
133 </article>
134 </main>
135</body>
136</html>版式設計(與文字邊距相關)
line-height 屬性
1/* Line height examples */
2.line-height-normal {
3 line-height: normal; /* Default line height */
4}
5
6.line-height-150 {
7 line-height: 1.5; /* 1.5 times the font size */
8}
9
10.line-height-200 {
11 line-height: 200%; /* 200% of the font size */
12}line-height 是一個用於設定行間距(行高)的 CSS 屬性。line-height 指定行與行之間的垂直間距,用於提升可讀性或作為設計的一部分來調整間距。
line-height 的主要用途
無單位數字
1p {
2 line-height: 1.5; /* 1.5 times the font size */
3}- 指定相對於字型大小的高度。例如,設定
1.5會將行高設定為字型大小的 1.5 倍。此方法對於響應式設計非常實用。
百分比
1p {
2 line-height: 150%;
3}- 將行高設定為字型大小的百分比。例如,設定
150%會將行高設定為字型大小的 150%。
固定值(px、em、rem 等)
1p {
2 line-height: 20px;
3}- 以絕對單位指定行高。例如,您可以設定具體值如
20px,但在響應式設計中可能缺乏彈性。
normal
1p {
2 line-height: normal;
3}- 指定
normal會套用瀏覽器的預設行間距設定。通常約為字型大小的 1.2 至 1.4 倍。
使用line-height的例子
可讀段落
- 建議將
line-height設定為大約1.5至1.6以提高可讀性。如果行間距太窄,文字看起來會擁擠難以閱讀;如果太寬,文字會顯得支離破碎。
標題設計
- 對於標題和標題文字,字體較大時可以減少行間距。通常採用像
1.1或1.2的設定。
總結
line-height是改善文字可讀性和設計的重要屬性。- 使用相對值(數字或百分比)使其更容易適應響應式設計。
- 對於具有大字體的標題和小字體的段落,為每個設定適當的行間距至關重要。
運用此屬性可以使文字外觀更具可讀性並提升其設計質量。
letter-spacing 屬性
1/* Letter spacing examples */
2.letter-spacing-normal {
3 letter-spacing: normal; /* Default letter spacing */
4}
5
6.letter-spacing-wide {
7 letter-spacing: 4px; /* Increase letter spacing */
8}
9
10.letter-spacing-narrow {
11 letter-spacing: -1px; /* Decrease letter spacing */
12}letter-spacing 是一個用於調整字母之間間距(字間距)的 CSS 屬性。此屬性可用於美化文字設計、提升可讀性以及實現特定風格。
在本例中,設定內容如下。
normal:預設的字間距。這是一個由瀏覽器和字體決定的標準值。4px:字母間距加寬的例子。在每個字元之間增加4像素的間距。-1px:字母間距縮小的例子。在每個字元之間減少1像素的間距。
如何使用letter-spacing
帶單位的值
1p.increased {
2 letter-spacing: 2px; /* Increase letter spacing by 2px */
3}
4p.decreased {
5 letter-spacing: -1em; /* Decrease letter spacing by 1em */
6}- 設置正值將增加字母間距。
- 設置負值將減少字母間距。
- 單位通常為
px(像素)或em。
默認:normal
1p {
2 letter-spacing: normal; /* Default letter spacing */
3}- 使用預設的字距。通常,應用由字體定義的標準字距。
letter-spacing用法範例
- 提高可讀性:對於字號較小或過於緊湊的字體,可以通過增加
letter-spacing來提高可讀性。 - 設計調整:您可以調整字距來視覺上突出顯示設計元素,如標題或徽標。
- 字元之間的調整:您可以在字元級別調整間距,而不是在單詞之間。
letter-spacing調整字元級別的間距,但可以使用word-spacing來擴大單詞之間的間距。 - 設計平衡:如果增加字距過多,整體文本可能會顯得過於拉長。相反,如果減少過多,文本將變得擁擠且難以閱讀,因此保持適當的平衡很重要。
總結
letter-spacing是調整字母間距的屬性,影響設計和可讀性。- 可以使用正值增加間距,使用負值減少間距。
- 對於標題和特定設計元素非常有效,但須注意不要影響可讀性。
使用此屬性,您可以調整文本的外觀並實現美觀的設計。
word-spacing屬性
1/* Word spacing examples */
2.word-spacing-normal {
3 word-spacing: normal; /* Default word spacing */
4}
5
6.word-spacing-wide {
7 word-spacing: 4px; /* Increase word spacing */
8}
9
10.word-spacing-narrow {
11 word-spacing: -1px; /* Decrease word spacing */
12}
13
14.word-and-letter-spacing {
15 word-spacing: -0.1em;
16 letter-spacing: -0.05em;
17}word-spacing 是一個用來控制文字中單詞間距的CSS屬性。合理使用此屬性可以改善視覺平衡和文字的可讀性。word-spacing 在以排版為重點的設計和響應式設計情境中特別有用。
在本例中,設定內容如下。
normal:應用預設的單詞間距。這是瀏覽器的初始值。4px:增加單詞間距的範例。在每個單詞之間添加4像素的間距。-1px:減少單詞間距的範例。將每個單詞之間的間距減少1像素。word-and-letter-spacing:減少單詞和字母間距的範例。相比正常情況,將單詞間距減少0.1em,字母間距減少0.05em。
使用正值和負值
對 word-spacing 設置正值會擴大單詞間距。另一方面,使用負值會縮小單詞之間的間距。負值可以用於強調視覺效果,或為特定設計目的緊縮字母間距。
與letter-spacing的區別
word-spacing 是調整單詞間距的屬性,而 letter-spacing 是調整字母間距的屬性。通過結合這些屬性,可以更精確地控制整個文本的排版。
注意事項與最佳實踐
- 過度間距調整:過度使用
word-spacing可能會降低可讀性。特別是過大或過小的間距會對用戶造成壓力,因此進行適度調整很重要。 - 響應式設計:使用
em或rem指定相對值對於響應式設計非常有效,因為它能確保在不同屏幕尺寸上的正確顯示。 - 標題樣式調整:通過加寬標題文本中單詞之間的間距,可以增加視覺強調。這可以幫助您明確內容層次結構,實現精緻的設計。
word-break 屬性
1p.box {
2 width: 200px;
3 border: 1px solid #000;
4 margin-bottom: 20px;
5}
6
7.word-break-normal {
8 word-break: normal;
9}
10
11.word-break-break-all {
12 word-break: break-all;
13}
14
15.word-break-keep-all {
16 word-break: keep-all;
17}word-break 是一個 CSS 屬性,用於控制文本在超過容器寬度時的換行方式。通常瀏覽器會在單詞邊界進行斷行,但特定的設置可以在存在長單詞或 URL 時改善外觀和可讀性。
您可以為 word-break 屬性指定以下值。
-
normalnormal是預設值。當單詞超過容器寬度時,它會在單詞邊界斷行。此設置通常用於英語等語言,斷行不會出現在單詞中間。 -
break-allbreak-all是一個允許在任何字符之後插入斷行的設置,以滿足需求。當包含長單詞或 URL 時,會在字符層級進行斷行以防止佈局中斷。 -
keep-allkeep-all是特別為亞洲語言(如日文、中文、韓文等)使用的設置。在此設置下,整個單詞被保留,且不會在單詞中間斷行。然而,對於以空格分隔的語言(如英語),會應用正常的單詞邊界斷行。
此範例展示了三種不同的 word-break 設置。使用 word-break-normal 時,整個單詞被保留,如果超過容器寬度,會在單詞邊界斷行。使用 word-break-break-all 時,即使在單詞中間也會斷行。word-break-keep-all 允許亞洲語言(如日文)自然斷行,並對英語進行單詞邊界斷行。
word-break 應用場景
行動設備與響應式設計
1@media (max-width: 600px) {
2 p {
3 word-break: break-all;
4 }
5}在行動裝置上,螢幕寬度有限,這可能導致包含 URL 或長單詞的文本超出螢幕寬度。在這種情況下,應用 word-break: break-all; 可以在字符層級進行斷行以適應螢幕寬度,改善可讀性。
hyphens 屬性
1p.no-hyphens {
2 width: 200px;
3 hyphens: none;
4}
5
6p.manual-hyphens {
7 width: 200px;
8 hyphens: manual;
9}
10
11p.auto-hyphens {
12 width: 200px;
13 hyphens: auto;
14}-
hyphens屬性用於 CSS 中,用於指定在分行文字時如何處理單詞的連字(用連字符拆分單詞)。適當設置此屬性可以改善文字的可讀性和外觀。當需要將長單詞換行時,連字特別有用。 -
由於連字符規則因語言而異,此屬性取決於文本的語言環境。
語法
1element {
2 hyphens: none | manual | auto;
3}hyphens 屬性可以設置為以下值:。
none:不應用連字。單詞通常只會在單詞的末尾換行。manual:連字需要手動設置。在這種情況下,您需要在 HTML 中手動指定連字符的位置。例如,您可以使用­(軟連字符)。auto:瀏覽器會自動在適當的位置應用連字符。在這種情況下,必須正確指定文檔的語言(lang屬性)。
注意事項
- 語言設置的重要性:當使用
hyphens: auto;時,正確的連字需要 HTML 文檔的lang屬性被正確設置。 - 字體依賴性:某些字體可能不適合使用連字。
- 連字字典的使用:連字規則取決於瀏覽器使用的字典。因此,對於某些語言,它可能無法按預期工作。
總結
通過適當利用 hyphens 屬性,您可以顯著改善文本佈局。特別是在多語言網站和適合移動設備的設計中,適當使用 auto 和 manual 可以提升用戶體驗。
您可以在我們的 YouTube 頻道上使用 Visual Studio Code 來跟隨上述文章一起學習。 請也查看我們的 YouTube 頻道。