Экономика стран

К сожалению, большинство людей, которые будут ими затронуты почти весь мир, не будут иметь никакого влияния на результат. Вести Экономика Дайджест иностранной прессы за 14 августа.
Вести Экономика Греции снова придется списывать долги Греция не сможет самостоятельно расплатиться по долгам, и понадобится новая реструктуризация долгов, чтобы спасти страну от банкротства.

Створення адаптивного меню

  1. Робимо меню адаптивним

Створити навігаційне меню на сайті досить просто. Зазвичай для цього створюється список без міток, його елементам прописується float: left і якісь ще стилі оформлення - ось, загалом, і все. Але в наші дні, коли в моду увійшов адаптивний дизайн, спосіб створення меню став трохи іншим.

Зараз ми розглянемо, як створити з нуля просте і ефективне адаптивне меню, яке можна використовувати в самих різних проектах.

Що ми будемо створювати?

Оригінал цього меню можна подивитися тут . Я ж буду описувати процес створення вже на власному досвіді. Відразу скажу: я використовую CMS Joomla! 2.5.11, і меню створено через стандартний менеджер меню. Хоча це особливо не важливо, оскільки мова буде в основному йти про CSS.

Отже, після створення меню код у мене вийшов такий:

<Div id = "header"> <ul class = "menutop"> <li class = "item-194"> <a href= "#"> Створення сайтів </a> </ li> <li class = "item -195 "> <a href= "#"> Веб-дизайн </a> </ li> <li class =" item-196 "> <a href= "#"> (X) HTML </a> < / li> <li class = "item-197"> <a href= "#"> CSS </a> </ li> <li class = "item-198"> <a href= "#"> CMS < / a> </ li> <li class = "item-199"> <a href= "#"> Програми </a> </ li> <li class = "item-200"> <a href = "# "> Ресурси </a> </ li> <li class =" item-201 "> <a href= "#"> Статті </a> </ li> </ ul> </ div>

Додаємо стилі ...

Спочатку давайте додамо універсальний селектор, обнулив все відступи і застосуємо до всіх елементів box-sizing: border-box. Це значення властивості CSS3 дозволить нам зберегти фіксовану ширину елементів, навіть якщо ми будемо використовувати внутрішні відступи і межі.

* {-Webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0; }

стиль контейнера

Перш ніж ми почнемо оформляти індивідуальні елементи списку, давайте застосуємо стилі до наших батьківським елементами. Батьківського div-у ми поставимо ширину 90%, щоб меню займало більшу частину сторінки, але при цьому залишалося досить порожнього простору. А у нашого списку прибираємо всі маркери.

#header {width: 90%; margin: 50px auto; } #Header ul.menutop {list-style: none; overflow: hidden; }

Тепер меню виглядає так:

І потім стиль пунктів меню ...

Зараз буде дуже великий шматок коду, який зробить пункти нашого меню такими, як на сайті-прикладі. Правила, які ми застосуємо до них, разоб'ем відповідно до їх функціями, щоб було зрозуміліше, що з чим їдять. Уважно читайте коментарі до коду.

#header ul.menutop li a, #header ul.menutop li a: visited {display: block; padding: 10px; width: 12.5%; float: left; background: # 444; border-right: 1px solid #fff; color: #fff; font-size: 13px; text-align: center; text-decoration: none; } / * TRANSISTIONS * / -webkit-transition: background 0.5s ease; -moz-transition: background 0.5s ease; -o-transition: background 0.5s ease; -ms-transition: background 0.5s ease; transition: background 0.5s ease;

Ми вибрали ширину 12.5%, тому що у нас 8 пунктів меню, і 100% / 8 = 12.5%. В цілому наше меню зараз виглядає вже непогано.

В цілому наше меню зараз виглядає вже непогано

Тепер ще потрібно оформити пункт меню при наведенні на них курсора миші.

#header ul.menutop li a: hover {background: # 222; }

Тепер при наведенні курсору колір пунктів буде змінюватися. Ми додали властивість transition для фону, тому він буде змінюватися не відразу, а плавно, протягом півсекунди. Це властивість, на жаль, не працює в браузері Internet Explorer (працює тільки в 10й версії), але у всіх інших браузерах ви побачите цей ефект.

Це властивість, на жаль, не працює в браузері Internet Explorer (працює тільки в 10й версії), але у всіх інших браузерах ви побачите цей ефект

І завершимо ми наше оформлення тим, що приберемо в останнього пункту меню праву межу, яка трохи псує зовнішній вигляд.

#header ul.menutop li: last-child a {border: none; }

Робимо меню адаптивним

Наш проект добре показує різницю між гумовим і адаптивним дизайном. Зараз наше меню є гумовим (його ширина задана у відсотках), але не є адаптивним. Це ми ясно побачимо, коли спробуємо сильно зменшити вікно браузера.

