Web標准:四、縱向導航菜單及二級彈出菜單


Web標准:四、縱向導航菜單及二級彈出菜單

知識點:

1.縱向列表
2.標簽的默認樣式
3.css派生選擇器
4.css選擇器的分組
5.縱向二級列表
6.相對定位和絕對定位
 
1)縱向列表
可以看出該列表四周都有很大的空隙,且每一行前面都有一個點,這是因為標簽默認樣式造成的,下面我們創建樣式表時把列表的默認樣式去掉。
 
 
list-style:none; 去掉id為main的div的列表樣式。
 
下面豐富一下這個菜單,給菜單加上邊框,給首頁加上跳轉,並且滑過時給個變色的樣式。
 
2)標簽的默認樣式
大多數標簽都有默認樣式,例如body默認外邊距,h1-h6字體大小各不相同,em為斜體,strong為粗體。有時這些默認樣式對我們沒用,需要清除掉他們,建議用標簽重定義方式。
首先看一下是未去除默認樣式的
然后顯示一下按照上面方法去除了默認樣式的
 
 
3)派生選擇器
派生選擇器可以幫助我們節約大量的class定義,大大提高效率。
比如上面用到的#menu ul和#menu ul li就是派生選擇器。
如果直接對ul進行定義,就是對ul標簽進行了重定義,重定義的屬性將應用到全局。
而前面加上#menu,將是定義ID為menu元素內ul的樣式,只對#menu下的ul生效。
 
4)css選擇器的分組
對選擇器進行分組,這樣被分組的選擇器就可以共享相同的聲明,用逗號將需要分組的選擇器分開。
例如:
h1,h2,h3,h4,h5,h6{
     color:green;
}
p,div,span{
     font-size:20px;
}
 
5)縱向二級列表
二級菜單即指當鼠標放到一級菜單上后,會彈出相應的二級菜單,移去鼠標后消失。
思路:可以給一級菜單加一個hover,滑過時二級菜單顯示,鼠標移走后隱藏二級菜單。
 
上面的代碼的意思是定義ID為menu的ul下的li,當鼠標滑過時ul的樣式,這里設置為display:block;指的是鼠標滑過時顯示這塊內容。:hover屬於偽類,但是IE6現在只支持a的偽類,不支持這個偽類,要是想在IE6下實現,需要借助JS,我們定義一個類.current,所以需要加上JS和樣式#menu ul li.current ul{display:block;}。
 
 
或者直接通過js控制ul的style,去顯示或隱藏
 
 
6)相對定位和絕對定位
定位標簽:position
包含屬性:relative(相對)、absolute(絕對)
 
 
 
 
 
 
 
注:本章的代碼

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<style type="text/css">
#menu{
border:solid 1px #CCC;
width: 100px;
}
#menu ul{
list-style: none;
margin: 0px;
padding: 0px;
}
#menu ul li{
background-color: #eee;
height: 26px;
padding: 0px 8px;
line-height: 26px;
border-bottom: solid 1px #CCC;
position: relative;
}
#menu ul li ul{
display: none;
position: absolute;
left: 100px;
top: 0px;
width: 100px;
height: 26px;
background: #eee;
line-height: 26px;
border:1px solid #ccc;
}
/*下面的選擇器的意思是定義ID為menu下ul下li,當鼠標划過時ul的樣式,這里設置為display:block*/
#menu ul li:hover ul{
display: block;
}
#menu ul li.current ul{
display: block;
}
#menu a{
text-decoration: none; /*去掉a的樣式,下划線*/
color: #000; /*a標簽默認顏色是藍色,給他一個黑色*/
}
#menu a:hover{
color: #F00;
}
body{
font-family: Verdana;
font-size: 12px;
line-height: 1.5; /*行高1.5倍*/
}
}
</style>

</head>
<body>
<div id="menu">
<ul>
<li><a href="http://www.baidu.com" target="_blank">首頁</a></li>
<li><a href="#">網頁版本布局</a>
<ul>
<li><a href="#">自適應寬度</a></li>
<li>固定寬度</li>
</ul>
</li>
<li><a href="#">div+css教程</a>
<ul>
<li>新手入門</li>
<li>視頻教程</li>
<li>常見問題</li>
</ul>
</li>
<li>div+css實例</li>
<li>常用代碼</li>
<li>站長雜談</li>
<li>技術文檔</li>
<li>資源下載</li>
<li>圖片素材</li>
</ul>
</div>

<script type="text/javascript">
window.onload=function(){
//if (document.all&&document.getElementById) {
var lis=document.getElementById("menu").children[0].children;
for (i = 0; i < lis.length; i++) {
lis[i].onmouseover=function(){this.className="current"};
lis[i].onmouseout=function(){this.className=""}
};
//};
}

/*使用js去控制style的顯示和隱藏
window.onload=function(){
if (document.all&&document.getElementById) {
var lis=document.getElementById("menu").children[0].children;
for (i = 0; i < lis.length; i++) {
lis[i].onmouseover=function(){
if(this.children[1]){
this.children[1].style.display='block';
}

};
lis[i].onmouseout=function(){
if(this.children[1]){
this.children[1].style.display='none';
}
}
};
}
*/

</script>

 

</body>

</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM