将导航栏固定

将导航栏固定

如果我想讲导航栏固定在页面上方应该怎么弄呢?

我直接给header区加上position:fixed会导致我的居中定位有问题导航栏贴在左上角

html代码

1
2
3
4
5
6
7
8
9
10
11
<header>
    <div class="container">
        <a href="next.html"><img src="logo.jpg"></a>
        <nav>
            <a href="#">HOME</a>
            <a href="#">PORTFOLIO</a>
            <a href="#">TEAM</a>
            <a href="#">CONTACT OS</a>
        </nav>
    </div>
</header>

css代码

1
2
3
4
5
6
7
8
9
10
11
/*通用模块*/
* {font-family: Microsoft YaHei UI;font-size14px;margin0;padding0;bordernone;}
a {text-decorationnone;}
/*导航栏区域*/
header {height80px;background#2e2e2e;position:fixed;}
header {box-shadow: 0px 3px 3px 0px #808080;}
header > .container {width1200px;margin0 auto;}
header > .container > a {displayblock;floatleft;margin20px 25px;}
header > .container > nav {floatright;}
header > .container > nav > a {line-height80px;color#fff;height80px;width125px;floatleft;text-aligncenter;}
header > .container > nav > a:hover {background#78b917;}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
header {
                height80px;
                background#2e2e2e;
                positionfixed;
                /*position: fixed;会脱离文档流,因此需要设置位移量*/
                top:0;
                left:50%;
                /*设置50%以后,这50%+container自身的宽度>居中的宽度,因此还需要减去container自身宽度的一半*/
                margin-left:-600px;
            }
             
            header {
                box-shadow: 0px 3px 3px 0px #808080;
            }
            

原理写在注释里面了,建议参注释和代码进行理解,祝学习愉快!

  • 非常感谢!
    2017-09-29 14:34:25
  • 为什么我不写left定位,直接用margin-left设置为什么怎么设置都不出效果呢?
    2017-09-29 14:38:39
  • position: fixed;脱离文档流之后便不再受其他css样式的控制,除非是设置了位移量以后,重新定位到文档流中,才能够继续使用其他css属性。希望可以帮到你!
    2017-09-29 14:41:21
樱桃小胖子 2017-09-29 15:14:06

如果你想让header的宽度100%显示贯穿整个页面。直接设置:

1
2
3
4
5
6
7
8
header {
    height80px;
    background#2e2e2e;
    positionfixed;
    /*设置宽度即可*/
    width:100%;
    top:0;
}

即可。我们说的这一种方法只是针对没有100%显示想要居中的header的效果设置的

1
2
3
4
5
6
7
8
9
10
header {
    height80px;
    background#2e2e2e;
    positionfixed;
    /*position: fixed;会脱离文档流,因此需要设置位移量*/
    top0;
    left50%;
    /*设置50%以后,这50%+container自身的宽度>居中的宽度,因此还需要减去container自身宽度的一半*/
    margin-left-600px;
}

希望可以帮到你~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码