Некоторое время назад (кажется, это было после выпуска IPad), сайт Apple.com получил новое навигационное меню в верху страницы
Это меню было значительно темнее, чем предыдущее, серое, но выглядело так же здорово. Одна вещь, на которую я обратил внимание в меню, было то, что кнопки созданы из изображений. В тот момент я подумал, что можно бы сделать лучше, используя некоторые замечательные возможности CSS3. И вот сегодня я хочу представить вам меню сайта Apple.com которое создано с использованием только CSS3.
Так как меню в демо создано при помощи CSS3, убедитесь, что вы смотрите на его, используя CSS3-совместимый браузер. Webkit браузеры (Safari и Chrome) отображают эффекты лучше своих конкурентов, затем идет последняя версия Firefox. Opera и IE не отображают все правильно, но меню, тем не менее, работает.
А сейчас давайте посмотрим, что вам нужно сделать, что бы получить так же выглядящее меню.
Прежде чем перейти к части "CSS" этого меню, я хочу рассказать о нескольких правилах, которые используются для создания желаемого эффекта:
Как видите, многое из CSS3 было использовано здесь. Давайте теперь посмотрим как выглядит окончательный вариант нашего меню!
Здесь все просто:
<ul id="appleNav" class="list-unstyled">
<li>
<a href="#" title="Apple"><img src="i/logo.png" alt="Apple Logo" /></a>
</li>
<li>
<a href="#" title="Store">Store</a>
</li>
<li>
<a href="#" title="Mac">Mac</a>
</li>
<li>
<a href="#" title="iPod">iPod</a>
</li>
<li>
<a href="#" title="iPhone">iPhone</a>
</li>
<li>
<a href="#" title="iPad">iPad</a>
</li>
<li>
<a href="#" title="iTunes">iTunes</a>
</li>
<li>
<a href="#" title="Support">Support</a>
</li>
<li>
<form>
<input type="text" />
</form>
</li>
</ul>
Я добавил комментарии к некоторым частям, чтобы объяснить, что они делают и слегка усовершенствовал меню (перевел на flex-модель, упростил градиенты и сделал мелкие исправления).
/* APPLE STYLE NAVIGATION MENU */
#appleNav {
/* Lucinda Grande - это шрифт который используется на сайте Apple. */
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
letter-spacing: -0.5px;
font-size: .8125rem;
/* Добавляем тонкую тень к тексту */
text-shadow: 0 -1px 3px #202020;
/* Мы хотим добавить тень к всему меню. Для того нам понадобится установить правильную ширину и высоту, а также границы, для того, чтобы создать идеальную тень */
border-radius: 4px;
box-shadow: 0 3px 4px #8b8b8b;
margin: 2rem 0;
display: flex;
}
#appleNav li {
width: 105px;
border-right: 1px solid #5d5d5d;
border-left: 1px solid #929292;
border-bottom: 1px solid #575757;
border-top: 1px solid #797979;
/* Градиентный фон для кнопок */
background: rgb(120,120,120);
background: linear-gradient(0deg, rgba(120,120,120,1) 0%, rgba(94,94,94,1) 50%, rgba(112,112,112,1) 51%, rgba(131,131,131,1) 100%);
}
/* Устанавливаем состояние при наведении мыши, за исключением последнего пункта в списке (строка поиска), так как она не нуждается в изменении */
#appleNav li:not(:last-child):hover {
background: rgb(63,63,63);
background: linear-gradient(0deg, rgba(63,63,63,1) 0%, rgba(56,56,56,1) 50%, rgba(67,67,67,1) 51%, rgba(85,85,85,1) 100%);
/* Мы используем inset для box-shadow для создания тонкого внутреннего свечения при наведении */
box-shadow: inset 0 0 5px 5px #535353;
}
/* Когда пользователь щелкает по кнопке, мы просто меняем box-shadow inset (в сравнении с "hover") */
#appleNav li:not(:last-child):active {
background: rgb(63,63,63);
background: linear-gradient(0deg, rgba(63,63,63,1) 0%, rgba(56,56,56,1) 50%, rgba(67,67,67,1) 51%, rgba(85,85,85,1) 100%);
box-shadow: inset 0 1px 2px 2px #000;
}
#appleNav li a {
color: #fff;
text-decoration: none;
text-align: center;
display: block;
line-height: 34px;
}
/* Округлые уголки для первого и последнего пункта. Мы также удаляем границы, так как они не нуждаются в них. */
#appleNav li:first-child {
border-radius: 4px 0 0 4px;
border-left: none;
}
/* Первое изображение - логотип - должен быть по центру. Из-за размера изображения, нам вручную необходимо перенести его немного.*/
#appleNav li:first-child a img {
vertical-align: middle;
margin-top: -4px;
}
#appleNav li:last-child {
padding: 7px 10px;
border-radius: 0 4px 4px 0;
border-right: none;
/* Ширина последнего пункта меню (панель поиска) он больше, чем остальные */
/* width: 140px; */
flex-grow: 1;
}
/* Стилизация поля поиска */
#appleNav form input {
width: 100%;
height: 20px;
border: none;
padding: 0 32px;
color: #eee;
border-radius: 10px;
/* Мы используем несколько фонов для поля ввода: изображение лупы и градиентный фон */
background: rgb(116,116,116);
background: linear-gradient(0deg, rgba(116,116,116,1) 0%, rgba(110,110,110,1) 50%, rgba(126,126,126,1) 51%, rgba(141,141,141,1) 100%);
background-image: url("i/magnifier.png");
background-repeat: no-repeat;
background-position: 10px 50%;
box-shadow: inset 0 2px 1px 1px #363636;
}
/* Анимация */
@-webkit-keyframes showMenu {
from { opacity: 0; top: -20px; }
to { opacity: 1; }
}
@-moz-keyframes showMenu {
from { opacity: 0; top: -20px; }
to { opacity: 1; top: 0; }
}
#appleNav {
position: relative;
animation: showMenu 1s;
}
Вот и все, что нужно для создания меню в стиле Apple.com! Что вы думаете об этом? Видите ли вы возможности для улучшения? Не стесняйтесь поделиться!
© 2008 - 2025 Webmasters.BY Все права защищены
Новый комментарий