html - 为什么浏览器为重音字符保留空间,即使没有重音字符?

标签 html css browser

引用:
我的问题是关于社区成员在这个问题中给出的解释How to remove space at top of <p> tag / align contained text to top of container? .

问题

我想知道的是,假设我的 <p>或任何其他标记不包含任何此类字符,例如 ÄĈ那为什么浏览器会为它保留一个空间(它是否保留一个空间......??因为我不知道,我只是在引用的问题中进行解释......

浏览器呈现标记和 CSS 中给出的内容.... if there is no accented character in the code, why is a space there for it then??

最佳答案

这完全取决于字体。请参阅相关示例的屏幕截图:

Lorem

突出显示的“Lorem”的行高与包含元素(浅蓝色)完全齐平。字母不会一直延伸到最大可用高度,就像它不会一直延伸到基线以下一样。

L

字体的创建者可以在字母上方或下方留出空间,这通常是为了保持字体的整体视觉平衡,其中包括可能更高的字母。参见示例:

如果“A”一直延伸到最大可用高度,则它旁边的“Ä”要么比高高,要么需要被压扁。因为这看起来很糟糕,所以常规的“A”没有它可能的那么高,所以两个“A”在视觉上可以是一样的。

这与您是否实际使用重音字母无关,字形不会根据内容动态重新缩放。它们的高度始终相同,由字体创建者设置。如果你有这段文字会怎样:

AAAAAAAAAAAAAAAAAAA ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ AAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ AAAAAAAAAAAAAAAAAAA

如果字母大小会根据您是否“需要额外空间”而动态变化,这将导致外观极不均匀。这就是为什么它没有被完成。

关于html - 为什么浏览器为重音字符保留空间,即使没有重音字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244305/

相关文章:

javascript - Google map 缩放和平移按钮未显示!这肯定不是 css 问题

javascript - CSSOM 和 DOM 构造是在并行线程上进行的吗?

html - IE7 页脚重叠

javascript - 每次单击按钮时使表单中的数字上升

html - 使用 HTML5 和 CSS3 像 Flash 一样切换 'frames' 这么多秒

html - 在android中解码HTML实体

javascript - 不使用 spritesheet 的 HTML5 动画

html - CSS 页脚宽度不是全宽

javascript - 为什么我的幻灯片图像在淡入之前短暂出现?

javascript - 捕获发送到浏览器窗口或从浏览器窗口发送的数据