水平第二層選單的CSS排版
by ShadowKao
HTML
<body>
<ul class="outerUl">
<li>
<a href="#">AAA</a>
</li>
<li>
<a href="#">AAA</a>
</li>
<li>
<a href="#">AAA</a>
<ul class="innerUl">
<li>
<a href="#">BBB1</a>
</li>
<li>
<a href="#">BBB2</a>
</li>
<li>
<a href="#">BBB3</a>
</li>
<li>
<a href="#">BBB4</a>
</li>
</ul>
</li>
<li>
<a href="#">AAA</a>
</li>
<li>
<a href="#" class="last_a">AAA</a>
</li>
</ul>
</body>
CSS
body{
padding:0;
margin:0;
/*body負責讓選單水平垂直置中*/
height:100vh;
display:flex;
justify-content:center;
align-items:center;
}
ul
{
/*ul預設會有些微的margin、padding*/
margin:0;
padding:0;
list-style:none;
}
ul.outerUl > li{
/*讓第一層選單變成水平的關鍵*/
float:left;
}
ul.outerUl > li > a,
ul.innerUl > li > a{
/*a元素預設display:inline;不支援width、height*/
display:inline-block;
text-decoration:none;
width:100px;
height:50px;
line-height:50px;/*文字垂直置中*/
text-align:center;/*文字水平置中*/
border:1px solid #d2d2d2;
color: #434eae;/*前景色深藍色*/
background: #fff;/*背景色白色*/
}
/*外層選單*/
ul.outerUl > li > a{
border-right-width:0px;
}
/*內層選單*/
ul.innerUl > li > a{
border-top-width:0px;
}
ul.outerUl> li > a.last_a{
border-right-width:1px;
}
ul.outerUl > li > a:hover,
ul.innerUl > li > a:hover{
/*當滑鼠hover時的變化*/
color: #fff;/*前景色白色*/
background: #434eae;/*背景色藍色*/
}
ul.outerUl > li {
position:relative;
}
ul.innerUl{
display:none;/*第二層選單容器預設隱藏*/
position:absolute;
z-index:10;
}
ul.outerUl > li a:hover ~ ul.innerUl ,
ul.innerUl:hover
{
display: block;/*當滑鼠hover時,第二層選單容器才顯示*/
}