text-spacing-trim
text-spacing-trim
CSS 属性控制在相邻字符之间(字距调整)以及文本行开头或结尾处设置的中文/日文/韩文 (CJK) 标点字符的内部间距。
语法
/* 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 文本 模块还定义了
trim-both,
trim-all,
和auto
值。但是,这些值目前在任何浏览器中都未实现。
描述
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)的字符,则将全角闭式标点字符设置为半角。否则,将其设置为全角。
正式定义
正式语法
示例
text-spacing-trim
值比较
此示例比较了四个不同的 text-spacing-trim
属性的效果,并将它们应用于四个相同的段落,以便您可以看到每个属性之间的视觉差异。
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
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 属性 |
浏览器兼容性
BCD 表格仅在浏览器中加载