2014-04-06 62 views
0

我想要一个顶栏导航,类似于您在Foundation中看到的导航栏。我遇到的问题是,我已经为页面设置了边距,而不知道如何覆盖它们?将顶部导航栏扩展为页面全宽

因此,对于大部分页面(body),我需要这些边距,但是对于顶部条,我希望它可以扩展浏览器的整个宽度。

下面的代码:

body { 
font-family: 'Droid Sans', sans-serif; 
font-size: 1.2em; 
color: #000000; 
background-color: white; 
margin: 0em 6.5em 3.5em; 

#nav ul { 

width: 100%; 
background-color: #212121; 
font-size: 12px; 
font-weight: bold; 
color: white; 
text-align: left; 
display: block; 
margin: 0; 
padding: 15px 4px 17px 0; 
list-style: none; 
} 
#nav ul li { 
    display: inline-block; 
    margin-right: -4px; 
    height: inherit; 
    margin-left: 20px; 
    position: relative; 
    padding: 15px 20px; 
    background: #212121; 
    cursor: pointer; 
    -webkit-transition: all 0.2s; 
    -moz-transition: all 0.2s; 
    -ms-transition: all 0.2s; 
    -o-transition: all 0.2s; 
    transition: all 0.2s; 
} 
#nav ul li:hover { 
background: #212121; 
    color: #fff; 
} 
#nav ul li ul { 
    padding: 0; 
    position: absolute; 
    top: 48px; 
    left: 0; 
    width: 150px; 
    -webkit-box-shadow: none; 
    -moz-box-shadow: none; 
    box-shadow: none; 
    display: none; 
    opacity: 0; 
    visibility: hidden; 
    -webkit-transiton: opacity 0.2s; 
    -moz-transition: opacity 0.2s; 
    -ms-transition: opacity 0.2s; 
    -o-transition: opacity 0.2s; 
    -transition: opacity 0.2s; 
} 
#nav ul li ul li { 
    background: #212121; 
    display: block; 
    color: #fff; 
} 
#nav ul li ul li:hover { background: #212121; } 
#nav ul li:hover ul { 
    display: block; 
    opacity: 1; 
    visibility: visible; 
} 

HTML:

<body> 
    <div id="nav"> 
    <ul> 
    <li>Home</li> 
    <li>Venue</li> 
    <li>Events</li> 
    <li>Stalls 
    <ul> 
     <li>Food</li> 
     <li>Arts & Crafts</li> 
    </ul> 
    </li> 
    <li>Contact</li> 
</ul> 
</div> 
+0

什么是基础?你还没有关闭身体的风格规则,是一个错字? –

回答

0

应用下面的CSS页眉,

#nav{ 
position:absolute; 
left:0; 
right:0; 
} 

这是把导航出正常流动,并从左向右拉伸它。

入住这JSFiddle

如果设置position:fixed; width:100%;那么标题就被取出来的正常流动,并相对于窗口将被定位。即使用户向下滚动页面,它仍会保留在原来的位置。

0

使用fixed定位你想在你的页面的顶部的导航栏。

#nav { 
    min-width:100%; 
    position:fixed; 
    top:0; 
    left:0; 
} 

添加min-width 100的%应确保在你的页面的宽度导航栏延伸。将topleft设置为零,并结合position:fixed将导航div定位到左上角。

+0

非常聪明。这是一个很好的解决方案。 – Jamie

+0

这将设置标题相对于窗口,如果将保持在哪里,即使用户向下滚动。 –

+0

@TilwinJoy,是的,我认为这是提问者想要的导航栏。 –

1

除了使用绝对定位,你可以只使用负利润率为#nav这样的:

#nav { 
    margin-left:-6.5em; 
    margin-right:-6.5em; 
} 

Demo

+1

+1为简单的想法,我没想到它的:) –