CSS和JS一樣深不可測,也許花十天時間就能學會,但如果想完全通透,或許要付出幾百個十天.永遠不要認為自己比別人聰明,自以為比別人懂的人其實什麼都不懂.學無止盡,亘古不變.上下求索,孜孜不倦.自勉.
閒來無事,琢磨著寫了個下拉菜單,純CSS的.最初靈感來自於Discuz頭部導航中的"我的"下拉效果.大致分析了一下,實現原理很簡單,鼠標未觸發事件時定義一個樣式只顯示父級菜單,而隱藏掉其子級菜單.再定義一個樣式,賦於鼠標觸發事件時.只要弄了這個原理,用純CSS寫出這個效果就不難了.
花了半小時,比較順暢的寫下來的,非常簡約的效果.使用時加以美化就可以了.兼容FF,IE6以上,其他浏覽器未測試.
先看效果:
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
樣式部分:
* {
margin:0;
padding:0;
}
body {
font:12px Verdana, Geneva, sans-serif #444;
line-height:1.5;
}
ul li {
list-style:none;
}
.menu {
width:660px;
margin:20px auto;
}
.menu li {
display:inline;
float:left;
margin:0 5px;
background:#f2f2f2;
border:1px #39c solid;
text-align:center;
font-size:14px;
font-weight:700;
line-height:30px;
cursor:hand;
}
.tuckUp {
display:inline;
width:120px;
height:30px;
overflow:hidden;
background:#f2f2f2;
}
.pullDown{
display:inline;
height:auto;
}
.item a:link, .item a:visited {
display:inline;
float:left;
width:110px;
background:#ccc;
text-align:center;
color:#444;
font-size:12px;
font-weight:normal;
text-decoration:none;
line-height:25px;
margin:0 5px 5px 5px;
}
.item a:hover {
display:inline;
float:left;
background:#39c;
width:100px;
color:#FFF;
text-decoration:none;
text-align:center;
font-size:12px;
font-weight:700;
font-weight:normal;
line-height:25px;
padding:0 0 0 10px;
margin:0 5px 5px 5px;
}
HTML部分:
<ul class="menu">
<li class="tuckUp" onmousemove="this.className='pullDown'" onmouseout="this.className='tuckUp'">MenuOne
<div class="item"><a href="/">ITEM01</a></a><br />
<a href="/">ITEM02</a></a><br />
<a href="/">ITEM03</a><br />
<a href="/">ITEM04</a><br />
<a href="/">ITEM05</a><br />
<a href="/">ITEM06</a><br /></div>
</li>
<li class="tuckUp" onmouseover="this.className='pUllDown'" onmouseout="this.className='tuckUp'">MenuTwo
<div class="item"><a href="/">ITEM01</a><br />
<a href="/">ITEM02</a><br />
<a href="/">ITEM03</a><br />
<a href="/">ITEM04</a><br /></div>
</li>
<li class="tuckUp" onmouseover="this.className='pullDown'" onmouseout="this.className='tuckUp'">MenuThree
<div class="item" ><a href="/">ITEM01</a><br />
<a href="/">ITEM02</a><br />
<a href="/">ITEM03</a><br />
<a href="/">ITEM04</a><br />
<a href="/">ITEM05</a><br /></div>
</li>
<li class="tuckUp" onmouseover="this.className='pUllDown'" onmouseout="this.className='tuckUp'">MenuFour
<div class="item"><a href="/">ITEM01</a><br />
<a href="/">ITEM04</a><br />
<a href="/">ITEM05</a><br /></div>
</li>
<li class="tuckUp" onmouseover="this.className='pUllDown'" onmouseout="this.className='tuckUp'">MenuFive
<div class="item"><a href="/">ITEM01</a><br />
<a href="/">ITEM02</a><br />
<a href="/">ITEM03</a><br />
<a href="/">ITEM04</a><br />
<a href="/">ITEM05</a><br /></div>
</li>
</ul>