【发布时间】:2018-01-28 21:23:19
【问题描述】:
我正在做一个响应式左滑菜单,但它有一些布局问题。我希望当点击移动菜单图标时,移动菜单会出现在黄色 div 的正下方,我使用 margin-top:70px 来表示,然后在其他浏览器中使用这种方法,菜单不会出现在黄色 div 的正下方。
然后,当单击移动图标时,我想将图标字体类从“fa-fa-bars”更改为“fa-fa-close”。但它不起作用。
然后“Item Mobile 链接”看起来并没有与其他标题元素居中对齐,有点高。
例如:https://jsfiddle.net/4ggsmqje/1/
例如在这个例子中:https://jsfiddle.net/4ggsmqje/4/ 布局显示为我想要的,但带有“margin-top:80px;”在 .Mobile__nav div 上并带有“margin-top: 15px;”在“Item Mobile”链接上。但是使用这种方法在其他浏览器中看起来会有所不同,移动左滑菜单不会出现在黄色 div 的正下方,而是略高于或低于。
HTML:
<div class="Header" style="background:yellow;">
<div class="container">
<div class="row align-items-center justify-content-between">
<div class="col-4 col-sm-4 d-md-none d-lg-none d-xl-none">
<div class="Header__mobile__menu">
<a id="mobile" href=""><i class="fa fa-bars" aria-hidden="true"></i></a>
</div>
</div>
<div class="col-4 col-sm-4 d-md-none d-lg-none d-xl-none">
<div class="Header__logo">
<a href="">Logo</a>
</div>
</div>
<div class="col-4 col-4 co-sm-4 d-md-none d-lg-none d-xl-none">
<ul>
<li><a href>Item Mobile</a></li>
</ul>
</div>
<div class="d-none d-md-block d-lg-block d-xl-block col-md-4">
<div class="Header__logo">
<a href="">Logo</a>
</div>
</div>
<ul class="Mobile__nav">
<li><a href="">Item 1</a></li>
<li><a href="">Item 2</a></li>
<li><a href="">Item 3</a></li>
<li><a href="">Item 4</a></li>
<li><a href="">Item 5 <i class="fa fa-caret-down" aria-hidden="true"></i></a></li>
</ul>
<div class="col-8 col-sm-8 d-none d-md-block">
<ul class="Header__nav">
<li><a href="">Item 1</a></li>
<li><a href="">Item 2</a></li>
<li><a href="">Item 3</a></li>
<li><a href="">Item 4</a></li>
</ul>
</div>
</div>
</div>
CSS:
.Header{
padding: 15px 0;
border-bottom: 1px solid orange;
}
.Mobile__nav{
margin-top:70px;
position: fixed;
left: 0;
top: 0;
width: 76%;
height: 100%;
min-width: 200px;
max-width: 340px;
background-color: gray;
z-index: 1000;
overflow: hidden;
overflow-y: auto;
li{
display: block;
width: 100%;
padding: 20px;
}
li a{
color: orange;
}
}
.Header__logo{
h1{
color: orange;
}
}
.Header__mobile__menu{
cursor: pointer;
float: left;
a{
color: orange;
}
}
jquery:
$('#mobile').click(function() {
$("i", this).toggleClass("fa-fa-bars fa-fa-close");
});
【问题讨论】:
-
我似乎无法重现提供的示例中的问题!
-
例如,如果 .Mobile__Nav div 没有“margin-top:70px;”向左滑动的菜单出现在顶部和左侧,但不在黄色 div 下方。另一个布局问题是“Item Mobile”文本没有与其他标题元素垂直对齐,它有点高。