Pull to refresh

Comments 56

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

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

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

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

Такие примеры — издевательство над пользователями, которые обязательно столкнутся со всем вышеперечисленным, но уже потом :)
хммм, а почему у меня получалось стилизовать просто через 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 лет.
UFO just landed and posted this here
UFO just landed and posted this here
да есть уже готовые плагины, только они еще вытаскивают значение из атрибута инпута «placeholder» и обрабатывают события «submit» (и забывают «serialize»)
кстати, многие проблемы снимаются, если не трогать value инпута, а приделывать плейсхолдер поверх инпута (или под ним).
Спасибо, уже давно хотел иметь возможность изменять хотя бы цвет текста плейсхолдера, а тут, оказывается, такие возможности! Ну, по крайней мере, в теории :-)
UFO just landed and posted this here
Опера смешная, реализовала нативную поддержку плейсхолдера, но не реализовала ни одного способа его стилизации. При том, что джаваскриптовые обертки зачастую детектят нативную поддержку и отключаются.
Т.е. по вашему, браузер, который реализовал, например, overflow: scroll, обязан реализовать способ стилизации скролбаров?
Нет, по-моему, браузер, который реализовал плейсхолдер, обязан реализовать способы стилизации этого плейсхолдера. Ибо нестилизуемый плейсхолдер хуже чем полное отсутствие плейсхолдера.
В чем разница со скролбарами? Почему их стилизацию можно не реализовывать, а плейсхолдер вы считаете бесполезным без стилизации?
UFO just landed and posted this here
значит хреновые обертки, если не учитывают специфику различных браузеров.
Не было никакой специфики до выхода оперы 11. Были браузеры, которые поддерживали плейсхолдер и поддерживали его стилизацию, а были браузеры, которые не поддерживали плейсхолдер. Поэтому ни одна обертка даже не заморачивалась никакой «спецификой». Либо фигачили эмуляцию везде не глядя, либо делали так:
if ('placeholder' in document.createElement('input')) { ... }


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

В этом случае, думаю, будет неплохо изменять цвета плейсхолдера на менее контрастные при фокусировке на поле (видел довольно много подобных реализаций, но где конкретно — сейчас не вспомню). Такой приём почти полностью исключит двоякое толкование плейсхолдера.
UFO just landed and posted this here
Обычно смотришь на второе поле и уже исходя из него определяешь, что вводить нужно. Звучит сложно, но происходит за секунду всё это в голове :)
Второе? А если их 10, куда смотреть, чтобы понять, что нужно вводить в текущее?
Я имел ввиду пример выше «логин — пароль». Вообще, мне больше нравится когда при установки курсора подсказка исчезает, так что думаю, что всё это дело вкуса в какой-то мере.
Это дело не вкуса, удобства пользования. В вашем случае что бы посмотреть, что нужно вводить в поле, где находится курсор, его нужно убрать, потом вернуть.
А Вы уверены, что всем пользователям настолько неудобно, когда исчезает подсказка при установки курсора? Вот исходя из этого вопроса я и решил, что всё это — дело вкуса.
Всем пользователям неудобно, когда неясно что нужно писать в поле, в котором курсор.
Интересы телепатов я не учел.
такой эффект можно получить с помощью jq-watermark
где-то видел пример, где при фокусе плейсхолдер отъезжает влево и становится обычным лейблом к инпуту. прикольно смотрится и понятно.
UFO just landed and posted this here
Sign up to leave a comment.

Articles