style
=====

### Notes

Consultez les pages suivantes pour plus d'informations sur certains des objets utilisés pour manipuler les propriétés CSS depuis le DOM :

* L'objet DOM element.style
* L'objet DOM stylesheet
* L'objet DOM cssRule
* La liste des propriétés DOM CSS
### Informations à déplacer vers d'autres pages

 L'objet basique `style` explose les interfaces `StyleSheet` et `CSSStyleSheet` de la spécification
 *DOM Level 2 Style*
 . Ces interfaces contiennent des membres comme `insertRule`, `selectorText`, et `parentStyleSheet` permettant d'accéder et de manipuler les règles de style individuelles qui constituent une feuille de style CSS.

Pour obtenir les objets `style` depuis un objet `document`, il est possible d'utiliser la propriété `document.styleSheets` et d'accéder aux objets individuels par un index (par exemple, `document.styleSheets[0]` est la première feuille de style définie pour le document, et ainsi de suite). Bien qu'il existe plusieurs syntaxes pour exprimer les feuilles de style d'un document, les navigateurs basés sur Mozilla gèrent uniquement CSS. Par conséquent, l'objet `style` récupéré depuis ce tableau implémente à la fois les interfaces StyleSheet et CSSStyleSheet.


```js
var ss = document.styleSheets[1];
ss.cssRules[0].style.backgroundColor = "blue";
```


La liste des propriétés disponibles dans le DOM pour la propriété de style est donnée dans la liste des propriétés DOM CSS.

 La propriété style de l'élément peut également être utilisée pour obtenir et définir les styles d'un élément. Cependant, cette propriété renvoie uniquement les attributs de style qui ont été définis
 *in-line*
 ou directement sur cet élément à l'aide de `element.style.propertyName` (par exemple `<td style="background-color: lightblue">` renvoie la chaîne "background-color:lightblue", même si d'autres styles peuvent s'appliquer à l'élément depuis une feuille de style).

De plus, lorsque cette propriété est définie sur un élément, elle écrase et efface tout style qui peut avoir été défini ailleurs pour cette propriété particulière de l'élément. Par exemple, définir la propriété `border` écrasera les réglages définis ailleurs pour la propriété `border` de cet élément dans la section `head` du document ou dans des feuilles de style externes. Cependant, cela n'affectera pas les autres déclarations de propriétés pour les styles de cet élément, comme `padding`, `margin` ou `font` par exemple.

Pour changer le style d'un élément particulier, l'exemple suivant peut être adapté :


```html
<html>
  <head>
    <title>exemple de style simple</title>

    <script type="text/javascript">
 function alterStyle(elem) {
 elem.style.background = "green";
 }

 function resetStyle(elemId) {
 elem = document.getElementById(elemId);
 elem.style.background = "white";
 }
 </script>

    <style type="text/css">
 #p1 {
 border: solid blue 2px;
 }
 </style>
  </head>

  <body>
    <!-- passe une référence à l'objet de l'élément comme paramètre 'this'. -->
    <p id="p1" onclick="alterStyle(this)" ;>
      Cliquez ici pour changer la couleur de fond.
    </p>

    <!-- passe l'id 'p1' d'un autre style de l'élément à modifier. -->
    <button onclick="resetStyle('p1');">
      Réinitialiser la couleur de fond
    </button>
  </body>
</html>
```


La méthode `getComputedStyle()` de l'objet `document.defaultView` renvoie tous les styles qui ont finalement été calculés pour un élément. Consultez l'exemple 6 : getComputedStyle dans le chapitre des exemples pour plus d'informations sur l'utilisation de cette méthode.

### L'objet DOM style

 L'objet `style` représente une règle de style individuelle. Contrairement aux règles individuelles disponibles depuis la collection `document.styleSheets`, on accède à l'objet depuis l'objet `document` ou depuis les éléments auxquels ce style est appliqué. Il représente les styles
 *in-line*
 d'un élément particulier.

Mais il y a plus important que les deux propriétés exposées ici, c'est l'utilisation de l'objet `style` pour définir des propriétés de style individuelles sur un élément :


```html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>style Property Example</title>
    <link rel="StyleSheet" href="example.css" type="text/css" />
    <script type="text/javascript">
 function stilo() {
 document.getElementById("d").style.color = "orange";
 }
 </script>
  </head>

  <body>
    <div id="d" class="thunder">Thunder</div>
    <button onclick="stilo()">ss</button>
  </body>
</html>
```


Les attributs **media** et **type** du style peuvent être donnés ou non. Notez qu'il est également possible de changer les styles d'un élément en obtenant une référence vers cet élément et en utilisant ensuite sa méthode DOM setAttribute() pour spécifier à la fois la propriété CSS et sa valeur.


```js
var el = document.getElementById("un-element");
el.setAttribute("style", "background-color:darkblue;");
```


Soyez cependant conscient que `setAttribute` écrasera toute propriété de style qui pourrait déjà avoir été définie dans l'objet style de cet élément. Si l'élément « un-element » ci-dessus avait déjà un attribut indiquant par exemple `style="font-size: 18px"`, cette valeur serait supprimée par l'utilisation de `setAttribute`.

##### Propriétés

style.media

spécifie le média de destination pour lequel l'information de style est prévue.

style.type

renvoie le type de style appliqué par cette règle.