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

Часто приходится делать меню на всю ширину какого-либо блока или окна. При этом оно должно:

  • Растягиваться на всю ширину блока;
  • При добавлении новых пунктов, должно вписываться в ширину блока-родителя;
<div class="menu">
	<ul>
		<li><a href="#">Главная</a></li>
		<li><a href="#">О компании</a></li>
		<li><a href="#">Покупателям</a></li>
		<li><a href="#">Акции</a></li>
		<li><a href="#">Новости</a></li>
		<li><a href="#">Контакты</a></li>
	</ul>
</div>
HTML
.menu {
	width: 100%;
	display: table;
}
.menu ul {
	display: table-row;
}
.menu li {
	display: table-cell;
	background: #2767A0;
}
.menu ul li:hover, .menu a:hover {
	background: #666;
}
.menu li a {
	display: block;
	padding: 8px 15px;
	color: #fff;
	text-align: center;
}
CSS

Выпадающие меню

<div class="menu">
	<ul>
		<li><a href="#">Главная</a></li>
		<li><a href="#">О компании</a></li>
		<li><a href="#">Покупателям</a></li>
		<li>
			<a class="menu-caret" href="#">Акции</a>
			<ul>
				<li><a href="#">Акция 1</a></li>
				<li><a href="#">Акция 2</a></li>
				<li><a href="#">Акция 3</a></li>
				<li><a href="#">Акция 4</a></li>
				<li><a href="#">Акция 5</a></li>
			</ul>
		</li>
		<li><a href="#">Новости</a></li>
		<li><a href="#">Контакты</a></li>
	</ul>
</div>
HTML
.menu {
	width: 100%;
	display: table;
}
.menu ul {
	display: table-row;
}
.menu li {
	display: table-cell;
	position: relative;
	background: #2767A0;
}
.menu li a {
	display: block;
	padding: 15px 15px;
	color: #fff;
	text-align: center;
}
.menu-caret:after {
	display: inline-block;
	width: 0;
	height: 0;
	margin-left: .255em;
	vertical-align: .255em;
	content: "";
	border-top: 3px solid;
	border-right: 3px solid transparent;
	border-bottom: 0;
	border-left: 3px solid transparent;
}
.menu ul li:hover, .menu a:hover {
	background: #666;
}
.menu li:hover ul  {
	display: block;
	position: absolute;
	top: 100%;
	left: 0px;
	background: #666;
	margin: 0;
	padding: 10px 20px;
	width: 150px;
	z-index: 9999;
}
.menu ul ul  {
	display: none;
}
.menu ul ul li  {
	display: block;
	background: #666;
	padding: 5px 0;
}
.menu ul ul li a  {
	display: block;
	padding: 0;
	background: #666;
	text-align: left;
}
CSS
01.11.2016, обновлено 07.10.2019 2874
Предыдущая запись Location – URL текущей страницы
Следующая запись Горизонтальное меню justify

Поделится

Темы

CSS HTML Меню

Другие публикации

С помощью расширения dompdf можно легко сформировать PDF файл. По сути, dompdf - это конвертер HTML в PDF который...
16.02.2018 9607
В статье описана регистрация клиента, получения access token, примеры использования методов API Instagram на PHP.
14.03.2017 9829
Сборник CSS стилей с эффектом фильтров Инстаграма.
08.04.2018 1086
Список временных зон, совместимых с PHP
12.04.2019 341
Можно найти множество применений Яндекс Диска на своем сайте, например, хранение бекапов и отчетов, обновление прайсов,...
29.11.2017 9972