Как стать автором
Обновить

Комментарии 56

Добро пожаловать на хабр!

Демку еще хотелось бы к статье :)
Поправте, стили для Firefox. Там лишнее двоеточее #field2::-moz-placeholder вместо #field2:-moz-placeholder.
где там?
Пример не мой, так что не могу.
Вообще, это не лишнее двоеточие, а синтаксис псевдоэлементов в CSS3 — www.w3.org/TR/css3-selectors/#pseudo-elements

Два двоеточия были введены чтобы различать псевдоэлементы от псевдоклассов, хотя для псевдоэлементов из CSS2 можно по преднему использовать и одно двоеточие в рамках обратной совместимости. Но при этом для новых, введённых в CSS3, псевдоэлементов в спецификации запрещают использовать одно двоеточие.
Судя по поддержке атрибута placeholder браузерами придется и дальше эмулировать его при помощи Jquery (ну или аналогов).
Так собсно никаких jQuery:
там только не хватает обработки события submit, чтобы при валидации форма не считалась заполненной, и плейсхолдер не отсылался на сервер
Ну это само собой разумеется и прописывается в обработчике формы.
НЛО прилетело и опубликовало эту надпись здесь
Для тех, кто так подумает, это не обернется таким уж злом.
НЛО прилетело и опубликовало эту надпись здесь
Будет полезным поводом, чтобы понять: «Не клепай готовые примеры, учи язык!»
НЛО прилетело и опубликовало эту надпись здесь
Наверное эпоха форумов сказывается, когда человек спросит на сделать что либо на php, а ты ему скажешь с помощью какой функции это реализовать и дашь наводку, тебе скажут: «Лучше бы готовый пример дал, чем учить тут меня!»
В этом примере больше недостатков, чем пользы.

Необходимость обработки сабмит (и совпадения всех default значений в HTML и обработчике, что особенно весело, когда форм много и все с локализацией)
Невозможность ввести default значение
Невозможно отличить по внешнему виду, было уже что-то введено или нет
Некорретная работа с password полями

Такие примеры — издевательство над пользователями, которые обязательно столкнутся со всем вышеперечисленным, но уже потом :)
Честно говоря я уже отвык писать код, как представлено у Вас по ссылке.
Посмотрите на возможную реализацию на Jquery:
predvoditelev.ru/page/placeholder_for_input_and_textarea
хммм, а почему у меня получалось стилизовать просто через input.placeholder?
А так да, очень православный атрибут. А альтернативно одаренные браузеры начинают работать за счет небольшой jQuery оплетки.
Может вы работали со скриптовой эмуляцией placeholder'а, а не с нативным?
Нет нет, я понял в чем у меня тогда дело было. Тогда по макету плейсхолдер как раз и должен был быть такой же серый, как идет по умолчанию. Т.е. мой код игнорировался, но делалось все равно как надо.
Но где же я видел тогда input.placeholder? Возможно, да, в скриптовой эмуляции.
Совет автору (да и остальным) на будущее: если раскрасить табличку (например вот так), она становится на порядок нагляднее.
Судя по таблице Firefox 4 и Safari 5 шагают в ногу со временем.
Когда наконец сделает один нормальный браузер для всех. Хотя везде свои плюсы и минусы.
Технически, Firefox и Safari предлагают разные (и несовместимые) варинты расширения CSS, ни один из которых пока не является стандартным. В первом случае это псевдокласс, во втором пресевдоэлемент.

Так что и ноги разные, и не в ногу со временем, а предлагая решения на будущее. (см. также обсуждение в рабочей группе по CSS lists.w3.org/Archives/Public/www-style/2011Apr/0240.html — и последующие ответы).

