2010-02-06 10 views
33

¿Cómo puedo cambiar el fondo de uno de los padres cuando un <div><input> o <a> es:? Focus'd (o cualquier otra clase de pseudo dinámicaque afectan elemento padre de: elemento focus'd (puro CSS + HTML preferido)

Ej

<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

Nop: http: //en.wikipedia .org/wiki/Cascading_Style_Sheets # Limitations (2do viñeta) –

+0

No, ni siquiera con CSS3. – graphicdivine

+0

Gracias a todos. Solo estoy revisando porque no podía encontrar ninguna forma de usar CSS puro y el movimiento de la etiqueta html. Sabía que JavaScript podría hacerlo, solo quería mantener mis manos limpias. –

Respuesta

27

Desafortunadamente css no es compatible con los selectores principales. :(
Así que la única manera de hacerlo es utilizar JavaScript como el jQuery parent method

Actualización:. CSS Selectores Nivel 4 apoyará selectores padres http://www.w3.org/TR/selectors4/#subject

+0

[Parece que los selectores principales no lo harán.] (Http://css4.rocks/selectors-level-4/subject-of-selector.php) –

6

La única manera que se me ocurre es con 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)"> 

Espero que ayude!

Cuestiones relacionadas