EM 确实像百分比一样工作,因为基本字体大小始终为 1em,而 .7em 将是该百分比的 70%(同样,1.2em 将相当于基本字体大小的 120%)。尽管您需要在文档正文上定义基本字体大小,但要使其正常工作。通过实验我发现 font-size: 77%; 在所有浏览器中为您提供一个不错的基本尺寸(即它使 1em 以“正常”和可读的尺寸呈现)。您可能需要尝试 75% 到 80% 之间的其他值,具体取决于您要使用的字体系列。还要记住,相对字体大小是累积继承的——例如:
<style>
small { font-size: .8em; }
span.tiny { font-size: .8em }
</style>
<small>This text is 80% of base size where as
<span class="tiny">this text is 80% of 80% (or 64%) of base size</span>
</small>
这对您有利,因为您只需为按钮类提供 .7em 的字体大小即可实现您想要的效果(按钮的字体大小将始终为其父对象的 70%)。快乐编码!
2014年编辑:
值得指出的是,浏览器对 Root EM 单元的支持现在非常好*,如果您还没有使用它,那么值得研究一下。根 EM (rem) 与根(文档)字体大小相关联,与“正常”EM 不同,它不受嵌套影响 - 它始终与根字体大小相关。虽然em
's 对于大多数文本大小仍然非常有用,正是因为它确实尊重嵌套,但rem
它非常适用于边距和填充等内容,您可能不想通过嵌套更改大小(这是左边距未对齐的常见原因) ,但您确实希望随根html
字体大小一起更改大小(通常使用媒体查询)。
您可以在 Design Shack 上阅读更多关于 EM 与 REM的信息。
*) IE8 是唯一不支持它的常见浏览器 (~5%) - 如果您需要支持 IE8,只需在声明前包含一个等效大小(以像素为单位)。rem