[问题] 下拉式选单卷轴

楼主: yoshjibo (阿阿..会不会死掉)   2014-10-27 17:24:13
先附上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/
感谢
作者: leochen0818 (Leo)   2014-10-27 17:41:00
看无,有示意图吗?另外,要不要避免一下行内样式?
作者: bbcust (bbcust)   2014-10-27 17:44:00
请丢fiddle
作者: leochen0818 (Leo)   2014-10-28 10:50:00
首先,是你自己说overflow-x: hidden的,下一层当然当然出不来,因为超过第一层宽度的都会被隐藏第二,如果拿掉overflow-x,你会发现下一层出来了,但是会出现横向卷轴,因为也是你说overflow要AUTO的所以基本上,因为有overflow的关系,东西都会在第一层里面,不会超出来,所以我个人觉得,解决办法有二一是改HTML结构,二是改变想呈现的效果

Links booklink

Contact Us: admin [ a t ] ucptt.com