30.04.2014

Меню на всю ширину блока с равным отступом

Очень часто возникает задача сделать меню на сайте на всю ширину div’а. Самое простое решение — это сделать фиксированную ширину для каждого пункта, но если в дальнейшем нужно будет добавить еще пункты или текст ссылки будет больше, чем заданная ширина?

В такой ситуации можно обойтись простым css, для этого создаем меню.

И добавляем стили, в которых блок ul будет являться таблицей, а каждый элемент li и a ячейкой данной таблицы.

<ul class="full-width">
	<li>
		<a href="#">О компании</a>
		<ul>
			<li><a href="#">История</a></li>
			<li><a href="#">Успехи</a></li>
			<li><a href="#">Команда</a></li>
		</ul>
	</li>
	<li class="active"><a href="#">Услуги</a></li>
	<li><a href="#">Технологии</a></li>
	<li><a href="#">Проекты</a></li>
	<li><a href="#">Контакты</a></li>
</ul>
ul.full-width{
	width: 100%; /* Ширина основного блока меню */
	height: 50px; /* Высота основного блока меню */
	position: relative;
	display: table;
	margin: 0;
	padding: 0;
}
ul.full-width li {
	display: table-cell;
	position: relative;
}
ul.full-width li a {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	text-align:center;
	background: #FFF;
	line-height: 50px; /* Приравниваем к высоте, чтобы выровнять текст по вертикали */
}
ul.full-width li ul {
	display: none; /* Скрываем выпадающее меню */
	position: absolute;
	width: 100%;
	margin: 0px;
	padding: 0px;
}
ul.full-width li ul li {
	display: block;
}
ul.full-width li:hover ul {
	display: block; /* Показываем выпадающее меню, где оно есть, при наведении */
}

Демонстрация

Нам будет приятно

Поделитесь

Комментарии

Загрузка комментариев...