我最近为一个网站项目购买了几种字体,我发现使用其中一种字体并不有趣。它被称为Goodlife Sans,我遇到的问题是字体字符上方包含大量空白,即字体比字形本身占用更多的垂直空间。
很难设置垂直边距,因为我必须考虑字体占用的额外空间。设置line-height: 1em
有点帮助,但行高是从字体的最顶部开始测量的,这意味着如果文本设置在块元素中overlow: hidden
,则字母的底部会被裁剪掉。
下图显示了字体本身的高度,以及 line-height hack。为了清楚起见,块元素的背景被涂成红色。
http://i.stack.imgur.com/VAjKz.png
http://i.stack.imgur.com/ffL9l.png
编辑:这是代码
@import url("//hello.myfonts.net/count/2e978a");
@font-face {
font-family: "GoodlifeSans";
src: url("fonts/2E978A_0_0.eot");
src: url("fonts/2E978A_0_0.eot?#iefix") format("embedded-opentype"),
url("fonts/2E978A_0_0.woff2") format("woff2"),
url("fonts/2E978A_0_0.woff") format("woff"),
url("fonts/2E978A_0_0.ttf") format("truetype");
}
p {
font-family: "Goodlifesans";
font-size: 344%;
background: red;
text-align: center;
/*line-height: 1em;*/
margin: 0;
padding: 0;
}
body {
margin: 10px;
font-size: 80%;
}
<body>
<p>This is the test title text</p>
</body>
如果没有实际修改字体本身(我相信许可会阻止我这样做),是否有一个优雅的解决方案来解决这个问题?我真的不想每次使用这种字体时都必须包含一个负边距的父元素。