响应式li-nav背景颜色仅在文字后面



我正在编写一个基于HTML列表的响应导航。

目标是一个导航,它总是用同样宽的li元素填充100%的标题宽度。背景颜色只显示在单词后面。它并没有像应该的那样填充整个li元素。

这里的HTML:

<nav>
    <ul>
        <li class="home"><a href="#">Home</a></li>
        <li class="about"><a href="#" >About Us</a></li>
        <li class="sports"><a href="#" >Sports</a></li>
        <li class="news"><a href="#" >News & Events</a></li>
        <li class="vols"><a href="#" >Volunteer</a>/li>
        <li class="donate"><a href="#" >Donate</a></li>
    </ul>
</nav>

这里的CSS:

.mainheader nav {
    background-color: #000000;
    height: 10%;
}
.mainheader nav ul {
    list-style: none;
    margin: 0 auto;
    padding: 0%;
}
.mainheader nav ul li {
    float: left;
    display: inline;
    width: 14.28%;
    padding: 0%;
    font-size: 20px;
    text-align: center
}
.mainheader nav a:link, .mainheader nav a:visited {
    color: #FFF;
    display: inline-block;
    text-align: 0 auto;
    padding: 17.5px 0px 17.5px 0px;
    height: 40px
}
.mainheader nav .about a:link, .mainheader nav .about a:visited {
    background-color: #7ab503; /* color not hover */
    text-shadow: none;
}
.mainheader nav .about a:visited, .mainheader nav .about a:hover {
    background-color: #bffc43; /* color hover */
}
/* all the other li elements have the same css structure as the .about one! */

谢谢你的帮助!

使用CSS flexbox怎么样?

    .mainheader nav ul {
        display: flex;
        list-style:none;
        margin: 0 auto;
        padding: 0%;
        background: #7ab503;
    }
    .mainheader nav ul li {
        display: block;
        flex: 0 1 auto; /* Default */
        float:left;
        display: inline;
        width: 14.28%;
        padding: 0% ;
        font-size: 20px;
        text-align: center;
        background: #7ab503;
    }

然后你可以摆弄背景色

代码很乱,所以我在这个jsFiddle 上清理了一下

HTML:

<header class="mainheader">
<nav>
    <ul>
        <li class="home"><a href="#">Home</a></li>
        <li class="about"><a href="#" >About Us</a></li>
        <li class="sports"><a href="#" >Sports</a></li>
        <li class="news"><a href="#" >News & Events</a></li>
        <li class="vols"><a href="#" >Volunteer</a></li>
        <li class="donate"><a href="#" >Donate</a></li>
    </ul>
</nav>

CSS:

.mainheader nav {
    background-color: #000;
    text-align:center;
}
.mainheader nav ul {
    list-style: none;
    margin:0 auto;
    padding:0;
}
.mainheader nav ul:after {
    content:"";
    display:block;
    clear:both;
}
.mainheader nav ul li {
    display:table-cell;
    width:14.28%;
}
.mainheader nav a {
    color: #FFF;
    display: block;
    padding:10px;
    line-height: 20px
    font-size: 20px;
}
.mainheader nav .about a {
    background-color: #7ab503; /* color not hover */
    text-shadow: none;
}
.mainheader nav .about a:visited, .mainheader nav .about a:hover {
    background-color: #bffc43; /* color hover */
}

目前,所有的导航都有居中和灵活的按钮,没有浮动的混乱代码,也没有与IE8 不兼容的灵活框

最新更新