[英]style span when focused on form input
小問題但是,找不到解決這個小問題的方法。 我有 html 表單
<div id="todolist">
<span class="add-on">OK</span>
<input class="addtodo" placeholder="New todo task" name="TITLE" type="text" >
</div>
在 CSS 中
#post-todo span{
color:#aaa;
}
我想改變color:#333
當專注於input
,怎么做?
使用CSS:focus selector
,如下所示。
input:focus
{
background-color:yellow;
color:blue;
}
假設您的OK
span
將放置在input
之后,那么下面的代碼將在沒有 jQuery 幫助的情況下工作。 只有CSS
才能解決問題。
<div id="todolist">
<input class="addtodo" placeholder="New todo task" name="TITLE" type="text" >
<span class="add-on">OK</span> <!-- span must be after input-->
</div>
.addtodo:focus + .add-on
{
background-color:yellow;
color:blue;
}
CSS 中的+
用於匹配緊跟在它之前的同級元素的任何元素。
考慮
E + F
{
// code
}
然后Matches any F element immediately preceded by a sibling element E.
不幸的是,當聚焦input
時,純 css 不可能改變span
樣式。 使用:focus
選擇器僅適用於聚焦元素的子元素。
但是有一個相當簡單的 javascript jquery 方法:
$("#post-todo .addtodo").focus(function(){
$("#post-todo .add-on").css("color", "#333");
})
$("#post-todo .addtodo").blur(function(){
$("#post-todo .add-on").css("color", "#aaa");
})
見這里: http : //jsfiddle.net/BEeNa/
它終於成為可能,僅僅幾年后......
在:focus-within 的支持下是可能的。
#todolist:focus-within .add-on { color: #aaa; }
<div id="todolist"> <span class="add-on">OK</span> <input class="addtodo" placeholder="New todo task" name="TITLE" type="text" > </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.