用纯css切换菜单
Switch menu with pure css?
更新我使用了单选按钮,所以您只能打开一个项目。但你无法关闭它。Fiddle
我想知道是否可以用纯CSS制作我的菜单。现在我用javascript修改css。
注意:我没有使用Jquery或任何其他lib,这不是我的问题。
我想在纯css 中制作菜单的涂鸦
HTML:
<div class="menuItem" onclick="mySwitch(0)">Click Item 1</div>
<div class="subItem">Hi there</div>
<div class="menuItem" onclick="mySwitch(1)">Click Item 2</div>
<div class="subItem">Some text over here.</div>
<div class="menuItem" onclick="mySwitch(2)">Click Item 3</div>
<div class="subItem">Tnx for clicking</div>
CSS:
.menuItem {
display:block;
width:100%;
height:20px;
background:#ff0;
}
.subItem {
display: none; -- Hide the submenu
}
Javascript
function mySwitch(nr) {
var itemsArr = document.getElementsByClassName('subItem');
for(var i = 0; i < itemsArr.length; i++) {
var item = itemsArr[i];
if(i == nr) {
if(item.style.display == 'none') {
item.style.display = 'block';
}
else {
item.style.display = 'none';
}
} else {
item.style.display = 'none';
}
}
}
当您可以使用CSS获得相同的结果时,防止过度使用JavaScript是一种很好的做法,但有时需要更改DOM元素并应用一些"技巧"来使其发挥作用,这一点都不好。
看看这个只有CSS3的DEMO。您可以使用悬停事件而不是单击事件来实现类似的效果。您可以将:hover
更改为:active
,但只有在DIV元素内按住鼠标按钮时,这才会起作用。
此.menuItem:hover + .subItem
CSS规则显示悬停的.menuItem
的下一个.subItem
元素
由于您不想使用JavaScript事件,因此无法将类应用于元素。如果你这样做会更容易。这样,只使用CSS,您可以应用一些技巧,比如使用复选框而不是DIV元素,并使用它们的:checked
属性作为CSS规则来显示子链接。
类似这样的东西:
<label for="m1" class="menuItem">Click Item 1</label>
<input id="m1" class="cb" type="checkbox">
<div class="subItem">Hi there</div>
<label for="m2" class="menuItem">Click Item 2</label>
<input id="m2" class="cb" type="checkbox">
<div class="subItem">Some text over here.</div>
<label for="m3" class="menuItem">Click Item 3</label>
<input id="m3" class="cb" type="checkbox">
<div class="subItem">Tnx for clicking</div>
.cb {
display: none;
}
.cb:checked + .subItem {
display: block;
}
工作演示
我想你可以看看这个教程:链接
希望这对有帮助
相关文章:
- 将js添加到wordpress中以突出显示css活动菜单
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- 为什么引导程序下拉菜单只有在包含bootstrap-responsive.css时才起作用
- jquery滑块在css弹出菜单中工作
- 自定义Jquery css下拉菜单问题
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- 打开CSS菜单加载
- 我的CSS/Javascript下拉菜单测试代码出了什么问题
- 只使用CSS创建可折叠菜单或spry菜单
- 汉堡菜单的IE9 CSS问题
- 阻止在单击和关闭覆盖菜单css时滚动正文
- 在 C# 中用 javascript 覆盖菜单 css
- 上下文菜单CSS和事件部分工作
- 弹性缩略图菜单- css不使图像的底部粘
- 如何使用HTML制作下拉菜单&css
- 自定义动画菜单CSS/ jQuery
- 修复菜单到响应菜单.css / jquery
- 下拉菜单css扩展宽度基于内容
- jQuery下拉菜单CSS操作
- 垂直滚动菜单CSS无法折叠