gpt4 book ai didi

javascript - 响应式侧边菜单

转载 作者:行者123 更新时间:2023-11-28 02:51:34 24 4
gpt4 key购买 nike

我正在关注 Traversy Media 在 Youtube 上的一个名为“从头开始响应式 HTML 和 CSS 侧边菜单”的教程(我会以还没有足够的声誉发布链接)并且我的侧边导航有几个问题.注意它的显示方式 before I click on the openSlideMenu() icon on the top left-hand corner与何时 I have clicked on it .我已经按照老师的代码去做了,但是界面上似乎至少有4个问题。

  1. 3 栏图标附近有一个打开的标记符号,在菜单打开和关闭时都保留。

  2. 点击打开时,侧边导航远离页面左侧,在菜单和页面左侧之间形成一个大的空白间隙,而此处不应存在间隙。

  3. 侧边导航越过标题文本“响应式侧边菜单”,从而遮挡了文本的“e 菜单”部分,而标题文本应该是响应式的,并在侧边导航移动时移动,因为在教程中描绘。

  4. 侧边导航中的 closeMenuButton() 的位置直接在元素上方,而它应该位于右手 Angular 。

我的 HTML/Javascript 代码:

function openSlideMenu() {
document.getElementById('side-menu').style.width = '250px';
document.getElementById('side-menu').style.marginLeft = '250px';
}

function closeSlideMenu() {
document.getElementById('side-menu').style.width = '0px';
document.getElementById('side-menu').style.marginLeft = '0px';
}
body {
font-family: "Arial", Serif;
background-color: #f4f4f4;
overflow-x: hidden;
}

.navbar {
background-color: #3b5998;
overflow: hidden;
height: 63px;
}

.navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}

.navbar ul {
margin: 8px 0 0 0;
list-style: none;
}

.navbar a:hover {
background-color: #ddd;
color: #000;
}

.side-nav {
height: 100%;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #111;
opacity: 0.9;
overflow-x: hidden;
padding-top: 60px;
transition: 0.5s;
}

.side-nav a {
padding: 10px 10px 10px 30px;
text-decoration: none;
font-size: 22px;
color: #ccc;
display: block;
transition: 0.3s;
}

.side-nav a:hover {
color: #fff;
}

.side-nav .btn-close {
postion: absolute;
top: 0;
right: 22px;
font-size: 36px;
margin-left: 50px;
}

# main {
transition: margin-left 0.5s;
padding: 20px;
overflow: hidden;
width: 100%;
}

@media(max-width: 568px) {
.navbar-nav {
display: none
}
}
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width-device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie-edge">
<title>Document</title>
<link rel="stylesheet" href="style.css" </head>

<body>
<nav class="navbar">
<span class="open-slide">
<a href="#" onClick="openSlideMenu()">
<<svg width="30" height="30">
<path d="M0,5 30,5" stroke=#fff stroke-width="5"/>
<path d="M0,14 30,14" stroke=#fff stroke-width="5"/>
<path d="M0,23 30,23" stroke=#fff stroke-width="5"/>
</svg>
</a>
</span>
<ul class="navbar-nav">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Service</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>

<div id="side-menu" class="side-nav">
<a href="#" class="btn-close" onClick="closeSlideMenu()">&times;</a>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Services</a>
<a href="#">Contact</a>
</div>

<div id="main">
<h1>Responsive Side Menu</h1>
</div>



</body>

</html>

此外,老师在 Youtube 上的视频描述中有他制作的代码,您可以通过搜索“Responsive HTML & CSS Side Menu From Scratch”找到第一个结果。

最佳答案

代码错误百出这是工作代码找出你的错误

    <!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width-device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie-edge">
<title>Document</title>
<link rel="stylesheet" href="style.css">
<style media="screen">
body {
font-family: "Arial", Serif;
background-color: #f4f4f4;
overflow-x: hidden;
}

.navbar {
background-color: #3b5998;
overflow: hidden;
height: 63px;
}

.navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}

.navbar ul {
margin: 8px 0 0 0;
list-style: none;
}

.navbar a:hover {
background-color: #ddd;
color: #000;
}

.side-nav {
height: 100%;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #111;
opacity: 0.9;
overflow-x: hidden;
margin-top: 60px;
transition: 0.5s;
}

.side-nav a {
padding: 10px 10px 10px 30px;
text-decoration: none;
font-size: 22px;
color: #ccc;
display: block;
transition: 0.3s;
}

.side-nav a:hover {
color: #fff;
}

.side-nav .btn-close {
position: absolute;
top: 0;
right: 22px;
font-size: 36px;
display: inline;
}

#main {
transition: margin-left 0.5s;
padding: 20px;
overflow: hidden;
width: 100%;
}
.open-slide {
display: none;
}

@media(max-width: 568px) {
.navbar-nav {
display: none
}
.open-slide {
display: inline-block;
}
}
</style>
</head>

<body>
<nav class="navbar">
<span class="open-slide">
<a href="#" onClick="openSlideMenu()">
<<svg width="30" height="30">
<path d="M0,5 30,5" stroke=#fff stroke-width="5"/>
<path d="M0,14 30,14" stroke=#fff stroke-width="5"/>
<path d="M0,23 30,23" stroke=#fff stroke-width="5"/>
</svg>
</a>
</span>
<ul class="navbar-nav">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Service</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>

<div id="side-menu" class="side-nav">
<a href="#" class="btn-close" onClick="closeSlideMenu()">&times;</a>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Services</a>
<a href="#">Contact</a>
</div>

<div id="main">
<h1>Responsive Side Menu</h1>
</div>
<script type="text/javascript">
function openSlideMenu() {
document.getElementById('side-menu').style.width = '250px';
}

function closeSlideMenu() {
document.getElementById('side-menu').style.width = '0px';
document.getElementById('side-menu').style.marginLeft = '0px';
}
</script>


</body>

</html>

关于javascript - 响应式侧边菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648877/

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