Тема урока.
На сегодняшнем уроке мы будем создавать страницу с контактами и формой обратной связи для нашего сайта визитки. Также научимся создавать навигацию по сайту с использованием хлебных крошек.
Обзор новых терминов.
Форма обратной связи — это форма которая позволяет посетителю сайта отправить заявку на услугу или обратный звонок.
Обратный звонок — услуга на сайте позволяющая заказать звонок от поставщика услуг на свой телефон в удобное время. Данная услуга на сайте увеличивает количество заказов услуги с сайта. Повышает конверсии.
Конверсия в интернет-маркетинге — это отношение числа посетителей сайта, выполнивших на нём какие-либо целевые действия к общему посетителю сайта. К примеру если одни посетитель из 100 заказал услугу. То конверсия составляет 1/100 или 1%.
Хлебные крошки — (навигационная цепочка, англ. Breadcrumbs) – это элемент навигации по сайту, который представляет собой путь от главной страницы сайта, до текущей страницы, на которой в настоящий момент находится пользователь.
Пагинация (pagination) — Нумерация страниц на сайте с ссылками на каждую отдельную страницу.
Обзор новых классов Bootstrap.
breadcrumb — класс помогающий создавать хлебные крошки.
Пример использования:
<h2>Хлебные крошки и пагинация</h2> <p> .breadcrumb класс указывает местоположение текущей страницы в пределах навигационной иерархии:</p> <ol class="breadcrumb"> <li><a href="#">Главная</a></li> <li><a href="#">Услуги</a></li> <li><a href="#">Веб-дизайн</a></li> <li class="active">Дизайнер Иван Иванович Иванов</li> </ol>
pager- Класс позволяющий реализовать навигацию по сайту с кнопками вперед назад.
<h2>pager</h2> <p> Класс .pager предоставляет простые ссылки разбивки на страницы (Предыдущий / Следующий): </p> <ul class="pager"> <li><a href="#">Предыдущий</a></li> <li><a href="#">Следующий</a></li> </ul>
.previous и .next классы выравнивания каждую ссылку по сторонам:
<h2>Выравнивает .pager предыдущую кнопку слева и Выравнивает .pager кнопку следующая справа</h2> <p>.previous и .next классы выравнивания каждую ссылку по сторонам:</p> <ul class="pager"> <li class="previous"><a href="#">Предыдущий</a></li> <li class="next"><a href="#">Следующий</a></li> </ul> <hr>
disabled
.disabled Класс указывает на некликабельную ссылку. Данный класс используется если следующей или предыдущей страницы не существует.
<h2>disabled</h2> <p>.disabled Класс указывает на некликабельную ссылку:</p> <ul class="pager"> <li class="previous disabled"><a href="#">Предыдущий</a></li> <li class="next"><a href="#">Следующий</a></li> </ul> <hr>
Класс .pagination предоставляет ссылки разбивки по страницам
<h2>Пагинаця</h2> <p>Класс .pagination предоставляет ссылки разбивки по страницам:</p> <ul class="pagination"> <li><a href="#">«</a></li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li><a href="#">6</a></li> <li><a href="#">»</a></li> </ul>
Для управления размерами пагинации используются классы pagination-sm и pagination-lg
<h2>Размеры пагинации</h2> <p>Изображение большего класса .pagination:</p> <ul class="pagination pagination-lg"> <li><a href="#">«</a></li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">»</a></li> </ul> <p>Стандартный класс .pagination:</p> <ul class="pagination"> <li><a href="#">«</a></li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">»</a></li> </ul> <p>Меньший класс .pagination:</p> <ul class="pagination pagination-sm"> <li><a href="#">«</a></li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">»</a></li> </ul>
Для отображения активной ссылки используется класс .active
<h2>Некликабельность и активность ссылки</h2> <p>.disabled Класс указывает на некликабельную ссылку, а .active класс указывает на текущую страницу:</p> <ul class="pagination"> <li><a href="#">«</a></li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li class="disabled"><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li class="active"><a href="#">6</a></li> <li><a href="#">»</a></li> </ul> <hr>
Классы меток позволяют пометить тот или иной текст.
<h1>Метки</h1> <hr> <h2>Класс .label </h2> <p>Различные классы .label позволяют вставить метку внутри элемента (автоматически подогнать размер элемента):</p> <h1>Заголовок 1 <span class="label label-default">Новинка</span></h1> <h3>Заголовок 3 <span class="label label-default">Новинка</span></h3> <h5>Заголовок 5 <span class="label label-default">Новинка</span></h5> <p>Параграф <span class="label label-default">Новинка</span></p> <hr> <hr>
Для управления фонового цвета метки используйте классы label-default (обычная метка), label-primary(основная метка), label-success(успешная операция), label-info(блок с информацией), label-warning(предупреждение), label-danger(опасность или сообщение о критической ошибке).
Для отображения количества непрочитанных сообщений используется класс badge.
<h2>Знак</h2> <p>Класс .badge указывает на новые или непрочитанные элементы (автоматически отключится, когда нет никаких новых или непрочитанные элементы, с помощью CSS-х: пустой селектор):</p> <p><a href="#">Входящие <span class="badge">17</span></a></p>
Для создания кнопок необходимо использовать класс .btn и по аналогии с метками btn-default,btn-primary и так далее. btn-lg и btn-sm позволяет управлять размером.
Протестируйте различные виды кнопок как показано на примере ниже.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> </head> <body> <div class='container'> <h1>Кнопки</h1> <hr> <h2>Стандарт</h2> <p>.btn Класс добавляет базовый стиль к кнопке:</p> <button type="button" class="btn">Стандартная</button> <hr> <hr> <!--------------------------------> <h2>Белая кнопка</h2> <p>.btn-Класс по умолчанию указывает на кнопку по умолчанию / стандартная:</p> <button type="button" class="btn btn-default">По умолчанию</button> <hr> <!--------------------------------> <h2>Синяя кнопка</h2> <p>.btn-Первичный класс обеспечивает дополнительный визуальный вес и идентифицирует первичное действие в наборе кнопок:</p> <button type="button" class="btn btn-primary">Первичная</button> <hr> <!--------------------------------> <h2>Зеленая кнопка</h2> <p>Класс .btn-success указывает на успешное или положительное действие:</p> <button type="button" class="btn btn-success">Кннопка</button> <hr> <!--------------------------------> <h2>Голубая кнопка</h2> <p>.btn-info Класс указывает на кнопку для информационных сообщений оповещения: </p> <button type="button" class="btn btn-info">Инфо</button> <hr> <!--------------------------------> <h2>Оранжевая кнопка кнопка</h2> <p>Класс .btn-warning указывает, следует соблюдать осторожность с этим действием:</p> <button type="button" class="btn btn-warning">Предупреждение</button> <hr> <!--------------------------------> <h2>Красная кнопка</h2> <p>.btn-danger Класс указывает на опасные или потенциально негативное действие:</p> <button type="button" class="btn btn-danger">Внимение!</button> <hr> <!--------------------------------> <h2>Сылка кнопка</h2> <p>Класс .btn-Link делает кнопку выглядещей как ссылка (все равно будет иметь поведение кнопки):</p> <button type="button" class="btn btn-link">Ссылка</button> <hr> <!--------------------------------> <h2>Большие кнопки</h2> <p>.btn-lg делает большие кнопки:</p> <button type="button" class="btn btn-default btn-lg">Large Default Button</button> <button type="button" class="btn btn-info btn-lg">Большая кнопка Инфо</button> <hr> <!--------------------------------> <h2>Небольшие кнопки</h2> <p>Класс .btn-sm делает небольшие кнопки:</p> <button type="button" class="btn btn-default btn-sm">Small Default Button</button> <button type="button" class="btn btn-info btn-sm">Маленькая кнопка Инфо</button> <hr> <!--------------------------------> <h2>Маленькие кнопки</h2> <p>Класс .btn-xs делает дополнительные маленькие кнопки:</p> <button type="button" class="btn btn-default btn-xs">Маленькая кнопка по умолчанию</button> <button type="button" class="btn btn-info btn-xs">Extra small Info Button</button> <hr> <!--------------------------------> <h2>Кнопка на всю ширину родительского элемента</h2> <p>класс .btn-block делает кнопку на уровне блоков (охватывает всю ширину родительского элемента):</p> <button type="button" class="btn btn-info btn-block">Кнопка на всю ширину</button> <hr> <!--------------------------------> <h2>Активная кнопка</h2> <p>Класс .active делает кнопку выглядещей как нажата:</p> <button type="button" class="btn btn-default">Кнопка по умолчанию</button> <button type="button" class="btn btn-default active">Активная кнопка по умолчанию</button> <br><br> <button type="button" class="btn btn-info">Инфо</button> <button type="button" class="btn btn-info active">Активная кнопка Инфо</button> <hr> <!--------------------------------> <h2>Отключенная кнопка</h2> <p> .disabled атрибут делает кнопку отключенной:</p> <button type="button" class="btn btn-default" disabled="disabled">Отключенная кнопка по умолчанию</button> <br><br> <p>класс .disabled делает кнопку ссылки отключенной:</p> <a href="#" class="btn btn-info disabled" role="button">Отключенная ссылка Инфо</a> <hr> <!--------------------------------> </div> </body> </html>
Мы уже изучали элементы для создания формы в курсе по изучению HTML5. Теперь давайте научимся создавать красивые формы с использованием Bootstrap.
Для создания базовой формы нам необходим делить элементы по группам. Для этого мы используем класс form-group. В блок с таким классом поместим метку и элемент ввода с классом form-control. Посмотрите какая отличная форма получилась.
<h2>Вертикальная (базовая) Форма</h2> <form> <div class="form-group"> <label for="email">Email:</label> <input type="email" class="form-control" id="email" placeholder="Введите email"> </div> <div class="form-group"> <label for="pwd">Пароль:</label> <input type="password" class="form-control" id="pwd" placeholder="Введите пароль"> </div> <div class="checkbox"> <label><input type="checkbox">Запомнить меня</label> </div> <button type="submit" class="btn btn-default">Отправить</button> </form>
Иногда бывает необходимо создать форму элементы ввода в которой расположены в одну линию. В этом нам поможет класс form-inline.
<h2>Форма в одну линию</h2> <p>Сделайте окно просмотра больше, чем 768px шириной, чтобы увидеть, что все элементы формы, являются инлайн, выравнивание по левому краю, а метки рядом.</p> <form class="form-inline"> <div class="form-group"> <label for="email">Email:</label> <input type="email" class="form-control" id="email" placeholder="Введите emai"> </div> <div class="form-group"> <label for="pwd">Пароль:</label> <input type="password" class="form-control" id="pwd" placeholder="Введите пароль"> </div> <div class="checkbox"> <label><input type="checkbox"> Запомнить меня</label> </div> <button type="submit" class="btn btn-default">Отправить</button> </form>
Для создания горизонтальной формы используем класс form-horizontal
Горизонтальная форма отличается от базовой тем, что описание элемента и сам элемент ввода расположены в одной строке.
<h2>Горизонтальня форма</h2> <form class="form-horizontal"> <div class="form-group"> <label class="control-label col-sm-2" for="email">Email:</label> <div class="col-sm-10"> <input type="email" class="form-control" id="email" placeholder="Введите email"> </div> </div> <div class="form-group"> <label class="control-label col-sm-2" for="pwd">Пароль:</label> <div class="col-sm-10"> <input type="password" class="form-control" id="pwd" placeholder="Введите пароль"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox"> <label><input type="checkbox"> Запомнить меня</label> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">Отправить</button> </div> </div> </form>
Практическое задание
Сверстайте страницу для своего сайта визитки с использованием изученного материала.
- Создайте хлебные крошки под основным меню.
- Добавьте на сайт карту. Как добавить карту мы изучали в HTML5.
- Создайте форму обратной связи.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>сайт сервис</title> <!-- Bootstrap Ядро CSS --> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> </head> <body> <!-- Содердание страницы --> <div class="container"> <!-- заголовок страницы и хлебные крошки --> <div class="row"> <div class="col-lg-12"> <h1 class="page-header">Контакты <small>Студия веб-Дизайна</small> </h1> <ol class="breadcrumb"> <li><a href="index.html">Главная</a> </li> <li class="active">Контакты</li> </ol> </div> </div> <!-- /.row --> <!-- контент Row --> <div class="row"> <!-- колонка под карту --> <div class="col-md-8"> <!-- гугл карта --> <iframe width="100%" height="400px" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2574.38192642293!2d73.09968791549534!3d49.81648654072176!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x424346e15e59ab85%3A0x3253473e8c3856f!2z0LHRg9C70YzQstCw0YAg0JzQuNGA0LAgMzcsINCa0LDRgNCw0LPQsNC90LTQsCAxMDAwMDA!5e0!3m2!1sru!2skz!4v1476694644178"></iframe> </div> <!-- колонка контакты --> <div class="col-md-4"> <h3>Контакты</h3> <p> бульвар Мира 37<br>бульвар Мира 37, Караганда 100000<br> </p> <p><i class="fa fa-phone"></i> <abbr title="Phone">Т</abbr>: (777) 777-7777</p> <p><i class="fa fa-envelope-o"></i> <abbr title="Email">E</abbr>: <a href="mailto:name@example.com">name@example.com</a> </p> <p><i class="fa fa-clock-o"></i> <abbr title="Hours">Г</abbr>: Понедельник -Пятница : 10:00 до 18:00</p> <ul class="list-unstyled list-inline list-social-icons"> <li> <a href="#"><i class="fa fa-facebook-square fa-2x"></i></a> </li> <li> <a href="#"><i class="fa fa-linkedin-square fa-2x"></i></a> </li> <li> <a href="#"><i class="fa fa-twitter-square fa-2x"></i></a> </li> <li> <a href="#"><i class="fa fa-google-plus-square fa-2x"></i></a> </li> </ul> </div> </div> <!-- /.row --> <!-- Контактная форма --> <div class="row"> <div class="col-md-8"> <h3>Отправить сообщение</h3> <form name="sentMessage" id="contactForm" novalidate> <div class="control-group form-group"> <div class="controls"> <label>Ваше имя:</label> <input type="text" class="form-control" id="name" required data-validation-required-message="Пожайлуйста введите имя"> <p class="help-block"></p> </div> </div> <div class="control-group form-group"> <div class="controls"> <label>Номер телефона:</label> <input type="tel" class="form-control" id="phone" required data-validation-required-message="Пожалуйста введите номер телефона"> </div> </div> <div class="control-group form-group"> <div class="controls"> <label>Email:</label> <input type="email" class="form-control" id="email" required data-validation-required-message="Пожалуйста введите адресс."> </div> </div> <div class="control-group form-group"> <div class="controls"> <label>Сообщение:</label> <textarea rows="10" cols="100" class="form-control" id="message" required data-validation-required-message="Пожалуйста введите ваш вопрос" maxlength="999" style="resize:none"></textarea> </div> </div> <div id="success"></div> <!-- For success/fail messages --> <button type="submit" class="btn btn-primary">Отправить сообщение</button> </form> </div> </div> <!-- /.row --> <hr> </body> </html>
Создайте сайт по образцу.