Оглавление

Создание средствами CSS навигационной панели с кнопками

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

 

У вас может возникнуть вполне закономерный вопрос: «Возможно ли создать такую панель навигации с кнопками исключительно средствами CSS?» Ответ однозначный – да!

 

Решение
С помощью CSS можно без особого труда сделать элементы панели навигации похожими на кнопки. Такой эффект основан на использовании свойства border.

 

Создание навигационного меню с кнопками средствами CSS

Рис. 4.10. Создание навигационного меню с кнопками средствами CSS (DEMO)


Ниже представлен необходимый код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<title>Часть 4 - Навигационные кнопки</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="listnav_button.css" />
</head>
<body id="contact">
<div id="navigation">
  <ul>
        <li><a href="#">Главная</a></li>
        <li><a href="#">Новости</a></li>
        <li><a href="#">Форум</a></li>
        <li><a href="#">Галерея</a></li>
        <li><a href="#">Контакты</a></li>
  </ul>
</div>
</body>
</html>

 

 

 

body {
  background-color: #ffffff;
  color: #000000;
  margin: 0;
  padding: 1em;
  font: 1em Arial, Helvetica, sans-serif;
}

#navigation {
  font-size: 90%;
}

#navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  padding-top: 1em;
}

#navigation li {
  display: inline;
}

#navigation a:link, #navigation a:visited {
  margin-right: 0.2em;
  padding: 0.2em 0.6em 0.2em 0.6em;
  color: #A62020;
  background-color: #FCE6EA;
  text-decoration: none;
  border-top: 1px solid #FFFFFF;
  border-left: 1px solid #FFFFFF;
  border-bottom: 1px solid #717171;
  border-right: 1px solid #717171;
}

* html #navigation a {
  width: 100%;
}

#navigation a:hover {
  border-top: 1px solid #717171;
  border-left: 1px solid #717171;
  border-bottom: 1px solid #FFFFFF;
  border-right: 1px solid #FFFFFF;
}


Обсуждение
Для создания такого эффекта мы будем использовать горизонтальное меню навигации, созданное в разделе «Создание горизонтального меню с помощью списков и CSS». Чтобы пункты меню стали похожими на кнопки, окрасим левую и нижнюю части рамки одним цветом, а верхнюю и правую – другим, более светлым. Таким образом, кнопка будет казаться объемной:

#navigation a:link, #navigation a:visited {
  margin-right: 0.2em;
  padding: 0.2em 0.6em 0.2em 0.6em;
  color: #A62020;
  background-color: #FCE6EA;
  text-decoration: none;
  border-top: 1px solid #FFFFFF;
  border-left: 1px solid #FFFFFF;
  border-bottom: 1px solid #717171;
  border-right: 1px solid #717171;
}


При наведении указателя мыши на кнопку цвет разных частей рамки поменяется местами, создавая эффект нажатия:

#navigation a:hover {
  border-top: 1px solid #717171;
  border-left: 1px solid #717171;
  border-bottom: 1px solid #FFFFFF;
  border-right: 1px solid #FFFFFF;
}


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

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити