0
这是一个非常棘手的问题,我很确定它无法用普通的CSS3实现(很容易用jQuery,但我试图避免这种情况)。也许有些黑客?我需要它是跨浏览器兼容的(IE7 + &其余)。CSS3 - 在焦点上更改父级的伪元素的颜色?
我有一个:在.wrapper伪元素之前。我想让它在改变颜色时.wrapper子(输入)是:focus。任何想法如何做到这一点?
这里的HTML:
<p class="wrapper"><input type="text" /></p>
和CSS:
body {
background: #eee;
}
.wrapper input[type="text"] {
position: relative;
padding: 10px 30px;
}
input { font-family: 'FontAwesome'; background: #333; border: solid 1px #000; }
.wrapper {
position: relative;
}
.wrapper:before {
font-family: 'FontAwesome';
color: #fff;
position: absolute;
top: 13px;
left: 15px;
content: "\f007";
z-index: 999;
}
input:focus {
border: solid 1px #fff;
outline: 0;
color: #333;
background: #fff;
}
我想出的最好的事情是:
.wrapper:before:hover {
color: #333;
}
但它吮吸时,用户只需将鼠标悬停在没有点击它的输入。
而且的jsfiddle播放使用:http://jsfiddle.net/8kEgz/2/
IE7完全不支持伪选择器,比如':before',你将不得不使用一些javacript。 [来源](http://kimblim.dk/css-tests/selectors/) –
@Zeaklous,那么IE8 +呢?有任何想法吗? – Wordpressor
我发布了一个最接近您使用纯CSS达到IE8 +的答案。任何反馈? –