<div class="contain">
<input type="text">
</div>
所以...基本上我拥有的东西。
我有一个div的背景是一件事,但我想在输入获得焦点时改变它...比如将图像的背景更改为与之前相同的图像,但右边有一个X清除文本字段。
我如何使用CSS? (只是后台切换)
答案 0 :(得分:4)
只需使用CSS,就无法触发元素与其他元素交互时的CSS更改。
这是一个简单的JQuery解决方案,可以实现您的目标:
$('input').focus(function(){
$(this).parent().addClass('focused');
}).blur(function(){
$(this).parent().removeClass('focused');
});
工作演示1(带背景颜色):http://jsfiddle.net/AlienWebguy/V2hub/
工作演示2(带背景图片):http://jsfiddle.net/AlienWebguy/V2hub/1/
答案 1 :(得分:1)
你不能用纯css做到这一点。要么使用javascript - jquery方式:$("#yourInput").focus(function(){$(this).parent().addClass("focused")})
,要么在输入中添加填充或边框,如果要坚持纯css,请在输入本身设置背景图像。您可能需要更改图像,以伪造输入外观。
答案 2 :(得分:0)
#element:focus { background:url(img.png); }
更多信息:http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/full/flat/css3-modsel-20.html
答案 3 :(得分:0)
另一种方法。用纯css。起初我正在考虑使用伪元素,但看起来伪元素与输入元素不相符。所以我没有使用像input:focus:after
这样不起作用的东西(至少在firefox中),而是使用了简单的div
。
.contain { position:relative; }
input:focus + div { position: absolute; top:0; left:0; width:100%; height:100%: z-index:-1; background: red; }