webkit 与 firefox 的文本高度

发布于 2024-12-11 19:19:52 字数 353 浏览 0 评论 0原文

我有相当大的文本(字体大小 28),我试图在固定高度的容器中垂直对齐。

我是用眼睛来做这件事,只是设置一个边距顶部,以便它到达正确的位置。然而,在 Firefox 中,我需要 20 像素的上边距,在 Safari 中,我需要 15 像素(否则太低了)。我发现这种差异是因为 Safari 中的文本元素比 Firefox 中的要高,并且顶部包含少量空白,而这些空白在 Firefox 中不会显示(在 Firefox 中,文本元素的顶部恰好是文本开始的时间) )。

我已经尝试了所有带有行高的显示组合,也许还为文本添加了宽度/高度等。什么都不起作用。

我可以做些什么来使这一点保持一致?我不想使用 JS,但这似乎是唯一的选择......


I have quite large text (font size 28) I'm trying to align vertically in a fixed-height container.

I'm doing this by eye and just setting a margin-top so that it gets to the right spot. However, when in Firefox, I need a margin-top of 20px, in Safari I need like 15px (else it's too far down). I saw that the discrepancy was because in Safari the text element is taller than in Firefox and includes a slight amount of whitespace on top that doesn't show up in Firefox (in Firefox, the top of the text element is exactly when the text starts).

I've tried all kinda of display combinations with line-heights and perhaps adding a width/height for the text and whatnot. Nothing works.

What can I do to make this consistent? I'd hate to use JS but it seems like the only option...


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何其悲哀 2024-12-18 19:19:53

对于跨浏览器 CSS 规范化,我建议重置 - YUI3 有一个很好的,Twitter Bootstrap 是另一个很好的。它基本上将 paddings 和 margins 设置为 0,因此所有浏览器的行为都会遵循您的 css 规则,而不是它们自己的默认规则。

要将文本与容器垂直对齐,如果它是单行文本,请使用 line-height 属性,并将其设置为等于容器的高度。

例如:

CSS:

div {
    height:300px;
    width: 400px;
    line-height: 300px;
    font-size:28px;
    background-color:#F0F0F0;
}

HTML:

<div>
   Some vertically centered text
</div>

示例:http://jsfiddle .net/Djvv7/

For cross-browser CSS normalization I'd recommend a reset - YUI3 has a good one, Twitter Bootstrap is another good one. It basically sets paddings and margins to 0 so all browsers will behave and only adhere to YOUR css rules and not their own default rules.

For vertically aligning text to containers, if it's a single line of text, use the line-height property, and set it to equal the height of the container.

For example:

CSS:

div {
    height:300px;
    width: 400px;
    line-height: 300px;
    font-size:28px;
    background-color:#F0F0F0;
}

HTML:

<div>
   Some vertically centered text
</div>

Example: http://jsfiddle.net/Djvv7/

我一向站在原地 2024-12-18 19:19:53

您需要应用 CSS 重置。在所有项目上使用一个的良好实践。我知道的最著名的是: http://meyerweb.com/eric/tools/css/重置/

You need to apply a css reset. Good practice to use one on all projects. The most famous I know of is: http://meyerweb.com/eric/tools/css/reset/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文