下圖是一個Accordion組件,請用HTML+CSS實現其UI,並用面向對象的思路把折疊效果JS實現。如果能用純css的方式實現其折疊效果更佳。PS/這是小米15年的一道校招筆試題,無意間看到就實現了一下。
這個題讓最好用css實現,那就考察的知識點比較多啦!特別是css選擇器這一塊。具體實現代碼如下。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>純CSS實現百葉窗</title> <style type="text/css"> * { margin: 0; padding: 0; } #parent >li> span{background: #999999;display: block;width: 200px;border:1px solid #ECEEF2;} li {line-height: 40px;display: block;} li p{ display: inline-block; width: 0px; height: 0px; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid#2f2f2f; } li>ul{display: none;} li>ul>li{border: 1px solid #DEDEDE;width: 199px;} #parent span:hover + ul{display: block;} #parent span:hover >p{ display: inline-block; width: 0px; height: 0px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 5px solid#2f2f2f;} </style> </head> <body> <ul id="parent"> <li> <span><p></p>列表</span> <ul> <li>子列表</li> <li>子列表</li> <li>子列表</li> </ul> </li> <li> <span><p></p>列表</span> <ul> <li>子列表</li> <li>子列表</li> <li>子列表</li> </ul> </li> <li> <span><p></p>列表</span> <ul> <li>子列表</li> <li>子列表</li> <li>子列表</li> </ul> </li> </ul> </body> </html>