Horizontally centering a <ul> navbar that contains floated li elements in it

馋奶兔 提交于 2019-12-06 10:36:10

You can accomplish block(ish)-level elements that can be horizontally centered by using display: inline-block; instead of using float: left;.

If you absolutely position your submenu to its relative parent, you can position it more easily.

http://jsfiddle.net/C5Xdp/1/

#navbar {
    width:500px;
    display:block;
    margin-left:auto;
    margin-right:auto;
    text-align: center;
}

#navbar ul {
    list-style:none;
    padding:0;
    display: inline;
}

#navbar ul li { position: relative;
    display: inline;
}

#navbar ul li a {
    display: inline-block;
    text-decoration:none;
    font-size: 1.5em;
    padding-right:5px;
    color:rgba(255,0,180,0.5);
}

#navbar ul li a:hover {
    color:rgba(0,168,255,0.5);
}

#navbar ul li ul { position: absolute;
    left: 0;
    top: 1em; }

#navbar ul li ul li {
    visibility:hidden;
}

#navbar ul li:hover > ul li{
    visibility:visible;
}

Use below code

#navbar ul {
    list-style:none;
    padding:0;
    text-align:center;
}

#navbar ul li {
    display:inline-block;

}
#navbar ul li ul li {
visibility: hidden;
text-align: center;
right: 0;
display: block;
width: 100%;
}

Just to be different, I find this works pretty well, and avoids some of the uncertainty that using inline-block creates:

#navbar ul {
    display: table;
    list-style: none;
    margin: 0 auto;
    padding: 0;
}

#navbar ul li {
    float: left;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!