Geckozone est un Club Unesco

Aperçu de propriétés CSS3 avec le moteur de rendu Gecko

Profil(s) : Webmestre Développeur
Date : 25 juillet 2006
Auteur : Thomas

Cet article va vous permettre de découvrir quelques unes des propriétés CSS3 que le moteur de rendu Gecko 1.8 - qui est utilisé, entre autres, par Firefox 1.5 et 2.0 - implémente déjà.

Cet article comporte de nombreux termes techniques. Vous devez posséder de solides bases en CSS : bien connaître les différents modèles de boîtes ainsi que les différents termes regroupés dans le glossaire situé plus bas dans l’article. Si vous avez du mal à comprendre le modèle de boîtes, vous pouvez jeter un œil à cette représentation en 3D.

Voici la traduction des termes anglais ↔ français utilisés dans cet article (basée sur la traduction française de la recommandation CSS2.0) :

Anglais Français
border bordure
padding espacement
margin marge
background arrière-plan
outline contours
child enfant
box boîte

Avant de s’attaquer au vif du sujet, il est important de rappeler que pour l’instant, ces propriétés sont spécifiques aux navigateurs de la fondation Mozilla (et tout autre navigateur basé sur Gecko). La mise à disposition de ses propriétés dans Gecko alors que la documentation sur CSS3 n’est pas encore achevée permet justement de vérifier l’implémentatibilité des travaux du W3C. Notons au passage que ces propriétés sont intitulées « -moz-nom-propriete », conformément aux règles en vigueur, de façon à ne pas faire croire à une instruction standardisée alors que la spécification n’est pas encore publique. Il aurait été risqué d’implémenter les propriétés directement par leur vrai nom car il est possible qu’il change d’ici la publication finale des spécifications CSS3.

-moz-background-clip

Indique si l’arrière-plan, que ce soit une couleur ou une image, doit s’étendre sous la bordure de l’élément ou pas. Cette propriété est similaire à la propriété CSS3 background-clip.

- border (défaut) : l’arrière-plan s’étend sous la bordure de l’élément.
- padding : l’arrière-plan s’étend jusqu’à la bordure.

Code :

<div id="test1_mozilla">&nbsp;</div>
<style type="text/css">
   #test1_mozilla {
       height: 50px;
       width: 50px;
       border: dotted #000 10px;
       background: #EEE;
       -moz-background-clip: border;
   }
</style>

Code :

<div id="test2_mozilla">&nbsp;</div>
<style type="text/css">
   #test2_mozilla {
       height: 50px;
       width: 50px;
       border: dotted #000 10px;
       background: #EEE;
       -moz-background-clip: padding;
   }
</style>

Voir le résultat.

-moz-background-origin

Indique à partir de quoi doit se positionner l’arrière-plan. Cette propriété est similaire à la propriété CSS background-origin.

- border : La position est relative à la bordure.
- content : La position est relative au contenu.
- padding (defaut) : La position est relative à l’espacement.

Code :

<div id="test3_mozilla">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin facilisis purus ac ante. Curabitur eleifend arcu a felis. Aenean convallis sapien. Fusce leo. In eget diam. Vivamus semper tempor sem. In hac habitasse platea dictumst. Ut dictum vulputate neque. Nam at dui. Nullam lobortis scelerisque purus. Nunc purus felis, volutpat eget, hendrerit ut, facilisis sodales, risus. Donec laoreet euismod turpis. Aenean convallis arcu vitae justo. Morbi lectus dui, auctor lobortis, mattis in, lacinia ut, sem. Proin varius diam lobortis purus. Nulla felis turpis, fermentum id, iaculis pretium, ornare non, odio. Vivamus eleifend. Pellentesque lacinia sollicitudin urna.</div>
<style type="text/css">
   #test3_mozilla {
       border: solid #000 10px;
       padding: 30px;
       background: url("redpanda.jpg");
       -moz-background-origin: border;
   }
</style>

Code :

<div id="test4_mozilla">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin facilisis purus ac ante. Curabitur eleifend arcu a felis. Aenean convallis sapien. Fusce leo. In eget diam. Vivamus semper tempor sem. In hac habitasse platea dictumst. Ut dictum vulputate neque. Nam at dui. Nullam lobortis scelerisque purus. Nunc purus felis, volutpat eget, hendrerit ut, facilisis sodales, risus. Donec laoreet euismod turpis. Aenean convallis arcu vitae justo. Morbi lectus dui, auctor lobortis, mattis in, lacinia ut, sem. Proin varius diam lobortis purus. Nulla felis turpis, fermentum id, iaculis pretium, ornare non, odio. Vivamus eleifend. Pellentesque lacinia sollicitudin urna.</div>
<style type="text/css">
   #test4_mozilla {
       border: solid #000 10px;
       padding: 30px;
       background: url("redpanda.jpg");
       -moz-background-origin: content;
   }
</style>

Code :

<div id="test5_mozilla">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin facilisis purus ac ante. Curabitur eleifend arcu a felis. Aenean convallis sapien. Fusce leo. In eget diam. Vivamus semper tempor sem. In hac habitasse platea dictumst. Ut dictum vulputate neque. Nam at dui. Nullam lobortis scelerisque purus. Nunc purus felis, volutpat eget, hendrerit ut, facilisis sodales, risus. Donec laoreet euismod turpis. Aenean convallis arcu vitae justo. Morbi lectus dui, auctor lobortis, mattis in, lacinia ut, sem. Proin varius diam lobortis purus. Nulla felis turpis, fermentum id, iaculis pretium, ornare non, odio. Vivamus eleifend. Pellentesque lacinia sollicitudin urna.</div>
<style type="text/css">
   #test5_mozilla {
       border: solid #000 10px;
       padding: 30px;
       background: url("redpanda.jpg");
       -moz-background-origin: padding;
   }
