2

我有这个动态 UL,我需要它在我的页面中居中。

这是我的 HTML:

<ul id="nav">
    <li><div class="tabquad">First</div>
        <ul>
            <li><a class="item" href="#"><div class="tabquad">One</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Two</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Three</div></a></li>
        </ul>
    </li>
    <li><div class="tabquad">Second</div>
        <ul>
            <li><a class="item" href="#"><div class="tabquad">One</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Two</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Three</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Four</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Five</div></a></li>
        </ul>
    </li>
    <li><div class="tabquad">Third</div>
        <ul>
            <li><a class="item" href="#"><div class="tabquad">One</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Two</div></a></li>
            <li><a class="item" href="#"><div class="tabquad">Three</div></a></li>
        </ul>
    </li>
</ul>

我的 CSS:

.tabquad{
    color:white;
    margin:auto;
    position:relative;
    border:2px solid #000;
    border-color:rgb(82,115,154);
    width:200px;
    height:30px;
    text-align:center;
    padding-top:10px;
    top:25px;
    background-color:rgb(0,56,130);
}
.tabquad:hover{
    background-color:rgb(49,87,132);
    cursor: hand;
}

#nav, #nav ul {
    padding: 0;
    margin: 0;
    list-style: none;
}

#nav a {
    display: block;
    width: 15em;
}

#nav li {
    float: left;
    width: 15em;
}
#nav li ul {
    position: absolute;
    width: 15em;
    left: -999em;
}

.item{
    color:#0E4063;
    text-decoration:none;
}

#nav li:hover ul {
    left: auto;
}

#nav li:hover ul, #nav li.sfhover ul {
    left: auto;
}

我的 JS:

sfHover = function() {
    var sfEls = document.getElementById("nav").getElementsByTagName("LI");
    for (var i=0; i<sfEls.length; i++) {
        sfEls[i].onmouseover=function() {
            this.className+=" sfhover";
        }
        sfEls[i].onmouseout=function() {
            this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

我如何使整个事情居中?

在这里你可以找到关于jsfiddle的测试

编辑:我需要 3 列,全部以我的页面为中心。

4

4 回答 4

8

在您的第一个#nav定义之后添加:

#nav {
    width: 45em;
    margin: 0 auto;
}

http://jsfiddle.net/GeraldS/ZGLtn/2/

于 2013-01-31T10:33:59.230 回答
1

如果您不想为 ul 提供固定宽度,请添加一个外部并给div外部divultext-align:center

HTML

     <div class="wrap">
         ul goes here
     </div>

CSS

.wrap{text-align:center}

演示

于 2013-01-31T10:44:30.853 回答
0

使用marginLeft 和marginRight 'auto' 以及UL 标签的宽度,以便自动获取左边距和右边距。例如,

ul{
  width: 300px;
  margin: 0 auto; /* This center aligns the ul horizontally */
}
于 2013-01-31T10:39:17.663 回答
0
#nav {
    width: 45em;
    margin: 0px auto;
    padding: 0px;
    list-style: none;
}
于 2013-01-31T10:50:54.697 回答