[英]change border color on click
我有一个包含4个div盒的菜单。 我希望活动框具有红色边框,如果单击另一个框,则边框为白色,另一个框的边框为红色。 我需要JavaScript还是CSS?
HTML
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
CSS
.box{
margin: 10px;
float: left;
width: 100px;
height: 50px;
background-color: blue;
border: solid 1px red;
}
如果你想维持状态,你需要JavaScript,使用CSS可以悬停。
您可以使用div:active { /* style */ }
进行单击并保持样式,但鼠标向上后它将消失。
这是使用jQuery快速完成的方法:
$('.box').on('click', function(e){
e.preventDefault();
$(this).css('border-color', 'lime');
});
虽然可能更好地切换课程:
JS:
$('.box').on('click', function(e){
e.preventDefault();
$(this).toggleClass('myClickState');
});
CSS:
.myClickState {
border-color: lime;
}
是的,您可以使用:active
伪选择器来实现此目的。
尝试这个:
.box:active {
border-color: red;
}
但是,释放鼠标后,这将不会持续存在。
IE6也不支持它。
function fnChangeBorder(boxId) {document.getElementById(boxId).style.border = "solid #AA00FF";}
<div class="box" id="A" onclick="fnChangeBorder('A')">Click here !!</div>
我选择A作为参数,因为数字不能用作函数参数
你可以通过jQuery( JSFiddle here )来做到这一点:
$(document).ready(function() {
$('.box').click(function() {
if($('.active').length) {
$('.active').not($(this)).removeClass('active').addClass('box');
}
$(this).removeClass('box').addClass('active');
});
});
尝试这个:
.box:focus{ border-color:#cd3232; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.