Lisez-moi S.V.P. 

13 novembre 2000

1. Le modèle objet de document StyleSheets

Rédacteurs
Chris Wilson, Microsoft Corp.
Philippe Le Hégaret, W3C
Vidur Apparao, Netscape Communications Corp.

Table des matières

1.1. Introduction

Les interfaces DOM niveau 2 StyleSheets sont des interfaces de base servant à représenter tout type de feuille de style. Les modules DOM représentant un langage de feuille de style spécifique sont censés contenir des interfaces qui en sont dérivées.

Les interfaces trouvées dans cette section ne sont pas obligatoires. Une application DOM peut employer la méthode hasFeature(feature, version) de l'interface DOMImplementation, respectivement avec les valeurs de paramètre "StyleSheets" et "2.0", pour déterminer si ce module est reconnu, ou non, par la mise en œuvre. Pour la gestion complète de ce module, une mise en œuvre doit également gérer la fonctionnalité "Core" définie dans la spécification du DOM niveau 2 Core [DOM niveau 2 Core]. Consulter la section à propos de la conformité→vf dans la spécification du DOM niveau 2 Core [DOM niveau 2 Core] pour d'autres renseignements.

1.2. Les interfaces du module StyleSheets

Ce jeu d'interfaces représente la notion générique des feuilles de style.

L'interface StyleSheet (introduite dans DOM niveau 2)

L'interface StyleSheet est l'interface de base abstraite pour tout type de feuille de style. Elle représente une seule feuille de style associée à un document structuré. En HTML, l'interface StyleSheet représente soit une feuille de style externe, incluse via l'élément LINK→vf, soit l'élément en-ligne STYLE→vf. En XML, cette interface représente une feuille de style externe, incluse via une instruction de traitement de feuille de style→vf.


Définition IDL
// Introduite dans DOM niveau 2 :
interface StyleSheet {
  readonly attribute DOMString        type;
           attribute boolean          disabled;
  readonly attribute Node             ownerNode;
  readonly attribute StyleSheet       parentStyleSheet;
  readonly attribute DOMString        href;
  readonly attribute DOMString        title;
  readonly attribute MediaList        media;
};

Attributs
disabled de type boolean
La valeur false si la feuille de style est appliquée au document, sinon la valeur true. La modification de cet attribut peut entraîner une réinterprétation du style du document. Une feuille de style ne s'applique qu'en présence d'une définition de média adéquate et si l'attribut disabled a la valeur false. Si l'attribut media ne correspond pas à l'agent utilisateur courant, l'attribut disabled est donc ignoré.
href de type DOMString, en lecture seule
Si c'est une feuille de style liée, la valeur de cet attribut correspond à son adresse. Pour les feuilles de style en-ligne, cet attribut a la valeur null. Cf. la définition de l'attribut href→vf de l'élément LINK de HTML 4.0 et le pseudo-attribut href de l'instruction de traitement de feuille de style→vf en XML.
media de type MediaList, en lecture seule
Le média de destination prévu pour les informations de style. Le média est souvent défini dans l'attribut ownerNode. Si aucun média n'est indiqué, la valeur MediaList sera vide. Cf. la définition de l'attribut media→vf de l'élément LINK en HTML 4.0 et le pseudo-attribut media de l'instruction de traitement de feuille de style→vf en XML.
La modification de la liste de médias peut entraîner celle de l'attribut disabled.
ownerNode de type Node, en lecture seule
Le nœud associant cette feuille de style au document. Pour HTML, ce sera l'élément LINK, ou STYLE, correspondant. Pour XML, ce sera l'instruction de traitement de liaison. Pour les feuilles de style appelées par d'autres feuilles de style, cet attribut a la valeur null.
parentStyleSheet de type StyleSheet, en lecture seule
Pour les langages de feuille de style gérant le concept d'inclusion de feuille de style, cet attribut représente, le cas échéant, la feuille de style incluante. Si c'est une feuille de style de niveau supérieur ou si le langage de feuille de style ne gère pas l'inclusion, cet attribut a la valeur null.
title de type DOMString, en lecture seule
Le titre consultatif. Le titre est souvent défini dans l'attribut ownerNode. Cf. la définition de l'attribut title→vf de l'élément LINK en HTML 4.0 et le pseudo-attribut title de l'instruction de traitement de feuille de style→vf en XML.
type de type DOMString, en lecture seule
Cet attribut indique le langage de cette feuille de style. Le langage de feuille de style est indiqué comme un type de contenu (par exemple, "text/css"). Le type de contenu→vf est souvent défini dans l'attribut ownerNode. Cf. également la définition de l'attribut type→vf de l'élément LINK en HTML 4.0 et le pseudo-attribut type de l'instruction de traitement de feuille de style→vf en XML.
L'interface StyleSheetList (introduite dans DOM niveau 2)

