CSS拉伸水平菜单以填充所有宽度

时间:2013-07-05 04:17:46

标签: css html5 css3 nav

Here是指向我网站的链接。当你有一个广泛的分辨率时,显示没有问题,但如果我使用浏览器尝试模拟一点分辨率,我遇到了一个问题: 导航栏不会填充整个页面,只会填充浏览器的宽度,即使我使用宽度:100%;

这里是CSS中的代码

header {
width: 100%;
/*min-width: 1000px;*/
-webkit-box-shadow: 0px 1px 1px 0px rgba(250, 250, 250, .5);
-moz-box-shadow: 0px 1px 1px 0px rgba(250, 250, 250, .5);
box-shadow: 0px 1px 1px 0px rgba(250, 250, 250, .5);
padding-top: 60px; /* Gere l'espace entre le top et la barre de menu */
background: url('../img/binding_dark.png');
}

nav {
margin-bottom: 30px;
width: 100%;

background: -moz-linear-gradient(top, #353535 0%, #222222 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#353535), color-stop(100%,#222222));
background: -webkit-linear-gradient(top, #353535 0%,#222222 100%);
background: -o-linear-gradient(top, #353535 0%,#222222 100%);
background: -ms-linear-gradient(top, #353535 0%,#222222 100%);
background: linear-gradient(top, #353535 0%,#222222 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#353535', endColorstr='#222222',GradientType=0 );
border-width: 1px 0 1px 0;
border-style: solid;
border-color: #000;
}

标题是宽黑色块,导航在其中。

以下是该问题的一个例子:

enter image description here

标题不会填满所有页面(水平),li元素会溢出,渐变背景会分裂。

请问有解决方案吗?

3 个答案:

答案 0 :(得分:1)

以下是您已更正的css和 fiddle link

header {
    width: 100%;
    -webkit-box-shadow: 0px 1px 1px 0px rgba(250, 250, 250, .5);
    -moz-box-shadow: 0px 1px 1px 0px rgba(250, 250, 250, .5);
    box-shadow: 0px 1px 1px 0px rgba(250, 250, 250, .5);
    padding-top: 60px; /* Gere l'espace entre le top et la barre de menu */
    background: url('../img/binding_dark.png');
}

hgroup,
main,
nav {
    margin-bottom: 30px;
    width: 100%;
    background: -moz-linear-gradient(top, #353535 0%, #222222 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#353535), color-stop(100%,#222222));
    background: -webkit-linear-gradient(top, #353535 0%,#222222 100%);
    background: -o-linear-gradient(top, #353535 0%,#222222 100%);
    background: -ms-linear-gradient(top, #353535 0%,#222222 100%);
    background: linear-gradient(top, #353535 0%,#222222 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#353535', endColorstr='#222222',GradientType=0 );

    border-top:1px solid #000;
    border-bottom:1px solid #000;
}

   /* nav:before {
        border-top: 1px solid #444;
    }

    nav:after {
        border-top: 1px solid #333;
    }*/

    nav ul {
        /*width: 808px;*/
        height: 45px;
        margin: 0 auto;
        /*border-left: 1px solid #111;
        border-right: 1px solid #444;*/
    }

    nav li {
        float: left;
        list-style-type:none;
    }
        nav li a {
            display: inline-block;
            /*width: 200px;*/
            width:auto;
            padding:0 50px;
            height: 45px;
            font: bold 15px 'Arial', sans-serif;
            color: #fff;
            text-decoration: none;
            text-align: center;
            line-height: 48px;
            text-shadow: 1px 1px 0px #111;
            filter: dropshadow(color=#111, offx=1, offy=1);
            border-left: 1px solid #444;
            border-right: 1px solid #111;

            background-color:#2B2B2B;
        }


            nav li a:hover {
                background: -moz-linear-gradient(top, #444 0%, #222 100%);
                background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#444), color-stop(100%,#222));
                background: -webkit-linear-gradient(top, #444 0%,#222 100%);
                background: -o-linear-gradient(top, #444 0%,#222 100%);
                background: -ms-linear-gradient(top, #444 0%,#222 100%);
                background: linear-gradient(top, #444 0%,#222 100%);
                filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444', endColorstr='#222',GradientType=0 );
                /*background-color:#2F2F2F;*/
            }

            nav li a:active {
                background: #222;
                -webkit-box-shadow: inset 0px 0px 3px 1px rgba(0, 0, 0, .3);
                -moz-box-shadow: inset 0px 0px 3px 1px rgba(0, 0, 0, .3);
                box-shadow: inset 0px 0px 3px 1px rgba(0, 0, 0, .3);
            }

                nav li a:active:after {
                    content: "";
                    display: block;
                    width: 100%;
                    height: 4px;
                    position: relative;
                    bottom: 6px;
                    background: -moz-linear-gradient(top, #ff5e1f 0%, #ff3410 100%);
                    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff5e1f), color-stop(100%,#ff3410));
                    background: -webkit-linear-gradient(top, #ff5e1f 0%,#ff3410 100%);
                    background: -o-linear-gradient(top, #ff5e1f 0%,#ff3410 100%);
                    background: -ms-linear-gradient(top, #ff5e1f 0%,#ff3410 100%);
                    background: linear-gradient(top, #ff5e1f 0%,#ff3410 100%);
                    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff5e1f', endColorstr='#ff3410',GradientType=0 );
                }

答案 1 :(得分:0)

布局还有其他问题,但对于直接问题,您可以尝试

#page-wrap header {min-width: 1400px;}

答案 2 :(得分:0)

尝试增加nav ul的宽度。

nav ul {
width: 809px;
height: 45px;
margin: 0 auto;
border-left: 1px solid #111;
border-right: 1px solid #444;
}

您可以使用开发人员工具(F12)来检查元素。

检查此screenshot