在响应式菜单中显示活动 link
Display active link en responsive menu
我在响应式菜单顶部显示活动 link 时遇到问题,我希望它在被选中时显示在顶部,它在被选中时已经应用了活动 css 样式但它并没有显示在顶部,我不确定如何让它成为一个标签?
这是我的代码
CSS
@media screen and (max-width:768px) {
ul.topnav li a {
display: inline-block;
color: #fff;
text-align: center;
padding: 20px 20px 20px 20px;
height: auto;
}
ul.topnav .active {
color: #ee1921;
border-bottom: none!important;
font-size: 20px;
}
ul.topnav.responsive {
position: relative;
}
ul.topnav.responsive li.icon {
position: absolute;
right: 0;
top: 0;
}
ul.topnav.responsive li {
float: none;
display: inline;
}
ul.topnav.responsive li a {
display: block;
text-align: left;
font-size: 20px;
padding: 20px 20px 15px 20px;
}
ul.topnav.responsive .active {
border-bottom: 1px solid #fff;
}
}
HTML
<ul class="topnav" id="myTopnav">
<li><a class="navItem" href="FAQ-sports.html">Sports</a></li>
<li><a href="FAQ-casino.html" class="navItem">Casino</a></li>
<li><a href="#Slots" class="navItem">Slots</a></li>
<li><a href="#Vegas" class="navItem">Vegas</a></li>
<li><a href="#Bingo" class="active">Bingo</a></li>
<li class="icon"><a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a></li>
</ul><br><br>
而 jquery 脚本是:
<script>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>
您可以在父级上使用 display: flex; flex-direction: column;
,将 .active
class 改为在 li
上(这样它就是 flex 的 flex-child -parent),然后 .active { order: -1; }
将 li
放在列表的开头。
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
@media screen and (max-width:768px) {
ul.topnav li a {
display: inline-block;
color: #fff;
text-align: center;
padding: 20px 20px 20px 20px;
height: auto;
}
ul.topnav .active a {
color: #ee1921;
border-bottom: none!important;
font-size: 20px;
}
ul.topnav.responsive {
position: relative;
}
ul.topnav.responsive li.icon {
position: absolute;
right: 0;
top: 0;
}
ul.topnav.responsive li {
float: none;
display: inline;
}
ul.topnav.responsive li a {
display: block;
text-align: left;
font-size: 20px;
padding: 20px 20px 15px 20px;
}
ul.topnav.responsive .active a {
border-bottom: 1px solid #fff;
}
.topnav {
display: flex;
flex-direction: column;
}
.active {
order: -1;
}
}
<ul class="topnav" id="myTopnav">
<li><a class="navItem" href="FAQ-sports.html">Sports</a></li>
<li><a href="FAQ-casino.html" class="navItem">Casino</a></li>
<li><a href="#Slots" class="navItem">Slots</a></li>
<li><a href="#Vegas" class="navItem">Vegas</a></li class="active">
<li class="active"><a href="#Bingo" class="">Bingo</a></li>
<li class="icon"><a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a></li>
</ul><br><br>
我在响应式菜单顶部显示活动 link 时遇到问题,我希望它在被选中时显示在顶部,它在被选中时已经应用了活动 css 样式但它并没有显示在顶部,我不确定如何让它成为一个标签?
这是我的代码
CSS
@media screen and (max-width:768px) {
ul.topnav li a {
display: inline-block;
color: #fff;
text-align: center;
padding: 20px 20px 20px 20px;
height: auto;
}
ul.topnav .active {
color: #ee1921;
border-bottom: none!important;
font-size: 20px;
}
ul.topnav.responsive {
position: relative;
}
ul.topnav.responsive li.icon {
position: absolute;
right: 0;
top: 0;
}
ul.topnav.responsive li {
float: none;
display: inline;
}
ul.topnav.responsive li a {
display: block;
text-align: left;
font-size: 20px;
padding: 20px 20px 15px 20px;
}
ul.topnav.responsive .active {
border-bottom: 1px solid #fff;
}
}
HTML
<ul class="topnav" id="myTopnav">
<li><a class="navItem" href="FAQ-sports.html">Sports</a></li>
<li><a href="FAQ-casino.html" class="navItem">Casino</a></li>
<li><a href="#Slots" class="navItem">Slots</a></li>
<li><a href="#Vegas" class="navItem">Vegas</a></li>
<li><a href="#Bingo" class="active">Bingo</a></li>
<li class="icon"><a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a></li>
</ul><br><br>
而 jquery 脚本是:
<script>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>
您可以在父级上使用 display: flex; flex-direction: column;
,将 .active
class 改为在 li
上(这样它就是 flex 的 flex-child -parent),然后 .active { order: -1; }
将 li
放在列表的开头。
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
@media screen and (max-width:768px) {
ul.topnav li a {
display: inline-block;
color: #fff;
text-align: center;
padding: 20px 20px 20px 20px;
height: auto;
}
ul.topnav .active a {
color: #ee1921;
border-bottom: none!important;
font-size: 20px;
}
ul.topnav.responsive {
position: relative;
}
ul.topnav.responsive li.icon {
position: absolute;
right: 0;
top: 0;
}
ul.topnav.responsive li {
float: none;
display: inline;
}
ul.topnav.responsive li a {
display: block;
text-align: left;
font-size: 20px;
padding: 20px 20px 15px 20px;
}
ul.topnav.responsive .active a {
border-bottom: 1px solid #fff;
}
.topnav {
display: flex;
flex-direction: column;
}
.active {
order: -1;
}
}
<ul class="topnav" id="myTopnav">
<li><a class="navItem" href="FAQ-sports.html">Sports</a></li>
<li><a href="FAQ-casino.html" class="navItem">Casino</a></li>
<li><a href="#Slots" class="navItem">Slots</a></li>
<li><a href="#Vegas" class="navItem">Vegas</a></li class="active">
<li class="active"><a href="#Bingo" class="">Bingo</a></li>
<li class="icon"><a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a></li>
</ul><br><br>