Заполнители ввода текста не отображаются в IE и Firefox
Мои помещики ввода текста отказываются отображать в IE и Firefox, несмотря на использование атрибута -moz-placeholder. Это можно просмотреть на странице контакта здесь, если вы используете Firefox или IE.
Может кто-то помочь, я пытался понять это в течение нескольких недель. Ниже приведен пример моего кода:
input::-moz-placeholder, textarea::-moz-placeholder {
color: #aaa;
font-size: 18px;
}
input:-ms-input-placeholder, textarea::-ms-input-placeholder {
color: #aaa;
font-size: 18px;
}
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
color: #aaa;
font-size: 18px;
}
Ответы
Ответ 1
Как указано в luke2012, это происходит, когда box-sizing: border-box;
используется в полях ввода текста. Однако это происходит только при использовании фиксированной высоты (например, в структуре Bootstrap), и слишком много верхнего и нижнего отступов. Это не только предотвращает отображение текста заполнителя, но также и текст ввода в Firefox.
Я считаю, что лучшим решением является сохранить box-sizing: border-box;
и вместо этого удалить верхнее и нижнее заполнение и увеличить высоту до общей высоты, которую вы хотите иметь в поле ввода (включая любую границу).
input[type="email"], input[type="password"], input[type="text"]
{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
height: 42px; // Increase height as required
margin-bottom: 30px;
padding: 0 20px; // Now only left & right padding
}
Это делает вещи более последовательными и хорошо работает в таких средах, как Bootstrap.
В качестве альтернативы вы можете увеличить фиксированную высоту или установить height: auto;
и отрегулировать верхнее и нижнее заполнение по мере необходимости.
Ответ 2
::-webkit-input-placeholder { /* Chrome, Safari */
color: #aaa;
font-size: 18px;
}
:-moz-placeholder { /* Firefox 18- */
color: #aaa;
font-size: 18px;
}
::-moz-placeholder { /* Firefox 19+ */
color: #aaa;
font-size: 18px;
}
:-ms-input-placeholder { /* Internet Explorer */
color: #aaa;
font-size: 18px;
}
Ответ 3
Кажется, что -moz-box-sizing
вызывает вашу проблему.
input[type="email"], input[type="password"], input[type="text"]
{
-moz-box-sizing: border-box; // remove this line
height: 25px;
margin-bottom: 30px;
padding: 20px;
}
Удаление строки приведет к хаосу с вашими размерами ввода, поэтому вы можете добавить общее правило для выбора размера окна в свой CSS.
*, *:before, *:after {
-moz-box-sizing: border-box;
}
Ответ 4
Попробуйте уменьшить верхнюю и нижнюю прокладки.
Некоторые, как вертикальная прокладка покрывает заполнитель. Не забудьте установить height
элемента в 100%
.
input[type="email"], input[type="password"], input[type="text"]
{
padding: 0 20px;
height: 100%;
}