Дизайн контейнер css. Добавете CSS стил за заместител

Placeholder е елемент от полето за въвеждане, в което може да се постави подсказка. Когато потребителят започне да въвежда данни, поддържащият текст изчезва, за да не пречи. Всеки браузър има собствено мнение за това как трябва да се показва този елемент и понякога стиловете по подразбиране нарушават целия дизайн. За да ги управлявате, трябва да използвате специално CSS placeholder правило.

Къде е контейнерът?

Проблемът е, че подсказката на полето за въвеждане е здраво скрита в сенчестия DOM и не е толкова лесно да се стигне до нея. За целта се използва специален нестандартен CSS::placeholder псевдоелемент. С негова помощ можете да управлявате свойствата на подсказката.

Ще ви бъде интересно:

Оформянето на контейнер в CSS изглежда така:

input::placeholder ( цвят: червен; непрозрачност: 1; стил на шрифта: курсив; )

Поддръжка на браузър

Псевдоелементът CSS placeholder се обработва добре от всички модерни браузъри, а за поддръжка на по-стари браузъри можете да използвате префиксите:

  • ::-webkit-input-placeholder - за уебкит браузъри (Safari, Chrome, Opera);
  • ::-moz-placeholder - за Firefox браузъринад версия 19;
  • :-moz-placeholder - за по-стар Firefox;
  • :-ms-input-placeholder - за Internet Explorerнад версия 10.

Както можете да видите, по-старите браузъри на Mozilla, както и IE, считат контейнера за CSS псевдо-клас, а не за псевдо-елемент. Нека не спорим с тях, просто ще вземем предвид този аспект, когато стилизираме полето за въвеждане.

Опции за стилизиране

Псевдоелементът заместител в CSS може да бъде зададен на следните параметри:

  • фон - група свойства на фона. Фонът на блока с подсказки се отнася за цялото поле за въвеждане. Можете да зададете не само цвета (background-color), но и изображението (background-image).
  • цвят на текста - цвят;
  • прозрачност - непрозрачност;
  • подчертаване, надчертаване или зачертаване - текст-украса;
  • случай - преобразуване на текст;
  • вътрешни отстъпи - padding. Не се поддържа от всички браузъри. Както при вградените елементи, подложките отгоре и отдолу се игнорират.
  • показване на шрифт - свойства на групата шрифтове, височина на реда и различни отстъпи (текст-отстъп, междубуквени интервали, междусловни интервали);
  • вертикално подравняване в ред - vertical-align;
  • изрязване на текст при препълване на контейнера - text-overflow.

Input1::placeholder (фоново изображение: линеен градиент (лайм, синьо); цвят: бяло; ) .input2::placeholder (text-decoration: line-through; цвят: лилав; font-weight: получер; ) .input3 ::placeholder (размер на шрифта: 16px; разстояние между буквите: 10px;) .input4::placeholder (фон: кафяв; цвят: бял; text-overflow: многоточие;)

На фокус

По подразбиране подсказката изчезва от полето за въвеждане само ако в него е въведен поне един символ. Но псевдоелементът CSS placeholder ви позволява да внедрите избледняване веднага, когато фокусирате върху полето. За да направите това, трябва да го комбинирате с псевдо-класа: фокус.

input:focus::placeholder ( цвят: прозрачен; )

В някои браузъри е възможно да се анимират промени в редица свойства на контейнери с помощта на оператора за преход.

input::placeholder ( цвят: черен; преход: цвят 1s; ) input:focus::placeholder ( цвят: бял; )

В браузъра Google ChromeКогато фокусирате върху такова поле, цветът на подсказката ще се промени плавно в рамките на една секунда.

Заместителите, онези текстови елементи, които често са оцветени в сиво във входа, могат да бъдат болезнени за стилизиране. За щастие ние намерихме кратко, но ефективно CSS решение за стилизиране на текста на контейнера във вашия вход във всеки цвят и непрозрачност, които желаете. Прочетете за кода.

Промяна на цвета на текста на контейнера

Нека започнем с просто въвеждане и малко текст на контейнера, за този пример ще използваме думата „търсене“, но вие можете да използвате всичко, което искате. Основният HTML е по-долу:

HTML


Текстът на контейнера за въвеждане (и текстово поле) е по подразбиране със светлосив цвят, но можем да променим това с няколко реда CSS. Тук ще оцветим въведения текст в червено, като използваме HTML име на цвят, но всеки метод на оцветяване ще е достатъчен (HEX, RGB, HSL).

CSS
::-webkit-input-placeholder ( /* Chrome */ цвят: червен; ) :-ms-input-placeholder ( /* IE 10+ */ цвят: червен; ) ::-moz-placeholder ( /* Firefox 19 + */ цвят: червен; непрозрачност: 1; ) :-moz-placeholder ( /* Firefox 4 - 18 */ цвят: червен; непрозрачност: 1; )

Обърнете внимание, че е важно да включите различните префикси на доставчиците, за да поддържате възможно най-много браузъри. Само текстът на контейнера за въвеждане на текст на Firefox е по подразбиране с лека прозрачност, така че не е необходимо да задавате свойството за непрозрачност в IE или Chrome.