L'interface StyleSheetList fournit l'abstraction d'une collection ordonnée de feuilles de style.

Les éléments de l'objet StyleSheetList sont accessibles via un index entier, commençant à "0".


Définition IDL
// Introduite dans DOM niveau 2 :
interface StyleSheetList {
  readonly attribute unsigned long    length;
  StyleSheet         item(in unsigned long index);
};

Attributs
length de type unsigned long, en lecture seule
Le nombre d'objets StyleSheet dans la liste. L'index des feuilles de style enfants valides s'étend de 0 à length-1 inclus.
Méthodes
item
Sert à récupérer une feuille de style selon un index ordinal. Si l'index est supérieur ou égal au nombre de feuilles de style dans la liste, l'attribut retourne la valeur null.
Paramètres
index de type unsigned long
L'index dans la collection.
Valeur retournée

StyleSheet

La feuille de style à la position indiquée par le paramètre index, dans l'objet StyleSheetList, ou la valeur null si l'index n'est pas valide.

Aucune exception
L'interface MediaList (introduite dans DOM niveau 2)

L'interface MediaList fournit l'abstraction d'une collection ordonnée de médias→vf, sans définition ni restriction quant à la manière dont cette collection est mise en œuvre. Une liste vide équivaut à une liste contenant la valeur de média "all".

Les éléments de l'objet MediaList sont accessibles via un index entier, commençant à "0".


Définition IDL
// Introduite dans DOM niveau 2 :
interface MediaList {
           attribute DOMString        mediaText;
                            // soulève une exception DOMException à l'initialisation

  readonly attribute unsigned long    length;
  DOMString          item(in unsigned long index);
  void               deleteMedium(in DOMString oldMedium)
                                        raises(DOMException);
  void               appendMedium(in DOMString newMedium)
                                        raises(DOMException);
};

Attributs
length de type unsigned long, en lecture seule
Le nombre de médias dans la liste. Le nombre de médias valide s'étend de 0 à length-1 inclus.
mediaText de type DOMString
La représentation textuelle analysable de la liste de médias. C'est une liste de valeurs de média, séparées par des virgules.
Exceptions à l'initialisation

DOMException

SYNTAX_ERR : Soulevée si la valeur de chaîne indiquée a une syntaxe erronée ou n'est pas analysable.

NO_MODIFICATION_ALLOWED_ERR : Soulevée si cette liste de médias est en lecture seule.

Méthodes
appendMedium
Ajoute le média désigné par le paramètre newMedium à la fin de la liste. Si le média newMedium est déjà utilisé, il est d'abord retiré.
Paramètres
newMedium de type DOMString
Le nouveau média à ajouter.
Exceptions

DOMException

INVALID_CHARACTER_ERR : Si le média contient des caractères invalides pour le langage de style sous-jacent.

NO_MODIFICATION_ALLOWED_ERR : Soulevée si cette liste est en lecture seule.

Aucune valeur retournée
deleteMedium
Supprime le média désigné par le paramètre oldMedium de la liste.
Paramètres
oldMedium de type DOMString
Le média à supprimer de la liste de médias.
Exceptions

