2012-10-08 69 views
4

有沒有一種可能的方式來定位css3中輸入的標籤?比如這個方法我試過 -CSS中的目標標籤

input[type="text"]:focus label:target { 
    color:orange !important; 
} 

似乎不工作,只是想知道,或者這是一個只工作jQuery的?

謝謝!

回答

4

​​不會做你認爲它所做的事情,並且label永遠不可能作爲input的後代存在,所以不起作用。

如果您試圖通過親子關係或for屬性引用與input關聯的label,那麼CSS3無法實現這一點。你只能參考label如果是下面的input兄弟姐妹,與兩者之一:

input[type="text"]:focus + label 
input[type="text"]:focus ~ label 

如果label是一個祖先,前面的兄弟姐妹或完全在其他地方,你需要使用jQuery遍歷DOM並找到它。

+0

好的感謝您的快速反應! – Matt

+0

你能舉個例子說明你是兄弟姐妹嗎? – Matt

+0

@Matt:類似於'後面的標籤'在輸入標籤後面有一個標籤標籤,另一個。 – BoltClock

0

隨着CSS4你可以這樣做:

!label /for/ input[type="text"]:focus, 
!label input[type="text"]:focus { 
    ... 
} 

第一個允許<label for="inputid">,第二個爲<label><input type="text"/></label>

然而CSS4的支持是極其有限的。不過,把它放在那裏並沒有什麼壞處。

+0

's/CSS4/Selectors 4 /'另外,參考組合符從'[idref]'到'[id]',但不是相反,所以您應該寫' !label/for/input [type =「text」]:focus'。 – BoltClock

+0

但我敢肯定,只有一個瀏覽器支持CSS4 ..如果:P一半瀏覽器甚至不支持CSS3的全部。 – Matt

+1

看,這是說「CSS4」的問題。沒有CSS4這樣的東西,任何瀏覽器都不可能*支持全部* CSS3,因爲它一直在增長,它不僅代表「所有3級模塊」,而且代表任何部分從CSS2擴展的CSS。但是,你知道,一切都需要付出代價,這是從全球調平系統(CSS1,2)突然變爲模塊化系統(> CSS2)的成本。 – BoltClock