Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

Как сделать, чтобы элемент текстового поля при получении фокуса изменял свой цвет?

Раздел: 

В статье описан особый прием, с помощью которого можно настроить поле таким образом, чтобы при присвоении ему фокуса его граница меняла свой цвет.

Как сделать, чтобы элемент текстового поля при получении фокуса изменял свой цвет

Как уже упоминалось не единожды, граница для текстового поля устанавливается посредством свойства CSS border. Следовательно, работа нашего приема будет опираться на возможности этого свойства. За текстовое поле отвечает тег input. Теперь обратимся к сущности понятия фокуса. Его объект получает в том случае, если пользователь кликнул по нему мышью или активизировал каким-либо другим способом. В случае текстового элемента это будет означать перевод курсора к соответствующему полю, что позволяет вводить информацию в него.

Теперь осталось только связать работу свойства border с явлением присвоения фокуса. Это осуществляется с помощью псевдокласса :focus. Его достаточно присвоить соответствующему классу или объектам input или textarea.

проститутки ярославля элитные.

Пример кода данного приема приведен ниже:

HTML

<form action="">
   <p><input type="text" size="30" class="feildtext" /></p>
   <p><input type="submit" value="Отправить" /></p>
</form>

CSS

input.feildtext {
    border: 1px solid #ccc;/*цвет рамки при нормальных условиях*/
   }
input.feildtext:focus {
    border: 1px solid #6733ae;/*цвет рамки при переходе фокуса*/
   }

Обращаю внимание на то, что данный псевдокласс требует обращения к селектору класса, чтобы изменение цвета границ не распространялось на кнопку отправки формы.

В результате в браузере получаем:

изменение цвета при получении фокуса

Следует сделать акцент на том, что всеми любимый Internet Explorer на ранних этапов своего становления не поддерживает рассматриваемый в статье псевдокласс. Для разрешения этой проблемы обратимся к скрипту. В этом случае нам помогут события onfocus (присваивающее фокус) и onblur (избавляющее от него). Смотрим пример применения:

HTML

<form action="">
   <p><input type="text" size="30" class="feildtext"
onfocus="this.className='action'" onblur="this.className='text'" /></p>
   <p><input type="submit" value="Отправить" /></p>
</form>

Результат в браузере будет идентичен прошлому случаю.

В каких браузерах работает?

8.0+ 1.0+ 7.0+ 1.0+ 1.0+ 1.0+ 1.0+