国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > CSS > 正文

利用CSS3實(shí)現(xiàn)動(dòng)態(tài)的二級(jí)三級(jí)菜單效果實(shí)例源碼

2024-07-11 08:41:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

基礎(chǔ)掌握知識(shí)

      1.boder-radis圓角的制作

      2.linear-gradient漸變背景的制作

      3.box-shadow陰影效果的制作

      4.transition轉(zhuǎn)換效果的制作

      5.transparent透明效果

      6.CCS3中before的作用

實(shí)現(xiàn)的效果圖如下:


搭建HTML容器

一級(jí)菜單ul的樣式修飾:

設(shè)置一級(jí)菜單的寬度、整體居中顯示、用border設(shè)置顏色為#222的1像素寬的邊框、用background-color設(shè)置背景顏色為#111、用background-image和linear-gradient設(shè)置背景圖片為#444和#111的漸變效果、用border-radius設(shè)置圓角邊框?yàn)?px、用before和after的方式給一級(jí)ul填充內(nèi)容是清除二級(jí)浮動(dòng)的一種方式保證背景能夠包裹所有ul內(nèi)的元素

.top-nav{width:969px;margin:60px auto;border:1px solid #222;background-color:#111;               background-image:linear-gradient(#444,#111);border-radius:6px;box-shadow:0 1px 1px #777;               padding:0;list-style:none;}.top-nav:before,.top-nav:after{content: "";display: table;}.top-nav:after{clear: both;}

一級(jí)菜單內(nèi)li的樣式修飾:

用float將所有的li左浮動(dòng)、用boder-right給每一個(gè)li制作一個(gè)左邊框效果、用box-shadow制作陰影效果、position:relative是為了下面二級(jí)菜單的顯示二級(jí)菜單會(huì)以absolute的方式定位

.top-nav li{float: left;border-right:1px solid #222;box-shadow:1px 0 0 #444;position: relative;}

一級(jí)菜單內(nèi)li中a元素以及鼠標(biāo)移動(dòng)到a元素上之后的樣式修飾

這些屬性比較簡(jiǎn)單,就不作一一介紹了

.top-nav li a{float:left;text-decoration: none;padding:12px 30px;font-size:12px;font-weight:bold;text-shadow: 0 2px 0 #000;color: #999;}.top-nav li a:hover{color: #fafafa;}

二級(jí)菜單ul的樣式修飾

二級(jí)菜單默認(rèn)是隱藏狀態(tài),用絕對(duì)定位的方式(相對(duì)于一級(jí)菜單)將二級(jí)菜單定位在top:38px;left:0;的位置上、同樣給二級(jí)菜單設(shè)置漸變背景色和陰影的效果box-shadow中的rgba屬性可以制作透明度的效果、用opacity這是透明級(jí)別為0、用transition制作一個(gè)過(guò)度顯示和隱藏的效果

.top-nav li ul{visibility: hidden;position: absolute;list-style: none;top:38px;left: 0;z-index: 1;padding: 0;                     background-color: #444;background-image: linear-gradient(#444,#111);box-shadow: 0 -1px 0                     rgba(255,255,255,.3);border-radius: 3px;opacity: 0;margin: 20px 0 0 0;transition: all .2s ease-in-out;                    }

當(dāng)鼠標(biāo)移動(dòng)到一級(jí)菜單欄的時(shí)候二級(jí)菜單欄顯示

hover屬性的應(yīng)用

.top-nav li:hover > ul{opacity: 1;visibility: visible;margin: 0;}

設(shè)置二級(jí)菜單li和a的樣式

方法和一級(jí)菜單的li和a的修飾差不多,不做過(guò)多的解釋

.top-nav ul li{float: none;display: block;border: 0;box-shadow: 0 1px 0 #111,0 2px 0 #666;}.top-nav ul a{padding: 10px;width: 130px;display: block;float: none;}.top-nav ul a:hover{background-color: #0186ba;background-image: linear-gradient(#04acec,#0186ba);}.top-nav ul li:first-child > a{border-radius: 3px 3px 0 0;}.top-nav ul li:last-child > a{border-radius: 0 0 3px 3px;}

三角形的制作

用css3制作三角形的的方法就是四邊設(shè)置同樣寬度的border,將要保留的那一邊的border設(shè)置顏色,其他三邊的顏色設(shè)置為透明(transparent),則保留顏色的那一邊的三角形就制作出來(lái)了

.top-nav ul li:first-child > a:before{  content: "";position: absolute;left:40px;top: -6px;          display: block;width: 0;border-bottom: 6px solid #444;border-left: 6px solid transparent;  border-right: 6px solid transparent;  }.top-nav ul li:first-child > a:hover:before{border-bottom-color:#04acec; }

三級(jí)菜單位置的變換

將三級(jí)菜單定位到二級(jí)菜單的右邊顯示

.top-nav ul ul{top:0;left: 150px;margin: 0 0 0 20px;box-shadow: -1px 0 0 rgba(255,255,255,.3);}.top-nav ul ul li:first-child a:before{left: -6px;top: 50%;margin-top: -6px;border-left: 0;border-bottom: 6px solid transparent;                     border-top: 6px solid transparent;border-right: 6px solid #3b3b3b;}.top-nav ul ul li:first-child a:hover:before{border-right-color:#0299d3;border-bottom-color:transparent;}

完整代碼(其中有針對(duì)IE6的兼容性處理)

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <!--<script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>-->  <title>用CSS3實(shí)現(xiàn)動(dòng)畫(huà)效果的制作</title>  <style type="text/css">      .top-nav{width:969px;margin:60px auto;border:1px solid #222;background-color:#111;               background-image:linear-gradient(#444,#111);border-radius:6px;box-shadow:0 1px 1px #777;               padding:0;list-style:none;}      .top-nav:before,.top-nav:after{content: "";display: table;}      .top-nav:after{clear: both;}      /*針對(duì)IE6,_margin,_height是針對(duì)IE6的,其他瀏覽器中不需要*/      .top-nav{z-index: 1;}      .top-nav li{float: left;border-right:1px solid #222;box-shadow:1px 0 0 #444;position: relative;}      .top-nav li a{float:left;text-decoration: none;padding:12px 30px;font-size:12px;font-weight:bold;          text-shadow: 0 2px 0 #000;color: #999;}      .top-nav li a:hover{color: #fafafa;}      .top-nav li ul{visibility: hidden;position: absolute;list-style: none;top:38px;left: 0;z-index: 1;padding: 0;                     background-color: #444;background-image: linear-gradient(#444,#111);box-shadow: 0 -1px 0 rgba(255,255,255,.3);                     border-radius: 3px;opacity: 0;margin: 20px 0 0 0;transition: all .2s ease-in-out;                     _margin:0;  }      .top-nav li:hover > ul{opacity: 1;visibility: visible;margin: 0;}      .top-nav ul li{float: none;display: block;border: 0;box-shadow: 0 1px 0 #111,0 2px 0 #666;}      .top-nav ul a{padding: 10px;width: 130px;display: block;float: none;_height:10px;}      .top-nav ul a:hover{background-color: #0186ba;background-image: linear-gradient(#04acec,#0186ba);}      .top-nav ul li:first-child > a{border-radius: 3px 3px 0 0;}      .top-nav ul li:last-child > a{border-radius: 0 0 3px 3px;}      .top-nav ul li:first-child > a:before{  content: "";position: absolute;left:40px;top: -6px;          display: block;width: 0;border-bottom: 6px solid #444;border-left: 6px solid transparent;  border-right: 6px solid transparent;  }      .top-nav ul li:first-child > a:hover:before{border-bottom-color:#04acec; }      .top-nav ul ul{top:0;left: 150px;margin: 0 0 0 20px;_margin:0;box-shadow: -1px 0 0 rgba(255,255,255,.3);}      .top-nav ul ul li:first-child a:before{left: -6px;top: 50%;margin-top: -6px;border-left: 0;border-bottom: 6px solid transparent;                     border-top: 6px solid transparent;border-right: 6px solid #3b3b3b;}      .top-nav ul ul li:first-child a:hover:before{border-right-color:#0299d3;border-bottom-color:transparent;}  </style>  <script type="text/javascript">      <!--針對(duì)IE6處理hover的問(wèn)題-->//        $(function () {//            if($.browser.msie && $.broswer.version.substr(0,1)<7){//            $("li").has("ul").mouseover(function () {//                $(this).children("ul").css("visibility","visible");//            }).mouseout(function () {//                $(this).children("ul").css("visibility","hidden");//            });//            }//        })  </script></head><body><ul class="top-nav">  <li><a href="#">首頁(yè)</a></li>  <li><a href="#">課程大廳</a></li>  <li><a href="#">學(xué)習(xí)中心 +</a>      <ul>          <li><a href="#">視頻學(xué)習(xí)</a>              <ul>                  <li><a href="#">css</a></li>                  <li><a href="#">js</a></li>                  <li><a href="#">jquery</a></li>              </ul>          </li>          <li><a href="#">案例學(xué)習(xí)</a></li>          <li><a href="#">交流平臺(tái)</a></li>      </ul>  </li>  <li><a href="#">關(guān)于我們</a></li></ul></body>

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临桂县| 辉南县| 牡丹江市| 大姚县| 固安县| 赤峰市| 屏南县| 江津市| 乐平市| 合阳县| 高密市| 麻江县| 香河县| 林甸县| 城固县| 大庆市| 晋江市| 彭州市| 乐都县| 三江| 水富县| 嘉兴市| 怀仁县| 清徐县| 丘北县| 丹阳市| 邢台市| 万盛区| 齐齐哈尔市| 堆龙德庆县| 固镇县| 梁平县| 柯坪县| 高雄市| 诏安县| 辽源市| 江华| 常州市| 香港| 获嘉县| 故城县|