Короткая статья, посвященная вопросу кросс-браузерности такого HTML5-атрибута для формы, как
.
1 placeholder
Недавно столкнулся в подобным вопросом, решение не смог найти. Однако, в книге “Недостающее руководство по HTML5” случайно столкнулся с подробным описанием решения этой маленькой проблемы. Проблема и вправду маленькая - вопрос поддержки или не поддержки браузерами данного атрибута на сегодняшний день - это мелочь. Ну правда, разве пострадает функциональность верстаемого сайта от того, что в поле поиска не будет отображаться подстановочный текст? Конечно, нет!
Еще один момент - говоря о кросс-браузерной поддержке атрибута
, почти всегда подразумевается на самом деле поддержка этого атрибута только одним браузером. Конечно, это многострадальный Internet Explorer версии 7 или 8. О версии Internet Explorer 6 можно уже забыть. Остальные браузеры нормально справляются со своей задачей и понимают, что такое 1
placeholder
.1
placeholder
Автор статьи обладает некоторой долей перфекционизма - для него и такая мелочь является принципиальной мелочью, камнем преткновения. И вот, этот камень можно отодвинуть в сторону.
Кросс-браузерные заплатки для HTML5
Начну с того, что решение вопроса кросс-браузерного
было создано уже давно. Это для меня данный факт был открытием! Более того, существует большое количество способов, решающих данную проблему. Все они собраны воедино по одному адресу на GitHub - HTML5 Cross Browser Polyfills . Вся эта коллекция называется “Кросс-браузерные заплатки для HTML5”, но в нашем случае нужен только один раздел этой коллекции - Web Forms : input placeholder.1
placeholder
Ого - там не одно решение, а целых одиннадцать! Причем, все они реализованы на JavaScript, поэтому и кросс-браузерные. Выбирать можно любой, какой понравиться - принцип работы и способ подключения к HTML-странице у них всех почти одинаков. Я возьму для себя способ jquery.placeholder.js, просто потому, что название понравилось.
Плагин
может реализовать поддержку атрибута 1
jquery.placeholder.js
как в Internet Explorer 7 или 8, так и в Internet Explorer 6. Ну, Internet Explorer 6 - это уже слишком! На момент написания статьи многие верстальщики (конечно, не все) имеют тенденцию “забывать” о существовании даже Internet Explorer 8.1
placeholder
Подключение плагина jquery.placeholder.js
Подключение плагина
абсолютно стандартное для такого рода скриптов. Ниже привожу пример такого подключения в HTML-коде:1
jquery.placeholder.js
Затем идет скрипт инициализации для данного плагина. Общая картина будет выглядеть таким образом:
Плагин
делает в HTML-документе выборку по двум HTML-элементам - 1
jquery.placeholder.js
и 1
input
. А затем применяет к ним метод 1
textarea
- все просто.1
placeholder()
HTML-форма с placeholder
Ниже привожу пример HTML5-формы, в которой применен атрибут
в полях ввода, реализованных через элемент 1
placeholder
. А также в элементе 1
input
:1
textarea
Проверка поддержки placeholder в IE8
JS-скрипты подключены и создана HTML-разметка. Для тестирования работы плагина
воспользуюсь браузером, в котором заведомо не реализована поддержка атрибута 1
jquery.placeholder.js
- это Internet Explorer 8. Открываю созданную HTML-страничку в этом браузере (связка Windows XP + IE8) и вижу результат:1
placeholder
Галочками отмечены поля, в которых сработал плагин
- если бы не он, там было бы пусто. Отлично - плагин работает и его можно применять в деле, на готовом проекте!1
jquery.placeholder.js