多數網站中,下拉菜單效果基本常見。在實現技術方面,實現該效果的方法也很多,今天就來說說純CSS樣式來實現常見的下拉菜單,有興趣的小伙伴可以參考下:
實現效果如下:
鼠標未移上前
鼠標未移上前
鼠標移上后
鼠標移上后
從效果圖可以看出,當鼠標移上去的時候,會彈出下拉的菜單層!要是在JQuery中,實現原理也蠻簡單,就是當鼠標觸發移上去事件,彈層就顯示(默認隱藏)的原理!而在CSS實現該效果會用到的原理就是CSS3的動畫透明度過渡顯示。因為效果圖中也有幾個三角形圖標,所以統一用CSS和CSS3的知識來實現比較容易。下面首先看看html的結構:如下:
布局的CSS:
右邊實心的三角形可以用偽類元素 :after來實現.
鼠標移上去,各種變化的樣式,其中當鼠標移上去時候,彈出層的透明度變為1,就可以看到內容
當彈層出現后,第一行會有一個三角形指向,實現該三角形可以用到偽類:first-child:before,如下
結合起來就能完成純CSS做下拉菜單效果!想學更多知識,歡迎關注“恒星網絡”頭條號!
部導航條布局
html代碼:
<!DOCTYPE html><html><head>
<meta charset="utf-8">
<title>頭部導航條制作</title>
<link rel="stylesheet" type="text/css" href="css/master8.css">
</head>
<body>
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首頁</a></li>
<li><a href="#">資訊</a></li>
<li><a href="#">web前端</a></li>
<li><a href="#">前端新聞</a></li>
<li><a href="#">聯系我們</a></li>
<li><a href="#">關于我們</a></li>
</ul>
</div>
</body>
</html>
用無序列表制作頭部導航條:
無序列表是上下布局排列的,那我們需要思考的是讓他左右布局的方式排列
左右排列的方式我們所用的是float:left;
浮動的方法讓li
左右布局
CSS樣式:
.navbox{
width:960px;
height:40px;
margin:20pxauto;
background:#08c;
}
.navbox >ul>li{
float: left;
width:160px;
height:40px;
line-height:40px;
text-align: center;
font-size:16px;
}
鼠標移入時實現顏色的變換
HTML代碼:
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首頁</a></li>
<li><a href="#">資訊</a></li>
<li><a href="#">web前端</a></li>
<li><a href="#">前端新聞</a></li>
<li><a href="#">聯系我們</a></li>
<li><a href="#">關于我們</a></li>
</ul></div>
思路:
鼠標移入時每個<li>
顯示為另一種顏色background: #00bfff;
css代碼:
.navbox ul li a{ display: block; color: #fff; background: #08c;}.navbox ul li a:hover{ text-decoration: none; background: #00bfff;}
下拉菜單實現
html:
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首頁</a></li>
<li><a href="#">資訊</a></li>
<li><a href="#">web前端</a>
<ul class="subnav">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
</ul>
</li>
<li><a href="#">前端新聞</a></li>
<li><a href="#">聯系我們</a></li>
<li><a href="#">關于我們</a></li>
</ul>
</div>
思路:
在一級菜單web前端
下實現二級菜單<ul class="subnav">
html
css
JavaScript
當鼠標移入菜單時web前端時
顯示二級菜單,移出時隱藏;
CSS代碼實現:
.subnav{ display: none;}/*鼠標沒有移入“web前端”選項欄時二級菜單隱藏*/.navbox ul li:hover .subnav{ display: block;}/*當鼠標移入“web前端”選項欄時顯示二級菜單*/
三級菜單實現
HTML
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首頁</a></li>
<li><a href="#">資訊</a></li>
<li><a href="#">web前端</a>
<ul class="subnav">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a>
<ul class="threenav">
<li><a href="#">css1</a></li>
<li><a href="#">css2</a></li>
<li><a href="#">css3</a></li>
</ul>
</li>
<li><a href="#">JavaScript</a></li>
</ul>
</li>
<li><a href="#">前端新聞</a></li>
<li><a href="#">聯系我們</a></li>
<li><a href="#">關于我們</a></li>
</ul>
</div>
思路:
前面與二級菜單思路相似唯一不同的是三級菜單顯示的位置。
我們看看css的絕對定位與相對定位這篇文章
CSS代碼:
.subnav>li{ position: relative;}.threenav{ position: absolute; top: 0; left: 160px; width: 160px;}.subnav, .threenav{ display: none;}.subnav li:hover .threenav{ display: block;}
最后實現的效果如下圖:
圖1
圖2
圖3
*請認真填寫需求信息,我們會在24小時內與您取得聯系。