我想讓我的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