Як написати горизонтальне меню CSS. CSS - горизонтальне меню для верстальників-початківців. Горизонтальне меню з роздільниками

Починаючи з цього уроку, ми будемо навчатися верстці сайту з нуля у популярному flat стилі. Ця тема є дуже об'ємною і ми присвятимо їй не один урок. Що означає це практично?

Уявіть, що Ви на біржі фрілансу отримали замовлення на верстку односторінкового сайту. Замовник передав Вам макет у вигляді .psd і попросив згорнути HTML сторінку. У роботу верстальника входить ще й нарізка макета на картинки, але ми опустимо цей етап, оскільки це питання вміння користуватися фотошопом. На цю тему Ви можете самостійно пошукати навчальні уроки з фотошопу.

Виходитимемо з того, що замовник виявився доброю людиною і надав нам разом з макетом і заздалегідь порізані картинки. Для створення HTML сторінки, нам знадобиться: .psd макет, папка з картинками, Photoshop, Notepad++ та браузер.

Ми говоримо з вами про макет, але поки що це тільки картинка, з якої ми маємо зробити повноцінну HTML сторінку.

Зверніть увагу, що наш макет є класичний приклад flat дизайну. Flat дизайн - це означає "плоский", тут ви не побачите об'ємних тіней, градієнтів та інших "наворотів".

Відкриваємо макет у фотошопі та беремо звідти всю потрібну інформацію – колір, шрифт, розміри та починаємо писати код, першою у нас йде шапка сайту, що складається з логотипу та меню навігації. Зрозуміло, що наш сайт буде адаптивним під будь-які пристрої та роздільну здатність екрану, тому всі розміри вказуємо в % і em .

Верстка шапки сайту

Створюємо HTML сторінку та робимо розмітку нашої шапки. Вміст шапки пишемо всередині парного тега header.









  • Головна

  • Портфоліо

  • Про мене

  • Контакт






Без оформлення CSS стилями виглядає шапка зовсім не так, як треба. У файлі style.css , пропишемо селекторам відповідні властивості, щоб шапка виглядала згідно з макетом.

Розберемо основні моменти. Логотип та меню навігації мають бути в одному рядку. Тому в блоці div з логотипом задаємо обтікання - float: left; Навігаційне меню стане праворуч від логотипу. Пункти меню мають бути в одному рядку - display: inline-block; Скасувати обтікання можна вставкою в код порожнього дива - , у стилях відповідно записуємо так - .clear(clear:both;)

Код шапки сайту у файлі style.css:

Body (
font-family: "Lato", Verdana;
font-size: 100%;
background: #fff;
}
.wrap
{
margin: 0 auto;
width: 70%; /* відступи щодо вікна браузера */
}
.header(
padding: 1.3em 0em; /* поля навколо тексту */
}
.logo(
float: left; /* обтікання логотипу */
}
.logo a (
display: block; /* перевизначення в блоковий */
}
.nav (
float: right; /* обтікання логотипу */
margin-top: 0.82em;
}
.nav > ul > li (
display:inline-block; /* перевизначення в рядково-блоковий */
}
.nav > ul > li.active a(
background: #d0a5a5;
color: #ffffff;
}
.nav > ul > li > a (
display: block;
font-family: "Lato", sans-serif;
font-size: 1.1em;
text-transform: uppercase;
padding: 0.5em 1em;
color: #444;
-webkit-transition: 0.9s; /* плавний перехід */
-moz-transition: 0.9s;
-o-transition: 0.9s;
transition: 0.9s;
}
.nav > ul > li > a:hover (
color: #fff;
background: #d0a5a5;
}

Код HTML розмітки шапки сайту:







Портфоліо мопса "Валлі"










  • Головна

  • Портфоліо

  • Про мене

  • Контакт



/* скасування обтікання */





У процесі верстки сайту з нуля ми отримуємо готову шапку сайту.

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

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

Починаємо верстку нашого горизонтального меню!

