Chrome поддерживает атрибут placeholder для input[type=text]
элементов (вероятно, для других).
Но следующее CSS
не влияет на значение заполнителя:
input[placeholder], [placeholder], *[placeholder] {
color: red !important;
}
<input type="text" placeholder="Value">
Value
будет по- прежнему остаются grey
вместо red
.
Есть ли способ изменить цвет текста заполнителя?
css
html
placeholder
html-input
David Murdoch
источник
источник
<input>
тегу, какinput
селектор, но показывает текст заполнителя только сейчас. Он также не соответствует самому атрибуту заполнителя.input
селектор, потому что он выбирает всеinput
элементы.:placeholder-shown
выбираются только теinput
элементы, которые в настоящее время показывают заполнитель, что позволяет стилизовать только эти элементы и эффективно стилизовать текст заполнителя. Что ты пытаешься сказать?textarea
элементы, которые показывают заполнитель текста.)Ответы:
Реализация
Существует три разных реализации: псевдоэлементы, псевдоклассы и ничего.
::-webkit-input-placeholder
. [ Ссылка ]:-moz-placeholder
( одна двоеточие). [ Ссылка ]::-moz-placeholder
но старый селектор все еще будет работать некоторое время. [ Ссылка ]:-ms-input-placeholder
. [ Ссылка ]::placeholder
[ Ref ]Internet Explorer 9 и ниже не поддерживает
placeholder
атрибут вообще, в то время как Opera 12 и ниже не поддерживают CSS-селектор для заполнителей.Дискуссия о наилучшей реализации все еще продолжается. Обратите внимание, что псевдоэлементы действуют как реальные элементы в Shadow DOM . A
padding
oninput
не получит тот же цвет фона, что и псевдоэлемент.CSS селекторы
Пользовательские агенты должны игнорировать правило с неизвестным селектором. См. Уровень выбора 3 :
Поэтому нам нужны отдельные правила для каждого браузера. В противном случае вся группа будет игнорироваться всеми браузерами.
Примечания по использованию
opacity: 1
здесь.em
и протестируйте их с большими настройками минимального размера шрифта. Не забывайте переводы: некоторым языкам нужно больше места для одного и того же слова.placeholder
но без поддержки CSS (например, Opera) также должны быть протестированы.input
типов (email
,search
). Это может повлиять на рендеринг неожиданным образом. Используйте свойства-webkit-appearance
и,-moz-appearance
чтобы изменить это. Пример:источник
*:-ms-input-placeholder
и:-ms-input-placeholder
само по себе не работает, ноINPUT:-ms-input-placeholder
работает. Странный.Это будет стиль всех
input
иtextarea
заполнителей.Важное примечание: не группируйте эти правила. Вместо этого создайте отдельное правило для каждого селектора (один недопустимый селектор в группе делает всю группу недействительной).
источник
Вы можете также хотеть стиль textareas:
источник
Для пользователей Bootstrap и Less существует миксин .placeholder:
источник
@input-color-placeholder
- обычно находящуюся в variables.lessВ дополнение к ответу toscho я заметил некоторые несоответствия веб-наборов между Chrome 9-10 и Safari 5 с поддерживаемыми свойствами CSS, которые стоит отметить.
В частности Chrome 9 и 10 не поддерживают
background-color
,border
,text-decoration
иtext-transform
при укладке заполнителя.Полное кросс-браузерное сравнение здесь .
источник
Для пользователей Sass :
источник
@content;
Это будет работать нормально. ДЕМО ЗДЕСЬ:
источник
В Firefox и Internet Explorer обычный цвет текста ввода переопределяет свойство цвета заполнителей. Итак, нам нужно
источник
Кросс-браузерное решение:
Предоставлено: Дэвид Уолш
источник
Используйте новый,
::placeholder
если вы используете autoprefixer .Обратите внимание, что .placeholder mixin от Bootstrap не рекомендуется в пользу этого.
Пример:
При использовании автоматического префикса вышеупомянутое будет преобразовано в правильный код для всех браузеров.
источник
Теперь у нас есть стандартный способ применить CSS к заполнителю ввода:
::placeholder
псевдоэлемент из этого черновика CSS-модуля уровня 4.источник
Я просто понимаю, что для Mozilla Firefox 19+ браузер предоставляет значение непрозрачности для заполнителя, поэтому цвет не будет таким, как вы хотите.
Я перезаписываю
opacity
на 1, так что будет хорошо идти.источник
Я не помню, где я нашел этот фрагмент кода в Интернете (он был написан не мной, не помню, где я его нашел и кто его написал).
Просто загрузите этот код JavaScript, а затем отредактируйте заполнитель с помощью CSS, вызвав это правило:
источник
Я думаю, что этот код будет работать, потому что заполнитель необходим только для ввода текста типа. Так что этой одной строки CSS будет достаточно для вашей потребности:
источник
::placeholder
вместе с autoprefixer.Для пользователей Bootstrap , если вы используете
class="form-control"
, может быть проблема специфичности CSS. Вы должны получить более высокий приоритет:Или, если вы используете Less :
источник
Если вы используете Bootstrap и не можете заставить это работать, то, вероятно, вы упустили тот факт, что Bootstrap сам добавляет эти селекторы. Это Bootstrap v3.3, о котором мы говорим.
Если вы пытаетесь изменить заполнитель внутри .form-control CSS-класса вы должны переопределить его следующим образом:
источник
Этот короткий и чистый код:
источник
Как насчет этого
Нет CSS или заполнителя, но вы получаете ту же функциональность.
источник
<input type="text" value="placeholder text" onfocus="if(!this.haswriting){this.style.color='#000'; this.value='';}" onblur="if(!this.value){this.style.color='#f00'; this.value='placeholder text'; this.haswriting=false;}else{this.haswriting=true};" style="color: #f00;"/>
<form>
с этим вводом, текст заполнителя будет отправлен на сервер. Я видел, как много сайтов делают это неправильно.Я попробовал каждую комбинацию здесь, чтобы изменить цвет на моей мобильной платформе, и в итоге это было:
который сделал свое дело.
источник
This property allows you to specify a fill color for text. If it is not set, then the color property will be used to do the fill.
Мне кажется, что у вас есть другое правило CSS, которое устанавливаетcolor
свойство.Для пользователей SASS / SCSS, использующих Бурбон , он имеет встроенную функцию.
Вывод CSS, вы также можете взять эту часть и вставить в свой код.
источник
попробуйте этот код для другого элемента ввода другого стиля
пример 1:
пример 2:
источник
Вот еще один пример:
источник
Добавление очень приятной и простой возможности: фильтры CSS !
Это будет стилизовать все, включая заполнитель.
Далее будут установлены оба входа на одной палитре, используя фильтр оттенка для изменения цвета. Теперь он очень хорошо рендерится в браузерах (кроме ie ...)
Чтобы позволить пользователям динамически изменять его, используя цвет входного типа для изменений или находить нюансы, ознакомьтесь со следующим фрагментом:
От: https://codepen.io/Nico_KraZhtest/pen/bWExEB
Документы фильтров CSS: https://developer.mozilla.org/en-US/docs/Web/CSS/filter
источник
ОК, заполнители ведут себя по-разному в разных браузерах, поэтому вам нужно использовать префикс браузера в вашем CSS, чтобы сделать их идентичными, например, Firefox по умолчанию обеспечивает прозрачность для заполнителя, поэтому нужно добавить непрозрачность 1 в CSS, а также цвет, это не так в большинстве случаев это большая проблема, но хорошо, чтобы они были последовательными:
источник
Вы можете изменить цвет заполнителя ввода HTML5 с помощью CSS. Если случайно ваш CSS конфликтует, эта заметка кода работает, вы можете использовать (! Важно), как показано ниже.
Надеюсь, это поможет.
источник
Вы можете использовать это для ввода и стиля фокуса:
источник
Самый простой способ будет:
источник
Компас имеет миксин для этого из коробки.
Возьмите свой пример:
И в SCSS с помощью компаса:
См. Документы для ввода ввода-заполнителя mixin.
источник
Вот решение с CSS-селекторами
:: - webkit-input-placeholder.
-moz-placeholder (одна двоеточие).
Mozilla Firefox 19+ использует псевдоэлемент :
:: - moz-placeholder, но старый селектор все еще будет работать некоторое время.
-ms-input-placeholder.
источник
Часть HTML:
Я покажу, как изменить цвет выражения «Введите предложение» с помощью CSS:
источник