#html #css
#HTML #css
Вопрос:
Я создал меню, в котором есть 3 раздела: логотип, панель навигации и правая панель. Я заставил их оправдать-содержимое: пространство вокруг, чтобы логотип был справа, навигация по центру и правая панель справа. Также я сделал ссылки пробелом: nowrap и добавил margin: 0 10% (просто для примера), и мой li вышел из навигационного тега. Как я могу это исправить?
Ссылка на codepen:https://codepen.io/kartegi/pen/xxVzPLm?editors=1100
* {
margin: 0;
padding: 0;
box-sizing: border-box;
text-decoration: none;
list-style-type: none;
}
.menu {
display: flex;
align-items: center;
justify-content: space-around;
width: 100%;
height: 80px;
background: green;
}
a {
white-space: nowrap;
color: #fff;
}
nav {
background: red;
}
.menu-list {
display: flex;
background: #000;
margin: 0 2.5%;
}
li {
margin: 0 10%;
}
.right-bar {
display: flex;
}
.search {
width: 20px;
height: 20px;
background: #000;
}
.language {
width: 20px;
height: 20px;
background: #fff;
}
<div class="menu">
<div class="logo">
<a href="">Click me</a>
</div>
<nav class="navbar">
<ul class="menu-list">
<li><a href="#">About me</a></li>
<li><a href="#">My compony</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Media</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
<div class="right-bar">
<div class="search">
</div>
<div class="language">
</div>
</div>
</div>
Комментарии:
1. Вы можете добавить «flex: 1 1 auto;» к вашему элементу .navbar, чтобы получить максимальную доступную ширину. Вы также можете иметь ширину до . логотип и .правая панель для лучшего просмотра
Ответ №1:
Здесь вы можете увидеть, li
внутри вашего ul
списка. Просто добавьте «flex: 1 1 auto;» к вашему элементу .navbar, чтобы получить максимальную ширину. Теперь вам нужно управлять шириной элементов и интервалом.
* {
margin: 0;
padding: 0;
box-sizing: border-box;
text-decoration: none;
list-style-type: none;
}
.menu {
display: flex;
align-items: center;
justify-content: space-around;
width: 100%;
height: 80px;
background: green;
}
a {
white-space: nowrap;
color: #fff;
}
nav {
background: red;
}
.menu-list {
display: flex;
background: #000;
margin: 0 2.5%;
}
li {
margin: 0 10%;
}
.right-bar {
display: flex;
}
.search {
width: 20px;
height: 20px;
background: #000;
}
.language {
width: 20px;
height: 20px;
background: #fff;
}
.navbar{
flex: 1 1 auto;
}
<div class="menu">
<div class="logo">
<a href="">Click me</a>
</div>
<nav class="navbar">
<ul class="menu-list">
<li><a href="#">About me</a></li>
<li><a href="#">My compony</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Media</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
<div class="right-bar">
<div class="search">
</div>
<div class="language">
</div>
</div>
</div>
Ответ №2:
Это то, что вы ищете?
Попробуйте flex-direction: column;
на своем .menu-list
или
flex-wrap: wrap;
чтобы обернуть элементы в пределах доступного пространства.
Ответ №3:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
text-decoration: none;
list-style-type: none;
}
.menu {
display: flex;
align-items: center;
justify-content: space-around;
height: 80px;
background: green;
}
a {
white-space: nowrap;
color: #fff;
}
nav {
background: #fff;
}
.menu-list {
display:flex;
align-items:space-between;
background-color:black;
}
li a{
padding:20px; // remove margin from li and give padding on anchor tag
}
.right-bar {
display: flex;
}
.search {
height: 20px;
background: #000;
}
.language {
background: #fff;
}