CSS三級(jí)下拉列表的制作是一個(gè)相對(duì)復(fù)雜的過程,需要掌握CSS和JavaScript的知識(shí),下面是一個(gè)簡單的實(shí)現(xiàn)方法:
1、HTML結(jié)構(gòu):我們需要一個(gè)包含三級(jí)列表的HTML結(jié)構(gòu),每個(gè)列表項(xiàng)可以是一個(gè)li
元素,每個(gè)子列表可以是一個(gè)嵌套的ul
元素。
<ul id="myList"> <li>列表項(xiàng)1 <ul> <li>子列表項(xiàng)1</li> <li>子列表項(xiàng)2</li> </ul> </li> <li>列表項(xiàng)2 <ul> <li>子列表項(xiàng)3</li> <li>子列表項(xiàng)4</li> </ul> </li> </ul>
2、CSS樣式:我們需要添加CSS樣式來定義列表的外觀,我們可以使用CSS的list-style
屬性來去除默認(rèn)的列表樣式,并使用padding
和margin
來調(diào)整列表的間距。
#myList { list-style: none; padding: 0; margin: 0; } #myList li { padding: 10px; margin: 5px 0; border: 1px solid #ccc; border-radius: 5px; } #myList ul { padding: 0; margin: 0; } #myList ul li { padding: 10px; margin: 5px 0; border: 1px solid #ccc; border-radius: 5px; }
3、JavaScript功能:為了實(shí)現(xiàn)三級(jí)下拉列表的功能,我們需要添加一些JavaScript代碼,我們可以使用addEventListener
來監(jiān)聽列表項(xiàng)的點(diǎn)擊事件,并在點(diǎn)擊時(shí)切換子列表的顯示狀態(tài)。
var myList = document.getElementById('myList'); var listItems = myList.getElementsByTagName('li'); var i; for (i = 0; i < listItems.length; i++) { listItems[i].addEventListener('click', function(e) { var ul = this.getElementsByTagName('ul')[0]; if (ul) { // 如果存在子列表,則切換顯示狀態(tài) if (ul.style.display === 'none') { // 如果子列表當(dāng)前不顯示,則顯示它 ul.style.display = 'block'; // 顯示子列表 } else { // 如果子列表當(dāng)前顯示,則隱藏它 ul.style.display = 'none'; // 隱藏子列表 } // End if-else statement for ul.style.display value change } // End if statement for ul existence check }); // End of click event listener function definition for listItems[i] } // End of for loop for listItems array length check and event listener attachment to each list item in the array.