В этой статье рассматривается пример создания формы поиска для блога на WordPress, с использованием HTML5 и CSS3.
Форма будет одинаково отображаться во всех браузерах, и иметь валидный HTML5 и CSS3 код.
Созданная форма будет обладать такими качествами, как:
- закругленные уголки,
- изображение внутри input,
- размер input изменяется при щелчке на нем,
- кнопка для очистки формы.
Шаг 1. Настройки functions.php
Для начала, в папке с вашей темой найдите файл functions.php. Убедитесь, что функции get_search_form там нет. Это можно сделать через поиск. Теперь добавьте следующее:
1
2
3
4
5
6
7
8
9
10
|
function search_form( $form ) {
$form = ‘<form role=”search” method=”get” id=”searchform” action=”‘ . home_url( ‘/’ ) . ‘” >
<label for=”s”>’ . __(‘Найти:’) . ‘</label>
<input type=”search” placeholder=”‘.__(“Поиск”).‘” value=”‘ . get_search_query() . ‘” name=”s” id=”s” />
<input type=”submit” id=”searchsubmit” value=”Поиск” />
</form>’;
return $form;
}
add_filter( ‘get_search_form’, ‘search_form’ );
|
Мы создали HTML5-код формы поиска.
Обратите внимание на 4-5 строки: там используется новый HTML5 атрибут placeholder, который добавляет замещающий текст для строки поиска input.
Также, в 4 строке для input задан тип type=”search”. Это добавляет кнопку-крестик, при помощи которой можно быстро очистить форму поиска.
Теперь давайте создадим стиль CSS3 для формы.
Шаг 2. Добавляем стили формы
Откройте файл style.css. Если в нем уже прописаны какие-то свойства для формы поиска, то их надо удалить.
Теперь надо добавить следующий код:
1
2
3
4
5
|
#searchform {
margin: 0; /* удаляем отступы */
vertical-align: middle; /* вертикальное выравнивание формы по середине */
float: right; /* обтекание по правому краю */
}
|
Сейчас вы создали стиль для самой формы. Теперь надо добавить стили для полей.
Шаг 3. Добавляем стили полей
Сначала пропишем основные стили input:
9
10
11
12
13
14
15
16
|
input#s {
border: 1px solid #DDD; /* цвет и ширина рамки */
color: #585858; /* цвет замещающего текста */
font-size: 1em; /* размер шрифта внутри формы */
margin: 0; /* удаляем отступы */
height: 25px; /* высота формы */
width: 200px; /* длина формы */
}
|
Теперь добавим изображение лупы внутрь формы:
9
10
11
|
input#s {
background: url(“images/search.png”) no-repeat scroll 5px 2px #FFFFFF;
padding: 0px 10px 0px 25px;
|
Padding нужен для того, чтобы вводимый текст начинался после изображения.
Сейчас сделаем уголки закругленными:
9
10
11
12
|
input#s {
border-radius: 5px; /* закругляем уголки на 5px */
-webkit-border-radius: 5px; /* закругляем уголки для webkit */
-moz-border-radius: 5px; /* закругляем уголки для firefox */
|
В итоге, стили для поля input должны выглядеть так:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
input#s {
background: url(“images/search.png”) no-repeat scroll 5px 2px #FFFFFF;
padding: 0px 10px 0px 25px;
border: 1px solid #DDD;
border-radius: 5px;
-webkit-border-radius: 5px; /* закругляем уголки для webkit */
-moz-border-radius: 5px; /* закругляем уголки для firefox */
color: #585858; /* цвет замещающего текста */
font-size: 1em;
margin: 0;
height: 25px;
width: 200px;
}
|
Шаг 4. Настройка активного поля input
Сейчас, если вы откроете вашу форму в браузере, то увидите, что при нажатии на нее, она будет подсвечиваться по контуру. Давайте уберем рамку у активного input:
1
2
3
|
input#s:focus {
outline: none;
}
|
Далее, можно сделать изменяющийся размер input, когда при нажатии на него мышкой, он будет увеличиваться влево:
1
2
3
4
|
input#s:focus {
outline: none;
width: 250px;
}
|
Помните, когда в самом начале написали float: right
? Так вот, кроме выравнивания, это свойство дает эффект увеличения влево.
Шаг 5. Последние штрихи
И последнее, уберем отображение кнопки “Поиск” и надписи “Найти:”.
1
2
3
4
5
6
7
|
#searchsubmit {
display: none;
}
#searchform label {
display: none;
}
|
Шаг 6. Вставим форму поиска в шаблон
Вставить форму поиска в шаблон можно такой функцией:
1
|
<?php get_search_form(); ?>
|
Также вы можете использовать виджет “Поиск”.
Форма будет выглядеть так:
Если у вас появились какие-то вопросы, пишите, я обязательно отвечу 🙂