Если вы посмотрите на themeroller.css с вашим любимым инспектором веб-страницы, то найдете: -
#themeroller {
font-size: 10px;
}
#themeroller button,
#themeroller input,
#themeroller select,
#themeroller textarea {
font-size: 12px;
}
Небольшое копание в HTML показывает, что <div id="themeroller">
охватывает всю «демонстрационную» область страницы, поэтому ВСЕ виджеты jquery-ui находятся внутри нее и поэтому принимают размеры шрифтов относительно этих значений.
Глядя на мою "слишком большую" страницу, обычный текст имеет размер шрифта 18 пикселей. Это происходит из .ui-widget в themes / ui-darkness / jquery-ui.css, имеющего font-size: 1em
, который он вычисляет из базового размера шрифта моего браузера 16px. Я обнаружил этот базовый размер, проверив простой документ:
<html><body>
<span style="font-size: 100%">here is some plain body text</span
</body></html>
Таким образом, ответ на вопрос о том, как установить размер шрифта для виджетов jquery-ui, состоит в том, чтобы установить размер шрифта для включающего элемента. <body>
(в соответствии с рекомендациями Джозеф Марикл ) гарантированно поражает все, но может быть слишком широким для ваших нужд, в этом случае вам следует использовать внутренний <div>
вместо этого. <span>
, вероятно, зло, потому что вы не должны оборачивать вещи на уровне блоков в неблокированные - но проверьте это утверждение в полиции стилей CSS, я просто хакер!
Я собирался разглагольствовать о том, почему дизайнеры решили основывать высоты на em
, то есть ширина , а не ex
, что составляет высота . Однако я подозреваю, что ответ таков: em
дает более согласованные результаты в более широком диапазоне шрифтов, так как в большинстве случаев высота буквы «l» примерно равна ширине буквы «m». И наоборот, если бы вы использовали 2ex
в качестве основной меры, то вы получите странные высоты в шрифтах с очень короткими или очень длинными восходящими и спускающимися значениями по сравнению с высотой 'x'.