增加unicode符号的文本大小占用太多边距

时间:2014-05-10 23:24:52

标签: html css

我想使用unicode符号,我想做的非常大。但是当我这样做时,它需要很多边距和填充,我无法控制。即使我将边距和填充设置为零也无法解决问题。所以我该怎么做?除了微小的unicode符号外,普通文本的行为是正常的。

enter image description here

这是一个大小为180pt的符号,我突出显示它,以便您可以看到它周围的空间量!

编辑:

我尝试使用普通字符'a',但它使用相同的边距/填充!

2 个答案:

答案 0 :(得分:2)

这种间距嵌入在字体字形本身中,除了行高属性外,CSS无法真正克服。

如果你想要一个矢量化的字形,我会用一个SVG元素。

答案 1 :(得分:1)

字体设计师将空白空间既不是边距也不是填充,而是字形设计的一部分。字形通常被设计为使得连续的字形不会彼此接触,因此即使文本设置为实心(在CSS术语中,当line-height为1时),字形通常也不会触及其他行上的字形。

这意味着如果你想要一个字形出现在一个包围的最小矩形中,这似乎是这里的目标,你必须与印刷设计作斗争。没有简单的方法可以做到这一点。对于特定字符和特定字体,假设将始终使用字体(这通常是Web上不切实际的假设),您可以找到(通过实验)替换字符所需的合适值。例如:

<style>
.tight {
  font-size: 180pt;
  font-family: Lucida Sans Unicode;
  background: #aaf;
  display: inline-block;
  position: relative;
  width: 0.537em;
  height: 0.63em;

}
.tight span {
  position: absolute;
  left: -0.059em;
  top: -0.385em;
}
</style>           
<span class=tight><span>&#x2135;</span></span>

结果(当Lucida Sans Unicode可用时):

enter image description here

这里的想法是将字形放在span元素内,该元素位于外部span元素内,以便外部元素具有所需的背景颜色,并且其宽度和高度设置为与实验获得的字形可见部分的尺寸。内部span元素使用“绝对”定位从其自然位置移位,这实际上意味着将其相对于外部元素定位。