Виглядає просто жахливо! Тому давайте вирішимо цю проблему за допомогою медіа-запитів. Найкращий спосіб зрозуміти, де нам потрібні медіа-запити - це поступово зменшувати вікно браузера і перевіряти, як виглядає наше меню.

1240px ...

Перші труднощі починаються в районі 1240 пікселів. Назва пункту меню з двох слів починає ставати в два рядки, і меню деформується.

Для того, щоб це виправити, зменшимо для сторінки нижче цієї ширини шрифт меню до 11 пікселів.

@media screen and (max-width: 1240px) {#header ul.menutop li a {font-size: 11px; }}

Таким чином, при зменшенні екрану розмір шрифту теж зменшиться, і меню буде як і раніше виглядати красиво.

1105px ...

При ширині екрану в 1105 пікселів той же пункт меню знову починає спотворюватися. На цей раз, замість того щоб робити шрифт все менше і менше до тих пір, поки зовсім не зможемо його прочитати, ми повністю переробимо меню і розташуємо його в два ряди. Для цього створимо код, який буде виконуватися при ширині екрану менше 1105 пікселів.

@media screen and (max-width: 1105px) {#header ul.menutop li a {border-bottom: 1px solid #fff; font-size: 14px; width: 25%; } #Header ul.menutop li: nth-child (4) a {border-right: none; } #Header ul.menutop li: nth-child (5) a, #header ul.menutop li: nth-child (6) a, #header ul.menutop li: nth-child (7) a, #header ul. menutop li: nth-child (8) a {border-bottom: none; }}

Тепер наше меню перебудовується автоматично при зменшенні екрану.

Тепер наше меню перебудовується автоматично при зменшенні екрану

Як ви помітили, ми використовували псевдоклас CSS3: nth-child, який дозволяє застосовувати особливий стиль до будь-якого вказаною дочірньому елементу - в нашому випадку це елемент списку.

610px ...

Далі ми ще раз провели процедуру зменшення шрифту, тепер уже для ширини в 660 пікселів, тому що після цієї ширини наше меню знову починає деформуватися. Але при ширині 610 пікселів деформація все одно повертається.

Але при ширині 610 пікселів деформація все одно повертається

Тому зараз давайте змусимо меню ставати не в 2, а в 4 ряди.

@media screen and (max-width: 610px) {#header ul.menutop li a {font-size: 12px; width: 50%; } #Header ul.menutop li: nth-child (even) a {border-right: none; } #Header ul.menutop li: nth-child (5) a, #header ul.menutop li: nth-child (6) a {border-bottom: 1px solid #fff; }}

Для ширини в 320 пікселів ми ще трохи зменшимо шрифт (код аналогічний тому, що був вище). І тепер наше меню виглядає дуже добре навіть при маленькому розмірі екрану.

І тепер наше меню виглядає дуже добре навіть при маленькому розмірі екрану

А як же кроссбраузерность?

Коли використовуєш таку кількість властивостей CSS3, неминуче виникає питання - як це все буде виглядати в різних браузерах? У випадку з нашим меню найбільшу проблему для його коректного відображення розробила компанія Microsoft. Проблема ця називається Internet Explorer.

Дійсно, наші псевдокласи: last-child і: nth-child, а також медіа-запити підтримуються в Internet Explorer тільки починаючи з 9-ї версії. Тому для більш ранніх версій ми використовуємо спеціальні скрипти.

Ось цей скрипт додає підтримку медіа-запитів в версіях 6-8:

<! - [if IE lt 9]> <script src = "http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"> </ script> <! [Endif] ->

А от тут можна знайти той, який допоможе їм розуміти псевдокласи CSS3. Для його роботи необхідний один з фреймворків JavaScript, найкраще підійде Motools, який використовується в Joomla 2.5.x за замовчуванням.

висновок
У цій статті описано створення меню на конкретному сайті і в певних розмірів екрану, але, використовуючи описані методи, можна зробити його під будь-який екран. Адаптивне меню - непроста справа, тому для його створення потрібно мати знання і досвід. І описаний спосіб створення - всього лише один з багатьох. Думаю, ми ще не раз повернемося до питання створення адаптивного сайту в наступних статтях.

за матеріалами http://designshack.net/articles/css/code-a-responsive-navigation-menu/

Зберегти

Що ми будемо створювати?
А як же кроссбраузерность?
Коли використовуєш таку кількість властивостей CSS3, неминуче виникає питання - як це все буде виглядати в різних браузерах?
Навигация сайта
Реклама
Панель управления
Календарь новостей
Популярные новости
Информация
Экономика стран www.mp3area.ru © 2005-2016
При копировании материала, ссылка на сайт обязательна.