Как это должно работать: если для свойства appearance
/ -moz-appearance
/ -webkit-appearance
установлено значение, отличное от none
- поскольку это для <input type="text">
в таблице стилей по умолчанию в браузере - тогда обычная граница CSS / фон элемента отбрасываются в пользу тематических платформ, которые могут отличаться от плоских трехмерных объектов, предоставляемых простым старым CSS, вплатформы, у которых есть темы.
<div style="-moz-appearance: textfield">x</div>
<input style="-moz-appearance: none" value="x"/>
Странный и, насколько я могу сказать, недокументированный улов заключается в том, что если какие-либо правила background
или border
вообще были установлены наэлемента, его -moz-appearance
игнорируется и подставляется none
, в результате чего получается стиль плоской трехмерной границы, который вы видите в своем примере, - именно так выглядят входные данные без заголовка.
Это верно, даже еслиправила не приводят к другому вычисленному значению этих стилей, чем было бы без них.Только background: default; border: default
позволяет избежать запуска этого поведения.
(IE ведет себя аналогично, хотя и не раскрывает стиль appearance
. Также пользователи «классической» темы XP / 2000 не увидят разницы, потому чтоIE отображает стили CSS inset
/ outset
border таким образом, что он в любом случае соответствует «классическому» стилю Windows.)