因此,我创建了一个导航栏,现在,对于移动设备,我只想显示徽标和汉堡菜单,当打开时显示<li>
和社交媒体图标(在html上,但我无法给它们任何宽度)。我不希望在背面显示旧的导航栏菜单,而是尝试显示它:媒体查询中没有显示或背景颜色:透明但没有任何显示。
基本上,我希望汉堡菜单显示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>
答案 0 :(得分:0)
在display:flex
的任何地方,还需要放置flex-direction: column
以便垂直显示内容。
这表示您甚至不需要display:flex
,因为您使用的元素的默认display
是block
,这使得它们的内容始终垂直堆叠。