hyphenate-limit-chars

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

hyphenate-limit-chars CSS 屬性指定了允許單詞斷字處理的最小單詞長度,以及連字元前後最少字元數。

此屬性可以讓你精細控制文字中的斷字處理。這種控制可以讓你避免尷尬的斷字,併為不同的語言設定適當的斷字,從而實現更好的排版效果。

語法

css
/* Numeric values */
hyphenate-limit-chars: 10 4 4;
hyphenate-limit-chars: 10 4;
hyphenate-limit-chars: 10;

/* Keyword values */
hyphenate-limit-chars: auto auto auto;
hyphenate-limit-chars: auto auto;
hyphenate-limit-chars: auto;

/* Mix of numeric and keyword values */
hyphenate-limit-chars: 10 auto 4;
hyphenate-limit-chars: 10 auto;
hyphenate-limit-chars: auto 3;

/* Global values */
hyphenate-limit-chars: inherit;
hyphenate-limit-chars: initial;
hyphenate-limit-chars: revert;
hyphenate-limit-chars: revert-layer;
hyphenate-limit-chars: unset;

hyphenate-limit-chars 屬性接受 1 到 3 個值,這些值可以是數字或 auto,如下所述。

<number> <number> <number>

第一個值是單詞可以斷字的最小單詞長度。第二個值是連字元前的最小字元數。第三個值是連字元後的最小字元數。

<number> <number>

第一個值是單詞可以斷字的最小單詞長度。第二個值是連字元前的最小字元數。連字元後的最小字元數將設定為與第二個值相同。

<number>

該值是單詞可以斷字的最小單詞長度。連字元前後的最小字元數將設定為 auto

如果任何值設定為 auto,使用者代理將為當前佈局選擇一個適當的值。除非使用者代理能夠計算出更好的值,否則將使用以下預設值:

  • 允許斷字的最小單詞長度:5
  • 連字元前的最小字元數:2
  • 連字元後的最小字元數:2

請注意,如果單詞太短而無法滿足給定約束,則不會進行斷字處理。例如,給定一個像 hyphenate-limit-chars: auto 3 4 這樣的值,少於 7 個字元的單詞永遠不會進行斷字處理,因為不可能在連字元前有 3 個字元,在連字元後有 4 個字元。

正式定義

初始值auto
應用於所有元素
繼承性
計算值同指定值
動畫型別按計算值型別

正式語法

hyphenate-limit-chars = 
[ auto | <integer> ]{1,3}

示例

設定斷字限制

在此示例中,我們有四個包含相同文字的盒子。為了進行比較,第一個盒子顯示了瀏覽器應用的預設斷字。接下來的三個盒子演示了使用不同的 hyphenate-limit-chars 值限制瀏覽器預設行為的結果。

HTML

html
<div class="container">
  <p id="ex1">juxtaposition and acknowledgement</p>
  <p id="ex2">juxtaposition and acknowledgement</p>
  <p id="ex3">juxtaposition and acknowledgement</p>
  <p id="ex4">juxtaposition and acknowledgement</p>
</div>

CSS

css
.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

p {
  margin: 1rem;
  width: 120px;
  border: 2px dashed #999999;
  font-size: 1.5rem;
  hyphens: auto;
}

#ex2 {
  hyphenate-limit-chars: 14;
}

#ex3 {
  hyphenate-limit-chars: 5 9 2;
}

#ex4 {
  hyphenate-limit-chars: 5 2 7;
}

結果

在第一個盒子中,我們沒有設定 hyphenate-limit-chars,允許瀏覽器應用其預設演算法。預設情況下,瀏覽器使用值 5 2 2,除非它能找到更好的值。

在第二個盒子中,我們透過設定 hyphenate-limit-chars: 14 來阻止瀏覽器對少於 14 個字元的單詞進行斷字處理。結果,“juxtaposition”在第二個盒子中沒有被斷字,因為它只有 13 個字元長。

在第三個盒子中,我們透過設定 hyphenate-limit-chars: 5 9 2 來限制瀏覽器在連字元前至少包含 9 個字元。效果是“acknowledgement”現在斷字為“acknowledge-ment”,而不是第一個盒子中顯示的預設版本“acknowl-edgement”。

請注意,瀏覽器不必在連字元前精確地包含 9 個字元:只要滿足 hyphenate-limit-chars 中給出的約束,瀏覽器就可以在它認為最好的位置斷開單詞。因此,在這種情況下,例如,它選擇“acknowledge-ment”,而不是可讀性較差的“acknowled-gement”。

在第四個盒子中,我們透過設定 hyphenate-limit-chars: 5 2 7 使瀏覽器在連字元後至少包含 7 個字元。效果是“juxtaposition”斷字為“juxta-position”,而不是預設的“juxtaposi-tion”。

規範

規範
CSS 文字模組第 4 級
# propdef-hyphenate-limit-chars

瀏覽器相容性

另見