Как настроить целевые поля ввода текста с помощью CSS?
Скажем, у вас есть следующий HTML:
<input />
<br />
<input type=text />
Конечно, в моем HTML у меня будут и другие типы полей ввода (флажки и т.д.). Теперь я хочу только стиль ввода текста.
То, что я нахожу при поиске, заключается в следующем:
input[type=text] { background: red; }
Для второго ввода, где атрибут явно присутствует, это работает. Для первого, однако, он работает в IE8, но не в IE10. Также не в Chrome.
Итак, как я могу настроить таргетинг на все поля ввода текста и только на поле ввода текста, не имея при этом type=text
везде?
Вы можете увидеть это в jsFiddle. Для IE8 ознакомьтесь с этими инструкциями о том, как заставить jsFiddle работать, но выглядит так:
![enter image description here]()
Ответы
Ответ 1
Если вы хотите опустить type="text"
и по-прежнему иметь селекторное совпадение, вам придется использовать not
psuedoselector, доступный в CSS3:
input[type="text"], input:not([type]) {
...
}
http://jsfiddle.net/dByqP/5/
Это не будет работать в более низких версиях IE, так как CSS3 не поддерживается в этих браузерах.
Лучшим решением было бы пройти и добавить type="text"
в текстовые входы и просто использовать оригинальный селектор.
Ответ 2
Один болезненный, но верный способ - просто установить стиль
input {
/* ... */
}
Что будет предназначаться для ввода текста в каждом браузере, тогда вы можете делать то, что делаете, и настраивать каждый отдельный вход, который не является текстовым вводом:
input[type=range] {}
input [type=phone] {}
// etc.
Таким образом, даже если оператор: not, доступный в CSS3, не поддерживается браузером, вы все равно можете заставить его работать...
Ответ 3
Мое предложение состояло в том, чтобы стиль по умолчанию для ввода был
input {
background-color: red;
}
затем перезапишите стиль для чего-то еще, если необходимо, например, синяя кнопка
input[type='button'] {
background-color: blue;
}
конечно, вам нужно будет пойти и указать конкретные стили для определенных типов ввода, но это не значит, что вы не сделали бы это в любом случае, если бы вам нужна уникальная кнопка, например.
Ответ 4
Стиль ввода с использованием класса и CSS:
.redBG
{
background: red;
}
Затем ваш HTML:
<input class="redBG" />
Прикреплено jsFiddle.