Промяна на цвета на текста на фокуса на заместителя

Добре, успешно сменихме цвета на текста на контейнера на червено, но би било хубаво, ако нещо се случи, когато потребител кликне вътре в нашия вход. Използвайки същите свойства на CSS с префикс на доставчика, можем да променим непрозрачността на текста на контейнера на входа на фокус.

CSS
вход (очертание: няма; подложка: 12px; border-radius: 3px; border: 1px плътно черно; ) ::-webkit-input-placeholder ( /* Chrome */ цвят: червен; преход: непрозрачност 250ms улесняване на излизане ; ) :focus::-webkit-input-placeholder (непрозрачност: 0,5; ) :-ms-input-placeholder ( /* IE 10+ */ цвят: червен; преход: непрозрачност 250ms ease-in-out; ) :focus :-ms-input-placeholder (непрозрачност: 0,5; ) ::-moz-placeholder ( /* Firefox 19+ */ цвят: червен; непрозрачност: 1; преход: непрозрачност 250ms леко влизане навън; ) :focus:: -moz-placeholder ( непрозрачност: 0,5; ) :-moz-placeholder ( /* Firefox 4 - 18 */ цвят: червен; непрозрачност: 1; преход: непрозрачност 250ms леко влизане навън; ) :focus:-moz-placeholder (непрозрачност: 0,5; )

В примера по-горе добавихме няколко основни стила към самия вход и добавихме преход към непрозрачността, за да направим изживяването малко по-приятно. Вижте демонстрацията и експериментирайте с други CSS свойства и преходи.

Placeholder е елемент от полето за въвеждане, в което може да се постави подсказка. Когато потребителят започне да въвежда данни, поддържащият текст изчезва, за да не пречи. Всеки браузър има собствено мнение за това как трябва да се показва този елемент и понякога стиловете по подразбиране нарушават целия дизайн. За да ги управлявате, трябва да използвате специално CSS placeholder правило.

Къде е контейнерът?

Проблемът е, че подсказката на полето за въвеждане е здраво скрита в сенчестия DOM и не е толкова лесно да се стигне до нея. За целта се използва специален нестандартен ::placeholder. С негова помощ можете да управлявате свойствата на подсказката.

Оформянето на контейнер в CSS изглежда така:

Input::placeholder ( цвят: червен; непрозрачност: 1; стил на шрифта: курсив; )

Поддръжка на браузър

Псевдоелементът CSS placeholder се обработва добре от всички съвременни браузъри и за поддръжка на по-стари браузъри можете да използвате следните префикси:

  • ::-webkit-input-placeholder - за уебкит браузъри (Safari, Chrome, Opera);
  • ::-moz-placeholder - за браузъри Firefox над версия 19;
  • :-moz-placeholder - за по-стар Firefox;
  • :-ms-input-placeholder - за Internet Explorer над версия 10.

Както можете да видите, по-старите браузъри на Mozilla, както и IE, считат контейнера за CSS псевдо-клас, а не за псевдо-елемент. Нека не спорим с тях, просто ще вземем предвид този аспект, когато стилизираме полето за въвеждане.

Опции за стилизиране

Можете да зададете следните опции за псевдоелемента на заместителя в CSS:

  • фон - блоковата група с подсказки се прилага към цялото поле за въвеждане. Можете да зададете не само цвета (background-color), но и изображението (background-image).
  • цвят на текста - цвят;
  • прозрачност - непрозрачност;
  • подчертаване, надчертаване или зачертаване - текст-украса;
  • случай - преобразуване на текст;
  • вътрешни отстъпи - padding. Не се поддържа от всички браузъри. Както при вградените елементи, подложките отгоре и отдолу се игнорират.
  • показване на шрифт - свойства на групата шрифтове, височина на реда и различни отстъпи (текст-отстъп, междубуквени интервали, междусловни интервали);
  • вертикално подравняване в ред - vertical-align;
  • изрязване на текст при препълване на контейнера - text-overflow.
.input1::placeholder (фоново изображение: линеен градиент (лайм, синьо); цвят: бяло; ) .input2::placeholder (текст-декорация: ред; цвят: лилав; тегло на шрифта: получер; ) . input3::placeholder (размер на шрифта: 16px; разстояние между буквите: 10px;) .input4::placeholder (фон: кафяв; цвят: бял; text-overflow: ellipsis;)

На фокус

По подразбиране подсказката изчезва от полето за въвеждане само ако в него е въведен поне един символ. Но контейнерът ви позволява да приложите изчезването веднага, когато фокусирате върху полето. За да направите това, трябва да го комбинирате с псевдо-класа: фокус.

Input:focus::placeholder ( цвят: прозрачен; )

В някои браузъри е възможно да се анимират промени в редица свойства на контейнери с помощта на оператора за преход.

Input::placeholder ( цвят: черен; преход: цвят 1s; ) input:focus::placeholder ( цвят: бял; )

IN Google браузърЦветът на подсказката на Chrome при фокусиране върху такова поле ще се промени плавно в рамките на една секунда.

Атрибутът placeholder се използва за създаване на подсказки в празни полета за въвеждане (тагове И