web-dev-qa-db-fra.com

Affectant l'élément parent de: l'élément focus (pur CSS + HTML préféré)

Comment puis-je changer l'arrière-plan d'un parent <div> lorsqu'un <input> ou <a> est: focus'd (ou toute autre pseudo-classe dynamique?

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>
36
Shane Daniel

Malheureusement, CSS ne prend pas en charge les sélecteurs parents. :(
Donc, la seule façon de le faire est d'utiliser javascript comme la méthode parent jQuery .

Mise à jour: Sélecteurs CSS Niveau 4 supportera les sélecteurs parents! http://www.w3.org/TR/selectors4/#subject

27
Rowno

La seule façon dont 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)">

J'espère que cela pourra aider!

6
anthares