2

我想用 CSS 创建一个 HTML5 菜单,它可以通过单击而不是悬停来工作。我在网上看到了使用 JS 完成的示例。我想知道是否可以在没有 JS 的情况下做到这一点。一种方法可能是添加

 <input type='checkbox' /> 

在每个父母之前,根据它是否检查来显示子项目你怎么看?

4

1 回答 1

2

:checked

是的,您可以使用复选框来做到这一点,但目前它并没有得到很好的支持。它使用下一个兄弟+和通用兄弟~选择器以及:checked.

jsFiddle

HTML

<input id="menu-button" type='checkbox' />
<label for="menu-button"></label>
<ul id="menu">
    <li>Menu item 1</li>
    <li>Menu item 2</li>
    <li>Menu item 3</li>
</ul>

CSS

/* hide the checkbox */
 #menu-button {
    position:absolute;
    left:-9999px;
    top:-9999px;
}
#menu-button + label:after {
    display:block;
    content:"v";
}
#menu-button:checked + label:after {
    content:"^";
}
#menu {
    display:none;
}
#menu-button:checked ~ #menu {
    display:block;
}

:target

另一种方法是使用<a>标签和:target,这也不是很好支持。

jsFiddle

HTML

<a href="#menu">Show menu</a>
<div id="menu">
    <ul>
        <li>Menu item 1</li>
        <li>Menu item 2</li>
        <li>Menu item 3</li>
    </ul>
    <a href="#">Hide menu</a>
</div>

CSS

#menu {
    display:none;
}
#menu:target {
    display:block;
}
于 2013-04-04T08:37:25.700 回答