html - 我需要我的导航栏来转移我的主页信息
问题描述
我正在尝试创建一个导航栏,如果您将鼠标悬停在导航图标上,它会将屏幕上的所有内容向右移动。我试图通过将导航栏向左设置-250 px 并将其设置到如果您将鼠标悬停在导航图标上,它将以相同数量的像素过渡到右侧。我还尝试让身体向右移动相同数量的像素,但除了导航栏之外没有任何移动。任何建议,真的会帮上大忙,提前谢谢你。html代码:
<!DOCTYPE html>
<html>
<head>
<link href="main_page.css" rel="stylesheet">
<title>Cal's Blog</title>
</head>
<body>
<nav>
<div class="sideNav" id="sideNav">
<div class="container">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
<div class="navMenu">
<a href="#">about</a>
<a href="#">services</a>
<a href="#">clients</a>
<a href="#">contacts</a>
</div>
</div>
</div>
</nav>
<h1> Cal's Blog</h1>
</body>
</html>
CSS代码:
.container {
display: inline-block;
}
.bar1, .bar2, .bar3 {
width: 35px;
height: 5px;
background-color: #333;
margin: 6px 0;
transition: 0.4s;
position: relative;
}
.container:hover .bar1 {
-webkit-transform: rotate(-45deg) translate(-9px, 6px);
transform: rotate(-45deg) translate(-9px, 6px);
}
.container:hover .bar2 {
opacity: 0;
}
.container:hover .bar3 {
-webkit-transform: rotate(45deg) translate(-8px, -8px);
transform: rotate(45deg) translate(-8px, -8px);
}
.navMenu {
height: 100%;
width: 250px;
position: absolute;
z-index: 1;
top: 0;
left: -250px;
background-color: #111;
overflow-x: hidden;
padding-top: 60px;
transition: 0.5s;
}
.navMenu a{
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 25px;
color: #818181;
display: block;
transition: 0.3s;
}
.navMenu a:hover{
color: #f1f1f1;
}
.container:hover .navMenu {
left: 0;
}
.container:hover .body {
left: 250px;
}
解决方案
I did refactor a bit your code. For the solution no need to use position: absolute
, just change the width in the menu to 0 and the nav box with will be collapse. And for a trigger simple javascript.
const menuBtn = document.querySelector('.menu-button');
const body = document.querySelector('body');
const openMenu = () => {
body.classList.toggle('menu-open');
};
menuBtn.addEventListener('click', openMenu);
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
body {
display: flex;
overflow-x: hidden;
}
nav {
height: 100vh;
display: flex;
flex-direction: column;
flex: 1 0 0%;
position: relative;
gap: 15px;
padding: 3rem 0;
overflow: hidden;
background-color: #111;
transition: all 0.5s ease-in-out;
}
nav a {
padding-left: 15px;
text-decoration: none;
font-size: 1.5em;
color: #818181;
transition: 0.3s;
}
nav a:hover {
color: #f1f1f1;
}
body.menu-open nav {
flex: 1 0 200px;
}
.bar1,
.bar2,
.bar3 {
width: 35px;
height: 5px;
background-color: #333;
margin: 6px 0;
transition: 0.4s;
position: relative;
}
.menu-button {
width: max-content;
cursor: pointer;
}
.menu-button:hover .bar1,
body.menu-open .bar1 {
-webkit-transform: rotate(-45deg) translate(-9px, 6px);
transform: rotate(-45deg) translate(-9px, 6px);
}
.menu-button:hover .bar2,
body.menu-open .bar2 {
opacity: 0;
}
.menu-button:hover .bar3,
body.menu-open .bar3 {
-webkit-transform: rotate(45deg) translate(-8px, -8px);
transform: rotate(45deg) translate(-8px, -8px);
}
main {
flex: 1 1 100%;
padding: 1rem;
}
<nav>
<a href="#">about</a>
<a href="#">services</a>
<a href="#">clients</a>
<a href="#">contacts</a>
</nav>
<main>
<header>
<div class="menu-button">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
</div>
</header>
<h1>Cal's Blog</h1>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Pariatur ea, fugiat nostrum quod voluptates quo quibusdam rerum dolorem rem, odio cumque veritatis qui? Maxime delectus natus dignissimos est, voluptates dolores? Lorem ipsum dolor sit amet consectetur
adipisicing elit. Facere repudiandae ipsum id illo recusandae officia assumenda voluptatem inventore dolor vero ipsa corporis, velit at architecto incidunt, ad eos nobis voluptatibus?
</p>
</main>
推荐阅读
- dart - 断言失败:'userRepository != null':不正确
- sqlite - 我可以从android应用程序中提取数据库吗?
- machine-learning - SVM 的数据应该被缩放、标准化还是两者兼而有之
- vue.js - Vue CLI CSS 预处理器选项:dart-sass VS node-sass?
- python - 当参考仅显示“javascript:return true;”时,如何使用 BeautifulSoup 下载 ZIP 文件?
- r - 是否可以在 R 个人库中为一个特定版本的 R 安装不同的包版本
- vbscript - 如何将所有子文件夹移动到另一个文件夹保留树?
- php - “类不存在。反射失败。” 延迟加载和对象存储
- r - R:grep 意外输出多个字符串匹配
- oracle - 在plsql中参数为空时使用