【发布时间】:2014-08-16 09:27:53
【问题描述】:
我有一个由一个班级组成的清单,
<ul class="ac-menu">
<li><a href="#">a</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
</ul>
</li>
<li><a href="#">b</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</li>
<li><a href="#">c</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</li>
<li><a href="#">d</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
</ul>
</li>
<li><a href="#">e</a>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
</ul>
</li>
</ul>
我为它制作了一个 css 手风琴菜单:
/*css code*/
.ac-menu,
.ac-menu ul,
.ac-menu li,
.ac-menu a,
.ac-menu span {
margin: 0;
padding: 0;
border: 0;
outline: none;
}
.ac-menu li {
list-style: none;
}
.ac-menu li > a {
display: block;
position: relative;
padding: 0 10px 0 0;
text-align: center;
height: 32px;
color: #FFFFFF;
text-decoration: none;
background: #343435;
}
.ac-menu > li:hover > a,
.ac-menu > li:target > a {
text-shadow: 1px 1px 1px rgba(255,255,255, .2);
background: #20a4ca;
}
.ac-menu li ul li a {
color: #797979;
background: #eae9e9;
border-bottom: 1px solid #c1bfbf;
}
.ac-menu li ul li:hover a { background: #f6f5f5; }
.ac-menu li ul {
height: 0;
overflow: hidden;
-webkit-transition: height .2s ease-in-out;
-moz-transition: height .2s ease-in-out;
-o-transition: height .2s ease-in-out;
-ms-transition: height .2s ease-in-out;
transition: height .2s ease-in-out;
}
/* this is the problem */
.ac-menu :target > .ac-menu li ul {
height: auto;
}
在此处查看菜单:
http://jsfiddle.net/ahmadyousef/222dgr9j/
但它并不顺利.. 一切都很好,但最后的 css 代码:
.ac-menu :target > .ac-menu li ul {
height: auto;
}
此代码应将子菜单的高度从 0 更改为 auto 。 我不知道如何针对同一类... 谁能帮我解决这个问题?
【问题讨论】:
-
使用
:target伪类,你应该这样做:jsfiddle.net/hashem/222dgr9j/2 -
@HashemQolami ,这很有用,但你也更改了 HTML 文件..我不可能这样做..