Metro: Навигация для сайта в стиле windows 8 Metro: Навигация для сайта в стиле windows 8



 

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

 

ДЕМО
ИСХОДНИКИ

 

В данном уроке мы рассмотрим как создать навигацию для сайта в стиле metro windows 8, такой подход к организации меню отлично подойдет для оформления портфолио или персональной странички. И так, приступим.

Шаг 1. HTML

Для начала рассмотрим разметку, в которой мы подключим необходимы репозитории и веб-шрифты.  С помощью класса class="controls" создадим организацию навигации, с помощью которой можно переключать варианты разметки и прокрутки меню.

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Metro: Навигация для сайта в стиле windows 8 | Демонстрация для сайта s-sd.ru</title>
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
    <link rel="stylesheet" type="text/css" media="all" href="css/metro.css" />
    <script src="js/jquery.min.js"></script>
    <script src="js/jquery.plugins.min.js"></script>
    <script src="js/metro.js"></script>
    <!--[if lt IE 9]>
        <script src="js/respond.min.js"></script>
    <![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
    <div class="metro-layout horizontal">
        <div class="header">
            
            <div class="controls">
                <span class="down" title="Scroll down"></span>
                <span class="up" title="Scroll up"></span>
                <span class="next" title="Scroll left"></span>
                <span class="prev" title="Scroll right"></span>
                <span class="toggle-view" title="Toggle layout"></span>
            </div>
        </div>
        <div class="content clearfix">
            <div class="items">
                <a class="box" href="#">
                    <span>Mail</span>
                    <img class="icon" src="images/mail.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #6b6b6b;">
                    <span>Settings</span>
                    <img class="icon" src="images/settings.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #43b51f;">
                    <span>Make a call</span>
                    <img class="icon" src="images/phone.png" alt="" />
                </a>
                <a class="box width2 height2" href="#">
                    <span>Photos</span>
                    <img class="cover" src="images/gallery.jpg" alt="" />
                </a>
                <a class="box" href="#" style="background: #00aeef;">
                    <span>Music</span>
                    <img class="icon" src="images/music.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #f58d00;">
                    <span>Firefox</span>
                    <img class="icon" src="images/firefox.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #640f6c;">
                    <span>Yahoo</span>
                    <img class="icon" src="images/yahoo.png" alt="" />
                </a>
                <a class="box height2" href="#" style="background: #d32c2c;">
                    <span>GMail</span>
                    <img class="icon big" src="images/gmail.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #3c5b9b;">
                    <span>Facebook</span>
                    <img class="icon" src="images/facebook.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #ffc808;">
                    <span>Winamp</span>
                    <img class="icon" src="images/winamp.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #00a9ec;">
                    <span>Tasks</span>
                    <img class="icon" src="images/tasks.png" alt="" />
                </a>
                <a class="box height2" href="#" style="background: #4c5e51;">
                    <span>DeviantART</span>
                    <img class="icon big" src="images/deviantart.png" alt="" />
                </a>
                <a class="box" href="#" style="background: #f874a4;">
                    <span>Dribbble</span>
                    <img class="icon" src="images/dribbble.png" alt="" />
                </a>
            </div>
        </div>
    </div>
</body>
</html>

Как вы заметили, мы также используем классы для разметки изображений и заливки контуров вокруг них, все достаточно просто.

Шаг 2. CSS

/* reset */
body, div, p, h1, h2, a, span, img, ul, li { margin: 0; padding: 0; }
ul { list-style: none; }

/* webfonts */
@font-face { font-family: 'OpenSansLight'; src: url('../webfonts/opensans-light-webfont.eot'); src: url('../webfonts/opensans-light-webfont.eot?#iefix') format('embedded-opentype'), url('../webfonts/opensans-light-webfont.woff') format('woff'), url('../webfonts/opensans-light-webfont.ttf') format('truetype'), url('../webfonts/opensans-light-webfont.svg#OpenSansLight') format('svg'); font-weight: normal; font-style: normal; }

/* general */
html, body { width: 100%; height: 100%; }
html { background: #111 url(data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAGklEQVR42mMQhAEJCQkGOAtIMsBZIA6cBQQAW5wDhYzvi1MAAAAASUVORK5CYII%3D); color: #fff; }
body { font-size: 100%; font-family: 'OpenSansLight', sans-serif; line-height: 1em; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
a, a img { border: none; }
img, object, embed { max-width: 100%; height: auto; }
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }

/* metro layout */
.metro-layout { width: 100%; height: 100%; }
.metro-layout .header { height: 20%; position: relative; }
.metro-layout .header h1 { position: absolute; top: 50%; margin-top: -0.6em; left: 20px; padding-left: 0.1em; font-size: 3em; line-height: 1em; }
.metro-layout .header .controls { position: absolute; top: 50%; height: 48px; margin-top: -24px; right: 20px; }
.metro-layout .header .controls span { float: right; width: 48px; height: 48px; margin-left: 5px; opacity: 0.25; filter: alpha(opacity=25); cursor: pointer; background: url(../images/sprite.png) no-repeat -999px 0; }
.metro-layout .header .controls span:hover { opacity: 1; filter: none; }
.metro-layout .header .controls span.prev { background-position: 0 0; }
.metro-layout .header .controls span.next { background-position: -48px 0; }
.horizontal .header .controls span.toggle-view { background-position: -96px 0; }
.vertical .header .controls span.toggle-view { background-position: -144px 0; }
.metro-layout .header .controls span.up { background-position: -192px 0; }
.metro-layout .header .controls span.down { background-position: -240px 0; }
.horizontal .header .controls span.up, .horizontal .header .controls span.down, .vertical .header .controls span.prev, .vertical .header .controls span.next { display: none; }
.metro-layout .content { height: 80%; overflow: hidden; }
.metro-layout .content .items { padding: 0 20px; position: relative; overflow: hidden; }
.horizontal .content .items { height: 97%; }
.vertical .content .items { padding-bottom: 20px; }
.metro-layout .box { float: left; position: relative; margin: 0.5em; padding: 0.5em; background: #555; width: 15em; height: 8em; text-decoration: none; cursor: pointer; overflow: hidden; color: #fff; background: #00a8ec; z-index: 9; }
.metro-layout .box:hover { opacity: 0.85; filter: alpha(opacity=85); }
.metro-layout .box span { position: absolute; left: 0.5em; bottom: 0.5em; font-size: 1em; font-weight: normal; z-index: 8; }
.metro-layout .box img.icon { position: absolute; left: 50%; top: 50%; margin-left: -32px; margin-top: -32px; z-index: 7; }
.metro-layout .box img.big { margin-left: -64px; margin-top: -64px; }
.metro-layout .box img.cover { position: absolute; left: 0; top: 0; width: 100%; z-index: 6; }
.metro-layout .width2 { width: 32em; }
.metro-layout .width3 { width: 49em; }
.metro-layout .width4 { width: 66em; }
.metro-layout .height2 { height: 18em; }
.metro-layout .height3 { height: 28em; }
.metro-layout .height4 { height: 38em; }

@media screen and (-webkit-min-device-pixel-ratio:0) {
	.metro-layout .content { overflow: auto; }
	::-webkit-scrollbar { width: 10px; height: 10px; }
	::-webkit-scrollbar-track:enabled { background-color: #0d0d0d; }
	::-webkit-scrollbar-thumb:vertical { background-color: #fff; }
	::-webkit-scrollbar-thumb:horizontal { background-color: #fff; }
}

::selection { background: #158ca0; color: #fff; }
::-moz-selection { background: #158ca0; color: #fff; }

/* mobile support */
@media handheld, only screen and (max-width: 1024px){
	.metro-layout .header h1 { font-size: 2.2em; margin-top: -0.5em; }
}
/* mobile support */
@media handheld, only screen and (max-width: 480px){
	.metro-layout .header { position: relative; text-align: center; }
	.metro-layout .header h1 { left: 5px; font-size: 1.5em; margin-top: -0.5em; }
	.metro-layout .header .controls { position: static; width: 100%; height: auto; margin-top: 0; }
	.metro-layout .header .controls span { display: none !important; }
	.metro-layout .content .items { padding: 0 5px; }
	.vertical .content .items { padding-bottom: 0; }
}

Более детально на стилях и скриптах мы останавливаться не будем, более детально с ними можно ознакомится в исходниках.

Вот и все. Готово!


Top

🔖 Выбор по тегам ×

💌 Написать сообщение ×

Все поля обязательны для заполнения!