使用溢出时的文本裁剪:隐藏

pin*_*ngu 11 css overflow

我有这个简单的HTML和CSS http://jsfiddle.net/JVfVv/1/

问题是文本正在mac下的safari/chrome/firefox下被裁剪.删除溢出:隐藏可以解决问题,但是由于其他原因,此行是必需的.删除行高:1; 似乎解决了这个问题,但是我从我的重置样式表中得到了这个,并且我没有解释为什么它会导致裁剪.

有人可以解释为什么会这样,以及如何解决它?谢谢

Che*_*vel 19

为了回答为什么会发生这种情况的问题,我认为关键是CSS 2.1规范的字体部分中的这个特定短语(强调我的):

字体大小对应于em square,这是排版中使用的概念.请注意,某些字形可能会在其正方形之外出血.

line-height: 1声明建立段落的高度相同的高度的font-size(因为段只有一个线).一些角色被切断的事实意味着他们的字形在他们的em方格之外流血(我不知道如何明确证明这是真的;我只是根据证据推测).

至于解决方案,最直接的解决方案是使用更大的line-height设置,例如1.1或1.2.

  • line-height的默认值是"normal",大约是1.2,具体取决于字体https://developer.mozilla.org/en/CSS/line-height (4认同)
  • 使用`line-height:normal`解决了我的问题! (4认同)
  • 这个解决方案是有道理的,但我想知道为什么“溢出-x:隐藏;溢出-y:可见;” 仍然切断字形? (2认同)