首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >centering <ul> <li> horizontal下拉菜单

centering <ul> <li> horizontal下拉菜单
EN

Stack Overflow用户
提问于 2012-09-03 07:59:44
回答 3查看 3.1K关注 0票数 1

我无法将此水平列表下拉菜单居中。因为我使用的是一个向左浮动,所以我需要重写所有的css吗?

这是与列表位置相关的所有代码。或者点击这里观看现场直播。

代码语言:javascript
复制
.megamenu {
margin:auto;
position:absolute;
margin:0;
width:100%;
font-size:1.182em;
list-style:none;
padding:0px;
line-height:38px;
font-weight: bold;
display:block;
list-style:none;
border-right: none;
top: -1px;
list-style-type:none;
list-style-position:inside;




.megamenu > li {

    display:inline;
    border:none;
    margin:0;
    float:left;
    padding: 0px 0 0px 30px;
    -webkit-transition: background-color 0.4s ease-out;
    -moz-transition: background-color 0.4s ease-out;
    -o-transition: background-color 0.4s ease-out;
    -ms-transition: background-color 0.4s ease-out; 
    border-right: none;
    transition: background-color 0.4s ease-out;

}

任何帮助都将不胜感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-03 08:30:02

有很多不同的方法可以做到这一点-尽管你需要给它一个宽度,而不是100%。这样可以吗?

有了宽度,您就可以在ul上使用display:inline,在父div上使用text-align:center,或者也可以使用margin:auto

如果这不起作用,请告诉我,我将为您做一个小提琴:)

票数 1
EN

Stack Overflow用户

发布于 2012-09-03 08:06:49

我在这方面遇到了很多问题,但有一天我终于找到了解决方案。它使用了表格和css自动页边距。这是我的诀窍。只需更改中心td的宽度并添加导航即可。

代码语言:javascript
复制
<table>
<td style="margin:0 auto;">
</td>
<td width="800"> <----Change this to the width of your nav bar.

PUT THE NAVIGATION HERE

</td>
<td style="margin:0 auto;">
</td>
</table>
票数 1
EN

Stack Overflow用户

发布于 2012-09-03 08:21:49

据我所知,你不应该在内联元素中嵌套块级别的元素。这就是说,我通过简化你的超文本标记语言并用一个无序列表替换包含“内容”的<div>来创建this JSFiddle solution。(理论上,这个子列表只有一个<li>,如果您愿意的话,它应该能够保存包含内容的<div>。)

HTML是这样的:

代码语言:javascript
复制
<ul id="menu">
    <li>Home
        <ul>
            <li>Content</li>
        </ul>
    </li>
    <li>One day
        <ul>
            <li>Content</li>
        </ul>
    </li>
    <li>I wish to
        <ul>
            <li>Content</li>
        </ul>
    </li>
    <li>Be in the
        <ul>
            <li>Content</li>
        </ul>
    </li>
    <li>Centre of this page
        <ul>
            <li>Content</li>
        </ul>
    </li>
</ul>​

CSS是这样设置的:

代码语言:javascript
复制
#menu {
    text-align: center;
    height: 30px;
}

#menu li {
    list-style: none;
    display:inline-block;
    margin: 5px 15px;
}

#menu li ul {
    display: none;
}

#menu li:hover ul {
    display: block;
    position: absolute;
    top: 30px; /* height of menu */
    left: 25px;
    right: 25px;
}

在JSFiddle中,我添加了一些颜色,以使元素的位置变得清晰。我还去掉了您的实时示例中的动画CSS,但这应该很容易恢复。

这种方法依赖于给菜单一个绝对高度--在本例中是30px --然后用top: 30px绝对定位悬停在菜单下方的"content“<div> (或者菜单高度是什么)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12240700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档