CSS "em"问题 : avoid scaling to font-size of specific element

标签 css font-size

我的网站几乎完全是用“em”(而不是 px)设计的。它对于现代浏览器来说应该要好得多。

大部分文本的字体大小为:1em。默认1em = 16px,我没有指定。

但我有一些内容的字体大小为 1.2em,其他内容的字体大小为 0.8em(例如 H1 或小按钮)。

“em”的问题在于它会根据字体大小重新缩放元素的所有大小(边距、填充、高度...)。

我的CSS中有具体的代码:

/* Reset */
html [and many other elements] {
    font-size: 100%;
    font: inherit;
}
/* Design */
body {
    font-size: 1em;
    line-height: 1; /* Line height will equal the em of each element */
}
.small-button {
    font-size: 0.8em;
    margin-left: 1em;
}
.normal-button {
    font-size: 1em;
    margin-left: 1em;
}

普通按钮的边距为 1x1x16 = 16px。但小按钮的边距为 1x0.8x16 = 12.8px。

显然这是一个特定的“em”属性(“px”中不是这种情况),它根据元素的字体大小缩放所有内容。

这个例子很简单;但在我的网站上,我很难保持事情的一致性。

如何停用此属性,以便在上面的示例中两个按钮具有相同的边距? (无需重新计算尺寸;这就是我现在正在做的!)

最佳答案

em单位的目的是相对于当前设置的字体大小。如果您想使用一致的 em 形式,请使用单位“rem”。它与页面的根元素(很可能是 html 标签)相关,代表 root em。

如果您想了解更多信息,请查看 Jonathan Snook 的这篇文章。 http://snook.ca/archives/html_and_css/font-size-with-rem

关于CSS "em"问题 : avoid scaling to font-size of specific element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21333067/

相关文章:

javascript - RotateY 和透视动画在 chrome 中无法正常工作?

html - 为什么链接区域的高度比文本大很多?

aptana - 更改代码的字体大小并打开类(class)助手

ios - iOS 6.0 版不推荐使用最小字体大小

html - 如何在同一行制作html表格? WordPress,woocommerce

css - 将 .png 图像部分放置在菜单上(顶部)

html - 在水平主菜单上鼠标悬停时的垂直子菜单

html - 菜单覆盖 - 无法使内容全高

iOS UILabel 自动调整文本大小以适应框架,无论字体如何

CSS - 使用 em 的子字体大小