Почему мое <select>свойство font-family не наследуется от <body>? - PullRequest
6 голосов
/ 05 января 2009

Мой код:

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>, почему я должен копировать стиль?

Ответы [ 4 ]

11 голосов
/ 05 января 2009

Если вы используете:

select {
  font-family: inherit;
}

Это будет хорошо работать. CSS немного странный, когда дело доходит до элементов управления формой.

1 голос
/ 06 января 2009

Да, семейство шрифтов: наследование кажется лучшим.
Но в остальном:

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

Вы также можете заменить «.myfont» на «select», если хотите, чтобы все элементы select использовали это.

Горячий совет. Не используйте кавычки вокруг имен ваших шрифтов, это понимают не все браузеры.

0 голосов
/ 06 января 2009

Ответ Джеймса кажется мне наиболее элегантным и правильным, но я подумал, что просто добавлю еще один способ сделать это:

.myfont option {
     font-family: "Verdana"; /* etc */
}
0 голосов
/ 06 января 2009

Если мне нужно изменить шрифт для «выберите», почему я должен скопировать стиль

Точно так же, как вы знаете, даже если вам действительно нужно «скопировать стиль», вам не нужно копировать стиль, как вы сделали выше.

Вы бы просто применили стиль Сами к body и .myfont, выполнив это:

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