Як ви напевно здогадуєтеся насамперед нам потрібно створити html сторінку зі стандартною розміткою та підключити до неї файл стилів. Не буду докладно зупинятися на цьому кроці, оскільки сподіваюся, що ви не настільки початківці, щоб докладно розповідати вам, що таке body і head і як підключаються стилі. Скажу лише, що окрім стилів для нашого меню у файл css я напишу найпростіший reset, щоб обнулити стилі та домогтися однакового відображення відступів у всіх браузерах. Ось що так виглядає мій найпростіший ресет:

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

Отже, що у нас є на даному етапі? У нас є html сторінка зі стандартною розміткою:

Горизональне меню

І у нас є підключений до цієї сторінки файл стилів (у мене це style.css), з таким вмістом:

Наступним етапом буде створення HTML розмітки для нашого меню.

Створюємо розмітку для меню

У нашій розмітці ми будемо використовувати новий тег , який з'явився в HTML5, я вирішив вас відразу привчати до нових тегів, щоб слідувати тренду і стандарту. їх у своїй верстка, так як рано чи пізно вам все одно потрібно буде перейти на них, як свого часу верстальники перейшли від з табличної верстки до блокової, така реальність, краще слідувати тренду!

І коли ми вже заговорили про підтримку нових тегів html 5, щоб у нас не виникало проблем із цим у старих браузерах, у наш документ потрібно підключити спеціальну бібліотеку — html5shiv. Робиться це вставкою в
розділ head вашої сторінки наступного коду:

Всі після цього тег (та інші теги, що стосуються HTML5) будуть нормально сприйматися старими браузерами.

Повернемося безпосередньо до нашої розмітки. Далі нам потрібно в наш тег вставити маркований список, у мене це виглядає так:

  • Головна
  • Про нас
  • Портфоліо
  • Блог
  • Контакти

Отже з розміткою ми начебто перестали час приступати безпосередньо до написання стилів, тому що зараз наше меню виглядає м'яко кажучи не дуже:

Пишемо стилі нашого горизонтального меню

І так насамперед при верстці меню нам потрібно прибрати маркери списку, вони нам явно не потрібні, робиться це так:

Ul( list-style:none; )

Після цього наше меню стане таким:

Мені не дуже подобається, що наше меню приклеєне до країв браузера, давайте виправимо це:

Даним кодом ми задали ширину нашому меню, дали йому відступи зверху і низу по 50px і розташували по центру. Хто не знає якщо в блоковому елементі є ширина то для того щоб розташувати даний елемент строго по центру нам потрібно лише задати йому зовнішній відступ (margin) праворуч і ліворуч зі значенням auto.

