CSS'font-size:medium'是否将字体设置为.Body字体大小或*浏览器*的基本字体大小?

时间:2008-09-18 16:36:54

标签: css

在“CSS:缺失的手册”中,作者说font-size:medium(或其他大小的关键字)设置相对于浏览器的基本字体大小的字体。

但我在FF2和IE6中看到的是它将字体大小设置为我在.CSS HTML或BODY样式中指定的字体大小(这是非常优选的。)

如果它以后一种方式工作,如果您有嵌套样式并且您知道某些文本是正文字体大小(即“正常大小的文本”),则这非常方便。

5 个答案:

答案 0 :(得分:5)

来自the CSS 2.1 specification

  

'medium'值是用户首选的字体大小,用作参考中间值。

如果浏览器没有这样做,那么浏览器就会出错。

答案 1 :(得分:2)

它将基于父元素,以便尊重级联。如果它有用,我总是这样做我的字体大小:

body {
   font: normal 100% "Arial","Helvetica",sans-serif;
}
p, li, td {
   font-size: .85em;
}
li p, td p {
   font-size: 1em;
}

在身体上100%,然后使用em来做其他事情。我从不使用“较小”或“中等”或类似的东西。我有更多的控制方式。

修改

请参阅Jim关于“medium”是绝对字体大小的评论。值得注意的。

答案 2 :(得分:0)

字体大小关键字(xx-small,x-small,small,medium等)基于用户默认字体大小为中等。它也可以用于改变子元素相对于父元素的大小。

答案 3 :(得分:0)

如前所述,medium由UA(浏览器)设置,但您仍然可以使用rem获得您希望的行为。 rem相对于根元素(特别是<html>元素,而不是<body>),因此受根元素样式的影响。

请参阅this fiddle进行演示。

&#13;
&#13;
html
{
  font-size: 60px;
}

#mediumBlock
{
  font-size: medium;
}

#remBlock
{
  font-size: 1rem;
}

#halfRemBlock
{
  font-size: 0.5rem;
}
&#13;
<div id="inheritedBlock">
  Foobar inherited
</div>
<div id="mediumBlock">
  Foobar medium
</div>
<div id="remBlock">
  Foobar rem
</div>
<div id="halfRemBlock">
  Foobar 0.5rem
</div>
&#13;
&#13;
&#13;

答案 4 :(得分:-1)

我认为如果您将默认大小设置为容器或正文之类的元素,则子级中的任何相对字体大小都基于父元素。只有当你没有在任何地方指定字体大小时,它才会默认为浏览器(它们都有不同的大小)。