Я пытаюсь сделать горизонтальную навигационную панель, и у меня она сидит в верхней части страницы, причем каждый из трех элементов списка заполняет треть пространства, все хорошо для этого. часть.CSS Padding overflowing parent
Проблема заключается в том, что я пытаюсь сделать тег привязки (который находится внутри элемента списка) заполнить все пространство элемента списка. Я установил его на display: block;
, поэтому он занимает полную ширину, однако я не могу заставить его заполнить вертикальное пространство, как я этого хочу. Я могу использовать height: 100%
, и он заполнит пространство, однако, если я сделаю так, текст тега привязки будет находиться в верхней части пространства списка, однако я хочу, чтобы он был вертикально центрирован. На это напомнили верхнюю и нижнюю прокладку, поэтому я попытался установить padding: 100%;
. Когда это произошло, я больше не мог видеть текст привязанного тега. Перетаскивая пространство мышью, похоже, что тег занимает больше места, чем в элементе списка.
Это изображение навигационной панели с height: 100%;
: Примечание: красные линии, окружающие каждую секцию являются границы, которые я установил видимым для просмотра границ
Соответствующий HTML-код выглядит следующим образом:
<ul class="main_nav">
<li><a href="#">Home</a></li>
<li><a href="#">Test page</a></li>
<li><a href="#">Test page 2</a></li>
</ul>
Соответствующий код CSS выглядит следующим образом:
body * {
font-family: Roboto sans-serif;
box-sizing: border-box;
border: solid 2px red;
}
header ul.main_nav {
background-color: gray;
color: #EBEBEB;
margin: 0px;
padding: 0px;
width: 100%;
height: 50px;
list-style-type: none;
list-style-position: inside;
overflow: hidden;
}
header ul.main_nav li {
text-align: center;
float: left;
width: calc(100%/3);
height: 100%;
}
header ul.main_nav li a {
display: block;
height: 100%;
text-decoration: none;
}
EDIT: Я предпочел бы не использовать фиксированные размеры, чтобы решить эту проблему, так как я в основном предпочитаю быть в состоянии изменить одно значение (50px для ул), чтобы настроить весь Navbar
изменения в 'коробке-проклейки: приграничном-box', так что обивка и границы становятся частью расчетов проклейки. по умолчанию это не так. –
вы уже установили фиксированную высоту для ul.main_nav (50px) ... пытались ли вы использовать это для li вместо 100%? line-height хорошо работает и иногда. – andi
Не уверен, что размер окна наследуется по дереву. не может помешать явно добавить его в переполняющие элементы. –