[問題] 下拉式選單捲軸

看板Web_Design作者 (阿阿..會不會死掉)時間11年前 (2014/10/27 17:24), 11年前編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
先附上code HTML: <ul class="navigation"> <li><a href="#">請選擇</a> <ul style="width: 200px; height: 100px; overflow-x:hidden;overflow-y:auto"> <li><a href="#">第一層大類A</a> <ul> <li><a href="#">第二層小類1</a></li> <li><a href="#">第二層小類2</a></li> <li><a href="#">第二層小類3</a></li> <li><a href="#">第二層小類4</a></li> </ul> </li> <li><a href="#">第一層大類B</a><li> <li><a href="#">第一層大類C</a><li> <li><a href="#">第一層大類D</a><li> </ul> </li> </ul> CSS: <style type="text/css"> body, ul.navigation, ul.navigation li, ul.navigation ul, a{ margin: 0; padding: 0; font-size: 12px; text-decoration: none; } ul.navigation,ul.navigation li { list-style: none; } ul.navigation li { position: relative; float: left; } ul.navigation li a { width: 200px; display: block; padding: 1px 2px; background: #fff; color: black; z-index:1; } ul.navigation > li > a{ border-bottom: 1px solid #CCC; border-left: 1px solid #CCC; } ul.navigation > li > a:hover{ color: #666; background: #DDD } ul.navigation li ul{ display: none; float: left; position: absolute; left: 0; margin: 0; z-index:2; } ul.navigation li:hover > ul{ display: block; } ul.navigation ul li { border-bottom: none; } ul.navigation ul li:last-child { border-bottom: none; } ul.navigation ul a { width: 200px; padding: 1px 2px; color: #666; background: #EEE; z-index:3; } ul.navigation ul a:hover { background: #CCC; } ul.navigation ul li:hover > ul{ display: block; position: absolute; top: 0; left: 100%; } 主要問題是因為第一層數量很多 所以在ul 指定長寬跟overflow後出現y軸捲軸 結果出現一個問題 就是捲軸是出現了 但原本第二層的資料卻變成顯示在捲軸內 變成要拉捲軸才能看到"第二層"的資料 其實我是想要第一層選單可以多捲軸避免資料太長難閱讀 想要的效果是 第一層下拉用捲軸可找到想要的項目 滑鼠移過去後 第二層出現在上面顯示出來 現在好像變成被包在裡面了 請問哪邊出問題了 css接觸沒很久請多幫忙 再次感謝!! *** 我放到jsfiddle了 這是沒在ul裡面加style的正常的情況 http://jsfiddle.net/yoshjibo/fgu2nd1y/1/ 但這樣第一大類項目太多了 在ul加了style以後 出現捲軸了 但第二層卻被蓋住了 http://jsfiddle.net/yoshjibo/s5weanob/1/ 感謝回覆 請再指點一下 *** 找到解法 http://css-tricks.com/popping-hidden-overflow/ 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.19.47 ※ 文章網址: http://www.ptt.cc/bbs/Web_Design/M.1414401855.A.3F5.html

10/27 17:41, , 1F
看無,有示意圖嗎?另外,要不要避免一下行內樣式?
10/27 17:41, 1F

10/27 17:44, , 2F
請丟fiddle
10/27 17:44, 2F
※ 編輯: yoshjibo (118.165.8.185), 10/27/2014 19:32:27

10/28 10:50, , 3F
首先,是你自己說overflow-x: hidden的,下一層當然
10/28 10:50, 3F

10/28 10:51, , 4F
當然出不來,因為超過第一層寬度的都會被隱藏
10/28 10:51, 4F

10/28 10:51, , 5F
第二,如果拿掉overflow-x,你會發現下一層出來了,
10/28 10:51, 5F

10/28 10:53, , 6F
但是會出現橫向卷軸,因為也是你說overflow要AUTO的
10/28 10:53, 6F

10/28 10:58, , 7F
所以基本上,因為有overflow的關係,東西都會在第一
10/28 10:58, 7F

10/28 10:59, , 8F
層裡面,不會超出來,所以我個人覺得,解決辦法有二
10/28 10:59, 8F

10/28 11:00, , 9F
一是改HTML結構,二是改變想呈現的效果
10/28 11:00, 9F
※ 編輯: yoshjibo (118.163.19.47), 10/29/2014 17:29:22
文章代碼(AID): #1KJWy_Fr (Web_Design)