为什么我的“font-family”属性不继承?

问题描述 投票:6回答:4

我的代码:

body {
    font-family:"Verdana",Arial,Helvetica,sans-serif;
}
.myfont {
    font-family:"Verdana",Arial,Helvetica,sans-serif;
}
<body>
    Hello
    <select>
        <option>
            Hello
        </option>
    </select>
    <select class="myfont">
        <option>
            Hello
        </option>
    </select>
</body>

为什么第一个<select>元素没有继承font-family规范中的<body>属性?

如果我必须更改<select>的字体,为什么我要复制样式?

html css inheritance font-family
4个回答
11
投票

如果您使用:

select {
  font-family: inherit;
}

它会工作正常。在表单控件方面,CSS有点古怪。


1
投票

是font-family:inherit似乎是最好的。 然而在其他方面:

  body, .myfont
  {
    font-family:Verdana,Arial,Helvetica,sans-serif;
  }

如果您希望所有选择元素都使用此选项,您也可以将'.myfont'替换为'select'。

热门提示。不要在字体系列名称周围使用引号,并不是所有浏览器都能理解。


0
投票

如果我必须更改“选择”的字体,为什么我要复制样式?

你知道,即使你必须“复制风格”,你也不必像上面那样复制风格。

你可以通过这样做将samy风格应用于body.myfont

      .myfont, body 
      {
        font-family:"Verdana",Arial,Helvetica,sans-serif;
      }

0
投票

詹姆斯的回答对我来说似乎是最优雅和正确的,但我想我只是添加另一种方式来做到这一点:

.myfont option {
     font-family: "Verdana"; /* etc */
}
© www.soinside.com 2019 - 2024. All rights reserved.