如何使这个响应导航栏正常工作?

时间:2015-01-14 14:44:47

标签: css responsive-design navigation

我正在尝试使用这4个元素制作响应式导航栏。但是,如果我将浏览器窗口拖动到一个证据点,它会开始将4个中的一个放在其余部分之下。但我不知道我做错了什么。

HTML:

<div id="nav">    
   <ul>
       <li class="blue"><a href="#">Home</a></li>
       <li class="blue"><a href="#">Trailer</a></li>
       <li class="red"><a href="#">Gallery</a></li>
       <li clas="red"><a href="#">Contact Us</a></li>
   </ul>
</div>

CSS:

#nav {
    width: 100%;
    background-color:transparant;
}

#nav ul {
    width: 85%;
    max-width: 1200px;
    padding: 0;
    margin: 0 auto;
    list-style: none;
    text-align: center;
}

#nav ul li {
    display: inline-table;
    width: 24%;
    padding: 4px;
    background-color:#242424;
    border-radius: 5px;
}

#nav ul li a {
    color:white;
    text-decoration: none;
    width: 100%;
    padding-top: 10px;
    padding-bottom: 10px;
    display: inline-block;
    border-radius: 5px;
    }

1 个答案:

答案 0 :(得分:0)

您的填充可能有问题。

为此,在lis中添加box-sizing属性,填充将包含在元素的宽度中,如:

#nav ul li {
    display: inline-table;
    width: 24%;
    padding: 4px;
    background-color:#242424;
    border-radius: 5px;
    box-sizing: border-box;
}

小提琴:http://jsfiddle.net/begyu5v3/

信息:http://www.w3schools.com/cssref/css3_pr_box-sizing.asp

你的谎言之间有那些不受欢迎的空白区域。在这个link中,有一些方法可以避免这个问题,比如font-size:

#nav ul {
    font-size: 0;
}

#nav ul li {
    font-size: 16px;
}

尝试一下,让我知道它是否有帮助!