【问题标题】:CSS: font-size: inherit * 70%?CSS:字体大小:继承 * 70%?
【发布时间】:2010-09-22 15:29:01
【问题描述】:

有没有办法将一个类的字体大小指定为继承字体大小的 70%?

我有一个通用的“按钮”类,它为我的按钮设置了适当的边框、背景等。我在多个地方使用它,包括一个字体大小相当小的地方和另一个字体大小相当大的地方.

<div style="font-size: 26px;">
Push this: <input class="button" type="submit" value="Go">
</div>
<div style="font-size: 10px;">
Push this too: <input class="button" type="submit" value="Go">
</div>

在这两种情况下,我都希望按钮字体大小约为按钮所在 span 或 div 字体大小的 70%。

我可以用纯 CSS 做到这一点吗?

【问题讨论】:

    标签: css font-size


    【解决方案1】:

    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> 
    

    这对您有利,因为您只需为按钮类指定 0.7em 的字体大小即可实现您想要的效果(按钮的字体大小将始终为其父对象的 70%)。快乐编码!

    2014 年编辑:

    值得指出的是,浏览器对 Root EM 单元的支持现在非常好*,如果您还没有使用它,那么值得研究一下。根 EM (rem) 与根(文档)字体大小相关联,与“正常”EM 不同,它不受嵌套影响 - 它始终与根字体大小相关。虽然em 对大多数文本大小仍然非常有用,正是因为它确实尊重嵌套,但rem 非常适合诸如边距和填充之类的东西,您可能不想更改大小使用嵌套(这是左边距未对齐的常见原因),但您确实希望随根 html 字体大小一起更改大小(通常使用 media queries)。

    您可以阅读有关 EM 与 REM 的更多信息over on Design Shack

    *) IE8 是唯一不支持它的常见浏览器 (~5%) - 如果您需要支持 IE8,只需在rem 声明之前包含一个等效大小(以像素为单位)。

    【讨论】:

      【解决方案2】:

      在 CSS 中,如果你给出一个相对单位,默认情况下它是相对于你继承的大小的。这意味着,您可以将按钮的字体大小定义为“70%”。

      还有另外两个方便的字体大小相对单位:em 和 ex。 1 em 是字母“M”的宽度,1 ex 是字母“x”的高度——显然也是继承的。

      你不应该像你的例子那样使用 px 作为字体大小。 px 不服从屏幕的 DPI。例如在我的屏幕上,both 10px 和 26px 都会很小。您应该改用“pt”,甚至以“em”开头。

      【讨论】:

      • 补充一点——我一直发现最好将 body 元素的 font-size 设置为 62.5%,然后在其他任何地方使用 em。 62.5% 以默认浏览器字体大小(在大多数情况下)为 10pt。
      • 62.5% 对我来说听起来很刺耳。您有示例网址吗?我会对它在这里的样子感兴趣。将获得截图作为回报。
      • 更具体地说,1 em 是大写字母'M'的宽度
      【解决方案3】:

      试试:

      font-size: 0.7em;
      

      这里有更多信息:How to Size Text in CSS at A List Apart

      【讨论】:

      • 我看不到 0.7em 与父尺寸的关系?
      • @Tom: em 是相对于当前字体大小的。
      • em 总是相对于父字体大小。但是 0.7em 并没有给你 70%。
      • @Treb:[需要引用](从维基百科窃取参考)
      【解决方案4】:
      <input style="font-size: 70%" class="button" type="submit" value="Go">
      

      ?

      【讨论】:

      • 始终避免在页面上放置代码,尽量将其保留在样式表中以实现可维护性和分离性
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      相关资源
      最近更新 更多