【发布时间】:2021-02-17 13:47:59
【问题描述】:
所以我创建了一个导航栏,现在,对于移动设备,我只想显示徽标和一个汉堡菜单(打开时)显示<li> 和社交媒体图标(这些在html,但我无法给它们任何宽度)。我不想要背面的旧导航栏菜单,我尝试给它一个 display: none on the media queries 或一个 background-color: transparent 但没有工作。
基本上我希望汉堡菜单显示 li 和带有社交媒体图标的框,所有这些都垂直显示。
根据以下代码,获得此结果的最佳方法是什么?
.showcase .nav-bar {
width: 100%;
height: 8rem;
background-color: var(--branding);
display: flex;
justify-content: space-between;
align-items: flex-end;
position: fixed;
z-index: 90;
box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .4);
top: 0;
}
.nav-logo { /*CHECK WHEN UPLOADING LOGO*/
width: 14rem;
margin: auto .5rem;
}
.showcase .nav-bar .nav-links {
display: flex;
justify-content: space-around;
width: 40%;
}
.showcase .nav-bar .nav-links li {
margin-bottom: .5em;
text-transform: uppercase;
font-size: 1.3rem;
letter-spacing: .2em;
list-style: none;
transition: all .2s;
}
.showcase .nav-bar .nav-links a {
color: var(--lightgrey);
text-decoration: none;
}
.nav-links li:hover,
.nav-links li:focus {
transform: scale(1.2);
}
.showcase .nav-bar .nav-social {
margin: 0 2rem .5rem 2rem;
}
.showcase .nav-bar .nav-social a {
margin: 0 .5rem;
text-decoration: none;
color: var(--lightgrey);
font-size: 1.8rem;
}
.hamburger {
margin: 1em;
display: none;
}
.hamburger div {
width: 25px;
height: 2px;
background-color: #d1d1d1;
margin: .4em;
}
@media only screen and (max-width: 768px) {
.showcase {
height: 100vh;
}
.nav-bar {
}
.nav-links {
position: absolute;
right: 0px;
width: 40%;
height: 80vh;
top: 8rem;
background-color: var(--branding);
display: flex;
flex-direction: column;
align-items: center;
}
.hamburger {
display: block;
}
}
<nav class="nav-bar">
<div>
<a href="#"><img src="../src/images/logo.svg" alt="LBH Logo" class="nav-logo"></a>
</div>
<ul class="nav-links">
<li><a href="#abt">About</a></li>
<li><a href="#srv">Services</a></li>
<li><a href="#soc">Social</a></li>
<li><a href="#inf">Contact</a></li>
</ul>
<div class="nav-social">
<i class="fab fa-instagram "></i>
<i class="fab fa-facebook-f"></i>
<i class="fab fa-twitter"></i>
</div>
<div class="hamburger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
</nav>
【问题讨论】: