我在根据媒体查询显示和隐藏一些<li>
项时遇到问题。我有一个<ul>
元素,显示为flexbox,包含<li>
个元素。每个相应的<li>
也显示为flexbox,包含图标和文本。我希望在屏幕宽度为925px或更小时显示两个<li>
元素(第一个和最后一个)。但是,当<li>
元素未显示为flexbox时,这似乎才有效。但是,我需要将<li>
元素作为flexbox,因此我可以简单地格式化图标和文本。如果将<li>
元素格式化为flexbox,我是否可以根据屏幕宽度显示/隐藏<li>
元素?
我在下面的链接中有代码,这与本文后面的代码相同。 https://codepen.io/anon/pen/XYrxmG
当屏幕宽度小于925px时,我想要显示的<li>
元素用粉红色背景表示。
<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;
}
}
答案 0 :(得分:1)
这似乎只是选择者的重量问题:
* {
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;
}
#nav-content > li {
display: flex;
align-items: center;
padding: 10px 20px 10px 20px;
}
#nav-content > li:hover {
background-color: grey;
}
#nav-content > #nav-left,
#nav-content > #nav-right {
display: none;
background-color: pink;
}
@media (max-width: 925px) {
#nav-content > #nav-left,
#nav-content > #nav-right {
display: flex;
}
}
&#13;
<nav id="navigation">
<ul id="nav-content">
<li id="nav-left"></li>
<li id="op1"><img src="http://via.placeholder.com/30x30"><h2>Option1</h2></li>
<li id="op2"><img src="http://via.placeholder.com/30x30"><h2>Option2</h2></li>
<li id="op3"><img src="http://via.placeholder.com/30x30"><h2>Option3</h2></li>
<li id="op4"><img src="http://via.placeholder.com/30x30"><h2>Option4</h2></li>
<li id="nav-right"></li>
</ul>
</nav>
&#13;
修复&amp; forked pen:
#nav-content > #nav-left,
#nav-content > #nav-right {
display: none;
background-color: pink;
}
@media (max-width: 500px) {
#nav-content > #nav-left,
#nav-content > #nav-right {
display: flex;
}
}