У меня возникли проблемы с тем, чтобы конечный элемент LI выравнивался в моем навигационном контейнере. У меня есть еще четыре четких расстояния и достаточно места для пятого элемента для отображения в контейнере, но он каким-то образом отталкивается. Я довольно смущен, почему это происходит. HTML и CSS ниже. Любая помощь очень ценится!
<div class='top_menu_wrapper'>
<div class='top_menu_center'>
<ul>
<li class='menu_link menu'>Who We Are</li>
<li class='menu_link menu'>Family House</li>
<li class='menu_link ypac_logo menu'> IMAGE PLACEHOLDER</li>
<li class='menu_link menu'>Upcoming Events</li>
<li class='menu_link menu'>Get Involved</li>
</ul>
</div>
</div>
CSS:
.top_menu_wrapper{
min-height: 65px;
border: 1px solid black;
position: fixed;
width:100%
}
.top_menu_center{
width:65%;
border: 1px solid black;
margin: 0 auto;
height:100px;
}
.top_menu_center ul{
list-style-type:none;
width:100%;
margin:0 0 0 0;
padding:0 0 0 0;
height:100px;
}
.top_menu_center li{
display:inline-block;
height:100px;
width:20%;
margin:0 0 0 0;
padding:0 0 0 0;
text-align:center;
}
Вы можете попробовать использовать float: left вместо отображения: inline
.top_menu_center li{
float: left;
height:100px;
width:20%;
margin:0 0 0 0;
padding:0 0 0 0;
text-align:center;
}
По какой-то причине сумма вашей ширины li
составляет более 100%. Поэтому последний элемент выталкивается из коробки. Во всяком случае, если вы измените ширину li
с 20% до 19%, он лучше подходит для Chrome. Вы можете сделать исследование о том, почему 5 * 20%! = 100% в этом случае.
Скрипт: http://jsfiddle.net/WP6Lb/
inline-block
полностью во всех браузерах, поэтому я стараюсь избегать этого. Я на самом деле согласен с ответом @Brian Grahams. Я бы пошел с display:block; float:left;
подход.
Вы должны просто поплавать li
и настроить его так, чтобы ul
очистила float.
Здесь jsfiddle: http://jsfiddle.net/efgdY/
В качестве побочного примечания, если вы намереваетесь их оттолкнуть (на 10-15 пикселей, как и в исходном CSS), вы можете установить значение padding-top
и добавить box-sizing: border-box;
.top_menu_center li
.
Вам необходимо изменить inline-block
на inline
.top_menu_center li{
display:block;
float:left;
height:100px;
width:20%;
margin:10px 0;
padding:0 0;
text-align:center;
}
У вас будут проблемы с интервалом, поэтому я установил jsfiddle здесь: http://jsfiddle.net/rileychuggins/YF7DX/
position:relative;
top:10px
или как далеко вам нужно сверху.