Зазвичай атрибут placeholder в input і textarea використовується для заклику до дії всередині цих елементів. У цій замітці опишу кілька варіантів стилізації тексту placeholder-ів, а також варіанти їхньої анімації.
Отже, колір тексту нашого placeholder-а можна змінити, використовуючи, наприклад наступний набір css-правил:
::-webkit-input-placeholder ( color : #c0392b ;) ::-moz-placeholder ( color : #c0392b ;) /* Firefox 19+ */ :-moz-placeholder ( color : #c0392b ;) /* Firefox 18- */ :-ms-input-placeholder ( color : #c0392b ;)
Об'ємність коду для стилізації такого простого властивості зумовлена відсутністювідсутністю загального стандарту, у зв'язку з чим кожен браузер по-своєму реалізував підтримку стилізації placeholder-а.
Крім того, підтримуються не всі css властивості. Ось перелік точно підтримуваних властивостей:
font (і пов'язані)
background (і пов'язані)
color
word-spacing
letter-spacing
text-decoration
vertical-align
text-transform
line-height
text-indent
text-overflow
opacity
Також буває так, що текст плейсхолдера "виходить" за межі ширини елемента input або textarea (частий випадок для мобільних пристроїв). При цьому він автоматично негарно обрізається.
Виправити цю неприємність нам допоможе таке css-властивість, як text-overflow: ellipsis , яке додасть естетичну трикрапку до обрізаної ділянки placeholder-a. У стилях прописуємо ось так:
input [placeholder] (text-overflow : ellipsis ;) input ::-moz-placeholder ( text-overflow : ellipsis ;) input :-moz-placeholder ( text-overflow : ellipsis ;) input :-ms-input-placeholder ( text-overflow : ellipsis ;)
Для надання ще більшої естетики нашим placeholder-ам є можливість додати ефект приховування при отриманні фокусу відповідного елемента.
Декілька прикладів такого приховання з елементами анімації:
/* плавна зміна прозорості placeholder-а при фокусі */.input ::-webkit-input-placeholder ( opacity : 1 ; transition : opacity 0.3s ease ;) .input ::-moz-placeholder ( opacity : 1 ; transition : opacity 0.3s ease ;) .input :-moz- placeholder ( opacity : 1 ; transition : opacity 0.3s ease ;) .input :-ms-input-placeholder ( opacity : 1 ; transition : opacity 0.3s ease ;) .input ( opacity : 0 ; transition : o ).input :фокус::-moz-placeholder ( opacity : 0 ; transition : opacity 0.3s ease ;) .input :фокус:-moz-placeholder ( opacity : 0 ; :-ms-input-placeholder ( opacity : 0 ; transition : opacity 0.3s ease ;) /* зрушення placeholder-а вправо при фокусі*/.input ::-webkit-input-placeholder ( text-indent : 0px ; transition : text-indent 0.3s ease ;) .input ::-moz-placeholder ( text-indent : 0px ; transition : text-indent 0.3s ease ;) .input :-moz-placeholder ( text-indent : 0px ; transition : text-indent 0.3s ease ;) .input :-ms-input-placeholder ( text-indent : 0px ; transition : text-indent 0.3s ease ;) .input :focus::-webkit-input-placeholder( text-indent : 500px ; transition : text-indent 0.3s ease ;) .input :focus::-moz-placeholder ( text-indent : 500px ; transition : text-indent 0.3s ease ;) .input :focus:- moz-placeholder ( text-indent : 500px ; transition : text-indent 0.3s ease ;) .input :focus:-ms-input-placeholder ( text-indent : 500px ; transition : text-indent 0.3s ease ;) /* зсув placeholder-а вниз при фокусі*/.input ::-webkit-input-placeholder ( line-height : 20px ; transition : line-height 0.5s eas ;) .input ::-moz-placeholder ( line-height : 20px ; ;) .input :-moz-placeholder ( line-height : 20px ; transition : line-height 0.5s ease ;) .input :-ms-input-placeholder ( line-height : 20px ; transition : line-height 0.5s e ;) .input :focus::-webkit-input-placeholder(line-height : 100px ; transition : line-height 0.5s ease ;) .input :focus::-moz-placeholder ( line-height : 100px ; transition : line-height 0.5s ease ;) .input : moz-placeholder ( line-height : 100px ; transition : line-height 0.5s ease ;) .input :focus:-ms-input-placeholder ( line-height : 100px ; transition : line-height 0.5s ease ;)
На цьому й закінчимо.
Якщо ви не знайомі з атрибутом placeholder, то давайте трохи пояснимо, що це таке і де він використовується. Використовується в полях введення форми. Атрибут виводить напис у полі введення, представляючи роль певної підказки. Раніше на нашому сайті був приклад, з допомогою javascript, позитивна сторона даного методуце кросбраузерність. Тепер давайте поговоримо про стилізацію атрибута placeholder, який використовується в елементах input і textarea.
Код поля введення в нашому прикладі виглядатиме приблизно так:
На виході ми отримуємо таке поле:
Тепер давайте уявимо, що нам необхідно стилізувати placeholder, для цього нам слід прописати набір правил у CSS:
::-webkit-input-placeholder ( color: #c1c1c1; ) ::-moz-placeholder ( color: #c1c1c1; ) /* Firefox 19+ */ :-moz-placeholder ( color: #c1c1c1; ) /* Firefox 18- */ :-ms-input-placeholder ( color: #c1c1c1; )
Отримуємо:
Змінювати ми можемо не всі властивості, але список більшості з них, що підтримуються сучасними браузерами, наведено нижче:
font(Так само суміжні властивості)
background(Так само суміжні властивості)
color
word-spacing
letter-spacing
text-decoration
vertical-align
text-transform
line-height
text-indent
text-overflow
opacity
У різних браузерахправило пишеться по-різному, т.к. доки немає єдиного стандарту, цей набір записів продовжує бути актуальним. У браузері IE, а також firefox нижче 18 версії placeholder сприймається як псевдоклас, а в нових браузерах firefox, webkit і blink сприймається як псевдоелемент.
Скорочення тексту в placeholder
Іноді підказки можуть бути такої довжини, що не можуть повністю поміститися в полі введення. Для цих цілей можна також скористатися додатковими властивостями, які дозволять скоротити текст placeholder-а в полі введення.
Input ( text-overflow:ellipsis; ) input::-moz-placeholder ( text-overflow:ellipsis; ) input:-moz-placeholder ( text-overflow:ellipsis; ) input:-ms-input-placeholder ( text-overflow : ellipsis; )
В результаті отримуємо поле введення такого з місця, що містить такий вид:
Приховуємо текст під час кліку по полю
За замовчуванням кожен браузер інтерпретує реакцію placeholder-a по-своєму. В одних браузерах він ховається відразу при натисканні на поле, в інших він ховається за наявності хоча б одного символу в полі введення. Давайте зробимо так, щоб текст ховався при натисканні по полю, однаково у всіх браузерах.
:focus::-webkit-input-placeholder ( color: transparent; ) :focus::-moz-placeholder ( color: transparent; ) :focus:-moz-placeholder ( color: transparent; ) :focus:-ms-input -placeholder ( color: transparent; )
Отримуємо таке дійство:
Прагнучи зменшити форму та скоротити візуальний шум, дизайнери тег
Погано
добре
Стилізація: змінити колір placeholder CSS
Змінити стиль поля введення з placeholder CSS
Погано
Ефект placeholder для
Атрибут placeholder працює тільки для і
Стародавній метод на згадку, що змінює JavaScript
Плейсхолдер – елемент поля введення, у якому можна розмістити підказку. Коли користувач починає вводити дані, допоміжний текст зникає, щоб не заважати. Кожен браузер має свою думку щодо того, як слід відображати цей елемент, і часом дефолтні стилі ламають весь дизайн. Щоб керувати ними, потрібно скористатися спеціальним правилом CSS placeholder.
Де знаходиться плейсхолдер?
Проблема в тому, що підказка поля введення надійно захована в тіньовому DOM, і дістатися не так просто. Для цього використовується особливий нестандартний ::placeholder. З його допомогою можна керувати властивостями підказки.
Стилізація placeholder на CSS виглядає так:
Input::placeholder ( color: red; opacity: 1; font-style: italic; )
Підтримка браузерами
Псевдоелемент CSS placeholder добре обробляється всіма сучасними браузерами, а для підтримки старих оглядачів можна скористатися префіксами:
- ::-webkit-input-placeholder – для webkit-браузерів (Safari, Chrome, Opera);
- ::-moz-placeholder - для браузерів Firefoxвище за 19 версій;
- :-moz-placeholder – для старих Firefox;
- :-ms-input-placeholder - для Internet Explorerвище за 10 версій.
Як видно, старі браузери Mozilla, а також IE вважають placeholder CSS-псевдокласом, а не псевдоелементом. Не будемо з ними сперечатися, просто зважимо на цей аспект при стилізації поля введення.
Можливості стилізації
Для псевдоелемента placeholder в CSS можна встановити такі параметри:
- фон - група блоку підказки поширюється по всьому полі введення. Можна задати як колір (background-color), а й зображення (background-image).
- колір тексту – color;
- прозорість – opacity;
- підкреслення, надкреслення або закреслення – text-decoration;
- регістр – text-transform;
- внутрішні відступи- Padding. Підтримується не всіма браузерами. Як для малих елементів, верхній та нижній відступи ігноруються.
- відображення шрифту - властивості групи font, line-height та різноманітні відступи (text-indent, letter-spacing, word-spacing);
- вертикальне вирівнювання у рядку - vertical-align;
- обрізання тексту при переповненні контейнера - text-overflow.
.input1::placeholder ( background-image: linear-gradient(lime, blue); color: white; ) .input2::placeholder ( text-decoration: line-through; color: purple; font-weight: bold; ) . input3::placeholder ( font-size: 16px; letter-spacing: 10px; ) .input4::placeholder ( background: brown; color: white; text-overflow: ellipsis; ) У фокусі
За замовчуванням підказка зникає з поля введення лише в тому випадку, якщо введено хоча б один символ. Але placeholder дозволяє реалізувати зникнення відразу при фокусуванні на полі. Для цього необхідно поєднати його з псевдокласом: focus.
Input:focus::placeholder ( color: transparent; )
У деяких браузерах можна анімувати зміну ряду властивостей плейсхолдера за допомогою інструкції transition.
Input::placeholder ( color: black; transition: color 1s; ) input:focus::placeholder ( color: white; )
У браузері Google Chromeколір підказки при фокусуванні на такому полі плавно змінюватиметься протягом однієї секунди.
Плейсхолдер – елемент поля введення, у якому можна розмістити підказку. Коли користувач починає вводити дані, допоміжний текст зникає, щоб не заважати. Кожен браузер має свою думку щодо того, як слід відображати цей елемент, і часом дефолтні стилі ламають весь дизайн. Щоб керувати ними, потрібно скористатися спеціальним правилом CSS placeholder.
Де знаходиться плейсхолдер?
Проблема в тому, що підказка поля введення надійно захована в тіньовому DOM, і дістатися не так просто. Для цього використовується спеціальний нестандартний псевдоелемент CSS::placeholder. З його допомогою можна керувати властивостями підказки.
You will be interested:
Стилізація placeholder на CSS виглядає так:
input::placeholder ( color: red; opacity: 1; font-style: italic; )
Підтримка браузерами
Псевдоелемент CSS placeholder добре обробляється всіма сучасними браузерами, а для підтримки старих оглядачів можна скористатися префіксами:
- ::-webkit-input-placeholder – для webkit-браузерів (Safari, Chrome, Opera);
- ::-moz-placeholder – для браузерів Firefox вище 19 версії;
- :-moz-placeholder – для старих Firefox;
- :-ms-input-placeholder – для Internet Explorer вище 10 версії.
Як видно, старі браузери Mozilla, а також IE вважають placeholder CSS-псевдокласом, а не псевдоелементом. Не будемо з ними сперечатися, просто зважимо на цей аспект при стилізації поля введення.
Можливості стилізації
Для псевдоелемента placeholder в CSS можна встановити такі параметри:
- фон - група background-властивостей. Фон блоку підказки поширюється по всьому полі введення. Можна задати як колір (background-color), а й зображення (background-image).
- колір тексту – color;
- прозорість – opacity;
- підкреслення, надкреслення або закреслення – text-decoration;
- регістр – text-transform;
- внутрішні відступи - padding. Підтримується не всіма браузерами. Як для малих елементів, верхній та нижній відступи ігноруються.
- відображення шрифту - властивості групи font, line-height та різноманітні відступи (text-indent, letter-spacing, word-spacing);
- вертикальне вирівнювання у рядку - vertical-align;
- обрізання тексту при переповненні контейнера - text-overflow.
Input1::placeholder ( background-image: linear-gradient(lime, blue); color: white; ) .input2::placeholder ( text-decoration: line-through; color: purple; font-weight: bold; ) .input3 ::placeholder ( font-size: 16px; letter-spacing: 10px; ) .input4::placeholder ( background: brown; color: white; text-overflow: ellipsis; )
У фокусі
За замовчуванням підказка зникає з поля введення лише в тому випадку, якщо введено хоча б один символ. Але псевдоелемент CSS placeholder дозволяє реалізувати зникнення відразу під час фокусування на полі. Для цього необхідно поєднати його з псевдокласом: focus.
input:focus::placeholder ( color: transparent; )
У деяких браузерах можна анімувати зміну ряду властивостей плейсхолдера за допомогою інструкції transition.
input::placeholder ( color: black; transition: color 1s; ) input:focus::placeholder ( color: white; )
У браузері Google Chrome колір підказки при фокусуванні на такому полі плавно змінюватиметься протягом однієї секунди.
Атрибут placeholder працює тільки для і
Стародавній метод на згадку, що змінює JavaScript
Плейсхолдер – елемент поля введення, у якому можна розмістити підказку. Коли користувач починає вводити дані, допоміжний текст зникає, щоб не заважати. Кожен браузер має свою думку щодо того, як слід відображати цей елемент, і часом дефолтні стилі ламають весь дизайн. Щоб керувати ними, потрібно скористатися спеціальним правилом CSS placeholder.
Де знаходиться плейсхолдер?
Проблема в тому, що підказка поля введення надійно захована в тіньовому DOM, і дістатися не так просто. Для цього використовується особливий нестандартний ::placeholder. З його допомогою можна керувати властивостями підказки.
Стилізація placeholder на CSS виглядає так:
Input::placeholder ( color: red; opacity: 1; font-style: italic; )
Підтримка браузерами
Псевдоелемент CSS placeholder добре обробляється всіма сучасними браузерами, а для підтримки старих оглядачів можна скористатися префіксами:
- ::-webkit-input-placeholder – для webkit-браузерів (Safari, Chrome, Opera);
- ::-moz-placeholder - для браузерів Firefoxвище за 19 версій;
- :-moz-placeholder – для старих Firefox;
- :-ms-input-placeholder - для Internet Explorerвище за 10 версій.
Як видно, старі браузери Mozilla, а також IE вважають placeholder CSS-псевдокласом, а не псевдоелементом. Не будемо з ними сперечатися, просто зважимо на цей аспект при стилізації поля введення.
Можливості стилізації
Для псевдоелемента placeholder в CSS можна встановити такі параметри:
- фон - група блоку підказки поширюється по всьому полі введення. Можна задати як колір (background-color), а й зображення (background-image).
- колір тексту – color;
- прозорість – opacity;
- підкреслення, надкреслення або закреслення – text-decoration;
- регістр – text-transform;
- внутрішні відступи- Padding. Підтримується не всіма браузерами. Як для малих елементів, верхній та нижній відступи ігноруються.
- відображення шрифту - властивості групи font, line-height та різноманітні відступи (text-indent, letter-spacing, word-spacing);
- вертикальне вирівнювання у рядку - vertical-align;
- обрізання тексту при переповненні контейнера - text-overflow.
У фокусі
За замовчуванням підказка зникає з поля введення лише в тому випадку, якщо введено хоча б один символ. Але placeholder дозволяє реалізувати зникнення відразу при фокусуванні на полі. Для цього необхідно поєднати його з псевдокласом: focus.
Input:focus::placeholder ( color: transparent; )
У деяких браузерах можна анімувати зміну ряду властивостей плейсхолдера за допомогою інструкції transition.
Input::placeholder ( color: black; transition: color 1s; ) input:focus::placeholder ( color: white; )
У браузері Google Chromeколір підказки при фокусуванні на такому полі плавно змінюватиметься протягом однієї секунди.
Плейсхолдер – елемент поля введення, у якому можна розмістити підказку. Коли користувач починає вводити дані, допоміжний текст зникає, щоб не заважати. Кожен браузер має свою думку щодо того, як слід відображати цей елемент, і часом дефолтні стилі ламають весь дизайн. Щоб керувати ними, потрібно скористатися спеціальним правилом CSS placeholder.
Де знаходиться плейсхолдер?
Проблема в тому, що підказка поля введення надійно захована в тіньовому DOM, і дістатися не так просто. Для цього використовується спеціальний нестандартний псевдоелемент CSS::placeholder. З його допомогою можна керувати властивостями підказки.
You will be interested:
Стилізація placeholder на CSS виглядає так:
input::placeholder ( color: red; opacity: 1; font-style: italic; )
Підтримка браузерами
Псевдоелемент CSS placeholder добре обробляється всіма сучасними браузерами, а для підтримки старих оглядачів можна скористатися префіксами:
- ::-webkit-input-placeholder – для webkit-браузерів (Safari, Chrome, Opera);
- ::-moz-placeholder – для браузерів Firefox вище 19 версії;
- :-moz-placeholder – для старих Firefox;
- :-ms-input-placeholder – для Internet Explorer вище 10 версії.
Як видно, старі браузери Mozilla, а також IE вважають placeholder CSS-псевдокласом, а не псевдоелементом. Не будемо з ними сперечатися, просто зважимо на цей аспект при стилізації поля введення.
Можливості стилізації
Для псевдоелемента placeholder в CSS можна встановити такі параметри:
- фон - група background-властивостей. Фон блоку підказки поширюється по всьому полі введення. Можна задати як колір (background-color), а й зображення (background-image).
- колір тексту – color;
- прозорість – opacity;
- підкреслення, надкреслення або закреслення – text-decoration;
- регістр – text-transform;
- внутрішні відступи - padding. Підтримується не всіма браузерами. Як для малих елементів, верхній та нижній відступи ігноруються.
- відображення шрифту - властивості групи font, line-height та різноманітні відступи (text-indent, letter-spacing, word-spacing);
- вертикальне вирівнювання у рядку - vertical-align;
- обрізання тексту при переповненні контейнера - text-overflow.
Input1::placeholder ( background-image: linear-gradient(lime, blue); color: white; ) .input2::placeholder ( text-decoration: line-through; color: purple; font-weight: bold; ) .input3 ::placeholder ( font-size: 16px; letter-spacing: 10px; ) .input4::placeholder ( background: brown; color: white; text-overflow: ellipsis; )
У фокусі
За замовчуванням підказка зникає з поля введення лише в тому випадку, якщо введено хоча б один символ. Але псевдоелемент CSS placeholder дозволяє реалізувати зникнення відразу під час фокусування на полі. Для цього необхідно поєднати його з псевдокласом: focus.
input:focus::placeholder ( color: transparent; )
У деяких браузерах можна анімувати зміну ряду властивостей плейсхолдера за допомогою інструкції transition.
input::placeholder ( color: black; transition: color 1s; ) input:focus::placeholder ( color: white; )
У браузері Google Chrome колір підказки при фокусуванні на такому полі плавно змінюватиметься протягом однієї секунди.