1. 程式人生 > >三種方式實現網頁二級選單

三種方式實現網頁二級選單

方法一:使用HTML和CSS實現

首先是Html程式碼,習慣上會將選單放在一個div裡,使用盒子模型,方便以後的操作和設定樣式。

二級選單也就是在一級選單中的li中再新增一個ul-li結構

<div class="test">
	<ul>
        	<li>A</li>
            	<li>B</li>
            	<li>C
                 	<ul>
                    		<li>C1</li>
                    		<li>C2</li>
                    		<li>C3</li>
                	</ul>
           	</li>
 	</ul>
</div>

使用css程式碼設定樣式

<style type="text/css">
        .test ul{
            list-style-type: none;

        }

        .test ul li{

            float:left;

            /*以下設定僅為方便檢視效果*/
            width:50px;
            height:20px;
            border:1px solid black;
            text-align: center;
        }

        .test ul li ul{
            display: none;
        }

        .test li:hover ul{
            display:block;
        }

</style>

解釋三個重要的css程式碼:

1.寫出一個ul-li選單時,它會預設垂直排列,而我們需要的是水平的選單欄,所以需要設定li的浮動:float:left

2.當滑鼠懸浮在有二級選單的一級選單選項時,才會出現二級選單,所以在滑鼠不懸浮的情況下,需要把二級隱藏起

來display:none

3.最後,設定li :hover ul 這個意思是,當滑鼠懸浮在li上時,li下的ul呈現狀態,hover是懸浮的意思,在設定a標籤樣

式時應該會接觸過

方法二:使用jQuery實現

要用到jQuery首先第一步就是引入jquery.js檔案

<script type="text/javascript" src="js/jquery-1.7.min.js"></script>

在平時做網頁專案時,最好是將css,html,js分開,在html頁面中引入css和js檔案,css檔案引入放在head中,js放在body的最後,這是為了在載入網頁時,先加載出它的樣式,最後載入js動態。那麼注意了,在這裡如果你的js程式碼是放在body中,那麼引入jquery檔案必須放在js程式碼之前,瀏覽器編譯html檔案時,是從上自下編譯的,如果jquery檔案放在最後,那麼在你的js程式碼又使用到了jquery的功能,後果可想而知,效果是出不來的。

下面兩種方式都是可行的,第一種二級選單出現的很直接,fade呢有一個漸入漸出的過程

200,300的都是時間,估計是以ms為單位,有待查驗。

js程式碼:

<script type="text/javascript">
        /* js 語句 $(function(){});*/
        $(function(){
            $(".test li").hover(
                    /*找父親(li)下面的ul*/
                    function() {
                        $(this).find("ul").show(200);
                    },function(){
                        $(this).find("ul").hide(300);
                    }
            );

            $(".test li").hover(
                    function(){
                        $(this).find("ul").fadeIn(300);
                    },function(){
                        $(this).find("ul").fadeOut(300);
                    }
            );
        });
</script>

方法三:使用Bootstrap實現

如果不瞭解Bootstrap是什麼,出門找百度諮詢一下

和jquery類似的,需要引入三個檔案:

1. bootstrap.min.css   2.  jquery-3.1.0.min.js  3. bootstrap.min.js

因為bootstrap所有js程式碼都是需要jquery做支撐的,所以只要引入bootstrap.js都必須引入jquery

其實博主前面都偷了個懶,沒有給每個li新增a標籤,在實際操作中這是非常必要的,除非你要做一個不實現跳轉功能

的擺設選單,那就隨便怎麼玩了。使用Bootstrap框架就必須使用a標籤了,因為它的很多樣式是設定在a標籤上的,

不使用沒有效果,相比前面的兩種來說,使用框架又省力又省心,非常簡單。

只需三步:

1.為一級選單的ul新增class-nav nav-pills(或者nav-tabs 等等)

2.為一級選單中有下拉二級選單的li新增 class-dropdown

為a標籤新增屬性:data-toggle="dropdown" 以及class-dropdown-toggle

3.給2步驟中li下的ul新增class-dropdown-menu

例項:

<ul class="nav nav-pills">
    <li>
        <a href="#">A</a>
    </li>
    <li class="dropdown">
        <!-- span標籤 是新增一個下三角的圖示 -->
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">B<span class="caret"></span></a>
        <ul class="dropdown-menu">
            <li><a href="#">B1</a></li>
            <li><a href="#">B2</a></li>
            <li><a href="#">B3</a></li>
            <li><a href="#">B4</a></li>
        </ul>
    </li>
    <li><a href="#">C</a></li>
</ul>