本文用純CCS實現了一個具有特效的二級導航欄,並詳細註釋了CSS的實現方法。
演示地址:https://tympanus.net/codrops-playground/SaraSoueidan/RETvk1HZ/editor
<!--HTML-->
<div class="container">
<ul class="menu">
<li>Home</li>
<li>Blog</li>
<li class="has-submenu">About
<ul>
<li>Who we Are</li>
<li>What We Do</li>
</ul>
</li>
<li>Pricing</li>
<li class="has-submenu">Contact
<ul>
<li>Email</li>
<li>Phone</li>
</ul>
</li>
</ul>
</div>
/*css*/
body {
background-color: #F5F5F5;
color: #555;
font-size: 1.1em;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.container {
margin: 40px auto;
max-width: 700px;
text-align: center;
}
/*第一層的導航欄由此ul組成*/
ul {
text-align: left;
display: inline-block;
list-style: none;
padding-left: 0;
}
/*這裏定義了導航欄菜單的樣式*/
.menu li {
float: left;
padding: .65em 1em;/*用padding來撐出大小*/
border: 1px solid #eee;/*用白色的描邊來從視覺上將每個li隔開(實際上是連在一起沒有間隔的)*/
background-color: black;
color: white;
cursor: pointer;/*鼠標移動到菜單上會變成小手*/
-webkit-transition: all .3s;/*動畫的過度時間*/
transition: all .3s;/*動畫的過度時間*/
position: relative;/*相對定位(用於二級菜單的定位)*/
}
/*當鼠標選中菜單的時候會變色*/
.menu li:hover {
background-color: deepPink;
}
/*這裏定義了二級菜單出現的位置和寬度大小*/
li ul {
position: absolute;
top: 100%;
left: 0%;
width: 150px;
display: none;/*二級菜單默認是不可見的*/
z-index: 1;
}
/*這裏定義了二級菜單的子項的寬度*/
li ul li {
width: 100%;
}
li:hover ul {
display: block;/*當鼠標放到一級菜單上的li時爲li下的ul標籤也就是二級菜單附加類,使其能夠顯示*/
}
/*用僞類:after 在導航欄菜單加載完成之後,在含有has-submenu這個類的li標籤的內容後加上以下內容*/
li.has-submenu:after {
content: "\25bc";/*這是一個倒三角▼*/
font-size: .7em;/*設置了三角的大小*/
padding-left: 5px;
vertical-align: middle;/*設置元素的垂直對齊方式爲垂直居中*/
}
/*當二級菜單被觸發顯示後,將倒三角替換成正三角*/
li.has-submenu:hover:after {
content: "\25b2";
}
HTML特殊字符代碼大全: https://blog.csdn.net/realghost/article/details/11613649
本文引用自:https://tympanus.net/codrops/css_reference/after/