2010-02-06 8 views
33

Comment puis-je changer l'arrière-plan d'un parent <div> lorsqu'un <input> ou <a> est: focus'd (ou tout autre pseudo-classe dynamiqueélément parent de Affectant: élément focus'd (pur CSS + HTML préféré)

par exemple,

<div id="formspace"> 
<form> 
<label for="question"> 
How do I select #formspace for the case when a child is active?</label> 
<input type="text" id="question" name="answer"/></form></div> 
+0

Non: http: //en.wikipedia .org/wiki/Cascading_Style_Sheets # Limitations (2nd bullet point) –

+0

Non, pas même avec CSS3 – graphicdivine

+0

Merci à tous pour avoir vérifié que je n'arrivais pas à trouver quoi que ce soit avec des mouvements CSS et html. Je voulais juste garder mes mains propres –

Répondre

27

Malheureusement, css ne supporte pas les sélecteurs parents. :(
La seule façon de le faire est d'utiliser javascript comme le jQuery parent method

Mise à jour:. CSS Selectors Niveau 4 soutiendra sélecteurs parents http://www.w3.org/TR/selectors4/#subject

+0

[On dirait que les sélecteurs parents ne le feront pas.] (Http://css4.rocks/selectors-level-4/subject-of-selector.php) –

6

La seule façon que je peux penser est avec JAVASCRIPT:

function focusLink(isOnFocus) 
{ 
    if (isOnFocus) 
     document.getElementById('formspace').className = "<make a focus class name here>"; 
    else 
     document.getElementById('formspace').className = "<default class name here>"; 
} 

...

<input onFocus="focusLink(true)" onBlur="focusLink(false)"> 

Espérons que ça aide!

Questions connexes