мне кажется, что только через 4 года можно будет пользоваться этим атрибутом и не беспокоиться о совместимости.
Хотя если вспомнить историю с IE6, то вообще через 10 лет.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
да есть уже готовые плагины, только они еще вытаскивают значение из атрибута инпута «placeholder» и обрабатывают события «submit» (и забывают «serialize»)
кстати, многие проблемы снимаются, если не трогать value инпута, а приделывать плейсхолдер поверх инпута (или под ним).
Спасибо, уже давно хотел иметь возможность изменять хотя бы цвет текста плейсхолдера, а тут, оказывается, такие возможности! Ну, по крайней мере, в теории :-)
НЛО прилетело и опубликовало эту надпись здесь
Получается, что так.
Опера смешная, реализовала нативную поддержку плейсхолдера, но не реализовала ни одного способа его стилизации. При том, что джаваскриптовые обертки зачастую детектят нативную поддержку и отключаются.
Т.е. по вашему, браузер, который реализовал, например, overflow: scroll, обязан реализовать способ стилизации скролбаров?
Нет, по-моему, браузер, который реализовал плейсхолдер, обязан реализовать способы стилизации этого плейсхолдера. Ибо нестилизуемый плейсхолдер хуже чем полное отсутствие плейсхолдера.
В чем разница со скролбарами? Почему их стилизацию можно не реализовывать, а плейсхолдер вы считаете бесполезным без стилизации?
НЛО прилетело и опубликовало эту надпись здесь
значит хреновые обертки, если не учитывают специфику различных браузеров.
Не было никакой специфики до выхода оперы 11. Были браузеры, которые поддерживали плейсхолдер и поддерживали его стилизацию, а были браузеры, которые не поддерживали плейсхолдер. Поэтому ни одна обертка даже не заморачивалась никакой «спецификой». Либо фигачили эмуляцию везде не глядя, либо делали так:
if ('placeholder' in document.createElement('input')) { ... }


А потом появилась опера и все сломала. Пришлось сразу писать для нее отдельные костыли, что усложнило весьма простой изначально код.
ну ведь браузеры постоянно меняются. просто проапдейтят плагин, да и все)
В этих плейсхолдерах мне ненравится то, что когда поле становится активным, то подсказка исчезает. Иногда сложно вспомнить что в это поле вводить. Хорошо сделано на сайте me.com — там плейсхолдер исчезает только тогда, когда начинаешь ввод.
image
Но в этом случае может случиться и так, что пользователь может подумать, что, например «name@example.com» — это уже введённая информация и попытается её выделить (а это у него, естественно, не получится) — в общем возможно лёгкое помешательство.

В этом случае, думаю, будет неплохо изменять цвета плейсхолдера на менее контрастные при фокусировке на поле (видел довольно много подобных реализаций, но где конкретно — сейчас не вспомню). Такой приём почти полностью исключит двоякое толкование плейсхолдера.
НЛО прилетело и опубликовало эту надпись здесь
Обычно смотришь на второе поле и уже исходя из него определяешь, что вводить нужно. Звучит сложно, но происходит за секунду всё это в голове :)
Второе? А если их 10, куда смотреть, чтобы понять, что нужно вводить в текущее?
Я имел ввиду пример выше «логин — пароль». Вообще, мне больше нравится когда при установки курсора подсказка исчезает, так что думаю, что всё это дело вкуса в какой-то мере.
Это дело не вкуса, удобства пользования. В вашем случае что бы посмотреть, что нужно вводить в поле, где находится курсор, его нужно убрать, потом вернуть.
А Вы уверены, что всем пользователям настолько неудобно, когда исчезает подсказка при установки курсора? Вот исходя из этого вопроса я и решил, что всё это — дело вкуса.
Всем пользователям неудобно, когда неясно что нужно писать в поле, в котором курсор.
Но не всем неясно… :)
Интересы телепатов я не учел.
такой эффект можно получить с помощью jq-watermark
где-то видел пример, где при фокусе плейсхолдер отъезжает влево и становится обычным лейблом к инпуту. прикольно смотрится и понятно.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации