Как выровнять меню по горизонтали css
Перейти к содержимому

Как выровнять меню по горизонтали css

  • автор:

Выровнять меню по центру по горизонтали и убрать list style

так выглядит при тесте

так выглядит при тесте:

Отслеживать
33.9k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 27 авг 2015 в 3:41
13 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака
Немного отредактировал ответ, надеюсь что смысл сохранил.
27 авг 2015 в 6:42
Если вам дан исчерпывающий ответ, отметьте его как верный (галка напротив выбранного ответа).
27 авг 2015 в 12:56

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

#nav < background: #345; position: fixed; left: 0; top: 0; width: 100%; height:50px; text-align: center; display: inline; vertical-align:middle; >#nav a < text-decoration: none; font-family: Arial, Helvetica, sans-serif; font-size: 19px; color:#FFF; padding: 5px; >#nav a:hover < background: #FFF; color: #345; >ul < margin: 0; padding: 12px; list-style: none; >li

Отслеживать
ответ дан 27 авг 2015 в 7:11
Узбек Баха Узбек Баха
2,548 4 4 золотых знака 20 20 серебряных знаков 45 45 бронзовых знаков
спасибо, почти то что нужно) как сделать фон на всю ширину, а не только на кнопки?
27 авг 2015 в 17:55
@Valeryyy обновил ответ
1 сен 2015 в 11:23

#nav < display: block; position: relative; >#nav ul < width:300px; margin:0 auto; display:block; >#nav ul li a < background-color: #FFF; text-align: left; text-decoration: none; font-family: Arial, Helvetica, sans-serif; font-size: 18px; color: #000; >#nav ul li

Отслеживать
ответ дан 27 авг 2015 в 6:56
Aslan Kussein Aslan Kussein
1,776 2 2 золотых знака 14 14 серебряных знаков 35 35 бронзовых знаков

  • html
  • css
  • меню
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как выровнять меню по горизонтали css

aero

Написать в поддержку

headphone

Помощь онлайн

search

Проверить домен

key

Войти Валюта:

CSS: создание горизонтального меню

calendar

14 июня

heart

8702

question

Комментариев: 0

Для того, чтобы создать горизонтальное меню, вам нужно добавить в HTML-документ блок с нумерованным списком внутри. При этом одному из пунктов необходимо присвоить id. Уточним, что символ “#” означает адрес ссылки. Например:

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

Поле этого нужно сделать несколько действий:

  • Подключить таблицы одним из трех способов.
  • “Выстроить” пункты меню один за другим при помощи правила CSS:

display: inline;

  • Создать горизонтальную линию на странице, где будут отображаться пункты горизонтального меню. Обязательно укажите расстояние от края страницы:

border-bottom:2px solid #000000;

margin-left:0;

padding:4px 0;

  • Создать прямоугольные “окошки”, в которых будут размещены пункты меню. Кроме того нужно указать внутреннее растояние:

text-decoration:none;

margin-left:3px;

border:1px solid #000000;

padding: 3px 4px;

border-bottom:0;

background:#CEDEFF;

  • Настроить отображение пунктов горизонтального меню, на которые пользователь уже нажимал:

color:#493;

#menu ul li a:visited

color:#647;

color:#000;

background:#6699FF;

border-color:#227

  • Указать вид пункта текущей веб-страницы:

#menu ul li a#nowopen

background:#fff;

border-bottom: 1px solid #fff;

При необходимости вы можете выровнять горизонтальное меню по центру, использовав соответствующее правило CSS:

margin:0 25% 0 25%;

Горизонтальное меню в браузере:

soc-1

Также рекомендуем почитать:

CSS: создание кнопки CSS: стилизация цитат Как подключить CSS к HTML CSS: свойства шрифта CSS: текстовые эффекты CSS: свойства цвета и фона CSS: работа с блоками

  • Блог
  • Хостинг, домены, мировые новости, обзоры ПО
  • Рейтинги, обзоры, отзывы
  • Наши новости, акции, нововведения
  • Руководства, статьи, инструкции
  • RSS

Популярное в категории

blog-img-1

calendar

Июнь

heart

77778

blog-img-1

calendar

Июнь

heart

68387

blog-img-1

calendar

Октябрь

heart

56094

blog-img-1

calendar

Март

heart

44443

blog-img-1

calendar

Сентябрь

heart

37638

Как выровнять горизонтальное меню по центру?

Заур Магомедов

Здравствуйте уважаемые посетители моего блога! Сегодня речь пойдет о главном горизонтальном меню сайта, а именно как выровнять горизонтальное меню по центру. Да, на первый взгляд, что тут сложного — задал нужные отступы, подогнал и все. Но тут есть свои нюансы. Сайт, в первую очередь, это динамика, т.е. на сайте постоянно появляется новый контент, появляются какие то новые блоки с информацией и т.п. Так могут и появляться/исчезать некоторые пункты в главном меню. С учетом этого всего нужно добиться того, что при добавлении или удалении пункта меню, меню у нас остается все также по центру. Конечно, не всегда обязательно его центрировать, все зависит от дизайна. Но если все же у вас подразумевается ставить горизонтальное меню по центру, то применив несколько несложных трюков в css мы можем добиться нужного результата.

Горизонтальное меню по центру без выпадающих пунктов

Сначала разберем на примере горизонтального меню, которое не имеет выпадающих пунктов.

Html-код

Css-код

*, *::after, *::before < -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0; >#mainmenu < background: #444; position: relative; overflow: hidden; height: 40px; margin: 30px 0 >#mainmenu ul < list-style: none; margin: 0; padding: 0; position: relative; left: 50%; float: left; font: 14px Arial, Helvetica, sans-serif; height: 40px >#mainmenu ul li < position: relative; left: -50%; float: left; margin: 0 10px; height: 40px >#mainmenu ul li a < color: #fff; display: block; text-decoration: none; padding: 0 15px; line-height: 40px; >#mainmenu ul li a:hover

Разберем все по порядку, здесь все просто. Мы создаем контейнер «mainmenu», куда помещаем наше меню в виде неупорядоченного списка.

Теперь дело идет за стилями css. Сначала мы сбрасываем на ноль все поля и отступы для всех браузеров. Далее при помощи свойства «float:left» мы смещаем наш неупорядоченный список влево и далее относительным позиционированием смещаем его на 50% вправо. Ширина списка «ul» будет равна сумме длин всех пунктов «li», которые находятся внутри него. Таким образом, если мы мысленно поделим окно браузера пополам, то наше меню уйдет вправо от линии разделения. Чтобы выровнять мы применим к пунктам «li» также относительное позиционирование и сместим их влево на 50%, указав свойство «left:-50%». Да и еще, чуть не забыл, нашему контейнеру «mainmenu» нужно обязательно указать свойство «overflow:hidden», иначе мы получим горизонтальную полосу прокрутки. Вот и все, теперь наше меню выровнялось по центру. Теперь можете добавлять, хоть убавлять пункты, на позиционирование это не повлияет. Вы также можете использовать это меню на своих сайтах, просто изменив стили под ваш дизайн.

Горизонтальное меню по центру с выпадающими пунктами

Теперь разберем многоуровневое меню с выпадающими подпунктами. Здесь ситуация несколько иначе и несколько сложнее, т.к. в первом случае у нас подпункты выпадать не будут, потому что мы указали блоку «mainmenu» свойство — «overflow:hidden». Это говорит, что элементы за пределами данного блока показываться не будут. Но выход есть.

Читайте также: Горизонтальное многоуровневое меню на css с эффектом анимации
Итак, я изменил предыдущий код и удалил из него свойство «overflow:hidden».

Html-код

CSS-код

*, *::after, *::before < -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0; >#mainmenu < position: relative; background: #444444; height: 40px; margin: 30px 0; padding: 0; float: left; width: 100%; z-index: 10 >#mainmenu ul < clear: left; position: relative; right: 50%; height: 40px; float: right; text-align: center; font: 15px Arial, Helvetica, sans-serif; list-style: none; padding: 0; margin: 0 >/** Основные пункты **/ #mainmenu > ul > li < position: relative; left: 50%; float: left; height: 40px; padding: 0; margin: 0 >#mainmenu > ul > li > a < border-left: 1px solid #666; display: block; color: #fff; text-decoration: none; padding: 0 20px; line-height: 40px; >#mainmenu > ul > li:first-child > a < border: none >#mainmenu > ul > li:hover > a, #mainmenu > ul > li.hover > a, #mainmenu > ul > li.active > a < color: #fff >#mainmenu > ul > li:hover, #mainmenu > ul > li.hover, #mainmenu > ul > li.active < background: #666 >/* Выпадающие подпункты */ #mainmenu ul li ul < position: absolute; left: 0; top: 40px; display: none; list-style: none; visibility: hidden; padding: 0; margin: 0; width: 200px >#mainmenu > ul > li ul li < background-color: #666; position: relative; left: 0; display: list-item; float: none; height: auto; margin: 0; text-align: left; >#mainmenu ul li ul li a < border-bottom: 1px solid #999; display: block; color: #fff; padding: 10px 15px; text-decoration: none; >#mainmenu ul li ul li.parent a < position: relative; >#mainmenu ul li ul > li.parent > a::before < border-top: 1px solid #fff; border-right: 1px solid #fff; content: ""; display: block; position: absolute; right: 15px; top: 50%; transform: translateY(-50%) rotate(45deg); height: 6px; width: 6px; >#mainmenu ul li ul li:hover, #mainmenu ul li ul li.hover < background-color: #444 >#mainmenu ul li:hover ul, #mainmenu ul li.hover ul < display: block >/* Выпадающие пункты второго уровня */ #mainmenu ul li:hover > ul < opacity: 1; visibility: visible; margin: 0; >#mainmenu ul li ul li ul

Теперь у нас меню выставлено по центру и при наведении выпадают подпункты.

Выравнивание меню по центру с помощью flexbox

Выровнять меню по центру можно также, применив новое правило в css — flexbox. Вообще трюкам с flexbox я хочу посвятить отдельный пост, оно того стоит, очень упрощает жизнь верстальщику. В общем, здесь не будем углубляться… Я приведу здесь только код css для меню с выпадающими пунктами. HTML код тот же, что и выше.

Читайте также: Адаптивные заголовки (текст) на чистом CSS

Код CSS

*, *::after, *::before < -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0; >#mainmenu < position: relative; background: #444444; height: 40px; margin: 30px 0; padding: 0; width: 100%; z-index: 10 >#mainmenu ul < display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; height: 40px; text-align: center; font: 15px Arial, Helvetica, sans-serif; list-style: none; padding: 0; margin: 0; -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; >/** Основные пункты **/ #mainmenu > ul > li < position: relative; height: 40px; padding: 0; margin: 0 >#mainmenu > ul > li > a < border-left: 1px solid #666; display: block; color: #fff; text-decoration: none; padding: 0 20px; line-height: 40px; >#mainmenu > ul > li:first-child > a < border: none >#mainmenu > ul > li:hover > a, #mainmenu > ul > li.hover > a, #mainmenu > ul > li.active > a < color: #fff >#mainmenu > ul > li:hover, #mainmenu > ul > li.hover, #mainmenu > ul > li.active < background: #666 >/* Выпадающие подпункты */ #mainmenu ul li ul < position: absolute; left: 0; top: 40px; display: none; list-style: none; visibility: hidden; padding: 0; margin: 0; width: 200px >#mainmenu > ul > li ul li < background-color: #666; position: relative; left: 0; display: list-item; float: none; height: auto; margin: 0; text-align: left; >#mainmenu ul li ul li a < border-bottom: 1px solid #999; display: block; color: #fff; padding: 10px 15px; text-decoration: none; >#mainmenu ul li ul li.parent a < position: relative; >#mainmenu ul li ul > li.parent > a::before < border-top: 1px solid #fff; border-right: 1px solid #fff; content: ""; display: block; position: absolute; right: 15px; top: 50%; transform: translateY(-50%) rotate(45deg); height: 6px; width: 6px; >#mainmenu ul li ul li:hover, #mainmenu ul li ul li.hover < background-color: #444 >#mainmenu ul li:hover ul, #mainmenu ul li.hover ul < display: block >/* Выпадающие пункты второго уровня */ #mainmenu ul li:hover > ul < opacity: 1; visibility: visible; margin: 0; >#mainmenu ul li ul li ul

Как видим, изменились правила только для родительского списка — #mainmenu ul. Единственное, пришлось добавить префиксы для предыдущих версий браузеров. Отмечу, что правило flexbox корректно понимают только современные браузеры. Если вы ориентируетесь на более старые браузеры, то вариант с flex’ом придется отложить. Какие именно браузеры хорошо понимают flexbox можете посмотреть здесь. Вот и все. Если у вас возникли вопросы задавайте их в комментариях. Желаю удачи!

Разместить логотип по центру

Всем привет!
Я только учусь создавать сайт по книге Русакова. Возникла такая проблема: логотип не размещается по центру, хотя прописала все так, как указано в книге. Помогите решить проблему. Вот код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
 html> head> title>AutoPlus/title> meta http-equiv="Content-Type" content="text/html; charset-utf-8" /> meta name="description" content="" /> meta name="keywords" content="" /> link href="favicon.ico" rel="shortuct icon" type="image/x-icon" /> link type="text/css" rel="stylesheet" href="styles/main.css" /> /head> body> div id="container> div id="logo"> img src="https://www.cyberforum.ru/images/logo.png" alt="Лого" /> /div> /div> /body> /html>
1 2 3 4 5 6 7 8 9 10
body { background: url("../images/bg.png") no-repeat; background-size: cover; margin: 0; padding: 0; } #container { margin: 0 auto; width: 1004px; }

В чем может быть проблема?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *