2014-10-16 71 views
0

以下示例几乎总结了它。
此代码:如何摆脱一些大写字母的水平偏移/填充

<h1 style="background-color:#F2D680"> 
    K 
</h1> 
<h1 style="background-color:#BAC9A9"> 
    T 
</h1> 

产地:

misaligned letter

正如你可以看到,信K移位(其左侧边缘不T的最左侧边缘对齐)
是有没有任何CSS技巧来克服这种错位?

+3

我认为这是你正在使用的字体 – musefan 2014-10-16 15:34:34

+1

看起来更像是你使用的字体比其他任何问题。你总是可以通过“margin-left”来抵消,但这需要总是事先知道第一个字母。 – 2014-10-16 15:34:46

+0

你可以尝试删除一个多余的填充,但如果这就是字形“块”是..那么也许'字母间距“是你在 – 2014-10-16 15:36:10

回答

0

我认为原因是字体。 在我看来,唯一的解决办法是(没有这个问题的一种)来改变字体的...

(或者用CSS来在每种情况下利润率播放)

+0

该特定的字体功能是否有名称,所以我可以搜索一种没有它的字体? – 2014-10-16 15:36:09

+0

等宽字体不应该有这个问题,我猜 – 2014-10-16 15:51:31

-1

尝试使用此

h1{ 
float: left; 
} 
+0

试过了。没有工作 – 2014-10-16 15:38:24

+0

这里http://jsfiddle.net/8y84Lr0j/ – 2014-10-16 15:39:43

+0

放大。差异仍然存在 – 2014-10-16 15:42:58

0

这是由字体的kerning引起的。它从字体到字体各不相同,字间距(每个字符之间的空间)将是多少。 您可以尝试使用文本缩进来使其对齐,只要你喜欢。它还允许使用负值

text-indent: -5px; 
+0

它不会消除各种字母之间的差异,只是将文本固定数量的像素向左移动。 – 2014-10-16 15:42:17

+0

我想他的意图是这样的事情:http://jsfiddle.net/8y84Lr0j/2/ – 2014-10-16 15:49:52

+0

这不是字距调整(这意味着调整相邻字母之间的间距,通常不适用于大多数浏览器),但字形设计。 – 2014-10-16 17:56:08

2

这是由字形的设计引起的。许多字形在可见符号的左侧或右侧都有一些空的空间。这个间距不在CSS的范围内。您不能使用CSS左对齐字形中的可见符号,因为CSS无法“进入字形内”。

但是,您可以用不同的方式调整CSS的间距,可能会撤消字形中空间的效果。这需要在检查使用的字体中的字形的基础上完成,并且当你的字体建议由于某种原因(例如用户的系统没有获得字体)而不被遵守时,可能会造成奇怪的效果。

所以这将是不可靠的调整,但有时它可能就足够了。例如:

h1 { font: 96pt Arial }
<h1 style="background-color:#F2D680; text-indent: -0.04em"> 
 
    K 
 
</h1> 
 
<h1 style="background-color:#BAC9A9"> 
 
    T 
 
</h1>

0

这是字体的性质。每个字形在每个形状的前面和后面都有白色。否则所有形状都会粘在一起。认识到白色与字形的形状与实际形状本身同样重要很重要。甚至有消极偏移的字形和大量的时间和精力去设计这些偏移量。

不全白的原因是光学补偿。是的,你读得很好。字体设计师添加了白色,以使字形看起来均匀分布。为了补偿从K的茎到黑色T下的缺口的黑色,所以将两个字形放置在大尺寸的顶部是一个特殊的用例。通常事情没有问题,但是如果它困扰了你或者你的客户,只需要纠正你对(客户)喜好的立场并加以处理即可。

答:margin-left: -4px;

0

只要编辑使用FontCreator的字体。我认为,这是最简单的方法。 ;) 另外,您可以使用:首字母更改大写字母的样式。