我想让我的navicon菜单按钮与屏幕< 768px上包装div的右边缘对齐,但我无法移动该对象而不将其移出包装。正如你在JSFiddle中看到的,navicon出现在我的logo div下面。当我尝试将navicon浮动到右侧时,它正确地显示在右侧,但该按钮包含在包装外部,并创建了一个小车开放体验。有什么建议么?将包装内的浮动div向右
的jsfiddle:Floating navicon to right side of wrapper
HTML:
<div class="wrapper">
<div class="nav-wrapper">
<a href="#" id="logo">THIS IS A LOGO</a>
<ul id="nav">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
CSS:
* {
margin: 0;
padding: 0;
}
body {
background-color: #cecece;
}
.wrapper {
width: 960px;
margin-right: auto;
margin-left: auto;
background-color: #fff;
}
#logo {
width: 200px;
}
#nav {
width: 100%;
}
li {
}
li:last-child {
border-right:none;
}
li a {
display: block;
width:100%;
background:#000;
color: #fff;
font-size:1.35em;
text-decoration: none;
margin-top: 5px;
}
@media screen and (max-width: 768px) {
.wrapper {
width: 100%;
}
#menu {
width:1.4em;
display: block;
background:#ddd;
font-size:1.35em;
text-align: center;
}
#logo {
float: none;
}
#nav.js {
display: none;
}
ul {
width:100%;
list-style:none;
}
li {
width:100%;
border-right:none;
}
}
@media screen and (min-width: 768px) {
#nav-wrapper {
background-color: #fff;
overflow-x: visible;
width: 100%;
background-repeat: repeat;
}
#logo {
float: left;
}
ul {
width:100%;
overflow: visible;
background-color: #fff;
height: 40px;
}
li {
display: inline-block;
padding: 0 20px;
}
#menu {
display: none;
}
}
的jQuery:
$("#nav").addClass("js").before('<div id="menu">☰</div>');
$("#menu").click(function(){
$("#nav").slideToggle();
});
$(window).resize(function(){
if(window.innerWidth > 768) {
$("#nav").removeAttr("style");
}
});
Offtopic,但不使用'* {}'选择器。这很慢,并会为那些不知道你有那些的人创造不可预知的行为:) – Martijn
你想要做什么?我不明白你想要的最终结果是什么。如果将按钮浮动到右侧,则可以固定包装的高度,将位置设置为相对并将位置绝对设置为导航... – Ragnar
Hey Martijn。感谢您指出了这一点。注意。 – cphill