我需要设置像这样的文本输入
要求是:
-
流体宽度(延伸至容器宽度)
-
边框颜色在焦点上发生变化
-
边框颜色更改时出错
用css做一些简单的方法吗?
我现在提出的是相当复杂的,需要js,它的工作不太顺利 -
<div class="inpt"><input type="text" /></div>
jQuery(".inpt").delegate("*", "focus blur", function() {
var elem = jQuery(this);
var elem2 = jQuery(this).parent();
setTimeout(function() {
elem2.toggleClass("focused", elem.is(":focus"));
}, 0);
});
我不得不在div中包含一个输入,并使用图像来设置div:before和:after
显然:在这种情况下,active对div不起作用,因此我不得不用脚本切换一些类 .
我觉得必须有一些我想念的简单解决方案 . 有人能建议更好吗?
2 回答
此解决方案使用jQuery检测焦点
<input>
并在父容器上添加/删除.focused
类 .左右箭头都是由CSS组成,带有2个
<span>
元素和:before
/:after
.输入是响应的,并适应其容器的宽度 .
FIDDLE
HTML:
CSS:
jQuery的
编辑:你确实需要JS . :before和:after之后无法应用于输入字段 . 请参阅web-tiki的回答 .
在这种情况下,您不需要Javascript . :focus是CSS中的有效伪类 . 看看这个article about :focus .
在伪类的帮助下:之前和之后,你也可以create arrows in pure css .