Border-image - Propriété CSS

border-image

Résumé des caractéristiques de la propriété border-image

Description rapide
Résumé des propriétés des bordures réalisées avec des images.
Statut
Standard
Utilisable sur
HTML
Pourcentages
Ne s'appliquent pas.
Valeur initiale
Voir les propriétés individuelles.
Héritée par défaut
Non.
Voir les propriétés individuelles.
Module W3C
Module CSS - Arrière-plans et bordures
Statut du document: CR (document candidat à la recommandation)

Description de la propriété border-image.

border-image est une propriété résumée, qui permet de définir en une seule règle, les valeurs de toutes les propriétés relatives aux bordures-image :

Définit le chemin et le nom de fichier pour l'image utilisée pour construire la bordure.
Définit comment l'image de bordure est découpée.
Définit l'épaisseur de la bordure lorsque cette dernière est réalisée avec une image.
Définit le débordement de l'image de bordure.
Définit comment l'image de bordure est répétée ou dilatée pour couvrir la zone voulue.

Ces propriétés permettent de créer une bordure à partir d'une image. Autrement dit de remplacer le style de trait prédéfini (double, pointillé, etc) par une image. Les possibilités de création sont infinies.

L'image qui servira à construire la bordure sera divisée en 9 parties : une pour chacun des quatre coins, pour chacun des quatre bords et une pour le centre. La propriété border-image-slice définit comment l'image doit être découpée. Les neuf parties ne sont pas forcément de dimensions identiques.

Découpage d'une image pour la propriété CSS border-image

border-image-slice permet également de décider si la partie numéro 5 sera appliquée au fond de l'élément. Dans le cas contraire, le fond de l'élément reste transparent.

Après ce découpage, les parties d'image sont redimensionnées par border-image pour correspondre à l'épaisseur de la bordure. Elles peuvent ensuite être répétées ou étirées jusqu'à couvrir toute la longueur de la bordure : voir border-image-repeat.

Chacune des valeurs attribuées à border-image peut être différenciée pour les quatre côtés, sauf en ce qui concerne la source. Dans ce cas les règles habituelles du CSS s'appliquent :

border-image avec une seule valeur indiquée
Une seule valeur indiquée : elle s'applique aux quatre côtés de l'élément.
border-image avec deux valeurs indiquées
Deux valeurs indiquées : la première s'applique aux côtés haut et bas, la deuxième aux côtés gauche et droit.
border-image avec trois valeurs indiquées
Trois valeurs indiquées : elles s'appliquent conformément au schéma ci-dessus : la deuxième valeur s'applique aux côtés gauche et droit.
border-image avec quatre valeurs indiquées
Quatre valeurs indiquées : elles s'appliquent chacune à un des côtés de l'élément, en commençant par le bord du haut et en tournant dans le sens des aiguilles d'une montre.

Les bordures-images ne suivent pas les arrondis d'angle. La propriété border-radius est donc inopérante avec une bordure-image.

Si, sur un même élément, une bordure image ET une bordure classique sont définies, les règles de priorité du CSS définissent laquelle de ces deux bordures sera affichée. Les navigateurs ne sont pas censé superposer les deux bordures. Voir le tutoriel sur Les priorités.

Exemples de syntaxes.

  • border-image: source  slice / width / outset  repeat;

    Ceci est la syntaxe générale de border-image :
    Les informations doivent être énumérées dans cet ordre mais les trois premières seulement sont obligatoires.
    On voit que l'épaisseur de la bordure (width) et le décalage vers l'extérieur (outset) sont introduits par un caractère slash ( / ).

  • border-image: url('...') 200 / 15px;

    Cette syntaxe définit l'image à utiliser, la valeur à utiliser pour son découpage (200 pixels), et l'épaisseur de la bordure (15px).

  • border-image: url('...') 200 / 15px / 10px;

    Cette syntaxe définit l'image à utiliser, la valeur à utiliser pour son découpage, l'épaisseur de la bordure (après le premier / ), et enfin le décalage extérieur (après le deuxième / ).

  • border-image: url('...') 20 15 30 12 / 15px 20px;

    Bien entendu toutes ces valeurs peuvent être différentes pour chacun des côtés.
    La syntaxe ci-dessus définit quatre valeurs pour découper l'image, et deux épaisseurs de bordure.

  • border-image: initial; border-image: inherit; border-image: revert; border-image: revertLayer; border-image: unset;

    Les valeurs communes sont présentées sur ces pages : initial, inherit, revert, revert-layer, unset.

Exemples.

Voici les images utilisées pour les exemples ci-dessous :

Propriété CSS Border-image

border-image-1.png
45 x 45 pixels
Propriété CSS Border-image
border-image-2.png
600 x 600 pixels
Propriété CSS Border-image
border-image-3.png
172 x 164 pixels
Simple utilisation d'une bordure image.
 
