Я хотел бы растянуть 6 навигационных элементов равномерно через контейнер 900px с равным количеством пробелов между ними. Например...
---| 900px Container |---
---| HOME ABOUT BASIC SERVICES SPECIALTY SERVICES OUR STAFF CONTACT US |---
В настоящее время лучшим способом, который я могу найти для этого, является следующее:
nav ul {
width: 900px;
margin: 0 auto;
}
nav li {
line-height: 87px;
float: left;
text-align: center;
width: 150px;
}
ПРОБЛЕМА с этим состоит из двух раз. Прежде всего, это действительно не оправдывает его, а равно равномерно распределяет теги li по всему тегу ul. Создавая неравномерное белое пространство между меньшими элементами меню, такими как "HOME" или "О", и более крупные, такие как "ОСНОВНЫЕ УСЛУГИ",.
Вторая проблема заключается в том, что макет ломается, если элемент nav больше 150 пикселей, какие СПЕЦИАЛЬНЫЕ УСЛУГИ - даже если для всего навигатора более чем достаточно места.
Может ли кто-нибудь решить это для меня? Я прочесываю сеть для решений, и все они, похоже, не подходят. CSS/HTML только по возможности...
Спасибо!
UPDATE (7/29/13): Использование table-cell - лучший современный способ реализации этого макета. См. Ответ felix ниже. Свойство table cell
работает в 94% браузеров в настоящее время. Вам нужно что-то сделать с IE7 и ниже, но в остальном все должно быть хорошо.
UPDATE (7/30/13): К сожалению, есть ошибка webkit, которая влияет на это, если вы комбинируете этот макет с Media Queries. На данный момент вам придется не менять свойство display. См. Ошибка Webkit.
ОБНОВЛЕНИЕ (7/25/14): Ниже приведено более точное решение, связанное с выравниванием текста: justify. Использование этого проще, и вы избежите ошибок Webkit.