0

我正在处理一个 asp.net 项目,但无法将我拥有的列表居中对齐:
Css Horizo​​ntal Menu
我尝试包装一个 div n 然后将该 div 的 css 设置为 text-align:center 但链接仍然保留在左侧

这是菜单的CSS:

.horizontalcssmenu ul{
margin: 0;
padding: 0;
list-style-type: none;
}

/*Top level list items*/
.horizontalcssmenu ul li{
position: relative;
display: inline;
float: left;
}

/*Top level menu link items style*/
.horizontalcssmenu ul li a{
display: block;
width: 120px; /*Width of top level menu link items*/
padding: 2px 8px;
border: 1px solid #202020;
border-left-width: 0;
text-decoration: none;
background: url(menubg.gif) center center repeat-x;
color: black;
font: bold 13px Tahoma;
}

/*Sub level menu*/
.horizontalcssmenu ul li ul{
left: 0;
top: 0;
border-top: 1px solid #202020;
position: absolute;
display: block;
visibility: hidden;
z-index: 100;
}

/*Sub level menu list items*/
.horizontalcssmenu ul li ul li{
display: inline;
float: none;
}


/* Sub level menu links style */
.horizontalcssmenu ul li ul li a{
width: 160px; /*width of sub menu levels*/ 
font-weight: normal;
padding: 2px 5px;
background: #e3f1bd;
border-width: 0 1px 1px 1px;
}

.horizontalcssmenu ul li a:hover{
background: url(menubgover.gif) center center repeat-x;
}

.horizontalcssmenu ul li ul li a:hover{
background: #cde686;
}  

.horizontalcssmenu .arrowdiv{
position: absolute;
right: 0;
background: transparent url(menuarrow.gif) no-repeat center left;
}

* html p#iepara{ /*For a paragraph (if any) that immediately follows menu, add 1em top     spacing between the two in IE*/
padding-top: 1em;
}

/* Holly Hack for IE \*/
* html .horizontalcssmenu ul li { float: left; height: 1%; }
* html .horizontalcssmenu ul li a { height: 1%; }
/* End */

使用的JQUERY如下:

var cssmenuids=["cssmenu1"] //Enter id(s) of CSS Horizontal UL menus, separated by commas
var csssubmenuoffset=-1 //Offset of submenus from main menu. Default is 0 pixels.

function createcssmenu2(){
 for (var i=0; i<cssmenuids.length; i++){
 var ultags=document.getElementById(cssmenuids[i]).getElementsByTagName("ul")
for (var t=0; t<ultags.length; t++){
           ultags[t].style.top=ultags[t].parentNode.offsetHeight+csssubmenuoffset+"px"
    var spanref=document.createElement("span")
        spanref.className="arrowdiv"
        spanref.innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;"
        ultags[t].parentNode.getElementsByTagName("a")[0].appendChild(spanref)
    ultags[t].parentNode.onmouseover=function(){
                this.style.zIndex=100
    this.getElementsByTagName("ul")[0].style.visibility="visible"
                this.getElementsByTagName("ul")[0].style.zIndex=0
    }
    ultags[t].parentNode.onmouseout=function(){
                this.style.zIndex=0
                this.getElementsByTagName("ul")[0].style.visibility="hidden"
                this.getElementsByTagName("ul")[0].style.zIndex=100
    }
 }
 }
}

if (window.addEventListener)
window.addEventListener("load", createcssmenu2, false)
else if (window.attachEvent)
window.attachEvent("onload", createcssmenu2)

请帮助我希望水平列表位于页面中间。

4

1 回答 1

0

在菜单周围包裹一个容器 div 并设置边距:0 auto; 这应该为您居中。

于 2013-10-13T10:20:04.283 回答