Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
YouTube 150 Подписчики
Telegram 241 Подписчики
VK 0 Подписчиков
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Кодирование

Красивые поля ввода

  • 28.07.2005

Автор статьи: Дмитрий Турецкий

Красивые поля ввода

[самодельные поля ввода] материал подготовил: Дмитрий Турецкий
28.07.2005

При создании веб-сайтов часто возникает желание что-нибудь в них сделать покрасивее, но в большинстве случаев возможности HTML достаточно сильно ограничивают полет фантазии веб-дизайнеров. Появление и широкое распространение CSS значительно упростило эту ситуацию, но тем не менее многие вещи и с помощью CSS делаются не столь тривиально, как хотелось бы…

Практически на каждом современном сайте присутствуют формы. Это могут быть ввод записи в блог, форма поиска, подписка — у каждого сайта найдется какая-то область, требующая ввода данных от пользователя. И именно формы, пожалуй, являются наиболее консервативной частью сайта — на абсолютном большинстве сайтов используются полностью стандартные элементы, а на остальных добавляется указание размеров, цветов и иногда рамок с помощью CSS. Редко кто идет дальше…

В какой-то мере это оправдано — стандартные элементы позволяют посетителю с первого взгляда понять, где что, не говоря уже о том, что автор сайта страхуется от возможных проблем, связанных с разным отображением элементов в разных браузерах. Но все-таки очень хочется сделать что-то поэлегантнее, чем стандартные текстовые поля, загнанные в таблицу…

Для начала попробуем нарисовать простую форму в том виде, как она часто присутствует на сайтах (за исключением того, что мы сразу уберем таблицу — все-таки 21-й век на дворе!).

<form action="" method="post">  имя: <input type="text" name="name"><br>  Email: <input type="text" name="email"><br>  <input name="submit" type="submit" value="submit">  </form>

имя:
Email:

Стандартные элементы позволяют посетителю проще ориентироваться на сайте
М-да, выглядит не очень впечатляюще… Попробуем ее немножко облагородить. Для этого пропишем у всех элементов какие-то классы (мы их потом отформатируем с помощью CSS), а кроме того, добавим теги fieldset (группировка элементов формы), legend (название для fieldset — похоже на тег caption для таблиц) и label (выводит «этикетки» для элементов формы, причем щелчок по «этикетке» передаст фокус ввода соответствующему элементу).

<form action="" method="post">  <fieldset class="fld">  <legend>Подписка на новости сайта</legend>  <label for="name">имя:</label> <input type="text"   id="name" name="name" class="txtfld"><br>  <label for="email">Email:</label> <input type="text"   id="email" name="email" class="txtfld"><br>  <input id="submit" name="submit" type="submit" value="submit" class="submit">  </fieldset>  </form>
Подписка на новости сайта




Не сказать, чтобы стало намного лучше, но ведь это еще не конечный результат, а только заготовка… Добавим немного CSS и опишем размеры и положение полей.

.fld { width:300px; }  .fld label { clear:both; text-align:right; width:70px; float:left;   margin:0; margin-top:0.3em; }    .fld .txtfld { margin:3px; height:20px; width:200px; }
Подписка на новости сайта






Теги FIELDSET, LEGEND и LABEL редко используются в формах. А зря…
Уже лучше. Теперь сделаем следующий шаг и спрячем поля ввода, сохранив, разумеется, их функциональность. Для этого мы просто сделаем
рамки вокруг этих элементов нулевой ширины (если присвоить элементам атрибут display:none или visibiliy:hidden, то поля исчезнут, но вместе с ними пропадет и функциональность). Дописываем CSS:

.fld { width:300px; }  .fld label { clear:both; text-align:right; width:70px; float:left;   margin:0; margin-top:0.3em; }    .fld .txtfld { margin:3px; height:20px; width:200px; border:0 solid red; }  .subm { border:0 solid red; margin:3px; height:20px; width:80px; }
Подписка на новости сайта






Указание в CSS свойства display:none не только прячет элемент, но и уничтожает его функциональность…
Все, что теперь осталось (ну, почти все), — это нарисовать какие-то картинки, подходящие к вашему дизайну, и использовать их в качестве фона для полей ввода. Разумеется, вам придется еще немного поиграть с отступами и полями, чтобы текст точно попадал на ваши новые поля, а также с размерами шрифта, его насыщенностью, разрядкой, цветом и так далее, но эффект того стоит. Главное — не переусердствовать…

