У меня проблемы с отображением и скрытием некоторых элементов <li>
на основе медиазапроса.У меня есть элемент <ul>
, который отображается как flexbox, содержащий элементы <li>
.Каждый соответствующий <li>
также отображается как flexbox, содержащий значок и текст.Я хочу, чтобы два <li>
элемента (первый и последний) отображались, когда ширина экрана составляет 925 пикселей или меньше.Однако, похоже, это работает только тогда, когда элементы <li>
НЕ отображаются в виде флексбоксов.Однако мне нужно, чтобы элементы <li>
были flexbox, чтобы я мог просто отформатировать значок и текст.Можно ли как-нибудь показать / скрыть элементы <li>
в зависимости от ширины экрана, если элементы <li>
отформатированы как flexbox?
У меня есть код в приведенной ниже ссылке, который совпадает скод, показанный ниже в этом посте.https://codepen.io/anon/pen/XYrxmG
Элементы <li>
, которые я хочу показать, когда ширина экрана меньше 925 пикселей, обозначены розовым фоном.
<nav id="navigation">
<ul id="nav-content">
<li id="nav-left"></li>
<li id="op1"><img src="https://via.placeholder.com/30x30"><h2>Option1</h2></li>
<li id="op2"><img src="https://via.placeholder.com/30x30"><h2>Option2</h2></li>
<li id="op3"><img src="https://via.placeholder.com/30x30"><h2>Option3</h2></li>
<li id="op4"><img src="https://via.placeholder.com/30x30"><h2>Option4</h2></li>
<li id="nav-right"></li>
</ul>
</nav>
* {
margin: 0px;
padding: 0px;
color: black;
}
#nav-content {
display: flex;
flex-direction: row;
justify-content: flex-start;
list-style-type: none;
border: solid 2px black;
}
// Each list element in nav bar
#nav-content>li {
// When this display: flex is turned on, my <li> gets formatted correctly
// but the pink elements stop showing based on media query
//display: flex;
align-items: center;
padding: 10px 20px 10px 20px;
}
#nav-content > li:hover {
background-color: grey;
}
#nav-left, #nav-right {
display: none;
background-color: pink;
}
@media (max-width: 500px) {
#nav-left,
#nav-right {
display: flex;
}
}