Dans ce deuxième exemple, la valeur fill a été ajoutée à border-image-slice. l'arrière-plan de l'élément est donc rempli avec la partie centrale de l'image de bordure.

Ce troisième exemple montre une bordure qui se prête mieux à une répétition du motif plutôt qu'à son étirement (voir border-image-repeat).

Prise en charge par les navigateurs.

La possibilité d'utiliser une image pour construire une bordure est maintenant bien prise en charge par les navigateurs. Les propriétés qui définissent cette bordure sont également bien reconnues.

Colonne 1
Possibilité d'utiliser des images pour construire des bordures et, donc, support de la propriété border-image.

Remarques :

(1) Supporte la propriété résumé mais pas les propriétés détaillées.

1
Utilisation d'images
pour des bordures
Estimation de la prise en charge globale.
97%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Chrome

Edge

Opéra

Safari

Safari sur IOS

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

Samsung Internet

Firefox

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Histoire de la propriété border-image.

  • Module CSS - Arrière-plans et bordures - Niveau 3

    Concernant border-image. Introduction de la propriété résumé border-image pour définir les caractéristiques des nouvelles bordures réalisées avec des images.
    WD
    02 Août 2002
    Document de travail.
    CR
    17 Décembre 2009
    Candidat à la recommandation.
    PR
    REC

Voir aussi, au sujet des bordures.

La spécification du W3C "module CSS - Arrière-plans et bordures" regroupe tout ce qui concerne les bordures et les arrière-plans. La propriété border-image est décrite dans cette norme, avec les suivantes :

Propriétés :

background
Résumé des propriétés de l'arrière-plan.
background-attachment
Mode de défilement de l'image d'arrière-plan.
background-clip
Définit l'étendue de l'arrière-plan, en particulier par rapport à la bordure et aux marges intérieures..
background-color
Définit la couleur en arrière-plan.
background-image
Définit l'image ou dégradé d'arrière-plan (plusieurs images ou dégradés peuvent coexister).
background-origin
Définit une référence pour positionner l'image d'arrière-plan.
background-position
Définit comment se positionne l'image d'arrière-plan.
background-position-x
Définit comment se positionne l'image d'arrière-plan dans le sens horizontal.
background-position-y
Définit comment se positionne l'image d'arrière-plan dans le sens vertical.
background-repeat
Définit comment est répétée l'image d'arrière-plan.
background-size
Dimensionnement de l'image d'arrière-plan.
border
Propriété résumée qui définit l'ensemble des paramètres des bordures : épaisseur, style et couleur.
border-bottom-color
Définit la couleur du trait de bordure pour le bas de l'élément.
border-bottom-left-radius
Définit le rayon de l'angle arrondi en bas à gauche.
border-bottom-right-radius
Définit le rayon de l'angle arrondi en bas à droite.
border-bottom-style
Définit le style de trait pour la bordure en dessous de l'élément.
border-bottom-width
Définit l'épaisseur du trait de bordure situé en dessous de l'élément.
border-color
Définit la couleur des bordures pour les 4 cotés de l'élément.
Border-image
Résumé des propriétés des bordures réalisées avec des images.
border-image-outset
Définit le débordement de l'image de bordure.
border-image-repeat
Définit comment l'image de bordure est répétée ou dilatée pour couvrir la zone voulue.
border-image-slice
Définit comment l'image de bordure est découpée.
border-image-source
Définit le chemin et le nom de fichier pour l'image utilisée pour construire la bordure.
border-image-width
Définit l'épaisseur de la bordure lorsque cette dernière est réalisée avec une image.
border-left-color
Définit la couleur du trait de bordure à gauche de l'élément.
border-left-style
Définit le type de trait pour la bordure sur la gauche de l'élément.
border-left-width
Définit l'épaisseur du trait de bordure situé à gauche de l'élément.
border-radius
Rayon des angles arrondis.
border-right-color
Définit la couleur du trait de bordure à droite de l'élément.
border-right-style
Définit le type de trait pour la bordure à droite de l'élément.
border-right-width
Définit l'épaisseur du trait de bordure situé à droite de l'élément.
border-style
Définit le type de trait pour les quatre bordures autour de l'élément (solide, double, pointillé...).
border-top-color
Définit la couleur du trait de la bordure au dessus de l'élément.
border-top-left-radius
Définit le rayon de l'angle arrondi en haut à gauche.
border-top-right-radius
Définit le rayon de l'angle arrondi en haut à droite.
border-top-style
Définit le type de trait pour la bordure à gauche de l'élément.
border-top-width
Définit l'épaisseur du trait de bordure au dessus de l'élément.
border-width
Définit l'épaisseur du trait de la bordure situé tout autour de l'élément.
box-shadow
Applique un effet d'ombrage sur les blocs en indiquant tous les paramètres : couleur, décalage de l'ombre, flou, etc.