是否可以在其父代旁邊僅使用css而沒有固定寬度顯示子列表?在其父代旁邊顯示一個垂直子列表
我想在CSS中實現導航菜單。我設法顯示其父項下的第一個子菜單。 但是,當它進入子菜單的子菜單時,我只是將它放在它的父母身旁並且具有固定的偏移量。但是由於偏移量可能會根據父級的寬度以及父級更改的寬度(取決於所使用的瀏覽器)而有所不同,因此該解決方案不起作用。
這裏是我的CSS
.main-nav{
position: fixed;
top: 0;
left: 0;
right: 0;
height: 0;
text-align: center;
}
.nav-centered {
display: inline-block;
text-align: left;
margin:0;
padding:0;
z-index:10;
}
.nav-main-menu {
list-style-type: none;
background-color:#91a056;
margin:0;
padding:0;
height:25px
}
.nav-main-menu li {
display: inline;
text-align: center;
float:left;
position:relative;
}
.nav-main-menu li a img {
padding-bottom:0px;
color: #fff;
background-color: #91a056;
}
.nav-main-menu li a:hover {
background-color: #bbc888;
}
.nav-main-menu li li a:hover, .nav-main-menu li li span:hover, .nav-main-menu li li span:hover {
background-color: #bbc888;
}
.nav-main-menu li:hover ul {
display:block;
float:left;
}
.nav-main-menu li li, .nav-main-menu li li li {
display:block;
text-align:left;
width:100%;
border: 3px ridge #91a056;
}
.nav-main-menu li ul, .nav-main-menu li li ul, .nav-main-menu li:hover li ul {
display:none;
position:absolute;
}
.nav-main-menu li li:hover ul {
display:block;
float:left;
top:0px;
left:176px; /* I want to get rid of this fixed offset */
}
.nav-main-menu li li li a, .nav-main-menu li li a, .nav-main-menu li li span {
display:block;
text-align: left;
white-space: nowrap;
font-size:100%;
color: #FFF;
padding: 0 1em;
background-color: #91a056;
}
.nav-main-menu li li a span{
padding: 0;
}
.nav-main-menu li a {
margin-left:auto;
margin-right:auto;
font-size:120%;
text-decoration: none;
padding: 0 1em;
color: #fff;
background-color: #91a056;
}
我想擺脫.nav-main-menu li li:hover ul
的左側偏移。
這裏是我的HTML代碼中的revelant部分
<div xmlns="http://www.w3.org/1999/xhtml" class="main-nav">
<div class="nav-centered">
<ul class="nav-main-menu">
<li><a href="/" ><span>Acceuil</span></a></li>
<li><a href="/?_=/page/regle" ><span>Regles de jeu</span></a>
<ul>
<li><span>Les personnages</span>
<ul>
<li><a href="/?_=/page/regle/commencer" ><span>Se creer un personnage</span></a></li>
<li><a href="/?_=/page/regle/race" ><span>Les Races</span></a></li>
<li><a href="/?_=/page/regle/alignement" ><span>Les Alignements</span></a></li>
<li><a href="/?_=/page/regle/entrainement" ><span>Les Entrainements</span></a></li>
<li><a href="/?_=/page/regle/conpetence" ><span>Les Competences</span></a></li>
<li><a href="/?_=/page/regle/handicape" ><span>Les Handicapes</span></a></li>
<li><a href="/?_=/page/regle/dieu" ><span>Les Dieux</span></a></li>
<li><a href="/?_=/page/regle/doamine" ><span>Les Domaines</span></a></li>
<li><a href="/?_=/page/regle/sort" ><span>Les Sorts</span></a></li>
<li><a href="/?_=/page/regle/profile" ><span>Les Profiles</span></a></li>
<li><a href="/?_=/page/regle/terrictoire" ><span>Les Terrictoires</span></a></li>
<li><a href="/?_=/page/regle/prestige" ><span>Les Prestiges</span></a></li>
</ul>
</li>
<li><span>Les reglements</span>
<ul>
<li><a href="/?_=/page/regle/combat" ><span>Les Combats</span></a></li>
<li><a href="/?_=/page/regle/etatAlterer" ><span>Les Etats Alteres</span></a></li>
</ul>
</li>
<li><span>L'univers</span>
<ul>
<li><a href="/?_=/page/regle/seigneurie" ><span>Les Seigneuries</span></a></li>
<li><a href="/?_=/page/regle/groupe" ><span>Les Groupes</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="nav-login"><a href="/?_=/login" ><span>Inconnue</span></a>
<ul>
<li><a href="/?_=/login" ><span>Se connecter</span></a></li>
</ul>
</li>
<li><a href="/?_=/page/info" ><span>Qui sommes-nous?</span></a></li>
<li><a href="/?_=/forum" ><span>Forum</span></a></li>
<li><a href="https://www.facebook.com/" ><img alt="Page facebook" src="/img/icon-facebook.gif" style="max-width:19.0px;max-height:19.0px;" /></a></li>
</ul>
</div>
</div>
我跳頻設定不同的子菜單不同,因爲所有的子菜單單一固定寬度會使一些顯示爲空。 –
我必須注意你的造型建議比我的風格要乾淨得多。 thx –
沒問題。如果你想要不同大小的子菜單,你可以設置不同的子菜單,使其具有不同的寬度,方法是向它們添加更多的類。這樣,你仍然可以控制,但也有靈活性,作爲一個快速的例子,我有更多的'.smaller'和'.larger'類的小提琴,然後將它放在子菜單上,以控制子菜單的寬度和子子菜單的左邊位置:http://jsfiddle.net/lee_gladding/xRyMW/4/(你可能需要稍微微調一下,這取決於你的大小子菜單的混合) –