初學div+css之菜單篇

來源:互聯網
上載者:User

導航在網站上佔有極重要的地位,Table時代的菜單都是用若干個td並排顯示而成。
現在,我們可以用語義化的標籤,如li來完成。
菜單一:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head><br /><title> new document </title><br /><meta name="generator" content="editplus" /><br /><meta name="author" content="" /><br /><meta name="keywords" content="" /><br /><meta name="description" content="" /><br /><style type="text/css"><br />*{margin:0px; padding:0px;font-family:verdana;}<br />ul<br />{<br />list-style:none;<br />font-size:10px;<br />}<br />li ul<br />{<br />display:none;<br />}<br />#nav li<br />{<br />text-align:center;<br />margin:3px;<br />width:100px;<br />border:solid 1px #ccc;<br />position:relative;<br />padding:6px;<br />display:block;<br />}<br />#nav li ul{position:absolute;top:-4px;left:112px;}<br />#nav li ul li<br />{<br />padding:5px 6px 5px 5px;<br />}<br />#nav li ul li a<br />{<br />display:block;<br />width:100px;<br />text-decoration:none;<br />border:solid 1px #fff;<br />}<br />#nav li a:hover<br />{<br />background:#efefef;<br />border:solid 1px #ccc;<br />text-indent:30%;<br />}<br />#nav li:hover ul,#nav li.over ul<br />{<br />display:block;<br />border:none;<br />}<br /></style><br /><script type="text/javascript"><br />var a = function()<br />{<br />var nav = document.getElementById('nav');<br />var lis = nav.childNodes;<br />for(var i = 0;i<lis.length;i++)<br />{<br />if(lis[i].nodeName=='LI')<br />{<br />var childLi = lis[i];<br />childLi.onmouseover = function(){this.className='over';}<br />childLi.onmouseout = function(){this.className='';}<br />}<br />}<br />}<br />window.onload = a;<br /></script><br /></head><br /><body><br /><ul id="nav"><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /></ul><br /></body><br /></html><br />

list-style:none;是去掉列表符號
#nav li下的ul要以li為標準進行絕對位置,這點很重要。
因IE不支援#nav li:hover ul,所以寫了一個簡單的js來實現,其目的只是給#nav li添加一個mouseover與mouseout事件,
動態改變它的cssName。

菜單二:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head><br /><title> new document </title><br /><meta name="generator" content="editplus" /><br /><meta name="author" content="" /><br /><meta name="keywords" content="" /><br /><meta name="description" content="" /><br /><style type="text/css"><br />*{margin:0px; padding:0px;font-family:verdana;}<br />ul<br />{<br />list-style:none;<br />font-size:10px;<br />}<br />li ul<br />{<br />display:none;<br />}<br />#nav<br />{<br />width:700px;<br />}<br />#nav li<br />{<br />float:left;<br />width:100px;<br />text-align:center;<br />margin:3px;<br />border:solid 1px #003399;<br />cursor:help;<br />padding:6px;<br />}<br />#nav li ul li<br />{<br />border:none;<br />padding:0;<br />margin:0px;<br />}<br />#nav li ul li a<br />{<br />text-decoration:none;<br />display:block;<br />margin:1px;<br />padding:6px 0px;<br />width:97px;<br />}<br />#nav li ul li a:hover<br />{<br />background:#efefef;<br />border:solid 1px #ccc;<br />margin:0px;<br />}<br />#nav li:hover ul,#nav li.over ul<br />{<br />display:block;<br />border:none;<br />}<br /></style><br /><script type="text/javascript"><br />var a = function()<br />{<br />var nav = document.getElementById('nav');<br />var lis = nav.childNodes;<br />for(var i = 0;i<lis.length;i++)<br />{<br />if(lis[i].nodeName=='LI')<br />{<br />var childLi = lis[i];<br />childLi.onmouseover = function(){this.className='over';}<br />childLi.onmouseout = function(){this.className='';}<br />}<br />}<br />}<br />window.onload = a;<br /></script><br /></head><br /><body><br /><ul id="nav"><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /><li>Link<br /><ul><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /><li><a href="#1">Link</a></li><br /></ul><br /></li><br /></ul><br /></body><br /></html><br />

這二個簡單的菜單主要是對Box模型的理解,最開始我也被box弄糊塗。注意margin、padding、border。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.