13

无论如何使用CSS使字母更紧密?我知道我们可以调整行高,但我不知道是否有任何东西可以将字体挤得更近。

4

4 回答 4

37

你正在寻找letter-spacing

#id { letter-spacing: -1px; }

参考

于 2012-12-09T11:30:25.873 回答
8

答案取决于您所说的“字体”、“浓缩”和“挤压”是什么意思。

font-stretch您可以使用该属性为字体(来自字体系列)选择更简洁的字体(特定字体) 。但它不会挤压任何东西;它只是选择了一种设计得更简洁的字体。人们计算机中常用的字体没有这种字体;一些可下载的字体(网络字体)可以。并且大多数情况下,您可以通过仅使用特定字体名称来以更跨浏览器的方式使用它们,就好像它是字体系列名称一样,例如font-family: Arial Narrow. (注意:Arial Narrow 仅在某些计算机上可用,远低于基本的 Arial。)

如果使用的字体具有 OpenType 格式的字距调整信息,您可以使用某些 CSS 技术来建议字距调整。大多数网页上常用的字体都没有这样的信息。(例外:Palatino Linotype、Times New Roman 和 Microsoft C 字体,如 Calibri 和 Cambria。)合适的声明:

body { 
text-rendering: optimizeLegibility;
-webkit-font-feature-settings: "kern";
-moz-font-feature-settings: "kern";
font-feature-settings: "kern";
}

如果有的话,这些设置的影响往往很小。这并不意味着任何粗野意义上的“挤压”。相反,它以微妙的方式修改渲染以更好地排版;文本宽度可能会稍微变小,但这只是一个巧合的副产品。

如果你使用负数letter-spacing,那意味着暴力挤压。它有时可能有意义,例如对于大尺寸的无衬线文本,具有较小的值,如letter-spacing: 0.03em. 即使这样,也应该评估结果,尤其要注意压缩时可能看起来很奇怪的字母组合(例如,“rl”或“te”)。大多数情况下,如果您认为字母间距太大,或者文本太宽,请考虑使用另一种字体,而不是破坏字体的正常显示。

于 2012-12-09T14:45:55.160 回答
7

您可以指定所有字母之间的距离

letter-spacing: 0.1em;

但是除非将每个字母包装在一个跨度中,否则您不能对单个字母进行紧排

于 2012-12-09T11:30:53.497 回答
4

受到推崇的

如果字体变体包含可以使用的窄版本 font-stretch: condensed;

不建议

如果没有,那么您最终可能会使用 scale() transform: scale(.8,1);

于 2018-03-14T21:54:59.033 回答