.fld { width:300px; }  .fld label { clear:both; text-align:right; width:70px; float:left;   margin:0; margin-top:0.3em; }    .fld .txtfld { margin:3px; height:20px; width:200px; border:0 solid red;   background:transparent url('input_box.gif') no-repeat; }  .subm { border:0 solid red; margin:3px 3px 3px 73px; height:20px; width:80px;   background:transparent url('input_box.gif') no-repeat; }
Подписка на новости сайта






Кнопочки и прочие картинки лучше рисовать тем, кто умеет это делать. Я — нет, так что прошу прощения за качество…
Единственное, что осталось доделать, это учесть пользователей, которые смотрят вашу страницу через IE5 (их становится все меньше, но число еще достаточно заметное). Дело в том, что этот браузер почему-то прокручивает фоновую картинку при вводе текста. Можно вместо no-repeat указать fixed — это исправит положение для IE5, но испортит для всех остальных браузеров, так как картинка зафиксируется на одном месте и не будет двигаться при прокрутке страницы (в полном соответствии со стандартом). Поэтому мы воспользуемся одним из стандартных методов защиты от IE5:

.fld { width:300px; }  .fld label { clear:both; text-align:right; width:70px; float:left;   margin:0; margin-top:0.3em; }    .fld .txtfld { margin:3px; height:20px; width:200px; border:0 solid red;   background:transparent url('input_box.gif') fixed; }  fieldset>input.txtfld { background:transparent url('input_box.gif') no-repeat; }  .subm { border:0 solid red; margin:3px 3px 3px 73px; height:20px; width:80px;   background:transparent url('input_box.gif') fixed; }  fieldset>input.subm { background:transparent url('input_box.gif') no-repeat; }
По возможности не забывайте про старые браузеры
Вот, пожалуй, и все. Разумеется, эту идею можно развивать разными способами — например, можно использовать невидимые поля ввода для доступа к «секретным» областям сайта (правда, такая защита действует до тех пор, пока посетитель в код страницы не заглянет), но лучше все же не пугать и не путать пользователя, ограничившись подгонкой дизайна форм под дизайн ваших страниц.

Успехов вам и вашему сайту!

Ссылки по теме

  • CSS: пара слов о шрифтах
  • Что такое каскадные таблицы стилей (CSS)
Не переусерствуйте с украшательствами — это может значительно испортить впечатление от вашего сайта…

 

Первоисточник — www.hostinfo.ru

Алексей Волков

Предыдущий материал
  • HTML

«Резиновая» рамка с фигурными углами

  • 27.07.2005
  • alexvolkov
Read More
Следующий материал
  • PHP

PHP: секреты файла php.ini. Часть 3

  • 29.07.2005
  • Алексей Волков
Read More
Вас также может заинтересовать
Read More
  • CSS

Формализация CSS

  • Алексей Волков
  • 23.05.2012
Read More
  • JQuery

Хитрости JQuery

  • jokar
  • 23.05.2012
Read More
  • JQuery

Закруглить углы изображения при помощи JQuery

  • jokar
  • 21.05.2012
Read More
  • JQuery

Знакомьтесь: Nivo Slider от jQuery

  • tamo
  • 28.09.2010
Read More
  • JQuery

Первое знакомство с jQuery: часть первая.

  • tamo
  • 26.09.2010
Read More
  • JQuery

Продолжаем изучать jQuery: часть вторая. Учимся выделять элементы.

  • tamo
  • 26.09.2010
Read More
  • JQuery

Продолжаем изучать jQuery: работа с анимацией. Часть третья.

  • tamo
  • 26.09.2010
Read More
  • Flash

TiltViewer — 3D Flash галерея

  • Nika75
  • 21.09.2010

Добавить комментарий

Для отправки комментария вам необходимо авторизоваться.

Свежие посты
  • Дайджест постов Сергея Людкевича
    • 12.09.24
  • Как юристы тормозят бизнес
    • 30.08.24
  • Продвижение оптовых кампаний в Яндекс Директ
    • 06.03.24
  • Cарафанное радио
    • 13.01.24
  • 5-55: История компании
    • 01.03.23
Маркетер
  • О проекте
  • Информационное спонсорство
  • Рекламным агентствам
  • Ссылки
(с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

Введите ключевые слова для поиска и нажмите Enter