</style>

Voir le résultat.

-moz-border-radius

Cette propriété permet d’arrondir les angles des boîtes. La valeur doit être une valeur numérique indiquant le degré de l’arrondi. Vous devez utiliser une unité (habituellement en pixels). Une valeur élevée rend la bordure ronde. Cf. la recommandation du W3C sur border-radius

-moz-border-radius-bottomleft

Définit l’arrondi de l’angle en bas à gauche de la bordure.

-moz-border-radius-bottomright

Définit l’arrondi de l’angle en bas à droite de la bordure.

-moz-border-radius-topleft

Définit l’arrondi de l’angle en haut à gauche de la bordure.

-moz-border-radius-topright

Définit l’arrondi de l’angle en haut à droite de la bordure.

Code :

<div id="test6_mozilla">&nbsp;</div>
<style type="text/css">
   #test6_mozilla {
       height: 50px;
       width: 50px;
       border: solid #000 1px;
       -moz-border-radius-topleft: 40px;
       -moz-border-radius-topright: 5px;
       -moz-border-radius-bottomleft 0px;
       -moz-border-radius-bottomright: 0px;
   }
</style>

Code :

<div id="test7_mozilla">&nbsp;</div>
<style type="text/css">
   #test7_mozilla {
       height: 50px;
       width: 50px;
       border: solid #000 1px;
       -moz-border-radius: 100px;
   }
</style>

Voir le résultat.

-moz-column-***

Ces propriétés permettent de controller l’affichage du texte sous forme de colonnes. Deux propriétés CSS contrôlent la présence et le nombre de colonnes qui seront affichées : -moz-column-count et -moz-column-width. -moz-column-gap gère l’espace entre les colonnes, qui est relativement faible par défaut.

Je vous conseille de lire la documentation, traduite en français, sur DevMo.

Code :

<div id="test8_mozilla">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin quis magna vitae sem venenatis posuere. Proin id turpis a justo mollis convallis. Integer laoreet tortor nec est. Maecenas condimentum orci eget lacus. Suspendisse eu quam non massa facilisis porta. Pellentesque quis massa et quam accumsan ornare. Integer erat ipsum, venenatis eu, condimentum eget, dictum at, turpis.</div>
<style type="text/css">
   #test8_mozilla {
       -moz-column-count:2;
       -moz-column-gap:2em;
   }
</style>

Voir le résultat.

-moz-outline

Cette propriété permet d’afficher le contour d’un élément.

Si vous cherchez des d’informations plus précise lisez la recommandation CSS sur outline. Note : je ne sais pas si Mozilla supporte toutes les valeurs telles que décritent dans la recommandation, c’est pour cela que la propriété est encore de la forme ’’-moz-*’’ alors que c’est une propriété CSS2.

On notera que :

Parfois, les auteurs de feuilles de style peuvent souhaiter créer des contours autour d’objets visuels, comme les boutons, les champs actifs des formulaires, les images découpées, etc., pour les faire ressortir. Les contours CSS2 diffèrent des bordures ainsi :

- 1. Les contours n’occupent pas d’espace ;
- 2. Les contours peuvent avoir une forme non rectangulaire.

le contour est le même pour tous les côtés, à l’inverse des bordures, il n’existe pas de propriétés ’outline-top’ ou ’outline-left’.

Cas pratique :

<div id="test9_mozilla"><input type="text" class="bordure" value="bordure" /><br/><input type="text" class="contour" value="contour" /></div>
<style type="text/css">
        #test9_mozilla .bordure:hover { border: 4px solid black }
        #test9_mozilla .contour:hover { -moz-outline: 4px solid black }
</style>

Voir le résultat.

-moz-outline-color

Indique la couleur du contour. Similaire à border-color.

-moz-outline-radius

Cette propriété permet d’arrondir les contours des boîtes. Similaire à -moz-border-radius.

-moz-outline-radius-bottomleft

Définit l’arrondi de l’angle en bas à gauche du contour.

-moz-outline-radius-bottomright

Définit l’arrondi de l’angle en bas à droite du contour.

-moz-outline-radius-topleft

Définit l’arrondi de l’angle en haut à gauche du contour.

-moz-outline-radius-topright

Définit l’arrondi de l’angle en haut à droite de l’outline.

-moz-outline-style

Indique le style du contour. Similaire à border-style.

-moz-outline-width

Indique la largeur du contour. Similaire à border-width.

Conclusion

Il est important de rappeler à nouveau que ces propriétés ne doivent pas être utilisées sur des sites professionnels, on ne doit pas compter dessus, et encore moins compter avec les bugs qui y sont déjà associés. Ces propriétés ne sont là que pour vérifier l’implémentatibilité des travaux du W3C ! Il ne faut en aucun cas que la navigation sur votre site soit gênée si vos visiteurs utilisent un navigateur qui ne supporte pas ces propriétés, sans quoi on retomberait dans une guerre de fonctionnalités spécifiques à chaque navigateur...

Documents joints

Exemples (Exemples)
 

Articles dans la même rubrique

Commentaires

(Si vous recherchez de l'aide pour l'utilisation d'un produit, veuillez utiliser les forums de Geckozone. Les commentaires concernent uniquement l'article. Merci.)

Afficher les commentaires (7) Ajouter un commentaire
Un message, un commentaire ?

(Pour créer des paragraphes, laissez simplement des lignes vides.)

Lien hypertexte (optionnel)

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d'informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Qui êtes-vous ? (optionnel)