text-spacing-trim

可用性有限

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

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

text-spacing-trim CSS 屬性控制中文/日文/韓文 (CJK) 標點符號字元之間以及文字行開頭或結尾的內部間距(字偶間距)。

語法

css
/* Keyword values */
text-spacing-trim: normal;
text-spacing-trim: space-all;
text-spacing-trim: space-first;
text-spacing-trim: trim-start;

/* Global values */
text-spacing-trim: inherit;
text-spacing-trim: initial;
text-spacing-trim: revert;
text-spacing-trim: revert-layer;
text-spacing-trim: unset;

<spacing-trim>

定義不同的間距修剪選項。可用值如下:

normal

將 CJK 全形開標點字元設定為在每行開頭處為全形。將 CJK 全形閉標點字元設定為在每行結尾處為全形,如果它們在對齊之前不適合該行,則設定為半形。摺疊標點字元之間的間距。

space-all

所有 CJK 全形標點字元均設定為全形。

space-first

行為與 normal 相同,但 CJK 全形開標點字元在文字塊容器的第一行開頭以及換行符等顯式換行後的每行開頭處設定為全形。

trim-start

行為與 normal 相同,但 CJK 全形開標點字元在每行開頭處設定為半形。

注意: CSS Text 模組還定義了 trim-bothtrim-allauto 值。然而,這些目前尚未在任何瀏覽器中實現。

描述

text-spacing-trim 屬性對 CJK 標點字元應用間距/字偶間距,以產生由 日語文字佈局要求 (JLREQ) 和 中文文字佈局要求 (CLREQ) 定義的視覺上令人愉悅的排版。

許多 CJK 標點字元包含字形內部間距。例如,CJK 句號和 CJK 閉括號通常在其右側具有字形內部間距,以使其具有與其他表意字元一致的恆定前進度量。然而,當它們連續出現時,字形內部間距可能會變得過大。

text-spacing-trim 可用於調整相鄰字元之間(字偶間距)以及文字行開頭或結尾處這種過大的間距。一般來說:

  • 如果全形標點字元設定為全形,則它在兩側都有內部間距,並且與表意字元的寬度相同。
  • 如果全形標點字元設定為半形,則它僅在一側設定內部間距,而另一側與開頭(開標點字元)或結尾(閉標點字元)齊平。半形字元通常是表意字元寬度的一半。

注意: 為避免過度字偶間距的風險,字型必須具有 OpenType 交替半寬 (halt) 功能、上下文半寬間距 (chws) 功能,或兩者兼有。如果字型不具備任一功能,text-spacing-trim 將被停用。

全形標點符號摺疊

當成對的標點符號彼此相鄰時,它們之間的空格將根據以下規則摺疊:

  • 如果前一個字元是全形開標點字元、全形中點、表意空格 (U+3000)、等效或更大字號的全形閉標點字元,或屬於 Unicode 通用類別“開標點”(Ps) 的字元,則將全形開標點字元設定為半形。否則,將其設定為全形。
  • 如果下一個字元是全形閉標點字元、全形中點、表意空格 (U+3000)、字號更大的全形開標點字元,或屬於 Unicode 通用類別“閉標點”(Pe) 的字元,則將全形閉標點字元設定為半形。否則,將其設定為全形。

正式定義

初始值normal
應用於文字元素
繼承性
計算值同指定值
動畫型別離散

正式語法

text-spacing-trim = 
<spacing-trim> |
auto

<spacing-trim> =
space-all |
normal |
space-first |
trim-start |
trim-both |
trim-all

示例

text-spacing-trim 值比較

此示例比較了四種不同 text-spacing-trim 屬性的效果,將它們應用於四個相同的段落,以便您可以看到每個段落之間的視覺差異。

HTML

html
<main>
  <div id="normal">
    <h2>normal</h2>
    <p>
      (東)、【「(東)」】。<br />
      「東」「東」「東」東東東「東」。
    </p>
  </div>
  <div id="space-all">
    <h2>space-all</h2>
    <p>
      (東)、【「(東)」】。<br />
      「東」「東」「東」東東東「東」。
    </p>
  </div>
  <div id="space-first">
    <h2>space-first</h2>
    <p>
      (東)、【「(東)」】。<br />
      「東」「東」「東」東東東「東」。
    </p>
  </div>
  <div id="trim-start">
    <h2>trim-start</h2>
    <p>
      (東)、【「(東)」】。<br />
      「東」「東」「東」東東東「東」。
    </p>
  </div>
</main>

CSS

css
main {
  font-family:
    "Yu Gothic", "YuGothic", "Noto Sans JP", "Hiragino Sans",
    "Hiragino Kaku Gothic ProN", sans-serif;
  display: grid;
  gap: 0.5em;
  grid-template-columns: 1fr 1fr;
  width: 70%;
  margin: 0 auto;
}
h2 {
  font-size: 80%;
  margin: 0;
}
p {
  font-size: 20px;
  border: 1px solid blue;
  margin: 0;
}
#normal {
  text-spacing-trim: normal;
  grid-column: 1;
  grid-row: 1;
}
#space-all {
  text-spacing-trim: space-all;
  grid-column: 2;
  grid-row: 1;
}
#space-first {
  text-spacing-trim: space-first;
  grid-column: 1;
  grid-row: 2;
}
#trim-start {
  text-spacing-trim: trim-start;
  grid-column: 2;
  grid-row: 2;
}

結果

規範

規範
CSS 文字模組第 4 級
# text-spacing-trim-property

瀏覽器相容性

另見