gpt4 book ai didi

javascript - 单击响应式导航按钮时文本未对齐

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:36 25 4
gpt4 key购买 nike

我只是在测试 W3Schools 提供的响应式顶部导航示例,我对内部样式表做了一个小修改,因此文本 Home 将移动到菜单的中心并且它未对齐当我点击导航按钮时。

为什么会发生这种情况以及如何解决?

<!DOCTYPE html>
<html>

<head>
<style>
body {
margin: 0;
}
ul.topnav {
text-align: center;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
ul.topnav li {
display: inline-block;
text-align: center;
}
ul.topnav li a {
display: inline-block;
color: #f2f2f2;
text-align: center;
text-decoration: none;
transition: 0.3s;
padding: 14px 16px;
font-size: 17px;
}
ul.topnav li a:hover {
background-color: #555;
}
ul.topnav li.icon {
display: none;
}
@media screen and (max-width: 680px) {
ul.topnav li:not(:first-child) {
display: none;
}
ul.topnav li.icon {
float: right;
display: inline-block;
}
}
@media screen and (max-width: 680px) {
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: center;
}
}
</style>
</head>

<body>

<ul class="topnav" id="myTopnav">
<li><a class="active" href="#home">Home</a>
</li>
<li><a href="#news">News</a>
</li>
<li><a href="#contact">Contact</a>
</li>
<li><a href="#about">About</a>
</li>
<li class="icon">
<a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a>
</li>
</ul>

<div style="padding-left:16px">
<h2>Responsive Topnav Example</h2>
<p>Resize the browser window to see how it works.</p>
</div>

<script>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>

</body>

</html>

最佳答案

正如我在评论中所说,问题是因为您的 li.iconposition: relativeposition: absolute 之间切换

你必须将它固定到 position:absolute

<!DOCTYPE html>
<html>

<head>
<style>
body {
margin: 0;
}
ul.topnav {
text-align: center;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
ul.topnav li {
display: inline-block;
text-align: center;
}
ul.topnav li a {
display: inline-block;
color: #f2f2f2;
text-align: center;
text-decoration: none;
transition: 0.3s;
padding: 14px 16px;
font-size: 17px;
}
ul.topnav li a:hover {
background-color: #555;
}
ul.topnav li.icon {
display: none;
}
@media screen and (max-width: 680px) {
ul.topnav li:not(:first-child) {
display: none;
}
ul.topnav li.icon {
display: inline-block;
position: absolute;
right: 0;
}
}
@media screen and (max-width: 680px) {
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: center;
}
}
</style>
</head>

<body>

<ul class="topnav" id="myTopnav">
<li><a class="active" href="#home">Home</a>
</li>
<li><a href="#news">News</a>
</li>
<li><a href="#contact">Contact</a>
</li>
<li><a href="#about">About</a>
</li>
<li class="icon">
<a href="javascript:void(0);" style="font-size:15px;" onclick="myFunction()">☰</a>
</li>
</ul>

<div style="padding-left:16px">
<h2>Responsive Topnav Example</h2>
<p>Resize the browser window to see how it works.</p>
</div>

<script>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>

</body>

</html>

关于javascript - 单击响应式导航按钮时文本未对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40017490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com