DOMException

NO_MODIFICATION_ALLOWED_ERR : Soulevée si cette liste est en lecture seule.

NOT_FOUND_ERR : Soulevée si le média oldMedium n'est pas dans la liste.

Aucune valeur retournée
item
Retourne l'élément de liste désigné par l'attribut index. Si index est supérieur ou égal au nombre de médias de la liste, retourne la valeur null.
Paramètres
index de type unsigned long
L'index dans la collection.
Valeur retournée

DOMString

Le média à la position indiquée par le paramètre index, dans l'objet MediaList, ou la valeur null si cet index n'est pas valide.

Aucune exception

1.3. Les extensions de document

L'interface LinkStyle (introduite dans DOM niveau 2)

L'interface LinkStyle fournit un mécanisme par lequel on peut récupérer une feuille de style depuis le nœud qui la lie au document. On peut obtenir une interface de l'interface LinkStyle en utilisant les méthodes prépondérantes particulières de la liaison sur une instance de nœud de liaison (HTMLLinkElement, HTMLStyleElement ou ProcessingInstruction dans DOM niveau 2).


Définition IDL
// Introduite dans DOM niveau 2 :
interface LinkStyle {
  readonly attribute StyleSheet       sheet;
};

Attributs
sheet de type StyleSheet, en lecture seule
La feuille de style.
L'interface DocumentStyle (introduite dans DOM niveau 2)

L'interface DocumentStyle fournit un mécanisme par lequel on peut récupérer les feuilles de style incorporées au document. L'interface DocumentStyle est censée s'obtenir en utilisant les méthodes prépondérantes spécifiques de la liaison sur une instance de l'interface Document.


Définition IDL
// Introduite dans DOM niveau 2 :
interface DocumentStyle {
  readonly attribute StyleSheetList   styleSheets;
};

Attributs
styleSheets de type StyleSheetList, en lecture seule
Une liste contenant toutes les feuilles de style explicitement liées ou incorporées au document. Pour les documents HTML, ce seront les feuilles de style externes, incluses via l'élément LINK→vf et les feuilles de style en-ligne des éléments STYLE→vf. En XML, ce seront les feuilles externes, incluses via des instructions de traitement de feuille de style (cf. [XML-StyleSheet]).

1.4. L'association entre une feuille de style et un document.

HTML et création de feuille de style
On peut associer une feuille de style à un objet HTMLDocument de deux façons :
  • En créant un nouvel élément HTML LINK (cf. l'interface HTMLLinkElement dans [DOM niveau 2 HTML] et [HTML4.0]). La feuille de style sous-jacente sera créée après l'insertion de l'élément dans le document et après le paramétrage des attributs href et type indiquant que l'objet lié est une feuille de style ;
  • En créant un nouvel élément HTML STYLE (cf. l'interface HTMLStyleElement dans [DOM niveau 2 HTML] et [HTML4.0]). La feuille de style sous-jacente sera créée après l'insertion de l'élément et après le paramétrage de l'attribut type indiquant que l'élément correspond à un langage de feuille de style interprété par l'agent utilisateur.
HTML et retrait de feuille de style
Le retrait d'un élément HTML LINK, ou STYLE, entraîne celui de la feuille de style sous-jacente de la collection de feuilles de style associée au document. En particulier, la feuille de style retirée n'intervient plus dans la présentation du document.
XML et création de feuille de style
On peut créer une nouvelle feuille de style et l'associer à un document XML en créant une instruction de traitement avec un attribut target valant 'xml-stylesheet' [XML-StyleSheet] et en l'insérant dans le document.
XML et retrait de feuille de style
Le retrait d'une instruction de traitement avec un attribut target valant 'xml-stylesheet' [XML-StyleSheet] entraîne celui de la feuille de style sous-jacente de la collection de feuilles de style associée au document. En particulier, la feuille de style retirée n'intervient plus dans la présentation du document.