我想做的主要是:
/*psuedo css code*/
input:textbox:active
{
border: 1px solid blue;
}
有点像a:active
,但对文本框这样做。我知道我可以使用Javascript,但出于支持原因,因为我不知道谁知道JavaScript,我试图阻止它。感谢。
我也想要一个不活跃的东西带走边界。感谢。
答案 0 :(得分:2)
假设您的文本框标识为TextBox
,则可以使用#TextBox:focus { border: 1px solid blue; }
答案 1 :(得分:0)
您可以使用CSS突出显示该框,但不会将焦点放在框中。要做到这一点,您需要使用JavaScript,无论是否将它暴露给开发人员。您可以使用here技术隐藏JavaScript的事实。
答案 2 :(得分:0)
你已经have an answer for the general case在一半不错的浏览器上,如果有人想让它在旧版本的IE中工作,那么这里是我之前准备的黑客。它基于SuckerFish下拉菜单代码,其基础是:hover
您为类.sfhover
重复的任何样式,如下所示:
textarea:hover, input[type=text]:hover, input[type=password]:hover, textarea.sfhover, input.sfhover {
border: 1px solid blue;
}
然后你有一个函数将事件处理程序附加到INPUT
和TEXTAREA
事件的focus
和blur
元素:
function highlightInputs () {
var sfEls = document.getElementsByTagName("INPUT");
for (var i=0; i<sfEls.length; i++) {
if (sfEls[i].type == 'text' | sfEls[i].type == 'password') {
sfEls[i].onfocus=function() {
this.className+=" sfhover";
}
sfEls[i].onblur=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
sfEls = document.getElementsByTagName("TEXTAREA");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onfocus=function() {
this.className+=" sfhover";
}
sfEls[i].onblur=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
代码只需在IE中运行,因此您不必担心跨浏览器兼容性。然后使用某种IE检测方法仅在IE中运行页面加载功能:
if (window.attachEvent) window.attachEvent("onload", highlightInputs);
如果您已经加载了该库,您还可以使用条件注释或类似jQuery的$.browser.msie
测试。