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

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

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

  • Растягиваться на всю ширину блока;
  • При добавлении новых пунктов, должно вписываться в ширину блока-родителя;
<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
40216
Предыдущая запись Location – URL текущей страницы
Следующая запись Горизонтальное меню justify

Комментарии 1

Valeriy-korn Tndbolbc Valeriy-korn Tndbolbc
25 мая 2024 в 17:10
<div><h1>Здравохранение</h1></div>
<div style="text-align: center; width: 640px; margin: auto;">
<ul class="menu-horizontal">
<li><a href="1-therapist/page-1.html">Терапевт</a></li>
<li><a href="2-psychiatrist/page-1.html">Психиатр</a></li>
<li><a href="3-oculist/page-1.html">Окулист</a></li>
<li><a href="4-otologist/page-1.html">Отоларинголог</a></li>
<li><a href="5-dentist/page-1.html">Стоматолог</a></li>
<li><a href="7-surgeon/page-1.html">Хирург</a></li>
</ul>
</div>
<div style="text-align: center; width: 687px; margin: auto;">
<ul class="menu-horizontal">
<li><a href="8-obstetrician/page-1.html">Акушер</a></li>
<li><a href="14-venereologist/page-1.html">Венеролог</a></li>
<li><a href="17-narcology/page-1.html">Нарколог</a></li>
<li><a href="13-specialists/page-1.html">Другие врачи</a></li>
<li><a href="16-hospital/page-1.html">Больница</a></li>
<li><a href="9-pathologist/page-1.html">Патологоанатом</a></li>
</ul>
</div>
<div style="text-align: center; width: 565px; margin: auto;">
<ul class="menu-horizontal">
<li><a href="15-history/page-1.html">ИСТОРИЯ</a></li>
<li><a href="11-science/page-1.html">НАУКА</a></li>
<li><a href="6-nanny/page-1.html">Медицинская сестра</a></li>
<li><a href="12-pharmacy/page-1.html">Аптека</a></li>
<li><a href="10-veterinarian/page-1.html">Ветеринар</a></li>
</ul>
</div>
Оглавление (меню) сделано при помощи списков; как сделать его „резиновым“?

, чтобы добавить комментарий.

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

Таблица символов ASCII + Windows 1251
Список из 256 символов и их коды в ASCII.
1037590
+59
CSS display table
CSS-свойство display table и другие, делают вывод группы элементов подобно таблице, но с ограничением – объединения ячеек colspan и rowspan не поддерживаются.
43030
+3
Генерация счета на оплату PDF PHP
С помощью расширения dompdf можно легко сформировать PDF файл. По сути, dompdf - это конвертер HTML в PDF который...
73899
+35
Сложение и форматирование цен в JS
Есть две переменные с форматированными ценами... Нужно их сложить. Сразу привести их числу с помощью parseInt() не...
6437
+4
Чтение Google таблиц в PHP
Как получить данные из Google spreadsheets в виде массива PHP? Очень просто, Google docs позволяет экспортировать лист в формате CSV, главное чтобы файл был в общем доступе.
25739
+6
Работа с API Instagram
В статье описана регистрация клиента, получения access token, примеры использования методов API Instagram на PHP.
24486
+3