февраля 14, 2010Поисковое поле с помощью CSS и фонового рисунка
Недавно я столкнулся с таким поисковым полем на поддерживаемом мной сайте:
Картинка с лупой была определена в поле как background и, соответственно, кнопкой не являлась. Пользователь мог только вводить запрос в поле и нажимать кнопку ENTER. Нужно было исправить эту ситуацию.
Сначала на странице шаблона сайта я написал следующий код:
Был создан отдельный блок, содержащий саму форму поиска. Оговорюсь, что сайт работает на ASP.NET MVC, и action = “/search/” обрабатывает специальный контроллер. Форма состоит из текстового поля и кнопки-изображения. Причем, при помещении курсора в поле надпись “Поиск” удаляется сама (спасибо onclick="this.value=''").
Если просмотреть страницу в браузере, получим такой результат:
Видно, что кнопка находится не в поле.
Не зря в каждом теге я расставил идентификаторы. CSS спешит на помощь
. В файле стилей определяем стили для блока, поля поиска и кнопки:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /* search */
#search_box {
width: 192px;
height: 24px;
border: 1px solid #8c8c8c;
margin: 10px 9px;
}
#search_box #s {
float: left;
padding: 0;
margin: 6px 0 0 6px;
border: 0;
width: 159px;
background: none;
}
#search_box #go {
float: right;
margin: 3px 4px 0 0;
}
Комментарии, думаю, излишни. Смотрим в браузере:
Отлично! Кнопка кликабельна!
P.S. > Данное решение работает во всех браузерах, в том числе и в IE6 (который так раздражает веб-разработчиков). Я понимаю, что можно написать (впрочем я и написал сначала) более красивый код с применением, например, jQuery, но IE6… Предлагайте ваши варианты в комментах, будет интересно сравнить.