Наступним етапом нам потрібно вже зробити наше меню горизонтальним, робиться це завданням елементам

  • float: left

    Menu li( float:left; )

    Все наше меню стало горизонтальним.

    Якщо ви не зрозуміли, що саме трапилося і що робить властивість float, рекомендую погуглити інформацію про дану властивість і добре вивчити її, оскільки
    без нього не обходиться жодна сторінка верстки, це я вам точно говорю. Ну та гаразд продовжуємо!

    Menu li а( display:block;/* Робимо посилання блоковим елементом*/ padding:12px 20px;/* Задаємо внутрішнє відступи */ text-decoration: none; /* прибираємо нижнє підкреслення */ color:#fff;/* робимо колір посилання білим */ background:#444;/* робимо колір фону темним */ font:14px Verdana, sans-serif;/* задаємо розмір та назву шрифту */ )

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

    Давайте подивимося, що у нас вийшло, оновлюємо сторінку браузера і тадам!:

    Як бачите, виглядає непогано, можна сказати, що в принципі наше меню готове. Єдине, що потрібно ще зробити - це задати світло посилань при наведенні, ну ще як мені здається меню краще виглядатиме з роздільниками між пунктами.

    Почнемо з роздільників:

    Menu li( border-left:1px solid #666; ) .menu li:first-child( border-left:none; )

    Що ми тут зробили? Та все дуже просто ми поставили для наших пунктів (

  • ) кордон ліворуч розміром 1px і кольором #666;. Що стосується селектора.menu li:first-child, то тут ми використовуємо спеціальний псевдо-клас, який дозволяє вибрати перший дочірній елемент списку. Про псевдокласи теж рекомендую докладніше почитати в інтернеті, дізнаєтесь багато корисного.

    Знову дивимося, що в нас вийшло:

    На мою думку з роздільниками набагато краще.

    Menu li a:hover( background:#888; )

    Знову використовуючи спеціальний псевдоклас, цього разу - hover, ми задаємо колір посилання при наведенні на неї курсору, дивимося:

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

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

    Продовжуємо серію уроком присвячених меню, що випадає. На черзі горизонтальне меню, що випадає на css своїми руками.

    Якщо ви потрапили сюди випадково або ви шукали іншу реалізацію меню, що випадає, раджу перейти в батьківський розділ.

    У цьому розділі буде описано горизонтальне меню, що випадає на CSS і HTML.

    Навігація по сторінці:

    І так, Наша задача:

    зробити горизонтальне меню зі списком css (на списках ul li) без використання jQuery і Javascript, а також без застосування таблиць

    у коді.

    Горизонтальне меню, що випадає

    Насамперед, перед тим як приступати писати код, нам потрібно зробити html шаблон для меню.

    У зв'язку з тим, що ми робимо універсальне меню, я хочу зробити його максимально схожим під виведення меню WordPress. На мій погляд, це один із найпростіших і універсальних Html кодів меню. Виглядає він так:

    • Головна
    • Про нас
    • Наші послуги
      • Наша послуга №1
      • Наша послуга №2
      • Наша послуга №3
      • Наша послуга №4
      • Послуга 5
    • Новини
    • Контакти

    Як видно з коду, наше меню, що випадає, буде реалізовано на списках ul і li. Ось так виглядає це меню без стилів CSS:

    Скажімо, прямо виглядає потворно, як звичайний список. Далі нам потрібно прикрасити це меню за допомогою стилів CSS.

    Горизонтальне меню, що випадає на CSS

    Стилі CSS для меню, що випадає, і не тільки – річ необхідна як повітря. Адже вкладка, що випадає, робиться на основі псевдокласу: hover.

    Для горизонтального меню, що випадає, нам знадобляться ось такі стилі:

    #menu1( position:relative; display:block; width:100%; height:auto; z-index:10; ) #menu1 ul( position:relative; display:block; margin:0px; padding:0px; width:100 %;height:auto;list-style:none;background:#F3A601; menu1 ul li( position:relative; display:block; float:left; width:auto; height:auto; ) #menu1 ul li a( display:block; padding:9px 25px 0px 25px; font-size:14px; font- family:Arial, sans-serif;color:#ffffef;line-height:1.3em;text-decoration:none;font-weight:bold;text-transform:uppercase;height:36px;box-sizing:border-box; ) #menu1 ul li > a:hover, #menu1 ul li:hover > a( background:#EBBD5B; color:#2B45E0; )

    Це ще не кінець, а лише частина CSS для головного горизонтального меню. Далі ми напишемо стилі для списку меню:

    #menu1 ul li ul( position:absolute; top:36px; left:0px; display:none; width:200px; background:#EBBD5B; ) #menu1 ul li:hover ul(display:block;) механізм випадання*/ #menu1 ul li ul li(float:none; width:100%; ) #menu1 ul li ul li(display:block;text-transform:none; 100% box-sizing:border-box;border-top:1px solid #ffffff; background:#FDDC96; color:#6572BC;

    Ось тепер усі. Сам механізм випадки реалізований одним рядком.

    Дивіться скін із цим меню:

    Мал. 2 (горизонтальне меню, що випадає)

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

    Горизонтальне меню, що випадає на всю ширину

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

    Сподіваюся ви завантажили приклад вище. Html у нас залишається незмінним, а ось CSS ми поміняємо повністю. Ви можете просто взяти від сюди код CSS і вставити в завантажений приклад, або ж подивитися в режимі демо, як він працює.

    #conteiner( width:1000px; height:auto; margin:0px auto; padding-top:10px; ) #menu1( position:relative; display:block; width:100%; height:auto; z-index:10; ) #menu1 ul( position:relative; display:block; margin:0px; padding:0px; width:100%; height:auto; list-style:none; background:#F3A601; ) #menu1 > ul( text-align: justify; font-size:1px; line-height:1px; ) #menu1 > ul::after( display:inline-block; width:100%; height:0px; :relative; display:inline-block;width:auto;height:auto;vertical-align:top;text-align:left; ) #menu1 :14px;font-family:Arial, sans-serif;color:#ffffef;line-height:1.3em;text-decoration:none; font-weight:bold;text-transform:uppercase;height:36px; :border-box; ) #menu1 ul li > a:hover, #menu1 ul li:hover > a( background:#EBBD5B; color:#2B45E0; ) #menu1 ul li ul( :0px; display: none; width:auto; background:#EBBD5B; white-space:nowrap; ) #menu1 ul li:last-child ul(/*останній пункт буде прикріплений по правому краю*/ left:auto; right:0px; ) випадання*/ #menu1 ul li ul li(display:block; width:auto; ) #menu1 ul li ul li(display:block; text-transform:none; height:auto; box-sizing:border-box;border-top:1px solid #ffffff; ) #menu1 #FDDC96;color:#6572BC;

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

    Для дуже довгих пунктів меню такий варіант може бути не дуже зручним, оскільки вони будуть вилазити за межі. Щоб вимкнути цю властивість, достатньо знайти властивість "white-space:nowrap;" у селектора #menu1 ul li ul і видалити його.

    Нижче ви можете подивитися демо або завантажити вихідні випадки горизонтального меню:

    Без роздільників це меню виглядає так собі. Розділювачі можна додати в хтмл руками, але якщо у вас CMS, наприклад WordPress, то руками там додавати не дуже зручно.

    Горизонтальне меню з роздільниками

    Існує кілька десятків варіантів, як на чистому CSS додати смужку (розділювач) між пунктами меню. Варіанти, які використовують::before або::after , або набагато простіше border-left, border-right я дублювати не буду.

    Бувають ситуації, коли верстка побудована так чудово, що без jquery не обійтися.

    Html код у нас залишається колишнім, ми тільки підключаємо на самому початку бібліотеку jQuery та файл, який її використовує:

    Відразу після .

    Як ви зрозуміли, потрібно створити файл script-menu-3.jsі туди закинути такий маленький код:

    $(document).ready(function()( $("#menu1 > ul > li:not(:last-child)").after(" "); ));

    Стилі CSS для такого меню потрібно залишити ті, що є, + закинути ось цей шматок в кінець:

    #menu1 ul li.razd( height:28px; width:1px; background:#ffffff; margin-top:4px; )

    Виглядати таке горизонтальне меню з роздільниками на jQuery буде ось так:

    Можна переглянути в режимі демо або завантажити шаблон горизонтального меню нижче:

    Перевагами такого рішення є:

    • меню тягнеться динамічно;
    • відступи від роздільника до пункту скрізь однакові;
    • більш красиве та гнучке оформлення.
    Горизонтальне багаторівневе меню, що випадає CSS+HTML

    Раз йшлося про багаторівневі випадають меню при наведенні, напевно варто поділити їх на підгрупи:

  • з випадашкою при наведенні убік
  • зі спливаючою випадкою третього рівня
  • У своїх прикладах я показуватиму багаторівневе меню CSS на 3 рівні, далі думаю буде не складно здогадатися що потрібно робити.

    Багаторівневе меню, що випадає з випадашкою в бік при наведенні

    Для початку нам потрібно трохи підкоригувати наш хтмл. Там додасться пара рядків для 3 рівня:

    • Головна
    • Про нас
    • Наші послуги
      • Наша послуга №1
        • Додаток до послуги 1
        • Додаток до послуги 2
      • Наша послуга №2
        • Додаток до послуги 3
        • Додаток до послуги 4
      • Наша послуга №3
      • Наша послуга №4
      • Послуга 5
    • Новини
    • Контакти
      • Карта проїзду
        • Додаток для картки
        • Додаток для картки 2
      • Форма зворотного зв'язку

    #conteiner( width:1000px; height:auto; margin:0px auto; padding-top:10px; ) #menu1( position:relative; display:block; width:100%; height:auto; z-index:10; ) #menu1 ul( position:relative; display:block; margin:0px; padding:0px; width:100%; height:auto; list-style:none; background:#F3A601; ) #menu1 > ul( text-align: justify; font-size:1px; line-height:1px; ) #menu1 > ul::after( display:inline-block; width:100%; height:0px; :relative;display:inline-block;width:auto;height:auto;vertical-align:top;text-align:left; ) #menu1 ul li.razd( height:28px; width:1px; margin-top:4px; ) #menu1 ul li a( display:block; padding:9px 45px 0px 45px; em;text-decoration:none;font-weight:bold;text-transform:uppercase;height:36px;box-sizing:border-box;) #menu1 ul li> (Background: #EBBD5B; color:#2B45E0; ) #menu1 ul li ul( position:absolute; top:36px; left:0px; display:none; width:auto; background:#EBBD5B; white-space:nowrap; ) #menu1 > ul > li:last-child > ul(/*останній пункт буде прикріплений по правому краю*/ left:auto; right:0px; ) #menu1 ul li:hover > ul(display:block;)/*ця строчка реалізує механізм випадання*/ #menu1 ul li ul li( display:block; width:auto; ) #menu1 ul li ul li a( display:block; text-transform:none; height:auto; padding:7px 45px; width:100%; Border-top: 1px solid #ffffff; a( background:#FDDC96; color:#6572BC; ) #menu1 ul li ul li ul( top:0px; left:100%; display:none; background:#fddc96; ) #menu1 > ul > li:last-child > ul ul(left:auto; right:100%;) #menu1

    Файли для jQuery копіюємо як були з попереднього прикладу. Вирішив залишити роздільники, щоб меню хоч трохи краще виглядало. Можна, звісно, ​​і без них.

    Ось так вийшло:
    Я зробив 2 скіни в одному, щоб показати як випадок виглядає праворуч і посередині.

    Нижче ви можете подивитися демо і скачати приклад:

    Багаторівневе меню, що випадає зі спливаючою випадашкою при наведенні

    Трохи олія вийшла в заголовку, але прокотить, головне код.

    Суть цього прикладу зробити горизонтальне меню, що випадає на всю ширину з випадкою на всю ширину + багаторівневість.

    ХТМЛ код я міняти не буду, його можна взяти з попереднього прикладу. Розділювачі на jQuery також залишаємо.

    Змінюватиметься тільки CSS повністю:

    #conteiner( width:1000px; height:auto; margin:0px auto; padding-top:10px; ) #menu1( position:relative; display:block; width:100%; height:auto; z-index:10; ) #menu1 ul( position:relative; display:block; margin:0px; padding:0px; width:100%; height:auto; list-style:none; background:#F3A601; ) #menu1 > ul( text-align: justify; font-size:1px; line-height:1px; ) #menu1 > ul::after( display:inline-block; width:100%; height:0px; :relative; display:inline-block;width:auto;height:auto;vertical-align:top;text-align:left;) :28px;width:1px;background:#ffffff;margin-top:4px; ) #menu1 ul li a( display:block; padding:9px 45px serif;color:#ffffef;line-height:1.3em;text-decoration:none;font-weight:bold;text-transform:uppercase;height:36px;box-sizing:border-box; ) #menu1 ul li > a:hover, #menu1 ul li:hover > a( background:#EBBD5B; color:#2B45E0; ) #menu1 ul li ul( position:absolute; top:36px; left:0px; display:none; width:100%; background:#EBBD5B; ) #menu1 > ul > li > ul::after( clear:both; float:none; width:100%; height:0px; content:" "; ; :block; width:30%; float:left; ) #menu1 ul li ul li a( display:block; - box; color:#6572BC; ) #menu1 ul li ul li ul( top:0px; left:100%; display:none; background:#fddc96; z-index:15; ) #menu1 block;float:none;width:100%;) #menu1 ul li

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

    Дивіться демо горизонтального багаторівневого меню:

    Як ви могли помітити: нижня плашка також на всю ширину. Ось так робляться випадки у кілька блоків.

    На цьому в мене все, сподіваюсь, хоч один мій приклад вам підійшов. Дякую за увагу.

    це принесе користь і їм, і мені 🙂.

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

    Також, раджу відвідати батьківську сторінку https://сайт/vypadayushhee-menu/, там зібрані всі приклади та різновиди меню.

    Від автора: вітаю вас на нашому блозі про сайтобудування. Це цикл статей, присвячений новій специфікації і сьогодні я хотів би вам розповісти, як зробити в html5 меню і чим цей процес відрізняється від такого ж у попередніх версіях мови.

    У чому відмінності

    Насамперед я хотів би сказати, що специфікація не є такою й новою – вона розпочала своє становлення ще у 2009 році. Власне, з того часу відбувається постійний розвиток – у html5 з'являються нові можливості, сучасні браузери все більше і більше підтримують ці самі можливості, так що вже скоро можна буде говорити про повну підтримку цієї технології, хоча вона і не є єдиним цілим, це скоріше набір нових можливостей, кожна з яких самостійна.

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

    Так ось, з появою нових тегів тепер можна вчинити правильніше – замість тегу div обернути меню на nav – новий семантичний елемент, який створений спеціально для того, щоб збирати в нього найголовніші посилання, групувати їх разом.

    У nav можна помістити як список, і просто набір посилань. Мені здається, це навіть простіше і правильніше рішення, хоча в багатьох шаблонах, як і раніше, видно реалізацію меню за допомогою тегів ul, li, a.

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

    Як зробити за допомогою html5 горизонтальне меню

    Головна Послуги Контакти Відгуки

    Навіть не потрібно жодного обрамлення в список, все спочатку буде відображатися в один рядок, оскільки посилання - малі елементи.

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

    Тут нам доведеться перетворювати наші пункти на блокові елементи. Для цього їм потрібно записати властивість:

    display: block;

    Тепер вони йдуть згори донизу, тобто наша навігація стала вертикальною. Щоб знову перетворити її на горизонтальну, потрібно додати певні властивості. Наприклад, замість блочного типу визначити їм блочно-рядковий, або задати їм (float: left). Читайте докладніше про ці способи.

    Вертикальна навігація

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

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

    a( text-decoration: none; color: #fff; padding: 5px; font-size: 22px; display: block; background: linear-gradient(to right, rgba(96,108,136,1) 0%,rgba(63,76,107) ,1) 100%);width: 200px;text-align: center )

    text-decoration: none;

    color: #fff;

    padding: 5px;

    font-size: 22px;

    display: block;

    background: linear-gradient (to right, rgba (96, 108, 136, 1) 0%, rgba (63, 76, 107, 1) 100%);

    width: 200px;

    text - align: center

    Меню — це невід'ємна частина кожного сайту, чи майже кожного. Меню (або навігація) дозволяє швидко переміщатися по основних розділах сайту, що дуже схоже на зміст у книгах. Особливо схожість помітна на картах сайту (різновид навігації):

    Меню може виглядати по-різному. Може бути горизонтальним

    Вертикальним

    Багаторівневими

    Меню може бути дуже різноманітним і скидати його можна дуже по-різному: таблицями, блоками, просто посиланнями, можливо посиланнями з
    ...можна вигадати масу "збочених" способів і більшість з них відповідатимуть принципам блокової (безтабличної) верстки. Але у професійних колах чомусь вважається, що навігація має бути на основі невпорядкованих списків.< >і< >.

    Чому в навігації слід використовувати ul?

    Перше пояснення приходить, якщо просто логічно подумати: меню це перелік посилань (розділів). А якщо не просто подумати, а зазирнути у словник, наприклад Ожегова:

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

    Якщо мучать сумніви, звернемося по допомогу до авторитетів. W3C про списки:

    Списки можуть містити:
    • не впорядкований перелік
    • упорядкований перелік
    • навігацію
    • визначення
    Меню з картинками

    Navigation ( list-style: none; /* ховаємо маркери */ margin: 30px; ) .navigation li ( float: left; /* вибудовуємо елементи списку в один ряд */ margin-right: 15px; /* робимо відступ щоб пункти меню не зливались */) .navigation li a ( display: block; text-align: center; padding-top: 100px; * вирівнюємо фон вгору і по центру */ background-repeat: no-repeat; width: 200px;/* розміри вказуємо щоб картинки повністю відобразилися */ height: 50px; інакше трактує блочну модель */ height: 150px; ) .navigation .chrysler a (background-image: /menu-audi.jpg); ) .navigation .bugatti a ( background-image: url(path-to/menu-bugatti.jpg); ) .