From 149319bb8c7b1394a443f0877c3460cd362aa815 Mon Sep 17 00:00:00 2001
From: julieng Les noms des propriétés qui sont préfixés par deux tirets : La portée des propriétés personnalisées est celle des éléments sur lesquels elles sont déclarées. Ces personnalisées contribuent à la cascade : la valeur utilisée d'une propriété personnalisée sera déterminée par l'algorithme de la cascade. {{cssinfo}} {{EmbedLiveSample('Exemples', 500, 100)}} {{Compat("css.properties.custom-property")}} Les noms des propriétés qui sont préfixés par deux tirets : La portée des propriétés personnalisées est celle des éléments sur lesquels elles sont déclarées. Ces personnalisées contribuent à la cascade : la valeur utilisée d'une propriété personnalisée sera déterminée par l'algorithme de la cascade. {{cssinfo}} {{EmbedLiveSample('Exemples', 500, 100)}} {{Compat("css.properties.custom-property")}} Si on intègre une image SVG dans une page web grâce à un élément remplacé (généralement l'élément {{htmlelement("img")}}), il est possible d'appliquer les propriétés de l'élément Dans cet exemple, on embarque un SVG simple dans un élément Tout d'abord, on définit les propriétés qu'on souhaite appliquer au SVG grâce à la propriété {{cssxref("-moz-context-properties")}}. Par exemple : Une fois que c'est fait, on peut utiliser les valeurs {{cssxref("fill")}} et {{cssxref("stroke")}} dans le SVG. Par exemple : Ici, l'attribut Note : vous pouvez consulter un exemple complet sur notre dépôt Github. Cette propriété n'est définie dans aucun standard CSS. {{cssinfo}} {{Compat("css.properties.-moz-context-properties")}} Si on intègre une image SVG dans une page web grâce à un élément remplacé (généralement l'élément {{htmlelement("img")}}), il est possible d'appliquer les propriétés de l'élément Dans cet exemple, on embarque un SVG simple dans un élément Tout d'abord, on définit les propriétés qu'on souhaite appliquer au SVG grâce à la propriété {{cssxref("-moz-context-properties")}}. Par exemple : Une fois que c'est fait, on peut utiliser les valeurs {{cssxref("fill")}} et {{cssxref("stroke")}} dans le SVG. Par exemple : Ici, l'attribut Note : vous pouvez consulter un exemple complet sur notre dépôt Github. Cette propriété n'est définie dans aucun standard CSS. {{cssinfo}} {{Compat("css.properties.-moz-context-properties")}} La propriété {{EmbedLiveSample('Exemples')}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{cssinfo}} La propriété {{EmbedLiveSample('Exemples')}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{cssinfo}} La propriété Note : Même si la valeur est {{EmbedLiveSample('Exemples','125','125','/files/4619/broken%20image%20link.png')}} Note : Si Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} La propriété Note : Même si la valeur est {{EmbedLiveSample('Exemples','125','125','/files/4619/broken%20image%20link.png')}} Note : Si Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} La propriété Cette propriété fonctionne de façon analogue à {{cssxref("-moz-image-region")}} qui peut être utilisée pour déterminer la partie d'une image utilisée pour {{cssxref("list-style-image")}} qui met en forme les puces d'une liste. Grâce à La syntaxe de cette propriété est similaire à la fonction Dans cet exemple, on charge une image qu'on découpe en quatre zones pour dessiner le logo Firefox dans quatre éléments {{HTMLElement("div")}}. Lorsqu'on clique sur le conteneur, cela fait tourner les images entre les blocs. Dans ce script, on utilise la méthode {{domxref("window.getComputedStyle()")}} afin de récupérer le style de chaque élément et on le décale à l'élément suivant. On notera qu'avant de commencer ce « défilement », on sauvegarde une version du style de la dernière boîte. En copiant simplement les valeurs de {{cssxref("background-image")}} d'un élément à l'autre lors du clic, on obtient l'effet souhaité. {{EmbedLiveSample("Exemples","400","400")}} {{Compat("css.types.-moz-image-rect")}} La propriété Cette propriété fonctionne de façon analogue à {{cssxref("-moz-image-region")}} qui peut être utilisée pour déterminer la partie d'une image utilisée pour {{cssxref("list-style-image")}} qui met en forme les puces d'une liste. Grâce à La syntaxe de cette propriété est similaire à la fonction Dans cet exemple, on charge une image qu'on découpe en quatre zones pour dessiner le logo Firefox dans quatre éléments {{HTMLElement("div")}}. Lorsqu'on clique sur le conteneur, cela fait tourner les images entre les blocs. Dans ce script, on utilise la méthode {{domxref("window.getComputedStyle()")}} afin de récupérer le style de chaque élément et on le décale à l'élément suivant. On notera qu'avant de commencer ce « défilement », on sauvegarde une version du style de la dernière boîte. En copiant simplement les valeurs de {{cssxref("background-image")}} d'un élément à l'autre lors du clic, on obtient l'effet souhaité. {{EmbedLiveSample("Exemples","400","400")}} {{Compat("css.types.-moz-image-rect")}} Pour certains éléments XUL et les pseudo-éléments qui utilisent une image grâce à la propriété {{cssxref("list-style-image")}}, la propriété La syntaxe de cette propriété est semblable à la syntaxe de la propriété {{cssxref("clip")}}. Les quatre valeurs sont relatives au coin en haut à gauche de l'image. Note : Pour un système qui fonctionne pour n'importe quel arrière-plan, on pourra utiliser la propriété {{cssxref("-moz-image-rect")}}. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-moz-image-region")}} Pour certains éléments XUL et les pseudo-éléments qui utilisent une image grâce à la propriété {{cssxref("list-style-image")}}, la propriété La syntaxe de cette propriété est semblable à la syntaxe de la propriété {{cssxref("clip")}}. Les quatre valeurs sont relatives au coin en haut à gauche de l'image. Note : Pour un système qui fonctionne pour n'importe quel arrière-plan, on pourra utiliser la propriété {{cssxref("-moz-image-rect")}}. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-moz-image-region")}} La propriété La propriété {{EmbedLiveSample("Exemples","200","360")}} Bien que proposée au W3C, cette propriété ne fait partie d'aucune spécification standard. C'est donc une propriété propriétaire liée à Mozilla/Gecko. {{cssinfo}} {{Compat("css.properties.-moz-orient")}} La propriété La propriété {{EmbedLiveSample("Exemples","200","360")}} Bien que proposée au W3C, cette propriété ne fait partie d'aucune spécification standard. C'est donc une propriété propriétaire liée à Mozilla/Gecko. {{cssinfo}} {{Compat("css.properties.-moz-orient")}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Exemples")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Exemples")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Example")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Example")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Exemples")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Exemples")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Exemples")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla, la propriété {{EmbedLiveSample("Exemples")}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} Dans les applications Mozilla (ex. Firefox), la propriété La propriété Note : Les valeurs pour les coefficients elliptiques et les valeurs de type Une, deux, trois ou quatre valeurs {{EmbedLiveSample('Exemples', '200', '200')}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-moz-outline-radius")}} Dans les applications Mozilla (ex. Firefox), la propriété La propriété Note : Les valeurs pour les coefficients elliptiques et les valeurs de type Une, deux, trois ou quatre valeurs {{EmbedLiveSample('Exemples', '200', '200')}} Note : Cette propriété étant spécifique à Firefox, l'exemple ci-avant ne fonctionnera pas dans un autre navigateur. Cette propriété est une propriété propriétaire liée à Mozilla/Gecko et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-moz-outline-radius")}} La propriété En utilisant la valeur Note : Cette propriété ne fonctionne pas pour les éléments XUL {{XULElem("textbox")}} car l'élément Cette propriété est une propriété propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. Une propriété similaire : {{cssinfo}} {{Compat("css.properties.-moz-user-focus")}} La propriété En utilisant la valeur Note : Cette propriété ne fonctionne pas pour les éléments XUL {{XULElem("textbox")}} car l'élément Cette propriété est une propriété propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. Une propriété similaire : {{cssinfo}} {{Compat("css.properties.-moz-user-focus")}} Pour les applications Mozilla, la propriété Pour les éléments qui acceptent la saisie par défaut (ex. les élémetns {{HTMLElement("textarea")}}), la valeur initiale de Cette propriété est une propriété propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. Une propriété similaire : {{cssinfo}} {{Compat("css.properties.-moz-user-input")}} Pour les applications Mozilla, la propriété Pour les éléments qui acceptent la saisie par défaut (ex. les élémetns {{HTMLElement("textarea")}}), la valeur initiale de Cette propriété est une propriété propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. Une propriété similaire : {{cssinfo}} {{Compat("css.properties.-moz-user-input")}} La propriété Cette propriété est à mettre en relation avec les propriétés {{cssxref("-webkit-border-after")}}, {{cssxref("-webkit-border-start")}}, et {{cssxref("-webkit-border-end")}} qui définissent les autres bordures de l'élément. L'équivalent standard de cette propriété est la propriété non-préfixée {{cssxref("border-block-start")}}. Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Toutefois, on peut la rapprocher de la propriété standard {{cssxref("border-block-start")}}. {{cssinfo}} {{Compat("css.properties.-webkit-border-before")}} La propriété Cette propriété est à mettre en relation avec les propriétés {{cssxref("-webkit-border-after")}}, {{cssxref("-webkit-border-start")}}, et {{cssxref("-webkit-border-end")}} qui définissent les autres bordures de l'élément. L'équivalent standard de cette propriété est la propriété non-préfixée {{cssxref("border-block-start")}}. Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Toutefois, on peut la rapprocher de la propriété standard {{cssxref("border-block-start")}}. {{cssinfo}} {{Compat("css.properties.-webkit-border-before")}} La propriété Attention : Cette fonctionnalité ne doit pas être utilisée sur le Web. Pour créer des effets de reflet sur le Web, on pourra utiliser la fonction CSS standard {{cssxref("element()", "element()")}}. Cette propriété n'est pas en voie de standardisation et ne fera pas partie de CSS. Pour créer des reflets en CSS, on pourra utiliser la fonction standard {{cssxref("element()", "element()")}}. {{cssinfo}} {{Compat("css.properties.-webkit-box-reflect")}} La propriété Attention : Cette fonctionnalité ne doit pas être utilisée sur le Web. Pour créer des effets de reflet sur le Web, on pourra utiliser la fonction CSS standard {{cssxref("element()", "element()")}}. Cette propriété n'est pas en voie de standardisation et ne fera pas partie de CSS. Pour créer des reflets en CSS, on pourra utiliser la fonction standard {{cssxref("element()", "element()")}}. {{cssinfo}} {{Compat("css.properties.-webkit-box-reflect")}} La propriété CSS Cette propriété fonctionne uniquement si {{cssxref("display")}} vaut Dans la plupart des cas, on utilisera également {{cssxref("overflow")}} avec la valeur Lorsqu'on applique ce style à une ancre, la troncature pourra intervenir au milieu du texte (et pas nécessairement à la fin). Note : Au départ, cette propriété était implémentée dans WebKit avec quelques problèmes. Elle a été standardisée à des fins de support pour les sites historiques. Le module de spécification CSS Overflow Module Level 3 définit également une propriété {{cssxref("line-clamp")}} qui doit remplacer {{EmbedLiveSample("Exemples", "100%", "100")}} {{cssinfo}} {{Compat("css.properties.-webkit-line-clamp")}} La propriété CSS Cette propriété fonctionne uniquement si {{cssxref("display")}} vaut Dans la plupart des cas, on utilisera également {{cssxref("overflow")}} avec la valeur Lorsqu'on applique ce style à une ancre, la troncature pourra intervenir au milieu du texte (et pas nécessairement à la fin). Note : Au départ, cette propriété était implémentée dans WebKit avec quelques problèmes. Elle a été standardisée à des fins de support pour les sites historiques. Le module de spécification CSS Overflow Module Level 3 définit également une propriété {{cssxref("line-clamp")}} qui doit remplacer {{EmbedLiveSample("Exemples", "100%", "100")}} {{cssinfo}} {{Compat("css.properties.-webkit-line-clamp")}} Si la propriété {{cssxref("-webkit-mask-image")}} est définie, Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-attachment")}} Si la propriété {{cssxref("-webkit-mask-image")}} est définie, Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-attachment")}} La propriété Où : Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.properties.-webkit-mask-box-image")}} La propriété Où : Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.properties.-webkit-mask-box-image")}} La propriété Note : La propriété {{cssxref("mask-composite")}} couvre certains aspects de cette propriété non-standard avec des mots-clés différents. Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-composite")}} La propriété Note : La propriété {{cssxref("mask-composite")}} couvre certains aspects de cette propriété non-standard avec des mots-clés différents. Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-composite")}} La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-position-x")}} La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-position-x")}} La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-position-y")}} La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{cssinfo}} {{Compat("css.properties.-webkit-mask-position-y")}} La propriété On peut définir un style de répétition ( Chaque image aura la valeur associée, dans le même ordre. {{cssinfo}} {{Compat("css.properties.-webkit-mask-repeat-x")}} La propriété On peut définir un style de répétition ( Chaque image aura la valeur associée, dans le même ordre. {{cssinfo}} {{Compat("css.properties.-webkit-mask-repeat-x")}} La propriété On peut définir un style de répétition ( Chaque image aura la valeur associée, dans le même ordre. {{cssinfo}} {{Compat("css.properties.-webkit-mask-repeat-y")}} La propriété On peut définir un style de répétition ( Chaque image aura la valeur associée, dans le même ordre. {{cssinfo}} {{Compat("css.properties.-webkit-mask-repeat-y")}} La propriété {{EmbedLiveSample('Exemples')}} Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Elle est documentée dans la référence CSS de Safari. {{cssinfo}} {{Compat("css.properties.-webkit-overflow-scrolling")}} La propriété {{EmbedLiveSample('Exemples')}} Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Elle est documentée dans la référence CSS de Safari. {{cssinfo}} {{Compat("css.properties.-webkit-overflow-scrolling")}} La propriété La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Il existe une proposition sur le wiki du groupe de travail CSS pour standardiser cette propriété. {{Compat("css.properties.-webkit-print-color-adjust")}} La propriété La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Il existe une proposition sur le wiki du groupe de travail CSS pour standardiser cette propriété. {{Compat("css.properties.-webkit-print-color-adjust")}} La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Apple décrit cette propriété dans le guide Safari pour le contenu web. {{cssinfo}} Cette propriété est prise en charge par WebKit/Safari, Blink/Chrome ainsi que par certaines versions d'Internet Explorer et Microsoft Edge. La propriété Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Apple décrit cette propriété dans le guide Safari pour le contenu web. {{cssinfo}} Cette propriété est prise en charge par WebKit/Safari, Blink/Chrome ainsi que par certaines versions d'Internet Explorer et Microsoft Edge. La propriété {{EmbedLiveSample("Example", "380px", "60px")}} {{cssinfo}} {{Compat("css.properties.-webkit-text-fill-color")}} La propriété {{EmbedLiveSample("Example", "380px", "60px")}} {{cssinfo}} {{Compat("css.properties.-webkit-text-fill-color")}} En utilisant un navigateur qui prend en charge cette propriété et en saisissant des caractères dans le champs, vous pourrez les voir remplacées par des carrés. {{EmbedLiveSample("Example")}} Cette propriété WebKit est spécifique à ce moteur et ne fait partie d'aucune spécification. Cette propriété est prise en charge par les navigateurs basés sur WebKit ou Blink. En utilisant un navigateur qui prend en charge cette propriété et en saisissant des caractères dans le champs, vous pourrez les voir remplacées par des carrés. {{EmbedLiveSample("Example")}} Cette propriété WebKit est spécifique à ce moteur et ne fait partie d'aucune spécification. Cette propriété est prise en charge par les navigateurs basés sur WebKit ou Blink. La propriété {{cssinfo}} {{EmbedLiveSample("Exemples", "500px", "100px")}} {{Compat("css.properties.-webkit-text-stroke-color")}} La propriété {{cssinfo}} {{EmbedLiveSample("Exemples", "500px", "100px")}} {{Compat("css.properties.-webkit-text-stroke-color")}} La propriété {{cssinfo}} {{EmbedLiveSample("Exemples", "450px", "230px")}} {{Compat("css.properties.-webkit-text-stroke-width")}} La propriété {{cssinfo}} {{EmbedLiveSample("Exemples", "450px", "230px")}} {{Compat("css.properties.-webkit-text-stroke-width")}} La propriété {{EmbedLiveSample("Exemples", 600, 60)}} {{cssinfo}} {{Compat("css.properties.-webkit-text-stroke")}} La propriété {{EmbedLiveSample("Exemples", 600, 60)}} {{cssinfo}} {{Compat("css.properties.-webkit-text-stroke")}} La propriété Lorsqu'un élément est touché et que la pression est maintenue sur iOS, Safari affiche une bulle d'informations à propos du lien. Cette propriété permet de désactiver ce fonctionnement. Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Elle est décrite dans la référence CSS de Safari. {{Compat("css.properties.-webkit-touch-callout")}} La propriété Lorsqu'un élément est touché et que la pression est maintenue sur iOS, Safari affiche une bulle d'informations à propos du lien. Cette propriété permet de désactiver ce fonctionnement. Cette propriété est une propriété propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. Elle est décrite dans la référence CSS de Safari. {{Compat("css.properties.-webkit-touch-callout")}} La règle @ Cette règle @ s'avère notamment utile lorsqu'on utilise des caractères non-ASCII pour certaines propriétés CSS telles que {{cssxref("content")}}. Le moteur dispose de différentes méthodes pour déterminer l'encodage d'une feuille de style. Il utilisera ces méthodes dans l'ordre qui suit et s'arrêtera dès qu'un résultat sera obtenu (autrement dit, les règles qui suivent sont triées par priorité décroissante) : où {{Compat("css.at-rules.charset")}} La règle @ Cette règle @ s'avère notamment utile lorsqu'on utilise des caractères non-ASCII pour certaines propriétés CSS telles que {{cssxref("content")}}. Le moteur dispose de différentes méthodes pour déterminer l'encodage d'une feuille de style. Il utilisera ces méthodes dans l'ordre qui suit et s'arrêtera dès qu'un résultat sera obtenu (autrement dit, les règles qui suivent sont triées par priorité décroissante) : où {{Compat("css.at-rules.charset")}} Le descripteur Lorsque la valeur du descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.additive-symbols")}} Le descripteur Lorsque la valeur du descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.additive-symbols")}} Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.fallback")}} Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.fallback")}} La règle @ CSS La version initiale de CSS définit un ensemble de compteurs qui peuvent être utilisés pour mettre en forme les listes. Malgré l'ajout de nouveaux styles au fur et à mesure, cette approche s'est retrouvée limitée pour couvrir tous les besoins liés à la typographie. La règle Chaque {{EmbedLiveSample("Exemples")}} Note : Une page d'exemple avec plus de variables est disponible ici : https://mdn.github.io/css-examples/counter-style-demo/. {{Compat("css.at-rules.counter-style")}} La règle @ CSS La version initiale de CSS définit un ensemble de compteurs qui peuvent être utilisés pour mettre en forme les listes. Malgré l'ajout de nouveaux styles au fur et à mesure, cette approche s'est retrouvée limitée pour couvrir tous les besoins liés à la typographie. La règle Chaque {{EmbedLiveSample("Exemples")}} Note : Une page d'exemple avec plus de variables est disponible ici : https://mdn.github.io/css-examples/counter-style-demo/. {{Compat("css.at-rules.counter-style")}} Le descripteur Si la valeur du compteur est négative, le symbole fourni par le descripteur sera utilisé comme préfixe à la représentation du compteur. Un deuxième symbole peut être indiqué et est alors utilisé comme suffixe. Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.negative")}} Le descripteur Si la valeur du compteur est négative, le symbole fourni par le descripteur sera utilisé comme préfixe à la représentation du compteur. Un deuxième symbole peut être indiqué et est alors utilisé comme suffixe. Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.negative")}} Le descripteur Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.pad")}} Le descripteur Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.pad")}} Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.prefix")}} Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.prefix")}} Le descripteur Si Si {{cssinfo}} Résultat {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.counter-style.range")}} Le descripteur Si Si {{cssinfo}} Résultat {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.counter-style.range")}} Le descripteur Ce descripteur pourra prendre les valeurs {{EmbedLiveSample('Exemples')}} La prise en charge de cette fonctionnalité par les outils d'assistance est actuellement très restreinte. Veillez à ne pas reposer sur cette propriété si vous souhaitez transmettre des informations majeures quant au but de la page. {{cssinfo}} {{Compat("css.at-rules.counter-style.speak-as")}} Le descripteur Ce descripteur pourra prendre les valeurs {{EmbedLiveSample('Exemples')}} La prise en charge de cette fonctionnalité par les outils d'assistance est actuellement très restreinte. Veillez à ne pas reposer sur cette propriété si vous souhaitez transmettre des informations majeures quant au but de la page. {{cssinfo}} {{Compat("css.at-rules.counter-style.speak-as")}} Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.suffix")}} Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.suffix")}} Le descripteur Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.symbols")}} Le descripteur Le descripteur {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.symbols")}} La descripteur Si l'algorithme défini dans ce descripteur est incapable de construire la chaîne de caractères pour une valeur donnée, ce sera le système de secours qui sera utilisé ({{cssxref("fallback")}}). Ce descripteur peut prendre l'une de ces trois formes : {{EmbedLiveSample('Utilisation_de_cyclic')}} {{EmbedLiveSample('Utilisation_de_fixed')}} {{EmbedLiveSample('Utilisation_de_symbolic')}} {{EmbedLiveSample('Utilisation_de_alphabetic')}} {{EmbedLiveSample('Utilisation_de_numeric_avec_des_lettres')}} {{EmbedLiveSample("Utilisation_de_numeric_avec_des_chiffres")}} {{EmbedLiveSample('Utilisation_de_additive')}} {{EmbedLiveSample('Combinaison_avec_extends')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.system")}} La descripteur Si l'algorithme défini dans ce descripteur est incapable de construire la chaîne de caractères pour une valeur donnée, ce sera le système de secours qui sera utilisé ({{cssxref("fallback")}}). Ce descripteur peut prendre l'une de ces trois formes : {{EmbedLiveSample('Utilisation_de_cyclic')}} {{EmbedLiveSample('Utilisation_de_fixed')}} {{EmbedLiveSample('Utilisation_de_symbolic')}} {{EmbedLiveSample('Utilisation_de_alphabetic')}} {{EmbedLiveSample('Utilisation_de_numeric_avec_des_lettres')}} {{EmbedLiveSample("Utilisation_de_numeric_avec_des_chiffres")}} {{EmbedLiveSample('Utilisation_de_additive')}} {{EmbedLiveSample('Combinaison_avec_extends')}} {{cssinfo}} {{Compat("css.at-rules.counter-style.system")}} La règle @ CSS Une règle Les valeurs fournies aux fonctions Les valeurs échappées fournies à la fonction Note : Il existe une version préfixée de cette propriété pour Mozilla : Initialement dans {{SpecName('CSS3 Conditional')}}, {{Compat("css.at-rules.document")}} La règle @ CSS Une règle Les valeurs fournies aux fonctions Les valeurs échappées fournies à la fonction Note : Il existe une version préfixée de cette propriété pour Mozilla : Initialement dans {{SpecName('CSS3 Conditional')}}, {{Compat("css.at-rules.document")}} {{CSSRef}} Le descripteur CSS {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} {{CSSRef}} Le descripteur CSS {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} {{CSSRef}} Le descripteur CSS {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} {{CSSRef}} Le descripteur CSS {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} La propriété La gestion d'une fonte de caractères s'effectue selon trois périodes distinctes dont la première commence lorsque l'agent utilisateur tente de télécharger une fonte. {{cssinfo}} {{Compat("css.at-rules.font-face.font-display")}} La propriété La gestion d'une fonte de caractères s'effectue selon trois périodes distinctes dont la première commence lorsque l'agent utilisateur tente de télécharger une fonte. {{cssinfo}} {{Compat("css.at-rules.font-face.font-display")}} Le descripteur {{cssinfo}} {{Compat("css.at-rules.font-face.font-family")}} Le descripteur {{cssinfo}} {{Compat("css.at-rules.font-face.font-family")}} {{CSSRef}}{{draft}} Le descripteur CSS Pour une police donnée, les auteurs peuvent télécharger différentes fontes pour différents styles et utiliser alors {{cssinfo}} Dans les versions antérieures de la spécification pour Pour les polices variables TrueType et OpenType, c'est l'axe de variation Si la police ne dispose pas d'une fonte avec une valeur exactement correspondantes, le moteur choisira la forme la plus proche disponible. Ce tableau indique les correspondances entre les valeurs indiquées par un mot-clé et celles définies avec un pourcentage : La plupart des polices disposent de fontes avec des formes "séparées"/"discrètes". Toutefois, les polices variables permettent désormais d'utiliser des variations beaucoup plus fines (et c'est pour cela qu'on utilise les pourcentages). Pour les polices variables TrueType ou OpenType, c'est l'axe de variation Dans l'exemple suivant, on charge une police Open Sans locale et on l'importe en ciblant les fontes avec les formes normale, semi-condensée et semi-étendue. Les personnes atteintes de dyslexie ou d'autres troubles cognitifs pourront avoir des difficultés à lire des textes dont la fonte est trop condensée, notamment si le contraste des couleurs est trop faible. {{Compat("css.at-rules.font-face.font-stretch")}} {{CSSRef}}{{draft}} Le descripteur CSS Pour une police donnée, les auteurs peuvent télécharger différentes fontes pour différents styles et utiliser alors {{cssinfo}} Dans les versions antérieures de la spécification pour Pour les polices variables TrueType et OpenType, c'est l'axe de variation Si la police ne dispose pas d'une fonte avec une valeur exactement correspondantes, le moteur choisira la forme la plus proche disponible. Ce tableau indique les correspondances entre les valeurs indiquées par un mot-clé et celles définies avec un pourcentage : La plupart des polices disposent de fontes avec des formes "séparées"/"discrètes". Toutefois, les polices variables permettent désormais d'utiliser des variations beaucoup plus fines (et c'est pour cela qu'on utilise les pourcentages). Pour les polices variables TrueType ou OpenType, c'est l'axe de variation Dans l'exemple suivant, on charge une police Open Sans locale et on l'importe en ciblant les fontes avec les formes normale, semi-condensée et semi-étendue. Les personnes atteintes de dyslexie ou d'autres troubles cognitifs pourront avoir des difficultés à lire des textes dont la fonte est trop condensée, notamment si le contraste des couleurs est trop faible. {{Compat("css.at-rules.font-face.font-stretch")}} Le descripteur Pour une police donnée (un ensemble de fontes), les auteurs peuvent télécharger plusieurs fichiers correspondant à la même police mais pour différents styles. Le descripteur Dans les exemples qui suivent, on utilisera les différentes formes liées à la police Garamond : La version en italique du texte utilisera les mêmes glyphes que la version normale, artificiellement penchés de quelques degrés. En revanche, si on dispose d'une vraie version italique, on peut l'indiquer via le descripteur {{cssinfo}} {{Compat("css.at-rules.font-face.font-style")}} Le descripteur Pour une police donnée (un ensemble de fontes), les auteurs peuvent télécharger plusieurs fichiers correspondant à la même police mais pour différents styles. Le descripteur Dans les exemples qui suivent, on utilisera les différentes formes liées à la police Garamond : La version en italique du texte utilisera les mêmes glyphes que la version normale, artificiellement penchés de quelques degrés. En revanche, si on dispose d'une vraie version italique, on peut l'indiquer via le descripteur {{cssinfo}} {{Compat("css.at-rules.font-face.font-style")}} Le descripteur {{cssinfo}} {{Compat("css.at-rules.font-face.font-variation-settings")}} Le descripteur {{cssinfo}} {{Compat("css.at-rules.font-face.font-variation-settings")}} {{CSSRef}} Le descripteur CSS Pour une police particulière, les auteurs peuvent télécharger différentes fontes qui utilisent les différents styles d'une même police et alors utiliser le descripteur {{cssinfo}} Il existe généralement un nombre limité de niveaux de graisse pour une police donnée. Lorsqu'on utilise un niveau de graisse qui n'existe pas, c'est le niveau le plus proche qui est utilisé. Les polices qui ne disposent pas d'une fonte en gras sont généralement synthétisées par l'agent utilisateur (pour empêcher cette synthèse, on pourra utiliser la propriété {{cssxref('font-synthesis')}}). Dans les versions antérieures de la spécification, Avec la spécification CSS Fonts de niveau 4, la syntaxe a été étendue afin que n'importe quel nombre entre 1 and 1000 (au sens large) puisse être utilisé. Les polices variables (voir plus bas) ont aussi été introduites et on peut donc avoir un contrôle plus précis sur le niveau de graisse utilisé. Les valeurs numériques entre La plupart des polices se déclinent en fontes avec des niveaux de graisses distincts. Toutefois, certaines polices, appelées polices variables, permettent d'utiliser des niveaux de graisse intermédiaires plus ou moins finement. On peut ainsi obtenir une fonte d'un niveau de graisse plus précis. Pour les polices variables TrueType ou OpenType, c'est l'axe de variation Dans l'exemple suivant, on récupère une police Open Sans et on l'importe en utilisant le niveau de graisse normal. Pour les personnes ayant une vision faible, il peut être extrêmement difficile de lire un texte avec {{Compat("css.at-rules.font-face.font-weight")}} {{CSSRef}} Le descripteur CSS Pour une police particulière, les auteurs peuvent télécharger différentes fontes qui utilisent les différents styles d'une même police et alors utiliser le descripteur {{cssinfo}} Il existe généralement un nombre limité de niveaux de graisse pour une police donnée. Lorsqu'on utilise un niveau de graisse qui n'existe pas, c'est le niveau le plus proche qui est utilisé. Les polices qui ne disposent pas d'une fonte en gras sont généralement synthétisées par l'agent utilisateur (pour empêcher cette synthèse, on pourra utiliser la propriété {{cssxref('font-synthesis')}}). Dans les versions antérieures de la spécification, Avec la spécification CSS Fonts de niveau 4, la syntaxe a été étendue afin que n'importe quel nombre entre 1 and 1000 (au sens large) puisse être utilisé. Les polices variables (voir plus bas) ont aussi été introduites et on peut donc avoir un contrôle plus précis sur le niveau de graisse utilisé. Les valeurs numériques entre La plupart des polices se déclinent en fontes avec des niveaux de graisses distincts. Toutefois, certaines polices, appelées polices variables, permettent d'utiliser des niveaux de graisse intermédiaires plus ou moins finement. On peut ainsi obtenir une fonte d'un niveau de graisse plus précis. Pour les polices variables TrueType ou OpenType, c'est l'axe de variation Dans l'exemple suivant, on récupère une police Open Sans et on l'importe en utilisant le niveau de graisse normal. Pour les personnes ayant une vision faible, il peut être extrêmement difficile de lire un texte avec {{Compat("css.at-rules.font-face.font-weight")}} La règle @ En permettant aux auteurs de fournir leurs propres polices, il n'est plus nécessaire de dépendre uniquement des polices qui sont installées sur les postes des utilisateurs. Il est courant d'utiliser les deux formes La règle Indique la ressource qui contient les données pour la police d'écriture. Cela peut être une URL vers un fichier distant ou le nom d'une police de caractères présente sur l'ordinateur de l'utilisateur. On peut fournir une indication de format au navigateur (afin que celui-ci sélectionne celui qui lui convient le mieux) sous la forme d'une fonction Les types utilisables sont : {{EmbedLiveSample("Police_distante")}} Ici, l'agent utilisateur tente d'utiliser la police Helvetica Neue Bold ou HelveticaNeue-Bold si elle existe sur l'ordinateur de l'utilisateur. Sinon, il utilise la police distante MgOpenModernaBold.ttf. {{EmbedLiveSample("Police_locale")}} Voici, selon les différents formats de police, les types MIME associés : {{Compat("css.at-rules.font-face")}} La règle @ En permettant aux auteurs de fournir leurs propres polices, il n'est plus nécessaire de dépendre uniquement des polices qui sont installées sur les postes des utilisateurs. Il est courant d'utiliser les deux formes La règle Indique la ressource qui contient les données pour la police d'écriture. Cela peut être une URL vers un fichier distant ou le nom d'une police de caractères présente sur l'ordinateur de l'utilisateur. On peut fournir une indication de format au navigateur (afin que celui-ci sélectionne celui qui lui convient le mieux) sous la forme d'une fonction Les types utilisables sont : {{EmbedLiveSample("Police_distante")}} Ici, l'agent utilisateur tente d'utiliser la police Helvetica Neue Bold ou HelveticaNeue-Bold si elle existe sur l'ordinateur de l'utilisateur. Sinon, il utilise la police distante MgOpenModernaBold.ttf. {{EmbedLiveSample("Police_locale")}} Voici, selon les différents formats de police, les types MIME associés : {{Compat("css.at-rules.font-face")}} {{CSSRef}} Le descripteur CSS {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} {{CSSRef}} Le descripteur CSS {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} {{CSSRef}}{{SeeCompatTable}} Le descripteur CSS Le descripteur Toutes les mesures associées à la police sont mises à l'échelle en utilisant le pourcentage fourni. Cela comprend les glyphes, les tables de hauteur de ligne et surcharge les valeurs fournies par les descripteurs {{cssxref("@font-face")}}. {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} {{CSSRef}}{{SeeCompatTable}} Le descripteur CSS Le descripteur Toutes les mesures associées à la police sont mises à l'échelle en utilisant le pourcentage fourni. Cela comprend les glyphes, les tables de hauteur de ligne et surcharge les valeurs fournies par les descripteurs {{cssxref("@font-face")}}. {{cssinfo}} {{csssyntax}} La propriété {{Specifications}} {{Compat}} Le descripteur Sa valeur est composée d'une liste de noms séparés par des virgules, ordonnés par priorité dont chacun fait référence à une police de caractères externe ou locale. Lorsqu'une police doit être utilisée, l'agent utilisateur parcourt la liste de ces références et utilise la première police qui peut être chargée correctement. Si la police de caractères contient des données invalides ou si le nom ne correspond à aucune police de caractères, l'agent utilisateur passe à la suivante. Là aussi, les URL utilisées peuvent être relatives. Dans le cas où une URL relative est utilisée, elle est résolue grâce à l'emplacement de la feuille de styles qui contient la règle {{cssinfo}} {{Compat("css.at-rules.font-face.src")}} Le descripteur Sa valeur est composée d'une liste de noms séparés par des virgules, ordonnés par priorité dont chacun fait référence à une police de caractères externe ou locale. Lorsqu'une police doit être utilisée, l'agent utilisateur parcourt la liste de ces références et utilise la première police qui peut être chargée correctement. Si la police de caractères contient des données invalides ou si le nom ne correspond à aucune police de caractères, l'agent utilisateur passe à la suivante. Là aussi, les URL utilisées peuvent être relatives. Dans le cas où une URL relative est utilisée, elle est résolue grâce à l'emplacement de la feuille de styles qui contient la règle {{cssinfo}} {{Compat("css.at-rules.font-face.src")}} Le descripteur Le but de ce descripteur est de segmenter les ressources liées aux polices afin que le navigateur puisse ne télécharger que les polices dont il a besoin pour le texte d'un document. Ainsi, un site disposant de nombreuses traductions pourrait proposer des ressources distinctes pour l'anglais, le grec et le japonais et seules les ressources nécessaires (dont les fichiers de polices) seraient téléchargées. {{cssinfo}} Une valeur de type Dans cet exemple, on crée un élément HTML {{HTMLElement("div")}} pour lequel on veut que l'esperluette soit mise en forme avec une police différente. Pour que le résultat soit apparent, on utilisera une police sans empattement pour le texte (Helvetica) et une police avec des empattements (Times New Roman) pour l'esperluette. Dans la feuille de style CSS, on définit une règle {{cssxref("@font-face")}} qui n'inclue qu'un seul caractère. Cela signifie que seul ce caractère sera affiché avec cette police. On aurait également pu encadrer l'esperluette dans un élément {{HTMLElement("span")}} et appliquer une autre règle sur cet élément mais on aurait alors eu un balisage plus lourd et une règle spécifique en plus sur la feuille de style. {{EmbedLiveSample("Exemples", 500,104)}} {{Compat("css.at-rules.font-face.unicode-range")}} Le descripteur Le but de ce descripteur est de segmenter les ressources liées aux polices afin que le navigateur puisse ne télécharger que les polices dont il a besoin pour le texte d'un document. Ainsi, un site disposant de nombreuses traductions pourrait proposer des ressources distinctes pour l'anglais, le grec et le japonais et seules les ressources nécessaires (dont les fichiers de polices) seraient téléchargées. {{cssinfo}} Une valeur de type Dans cet exemple, on crée un élément HTML {{HTMLElement("div")}} pour lequel on veut que l'esperluette soit mise en forme avec une police différente. Pour que le résultat soit apparent, on utilisera une police sans empattement pour le texte (Helvetica) et une police avec des empattements (Times New Roman) pour l'esperluette. Dans la feuille de style CSS, on définit une règle {{cssxref("@font-face")}} qui n'inclue qu'un seul caractère. Cela signifie que seul ce caractère sera affiché avec cette police. On aurait également pu encadrer l'esperluette dans un élément {{HTMLElement("span")}} et appliquer une autre règle sur cet élément mais on aurait alors eu un balisage plus lourd et une règle spécifique en plus sur la feuille de style. {{EmbedLiveSample("Exemples", 500,104)}} {{Compat("css.at-rules.font-face.unicode-range")}} La règle @ La règle @ {{Compat("css.at-rules.font-feature-values")}} La règle @ La règle @ {{Compat("css.at-rules.font-feature-values")}} La règle @ Afin que les agents utilisateurs évitent de récupérer des ressources pour des types de média qui ne sont pas pris en charge, les auteurs peuvent définir des règles où on a : {{Compat("css.at-rules.import")}} La règle @ Afin que les agents utilisateurs évitent de récupérer des ressources pour des types de média qui ne sont pas pris en charge, les auteurs peuvent définir des règles où on a : {{Compat("css.at-rules.import")}} La règle Il est possible de manipuler la règle @ Afin d'utiliser ces règles, on créera une règle Les étapes peuvent être listées dans n'importe quel ordre. Elles seront enchaînées dans l'ordre indiqué par le pourcentage d'avancement. Si une liste d'étapes ne spécifie pas le début ( Si les étapes décrivent des propriétés qui ne peuvent pas être animées, elles seront ignorées mais les autres propriétés seront bien animées. Si plusieurs règles Si, au sein d'une même règle, deux étapes décrivent le même pourcentage d'avancement, c'est la dernière qui est utilisée pour décrire ce moment de l'animation. Il n'y a aucune cascade qui composerait différentes étapes décrivant le même avancement. Si des propriétés ne sont pas définies à chaque étape, elles sont interpolées si possible. Si ces propriétés ne peuvent pas être interpolées, elles sont retirées de l'animation : Ici, la propriété {{cssxref("top")}} est animée en passant par les étapes Seules les propriétés qui sont définies sur les étapes de début ( Les déclarations qui utilisent {{EmbedLiveSample("Exemples","500","300")}} Regardez Utiliser les animations CSS pour de plus amples exemples. {{Compat("css.at-rules.keyframes")}} La règle Il est possible de manipuler la règle @ Afin d'utiliser ces règles, on créera une règle Les étapes peuvent être listées dans n'importe quel ordre. Elles seront enchaînées dans l'ordre indiqué par le pourcentage d'avancement. Si une liste d'étapes ne spécifie pas le début ( Si les étapes décrivent des propriétés qui ne peuvent pas être animées, elles seront ignorées mais les autres propriétés seront bien animées. Si plusieurs règles Si, au sein d'une même règle, deux étapes décrivent le même pourcentage d'avancement, c'est la dernière qui est utilisée pour décrire ce moment de l'animation. Il n'y a aucune cascade qui composerait différentes étapes décrivant le même avancement. Si des propriétés ne sont pas définies à chaque étape, elles sont interpolées si possible. Si ces propriétés ne peuvent pas être interpolées, elles sont retirées de l'animation : Ici, la propriété {{cssxref("top")}} est animée en passant par les étapes Seules les propriétés qui sont définies sur les étapes de début ( Les déclarations qui utilisent {{EmbedLiveSample("Exemples","500","300")}} Regardez Utiliser les animations CSS pour de plus amples exemples. {{Compat("css.at-rules.keyframes")}} La caractéristique média Attention : Ne pas utiliser cette fonctionnalité ! La caractéristique Voir cet article du CSSWG pour les bonnes pratiques quant à la compatibilité de Note : Cette caractéristique est également implémentée par Webkit et IE 11 pour Windows Phone 8.1 sous le nom {{Compat("css.at-rules.media.-moz-device-pixel-ratio")}} La caractéristique média Attention : Ne pas utiliser cette fonctionnalité ! La caractéristique Voir cet article du CSSWG pour les bonnes pratiques quant à la compatibilité de Note : Cette caractéristique est également implémentée par Webkit et IE 11 pour Windows Phone 8.1 sous le nom {{Compat("css.at-rules.media.-moz-device-pixel-ratio")}} La caractéristique média Cette caractéristique média s'applique aux média de type matriciel (bitmap). Elle ne gère pas les préfixes La caractéristique média Cette valeur indique que les règles de mise en forme qui suivent sont appliquées lorsque le système utilise un affichage avec contraste élevé, quel que soit la variation de couleur. Cette valeur indique que les règles de mise en forme qui suivent sont appliquées lorsque le système utilise un affichage avec contraste élevé en noir sur blanc. Cette valeur indique que les règles de mise en forme qui suivent sont appliquées lorsque le système utilise un affichage avec contraste élevé en blanc sur noir. Les déclarations suivantes s'appliqueront respectivement sur des applications utilisées avec un mode de contraste élevé, avec une variation en noir sur blanc et enfin avec une variation en blanc sur noir. Cette caractéristique est propre à Microsoft et n'est décrite dans aucune spécification. À partir de Microsoft Edge, La caractéristique média La caractéristique média La caractéristique média Cette caractéristique média s'applique aux média de type matriciel (bitmap). Elle ne gère pas les préfixes La caractéristique média Cette valeur indique que les règles de mise en forme qui suivent sont appliquées lorsque le système utilise un affichage avec contraste élevé, quel que soit la variation de couleur. Cette valeur indique que les règles de mise en forme qui suivent sont appliquées lorsque le système utilise un affichage avec contraste élevé en noir sur blanc. Cette valeur indique que les règles de mise en forme qui suivent sont appliquées lorsque le système utilise un affichage avec contraste élevé en blanc sur noir. Les déclarations suivantes s'appliqueront respectivement sur des applications utilisées avec un mode de contraste élevé, avec une variation en noir sur blanc et enfin avec une variation en blanc sur noir. Cette caractéristique est propre à Microsoft et n'est décrite dans aucune spécification. À partir de Microsoft Edge, La caractéristique média La caractéristique média Cette caractéristique média est une caractéristique média propriétaire liée à WebKit/Blink. Elle ne fait partie d'aucune spécification. Elle est décrite plus en détails dans la référence CSS Apple pour Safari (en anglais). {{Compat("css.at-rules.media.-webkit-animation")}} Cette caractéristique média est une caractéristique média propriétaire liée à WebKit/Blink. Elle ne fait partie d'aucune spécification. Elle est décrite plus en détails dans la référence CSS Apple pour Safari (en anglais). {{Compat("css.at-rules.media.-webkit-animation")}} Sa valeur correspond au nombre de pixels physiques utilisés par l'appareil pour représenter un pixel CSS ( Attention : Cette caractéristique est spécifique à WebKit. Tant que possible, on utilisera {{cssxref("@media/resolution","resolution")}}. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.-webkit-device-pixel-ratio")}} Sa valeur correspond au nombre de pixels physiques utilisés par l'appareil pour représenter un pixel CSS ( Attention : Cette caractéristique est spécifique à WebKit. Tant que possible, on utilisera {{cssxref("@media/resolution","resolution")}}. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.-webkit-device-pixel-ratio")}} Note : Cette caractéristique est uniquement prise en charge par WebKit et Blink. Mieux vaut utiliser la méthode alternative standard avec {{cssxref("@supports")}} à la place si possible. Cette caractéristique média est une caractéristique média propriétaire liée à WebKit/Blink. Elle ne fait partie d'aucune spécification. Elle est décrite plus en détails dans la référence CSS Apple pour Safari (en anglais) . {{Compat("css.at-rules.media.-webkit-transform-2d")}} Note : Cette caractéristique est uniquement prise en charge par WebKit et Blink. Mieux vaut utiliser la méthode alternative standard avec {{cssxref("@supports")}} à la place si possible. Cette caractéristique média est une caractéristique média propriétaire liée à WebKit/Blink. Elle ne fait partie d'aucune spécification. Elle est décrite plus en détails dans la référence CSS Apple pour Safari (en anglais) . {{Compat("css.at-rules.media.-webkit-transform-2d")}} Note : Cette caractéristique est uniquement prise en charge par WebKit et Blink. Une méthode alternative standard consiste à utiliser {{cssxref("@supports")}} à la place. {{Compat("css.at-rules.media.-webkit-transform-3d")}} Note : Cette caractéristique est uniquement prise en charge par WebKit et Blink. Une méthode alternative standard consiste à utiliser {{cssxref("@supports")}} à la place. {{Compat("css.at-rules.media.-webkit-transform-3d")}} Note : Cette caractéristique est uniquement prise en charge par les navigateurs basés sur WebKit. L'alternative standard correspondante consiste à utiliser {{cssxref("@supports")}}. S'il vous faut déterminer si les transitions CSS sont prises en charges, évitez d'utiliser Cette caractéristique média est une caractéristique média propriétaire liée à WebKit/Blink. Elle ne fait partie d'aucune spécification. Elle est décrite plus en détails dans la référence CSS Apple pour Safari (en anglais). {{Compat("css.at-rules.media.-webkit-transition")}} Note : Cette caractéristique est uniquement prise en charge par les navigateurs basés sur WebKit. L'alternative standard correspondante consiste à utiliser {{cssxref("@supports")}}. S'il vous faut déterminer si les transitions CSS sont prises en charges, évitez d'utiliser Cette caractéristique média est une caractéristique média propriétaire liée à WebKit/Blink. Elle ne fait partie d'aucune spécification. Elle est décrite plus en détails dans la référence CSS Apple pour Safari (en anglais). {{Compat("css.at-rules.media.-webkit-transition")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.any-hover")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.any-hover")}} Note : Si on souhaite tester la précision du mécanisme de pointage principal, on pourra utiliser la caractéristique La caractéristique Note : Plusieurs valeurs peuvent correspondre si l'appareil dispose de dispositifs de pointage différents. Toutefois, la valeur Dans cet exemple, on crée une petite case à cocher pour les utilisateurs qui disposent d'un pointage précis et une case à cocher plus grande lorsque le mécanisme de pointage est moins précis. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.any-pointer")}} Note : Si on souhaite tester la précision du mécanisme de pointage principal, on pourra utiliser la caractéristique La caractéristique Note : Plusieurs valeurs peuvent correspondre si l'appareil dispose de dispositifs de pointage différents. Toutefois, la valeur Dans cet exemple, on crée une petite case à cocher pour les utilisateurs qui disposent d'un pointage précis et une case à cocher plus grande lorsque le mécanisme de pointage est moins précis. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.any-pointer")}} La caractéristique Les navigateurs ont ajouté une propriété Pour Firefox, la feuille de style interne ressemble à : Pour en savoir plus, vous pouvez consulter Définir la hauteur et largeur des images redevient important (en anglais). {{Compat("css.at-rules.media.aspect-ratio")}} La caractéristique Les navigateurs ont ajouté une propriété Pour Firefox, la feuille de style interne ressemble à : Pour en savoir plus, vous pouvez consulter Définir la hauteur et largeur des images redevient important (en anglais). {{Compat("css.at-rules.media.aspect-ratio")}} Un groupe de médias défini par les standards CSS. Note : Ce groupe de médias n'a jamais été complètement implémenté dans Gecko et a été supprimé dans {{Gecko("6.0")}}. C'est le type de média speech qui le remplace. Un groupe de médias défini par les standards CSS. Note : Ce groupe de médias n'a jamais été complètement implémenté dans Gecko et a été supprimé dans {{Gecko("6.0")}}. C'est le type de média speech qui le remplace. La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.color-gamut")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.color-gamut")}} La caractéristique {{EmbedLiveSample("Exemple_simple")}} Ce fragment HTML permet d'appliquer une feuille de style spécifique pour les appareils qui disposent d'au moins 256 couleurs. {{Compat("css.at-rules.media.color-index")}} La caractéristique {{EmbedLiveSample("Exemple_simple")}} Ce fragment HTML permet d'appliquer une feuille de style spécifique pour les appareils qui disposent d'au moins 256 couleurs. {{Compat("css.at-rules.media.color-index")}} La caractéristique Note : Si les différentes composantes sont représentées sur un nombre différent de bits, c'est le plus petit de ces nombres qui est utilisé. Par exemple, si un affichage utilise 5 bits pour le bleu et le rouge mais 6 bits pour le vert, on considèrera que l'appareil utilise 5 bits par couleur. Si l'appareil utilise des couleur indexées, c'est le nombre minimal de bits par composantes parmi les couleurs de l'index qui est utilisé. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.color")}} La caractéristique Note : Si les différentes composantes sont représentées sur un nombre différent de bits, c'est le plus petit de ces nombres qui est utilisé. Par exemple, si un affichage utilise 5 bits pour le bleu et le rouge mais 6 bits pour le vert, on considèrera que l'appareil utilise 5 bits par couleur. Si l'appareil utilise des couleur indexées, c'est le nombre minimal de bits par composantes parmi les couleurs de l'index qui est utilisé. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.color")}} La caractéristique {{Compat("css.at-rules.media.device-aspect-ratio")}} La caractéristique {{Compat("css.at-rules.media.device-aspect-ratio")}} La caractéristique Ce fragment HTML applique une feuille de style spécifique pour les appareils dont la hauteur est inférieure à 800 pixels. {{Compat("css.at-rules.media.device-height")}} La caractéristique Ce fragment HTML applique une feuille de style spécifique pour les appareils dont la hauteur est inférieure à 800 pixels. {{Compat("css.at-rules.media.device-height")}} Ce code HTML applique une feuille de style pour pour les appareils plus étroits que 800 pixels. {{Compat("css.at-rules.media.device-width")}} Ce code HTML applique une feuille de style pour pour les appareils plus étroits que 800 pixels. {{Compat("css.at-rules.media.device-width")}} Cette caractéristique correspond à la propriété La caractéristique {{Compat("css.at-rules.media.display-mode")}} Cette caractéristique correspond à la propriété La caractéristique {{Compat("css.at-rules.media.display-mode")}} La caractéristique média Note : Cette fonctionnalité n'est pas encore implémentée par aucun agent utilisateur À l'heure actuelle, aucun agent utilisateur n'implémente cette fonctionnalité bien que de nombreux systèmes d'exploitation prennent en charge ce type de paramètre. Dans cet exemple, les couleurs utilisées par défaut sont exotiques voire illisibles. On tire ici parti d'une requête média pour utiliser une palette restreinte de l'agent utilisateur. {{EmbedLiveSample("Exemples")}} {{Compat("javascript.builtins.Array.sort")}} {QuickLinksWithSubpages("/fr/docs/Web/CSS/@media/")}} La caractéristique média Note : Cette fonctionnalité n'est pas encore implémentée par aucun agent utilisateur À l'heure actuelle, aucun agent utilisateur n'implémente cette fonctionnalité bien que de nombreux systèmes d'exploitation prennent en charge ce type de paramètre. Dans cet exemple, les couleurs utilisées par défaut sont exotiques voire illisibles. On tire ici parti d'une requête média pour utiliser une palette restreinte de l'agent utilisateur. {{EmbedLiveSample("Exemples")}} {{Compat("javascript.builtins.Array.sort")}} {QuickLinksWithSubpages("/fr/docs/Web/CSS/@media/")}} La plupart des ordinateurs actuels possèdent des écrans matriciels. Parmi les appareils qui utilisent un affichage en grille, on trouve les appareils qui n'affichent que du texte dans un terminal ou des téléphones simples avec une seule police fixe. La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.grid")}} La plupart des ordinateurs actuels possèdent des écrans matriciels. Parmi les appareils qui utilisent un affichage en grille, on trouve les appareils qui n'affichent que du texte dans un terminal ou des téléphones simples avec une seule police fixe. La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.grid")}} La caractéristique {{EmbedLiveSample('Exemples','90%')}} {{Compat("css.at-rules.media.height")}} La caractéristique {{EmbedLiveSample('Exemples','90%')}} {{Compat("css.at-rules.media.height")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.hover")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.hover")}} La règle @ Note : Il est possible de manipuler la règle @ Une requête média (type Pour plus d'informations sur la syntaxe des requêtes média, voir Utiliser les requêtes média. {{page("/fr/docs/Web/CSS/Media_Queries/Using_media_queries","media_types")}} {{page("/fr/docs/Web/CSS/Media_Queries/Using_media_queries","media_features")}} Pour une meilleure interaction, notamment avec les personnes qui zooment sur une page pour accroître la taille du texte ou qui définissent une taille de police par défaut pour l'ensemble du navigateur, on utilisera l'unité Les unités On privilégiera, autant que possible, les requêtes média de la spécification de niveau 4 afin d'améliorer l'ergonomie. On pourra, par exemple, se baser sur Les requêtes média fournissent des informations quant aux capacités de l'appareil avec lequel on navigue. L'ensemble de ces capacités peut être détourné afin de construire une empreinte qui identifie l'appareil ou le catégorise de façon non-désirée. Pour ces raisons, un navigateur peut choisir de mentir sur les valeurs renvoyées afin de contourner ce pistage. Ainsi, si la détection d'empreinte numérique est désactivée dans Firefox, la plupart des caractéristiques média renverront leurs valeurs par défaut afin d'éviter leur utilisation pour du pistage. {{csssyntax}} Avec la mise à jour de la spécification pour les requêtes média, une nouvelle syntaxe, plus concise, peut être utilisée pour les tests d'intervalle : Pour plus d'exemples, voir Utiliser les requêtes média. {{Specifications}} {{Compat}} La règle @ Note : Il est possible de manipuler la règle @ Une requête média (type Pour plus d'informations sur la syntaxe des requêtes média, voir Utiliser les requêtes média. {{page("/fr/docs/Web/CSS/Media_Queries/Using_media_queries","media_types")}} {{page("/fr/docs/Web/CSS/Media_Queries/Using_media_queries","media_features")}} Pour une meilleure interaction, notamment avec les personnes qui zooment sur une page pour accroître la taille du texte ou qui définissent une taille de police par défaut pour l'ensemble du navigateur, on utilisera l'unité Les unités On privilégiera, autant que possible, les requêtes média de la spécification de niveau 4 afin d'améliorer l'ergonomie. On pourra, par exemple, se baser sur Les requêtes média fournissent des informations quant aux capacités de l'appareil avec lequel on navigue. L'ensemble de ces capacités peut être détourné afin de construire une empreinte qui identifie l'appareil ou le catégorise de façon non-désirée. Pour ces raisons, un navigateur peut choisir de mentir sur les valeurs renvoyées afin de contourner ce pistage. Ainsi, si la détection d'empreinte numérique est désactivée dans Firefox, la plupart des caractéristiques média renverront leurs valeurs par défaut afin d'éviter leur utilisation pour du pistage. {{csssyntax}} Avec la mise à jour de la spécification pour les requêtes média, une nouvelle syntaxe, plus concise, peut être utilisée pour les tests d'intervalle : Pour plus d'exemples, voir Utiliser les requêtes média. {{Specifications}} {{Compat}} Cette caractéristique est définie avec un des mots-clés parmi ceux qui suivent : {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.inverted-colors")}} Cette caractéristique est définie avec un des mots-clés parmi ceux qui suivent : {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.inverted-colors")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.monochrome")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.monochrome")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.orientation")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.orientation")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.overflow-block")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.overflow-block")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.overflow-inline")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.overflow-inline")}} Note : Si on souhaite tester la précision de n'importe quel dispositif de pointage, on utilisera plutôt la caractéristique Cette caractéristique est définie avec un mot-clé parmi les suivants : Dans cet exemple, on crée une petite case à cocher pour les utilisateurs qui disposent d'un pointage précis et une case à cocher plus grande lorsque le mécanisme de pointage est moins précis. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.pointer")}} Note : Si on souhaite tester la précision de n'importe quel dispositif de pointage, on utilisera plutôt la caractéristique Cette caractéristique est définie avec un mot-clé parmi les suivants : Dans cet exemple, on crée une petite case à cocher pour les utilisateurs qui disposent d'un pointage précis et une case à cocher plus grande lorsque le mécanisme de pointage est moins précis. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.pointer")}} Note : Si vous avez modifié La caractéristique média {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.prefers-color-scheme")}} Note : Si vous avez modifié La caractéristique média {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.prefers-color-scheme")}} La caractéristique média À l'heure actuelle, aucun agent utilisateur n'implémente cette fonctionnalité bien que différents systèmes d'exploitation prennent en charge ce type de paramètre. Par défaut, cet exemple présente un contraste trop faible pour la lisibilité. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.prefers-contrast")}} {{QuickLinksWithSubpages("/fr/docs/Web/CSS/@media/")}} La caractéristique média À l'heure actuelle, aucun agent utilisateur n'implémente cette fonctionnalité bien que différents systèmes d'exploitation prennent en charge ce type de paramètre. Par défaut, cet exemple présente un contraste trop faible pour la lisibilité. {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.prefers-contrast")}} {{QuickLinksWithSubpages("/fr/docs/Web/CSS/@media/")}} La requêtes média CSS Attention : Un exemple intégré au bas de cette page comporte un mouvement d'échelle qui peut poser problème à certains lecteurs. Les lecteurs souffrant de troubles du mouvement vestibulaire peuvent souhaiter activer la fonction de réduction du mouvement sur leur appareil avant de visionner l'animation. Dans Firefox, la valeur Cet exemple possède une animation désagréable qui sera exécutée à moins d'activer la réduction de mouvement dans les préférences relatives à l'accessibilité. {{EmbedLiveSample("example")}} {{Compat("css.at-rules.media.prefers-reduced-motion")}} La requêtes média CSS Attention : Un exemple intégré au bas de cette page comporte un mouvement d'échelle qui peut poser problème à certains lecteurs. Les lecteurs souffrant de troubles du mouvement vestibulaire peuvent souhaiter activer la fonction de réduction du mouvement sur leur appareil avant de visionner l'animation. Dans Firefox, la valeur Cet exemple possède une animation désagréable qui sera exécutée à moins d'activer la réduction de mouvement dans les préférences relatives à l'accessibilité. {{EmbedLiveSample("example")}} {{Compat("css.at-rules.media.prefers-reduced-motion")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.resolution")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.resolution")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.scripting")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.scripting")}} La caractéristique média La caractéristique Note : Aucun navigateur n'implémente actuellement cette fonctionnalité. {{EmbedLiveSample("Exemple_simple")}} Ce fragment de code HTML permettra d'appliquer une feuille de style particulière pour les appareils qui ont des écrans arrondis. {{Compat("css.at-rules.media.shape")}} La caractéristique média La caractéristique Note : Aucun navigateur n'implémente actuellement cette fonctionnalité. {{EmbedLiveSample("Exemple_simple")}} Ce fragment de code HTML permettra d'appliquer une feuille de style particulière pour les appareils qui ont des écrans arrondis. {{Compat("css.at-rules.media.shape")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.update")}} La caractéristique {{EmbedLiveSample("Exemples")}} {{Compat("css.at-rules.media.update")}} {{EmbedLiveSample('Exemples','90%')}} {{Compat("css.at-rules.media.width")}} {{EmbedLiveSample('Exemples','90%')}} {{Compat("css.at-rules.media.width")}} Les règles La règle En HTML5, les éléments étrangers connus seront automatiquement affectés à des espaces de noms. Cela signifie que les éléments HTML se comporteront comme s'ils appartenaient à l'espace de noms XHTML ( Note : En XML, sauf si un préfixe est directement apposé sur l'attribut (ex. {{Compat("css.at-rules.namespace")}} Les règles La règle En HTML5, les éléments étrangers connus seront automatiquement affectés à des espaces de noms. Cela signifie que les éléments HTML se comporteront comme s'ils appartenaient à l'espace de noms XHTML ( Note : En XML, sauf si un préfixe est directement apposé sur l'attribut (ex. {{Compat("css.at-rules.namespace")}} La règle @ La règle @ Note : Le W3C est en train de discuter de la gestion des unités de longueur ({{cssxref("<length>")}}) relative à la zone d'affichage (viewport) : Pour d'autres exemples, voir les pages qui concernent les pseudo-classes liées à {{Compat("css.at-rules.page")}} La règle @ La règle @ Note : Le W3C est en train de discuter de la gestion des unités de longueur ({{cssxref("<length>")}}) relative à la zone d'affichage (viewport) : Pour d'autres exemples, voir les pages qui concernent les pseudo-classes liées à {{Compat("css.at-rules.page")}} Le descripteur Les dimensions de cette boîte peuvent être définies de façon absolues ou relatives (dans ce cas, la page occupera l'espace disponible). Un mot-clé avec l'une des valeurs suivantes : {{cssinfo}} {{Compat("css.at-rules.page.size")}} Le descripteur Les dimensions de cette boîte peuvent être définies de façon absolues ou relatives (dans ce cas, la page occupera l'espace disponible). Un mot-clé avec l'une des valeurs suivantes : {{cssinfo}} {{Compat("css.at-rules.page.size")}} La règle {{cssxref("at-rule")}} CSS La règle Une règle Une règle Les descripteurs inconnus ne sont pas valides et sont ignorés, mais n'invalident pas l'ensemble de la règle Ajout d'une vérification de type à la {{cssxref('--*', 'propriété personnalisée')}} Utilisation de la règle CSS at-rule {{cssxref('@property')}} : Équivalent avec la fonction JavaScript {{domxref('CSS.registerProperty')}} : {{csssyntax}} {{Specifications}} {{Compat}} La règle {{cssxref("at-rule")}} CSS La règle Une règle Une règle Les descripteurs inconnus ne sont pas valides et sont ignorés, mais n'invalident pas l'ensemble de la règle Ajout d'une vérification de type à la {{cssxref('--*', 'propriété personnalisée')}} Utilisation de la règle CSS at-rule {{cssxref('@property')}} : Équivalent avec la fonction JavaScript {{domxref('CSS.registerProperty')}} : {{csssyntax}} {{Specifications}} {{Compat}} La règle La règle @ Une condition de prise en charge se compose d'une ou plusieurs déclarations combinées entre elles par des opérateurs logiques ( La plus simple expression est une déclaration CSS, c'est-à-dire un nom de propriété CSS suivi par deux points (:) puis une valeur. Ainsi, l'expression suivante : renvoie le booléen vrai si la propriété {{cssxref("transform-origin")}} du navigateur considère que la valeur Une déclaration CSS est toujours encadrée par des parenthèses. La deuxième syntaxe permet d'utiliser une fonction. Cette syntaxe est prise en charge par les différents navigateurs mais les fonctions sont en cours de standardisation. Dans l'exemple qui suit, on teste si le navigateur prend en charge la syntaxe du sélecteur passé en argument. Ici, le code renvoie VRAI si le navigateur prend en charge les sélecteurs enfants L'opérateur renvoie VRAI si la propriété {{cssxref("transform-origin")}} du navigateur ne considère pas la valeur Comme pour les autres opérateurs, on peut appliquer l'opérateur Note : Au niveau le plus haut, il n'est pas nécessaire d'encadrer l'opérateur L'opérateur On peut enchaîner plusieurs conjonctions sans avoir à ajouter de parenthèses (l'opérateur est commutatif). sera équivalente à : L'opérateur On peut enchaîner plusieurs disjonctions sans qu'il soit nécessaire d'ajouter des parenthèses. sera ainsi équivalente à : Note : Lorsqu'on utilise à la fois l'opérateur {{SeeCompatTable}} {{Compat("css.at-rules.supports")}} La règle La règle @ Une condition de prise en charge se compose d'une ou plusieurs déclarations combinées entre elles par des opérateurs logiques ( La plus simple expression est une déclaration CSS, c'est-à-dire un nom de propriété CSS suivi par deux points (:) puis une valeur. Ainsi, l'expression suivante : renvoie le booléen vrai si la propriété {{cssxref("transform-origin")}} du navigateur considère que la valeur Une déclaration CSS est toujours encadrée par des parenthèses. La deuxième syntaxe permet d'utiliser une fonction. Cette syntaxe est prise en charge par les différents navigateurs mais les fonctions sont en cours de standardisation. Dans l'exemple qui suit, on teste si le navigateur prend en charge la syntaxe du sélecteur passé en argument. Ici, le code renvoie VRAI si le navigateur prend en charge les sélecteurs enfants L'opérateur renvoie VRAI si la propriété {{cssxref("transform-origin")}} du navigateur ne considère pas la valeur Comme pour les autres opérateurs, on peut appliquer l'opérateur Note : Au niveau le plus haut, il n'est pas nécessaire d'encadrer l'opérateur L'opérateur On peut enchaîner plusieurs conjonctions sans avoir à ajouter de parenthèses (l'opérateur est commutatif). sera équivalente à : L'opérateur On peut enchaîner plusieurs disjonctions sans qu'il soit nécessaire d'ajouter des parenthèses. sera ainsi équivalente à : Note : Lorsqu'on utilise à la fois l'opérateur {{SeeCompatTable}} {{Compat("css.at-rules.supports")}} La règle @ Les longueurs exprimées en pourcentages sont calculées de façon relative à la zone d'affichage initiale c'est-à-dire le viewport avant tout ajustement effectué par le navigateur ou par les styles de la page. Généralement, cela correspond à la taille de la fenêtre pour les navigateurs de bureau lorsqu'ils ne sont pas utilisés en mode plein écran. Pour les appareils mobiles (ou pour les appareils de bureau qui sont en plein écran), la zone d'affichage initiale correspond à la portion de l'écran disponible pour l'application. Cela peut correspondre à l'écran entier ou bien à l'écran auquel on enlève les zones contrôlées par le système d'exploitation (par exemple la barre de tâche) ou bien encore à la zone de l'écran qui n'est pas occupée par le système d'exploitation ou d'autres applications. Cette règle @ contient un ensemble de descripteurs CSS dans un bloc délimité par des accolades. Un facteur de zoom de Les navigateurs sont supposés ignorer les descripteurs non reconnus. Note :Un facteur de zoom de {{Compat("css.at-rules.viewport")}} La règle @ Les longueurs exprimées en pourcentages sont calculées de façon relative à la zone d'affichage initiale c'est-à-dire le viewport avant tout ajustement effectué par le navigateur ou par les styles de la page. Généralement, cela correspond à la taille de la fenêtre pour les navigateurs de bureau lorsqu'ils ne sont pas utilisés en mode plein écran. Pour les appareils mobiles (ou pour les appareils de bureau qui sont en plein écran), la zone d'affichage initiale correspond à la portion de l'écran disponible pour l'application. Cela peut correspondre à l'écran entier ou bien à l'écran auquel on enlève les zones contrôlées par le système d'exploitation (par exemple la barre de tâche) ou bien encore à la zone de l'écran qui n'est pas occupée par le système d'exploitation ou d'autres applications. Cette règle @ contient un ensemble de descripteurs CSS dans un bloc délimité par des accolades. Un facteur de zoom de Les navigateurs sont supposés ignorer les descripteurs non reconnus. Note :Un facteur de zoom de {{Compat("css.at-rules.viewport")}} La pseudo-class CSS Ce sélecteur est principalement destiné à être utilisé par les développeurs de thèmes. {{EmbedLiveSample("Exemples")}} La pseudo-class CSS Ce sélecteur est principalement destiné à être utilisé par les développeurs de thèmes. {{EmbedLiveSample("Exemples")}} La pseudo-classe {{EmbedLiveSample("Exemples","200","200")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe {{EmbedLiveSample("Exemples","200","200")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Note : Tout blanc qui serait au début d'un élément est ignoré pour la détermination de {{EmbedLiveSample("Exemples", "220", "20")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Note : Tout blanc qui serait au début d'un élément est ignoré pour la détermination de {{EmbedLiveSample("Exemples", "220", "20")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Si Note : Les développeurs utilisent souvent {{EmbedLiveSample("Exemple")}} Cette fonctionnalité ne fait partie d'aucune spécification bien qu'elle ait discutée avec le groupe de travail et qu'il a été conclus de son ajout dans la spécification CSS sur les sélecteurs de niveau 4 ou 5. {{Compat("css.selectors.-moz-focusring")}} La pseudo-classe Si Note : Les développeurs utilisent souvent {{EmbedLiveSample("Exemple")}} Cette fonctionnalité ne fait partie d'aucune spécification bien qu'elle ait discutée avec le groupe de travail et qu'il a été conclus de son ajout dans la spécification CSS sur les sélecteurs de niveau 4 ou 5. {{Compat("css.selectors.-moz-focusring")}} La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.} La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.} La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Note : Tout blanc qui serait à la fin d'un élément est ignoré pour la détermination de {{EmbedLiveSample("Exemples", "220", "20")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Note : Tout blanc qui serait à la fin d'un élément est ignoré pour la détermination de {{EmbedLiveSample("Exemples", "220", "20")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. Le pseudo-élément CSS non-standard {{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/:-moz-list-bullet')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. Le pseudo-élément CSS non-standard {{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/:-moz-list-bullet')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. Le pseudo-élément CSS {{EmbedLiveSample("Exemple")}} Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. Le pseudo-élément CSS {{EmbedLiveSample("Exemple")}} Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Cette pseudo-classe est principalement destinée aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Cela permet aux extensions (et thèmes) d'adapter facilement leur interface utilisateur basée sur les besoins du langage de l'utilisateur. Cela peut varier d'une fenêtre à une autre et même d'un onglet à un autre. Cela permet aussi aux extensions de fonctionner même si elles ne prennent pas en compte le langage de l'utilisateur par défaut, puisqu'elles peuvent prendre en compte les agencements de gauche à droite et de droite à gauche sans être inquiétée par les spécificités du langage. Ce sélecteur ne fonctionne pas pour les documents l'HTML; il fait correspondre toujours, peu importe si le langage de l'UI va de gauche à droite ou de droite à gauche. {{EmbedLiveSample("Exemples")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Cela permet aux extensions (et thèmes) d'adapter facilement leur interface utilisateur basée sur les besoins du langage de l'utilisateur. Cela peut varier d'une fenêtre à une autre et même d'un onglet à un autre. Cela permet aussi aux extensions de fonctionner même si elles ne prennent pas en compte le langage de l'utilisateur par défaut, puisqu'elles peuvent prendre en compte les agencements de gauche à droite et de droite à gauche sans être inquiétée par les spécificités du langage. Ce sélecteur ne fonctionne pas pour les documents l'HTML; il fait correspondre toujours, peu importe si le langage de l'UI va de gauche à droite ou de droite à gauche. {{EmbedLiveSample("Exemples")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe CSS Cela permet aux extensions (et thèmes) d'adapter facilement leur interface utilisateur basée sur les besoins de la langue de l'utilisateur. Cela peut varier d'une fenêtre à une autre et même d'un onglet à un autre. Cela permet aussi aux extensions de fonctionner même si elles ne prennent pas en compte la langue de l'utilisateur par défaut, puisqu'elles peuvent prendre en compte les agencements de gauche à droite et de droite à gauche sans être inquiétées par les spécificités de la langue. Ce sélecteur ne fonctionne pas correctement pour des documents HTML ; il ne fait jamais correspondre, peu importe si la langue de l'interface utilisateur va de gauche à droite ou de droite à gauche. {{EmbedLiveSample("Exemples")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe CSS Cela permet aux extensions (et thèmes) d'adapter facilement leur interface utilisateur basée sur les besoins de la langue de l'utilisateur. Cela peut varier d'une fenêtre à une autre et même d'un onglet à un autre. Cela permet aussi aux extensions de fonctionner même si elles ne prennent pas en compte la langue de l'utilisateur par défaut, puisqu'elles peuvent prendre en compte les agencements de gauche à droite et de droite à gauche sans être inquiétées par les spécificités de la langue. Ce sélecteur ne fonctionne pas correctement pour des documents HTML ; il ne fait jamais correspondre, peu importe si la langue de l'interface utilisateur va de gauche à droite ou de droite à gauche. {{EmbedLiveSample("Exemples")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. Note : Dans la spécification {{SpecName("CSS4 Selectors", "#the-empty-pseudo")}}, le sélecteur {{CSSxRef(":empty")}} a été modifié pour se comporter comme La pseudo-classe {{EmbedLiveSample("Exemple", "100%", "50")}} Cette pseudo-classe a été renommée en {{Compat("css.selectors.moz-only-whitespace")}} Note : Dans la spécification {{SpecName("CSS4 Selectors", "#the-empty-pseudo")}}, le sélecteur {{CSSxRef(":empty")}} a été modifié pour se comporter comme La pseudo-classe {{EmbedLiveSample("Exemple", "100%", "50")}} Cette pseudo-classe a été renommée en {{Compat("css.selectors.moz-only-whitespace")}} La pseudo-classe CSS Par défaut, aucun style n'est appliqué. Vous pouvez utiliser cette pseudo-classe afin de personnaliser l'apparence du bouton Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-submit-invalid")}} La pseudo-classe CSS Par défaut, aucun style n'est appliqué. Vous pouvez utiliser cette pseudo-classe afin de personnaliser l'apparence du bouton Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-submit-invalid")}} Ce sélecteur est principalement destiné aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. Ce sélecteur est principalement destiné aux développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe CSS Ce sélecteur est destiné principalement à une utilisation par les développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe CSS Ce sélecteur est destiné principalement à une utilisation par les développeurs de thèmes. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. La pseudo-classe Note : Avant l'existence de cette pseudo-classe, on pouvait donner des styles différents aux fenêtres avec l'attribut Cet exemple illustre la modification de l'apparence de l'arrière-plan d'une boîte selon que la fenêtre est active ou non. {{EmbedLiveSample("Exemples","220","220")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-window-inactive")}} La pseudo-classe Note : Avant l'existence de cette pseudo-classe, on pouvait donner des styles différents aux fenêtres avec l'attribut Cet exemple illustre la modification de l'apparence de l'arrière-plan d'une boîte selon que la fenêtre est active ou non. {{EmbedLiveSample("Exemples","220","220")}} Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-window-inactive")}} La pseudo-classe La pseudo-classe La mise en forme associée peut être surchargée par les autres pseudo-classes pour les liens : {{cssxref(":link")}}, {{cssxref(":hover")}} et {{cssxref(":visited")}} lorsqu'elles sont utilisées dans des règles qui suivent. Afin de mettre en forme les liens de façon correcte, la règle avec Note : Pour les systèmes qui utilisent une souris avec plusieurs boutons, CSS 3 spécifie que la pseudo-classe {{EmbedLiveSample('Liens_actifs')}} {{EmbedLiveSample('Éléments_de_formulaire_actifs')}} {{Compat("css.selectors.active")}} La pseudo-classe La pseudo-classe La mise en forme associée peut être surchargée par les autres pseudo-classes pour les liens : {{cssxref(":link")}}, {{cssxref(":hover")}} et {{cssxref(":visited")}} lorsqu'elles sont utilisées dans des règles qui suivent. Afin de mettre en forme les liens de façon correcte, la règle avec Note : Pour les systèmes qui utilisent une souris avec plusieurs boutons, CSS 3 spécifie que la pseudo-classe {{EmbedLiveSample('Liens_actifs')}} {{EmbedLiveSample('Éléments_de_formulaire_actifs')}} {{Compat("css.selectors.active")}} La pseudo-classe {{EmbedLiveSample("Exemples","100%","100%")}} {{Compat("css.selectors.any-link")}} La pseudo-classe {{EmbedLiveSample("Exemples","100%","100%")}} {{Compat("css.selectors.any-link")}} La pseudo-classe Note : Pour plusieurs navigateurs, les feuilles de style de l'agent utilisateur utilisent Cette pseudo-classe est une pseudo-classe propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-autofill")}} La pseudo-classe Note : Pour plusieurs navigateurs, les feuilles de style de l'agent utilisateur utilisent Cette pseudo-classe est une pseudo-classe propriétaire liée à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-autofill")}} {{CSSRef}}{{Draft}}{{SeeCompatTable}} Note : Le sélecteur La pseudo-classe {{Compat("css.selectors.blank")}} {{CSSRef}}{{Draft}}{{SeeCompatTable}} Note : Le sélecteur La pseudo-classe {{Compat("css.selectors.blank")}} La pseudo-classe Note : Les navigateurs considèrent souvent les éléments {{EmbedLiveSample("exemple_simple")}} {{Compat("css.selectors.checked")}} La pseudo-classe Note : Les navigateurs considèrent souvent les éléments {{EmbedLiveSample("exemple_simple")}} {{Compat("css.selectors.checked")}} {{CSSRef}} Le sélecteur de pseudo-classe CSS {{csssyntax}} {{Specifications}} {{Compat}} {{CSSRef}} Le sélecteur de pseudo-classe CSS {{csssyntax}} {{Specifications}} {{Compat}} La pseudo-classe Ainsi, le bouton actionné par défaut parmi plusieurs boutons pourra être mis en forme en le ciblant avec cette pseudo-classe. Ce sélecteur peut être utilisé sur des éléments {{htmlelement("button")}}, Note : La spécification WHATWG HTML définit cela dans le paragraphe 4.16.3. Les éléments de l'interface utilisateur qui permette une sélection multiple peuvent avoir plusieurs éléments par défaut. Dans ce cas, tous les éléments par défaut sont ciblés via la pseudo-classe {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.default")}} La pseudo-classe Ainsi, le bouton actionné par défaut parmi plusieurs boutons pourra être mis en forme en le ciblant avec cette pseudo-classe. Ce sélecteur peut être utilisé sur des éléments {{htmlelement("button")}}, Note : La spécification WHATWG HTML définit cela dans le paragraphe 4.16.3. Les éléments de l'interface utilisateur qui permette une sélection multiple peuvent avoir plusieurs éléments par défaut. Dans ce cas, tous les éléments par défaut sont ciblés via la pseudo-classe {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.default")}} La pseudo-classe Les fragments de code qui suivent sont tirés du dépôt Pour cette démonstration on définit un élément personnalisé trivial : On insère ensuite une copie de cet élément dans le document, à côté d'un paragraphe classique { Dans la feuille CSS, on inclut d'abord les règles suivantes : Ensuite, on fournit les deux règles suivantes afin de masquer les instances de l'élément personnalisé qui ne sont pas définies et, pour celles qui sont définies, on indique que ce sont des éléments de bloc : Ces dernières règles sont utiles lorsqu'on a un élément personnalisé complexe qui met du temps à charger : pour ceux-là, on peut vouloir les masquer jusqu'à ce que la définition soit complète afin de ne pas avoir de scintillement d'éléments non mis en forme sur la page. {{Compat}} La pseudo-classe Les fragments de code qui suivent sont tirés du dépôt Pour cette démonstration on définit un élément personnalisé trivial : On insère ensuite une copie de cet élément dans le document, à côté d'un paragraphe classique { Dans la feuille CSS, on inclut d'abord les règles suivantes : Ensuite, on fournit les deux règles suivantes afin de masquer les instances de l'élément personnalisé qui ne sont pas définies et, pour celles qui sont définies, on indique que ce sont des éléments de bloc : Ces dernières règles sont utiles lorsqu'on a un élément personnalisé complexe qui met du temps à charger : pour ceux-là, on peut vouloir les masquer jusqu'à ce que la définition soit complète afin de ne pas avoir de scintillement d'éléments non mis en forme sur la page. {{Compat}} La pseudo-classe On notera que la pseudo-classe La pseudo-classe {{csssyntax}} {{EmbedLiveSample("Exemples", "100%", 70)}} {{Compat("css.selectors.dir")}} La pseudo-classe On notera que la pseudo-classe La pseudo-classe {{csssyntax}} {{EmbedLiveSample("Exemples", "100%", 70)}} {{Compat("css.selectors.dir")}} La pseudo-classe {{EmbedLiveSample('Exemples', '300px', '250px')}} {{Compat("css.selectors.disabled")}} {{cssxref(":enabled")}} La pseudo-classe {{EmbedLiveSample('Exemples', '300px', '250px')}} {{Compat("css.selectors.disabled")}} {{cssxref(":enabled")}} La pseudo-classe Note : Avec {{SpecName("CSS4 Selectors", "#the-empty-pseudo")}}, le sélecteur {{EmbedLiveSample('Exemples','100%','105')}} Les technologies d'assistance telles que les lecteurs d'écran ne peuvent pas analyser un contenu interactif vide. Tout contenu interactif doit avoir un nom accessible, fourni sous la forme d'une valeur textuelle via l'élément parent du contrôle ({{HTMLElement("a")}}, {{HTMLElement("button")}}, etc.). Les noms accessibles pemettent d'exposer le contrôle interactif au sein de l'arbre d'accessibilité, une API communiquant des informations qui peuvent être utilisées par les technologies d'assistance. Le texte fournissant le nom accessible peut être masqué grâce à des propriétés afin de le retirer visuellement mais de le conserver pour les technologies d'assistance. Cette méthode est généralement utilisée pour les boutons utilisant une simple icône comme indication. {{Compat("css.selectors.empty")}} La pseudo-classe Note : Avec {{SpecName("CSS4 Selectors", "#the-empty-pseudo")}}, le sélecteur {{EmbedLiveSample('Exemples','100%','105')}} Les technologies d'assistance telles que les lecteurs d'écran ne peuvent pas analyser un contenu interactif vide. Tout contenu interactif doit avoir un nom accessible, fourni sous la forme d'une valeur textuelle via l'élément parent du contrôle ({{HTMLElement("a")}}, {{HTMLElement("button")}}, etc.). Les noms accessibles pemettent d'exposer le contrôle interactif au sein de l'arbre d'accessibilité, une API communiquant des informations qui peuvent être utilisées par les technologies d'assistance. Le texte fournissant le nom accessible peut être masqué grâce à des propriétés afin de le retirer visuellement mais de le conserver pour les technologies d'assistance. Cette méthode est généralement utilisée pour les boutons utilisant une simple icône comme indication. {{Compat("css.selectors.empty")}} La pseudo-classe Dans cet exemple, les textes des éléments activés seront verts alors que ceux des éléments désactivés seront gris. L'utilisateur peut ainsi reconnaître les éléments avec lesquels interagir. {{Compat("css.selectors.enabled")}} La pseudo-classe Dans cet exemple, les textes des éléments activés seront verts alors que ceux des éléments désactivés seront gris. L'utilisateur peut ainsi reconnaître les éléments avec lesquels interagir. {{Compat("css.selectors.enabled")}} La pseudo-classe Note : Tel que défini initialement, il était nécessaire que l'élément sélectionné ait un élément parent. À partir de la spécification de niveau 4 pour les sélecteurs, cela n'est plus obligatoire. {{EmbedLiveSample('Premier_exemple','100%',300)}} {{EmbedLiveSample('Utiliser_les_listes_non_ordonnées',300,100)}} {{Compat("css.selectors.first-child")}} La pseudo-classe Note : Tel que défini initialement, il était nécessaire que l'élément sélectionné ait un élément parent. À partir de la spécification de niveau 4 pour les sélecteurs, cela n'est plus obligatoire. {{EmbedLiveSample('Premier_exemple','100%',300)}} {{EmbedLiveSample('Utiliser_les_listes_non_ordonnées',300,100)}} {{Compat("css.selectors.first-child")}} La pseudo-classe Note : Dans la version initiale de la spécification (CSS3), l'élément ciblé devait avoir un parent, ce prérequis a désormais été abandonné (cf. spécification des sélecteurs pour CSS4). Note : On peut voir ici que c'est le sélecteur universel qui est pris en compte quand aucun sélecteur simple n'est écrit directement avec la pseudo-classe. Note : Les modifications de styles s'appliquent également aux éléments imbriqués, vous pouvez essayer de modifier l'exemple précédent pour cibler le {{Compat("css.selectors.first-of-type")}} La pseudo-classe Note : Dans la version initiale de la spécification (CSS3), l'élément ciblé devait avoir un parent, ce prérequis a désormais été abandonné (cf. spécification des sélecteurs pour CSS4). Note : On peut voir ici que c'est le sélecteur universel qui est pris en compte quand aucun sélecteur simple n'est écrit directement avec la pseudo-classe. Note : Les modifications de styles s'appliquent également aux éléments imbriqués, vous pouvez essayer de modifier l'exemple précédent pour cibler le {{Compat("css.selectors.first-of-type")}} La pseudo-classe Seul un sous-ensemble restreint de propriétés peut être modifié via cette pseudo-classe : De plus, seules les unités absolues peuvent être utilisées pour les marges. Appuyez sur le bouton "Imprimer!" pour imprimer l'exemple. Les mots sur la première page doivent être quelque part autour du centre, tandis que les autres pages auront leur contenu à la position par défaut. {{EmbedLiveSample("Exemples","80%","150px")}} {{Compat("css.selectors.first")}} La pseudo-classe Seul un sous-ensemble restreint de propriétés peut être modifié via cette pseudo-classe : De plus, seules les unités absolues peuvent être utilisées pour les marges. Appuyez sur le bouton "Imprimer!" pour imprimer l'exemple. Les mots sur la première page doivent être quelque part autour du centre, tandis que les autres pages auront leur contenu à la position par défaut. {{EmbedLiveSample("Exemples","80%","150px")}} {{Compat("css.selectors.first")}} La pseudo-classe Ce sélecteur peut être utile afin de fournir un indicateur de focus différent selon le mode de navigation de l'utilisateur (souris ou clavier). On notera que Firefox prend en charge cette fonctionnalité via une ancienne pseudo-classe préfixée Dans cet exemple, le sélecteur {{EmbedLiveSample('Exemple_simple', '100%', '300')}} Un contrôle personnalisé (par exemple un bouton provenant d'un custom element) peut utiliser {{EmbedLiveSample("Choisir_d'afficher_l’indicateur_de_focus", '100%', '300')}} Il faut s'assurer que l'indicateur visuel de focus puisse être vu par des personnes ayant une vision faible. Cela pourra d'autant plus bénéficier aux personnes qui consultent le document dans un endroit fortement éclairé (dehors au soleil par exemple). La recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast nécessite un contraste minimum de 3 à 1. L'apparition ou la disparition d'un indicateur de focus peut être source de confusion pour les personnes souffrant de troubles cognitifs ou pour les personnes qui ne sont pas habituées à ces interfaces. {{Compat("css.selectors.focus-visible")}} La pseudo-classe Ce sélecteur peut être utile afin de fournir un indicateur de focus différent selon le mode de navigation de l'utilisateur (souris ou clavier). On notera que Firefox prend en charge cette fonctionnalité via une ancienne pseudo-classe préfixée Dans cet exemple, le sélecteur {{EmbedLiveSample('Exemple_simple', '100%', '300')}} Un contrôle personnalisé (par exemple un bouton provenant d'un custom element) peut utiliser {{EmbedLiveSample("Choisir_d'afficher_l’indicateur_de_focus", '100%', '300')}} Il faut s'assurer que l'indicateur visuel de focus puisse être vu par des personnes ayant une vision faible. Cela pourra d'autant plus bénéficier aux personnes qui consultent le document dans un endroit fortement éclairé (dehors au soleil par exemple). La recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast nécessite un contraste minimum de 3 à 1. L'apparition ou la disparition d'un indicateur de focus peut être source de confusion pour les personnes souffrant de troubles cognitifs ou pour les personnes qui ne sont pas habituées à ces interfaces. {{Compat("css.selectors.focus-visible")}} La pseudo-classe Cette pseudo-classe s'applique également aux descendants de l'élément ciblé ainsi qu'aux descendants dont la racine est la racine d'un arbre du {{Glossary("Shadow DOM")}}. Ce sélecteur est notamment utile lorsqu'on veut, par exemple, mettre en avant l'ensemble d'un formulaire lorsque l'utilisateur passe le focus sur l'un de ses éléments {{HTMLElement("input")}}. {{EmbedLiveSample("Exemples", 500, 150)}} {{Compat("css.selectors.focus-within")}} La pseudo-classe Cette pseudo-classe s'applique également aux descendants de l'élément ciblé ainsi qu'aux descendants dont la racine est la racine d'un arbre du {{Glossary("Shadow DOM")}}. Ce sélecteur est notamment utile lorsqu'on veut, par exemple, mettre en avant l'ensemble d'un formulaire lorsque l'utilisateur passe le focus sur l'un de ses éléments {{HTMLElement("input")}}. {{EmbedLiveSample("Exemples", 500, 150)}} {{Compat("css.selectors.focus-within")}} La pseudo-classe Cette pseudo-classe ne s'applique qu'aux éléments avec le focus, elle ne s'applique pas à ses parents (comme {{cssxref(":checked")}}, {{cssxref(":enabled")}} mais pas comme {{cssxref(":active")}} ou {{cssxref(":hover")}}). {{EmbedLiveSample('Exemples', '100%', 40)}} Il faut s'assurer que l'indicateur visuel de focus puisse être vu par des personnes ayant une vision faible. Cela pourra d'autant plus bénéficier aux personnes qui consultent le document dans un endroit fortement éclairé (dehors au soleil par exemple). La recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast nécessite un contraste minimum de 3 à 1. Il ne faut jamais retirer l'indicateur de focus sans le remplacer par un autre indicateur qui respecte la recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast : {{Compat("css.selectors.focus")}} La pseudo-classe Cette pseudo-classe ne s'applique qu'aux éléments avec le focus, elle ne s'applique pas à ses parents (comme {{cssxref(":checked")}}, {{cssxref(":enabled")}} mais pas comme {{cssxref(":active")}} ou {{cssxref(":hover")}}). {{EmbedLiveSample('Exemples', '100%', 40)}} Il faut s'assurer que l'indicateur visuel de focus puisse être vu par des personnes ayant une vision faible. Cela pourra d'autant plus bénéficier aux personnes qui consultent le document dans un endroit fortement éclairé (dehors au soleil par exemple). La recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast nécessite un contraste minimum de 3 à 1. Il ne faut jamais retirer l'indicateur de focus sans le remplacer par un autre indicateur qui respecte la recommandation WCAG 2.1 SC 1.4.11 Non-Text Contrast : {{Compat("css.selectors.focus")}} La pseudo-classe La pseudo-classe Dans cet exemple, on change la couleur d'un bouton selon que le document est en plein écran ou non. On n'utilise pas JavaScript pour changer les styles. On utilise deux règles. La première qui permet de définir la couleur d'arrière plan pour le bouton « Passer en mode plein écran » lorsque l'élément n'est pas en plein écran. Pour distinguer ce cas, on utilise Lorsque le document est en mode plein écran, on utilise cette fois-ci la pseudo-classe Dans ce fragment de code HTML, c'est l'élément {{HTMLElement("button")}} avec l'identifiant {{Compat("css.selectors.fullscreen")}} La pseudo-classe La pseudo-classe Dans cet exemple, on change la couleur d'un bouton selon que le document est en plein écran ou non. On n'utilise pas JavaScript pour changer les styles. On utilise deux règles. La première qui permet de définir la couleur d'arrière plan pour le bouton « Passer en mode plein écran » lorsque l'élément n'est pas en plein écran. Pour distinguer ce cas, on utilise Lorsque le document est en mode plein écran, on utilise cette fois-ci la pseudo-classe Dans ce fragment de code HTML, c'est l'élément {{HTMLElement("button")}} avec l'identifiant {{Compat("css.selectors.fullscreen")}} {{CSSRef}} Le sélecteur de pseudo-classe CSS {{Specifications}} {{Compat}} {{CSSRef}} Le sélecteur de pseudo-classe CSS {{Specifications}} {{Compat}} La pseudo-classe Cette pseudo-classe Note : Pour des raisons de performances et dans la spécification actuelle, Dans l'exemple suivant, le sélecteur permet de cibler uniquement les éléments {{HTMLElement("a")}} qui contiennent un fils direct {{HTMLElement("img")}} : Le sélecteur qui suit correspond aux éléments {{HTMLElement("h1")}} qui précèdent directement un élément {{HTMLElement("p")}} : {{Compat("css.selectors.has")}} La pseudo-classe Cette pseudo-classe Note : Pour des raisons de performances et dans la spécification actuelle, Dans l'exemple suivant, le sélecteur permet de cibler uniquement les éléments {{HTMLElement("a")}} qui contiennent un fils direct {{HTMLElement("img")}} : Le sélecteur qui suit correspond aux éléments {{HTMLElement("h1")}} qui précèdent directement un élément {{HTMLElement("p")}} : {{Compat("css.selectors.has")}} La fonction de pseudo-classe Le scénario principal pour utiliser cette fonction consiste à vouloir cibler une certaine classe d'éléments personnalisés : pour cela, on passera la classe comme argument de la fonction Note : Cette fonction n'a aucun effet si elle est utilisée en dehors d'un shadow DOM. Les fragments de code suivants sont extraits du dépôt d'exemple host-selectors (voir le résultat live). Dans cet exemple, on dispose d'un élément personnalisé, Dans le constructeur de l'élément, on crée un élément La règle {{Compat("css.selectors.hostfunction")}} La fonction de pseudo-classe Le scénario principal pour utiliser cette fonction consiste à vouloir cibler une certaine classe d'éléments personnalisés : pour cela, on passera la classe comme argument de la fonction Note : Cette fonction n'a aucun effet si elle est utilisée en dehors d'un shadow DOM. Les fragments de code suivants sont extraits du dépôt d'exemple host-selectors (voir le résultat live). Dans cet exemple, on dispose d'un élément personnalisé, Dans le constructeur de l'élément, on crée un élément La règle {{Compat("css.selectors.hostfunction")}} La pseudo-classe Un cas d'usage fréquent consiste à utilise un sélecteur de descendant — Note : Cette pseudo-classe n'a aucun effet en dehors d'un shadow DOM. Les fragments de code suivants sont tirés du dépôt host-selectors (voir le résultat live). Dans cet exemple, on dispose d'un élément personnalisé — Dans le constructeur de l'élément, on crée des éléments Les règles {{Compat("css.selectors.host-context")}} La pseudo-classe Un cas d'usage fréquent consiste à utilise un sélecteur de descendant — Note : Cette pseudo-classe n'a aucun effet en dehors d'un shadow DOM. Les fragments de code suivants sont tirés du dépôt host-selectors (voir le résultat live). Dans cet exemple, on dispose d'un élément personnalisé — Dans le constructeur de l'élément, on crée des éléments Les règles {{Compat("css.selectors.host-context")}} La pseudo-classe Note : Cette pseudo-classe n'a aucun effet lorsqu'elle est utilisée à l'extérieur d'un shadow DOM. Les fragments de code qui suivent sont extraits du dépôt d'exemple host-selectors (voir le résultat live). Dans cet exemple, on dispose d'un élément personnalisé Pour le constructeur de cet élément, on crée des éléments La règle {{Compat("css.selectors.host")}} La pseudo-classe Note : Cette pseudo-classe n'a aucun effet lorsqu'elle est utilisée à l'extérieur d'un shadow DOM. Les fragments de code qui suivent sont extraits du dépôt d'exemple host-selectors (voir le résultat live). Dans cet exemple, on dispose d'un élément personnalisé Pour le constructeur de cet élément, on crée des éléments La règle {{Compat("css.selectors.host")}} La pseudo-classe La mise en forme ciblée par cette pseudo-classe peut être surchargée par d'autres pseudo-classes relatives aux liens hypertextes comme {{cssxref(":link")}}, {{cssxref(":visited")}}, et {{cssxref(":active")}}, apparaissant dans des règles subséquentes. Pour décorer les liens sans effet de bord problématique, on placera la règle La pseudo-classe Note : sur les écrans tactiles, {{EmbedLiveSample('Exemples')}} Note : On peut utiliser la pseudo-classe {{Compat("css.selectors.hover")}} La pseudo-classe La mise en forme ciblée par cette pseudo-classe peut être surchargée par d'autres pseudo-classes relatives aux liens hypertextes comme {{cssxref(":link")}}, {{cssxref(":visited")}}, et {{cssxref(":active")}}, apparaissant dans des règles subséquentes. Pour décorer les liens sans effet de bord problématique, on placera la règle La pseudo-classe Note : sur les écrans tactiles, {{EmbedLiveSample('Exemples')}} Note : On peut utiliser la pseudo-classe {{Compat("css.selectors.hover")}} La pseudo-classe Cette pseudo-classe s'avère utile lorsqu'on souhaite fournir une indication visuelle quand la valeur est en dehors de la fourchette autorisée. Note : Cette pseudo-classe ne s'applique qu'aux éléments qui ont des limites de valeurs (autrement dit la valeur doit être comprise dans un intervalle donné). Sans ces limitations, l'élément ne pourra pas être vu comme dans l'intervalle ou en dehors de l'intervalle. {{Compat("css.selectors.in-range")}} La pseudo-classe Cette pseudo-classe s'avère utile lorsqu'on souhaite fournir une indication visuelle quand la valeur est en dehors de la fourchette autorisée. Note : Cette pseudo-classe ne s'applique qu'aux éléments qui ont des limites de valeurs (autrement dit la valeur doit être comprise dans un intervalle donné). Sans ces limitations, l'élément ne pourra pas être vu comme dans l'intervalle ou en dehors de l'intervalle. {{Compat("css.selectors.in-range")}} La pseudo-classe Cela inclut : {{EmbedLiveSample('Case_à_cocher_et_bouton_radio', '100%', 50)}} {{EmbedLiveSample('Élément_progress', '100%', 30)}} {{Compat("css.selectors.indeterminate")}} La pseudo-classe Cela inclut : {{EmbedLiveSample('Case_à_cocher_et_bouton_radio', '100%', 50)}} {{EmbedLiveSample('Élément_progress', '100%', 30)}} {{Compat("css.selectors.indeterminate")}} La pseudo-classe Cet exemple présente un formulaire simple dont les éléments sont verts lors qu'ils sont valides et rouges lorsqu'ils ne le sont pas. {{EmbedLiveSample('Exemple','600',120)}} La couleur rouge est généralement utilisée afin d'indiquer une valeur invalide. Les personnes ayant du mal à différencier les couleurs ne seront pas capables de déterminer la validité du champ si celui-ci n'est pas accompagné d'un indicateur qui n'est pas basé sur une couleur. Pour résoudre ce problème, on pourra utiliser un texte indicatif et/ou une icône. Si un quelconque bouton radio dans un groupe (c'est-à-dire, avec la même valeur pour leur attribut Par défaut, Gecko n'applique pas de style particulier à la pseudo-classe Ce halo peut être désactivé avec les règles suivantes : {{Compat("css.selectors.invalid")}} La pseudo-classe Cet exemple présente un formulaire simple dont les éléments sont verts lors qu'ils sont valides et rouges lorsqu'ils ne le sont pas. {{EmbedLiveSample('Exemple','600',120)}} La couleur rouge est généralement utilisée afin d'indiquer une valeur invalide. Les personnes ayant du mal à différencier les couleurs ne seront pas capables de déterminer la validité du champ si celui-ci n'est pas accompagné d'un indicateur qui n'est pas basé sur une couleur. Pour résoudre ce problème, on pourra utiliser un texte indicatif et/ou une icône. Si un quelconque bouton radio dans un groupe (c'est-à-dire, avec la même valeur pour leur attribut Par défaut, Gecko n'applique pas de style particulier à la pseudo-classe Ce halo peut être désactivé avec les règles suivantes : {{Compat("css.selectors.invalid")}} La pseudo-classe La plupart des navigateurs prennent encore en charge cette fonctionnalité via Note : {{EmbedLiveSample('Exemple_fonctionnant_pour_les_différents_navigateurs', '100%', '300')}} La pseudo-classe pourra être remplacée par : En revanche, le modèle d'usage suivant n'est pas recommandée (cf. la section qui suit sur les performances) : La pseudo-classe Par exemple, pour mettre en forme les éléments {{HTMLElement("h1")}} à différents niveaux sans utiliser Avec À la différence des listes de sélecteurs, la pseudo-classe Le sélecteur ci-dessus sera analysé sans problème et permettra de cibler L'exemple ci-dessus ne sera pas appliqué par les navigateurs qui ne prennent pas en charge {{Bug(561154)}} suit un problème de spécificité relatif à Ainsi : sera plus lent que et cette dernière version sera plus rapide : {{Compat("css.selectors.is")}} La pseudo-classe La plupart des navigateurs prennent encore en charge cette fonctionnalité via Note : {{EmbedLiveSample('Exemple_fonctionnant_pour_les_différents_navigateurs', '100%', '300')}} La pseudo-classe pourra être remplacée par : En revanche, le modèle d'usage suivant n'est pas recommandée (cf. la section qui suit sur les performances) : La pseudo-classe Par exemple, pour mettre en forme les éléments {{HTMLElement("h1")}} à différents niveaux sans utiliser Avec À la différence des listes de sélecteurs, la pseudo-classe Le sélecteur ci-dessus sera analysé sans problème et permettra de cibler L'exemple ci-dessus ne sera pas appliqué par les navigateurs qui ne prennent pas en charge {{Bug(561154)}} suit un problème de spécificité relatif à Ainsi : sera plus lent que et cette dernière version sera plus rapide : {{Compat("css.selectors.is")}} La pseudo-classe Note : En HTML, la langue d'un élément est déterminée par l'attribut {{htmlattrxref("lang")}}, l'élément {{HTMLElement("meta")}} et d'autres informations comme les en-têtes HTTP ; pour les autres types de documents, d'autres méthodes peuvent être utilisées. Les chaînes de caractères admissibles pour définir des langues sont définies dans la spécification HTML 4.0. Dans cet exemple, la pseudo-classe {{EmbedLiveSample('Exemple', '350')}} {{Compat("css.selectors.lang")}} La pseudo-classe Note : En HTML, la langue d'un élément est déterminée par l'attribut {{htmlattrxref("lang")}}, l'élément {{HTMLElement("meta")}} et d'autres informations comme les en-têtes HTTP ; pour les autres types de documents, d'autres méthodes peuvent être utilisées. Les chaînes de caractères admissibles pour définir des langues sont définies dans la spécification HTML 4.0. Dans cet exemple, la pseudo-classe {{EmbedLiveSample('Exemple', '350')}} {{Compat("css.selectors.lang")}} La pseudo-classe Note : En CSS3, l'élément ciblé devait avoir un élément parent, cette restriction a été levée en CSS4. {{EmbedLiveSample('Exemples', '100%', 100)}} {{Compat("css.selectors.last-child")}} La pseudo-classe Note : En CSS3, l'élément ciblé devait avoir un élément parent, cette restriction a été levée en CSS4. {{EmbedLiveSample('Exemples', '100%', 100)}} {{Compat("css.selectors.last-child")}} La pseudo-classe Note : Dans la version initiale de la spécification (CSS3), l'élément ciblé devait avoir un parent, ce n'est plus nécessaire depuis (spécification pour les sélecteurs de CSS4). Pour cibler le dernier élément {{HTMLElement("em")}} au sein d'un élément {{HTMLElement("p")}}, on pourra utiliser la règle qui suit (illustrée ensuite sur un fragment HTML). {{Compat("css.selectors.last-of-type")}} La pseudo-classe Note : Dans la version initiale de la spécification (CSS3), l'élément ciblé devait avoir un parent, ce n'est plus nécessaire depuis (spécification pour les sélecteurs de CSS4). Pour cibler le dernier élément {{HTMLElement("em")}} au sein d'un élément {{HTMLElement("p")}}, on pourra utiliser la règle qui suit (illustrée ensuite sur un fragment HTML). {{Compat("css.selectors.last-of-type")}} La pseudo-classe La position de la page soit à gauche ou à droite dépend de la direction d'écriture globale du document. Par exemple, si la première page est selon la direction « gauche à droite » alors elle sera une page {{cssxref(":right")}}, si elle est définie de « droite à gauche » ce sera une page Note : Il n'est pas possible de changer toutes les propriétés CSS. Seules les propriétés {{cssxref("margin")}}, {{cssxref("padding")}}, {{cssxref("border")}} et {{cssxref("background")}} de la boîte correspondant à la page peuvent être modifiées. Toutes les autres propriétés CSS seront ignorées. Seule la boîte correspondant à la page pourra être affectée, le contenu du document ne pourra pas être modifié. {{Compat("css.selectors.left")}} La pseudo-classe La position de la page soit à gauche ou à droite dépend de la direction d'écriture globale du document. Par exemple, si la première page est selon la direction « gauche à droite » alors elle sera une page {{cssxref(":right")}}, si elle est définie de « droite à gauche » ce sera une page Note : Il n'est pas possible de changer toutes les propriétés CSS. Seules les propriétés {{cssxref("margin")}}, {{cssxref("padding")}}, {{cssxref("border")}} et {{cssxref("background")}} de la boîte correspondant à la page peuvent être modifiées. Toutes les autres propriétés CSS seront ignorées. Seule la boîte correspondant à la page pourra être affectée, le contenu du document ne pourra pas être modifié. {{Compat("css.selectors.left")}} La pseudo-classe Afin que la mise en forme s'applique au mieux, la règle Note : On utilisera {{cssxref("any-link")}} pour sélectionner un élément qu'il ait été visité ou non. {{EmbedLiveSample("Exemples","100%","200")}} {{Compat("css.selectors.link")}} La pseudo-classe Afin que la mise en forme s'applique au mieux, la règle Note : On utilisera {{cssxref("any-link")}} pour sélectionner un élément qu'il ait été visité ou non. {{EmbedLiveSample("Exemples","100%","200")}} {{Compat("css.selectors.link")}} {{CSSRef}} La pseudo-classe CSS {{csssyntax}} {{EmbedLiveSample("Examples")}} {{Specifications}} {{Compat}} {{CSSRef}} La pseudo-classe CSS {{csssyntax}} {{EmbedLiveSample("Examples")}} {{Specifications}} {{Compat}} La pseudo-classe de négation, La spécificité de la pseudo-classe Note :
- La pseudo-classe Attention : la possibilité d'avoir plusieurs sélecteurs est expérimentale et n'est pas encore largement prise en charge. {{EmbedLiveSample('Exemples')}} {{Compat("css.selectors.not")}} La pseudo-classe de négation, La spécificité de la pseudo-classe Note :
+ La pseudo-classe Attention : la possibilité d'avoir plusieurs sélecteurs est expérimentale et n'est pas encore largement prise en charge. {{EmbedLiveSample('Exemples')}} {{Compat("css.selectors.not")}} La pseudo-classe Note : Pour CSS3, pour que l'élément soit ciblé, il faut qu'il ait un élément parent. En CSS4, cette restriction a été levée. Illustrons cela avec quelques exemples : Les valeurs des coefficients Cette pseudo-classe pourra ainsi être utilisée pour mettre en forme certaines lignes d'un tableau. La pseudo-classe {{Compat("css.selectors.nth-child")}} La pseudo-classe Note : Pour CSS3, pour que l'élément soit ciblé, il faut qu'il ait un élément parent. En CSS4, cette restriction a été levée. Illustrons cela avec quelques exemples : Les valeurs des coefficients Cette pseudo-classe pourra ainsi être utilisée pour mettre en forme certaines lignes d'un tableau. La pseudo-classe {{Compat("css.selectors.nth-child")}} {{CSSRef}}{{SeeCompatTable}} La pseudo-classe CSS La pseudo-classe Voir {{Cssxref(":nth-child")}} pour une explication plus détaillée de cette syntaxe. {{csssyntax}} {{EmbedLiveSample('basic_example', 250, 200)}} {{Specifications}} {{Compat}} {{CSSRef}}{{SeeCompatTable}} La pseudo-classe CSS La pseudo-classe Voir {{Cssxref(":nth-child")}} pour une explication plus détaillée de cette syntaxe. {{csssyntax}} {{EmbedLiveSample('basic_example', 250, 200)}} {{Specifications}} {{Compat}} La pseudo-classe Cette pseudo-classe fonctionne comme {{cssxref(":nth-child")}} mais cette fois-ci, le comptage s'effectue depuis la fin. Pour plus d'informations sur la syntaxe des arguments, voir {{cssxref(":nth-child")}}. La pseudo-classe {{EmbedLiveSample('Exemple_appliqué', '100%', 150)}} {{EmbedLiveSample('Cas_aux_limites')}} Il est possible d'utiliser les compteurs pour mettre en forme une liste selon le nombre d'éléments qu'elle contient. Dans l'exemple qui suit, on met les éléments de la liste en rouge si celle-ci contient au moins trois éléments. Pour cela, on combine la pseudo-classe {{EmbedLiveSample("Mise_en_forme_selon_le_nombre_d’éléments", '100%', 270)}} {{Compat("css.selectors.nth-last-child")}} La pseudo-classe Cette pseudo-classe fonctionne comme {{cssxref(":nth-child")}} mais cette fois-ci, le comptage s'effectue depuis la fin. Pour plus d'informations sur la syntaxe des arguments, voir {{cssxref(":nth-child")}}. La pseudo-classe {{EmbedLiveSample('Exemple_appliqué', '100%', 150)}} {{EmbedLiveSample('Cas_aux_limites')}} Il est possible d'utiliser les compteurs pour mettre en forme une liste selon le nombre d'éléments qu'elle contient. Dans l'exemple qui suit, on met les éléments de la liste en rouge si celle-ci contient au moins trois éléments. Pour cela, on combine la pseudo-classe {{EmbedLiveSample("Mise_en_forme_selon_le_nombre_d’éléments", '100%', 270)}} {{Compat("css.selectors.nth-last-child")}} {{CSSRef}}{{SeeCompatTable}} La pseudo-classe CSS La pseudo-classe Voir {{Cssxref(":nth-child")}} pour une explication plus détaillée de cette syntaxe. {{csssyntax}} {{EmbedLiveSample('basic_example', 250, 200)}} {{Specifications}} {{Compat}} {{CSSRef}}{{SeeCompatTable}} La pseudo-classe CSS La pseudo-classe Voir {{Cssxref(":nth-child")}} pour une explication plus détaillée de cette syntaxe. {{csssyntax}} {{EmbedLiveSample('basic_example', 250, 200)}} {{Specifications}} {{Compat}} La pseudo-classe Pour plus de détails sur les arguments passés à cette pseudo-classe, voir {{cssxref(":nth-child")}}. La pseudo-classe Ici, on souhaite mettre en avant le deuxième élément {{HTMLElement("span")}} en partant de la fin : {{Compat("css.selectors.nth-last-of-type")}} La pseudo-classe Pour plus de détails sur les arguments passés à cette pseudo-classe, voir {{cssxref(":nth-child")}}. La pseudo-classe Ici, on souhaite mettre en avant le deuxième élément {{HTMLElement("span")}} en partant de la fin : {{Compat("css.selectors.nth-last-of-type")}} La pseudo-classe La pseudo-classe Pour une explication plus détaillée de sa syntax voir {{Cssxref(":nth-child")}} Dans cet exemple nous allons colorer un paragrapher sur deux avec des couleurs différentes et mettre le premier paragraphe en gras {{Compat("css.selectors.nth-of-type")}} La pseudo-classe La pseudo-classe Pour une explication plus détaillée de sa syntax voir {{Cssxref(":nth-child")}} Dans cet exemple nous allons colorer un paragrapher sur deux avec des couleurs différentes et mettre le premier paragraphe en gras {{Compat("css.selectors.nth-of-type")}} La pseudo-classe Note : En CSS3, pour cibler l'élément, il fallait que celui-ci ait un élément parent. Cette restriction a été levée avec CSS4. {{EmbedLiveSample('Exemple_simple', '100%', 150)}} {{EmbedLiveSample('Exemple_avec_une_liste', '100%', 150)}} {{Compat("css.selectors.only-child")}} La pseudo-classe Note : En CSS3, pour cibler l'élément, il fallait que celui-ci ait un élément parent. Cette restriction a été levée avec CSS4. {{EmbedLiveSample('Exemple_simple', '100%', 150)}} {{EmbedLiveSample('Exemple_avec_une_liste', '100%', 150)}} {{Compat("css.selectors.only-child")}} La pseudo-classe Note : Dans la version initiale de la spécification (CSS3), l'élément ciblé devait avoir un parent, ce n'est plus nécessaire depuis (spécification pour les sélecteurs de CSS4). {{EmbedLiveSample('Exemples', '100%', 150)}} {{Compat("css.selectors.only-of-type")}} La pseudo-classe Note : Dans la version initiale de la spécification (CSS3), l'élément ciblé devait avoir un parent, ce n'est plus nécessaire depuis (spécification pour les sélecteurs de CSS4). {{EmbedLiveSample('Exemples', '100%', 150)}} {{Compat("css.selectors.only-of-type")}} La pseudo-classe Note : Afin de mettre en forme les champs obligatoires, on pourra utiliser la pseudo-classe {{cssxref(":required")}}. {{EmbedLiveSample('Exemples','100%',150)}} Si un formulaire ({{HTMLElement("form")}}) contient des champs ({{htmlelement("input")}}) optionnels, les champs obligatoires doivent être indiqués avec l'attribut {{htmlattrxref("input","required")}}. Ainsi, les personnes utilisant des outils d'assistance (par exemple un lecteur d'écran) pourront savoir que ces champs ont besoin d'un contenu valide afin de pouvoir envoyer le formulaire. Les champs obligatoires devraient également être indiqués visuellement et cette indication ne doit pas uniquement être fournie avec une couleur. Généralement, un texte descriptif ou une icône est utilisé. {{Compat("css.selectors.optional")}} La pseudo-classe Note : Afin de mettre en forme les champs obligatoires, on pourra utiliser la pseudo-classe {{cssxref(":required")}}. {{EmbedLiveSample('Exemples','100%',150)}} Si un formulaire ({{HTMLElement("form")}}) contient des champs ({{htmlelement("input")}}) optionnels, les champs obligatoires doivent être indiqués avec l'attribut {{htmlattrxref("input","required")}}. Ainsi, les personnes utilisant des outils d'assistance (par exemple un lecteur d'écran) pourront savoir que ces champs ont besoin d'un contenu valide afin de pouvoir envoyer le formulaire. Les champs obligatoires devraient également être indiqués visuellement et cette indication ne doit pas uniquement être fournie avec une couleur. Généralement, un texte descriptif ou une icône est utilisé. {{Compat("css.selectors.optional")}} La pseudo-classe Note : Cette pseudo-classe s'applique seulement aux éléments qui ont des valeurs limites. {{EmbedLiveSample('Exemples',600,140)}} {{Compat("css.selectors.out-of-range")}} La pseudo-classe Note : Cette pseudo-classe s'applique seulement aux éléments qui ont des valeurs limites. {{EmbedLiveSample('Exemples',600,140)}} {{Compat("css.selectors.out-of-range")}} {{CSSRef}} Le sélecteur de pseudo-classe CSS {{csssyntax}} {{Specifications}} {{Compat}} {{CSSRef}} Le sélecteur de pseudo-classe CSS {{csssyntax}} {{Specifications}} {{Compat}} La pseudo-classe {{EmbedLiveSample("Exemples", 200, 60)}} Sur certains écrans plus étroits (tels que ceux des smartphones), la largeur des boîtes de recherche et celle des champs de formulaire peut être réduite fortement. Le texte de substitution peut donc être tronqué de façon indésirable. On peut alors utiliser {{cssxref("text-overflow")}} pour gérer cela gracieusement. {{EmbedLiveSample("Dépassement_du_texte", 200, 60)}} {{EmbedLiveSample("Texte_coloré")}} {{EmbedLiveSample("Champ_de_saisie_personnalisé", 200, 180)}} {{Compat("css.selectors.placeholder-shown")}} La pseudo-classe {{EmbedLiveSample("Exemples", 200, 60)}} Sur certains écrans plus étroits (tels que ceux des smartphones), la largeur des boîtes de recherche et celle des champs de formulaire peut être réduite fortement. Le texte de substitution peut donc être tronqué de façon indésirable. On peut alors utiliser {{cssxref("text-overflow")}} pour gérer cela gracieusement. {{EmbedLiveSample("Dépassement_du_texte", 200, 60)}} {{EmbedLiveSample("Texte_coloré")}} {{EmbedLiveSample("Champ_de_saisie_personnalisé", 200, 180)}} {{Compat("css.selectors.placeholder-shown")}} La pseudo-classe Note : Ce sélecteur ne permet pas de cibler que les éléments {{HTMLElement("input")}} ou {{HTMLElement("textarea")}} avec {{htmlattrxref("readonly", "input")}}. Il permet de sélectionner n'importe quel élément qui ne peut pas être édité par l'utilisateur. {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.read-only")}} La pseudo-classe Note : Ce sélecteur ne permet pas de cibler que les éléments {{HTMLElement("input")}} ou {{HTMLElement("textarea")}} avec {{htmlattrxref("readonly", "input")}}. Il permet de sélectionner n'importe quel élément qui ne peut pas être édité par l'utilisateur. {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.read-only")}} La pseudo-classe Note : Ce sélecteur ne sélectionne pas que les champs de saisie textuels ({{HTMLElement("input")}} ou {{HTMLElement("textarea")}}). Il permet de sélectionner n'importe quel élément qui peut être édité par l'utilisateur (par exemple un élément {{htmlelement("p")}} avec un attribut {{htmlattrxref("contenteditable")}}). {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.read-write")}} La pseudo-classe Note : Ce sélecteur ne sélectionne pas que les champs de saisie textuels ({{HTMLElement("input")}} ou {{HTMLElement("textarea")}}). Il permet de sélectionner n'importe quel élément qui peut être édité par l'utilisateur (par exemple un élément {{htmlelement("p")}} avec un attribut {{htmlattrxref("contenteditable")}}). {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.read-write")}} La pseudo-classe Note : La pseudo-classe {{cssxref(":optional")}} pourra être utilisée pour mettre en forme les champs facultatifs. {{EmbedLiveSample('Exemples','100%',150)}} Si un formulaire ({{HTMLElement("form")}}) contient des champs ({{htmlelement("input")}}) optionnels, les champs obligatoires doivent être indiqués avec l'attribut {{htmlattrxref("input","required")}}. Ainsi, les personnes utilisant des outils d'assistance (par exemple un lecteur d'écran) pourront savoir que ces champs ont besoin d'un contenu valide afin de pouvoir envoyer le formulaire. Les champs obligatoires devraient également être indiqués visuellement et cette indication ne doit pas uniquement être fournie avec une couleur. Généralement, un texte descriptif ou une icône est utilisé. {{Compat("css.selectors.required")}} La pseudo-classe Note : La pseudo-classe {{cssxref(":optional")}} pourra être utilisée pour mettre en forme les champs facultatifs. {{EmbedLiveSample('Exemples','100%',150)}} Si un formulaire ({{HTMLElement("form")}}) contient des champs ({{htmlelement("input")}}) optionnels, les champs obligatoires doivent être indiqués avec l'attribut {{htmlattrxref("input","required")}}. Ainsi, les personnes utilisant des outils d'assistance (par exemple un lecteur d'écran) pourront savoir que ces champs ont besoin d'un contenu valide afin de pouvoir envoyer le formulaire. Les champs obligatoires devraient également être indiqués visuellement et cette indication ne doit pas uniquement être fournie avec une couleur. Généralement, un texte descriptif ou une icône est utilisé. {{Compat("css.selectors.required")}} La pseudo-classe La position de la page (à gauche ou à droite) dépend de la direction d'écriture appliquée au document. Si la première page est écrite de la gauche vers la droite, alors ce sera une page droite, sinon ce sera une page gauche (qui pourra alors être ciblée avec {{cssxref(":left")}}). Note : Il n'est pas possible de modifier toutes les propriétés CSS. Seules les propriétés {{cssxref("margin")}}, {{cssxref("padding")}}, {{cssxref("border")}}, and {{cssxref("background")}} de la boîte correspondant à la page peuvent être modifiées. Toutes les autres propriétés CSS seront ignorées, et seulement la boîte correspondant à la page, et en aucun cas le contenu du document pourront être affectés. {{Compat("css.selectors.right")}} La pseudo-classe La position de la page (à gauche ou à droite) dépend de la direction d'écriture appliquée au document. Si la première page est écrite de la gauche vers la droite, alors ce sera une page droite, sinon ce sera une page gauche (qui pourra alors être ciblée avec {{cssxref(":left")}}). Note : Il n'est pas possible de modifier toutes les propriétés CSS. Seules les propriétés {{cssxref("margin")}}, {{cssxref("padding")}}, {{cssxref("border")}}, and {{cssxref("background")}} de la boîte correspondant à la page peuvent être modifiées. Toutes les autres propriétés CSS seront ignorées, et seulement la boîte correspondant à la page, et en aucun cas le contenu du document pourront être affectés. {{Compat("css.selectors.right")}} La pseudo-classe {{Compat("css.selectors.root")}} La pseudo-classe {{Compat("css.selectors.root")}} La pseudo-classe À l'heure actuelle, lorsqu'elle est utilisée dans une feuille de style, Dans cet exemple, on voit comment utiliser {{Compat("css.selectors.scope")}} La pseudo-classe À l'heure actuelle, lorsqu'elle est utilisée dans une feuille de style, Dans cet exemple, on voit comment utiliser {{Compat("css.selectors.scope")}} La pseudo-classe CSS {{CSSSyntax}} La pseudo-classe {{Specifications}} {{Compat}} La pseudo-classe CSS {{CSSSyntax}} La pseudo-classe {{Specifications}} {{Compat}} La pseudo-classe Les URI comportant des fragments d'identifiant peuvent être utilisées pour créer des liens vers un élément donné d'un document qu'on appellera l'élément cible (target element). Voici un exemple d'URI qui pointe vers une ancre intitulée L'élément suivant sera donc ciblé par le sélecteur Note : L'attribut La pseudo-classe {{EmbedLiveSample("Manipuler_les_éléments_avec_display:_none")}} {{EmbedLiveSample("Révéler_des_éléments")}} {{Compat("css.selectors.target")}} La pseudo-classe Les URI comportant des fragments d'identifiant peuvent être utilisées pour créer des liens vers un élément donné d'un document qu'on appellera l'élément cible (target element). Voici un exemple d'URI qui pointe vers une ancre intitulée L'élément suivant sera donc ciblé par le sélecteur Note : L'attribut La pseudo-classe {{EmbedLiveSample("Manipuler_les_éléments_avec_display:_none")}} {{EmbedLiveSample("Révéler_des_éléments")}} {{Compat("css.selectors.target")}} La pseudo-classe Cette pseudo-classe est appliquée d'après les règles suivantes : Si le contrôle était valide au moment où l'utilisateur a commencé à l'utiliser, la mise en forme liée à la validité est uniquement modifiée lorsque l'utilisateur interagit avec un autre contrôle. Toutefois, si l'utilisateur tente de corriger une valeur invalide, le contrôle indique immédiatement lorsque celle-ci devient valide. Les éléments obligatoires sont considérés comme invalides uniquement si l'utilisateur les modifie ou essaie de soumettre une valeur invalide non-modifiée. Par défaut, Gecko applique un style qui crée un halo rouge (grâce à {{cssxref("box-shadow")}}) autour des éléments avec cette pseudo-clésse. Pour un exemple illustrant comment surcharger le style par défaut, on pourra utiliser la pseudo-classe {{cssxref(":invalid")}}. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-ui-invalid")}} La pseudo-classe Cette pseudo-classe est appliquée d'après les règles suivantes : Si le contrôle était valide au moment où l'utilisateur a commencé à l'utiliser, la mise en forme liée à la validité est uniquement modifiée lorsque l'utilisateur interagit avec un autre contrôle. Toutefois, si l'utilisateur tente de corriger une valeur invalide, le contrôle indique immédiatement lorsque celle-ci devient valide. Les éléments obligatoires sont considérés comme invalides uniquement si l'utilisateur les modifie ou essaie de soumettre une valeur invalide non-modifiée. Par défaut, Gecko applique un style qui crée un halo rouge (grâce à {{cssxref("box-shadow")}}) autour des éléments avec cette pseudo-clésse. Pour un exemple illustrant comment surcharger le style par défaut, on pourra utiliser la pseudo-classe {{cssxref(":invalid")}}. Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-ui-invalid")}} La pseudo-classe Cet exemple présente un formulaire dont les éléments se colorent en vert lorsqu'ils sont valides et en rouge lorsqu'ils sont invalides. {{EmbedLiveSample('Exemples',600,150)}} La couleur rouge est généralement utilisée afin d'indiquer une valeur invalide. Les personnes ayant du mal à différencier les couleurs ne seront pas capables de déterminer la validité du champ si celui-ci n'est pas accompagné d'un indicateur qui n'est pas basé sur une couleur. Pour résoudre ce problème, on pourra utiliser un texte indicatif et/ou une icône. {{Compat("css.selectors.valid")}} La pseudo-classe Cet exemple présente un formulaire dont les éléments se colorent en vert lorsqu'ils sont valides et en rouge lorsqu'ils sont invalides. {{EmbedLiveSample('Exemples',600,150)}} La couleur rouge est généralement utilisée afin d'indiquer une valeur invalide. Les personnes ayant du mal à différencier les couleurs ne seront pas capables de déterminer la validité du champ si celui-ci n'est pas accompagné d'un indicateur qui n'est pas basé sur une couleur. Pour résoudre ce problème, on pourra utiliser un texte indicatif et/ou une icône. {{Compat("css.selectors.valid")}} La pseudo-classe Cette mise en forme peut être écrasée par toute autre pseudo-classe liée aux liens ({{cssxref(":link")}}, {{cssxref(":hover")}}, et {{cssxref(":active")}}) qui apparaîtrait dans les règles CSS suivantes. Il est donc important de bien ordonner les pseudo-classes pour une bonne mise en forme : Pour des raisons de vie privée, les navigateurs limitent les propriétés qui peuvent être appliquées à cette pseudo-classe : Pour d'autres informations sur ces limitations et leurs raisons d'être, se référer à l 'article Vie privée et le sélecteur {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.visited")}} La pseudo-classe Cette mise en forme peut être écrasée par toute autre pseudo-classe liée aux liens ({{cssxref(":link")}}, {{cssxref(":hover")}}, et {{cssxref(":active")}}) qui apparaîtrait dans les règles CSS suivantes. Il est donc important de bien ordonner les pseudo-classes pour une bonne mise en forme : Pour des raisons de vie privée, les navigateurs limitent les propriétés qui peuvent être appliquées à cette pseudo-classe : Pour d'autres informations sur ces limitations et leurs raisons d'être, se référer à l 'article Vie privée et le sélecteur {{EmbedLiveSample("Exemples")}} {{Compat("css.selectors.visited")}} La pseudo-classe fonctionnelle La différence entre {{Compat("css.selectors.where")}} La pseudo-classe fonctionnelle La différence entre {{Compat("css.selectors.where")}} Le pseudo-élément Note : Utiliser {{EmbedLiveSample("Exemples", 300, 50)}} Ce pseudo-élément est spécifique à Gecko et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-color-swatch")}} Le pseudo-élément Note : Utiliser {{EmbedLiveSample("Exemples", 300, 50)}} Ce pseudo-élément est spécifique à Gecko et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-color-swatch")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-page-sequence")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-page-sequence")}} Le pseudo-élément CSS Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-page")}} Le pseudo-élément CSS Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-page")}} Le pseudo-élément {{EmbedLiveSample('Exemples')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. Le pseudo-élément {{EmbedLiveSample('Exemples')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. Le pseudo-élément Note : Si {{EmbedLiveSample("Exemples", 300, 50)}} Une barre de progression mise en forme avec cette déclaration devrait ressembler à : Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-range-progress")}} Le pseudo-élément Note : Si {{EmbedLiveSample("Exemples", 300, 50)}} Une barre de progression mise en forme avec cette déclaration devrait ressembler à : Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-range-progress")}} Le pseudo-élément Note : Utiliser {{EmbedLiveSample("Exemples", 300, 50)}} Une barre de progression mise en forme avec ces règles devrait ressembler à : Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-range-thumb")}} Le pseudo-élément Note : Utiliser {{EmbedLiveSample("Exemples", 300, 50)}} Une barre de progression mise en forme avec ces règles devrait ressembler à : Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-range-thumb")}} Le pseudo-élément Note : {{EmbedLiveSample("Exemples", 300, 50)}} Une barre de progression mise en forme de cette façon devrait ressembler à : Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-range-track")}} Le pseudo-élément Note : {{EmbedLiveSample("Exemples", 300, 50)}} Une barre de progression mise en forme de cette façon devrait ressembler à : Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-range-track")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-scrolled-page-sequence")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à Gecko/Mozilla et ne fait partie d'aucune spécification. {{Compat("css.selectors.-moz-scrolled-page-sequence")}} Le pseudo-élément {{EmbedLiveSample('Exemples', 200, 30)}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-inner-spin-button")}} Le pseudo-élément {{EmbedLiveSample('Exemples', 200, 30)}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-inner-spin-button")}} Le pseudo-élément {{EmbedLiveSample('Exemples')}} Note : Cela fonctionnera uniquement pour les navigateurs Webkit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-bar")}} Le pseudo-élément {{EmbedLiveSample('Exemples')}} Note : Cela fonctionnera uniquement pour les navigateurs Webkit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-bar")}} Le pseudo-élément {{EmbedLiveSample('Exemples', '100%', 50)}} Note : Cela fonctionnera uniquement pour les navigateurs Webkit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-even-less-good-value")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample('Exemples', '100%', 50)}} Note : Cela fonctionnera uniquement pour les navigateurs Webkit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-even-less-good-value")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample('Exemples', '100%', 50)}} Note : Cela ne fonctionne que pour les navigateurs Webkit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-inner-element")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample('Exemples', '100%', 50)}} Note : Cela ne fonctionne que pour les navigateurs Webkit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-inner-element")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample('Examples', '100%', 50)}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-optimum-value")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample('Examples', '100%', 50)}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-optimum-value")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample('Examples', '100%', 50)}} Note : Cette fonctionnalité ne sera visible que depuis un navigateur WebKit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-suboptimum-value")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample('Examples', '100%', 50)}} Note : Cette fonctionnalité ne sera visible que depuis un navigateur WebKit/Blink. Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-meter-suboptimum-value")}} Les pseudo-éléments utilisés par WebKit/Blink pour mettre en forme les autres parties d'un élément {{htmlelement("meter")}} : Le pseudo-élément {{EmbedLiveSample("Exemples", 200, 30)}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink, il ne fait partie d'aucune spécification standard. {{Compat("css.selectors.-webkit-outer-spin-button")}} Le pseudo-élément {{EmbedLiveSample("Exemples", 200, 30)}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink, il ne fait partie d'aucune spécification standard. {{Compat("css.selectors.-webkit-outer-spin-button")}} Le pseudo-élément Note : Afin que {{EmbedLiveSample("Exemples", 200, 50)}} Une barre de progression avec la mise en forme ci-avant sera affichée de cette façon : Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-progress-bar")}} Le pseudo-élément Note : Afin que {{EmbedLiveSample("Exemples", 200, 50)}} Une barre de progression avec la mise en forme ci-avant sera affichée de cette façon : Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-progress-bar")}} Le pseudo-élément Note : Afin que {{EmbedLiveSample("Exemples", 200, 50)}} Une barre de progression avec la mise en forme ci-avant sera affichée de cette façon : Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-progress-inner-element")}} Le pseudo-élément Note : Afin que {{EmbedLiveSample("Exemples", 200, 50)}} Une barre de progression avec la mise en forme ci-avant sera affichée de cette façon : Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-progress-inner-element")}} Le pseudo-élément Note : Afin que {{EmbedLiveSample("Exemples", 200, 50)}} Une barre de progression avec la mise en forme ci-avant sera affichée de cette façon : Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-progress-value")}} Le pseudo-élément Note : Afin que {{EmbedLiveSample("Exemples", 200, 50)}} Une barre de progression avec la mise en forme ci-avant sera affichée de cette façon : Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-progress-value")}} You can use the following pseudo elements to customize various parts of the scrollbar for webkit browsers: {{EmbedLiveSample('Exemples')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-scrollbar")}} {{Compat("css.selectors.-webkit-scrollbar-button")}} {{Compat("css.selectors.-webkit-scrollbar-thumb")}} {{Compat("css.selectors.-webkit-scrollbar-track")}} {{Compat("css.selectors.-webkit-scrollbar-track-piece")}} {{Compat("css.selectors.-webkit-scrollbar-corner")}} {{Compat("css.selectors.-webkit-resizer")}} You can use the following pseudo elements to customize various parts of the scrollbar for webkit browsers: {{EmbedLiveSample('Exemples')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-scrollbar")}} {{Compat("css.selectors.-webkit-scrollbar-button")}} {{Compat("css.selectors.-webkit-scrollbar-thumb")}} {{Compat("css.selectors.-webkit-scrollbar-track")}} {{Compat("css.selectors.-webkit-scrollbar-track-piece")}} {{Compat("css.selectors.-webkit-scrollbar-corner")}} {{Compat("css.selectors.-webkit-resizer")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-search-cancel-button")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-search-cancel-button")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-search-results-button")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-search-results-button")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-slider-runnable-track")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-slider-runnable-track")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-slider-thumb")}} Le pseudo-élément Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-slider-thumb")}} En CSS, Note : les pseudo-éléments générés par Note : CSS3 a introduit la notation Nous allons ici créer deux classes : une pour les paragraphes ennuyeux et une pour les intéressants. Nous marquerons ensuite chacun de ces paragraphes en ajoutant un pseudo-élément après chacun d’eux. {{EmbedLiveSample('Utilisation_simple', '100%', 170)}} On peut mettre en forme du texte ou des images avec la propriété {{cssxref("content")}} à peu près de quelque manière que nous le voulions : {{EmbedLiveSample('Exemple_décoratif', '100%', 60)}} Dans l'exemple suivant, on illustre le pseudo-élément On peut également aider les utilisateurs de clavier avec cette technique, en ajoutant un {{EmbedLiveSample("Bulles_d’information", '100%', 150)}} {{Compat("css.selectors.after")}} En CSS, Note : les pseudo-éléments générés par Note : CSS3 a introduit la notation Nous allons ici créer deux classes : une pour les paragraphes ennuyeux et une pour les intéressants. Nous marquerons ensuite chacun de ces paragraphes en ajoutant un pseudo-élément après chacun d’eux. {{EmbedLiveSample('Utilisation_simple', '100%', 170)}} On peut mettre en forme du texte ou des images avec la propriété {{cssxref("content")}} à peu près de quelque manière que nous le voulions : {{EmbedLiveSample('Exemple_décoratif', '100%', 60)}} Dans l'exemple suivant, on illustre le pseudo-élément On peut également aider les utilisateurs de clavier avec cette technique, en ajoutant un {{EmbedLiveSample("Bulles_d’information", '100%', 150)}} {{Compat("css.selectors.after")}} Le pseudo-élément Lorsque plusieurs éléments sont en plein écran, ce pseudo-élément est dessiné derrière l'élément qui est le plus en avant et par dessus les autres éléments. Note : L'élément Ce pseudo-élément n'hérite d'aucun autre élément et aucun autre élément n'hérite de ce pseudo-élément. Aucune restriction ne s'applique pour les propriétés qui peuvent être appliquées à ce pseudo-élément. Dans cet exemple, on indique que l'ombre derrière la vidéo en plein écran doit être bleu-gris plutôt que noire. Voici le résultat obtenu : On peut voir ici les bandes bleu-gris au dessus et en dessous de la vidéo alors que la zone est normalement noire. Vous pouvez voir cette démonstration en live ou voir et modifier le code sur Glitch. {{Compat("css.selectors.backdrop")}} Le pseudo-élément Lorsque plusieurs éléments sont en plein écran, ce pseudo-élément est dessiné derrière l'élément qui est le plus en avant et par dessus les autres éléments. Note : L'élément Ce pseudo-élément n'hérite d'aucun autre élément et aucun autre élément n'hérite de ce pseudo-élément. Aucune restriction ne s'applique pour les propriétés qui peuvent être appliquées à ce pseudo-élément. Dans cet exemple, on indique que l'ombre derrière la vidéo en plein écran doit être bleu-gris plutôt que noire. Voici le résultat obtenu : On peut voir ici les bandes bleu-gris au dessus et en dessous de la vidéo alors que la zone est normalement noire. Vous pouvez voir cette démonstration en live ou voir et modifier le code sur Glitch. {{Compat("css.selectors.backdrop")}} Note : Les pseudo-éléments générés par La notation Un exemple simple utilisant les pseudo-éléments pour ajouter des guillemets. Ici nous avons {{EmbedLiveSample('Ajouter_des_guillemets', '500', '50', '')}} Il est possible de mettre du style à du texte ou des images, dans la propriété {{cssxref("content")}} , quasiment de n'importe quelle manière. {{EmbedLiveSample('Exemple_décoratif', 450, 60)}} Dans cet exemple, nous allons créer une simple liste de choses à faire en utilisant les pseudo-éléments. Cette méthode peut être utilisée pour ajouter une petite touche à l'interface utilisateur et améliorer l'expérience utilisateur. {{EmbedLiveSample('Liste_de_choses_à_faire', '400', '300', '')}} {{Compat("css.selectors.before")}} Note : Les pseudo-éléments générés par La notation Un exemple simple utilisant les pseudo-éléments pour ajouter des guillemets. Ici nous avons {{EmbedLiveSample('Ajouter_des_guillemets', '500', '50', '')}} Il est possible de mettre du style à du texte ou des images, dans la propriété {{cssxref("content")}} , quasiment de n'importe quelle manière. {{EmbedLiveSample('Exemple_décoratif', 450, 60)}} Dans cet exemple, nous allons créer une simple liste de choses à faire en utilisant les pseudo-éléments. Cette méthode peut être utilisée pour ajouter une petite touche à l'interface utilisateur et améliorer l'expérience utilisateur. {{EmbedLiveSample('Liste_de_choses_à_faire', '400', '300', '')}} {{Compat("css.selectors.before")}} {{CSSRef}}{{Draft}}{{SeeCompatTable}} Le pseudo-élément CSS Les règles utilisant Les propriétés sont appliquées à l'intégralité des indications textuelles comme si celles-ci formaient une seule unité. La seulle exception à ce comportement est l'application de Note : Un exemple doit être construit pour cette page, n'hésitez pas à le faire sur la version anglaise d'abord avant de le reporter ici. {{Compat("css.selectors.cue-region")}} {{CSSRef}}{{Draft}}{{SeeCompatTable}} Le pseudo-élément CSS Les règles utilisant Les propriétés sont appliquées à l'intégralité des indications textuelles comme si celles-ci formaient une seule unité. La seulle exception à ce comportement est l'application de Note : Un exemple doit être construit pour cette page, n'hésitez pas à le faire sur la version anglaise d'abord avant de le reporter ici. {{Compat("css.selectors.cue-region")}} Le pseudo-élément CSS Seul un sous-ensemble des propriétés CSS peut être utilisé avec le pseudo-élément Les propriétés sont appliquées à l'ensembles des indications (comme si celles-ci formaient un seul ensemble). Seule La règle CSS suivante permet d'avoir les indications textuelles dans un texte blanc et sur un arrière-plan qui est une boîte noire transparent. {{Compat("css.selectors.cue")}} Le pseudo-élément CSS Seul un sous-ensemble des propriétés CSS peut être utilisé avec le pseudo-élément Les propriétés sont appliquées à l'ensembles des indications (comme si celles-ci formaient un seul ensemble). Seule La règle CSS suivante permet d'avoir les indications textuelles dans un texte blanc et sur un arrière-plan qui est une boîte noire transparent. {{Compat("css.selectors.cue")}} Le pseudo-élément Ce pseudo-élément n'est pas standard et est uniquement pris en charge par les navigateurs basés sur WebKit/Blink. {{EmbedLiveSample('Exemples')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-file-upload-button")}} Le pseudo-élément Ce pseudo-élément n'est pas standard et est uniquement pris en charge par les navigateurs basés sur WebKit/Blink. {{EmbedLiveSample('Exemples')}} Ce pseudo-élément est un pseudo-élément propriétaire lié à WebKit/Blink et ne fait partie d'aucune spécification. {{Compat("css.selectors.-webkit-file-upload-button")}} Le pseudo-élément La première lettre d'un élément n'est pas forcément évidente à identifier : Une première ligne n'a de signification que dans une boîte englobante, ainsi le pseudo-élément Seul un petit sous-groupe de propriétés CSS peuvent être utilisées dans un bloc déclaratif contenant un sélecteur utilisant le pseudo-élément Puisque cette liste sera complétée dans l'avenir, il est recommandé de ne pas utiliser d'autres propriétés dans un bloc de déclaration, de manière à concevoir un CSS pérenne. Note : Dans CSS 2, les pseudo-éléments étaient précédés d'un seul caractère deux-points. Puisque les pseudo-classes suivaient elles aussi cette convention, la distinction était impossible. Afin de résoudre ce problème, CSS 2.1 a modifié la convention des pseudo-éléments. Désormais un pseudo-élément est précédé de deux caractères deux-points, et une pseudo-classe est toujours précédée d'un seul caractère deux-points. Du fait que de nombreux navigateurs avaient déjà implémentés la syntaxe CSS 2 dans une version publique, tous les navigateurs supportant la syntaxe à deux caractères deux-points peuvent aussi supporter l'ancienne syntaxe à un caractère deux-points. Si les navigateurs anciens doivent être supportés, Dans cet exemple, on prend la première lettre de chaque paragraphe et on l'affiche en rouge et en gros. {{EmbedLiveSample('Exemples', '80%', 420)}} {{Compat("css.selectors.first-letter")}} Le pseudo-élément La première lettre d'un élément n'est pas forcément évidente à identifier : Une première ligne n'a de signification que dans une boîte englobante, ainsi le pseudo-élément Seul un petit sous-groupe de propriétés CSS peuvent être utilisées dans un bloc déclaratif contenant un sélecteur utilisant le pseudo-élément Puisque cette liste sera complétée dans l'avenir, il est recommandé de ne pas utiliser d'autres propriétés dans un bloc de déclaration, de manière à concevoir un CSS pérenne. Note : Dans CSS 2, les pseudo-éléments étaient précédés d'un seul caractère deux-points. Puisque les pseudo-classes suivaient elles aussi cette convention, la distinction était impossible. Afin de résoudre ce problème, CSS 2.1 a modifié la convention des pseudo-éléments. Désormais un pseudo-élément est précédé de deux caractères deux-points, et une pseudo-classe est toujours précédée d'un seul caractère deux-points. Du fait que de nombreux navigateurs avaient déjà implémentés la syntaxe CSS 2 dans une version publique, tous les navigateurs supportant la syntaxe à deux caractères deux-points peuvent aussi supporter l'ancienne syntaxe à un caractère deux-points. Si les navigateurs anciens doivent être supportés, Dans cet exemple, on prend la première lettre de chaque paragraphe et on l'affiche en rouge et en gros. {{EmbedLiveSample('Exemples', '80%', 420)}} {{Compat("css.selectors.first-letter")}} Le pseudo-élément Une première ligne n'a de sens que dans une boîte de type bloc, et ainsi le pseudo-élément Seul un sous-ensemble de propriétés CSS peut être utilisé dans un bloc de déclaration contenant un sélecteur CSS utilisant le pseudo-élément Comme cette liste sera étendue dans le futur, il est recommandé de ne pas utiliser d'autres propriétés dans un bloc de déclaration, de manière à ce que le CSS reste pérenne. Note : Dans CSS 2, les pseudo-éléments étaient précédés d'un seul caractère deux-points. Comme les pseudo-classes utilisaient aussi la même convention, ils n'était pas possible de les distinguer. Afin de résoudre cela, CSS 2.1 à changé la convention des pseudo-éléments. Désormais, un pseudo-élément est précédé de deux caractères deux-points, et une pseudo-classe d'un seul. Puisque de nombreux navigateurs avaient déjà mis en place la version CSS 2 dans une version publique, tous les navigateurs supportent les deux syntaxes. Si les navigateurs anciens doivent être supportés, Toutes les lettres de la première ligne de chaque paragraphe sont en majuscules. {{EmbedLiveSample('text-transform', 250, 100)}} Ici, l'effet est nul car {{EmbedLiveSample('margin-left', 250, 100)}} Là encore, l'effet est nul, {{EmbedLiveSample('text-indent', 250, 100)}} {{Compat("css.selectors.first-line")}} Le pseudo-élément Une première ligne n'a de sens que dans une boîte de type bloc, et ainsi le pseudo-élément Seul un sous-ensemble de propriétés CSS peut être utilisé dans un bloc de déclaration contenant un sélecteur CSS utilisant le pseudo-élément Comme cette liste sera étendue dans le futur, il est recommandé de ne pas utiliser d'autres propriétés dans un bloc de déclaration, de manière à ce que le CSS reste pérenne. Note : Dans CSS 2, les pseudo-éléments étaient précédés d'un seul caractère deux-points. Comme les pseudo-classes utilisaient aussi la même convention, ils n'était pas possible de les distinguer. Afin de résoudre cela, CSS 2.1 à changé la convention des pseudo-éléments. Désormais, un pseudo-élément est précédé de deux caractères deux-points, et une pseudo-classe d'un seul. Puisque de nombreux navigateurs avaient déjà mis en place la version CSS 2 dans une version publique, tous les navigateurs supportent les deux syntaxes. Si les navigateurs anciens doivent être supportés, Toutes les lettres de la première ligne de chaque paragraphe sont en majuscules. {{EmbedLiveSample('text-transform', 250, 100)}} Ici, l'effet est nul car {{EmbedLiveSample('margin-left', 250, 100)}} Là encore, l'effet est nul, {{EmbedLiveSample('text-indent', 250, 100)}} {{Compat("css.selectors.first-line")}} Le pseudo-élément CSS Seul un sous-ensemble restreint de propriétés CSS peut être utilisé dans une règle contenant {{EmbedLiveSample("Exemples","250","100")}} {{Compat("css.selectors.grammar-error")}} Le pseudo-élément CSS Seul un sous-ensemble restreint de propriétés CSS peut être utilisé dans une règle contenant {{EmbedLiveSample("Exemples","250","100")}} {{Compat("css.selectors.grammar-error")}} Le pseudo-élément Seul un sous-ensemble de propriétés CSS peuvent être utilisées pour une règle qui utilise Note : La spécification indique que d'autres propriétés CSS pourraient être prises en charge à l'avenir. {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.selectors.marker")}} Le pseudo-élément Seul un sous-ensemble de propriétés CSS peuvent être utilisées pour une règle qui utilise Note : La spécification indique que d'autres propriétés CSS pourraient être prises en charge à l'avenir. {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.selectors.marker")}} Le pseudo-élément CSS {{Compat("css.selectors.part")}} Le pseudo-élément CSS {{Compat("css.selectors.part")}} Le pseudo-élément Seul un sous-ensemble des propriétés CSS peut être utilisé avec un sélecteur respectant ce pseudo-élément : Note : Par défaut, dans la plupart des navigateurs, le texte de substitution est écrit en gris clair. {{EmbedLiveSample("Exemples","200","150")}} Le texte de substitution est généralement représenté avec une couleur plus claire afin d'indiquer qu'il s'agit d'un suggestion et que ce contenu n'a pas été saisi par l'utilisateur ou par le site même. Il est important de vérifier que le contraste entre la couleur de ce texte et celle de l'arrière-plan est suffisament élevé afin que les personnes avec des conditions de vision faibles puissent les lire. La valeur du contraste est déterminée en comparant la luminosité de la couleur du texte de substitution et celle de l'arrière-plan. Afin de respecter les recommandations d'accessibilité : Web Content Accessibility Guidelines (WCAG), un ratio de 4.5:1 est nécessaire pour le contenu textuel normal et un ratio de 3:1 est nécessaire pour les textes plus grands ou en gras. Le seuil entre ces deux tailles est défini de la façon suivante : Autres ressources : Les textes de substitution avec un contraste suffisamment élevé peuvent être pris pour des textes saisis par l'utilisateur. De plus, les textes de substituion disparaissent lorsqu'une personne saisit du contenu dans l'élément {{htmlelement("input")}}. Pour ces deux raisons, les textes de subsitution peuvent gêner la complétion du formulaire, notamment pour les personnes souffrant de troubles cognitifs. Une autre méthode consiste à fournir cette information en l'incluant à proximité du champ mais en dehors et d'utiliser l'attribut Avec cette méthode, le contenu indicatif est disponible à tout moment (même lorsqu'une information a été saisie par l'utilisateur) et le champ est vide lorsque la page est chargée. La plupart des lecteurs d'écran utiliseront Lorsque le mode de contraste élevé de Windows est actif, les textes de substitution apparaîtront avec la même mise en forme que les textes saisis par l'utilisateur. Il est alors impossible de distinguer un texte saisi d'un texte indicatif. Les textes de substitution ne doivent pas remplacer les éléments {{htmlelement("label")}}. Sans libellé associé grâce à {{htmlattrxref("for", "label")}} et à {{htmlattrxref("id")}}, les outils d'assistance tels que les lecteurs d'écran ne peuvent pas correctement analyser les éléments {{htmlelement("input")}}. {{Compat("css.selectors.placeholder")}} Le pseudo-élément Seul un sous-ensemble des propriétés CSS peut être utilisé avec un sélecteur respectant ce pseudo-élément : Note : Par défaut, dans la plupart des navigateurs, le texte de substitution est écrit en gris clair. {{EmbedLiveSample("Exemples","200","150")}} Le texte de substitution est généralement représenté avec une couleur plus claire afin d'indiquer qu'il s'agit d'un suggestion et que ce contenu n'a pas été saisi par l'utilisateur ou par le site même. Il est important de vérifier que le contraste entre la couleur de ce texte et celle de l'arrière-plan est suffisament élevé afin que les personnes avec des conditions de vision faibles puissent les lire. La valeur du contraste est déterminée en comparant la luminosité de la couleur du texte de substitution et celle de l'arrière-plan. Afin de respecter les recommandations d'accessibilité : Web Content Accessibility Guidelines (WCAG), un ratio de 4.5:1 est nécessaire pour le contenu textuel normal et un ratio de 3:1 est nécessaire pour les textes plus grands ou en gras. Le seuil entre ces deux tailles est défini de la façon suivante : Autres ressources : Les textes de substitution avec un contraste suffisamment élevé peuvent être pris pour des textes saisis par l'utilisateur. De plus, les textes de substituion disparaissent lorsqu'une personne saisit du contenu dans l'élément {{htmlelement("input")}}. Pour ces deux raisons, les textes de subsitution peuvent gêner la complétion du formulaire, notamment pour les personnes souffrant de troubles cognitifs. Une autre méthode consiste à fournir cette information en l'incluant à proximité du champ mais en dehors et d'utiliser l'attribut Avec cette méthode, le contenu indicatif est disponible à tout moment (même lorsqu'une information a été saisie par l'utilisateur) et le champ est vide lorsque la page est chargée. La plupart des lecteurs d'écran utiliseront Lorsque le mode de contraste élevé de Windows est actif, les textes de substitution apparaîtront avec la même mise en forme que les textes saisis par l'utilisateur. Il est alors impossible de distinguer un texte saisi d'un texte indicatif. Les textes de substitution ne doivent pas remplacer les éléments {{htmlelement("label")}}. Sans libellé associé grâce à {{htmlattrxref("for", "label")}} et à {{htmlattrxref("id")}}, les outils d'assistance tels que les lecteurs d'écran ne peuvent pas correctement analyser les éléments {{htmlelement("input")}}. {{Compat("css.selectors.placeholder")}} Le pseudo-élément Seul un sous-ensemble des propriétés CSS peut être utilisé pour une règle dont le sélecteur contient On notera que {{cssxref("background-image")}} est ignorée, comme les autres propriétés. {{EmbedLiveSample('Exemples')}} Il est recommandé de ne pas surcharger la police par défaut fournie par le système d'exploitation à des fins esthétiques et notamment si l'utilisateur a personnalisé ces polices pour ses besoins. Pour les personnes qui connaissent moins les technologies, cette modification peut modifier leur compréhension des fonctionnalités du site. Si la police est surchargée, il faut s'assurer que le contraste entre la couleur du texte sélectionné et celle de l'arrière-plan est suffisamment élevé afin que les personnes disposant de faibles conditions de vision puissent lire le texte lorsqu'il est sélectionné. La valeur du contraste est déterminée en comparant la luminosité de la couleur du texte de substitution et celle de l'arrière-plan. Afin de respecter les recommandations d'accessibilité : Web Content Accessibility Guidelines (WCAG), un ratio de 4.5:1 est nécessaire pour le contenu textuel normal et un ratio de 3:1 est nécessaire pour les textes plus grands ou en gras. Le seuil entre ces deux tailles est défini de la façon suivante : Quelques ressources : Note : Bien que ce pseudo-élément était inscrit dans les brouillons pour la spécification des sélecteurs CSS de niveau 3, il a été retiré dans la phase de recommandation car le comportement n'était pas suffisamment défini, notamment avec les éléments imbriqués, de plus, l'interopérabilité n'était pas encore aboutie (selon une discussion de la liste de diffusion W3C Style). Le pseudo-élément {{Compat("css.selectors.selection")}} Le pseudo-élément Seul un sous-ensemble des propriétés CSS peut être utilisé pour une règle dont le sélecteur contient On notera que {{cssxref("background-image")}} est ignorée, comme les autres propriétés. {{EmbedLiveSample('Exemples')}} Il est recommandé de ne pas surcharger la police par défaut fournie par le système d'exploitation à des fins esthétiques et notamment si l'utilisateur a personnalisé ces polices pour ses besoins. Pour les personnes qui connaissent moins les technologies, cette modification peut modifier leur compréhension des fonctionnalités du site. Si la police est surchargée, il faut s'assurer que le contraste entre la couleur du texte sélectionné et celle de l'arrière-plan est suffisamment élevé afin que les personnes disposant de faibles conditions de vision puissent lire le texte lorsqu'il est sélectionné. La valeur du contraste est déterminée en comparant la luminosité de la couleur du texte de substitution et celle de l'arrière-plan. Afin de respecter les recommandations d'accessibilité : Web Content Accessibility Guidelines (WCAG), un ratio de 4.5:1 est nécessaire pour le contenu textuel normal et un ratio de 3:1 est nécessaire pour les textes plus grands ou en gras. Le seuil entre ces deux tailles est défini de la façon suivante : Quelques ressources : Note : Bien que ce pseudo-élément était inscrit dans les brouillons pour la spécification des sélecteurs CSS de niveau 3, il a été retiré dans la phase de recommandation car le comportement n'était pas suffisamment défini, notamment avec les éléments imbriqués, de plus, l'interopérabilité n'était pas encore aboutie (selon une discussion de la liste de diffusion W3C Style). Le pseudo-élément {{Compat("css.selectors.selection")}} Le pseudo-élément CSS Cela ne fonctionne que pour du CSS placé à l'intérieur d'un élément {{htmlelement("template")}} et/ou dans le shadow DOM. On notera également que ce sélecteur ne sélectionnera pas les noeuds texte placés dans les emplacements, il ne cible que les éléments. Les fragments de code suivants sont tirés du dépôt Dans cette démonstration, on utilise un gabarit avec trois emplacements : Un élément personnalisé — On voit ici que, lorsqu'on renseigne le Voici ce à quoi ressemblera l'élément lorsqu'il sera inséré dans la page : {{Compat("css.selectors.slotted")}} Le pseudo-élément CSS Cela ne fonctionne que pour du CSS placé à l'intérieur d'un élément {{htmlelement("template")}} et/ou dans le shadow DOM. On notera également que ce sélecteur ne sélectionnera pas les noeuds texte placés dans les emplacements, il ne cible que les éléments. Les fragments de code suivants sont tirés du dépôt Dans cette démonstration, on utilise un gabarit avec trois emplacements : Un élément personnalisé — On voit ici que, lorsqu'on renseigne le Voici ce à quoi ressemblera l'élément lorsqu'il sera inséré dans la page : {{Compat("css.selectors.slotted")}} Le pseudo-élément Seul un sous-ensemble restreint de propriétés CSS peut être utilisé dans une règle dont le sélecteur contient {{EmbedLiveSample("Exemples","250","100")}} {{Compat("css.selectors.spelling-error")}} Le pseudo-élément Seul un sous-ensemble restreint de propriétés CSS peut être utilisé dans une règle dont le sélecteur contient {{EmbedLiveSample("Exemples","250","100")}} {{Compat("css.selectors.spelling-error")}} Le pseudo-élément CSS {{csssyntax}} Pour voir ce code CSS en action, suivez ce lien vers la démonstration de scroll-to-text. {{Specifications}} {{Compat}} Le pseudo-élément CSS {{csssyntax}} Pour voir ce code CSS en action, suivez ce lien vers la démonstration de scroll-to-text. {{Specifications}} {{Compat}} La propriété CSS {{cssinfo}} {{csssyntax}} {{EmbedLiveSample('Setting_a_custom_accent_color', 500, 200)}} {{Specifications}} {{Compat}} La propriété CSS {{cssinfo}} {{csssyntax}} {{EmbedLiveSample('Setting_a_custom_accent_color', 500, 200)}} {{Specifications}} {{Compat}} La valeur réelle d'une propriété CSS est la valeur utilisée par le moteur une fois que toutes les approximations ont été appliquées. Ainsi, un agent utillisateur ne pourra afficher des bordures qu'avec un nombre de pixels entier et pourra ainsi être forcé d'approximer la valeur calculée pour l'épaisseur de la bordure. La valeur réelle est la valeur finale obtenue lors de la détermination d'une propriété, qui passe par les étapes suivantes : La valeur réelle d'une propriété CSS est la valeur utilisée par le moteur une fois que toutes les approximations ont été appliquées. Ainsi, un agent utillisateur ne pourra afficher des bordures qu'avec un nombre de pixels entier et pourra ainsi être forcé d'approximer la valeur calculée pour l'épaisseur de la bordure. La valeur réelle est la valeur finale obtenue lors de la détermination d'une propriété, qui passe par les étapes suivantes : Cette forme de combinateur permet de sélectionner un élément uniquement si celui-ci « suit » un élément donné et que les deux éléments sont les fils d'un même élément parent. {{EmbedLiveSample('Exemples', 200, 100)}} {{Compat("css.selectors.adjacent_sibling")}} Cette forme de combinateur permet de sélectionner un élément uniquement si celui-ci « suit » un élément donné et que les deux éléments sont les fils d'un même élément parent. {{EmbedLiveSample('Exemples', 200, 100)}} {{Compat("css.selectors.adjacent_sibling")}} La propriété CSS L'exemple qui suit utilise une grille comme conteneur afin d'illustrer le comportement des valeurs de cette propriété. Cette propriété n'aura aucun effet sur les boîtes flexibles disposées sur une seule ligne (celles avec {{EmbedLiveSample("Exemples", 260, 290)}} {{Compat("css.properties.align-content")}} {{Compat("css.properties.align-content.flex_context")}} {{Compat("css.properties.align-content.grid_context")}} La propriété CSS L'exemple qui suit utilise une grille comme conteneur afin d'illustrer le comportement des valeurs de cette propriété. Cette propriété n'aura aucun effet sur les boîtes flexibles disposées sur une seule ligne (celles avec {{EmbedLiveSample("Exemples", 260, 290)}} {{Compat("css.properties.align-content")}} {{Compat("css.properties.align-content.flex_context")}} {{Compat("css.properties.align-content.grid_context")}} La propriété CSS La propriété L'exemple qui suit illustre le fonctionnement des différentes valeurs de À l'heure actuelle, cette propriété est prise en charge pour les dispositions Flexbox et grilles CSS. Pour les boîtes flexibles, cela contrôle l'alignement des objets sur l'axe secondaire et pour les grilles, cela contrôle l'alignement sur l'axe en bloc. {{EmbedLiveSample("Exemples", "260px", "290px")}} {{cssinfo}} {{Compat("css.properties.align-items.flex_context")}} {{Compat("css.properties.align-items.grid_context")}} La propriété CSS La propriété L'exemple qui suit illustre le fonctionnement des différentes valeurs de À l'heure actuelle, cette propriété est prise en charge pour les dispositions Flexbox et grilles CSS. Pour les boîtes flexibles, cela contrôle l'alignement des objets sur l'axe secondaire et pour les grilles, cela contrôle l'alignement sur l'axe en bloc. {{EmbedLiveSample("Exemples", "260px", "290px")}} {{cssinfo}} {{Compat("css.properties.align-items.flex_context")}} {{Compat("css.properties.align-items.grid_context")}} La propriété CSS Si l'un des objet a une marge automatique ( Cette propriété ne s'applique pas aux boîtes qui sont des blocs ou aux cellules d'un tableau. {{EmbedLiveSample("Exemples","300","300")}} {{cssinfo}} {{Compat("css.properties.align-self.flex_context")}} {{Compat("css.properties.align-self.grid_context")}} La propriété CSS Si l'un des objet a une marge automatique ( Cette propriété ne s'applique pas aux boîtes qui sont des blocs ou aux cellules d'un tableau. {{EmbedLiveSample("Exemples","300","300")}} {{cssinfo}} {{Compat("css.properties.align-self.flex_context")}} {{Compat("css.properties.align-self.grid_context")}} La propriété raccourcie La propriété L'élément {{HTMLElement("blockquote")}} utilise la mise en forme par défaut du navigateur avec un arrière-plan spécifique et une couleur pour le texte. L'élément se comporte comme un élément de bloc : le texte qui suit est placé en dessous. L'élément {{HTMLElement("blockquote")}} n'utilise pas la mise en forme par défaut du naivgateur, c'est un élément en ligne (inline) (sa valeur initiale), la valeur de {{cssxref("background-color")}} est L'élément {{HTMLElement("blockquote")}} n'utilise pas la mise en forme par défaut du navigateur, c'est un élément en ligne (sa valeur initiale). La propriété {{cssxref("background-color")}} vaut L'élément {{HTMLElement("blockquote")}} n'utilise pas la mise en forme par défaut du navigateur, c'est un élément de bloc (valeur héritée depuis l'élément englobant {{HTMLElement("div")}}), {{cssxref("background-color")}} vaut {{cssinfo}} {{Compat("css.properties.all")}} Les mots-clés indiquant des valeurs globales pour CSS : La propriété raccourcie La propriété L'élément {{HTMLElement("blockquote")}} utilise la mise en forme par défaut du navigateur avec un arrière-plan spécifique et une couleur pour le texte. L'élément se comporte comme un élément de bloc : le texte qui suit est placé en dessous. L'élément {{HTMLElement("blockquote")}} n'utilise pas la mise en forme par défaut du naivgateur, c'est un élément en ligne (inline) (sa valeur initiale), la valeur de {{cssxref("background-color")}} est L'élément {{HTMLElement("blockquote")}} n'utilise pas la mise en forme par défaut du navigateur, c'est un élément en ligne (sa valeur initiale). La propriété {{cssxref("background-color")}} vaut L'élément {{HTMLElement("blockquote")}} n'utilise pas la mise en forme par défaut du navigateur, c'est un élément de bloc (valeur héritée depuis l'élément englobant {{HTMLElement("div")}}), {{cssxref("background-color")}} vaut {{cssinfo}} {{Compat("css.properties.all")}} Les mots-clés indiquant des valeurs globales pour CSS : {{CSSRef}}{{draft()}} Le type de donnée CSS Si la valeur est fournie comme un nombre, la valeur peut être comprise entre 0 (complètement transparent) et 1 (complètement opaque). Il est possible d'utiliser des valeurs décimales comprises entre ces valeurs. Les valeurs à l'extérieur de cet intervalle sont valides mais elles sont écrétées à 0 ou 1. Lorsque la valeur est fournie en pourcentage 0% correspond à une transparence complète tandis que 100% correspond à une opacité totale. Lorsqu'une animation fait évoluer une valeur de type Certaines fonctionnalités CSS utilisent des valeurs {{CSSRef}}{{draft()}} Le type de donnée CSS Si la valeur est fournie comme un nombre, la valeur peut être comprise entre 0 (complètement transparent) et 1 (complètement opaque). Il est possible d'utiliser des valeurs décimales comprises entre ces valeurs. Les valeurs à l'extérieur de cet intervalle sont valides mais elles sont écrétées à 0 ou 1. Lorsque la valeur est fournie en pourcentage 0% correspond à une transparence complète tandis que 100% correspond à une opacité totale. Lorsqu'une animation fait évoluer une valeur de type Certaines fonctionnalités CSS utilisent des valeurs En proposant des feuilles de style alternatives, une page web permet à ses utilisateurs de pouvoir choisir parmi différentes version d'une page selon leurs besoins ou leurs préférences. Firefox permet à l'utilisateur de sélectionner le style de la page en utilisant le menu « Affichage > Style de la page », Internet Explorer possède également cette fonctionnalité (depuis IE8), accesssible via « Affichage > Style de la page ». Pour Chrome, il est nécessaire d'utiliser une extension afin de pouvoir utiliser cette fonctionnalité. La page web peut également fournir un élément d'interface utilisateur afin de permettre à l'utilisateur de passer d'un style à un autre. Pour indiquer des feuilles de style alternatives, on utilisera un élément {{HTMLElement("link")}} avec les attributs Dans cet exemple, les styles « Style par défaut », « Joli » et « Basique » seront listés dans le menu « Style de la page ». C'est le style par défaut (il n'y a pas de composante Quel que soit la mise en forme choisie, les règles provenant de la feuille Une feuille de style fera partie d'une de ces trois catégories : Lorsqu'une feuille de style contient un attribut On utilisera {{SpecName('HTML WHATWG', 'semantics.html#link-type-stylesheet', 'Link type "stylesheet"')}} En proposant des feuilles de style alternatives, une page web permet à ses utilisateurs de pouvoir choisir parmi différentes version d'une page selon leurs besoins ou leurs préférences. Firefox permet à l'utilisateur de sélectionner le style de la page en utilisant le menu « Affichage > Style de la page », Internet Explorer possède également cette fonctionnalité (depuis IE8), accesssible via « Affichage > Style de la page ». Pour Chrome, il est nécessaire d'utiliser une extension afin de pouvoir utiliser cette fonctionnalité. La page web peut également fournir un élément d'interface utilisateur afin de permettre à l'utilisateur de passer d'un style à un autre. Pour indiquer des feuilles de style alternatives, on utilisera un élément {{HTMLElement("link")}} avec les attributs Dans cet exemple, les styles « Style par défaut », « Joli » et « Basique » seront listés dans le menu « Style de la page ». C'est le style par défaut (il n'y a pas de composante Quel que soit la mise en forme choisie, les règles provenant de la feuille Une feuille de style fera partie d'une de ces trois catégories : Lorsqu'une feuille de style contient un attribut On utilisera {{SpecName('HTML WHATWG', 'semantics.html#link-type-stylesheet', 'Link type "stylesheet"')}} Le type de donnée Voir la documentation des types {{cssxref("angle")}} et {{cssxref("percentage")}} pour plus de détails sur les syntaxes possibles avec chacun de ces types. Lorsqu'il est possible d'utiliser une valeur de type {{Compat("css.types.angle-percentage")}} Le type de donnée Voir la documentation des types {{cssxref("angle")}} et {{cssxref("percentage")}} pour plus de détails sur les syntaxes possibles avec chacun de ces types. Lorsqu'il est possible d'utiliser une valeur de type {{Compat("css.types.angle-percentage")}} Le type de données CSS Pour exprimer une valeur de ce type, on utilisera une valeur de type {{cssxref("<number>")}} (un nombre), immédiatement suivie d'une unité Pour les propriétés statiques et pour une unité donnée, un même angle pourra être représenté par plusieurs valeurs, ainsi Pour représenter une valeur dans le type Même si toutes les unités exprimeront une valeur nulle identique, l'unité doit être indiquée afin de lever l'ambiguïté entre un angle et une valeur de longueur (type {{cssxref("<length>")}}). Un angle droit orienté dans le sens horaire : Un angle nul : Note :Si, dans l'absolu, on peut exprimer la valeur nulle sans unité, il est fortement recommandé d'indiquer l'unité afin de lever toute ambiguïté possible entre les angles et les longueurs. {{Compat("css.types.angle")}} Le type de données CSS Pour exprimer une valeur de ce type, on utilisera une valeur de type {{cssxref("<number>")}} (un nombre), immédiatement suivie d'une unité Pour les propriétés statiques et pour une unité donnée, un même angle pourra être représenté par plusieurs valeurs, ainsi Pour représenter une valeur dans le type Même si toutes les unités exprimeront une valeur nulle identique, l'unité doit être indiquée afin de lever l'ambiguïté entre un angle et une valeur de longueur (type {{cssxref("<length>")}}). Un angle droit orienté dans le sens horaire : Un angle nul : Note :Si, dans l'absolu, on peut exprimer la valeur nulle sans unité, il est fortement recommandé d'indiquer l'unité afin de lever toute ambiguïté possible entre les angles et les longueurs. {{Compat("css.types.angle")}} La propriété La valeur par défaut, Si des valeurs négatives sont utilisées, l'animation débutera immédiatement en étant déjà « avancée ». Par exemple, si on utilise la valeur Généralement, on passera par la propriété raccourcie {{cssxref("animation")}} afin de définir l'ensemble des propriétés liées aux animations en une seule fois. Note : Lorsqu'on utilise plusieurs valeurs (séparées par des virgules) pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-delay")}} La propriété La valeur par défaut, Si des valeurs négatives sont utilisées, l'animation débutera immédiatement en étant déjà « avancée ». Par exemple, si on utilise la valeur Généralement, on passera par la propriété raccourcie {{cssxref("animation")}} afin de définir l'ensemble des propriétés liées aux animations en une seule fois. Note : Lorsqu'on utilise plusieurs valeurs (séparées par des virgules) pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-delay")}} La propriété Généralement, on passera par la propriété raccourcie {{cssxref("animation")}} qui permet de définir les différentes propriétés liées aux animations avec une déclaration. Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-direction")}} La propriété Généralement, on passera par la propriété raccourcie {{cssxref("animation")}} qui permet de définir les différentes propriétés liées aux animations avec une déclaration. Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-direction")}} La propriété La valeur par défaut est Généralement, on passera par la propriété raccourcie {{cssxref("animation")}} afin de définir, en une seule déclaration, les différentes propriétés liées aux animations. Note : Les valeurs négatives sont considérées comme invalides. Certaines implémentations, préfixées, considèrent parfois que ces valeurs sont synonymes de Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-duration")}} La propriété La valeur par défaut est Généralement, on passera par la propriété raccourcie {{cssxref("animation")}} afin de définir, en une seule déclaration, les différentes propriétés liées aux animations. Note : Les valeurs négatives sont considérées comme invalides. Certaines implémentations, préfixées, considèrent parfois que ces valeurs sont synonymes de Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-duration")}} La propriété Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample('Exemples',700,300)}} {{cssinfo}} {{Compat("css.properties.animation-fill-mode")}} La propriété Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample('Exemples',700,300)}} {{cssinfo}} {{Compat("css.properties.animation-fill-mode")}} La propriété Si plusieurs valeurs sont indiquées, à chaque lancement de l'animation, c'est la valeur suivante de la liste qui est utilisée. Lorsqu'on arrive à la fin de la liste, on reprend avec la première valeur de la liste. Généralement, on utilisera la propriété raccourcie {{cssxref("animation")}} afin de définir toutes les propriétés relatives à une animation. La propriété Note : Lorsqu'on utilise plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","300")}} {{cssinfo}} {{Compat("css.properties.animation-iteration-count")}} La propriété Si plusieurs valeurs sont indiquées, à chaque lancement de l'animation, c'est la valeur suivante de la liste qui est utilisée. Lorsqu'on arrive à la fin de la liste, on reprend avec la première valeur de la liste. Généralement, on utilisera la propriété raccourcie {{cssxref("animation")}} afin de définir toutes les propriétés relatives à une animation. La propriété Note : Lorsqu'on utilise plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","300")}} {{cssinfo}} {{Compat("css.properties.animation-iteration-count")}} La propriété Généralement, on pourra utiliser la propriété raccourcie {{cssxref("animation")}} pour définir l'ensemble des propriétés liées aux animations. Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-name")}} La propriété Généralement, on pourra utiliser la propriété raccourcie {{cssxref("animation")}} pour définir l'ensemble des propriétés liées aux animations. Note : Lorsqu'on utiliser plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-name")}} La propriété Lorsqu'on reprend une animation en pause, celle-ci reprendra où elle avait été interrompue (elle ne recommencera pas depuis le début de la séquence). Note : Lorsqu'on utilise plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-play-state")}} La propriété Lorsqu'on reprend une animation en pause, celle-ci reprendra où elle avait été interrompue (elle ne recommencera pas depuis le début de la séquence). Note : Lorsqu'on utilise plusieurs valeurs, séparées par des virgules, pour une propriété {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.animation-play-state")}} La propriété Généralement, on pourra utiliser la propriété raccourcie {{cssxref("animation")}} pour définir l'ensemble des propriétés liées à une animation. Pour les animations cadencées (keyframed), la fonction s'applique entre chaque étape (ou keyframes) plutôt que sur l'animation dans son ensemble. Autrement dit, la fonction de timing est appliquée au début et à la fin de l'étape de l'animation. Une fonction de progression pour une animation qui est définie pour une étape sera appliquée à cette étape en particulier. Si aucune fonction n'est définie pour l'étape, ce sera la fonction de progression de toute l'animation qui sera utilisée. Les valeurs avec des mots-clés ( Note : Lorsqu'on définit plusieurs valeurs, séparées par des virgules, sur une propriété {{cssinfo}} {{Compat("css.properties.animation-timing-function")}} La propriété Généralement, on pourra utiliser la propriété raccourcie {{cssxref("animation")}} pour définir l'ensemble des propriétés liées à une animation. Pour les animations cadencées (keyframed), la fonction s'applique entre chaque étape (ou keyframes) plutôt que sur l'animation dans son ensemble. Autrement dit, la fonction de timing est appliquée au début et à la fin de l'étape de l'animation. Une fonction de progression pour une animation qui est définie pour une étape sera appliquée à cette étape en particulier. Si aucune fonction n'est définie pour l'étape, ce sera la fonction de progression de toute l'animation qui sera utilisée. Les valeurs avec des mots-clés ( Note : Lorsqu'on définit plusieurs valeurs, séparées par des virgules, sur une propriété {{cssinfo}} {{Compat("css.properties.animation-timing-function")}} La propriété C'est une propriété qui synthétise les propriétés suivantes : {{EmbedLiveSample("animation_example", "100%", 260, "", "", "example-outcome-frame")}} Une liste des propriétés qui peuvent être animées est disponible. On notera que cette liste est également valable pour les transitions CSS. La propriété Chaque animation se définit comme : L'ordre des valeurs est important : la première valeur qui peut être analysée comme une valeur de type {{cssxref("<time>")}} sera affectée à {{cssxref("animation-duration")}} et la deuxième à {{cssxref("animation-delay")}}. L'ordre des valeurs est également important pour chaque définition d'animation afin d'identifier la valeur de {{cssxref("animation-name")}} parmi les autres mots-clés. Lors de l'analyse de la déclaration, les mots-clés valides pour d'autres propriétés que {{cssxref("animation-name")}} et dont les valeurs n'ont pas été trouvées avant doivent être affectés à ces différentes propriétés et non à {{cssxref("animation-name")}}. De plus, lors de la sérialisation, les valeurs par défaut doivent être expliciter autant que nécessaire pour distinguer une valeur pour {{cssxref("animation-name")}} qui pourrait être une valeur pour une autre propriété. Note : D'autres exemples sont disponibles sur la page Manipuler les animations CSS. {{EmbedLiveSample('Vue_laser')}} Les animations qui clignotent ou scintillent sont problématiques et notamment pour les personnes souffrant de problèmes cognitifs. De plus, certains types de mouvement peuvent déclencher des désordres vestibulaires, des épilepsies, des migraines ou une sensibilité scotopique. Veillez à fournir un mécanisme qui permette d'interrompre ou de désactiver l'animation ainsi qu'à utiliser une requête média avec {{cssinfo}} {{Compat("css.properties.animation")}} La propriété C'est une propriété qui synthétise les propriétés suivantes : {{EmbedLiveSample("animation_example", "100%", 260, "", "", "example-outcome-frame")}} Une liste des propriétés qui peuvent être animées est disponible. On notera que cette liste est également valable pour les transitions CSS. La propriété Chaque animation se définit comme : L'ordre des valeurs est important : la première valeur qui peut être analysée comme une valeur de type {{cssxref("<time>")}} sera affectée à {{cssxref("animation-duration")}} et la deuxième à {{cssxref("animation-delay")}}. L'ordre des valeurs est également important pour chaque définition d'animation afin d'identifier la valeur de {{cssxref("animation-name")}} parmi les autres mots-clés. Lors de l'analyse de la déclaration, les mots-clés valides pour d'autres propriétés que {{cssxref("animation-name")}} et dont les valeurs n'ont pas été trouvées avant doivent être affectés à ces différentes propriétés et non à {{cssxref("animation-name")}}. De plus, lors de la sérialisation, les valeurs par défaut doivent être expliciter autant que nécessaire pour distinguer une valeur pour {{cssxref("animation-name")}} qui pourrait être une valeur pour une autre propriété. Note : D'autres exemples sont disponibles sur la page Manipuler les animations CSS. {{EmbedLiveSample('Vue_laser')}} Les animations qui clignotent ou scintillent sont problématiques et notamment pour les personnes souffrant de problèmes cognitifs. De plus, certains types de mouvement peuvent déclencher des désordres vestibulaires, des épilepsies, des migraines ou une sensibilité scotopique. Veillez à fournir un mécanisme qui permette d'interrompre ou de désactiver l'animation ainsi qu'à utiliser une requête média avec {{cssinfo}} {{Compat("css.properties.animation")}} La propriété La propriété Cette propriété était utilisée dans les feuilles de style XUL afin de mettre en forme des widgets utilisant la mise en forme de la plateforme utilisée. Elle est également utilisée dans les implémentations XBL pour les widgets livrés avec les logiciels Mozilla. Note : Cette propriété doit être utilisée avec beaucoup d'attention sur les sites web. Son comportement peut varier d'un navigateur à l'autre bien que ces variations aient réduit avec le temps. Le mot-clé Les valeurs suivantes sont uniquement implémentées pour l'une ou l'autre des propriétés préfixées mais pas pour la propriété standard La règle suivante permet que l'élément ait l'apparence d'un bouton d'une barre d'outils : Voir également cet exemple JSFiddle qui illustre comment utiliser {{cssinfo}} {{Compat}} La propriété La propriété Cette propriété était utilisée dans les feuilles de style XUL afin de mettre en forme des widgets utilisant la mise en forme de la plateforme utilisée. Elle est également utilisée dans les implémentations XBL pour les widgets livrés avec les logiciels Mozilla. Note : Cette propriété doit être utilisée avec beaucoup d'attention sur les sites web. Son comportement peut varier d'un navigateur à l'autre bien que ces variations aient réduit avec le temps. Le mot-clé Les valeurs suivantes sont uniquement implémentées pour l'une ou l'autre des propriétés préfixées mais pas pour la propriété standard La règle suivante permet que l'élément ait l'apparence d'un bouton d'une barre d'outils : Voir également cet exemple JSFiddle qui illustre comment utiliser {{cssinfo}} {{Compat}} La propriété CSS {{cssinfo}} {{csssyntax}} Les navigateurs ont ajouté une propriété Sur Firefox, la règle de la feuille de styles interne ressemble à cela : Vous pouvez en savoir plus sur cette fonctionnalité dans l'article Setting Height And Width On Images Is Important Again (en anglais). {{Specifications}} {{Compat}} La propriété CSS {{cssinfo}} {{csssyntax}} Les navigateurs ont ajouté une propriété Sur Firefox, la règle de la feuille de styles interne ressemble à cela : Vous pouvez en savoir plus sur cette fonctionnalité dans l'article Setting Height And Width On Images Is Important Again (en anglais). {{Specifications}} {{Compat}} Une règle @ est une expression CSS commençant par le symbole '@' (U+0040 COMMERCIAL AT), suivi d'un identifiant et qui contient tout ce qui se trouve jusqu'au prochain point-virgule, ';' (U+003B SEMICOLON), ou jusqu'au prochain bloc CSS trouvé en premier. Il existe de nombreuses règles @, désignées par leurs identifiants, chacune ayant leur propre syntaxe : Comme pour les différentes propriétés, chaque règle @ possède une syntaxe différente. Toutefois, on peut en regrouper certaines dans une catégorie : les règles de groupe conditionnelles. Ces instructions partagent une syntaxe commune et permettent d'inclure des instructions imbriquées (soit des ensembles de règles CSS soit des règles @ imbriquées). De plus, elles portent toutes une sémantique commune : toutes définissent une certaine condition qui, selon qu'elle est évaluée à vrai ou à faux, permettre d'appliquer les instructions imbriquées du groupe. Les règles de groupe conditionnelles définies par la spécification de niveau 3 sur les règles CSS conditionnelles sont : Chaque groupe conditionnel peut également contenir des instructions imbriquées. Il peut donc y avoir un nombre indéterminé de niveaux d'imbrication. Une règle @ est une expression CSS commençant par le symbole '@' (U+0040 COMMERCIAL AT), suivi d'un identifiant et qui contient tout ce qui se trouve jusqu'au prochain point-virgule, ';' (U+003B SEMICOLON), ou jusqu'au prochain bloc CSS trouvé en premier. Il existe de nombreuses règles @, désignées par leurs identifiants, chacune ayant leur propre syntaxe : Comme pour les différentes propriétés, chaque règle @ possède une syntaxe différente. Toutefois, on peut en regrouper certaines dans une catégorie : les règles de groupe conditionnelles. Ces instructions partagent une syntaxe commune et permettent d'inclure des instructions imbriquées (soit des ensembles de règles CSS soit des règles @ imbriquées). De plus, elles portent toutes une sémantique commune : toutes définissent une certaine condition qui, selon qu'elle est évaluée à vrai ou à faux, permettre d'appliquer les instructions imbriquées du groupe. Les règles de groupe conditionnelles définies par la spécification de niveau 3 sur les règles CSS conditionnelles sont : Chaque groupe conditionnel peut également contenir des instructions imbriquées. Il peut donc y avoir un nombre indéterminé de niveaux d'imbrication. La fonction Note : La fonction La valeur de l'attribut est analysée comme une longueur ({{cssxref("<length>")}}) et inclut l'unité (par exemple La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) (il n'y a pas d'unité) et est interprétée comme un angle ({{cssxref("<angle>")}}) avec l'unité indiquée en paramètre. Si la vlaeur n'est pas vliade (ce n'est pas un nombre ou celui-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée. {{EmbedLiveSample("Utiliser_la_propriété_content", "100%", "50")}} {{SeeCompatTable}} {{EmbedLiveSample("Valeur_<color>", "100%", "50")}} {{Compat("css.types.attr")}} La fonction Note : La fonction La valeur de l'attribut est analysée comme une longueur ({{cssxref("<length>")}}) et inclut l'unité (par exemple La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) (il n'y a pas d'unité) et est interprétée comme un angle ({{cssxref("<angle>")}}) avec l'unité indiquée en paramètre. Si la vlaeur n'est pas vliade (ce n'est pas un nombre ou celui-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée. {{EmbedLiveSample("Utiliser_la_propriété_content", "100%", "50")}} {{SeeCompatTable}} {{EmbedLiveSample("Valeur_<color>", "100%", "50")}} {{Compat("css.types.attr")}} Les sélecteurs d'attribut permettent de cibler un élément selon la présence d'un attribut ou selon la valeur donnée d'un attribut. {{EmbedLiveSample("Liens")}} {{EmbedLiveSample("Langues")}} {{SeeCompatTable}} La spécification HTML indique que l'attribut {{htmlattrxref("type", "input")}} doit être testé sans sensibilité à la casse car il est généralement utilisé avec l'élément {{HTMLElement("input")}}. Si on souhaite utiliser un sélecteur d'attribut avec {{htmlattrxref("type", "ol")}} d'une liste ordonnée ({{HTMLElement("ol")}}), cela ne fonctionnera pas sans le modificateur de sensibilité à la casse. {{EmbedLiveSample("Listes_ordonnées")}} {{Compat("css.selectors.attribute")}} Les sélecteurs d'attribut permettent de cibler un élément selon la présence d'un attribut ou selon la valeur donnée d'un attribut. {{EmbedLiveSample("Liens")}} {{EmbedLiveSample("Langues")}} {{SeeCompatTable}} La spécification HTML indique que l'attribut {{htmlattrxref("type", "input")}} doit être testé sans sensibilité à la casse car il est généralement utilisé avec l'élément {{HTMLElement("input")}}. Si on souhaite utiliser un sélecteur d'attribut avec {{htmlattrxref("type", "ol")}} d'une liste ordonnée ({{HTMLElement("ol")}}), cela ne fonctionnera pas sans le modificateur de sensibilité à la casse. {{EmbedLiveSample("Listes_ordonnées")}} {{Compat("css.selectors.attribute")}} La propriété CSS {{cssinfo}} {{EmbedLiveSample('Exemples', "600", "400")}} {{Compat("css.properties.backdrop-filter")}} La propriété CSS {{cssinfo}} {{EmbedLiveSample('Exemples', "600", "400")}} {{Compat("css.properties.backdrop-filter")}} La propriété Dans certains cas, on souhaite que la face avant ne soit pas visible par transparence. Par exemple, si on souhaite simuler une carte à jouer qu'on retourne. Cette propriété n'aura aucun effet tant que les transformations appliquées sont uniquement en 2D car aucun effet de perspective ne sera introduit. La propriété Dans cet exemple, on dessine un cube avec des faces transparentes. {{EmbedLiveSample('Exemples', '100%', 360)}} {{cssinfo}} {{Compat("css.properties.backface-visibility")}} La propriété Dans certains cas, on souhaite que la face avant ne soit pas visible par transparence. Par exemple, si on souhaite simuler une carte à jouer qu'on retourne. Cette propriété n'aura aucun effet tant que les transformations appliquées sont uniquement en 2D car aucun effet de perspective ne sera introduit. La propriété Dans cet exemple, on dessine un cube avec des faces transparentes. {{EmbedLiveSample('Exemples', '100%', 360)}} {{cssinfo}} {{Compat("css.properties.backface-visibility")}} La propriété La propriété {{EmbedLiveSample("Exemple_simple")}} On peut utiliser cette propriété lorsqu'on travaille avec plusieurs images en arrière-plan. On peut définir, pour chaque image, un {{EmbedLiveSample("Gestion_de_plusieurs_arrière-plans")}} {{cssinfo}} {{Compat("css.properties.background-attachment")}} La propriété La propriété {{EmbedLiveSample("Exemple_simple")}} On peut utiliser cette propriété lorsqu'on travaille avec plusieurs images en arrière-plan. On peut définir, pour chaque image, un {{EmbedLiveSample("Gestion_de_plusieurs_arrière-plans")}} {{cssinfo}} {{Compat("css.properties.background-attachment")}} La propriété CSS Les modes de fusions (blending modes) doivent être définis dans le même ordre que les images sont définies avec {{cssxref("background-image")}}. Si la liste des modes de fusion et la liste des images d'arrière-plan ne sont pas de la même longueur, la première liste sera répétée ou tronquée pour que les longueurs soient égales. {{EmbedLiveSample('Exemples', "330", "330")}} {{cssinfo}} {{Compat("css.properties.background-blend-mode")}} La propriété CSS Les modes de fusions (blending modes) doivent être définis dans le même ordre que les images sont définies avec {{cssxref("background-image")}}. Si la liste des modes de fusion et la liste des images d'arrière-plan ne sont pas de la même longueur, la première liste sera répétée ou tronquée pour que les longueurs soient égales. {{EmbedLiveSample('Exemples', "330", "330")}} {{cssinfo}} {{Compat("css.properties.background-blend-mode")}} La propriété Si aucune image ({{cssxref("background-image")}}) ni couleur ({{cssxref("background-color")}}) d'arrière-plan n'est définie, cette propriété aura uniquement un effet visuel lorsque la bordure possède des régions transparentes (via {{cssxref("border-style")}} ou {{cssxref("border-image")}}). Dans les autres cas, la bordure recouvrira la zone où se situera la différence . {{EmbedLiveSample('Exemples', 600, 580)}} {{cssinfo}} {{Compat("css.properties.background-clip")}} La propriété Si aucune image ({{cssxref("background-image")}}) ni couleur ({{cssxref("background-color")}}) d'arrière-plan n'est définie, cette propriété aura uniquement un effet visuel lorsque la bordure possède des régions transparentes (via {{cssxref("border-style")}} ou {{cssxref("border-image")}}). Dans les autres cas, la bordure recouvrira la zone où se situera la différence . {{EmbedLiveSample('Exemples', 600, 580)}} {{cssinfo}} {{Compat("css.properties.background-clip")}} La propriété La propriété {{EmbedLiveSample("Exemples","200","150")}} Il est important de vérifier que le contraste entre la couleur d'arrière-plan et la couleur du texte est suffisamment élevé afin que le contenu de la page puisse être lu, quelles que soient les conditions de vision. Le ratio de contraste entre les couleurs est déterminé en comparant la luminosité de la couleur du texte et celle de la couleur d'arrière-plan. Pour respecter les règles d'accessibilité Web Content Accessibility Guidelines (WCAG), il faut avoir un ratio de 4.5:1 pour le contenu textuel normal et un ratio de 3:1 pour les textes plus grands comme les titres (un texte sera considéré comme grand s'il est en gras et mesure au moins 18.66px ou s'il mesure au moins 24 pixels). {{Compat("css.properties.background-color")}} La propriété La propriété {{EmbedLiveSample("Exemples","200","150")}} Il est important de vérifier que le contraste entre la couleur d'arrière-plan et la couleur du texte est suffisamment élevé afin que le contenu de la page puisse être lu, quelles que soient les conditions de vision. Le ratio de contraste entre les couleurs est déterminé en comparant la luminosité de la couleur du texte et celle de la couleur d'arrière-plan. Pour respecter les règles d'accessibilité Web Content Accessibility Guidelines (WCAG), il faut avoir un ratio de 4.5:1 pour le contenu textuel normal et un ratio de 3:1 pour les textes plus grands comme les titres (un texte sera considéré comme grand s'il est en gras et mesure au moins 18.66px ou s'il mesure au moins 24 pixels). {{Compat("css.properties.background-color")}} La propriété Les images sont dessinées les unes au-dessus des autres. La première image indiquée est dessinée comme étant la plus proche de l'utilisateur. Les bordures de l'élément sont dessinés par-dessus l'arrière-plan et la couleur {{cssxref("background-color")}} est dessinée sous l'arrière-plan. La position et les limites de chaque image sont gérées grâce aux propriétés {{cssxref("background-clip")}} et {{cssxref("background-origin")}}. Si une image donnée ne peut pas être chargée (par exemple lorsqu'il est impossible de charger un fichier via l'URI indiquée), les navigateurs considèreront la valeur comme Note : Même si les images sont opaques et que les couleurs ne seront pas affichées de façon normale, les développeurs doivent toujours définir une couleur d'arrière-plan via {{cssxref("background-color")}} au cas où les images ne peuvent être chargées. Chaque image d'arrière-plan peut être définie avec le mot-clé On voit ici l'effet obtenu avec plusieurs images : l'étoile est légèrement transparente et se superpose par-dessus l'image du chat. {{EmbedLiveSample('Exemples')}} Les navigateurs ne fournissent pas d'informations spécifiques aux outils d'assistance quant aux images d'arrière-plan. Les lecteurs d'écran ne pourront donc pas annoncer le sens de l'image aux utilisateurs. Si l'image contient des informations critiques pour la compréhension générale de la page, mieux vaudra décrire ces informations de façon sémantique dans le document. {{cssinfo}} {{Compat("css.properties.background-image")}} La propriété Les images sont dessinées les unes au-dessus des autres. La première image indiquée est dessinée comme étant la plus proche de l'utilisateur. Les bordures de l'élément sont dessinés par-dessus l'arrière-plan et la couleur {{cssxref("background-color")}} est dessinée sous l'arrière-plan. La position et les limites de chaque image sont gérées grâce aux propriétés {{cssxref("background-clip")}} et {{cssxref("background-origin")}}. Si une image donnée ne peut pas être chargée (par exemple lorsqu'il est impossible de charger un fichier via l'URI indiquée), les navigateurs considèreront la valeur comme Note : Même si les images sont opaques et que les couleurs ne seront pas affichées de façon normale, les développeurs doivent toujours définir une couleur d'arrière-plan via {{cssxref("background-color")}} au cas où les images ne peuvent être chargées. Chaque image d'arrière-plan peut être définie avec le mot-clé On voit ici l'effet obtenu avec plusieurs images : l'étoile est légèrement transparente et se superpose par-dessus l'image du chat. {{EmbedLiveSample('Exemples')}} Les navigateurs ne fournissent pas d'informations spécifiques aux outils d'assistance quant aux images d'arrière-plan. Les lecteurs d'écran ne pourront donc pas annoncer le sens de l'image aux utilisateurs. Si l'image contient des informations critiques pour la compréhension générale de la page, mieux vaudra décrire ces informations de façon sémantique dans le document. {{cssinfo}} {{Compat("css.properties.background-image")}} La propriété Attention, Note : Cette propriété est rattachée à la propriété raccourcie {{cssxref("background")}}. Aussi, si on a une déclaration {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.background-origin")}} La propriété Attention, Note : Cette propriété est rattachée à la propriété raccourcie {{cssxref("background")}}. Aussi, si on a une déclaration {{EmbedLiveSample("Exemples","300","200")}} {{cssinfo}} {{Compat("css.properties.background-origin")}} La propriété Pour plus d'informations, se référer à la documentation de la propriété {{cssxref("background-position")}} qui existe depuis plus longtemps. Note : La valeur de cette propriété sera surchargée par n'importe quelle déclaration avec {{cssxref("background")}} ou {{cssxref("background-position")}} située après la déclaration de {{cssinfo}} {{Compat("css.properties.background-position-x")}} La propriété Pour plus d'informations, se référer à la documentation de la propriété {{cssxref("background-position")}} qui existe depuis plus longtemps. Note : La valeur de cette propriété sera surchargée par n'importe quelle déclaration avec {{cssxref("background")}} ou {{cssxref("background-position")}} située après la déclaration de {{cssinfo}} {{Compat("css.properties.background-position-x")}} La propriété Note : La valeur de cette propriété sera surchargée par n'importe quelle déclaration avec {{cssxref("background")}} ou {{cssxref("background-position")}} située après la déclaration. {{cssinfo}} {{Compat("css.properties.background-position-y")}} La propriété Note : La valeur de cette propriété sera surchargée par n'importe quelle déclaration avec {{cssxref("background")}} ou {{cssxref("background-position")}} située après la déclaration. {{cssinfo}} {{Compat("css.properties.background-position-y")}} La propriété La propriété Définition avec une valeur : la valeur peut être : Définition avec deux valeurs : la première valeur définit l'abscisse (la coordonnée horizontale X) et la seconde définit l'ordonnée (la coordonnée verticale Y). Chaque valeur peut être : On notera que : Autrement dit " À propos des pourcentages : lorsqu'on exprime un décalage en pourcentage, ce dernier est relatif au conteneur. Ainsi, une valeur de 0% indiquera que le côté gauche (ou haut) du bord de l'image est aligné avec le bord gauche (ou haut) du conteneur. Une valeur de 100% indiquera que le côté droit (ou bas) de l'image d'arrière-plan est alignée avec le bord droit (ou bas) du conteneur. Une valeur de 50% permettra de centrer l'image. Autrement dit, lorsqu'on utilise un pourcentage, celui-ci s'inscrit dans la formule suivante : On notera donc que si l'image d'arrière-plan a les mêmes dimensions que le conteneur, les valeurs en pourcentage pour Dans cet exemple, on a trois éléments jaunes qui ont chacun une étoile située différemment. Le rectangle final possède deux images d'arrière-plan, chacune à une position différente. {{EmbedLiveSample('Exemples', 420, 200)}} {{cssinfo}} {{Compat("css.properties.background-position")}} La propriété La propriété Définition avec une valeur : la valeur peut être : Définition avec deux valeurs : la première valeur définit l'abscisse (la coordonnée horizontale X) et la seconde définit l'ordonnée (la coordonnée verticale Y). Chaque valeur peut être : On notera que : Autrement dit " À propos des pourcentages : lorsqu'on exprime un décalage en pourcentage, ce dernier est relatif au conteneur. Ainsi, une valeur de 0% indiquera que le côté gauche (ou haut) du bord de l'image est aligné avec le bord gauche (ou haut) du conteneur. Une valeur de 100% indiquera que le côté droit (ou bas) de l'image d'arrière-plan est alignée avec le bord droit (ou bas) du conteneur. Une valeur de 50% permettra de centrer l'image. Autrement dit, lorsqu'on utilise un pourcentage, celui-ci s'inscrit dans la formule suivante : On notera donc que si l'image d'arrière-plan a les mêmes dimensions que le conteneur, les valeurs en pourcentage pour Dans cet exemple, on a trois éléments jaunes qui ont chacun une étoile située différemment. Le rectangle final possède deux images d'arrière-plan, chacune à une position différente. {{EmbedLiveSample('Exemples', 420, 200)}} {{cssinfo}} {{Compat("css.properties.background-position")}} La propriété Par défaut, les images répétées sont rognées à la taille de l'élément mais elles peuvent être redimensionnées pour occuper l'espace avec un nombre entier de répétitions ( Dans cet exemple, chaque élément de la liste illustre une valeur différente de {{EmbedLiveSample('Exemples', 240, 560)}} {{cssinfo}} {{Compat("css.properties.background-repeat")}} La propriété Par défaut, les images répétées sont rognées à la taille de l'élément mais elles peuvent être redimensionnées pour occuper l'espace avec un nombre entier de répétitions ( Dans cet exemple, chaque élément de la liste illustre une valeur différente de {{EmbedLiveSample('Exemples', 240, 560)}} {{cssinfo}} {{Compat("css.properties.background-repeat")}} La propriété CSS Note : L'espace qui n'est pas rempli par l'image d'arrière-plan aura la couleur définie par la propriété {{cssxref("background-color")}}. De plus, la couleur d'arrière-plan sera visible si l'image d'arrière-plan est transparente. La propriété Lorsqu'on souhaite paramétrer la taillle de plusieurs images d'arrière-plan, on peut séparer ces valeurs par des virgules (l'ordre utilisé entre les valeurs suit celui de {{cssxref("background-image")}}). Le calcul des valeurs dépend des dimensions intrinsèques de l'image (sa largeur et sa hauteur) et de ses proportions intrinsèques (le rapport entre la largeur et la hauteur). Voici les différents cas de figures possibles : Note : Le comportement associé aux dégradés ( Note : Pour Gecko, les images d'arrière-plan créées avec la fonction {{cssxref("element()")}} sont actuellement traitées comme des images ayant les dimensions de l'élément ou, si la zone de positionnement est un élément SVG, avec les proportions intrinsèques. Ce comportement n'est pas standard. Selon le caractère intrinsèque ou non des dimensions et des proportions, la taille d'affichage de l'image d'arrière-plan est calculée de la façon suivante : Si les deux composants de Si Si Note : Les images SVG peuvent contenir un attribut Si Note : Le dimensionnement des images d'arrière-plan qui sont des images vectorielles sans dimension ou proportion intrinsèque n'est pas implémenté par l'ensemble des navigateur. Attention à bien vérifier le résultat obtenu dans les différents navigateurs par rapport aux règles émises ci-avant. {{EmbedLiveSample("cover","200","300")}} {{EmbedLiveSample("contain","200","300")}} {{EmbedLiveSample("auto_50","200","300")}} Si on utilise un dégradé ( On notera qu'il n'est pas recommandé d'utiliser une dimension exprimée en pixels et une autre dimension avec {{cssinfo}} {{Compat("css.properties.background-size")}} La propriété CSS Note : L'espace qui n'est pas rempli par l'image d'arrière-plan aura la couleur définie par la propriété {{cssxref("background-color")}}. De plus, la couleur d'arrière-plan sera visible si l'image d'arrière-plan est transparente. La propriété Lorsqu'on souhaite paramétrer la taillle de plusieurs images d'arrière-plan, on peut séparer ces valeurs par des virgules (l'ordre utilisé entre les valeurs suit celui de {{cssxref("background-image")}}). Le calcul des valeurs dépend des dimensions intrinsèques de l'image (sa largeur et sa hauteur) et de ses proportions intrinsèques (le rapport entre la largeur et la hauteur). Voici les différents cas de figures possibles : Note : Le comportement associé aux dégradés ( Note : Pour Gecko, les images d'arrière-plan créées avec la fonction {{cssxref("element()")}} sont actuellement traitées comme des images ayant les dimensions de l'élément ou, si la zone de positionnement est un élément SVG, avec les proportions intrinsèques. Ce comportement n'est pas standard. Selon le caractère intrinsèque ou non des dimensions et des proportions, la taille d'affichage de l'image d'arrière-plan est calculée de la façon suivante : Si les deux composants de Si Si Note : Les images SVG peuvent contenir un attribut Si Note : Le dimensionnement des images d'arrière-plan qui sont des images vectorielles sans dimension ou proportion intrinsèque n'est pas implémenté par l'ensemble des navigateur. Attention à bien vérifier le résultat obtenu dans les différents navigateurs par rapport aux règles émises ci-avant. {{EmbedLiveSample("cover","200","300")}} {{EmbedLiveSample("contain","200","300")}} {{EmbedLiveSample("auto_50","200","300")}} Si on utilise un dégradé ( On notera qu'il n'est pas recommandé d'utiliser une dimension exprimée en pixels et une autre dimension avec {{cssinfo}} {{Compat("css.properties.background-size")}} La propriété CSS Elle permet de définir une ou plusieurs valeurs pour : {{cssxref("background-clip")}}, {{cssxref("background-color")}}, {{cssxref("background-image")}}, {{cssxref("background-origin")}}, {{cssxref("background-position")}}, {{cssxref("background-repeat")}}, {{cssxref("background-size")}}, et {{cssxref("background-attachment")}}. Lorsqu'on utilise la propriété raccourcie Note : La propriété {{cssxref("background-color")}} ne peut être définie que sur le dernier arrière-plan car il n'y a qu'une seule couleur d'arrière-plan pour un élément. La propriété {{EmbedLiveSample("Exemples")}} Les navigateurs ne fournissent pas d'informations spécifiques aux outils d'assistance quant aux images d'arrière-plan. Les lecteurs d'écran ne pourront donc pas annoncer le sens de l'image aux utilisateurs. Si l'image contient des informations critiques pour la compréhension générale de la page, mieux vaudra décrire ces informations de façon sémantique dans le document. {{cssinfo}} {{Compat("css.properties.background")}} La propriété CSS Elle permet de définir une ou plusieurs valeurs pour : {{cssxref("background-clip")}}, {{cssxref("background-color")}}, {{cssxref("background-image")}}, {{cssxref("background-origin")}}, {{cssxref("background-position")}}, {{cssxref("background-repeat")}}, {{cssxref("background-size")}}, et {{cssxref("background-attachment")}}. Lorsqu'on utilise la propriété raccourcie Note : La propriété {{cssxref("background-color")}} ne peut être définie que sur le dernier arrière-plan car il n'y a qu'une seule couleur d'arrière-plan pour un élément. La propriété {{EmbedLiveSample("Exemples")}} Les navigateurs ne fournissent pas d'informations spécifiques aux outils d'assistance quant aux images d'arrière-plan. Les lecteurs d'écran ne pourront donc pas annoncer le sens de l'image aux utilisateurs. Si l'image contient des informations critiques pour la compréhension générale de la page, mieux vaudra décrire ces informations de façon sémantique dans le document. {{cssinfo}} {{Compat("css.properties.background")}} Le type Lorsque cette syntaxe est utilisée pour définir des formes, la boîte de référence sera indiquée par chaque propriété qui utilise des valeurs Les formes qui suivent sont prises en charge. Toutes les valeurs Cette fonction permet de définir un rectangle incrusté (inset). Lorsque les quatre premiers arguments sont fournis, ils représentent respectivement les décalages, vers l'intérieur, depuis les côtés haut, droit, bas et gauche par rapport à la boîte de référence. Ces arguments peuvent être utilisés de la même façon que pour {{cssxref("margin")}} afin d'utiliser seulement une, deux ou quatre valeurs. L'argument facultatif Si on utilise deux valeurs de décalage pour le même axe (par exemple un décalage depuis le bas et un décalage depuis le haut) dont la somme est supérieure à la dimension de la boîte sur cet axe, la forme obtenue ne contiendra aucune zone. On aura alors une zone de flottement vide. Définit un polygone. Ensuite, chaque paire d'arguments dans la liste représente les coordonnées xi et yi du i-ème sommet du polygone. Définit un cercle. L'argument L'argument {{cssxref("<position>")}} définit la position pour le centre du cercle. La valeur par défaut est Définit une ellipse. Les arguments L'argument {{cssxref("<position>")}} définit l'emplacement du centre de l'ellipse. La valeur par défaut est Définit un chemin. L'argument optionnel L'argument obligatoire Les arguments qui ne sont pas définis ci-avant suivent cette syntaxe : À l'inverse, Les valeurs d'une fonction {{EmbedLiveSample('Exemple_simple',"500","500")}} Dans cet exemple, on utilise la règle-@ {{cssxref("@keyframes")}} afin d'animer un chemin de rognage entre deux polygones. On notera que les deux polygones ont le même nombre de sommets, une condition nécessaire pour que l'animation fonctionne. {{EmbedLiveSample('Polygone_animé','100%', '340')}} {{Compat("css.types.basic-shape")}} Le type Lorsque cette syntaxe est utilisée pour définir des formes, la boîte de référence sera indiquée par chaque propriété qui utilise des valeurs Les formes qui suivent sont prises en charge. Toutes les valeurs Cette fonction permet de définir un rectangle incrusté (inset). Lorsque les quatre premiers arguments sont fournis, ils représentent respectivement les décalages, vers l'intérieur, depuis les côtés haut, droit, bas et gauche par rapport à la boîte de référence. Ces arguments peuvent être utilisés de la même façon que pour {{cssxref("margin")}} afin d'utiliser seulement une, deux ou quatre valeurs. L'argument facultatif Si on utilise deux valeurs de décalage pour le même axe (par exemple un décalage depuis le bas et un décalage depuis le haut) dont la somme est supérieure à la dimension de la boîte sur cet axe, la forme obtenue ne contiendra aucune zone. On aura alors une zone de flottement vide. Définit un polygone. Ensuite, chaque paire d'arguments dans la liste représente les coordonnées xi et yi du i-ème sommet du polygone. Définit un cercle. L'argument L'argument {{cssxref("<position>")}} définit la position pour le centre du cercle. La valeur par défaut est Définit une ellipse. Les arguments L'argument {{cssxref("<position>")}} définit l'emplacement du centre de l'ellipse. La valeur par défaut est Définit un chemin. L'argument optionnel L'argument obligatoire Les arguments qui ne sont pas définis ci-avant suivent cette syntaxe : À l'inverse, Les valeurs d'une fonction {{EmbedLiveSample('Exemple_simple',"500","500")}} Dans cet exemple, on utilise la règle-@ {{cssxref("@keyframes")}} afin d'animer un chemin de rognage entre deux polygones. On notera que les deux polygones ont le même nombre de sommets, une condition nécessaire pour que l'animation fonctionne. {{EmbedLiveSample('Polygone_animé','100%', '340')}} {{Compat("css.types.basic-shape")}} Le type Un mode de fusion est une méthode de calcul permettant de déterminer la couleur finale d'un pixel lorsque plusieurs couches sont empilées. Chaque mode de fusion prend en entrée la couleur du premier plan et de l'arrière-plan (dans cet ordre) pour calculer la valeur de la couleur obtenue. Le résultat final est la couche visible obtenue lorsque les différents plans ont été fusionnés avec les modes de fusion. Une valeur de type de données La couleur finale obtenue est la couleur du premier plan, quelle que soit la couleur de l'arrière-plan. On obtient ainsi un effet similaire à la superposition de deux feuilles de papier opaques. La couleur finale est obtenue en multipliant les couleurs du premier plan et de l'arrière-plan. La couleur finale est obtenue en : inversant les couleurs des deux plans, en les multipliant et en inversant la couleur obtenue. Si une des couches est noire, le résultat obtenu sera l'image de l'autre couche. Si une des couches est blanche, l'image obtenue sera blanche. L'effet obtenu est semblable à la projection de deux images sur un écran. La couleur finale est la couleur la plus sombre des deux couches. La couleur finale est la couleur la plus claire des deux couches. La couleur finale est obtenue en divisant la couleur de l'arrière-plan avec l'inverse de la couleur du premier plan. La couleur finale est obtenu en inversant la couleur de l'arrière-plan qui sera divisée par la couleur du premier-plan puis inversée. Un premier-plan blanc n'entraînera aucun changement et un premier-plan qui possède exactement l'inverse de l'arrière-plan entraînera une image noire. La couleur finale est le résultat de La couleur finale obtenue est semblable à La couleur finale est obtenue en soustrayant la couleur la plus sombre à la couleur la plus claire. Une couche noire n'aura aucun effet et une couche blanche inversera l'autre image. La couleur finale obtenue est semblable à La couleur finale aura la teinte de la couleur du premier-plan et la saturation et la luminosité de la couleur de l'arrière-plan. La couleur finale aura la saturation de la couleur du premier plan et la teinte et la luminosité de la couleur de l'arrière-plan. La couleur finale aura la teinte et la saturation du premier plan et la luminosité de l'arrière-plan. Cet effet conserve les niveaux de gris et peut être utilisé pour coloriser le premier plan. La couleur finale aura la luminosité de la couleur du premier plan et la teinte et la saturation de la couleur de l'arrière-plan. {{ EmbedLiveSample('normal', "300", "350") }} {{ EmbedLiveSample('multiply', "300", "350") }} {{ EmbedLiveSample('screen', "300", "350") }} {{ EmbedLiveSample('overlay', "300", "350") }} {{ EmbedLiveSample('darken', "300", "350") }} {{ EmbedLiveSample('lighten', "300", "350") }} {{ EmbedLiveSample('color-dodge', "300", "350") }} {{ EmbedLiveSample('color-burn', "300", "350") }} {{ EmbedLiveSample('hard-light', "300", "350") }} {{ EmbedLiveSample('soft-light', "300", "350") }} {{ EmbedLiveSample('difference', "300", "350") }} {{ EmbedLiveSample('exclusion', "300", "350") }} {{ EmbedLiveSample('hue', "300", "350") }} {{ EmbedLiveSample('saturation', "300", "350") }} {{ EmbedLiveSample('color', "300", "350") }} {{ EmbedLiveSample('luminosity', "300", "350") }} Il n'y a pas d'interpolation pour les modes de fusion. Toute transition se produit brutalement. {{Compat("css.types.blend-mode")}} Le type Un mode de fusion est une méthode de calcul permettant de déterminer la couleur finale d'un pixel lorsque plusieurs couches sont empilées. Chaque mode de fusion prend en entrée la couleur du premier plan et de l'arrière-plan (dans cet ordre) pour calculer la valeur de la couleur obtenue. Le résultat final est la couche visible obtenue lorsque les différents plans ont été fusionnés avec les modes de fusion. Une valeur de type de données La couleur finale obtenue est la couleur du premier plan, quelle que soit la couleur de l'arrière-plan. On obtient ainsi un effet similaire à la superposition de deux feuilles de papier opaques. La couleur finale est obtenue en multipliant les couleurs du premier plan et de l'arrière-plan. La couleur finale est obtenue en : inversant les couleurs des deux plans, en les multipliant et en inversant la couleur obtenue. Si une des couches est noire, le résultat obtenu sera l'image de l'autre couche. Si une des couches est blanche, l'image obtenue sera blanche. L'effet obtenu est semblable à la projection de deux images sur un écran. La couleur finale est la couleur la plus sombre des deux couches. La couleur finale est la couleur la plus claire des deux couches. La couleur finale est obtenue en divisant la couleur de l'arrière-plan avec l'inverse de la couleur du premier plan. La couleur finale est obtenu en inversant la couleur de l'arrière-plan qui sera divisée par la couleur du premier-plan puis inversée. Un premier-plan blanc n'entraînera aucun changement et un premier-plan qui possède exactement l'inverse de l'arrière-plan entraînera une image noire. La couleur finale est le résultat de La couleur finale obtenue est semblable à La couleur finale est obtenue en soustrayant la couleur la plus sombre à la couleur la plus claire. Une couche noire n'aura aucun effet et une couche blanche inversera l'autre image. La couleur finale obtenue est semblable à La couleur finale aura la teinte de la couleur du premier-plan et la saturation et la luminosité de la couleur de l'arrière-plan. La couleur finale aura la saturation de la couleur du premier plan et la teinte et la luminosité de la couleur de l'arrière-plan. La couleur finale aura la teinte et la saturation du premier plan et la luminosité de l'arrière-plan. Cet effet conserve les niveaux de gris et peut être utilisé pour coloriser le premier plan. La couleur finale aura la luminosité de la couleur du premier plan et la teinte et la saturation de la couleur de l'arrière-plan. {{ EmbedLiveSample('normal', "300", "350") }} {{ EmbedLiveSample('multiply', "300", "350") }} {{ EmbedLiveSample('screen', "300", "350") }} {{ EmbedLiveSample('overlay', "300", "350") }} {{ EmbedLiveSample('darken', "300", "350") }} {{ EmbedLiveSample('lighten', "300", "350") }} {{ EmbedLiveSample('color-dodge', "300", "350") }} {{ EmbedLiveSample('color-burn', "300", "350") }} {{ EmbedLiveSample('hard-light', "300", "350") }} {{ EmbedLiveSample('soft-light', "300", "350") }} {{ EmbedLiveSample('difference', "300", "350") }} {{ EmbedLiveSample('exclusion', "300", "350") }} {{ EmbedLiveSample('hue', "300", "350") }} {{ EmbedLiveSample('saturation', "300", "350") }} {{ EmbedLiveSample('color', "300", "350") }} {{ EmbedLiveSample('luminosity', "300", "350") }} Il n'y a pas d'interpolation pour les modes de fusion. Toute transition se produit brutalement. {{Compat("css.types.blend-mode")}} La propriété Si le mode d'écriture est vertical, la valeur de L'autre propriété logique permettant de définir la dimension sur l'autre axe est {{cssxref("inline-size")}}. La propriété {{EmbedLiveSample("Exemples")}} {{cssinfo}} {{Compat("css.properties.block-size")}} La propriété Si le mode d'écriture est vertical, la valeur de L'autre propriété logique permettant de définir la dimension sur l'autre axe est {{cssxref("inline-size")}}. La propriété {{EmbedLiveSample("Exemples")}} {{cssinfo}} {{Compat("css.properties.block-size")}} La propriété Pour définir la couleur de la bordure sur l'autre dimension, on pourra utiliser la propriété logique {{cssxref("border-inline-color")}} qui définit {{cssxref("border-inline-start-color")}} et {{cssxref("border-inline-end-color")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-color")}} La propriété Pour définir la couleur de la bordure sur l'autre dimension, on pourra utiliser la propriété logique {{cssxref("border-inline-color")}} qui définit {{cssxref("border-inline-start-color")}} et {{cssxref("border-inline-end-color")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-color")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end-color")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end-color")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end-style")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end-style")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-block-start-width")}}, {{cssxref("border-inline-end-width")}} et {{cssxref("border-inline-end-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end-width")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-block-start-width")}}, {{cssxref("border-inline-end-width")}} et {{cssxref("border-inline-end-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end-width")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-end")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start-color")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start-color")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start-style")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start-style")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-inline-start-width")}}, {{cssxref("border-block-end-width")}} et {{cssxref("border-inline-end-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start-width")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-inline-start-width")}}, {{cssxref("border-block-end-width")}} et {{cssxref("border-inline-end-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start-width")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-start")}} La propriété Pour les autres côtés, la bordure peut être mise en forme grâce à la propriété {{cssxref("border-inline-style")}} qui définit {{cssxref("border-inline-start-style")}} et {{cssxref("border-inline-end-style")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-style")}} La propriété Pour les autres côtés, la bordure peut être mise en forme grâce à la propriété {{cssxref("border-inline-style")}} qui définit {{cssxref("border-inline-start-style")}} et {{cssxref("border-inline-end-style")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-style")}} La propriété The border width in the other dimension can be set with {{cssxref("border-inline-width")}}, which sets {{cssxref("border-block-inline-width")}}, and {{cssxref("border-block-inline-width")}}. {{cssinfo}} {{EmbedLiveSample("Exemples", 140, 140)}} {{Compat("css.properties.border-block-width")}} La propriété The border width in the other dimension can be set with {{cssxref("border-inline-width")}}, which sets {{cssxref("border-block-inline-width")}}, and {{cssxref("border-block-inline-width")}}. {{cssinfo}} {{EmbedLiveSample("Exemples", 140, 140)}} {{Compat("css.properties.border-block-width")}} La propriété Les bordures sur l'autre dimension peuvent être définies grâce à {{cssxref("border-inline")}}, (qui est la proprété raccourcie pour {{cssxref("border-inline-start")}} et {{cssxref("border-inline-end")}}). La propriété {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block")}} La propriété Les bordures sur l'autre dimension peuvent être définies grâce à {{cssxref("border-inline")}}, (qui est la proprété raccourcie pour {{cssxref("border-inline-start")}} et {{cssxref("border-inline-end")}}). La propriété {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block")}} La propriété Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-bottom")}}. {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-bottom-color")}} La propriété Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-bottom")}}. {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-bottom-color")}} La propriété L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}. Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-bottom-left-radius")}} La propriété L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}. Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-bottom-left-radius")}} La propriété Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}. Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-bottom-right-radius")}} La propriété Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}. Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-bottom-right-radius")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-bottom-style")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-bottom-style")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-bottom-width")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-bottom-width")}} La propriété C'est une propriété raccourcie qui synthétise : Ces propriétés permettent de décrire la bordure du côté bas d'un élément. Note : Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-bottom-style")}} fournie avant La valeur par défaut de {{cssxref("border-bottom-style")}} étant Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-bottom")}} La propriété C'est une propriété raccourcie qui synthétise : Ces propriétés permettent de décrire la bordure du côté bas d'un élément. Note : Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-bottom-style")}} fournie avant La valeur par défaut de {{cssxref("border-bottom-style")}} étant Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-bottom")}} La propriété Le modèle des bordures séparées est celui qui est traditionnellement utilisé par HTML. Les cellules adjacente ont des bordures distinctes et la distance entre ces bordures est définie par la propriété {{cssxref("border-spacing")}}. Le modèle des bordures fusionnées permet que les cellules adjacentes partagent leurs bordures. Lorsqu'on utilise ce modèle, les valeurs La propriété {{EmbedLiveSample('Exemples', 400, 300)}} {{cssinfo}} {{Compat("css.properties.border-collapse")}} La propriété Le modèle des bordures séparées est celui qui est traditionnellement utilisé par HTML. Les cellules adjacente ont des bordures distinctes et la distance entre ces bordures est définie par la propriété {{cssxref("border-spacing")}}. Le modèle des bordures fusionnées permet que les cellules adjacentes partagent leurs bordures. Lorsqu'on utilise ce modèle, les valeurs La propriété {{EmbedLiveSample('Exemples', 400, 300)}} {{cssinfo}} {{Compat("css.properties.border-collapse")}} La propriété CSS Chaque côté peut être paramétré individuellement grâce aux propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} et {{cssxref("border-left-color")}} ou, si on utilise les propriétés logiques : {{cssxref("border-block-start-color")}}, {{cssxref("border-block-end-color")}}, {{cssxref("border-inline-start-color")}} et {{cssxref("border-inline-end-color")}}. {{EmbedLiveSample('Exemples', 600, 300)}} {{cssinfo}} {{Compat("css.properties.border-color")}} La propriété CSS Chaque côté peut être paramétré individuellement grâce aux propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} et {{cssxref("border-left-color")}} ou, si on utilise les propriétés logiques : {{cssxref("border-block-start-color")}}, {{cssxref("border-block-end-color")}}, {{cssxref("border-inline-start-color")}} et {{cssxref("border-inline-end-color")}}. {{EmbedLiveSample('Exemples', 600, 300)}} {{cssinfo}} {{Compat("css.properties.border-color")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-end-end-radius")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-end-end-radius")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-end-start-radius")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-end-start-radius")}} La propriété Les fragments de l'image de bordure qui sont affichées en dehors de la boîte de bordure suite à l'utilisation de cette propriété n'entraîneront pas la création de barres de défilement. Ces zones ne capturent ni n'entraînent d'événements de pointeur par rapport à l'élément concerné. {{EmbedLiveSample('Exemples', '480', '320')}} {{Compat("css.properties.border-image-outset")}} La propriété Les fragments de l'image de bordure qui sont affichées en dehors de la boîte de bordure suite à l'utilisation de cette propriété n'entraîneront pas la création de barres de défilement. Ces zones ne capturent ni n'entraînent d'événements de pointeur par rapport à l'élément concerné. {{EmbedLiveSample('Exemples', '480', '320')}} {{Compat("css.properties.border-image-outset")}} La propriété {{EmbedLiveSample('Exemples', '480', '320')}} {{Compat("css.properties.border-image-repeat")}} La propriété {{EmbedLiveSample('Exemples', '480', '320')}} {{Compat("css.properties.border-image-repeat")}} La propriété Les quatre valeurs contrôlent les positions des lignes de découpe. Si certaines ne sont pas définies, leurs valeurs sont déduites des valeurs fournies (se référer à la section sur la syntaxe). La zone du milieu ne sera pas utilisée par la bordure même mais pourra être utilisée comme image d'arrière-plan si on utilise le mot-clé Les propriétés {{cssxref("border-image-repeat")}}, {{cssxref("border-image-width")}}, {{cssxref("border-image-outset")}} définissent la façon dont ces images seront utilisées. La propriété raccourcie {{cssxref("border-image")}} peut éventuellement réinitialiser cette propriété avec sa valeur par défaut. {{EmbedLiveSample('Exemples', '480', '320')}} {{cssinfo}} {{Compat("css.properties.border-image-slice")}} La propriété Les quatre valeurs contrôlent les positions des lignes de découpe. Si certaines ne sont pas définies, leurs valeurs sont déduites des valeurs fournies (se référer à la section sur la syntaxe). La zone du milieu ne sera pas utilisée par la bordure même mais pourra être utilisée comme image d'arrière-plan si on utilise le mot-clé Les propriétés {{cssxref("border-image-repeat")}}, {{cssxref("border-image-width")}}, {{cssxref("border-image-outset")}} définissent la façon dont ces images seront utilisées. La propriété raccourcie {{cssxref("border-image")}} peut éventuellement réinitialiser cette propriété avec sa valeur par défaut. {{EmbedLiveSample('Exemples', '480', '320')}} {{cssinfo}} {{Compat("css.properties.border-image-slice")}} La propriété La propriété {{cssxref("border-image-slice")}} peut être utilisée afin de diviser une image source en régions qui seront insérées dynamiquement pour constituer la bordure imagée finale. Voir la page de la propriété raccourcie {{cssxref("border-image")}} et les différents exemples. {{cssinfo}} {{Compat("css.properties.border-image-source")}} La propriété La propriété {{cssxref("border-image-slice")}} peut être utilisée afin de diviser une image source en régions qui seront insérées dynamiquement pour constituer la bordure imagée finale. Voir la page de la propriété raccourcie {{cssxref("border-image")}} et les différents exemples. {{cssinfo}} {{Compat("css.properties.border-image-source")}} La propriété Si La propriété {{EmbedLiveSample('Exemples', '480', '320')}} {{cssinfo}} {{Compat("css.properties.border-image-width")}} La propriété Si La propriété {{EmbedLiveSample('Exemples', '480', '320')}} {{cssinfo}} {{Compat("css.properties.border-image-width")}} La propriété Cela permet d'obtenir des effets de dessin complexes sans avoir à complexifier l'utilisation des boîtes CSS. La propriété Note : Si la valeur calculée de {{cssxref("border-image-source")}} vaut La propriété Note : Si la valeur calculée de {{cssxref("border-image-source")}} vaut On découpe l'image et on la répète pour remplir la zone entre les bordures. {{EmbedLiveSample('Utiliser_une_image_matricielle_répétée')}} {{EmbedLiveSample('Utiliser_un_dégradé')}} Les technologies d'assistance ne peuvent pas analyser les images de bordure. Si l'image contient des informations essentielles au sens de la page, mieux vaut décrire ces informations dans le contenu sémantique du document. {{cssinfo}} {{Compat("css.properties.border-image")}} La propriété Cela permet d'obtenir des effets de dessin complexes sans avoir à complexifier l'utilisation des boîtes CSS. La propriété Note : Si la valeur calculée de {{cssxref("border-image-source")}} vaut La propriété Note : Si la valeur calculée de {{cssxref("border-image-source")}} vaut On découpe l'image et on la répète pour remplir la zone entre les bordures. {{EmbedLiveSample('Utiliser_une_image_matricielle_répétée')}} {{EmbedLiveSample('Utiliser_un_dégradé')}} Les technologies d'assistance ne peuvent pas analyser les images de bordure. Si l'image contient des informations essentielles au sens de la page, mieux vaut décrire ces informations dans le contenu sémantique du document. {{cssinfo}} {{Compat("css.properties.border-image")}} La propriété Pour définir la couleur de la bordure sur l'autre dimension, on pourra utiliser la propriété logique {{cssxref("border-block-color")}} qui définit {{cssxref("border-block-start-color")}} et {{cssxref("border-block-end-color")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-color")}} La propriété Pour définir la couleur de la bordure sur l'autre dimension, on pourra utiliser la propriété logique {{cssxref("border-block-color")}} qui définit {{cssxref("border-block-start-color")}} et {{cssxref("border-block-end-color")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-color")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end-color")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end-color")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end-style")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end-style")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-block-start-width")}}, {{cssxref("border-block-end-width")}} et {{cssxref("border-inline-start-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end-width")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-block-start-width")}}, {{cssxref("border-block-end-width")}} et {{cssxref("border-inline-start-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end-width")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-end")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start-color")}} La propriété Cette propriété est à rapprocher des autres propriétés logiques permettant de définir les couleurs de la bordure d'un élément : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start-color")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start-style")}} La propriété Les autres propriétés logiques permettant de définir le style de la bordure sont les suivantes : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start-style")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-block-start-width")}}, {{cssxref("border-block-end-width")}} et {{cssxref("border-inline-end-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start-width")}} La propriété Cette propriété logique est à rapprocher des autres propriétés logiques {{cssxref("border-block-start-width")}}, {{cssxref("border-block-end-width")}} et {{cssxref("border-inline-end-width")}} qui permettent de définir la largeur de la bordure pour les différents côtés de l'élément. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start-width")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start")}} La propriété Cette propriété logique correspond à l'une des propriété physique équivalente selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} ou {{cssxref("border-left")}} selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. On peut rapprocher cette propriété des autres propriétés logiques raccourcies définissant les bordures des autres côtés : Une ou plusieurs valeurs parmi les suivantes, dans n'importe quel ordre : {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-start")}} La propriété Pour les autres côtés, la bordure peut être mise en forme grâce à la propriété {{cssxref("border-block-style")}} qui définit {{cssxref("border-block-start-style")}} et {{cssxref("border-block-end-style")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-style")}} La propriété Pour les autres côtés, la bordure peut être mise en forme grâce à la propriété {{cssxref("border-block-style")}} qui définit {{cssxref("border-block-start-style")}} et {{cssxref("border-block-end-style")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline-style")}} La propriété The border width in the other dimension can be set with {{cssxref("border-block-width")}}, which sets {{cssxref("border-block-start-width")}}, and {{cssxref("border-block-end-width")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-width")}} La propriété The border width in the other dimension can be set with {{cssxref("border-block-width")}}, which sets {{cssxref("border-block-start-width")}}, and {{cssxref("border-block-end-width")}}. {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-block-width")}} La propriété Les bordures sur l'autre dimension peuvent être définies grâce à {{cssxref("border-block")}}, (qui est la proprété raccourcie pour {{cssxref("border-block-start")}} et {{cssxref("border-block-end")}}). La propriété {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline")}} La propriété Les bordures sur l'autre dimension peuvent être définies grâce à {{cssxref("border-block")}}, (qui est la proprété raccourcie pour {{cssxref("border-block-start")}} et {{cssxref("border-block-end")}}). La propriété {{EmbedLiveSample("Exemples", 140, 140)}} {{cssinfo}} {{Compat("css.properties.border-inline")}} La propriété Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-left")}}. {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-left-color")}} La propriété Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-left")}}. {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-left-color")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-left-style")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-left-style")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-left-width")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-left-width")}} La propriété Cette propriété raccourcie définit les valeurs des propriétés détaillées suivantes : Ces propriétés permettent de décrire la bordure du côté gauche d'un élément. Note : Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-left-style")}} fournie avant La valeur par défaut de {{cssxref("border-left-style")}} étant {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-left")}} La propriété Cette propriété raccourcie définit les valeurs des propriétés détaillées suivantes : Ces propriétés permettent de décrire la bordure du côté gauche d'un élément. Note : Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-left-style")}} fournie avant La valeur par défaut de {{cssxref("border-left-style")}} étant {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-left")}} La propriété La courbure s'applique à l'arrière-plan (défini avec la propriété {{cssxref("background")}}) même si l'élément n'a aucune bordure. Le rognage de l'arrière plan s'applique sur la boîte définie par {{cssxref("background-clip")}}. Cette propriété est une propriété raccourcie qui permet de définir : La propriété Note : Comme pour les autres propriétés raccourcies, il n'est pas possible d'hériter de valeurs individuelles (par exemple ( La propriété Ainsi : {{EmbedLiveSample("Exemples","300","400")}} {{cssinfo}} {{Compat("css.properties.border-radius")}} La propriété La courbure s'applique à l'arrière-plan (défini avec la propriété {{cssxref("background")}}) même si l'élément n'a aucune bordure. Le rognage de l'arrière plan s'applique sur la boîte définie par {{cssxref("background-clip")}}. Cette propriété est une propriété raccourcie qui permet de définir : La propriété Note : Comme pour les autres propriétés raccourcies, il n'est pas possible d'hériter de valeurs individuelles (par exemple ( La propriété Ainsi : {{EmbedLiveSample("Exemples","300","400")}} {{cssinfo}} {{Compat("css.properties.border-radius")}} La propriété {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-right-color")}} La propriété {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-right-color")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-right-style")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-right-style")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-right-width")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-right-width")}} La propriété Elle définit les valeurs des propriétés suivantes : Ces propriétés permettent de décrire la bordure du côté droit d'un élément. Note : Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-right-style")}} fournie avant La valeur par défaut de {{cssxref("border-right-style")}} étant {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-right")}} La propriété Elle définit les valeurs des propriétés suivantes : Ces propriétés permettent de décrire la bordure du côté droit d'un élément. Note : Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-right-style")}} fournie avant La valeur par défaut de {{cssxref("border-right-style")}} étant {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-right")}} La propriété La valeur de Note : La propriété La propriété {{EmbedLiveSample("Exemples","300","300")}} {{cssinfo}} {{Compat("css.properties.border-spacing")}} La propriété La valeur de Note : La propriété La propriété {{EmbedLiveSample("Exemples","300","300")}} {{cssinfo}} {{Compat("css.properties.border-spacing")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-start-end-radius")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-start-end-radius")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-start-start-radius")}} La propriété Ainsi, avec un mode d'écriture {{EmbedLiveSample("Exemples", 140, 140)}} {{CSSInfo}} {{Compat("css.properties.border-start-start-radius")}} La propriété CSS Note : La valeur par défaut de La propriété Chacune des valeurs peut être un des mots-clés parmi la liste suivante. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-style")}} La propriété CSS Note : La valeur par défaut de La propriété Chacune des valeurs peut être un des mots-clés parmi la liste suivante. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-style")}} La propriété Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-top")}}. {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-top-color")}} La propriété Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-top")}}. {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border-top-color")}} La propriété Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-top-left-radius")}} La propriété Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-top-left-radius")}} La propriété Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}. Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-top-right-radius")}} La propriété Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}. Note : Si la valeur de cette propriété n'est pas définie par la propriété raccourcie {{cssxref("border-radius")}} et que cette dernière est appliquée après Cette propriété peut prendre deux formes : {{EmbedLiveSample("Exemples","200","540")}} {{cssinfo}} {{Compat("css.properties.border-top-right-radius")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-top-style")}} La propriété Note : La spécification ne définit pas la façon dont les bordures de différents styles se rejoignent dans les coins. La bordure crée un effet 3D qui fait ressortir la boîte (l'effet est opposé à {{EmbedLiveSample('Exemples', 300, 200)}} {{cssinfo}} {{Compat("css.properties.border-top-style")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-top-width")}} La propriété {{EmbedLiveSample("Exemples","200","300")}} {{cssinfo}} {{Compat("css.properties.border-top-width")}} La propriété CSS C'est une propriété raccourcie qui permet de définir les valeurs de : Note : Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-top-style")}} fournie avant La valeur par défaut de {{cssxref("border-top-style")}} étant Les valeurs de la propriété raccourcie peuvent être fournies dans n'importe quel ordre et une voire deux valeurs peuvent être omises. {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-top")}} La propriété CSS C'est une propriété raccourcie qui permet de définir les valeurs de : Note : Les trois valeurs de la propriété raccourcie peuvent être définies dans n'importe quel ordre et une ou deux d'entre elles peuvent être absentes. Comme pour les autres propriétés raccourcies, est équivalent à : et la valeur {{cssxref("border-top-style")}} fournie avant La valeur par défaut de {{cssxref("border-top-style")}} étant Les valeurs de la propriété raccourcie peuvent être fournies dans n'importe quel ordre et une voire deux valeurs peuvent être omises. {{EmbedLiveSample("Exemples","200","150")}} {{Compat("css.properties.border-top")}} La propriété CSS Cette propriété raccourcie définit les propriétés détaillées Si on utilise les propriétés logiques, elle définit {{cssxref("border-block-start-width")}}, {{cssxref("border-block-end-width")}}, {{cssxref("border-inline-start-width")}} et {{cssxref("border-inline-end-width")}}. Afin de paramétrer une bordure de façon plus pratique, on pourra utiliser la propriété raccourcie {{cssxref("border")}}. La propriété {{EmbedLiveSample('Exemples', 300, 180) }} {{cssinfo}} {{Compat("css.properties.border-width")}} La propriété CSS Cette propriété raccourcie définit les propriétés détaillées Si on utilise les propriétés logiques, elle définit {{cssxref("border-block-start-width")}}, {{cssxref("border-block-end-width")}}, {{cssxref("border-inline-start-width")}} et {{cssxref("border-inline-end-width")}}. Afin de paramétrer une bordure de façon plus pratique, on pourra utiliser la propriété raccourcie {{cssxref("border")}}. La propriété {{EmbedLiveSample('Exemples', 300, 180) }} {{cssinfo}} {{Compat("css.properties.border-width")}} La propriété CSS Comme pour toutes les propriétés raccourcie, si une valeur est absente pour la propriété détaillée correspondante, cette dernière sera réinitialisée avec sa valeur initiale. On notera également que {{cssxref("border-image")}} ne peut pas être définie via cette propriété raccourcie mais elle sera quand même réinitialisée (sa valeur initiale est Note : Bien que les propriétés raccourcies {{cssxref("border-width")}}, {{cssxref("border-style")}} et {{cssxref("border-color")}} acceptent jusqu'à quatre valeurs pour les différents côtés, cette propriété ( Les bordures et contours sont similaires mais quelques différences les distinguent : La propriété Note : La bordure pourra être invisible si son style n'est pas défini. En effet, sa valeur par défaut est {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border")}} La propriété CSS Comme pour toutes les propriétés raccourcie, si une valeur est absente pour la propriété détaillée correspondante, cette dernière sera réinitialisée avec sa valeur initiale. On notera également que {{cssxref("border-image")}} ne peut pas être définie via cette propriété raccourcie mais elle sera quand même réinitialisée (sa valeur initiale est Note : Bien que les propriétés raccourcies {{cssxref("border-width")}}, {{cssxref("border-style")}} et {{cssxref("border-color")}} acceptent jusqu'à quatre valeurs pour les différents côtés, cette propriété ( Les bordures et contours sont similaires mais quelques différences les distinguent : La propriété Note : La bordure pourra être invisible si son style n'est pas défini. En effet, sa valeur par défaut est {{EmbedLiveSample('Exemples')}} {{cssinfo}} {{Compat("css.properties.border")}} La propriété -- (par exemple : --nom-exemple) représentent des propriétés personnalisées (custom properties) qui peuvent contenir une valeur qui pourra être réutilisée dans le document grâce à la fonction {{cssxref("var")}}.Syntaxe
-
---unmotcle: left;
---unecouleur: #0000ff;
---unevaleurcomplexe: 3px 6px rgb(20, 32, 54);
-
-
-
-
-
-<declaration-value>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<p id="premierParagraphe">Ce paragraphe devrait être sur fond bleu avec un texte jaune.</p>
-<p id="secondParagraphe">Ce paragraphe devrait être sur fond jaune avec un texte bleu.</p>
-
-CSS
-
-:root {
- --premiere-couleur: #488cff;
- --seconde-couleur: #ffff8c;
-}
-
-#premierParagraphe {
- background-color: var(--premiere-couleur);
- color: var(--seconde-couleur);
-}
-
-#secondParagraphe {
- background-color: var(--seconde-couleur);
- color: var(--premiere-couleur);
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS3 Variables", "#defining-variables", "--*")}}
- {{Spec2("CSS3 Variables")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/--_star_/index.md b/files/fr/web/css/--_star_/index.md
new file mode 100644
index 0000000000..456b7022d5
--- /dev/null
+++ b/files/fr/web/css/--_star_/index.md
@@ -0,0 +1,91 @@
+---
+title: Propriétés personnalisées (--*)
+slug: Web/CSS/--*
+tags:
+ - CSS
+ - Experimental
+ - Reference
+ - Variables
+ - Variables CSS
+translation_of: Web/CSS/--*
+---
+-- (par exemple : --nom-exemple) représentent des propriétés personnalisées (custom properties) qui peuvent contenir une valeur qui pourra être réutilisée dans le document grâce à la fonction {{cssxref("var")}}.Syntaxe
+
+--unmotcle: left;
+--unecouleur: #0000ff;
+--unevaleurcomplexe: 3px 6px rgb(20, 32, 54);
+
+
+
+
+
+<declaration-value>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<p id="premierParagraphe">Ce paragraphe devrait être sur fond bleu avec un texte jaune.</p>
+<p id="secondParagraphe">Ce paragraphe devrait être sur fond jaune avec un texte bleu.</p>
+
+CSS
+
+:root {
+ --premiere-couleur: #488cff;
+ --seconde-couleur: #ffff8c;
+}
+
+#premierParagraphe {
+ background-color: var(--premiere-couleur);
+ color: var(--seconde-couleur);
+}
+
+#secondParagraphe {
+ background-color: var(--seconde-couleur);
+ color: var(--premiere-couleur);
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS3 Variables", "#defining-variables", "--*")}}
+ {{Spec2("CSS3 Variables")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/-moz-context-properties/index.html b/files/fr/web/css/-moz-context-properties/index.html
deleted file mode 100644
index c7cf7e321f..0000000000
--- a/files/fr/web/css/-moz-context-properties/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: '-moz-context-properties'
-slug: Web/CSS/-moz-context-properties
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-context-properties
----
-<img> à l'image SVG (de même pour les autres contextes qui intègreraient une image SVG) grâce à la propriété -moz-context-properties.Syntaxe
-
-/* Valeurs avec un mot-clé */
--moz-context-properties: fill;
--moz-context-properties: fill, stroke;
-
-/* Valeurs globales */
--moz-context-properties: inherit;
--moz-context-properties: initial;
--moz-context-properties: unset;
-
-
-Valeurs
-
-
-
-
-fillfill appliquée sur l'image afin qu'elle soit appliquée sur le SVG.strokestroke appliquée sur l'image afin qu'elle soit appliquée sur le SVG.fill-opacityfill-opacity appliquée sur l'image afin qu'elle soit appliquée sur le SVG.stroke-opacitystroke-opacity appliquée sur l'image afin qu'elle soit appliquée sur le SVG.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-<img>.img {
- width: 100px;
- height: 100px;
- -moz-context-properties: fill, stroke;
-}
-
-.img1 {
- fill: lime;
- stroke: purple;
-}
-
-<img class="img1" src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'>
- <rect width='100%' height='100%' stroke-width='30px'
- fill='context-fill red' stroke='context-stroke' fill-opacity='0.5'/></svg>">
-
-src de l'image correspond à une URI de données qui contient une simple image SVG. L'élément <rect> est paramétré afin de récupérer les valeurs fill et stroke telles que fournies par les propriétés {{cssxref("fill")}} et {{cssxref("stroke")}} de l'élément <img> grâce aux mots-clés context-fill/context-stroke. On utilise aussi une couleur de secours pour le remplissage (fill) (qui sera utilisée si le SVG est chargé en dehors de tout contexte, dans un nouvel onglet par exemple). On notera que, si une couleur est directement définie sur le SVG et qu'une couleur contextuelle (ici celle fournie par l'image) est également indiquée, ce sera cette dernière qui l'emportera.Spécifications
-
-Compatibilité des navigateurs
-
-<img> à l'image SVG (de même pour les autres contextes qui intègreraient une image SVG) grâce à la propriété -moz-context-properties.Syntaxe
+
+/* Valeurs avec un mot-clé */
+-moz-context-properties: fill;
+-moz-context-properties: fill, stroke;
+
+/* Valeurs globales */
+-moz-context-properties: inherit;
+-moz-context-properties: initial;
+-moz-context-properties: unset;
+
+
+Valeurs
+
+
+
+
+fillfill appliquée sur l'image afin qu'elle soit appliquée sur le SVG.strokestroke appliquée sur l'image afin qu'elle soit appliquée sur le SVG.fill-opacityfill-opacity appliquée sur l'image afin qu'elle soit appliquée sur le SVG.stroke-opacitystroke-opacity appliquée sur l'image afin qu'elle soit appliquée sur le SVG.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+<img>.img {
+ width: 100px;
+ height: 100px;
+ -moz-context-properties: fill, stroke;
+}
+
+.img1 {
+ fill: lime;
+ stroke: purple;
+}
+
+<img class="img1" src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'>
+ <rect width='100%' height='100%' stroke-width='30px'
+ fill='context-fill red' stroke='context-stroke' fill-opacity='0.5'/></svg>">
+
+src de l'image correspond à une URI de données qui contient une simple image SVG. L'élément <rect> est paramétré afin de récupérer les valeurs fill et stroke telles que fournies par les propriétés {{cssxref("fill")}} et {{cssxref("stroke")}} de l'élément <img> grâce aux mots-clés context-fill/context-stroke. On utilise aussi une couleur de secours pour le remplissage (fill) (qui sera utilisée si le SVG est chargé en dehors de tout contexte, dans un nouvel onglet par exemple). On notera que, si une couleur est directement définie sur le SVG et qu'une couleur contextuelle (ici celle fournie par l'image) est également indiquée, ce sera cette dernière qui l'emportera.Spécifications
+
+Compatibilité des navigateurs
+
+-moz-float-edge définit si les propriétés de hauteur et de larguer d'un élément incluent la marge, la bordure et/ou le remplissage (padding)./* Valeurs avec un mot-clé */
--moz-float-edge: border-box;
--moz-float-edge: content-box;
--moz-float-edge: margin-box;
--moz-float-edge: padding-box;
-
-/* Valeurs globales */
--moz-float-edge: inherit;
--moz-float-edge: initial;
--moz-float-edge: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-border-boxcontent-boxmargin-boxpadding-boxSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.box {
- display: block;
- height: 5px;
- margin: 0.5em auto 0.5em auto;
- color: gray;
- -moz-float-edge: margin-box;
- box-sizing: border-box;
-}
-
-HTML
-
-<div class="box">
- <p>
- Lorem ipsum dolor sit amet,
- consectetur adipiscing elit.
- </p>
-</div>
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-float-edge/index.md b/files/fr/web/css/-moz-float-edge/index.md
new file mode 100644
index 0000000000..a81710c8d9
--- /dev/null
+++ b/files/fr/web/css/-moz-float-edge/index.md
@@ -0,0 +1,82 @@
+---
+title: '-moz-float-edge'
+slug: Web/CSS/-moz-float-edge
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-float-edge
+---
+-moz-float-edge définit si les propriétés de hauteur et de larguer d'un élément incluent la marge, la bordure et/ou le remplissage (padding)./* Valeurs avec un mot-clé */
+-moz-float-edge: border-box;
+-moz-float-edge: content-box;
+-moz-float-edge: margin-box;
+-moz-float-edge: padding-box;
+
+/* Valeurs globales */
+-moz-float-edge: inherit;
+-moz-float-edge: initial;
+-moz-float-edge: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+border-boxcontent-boxmargin-boxpadding-boxSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.box {
+ display: block;
+ height: 5px;
+ margin: 0.5em auto 0.5em auto;
+ color: gray;
+ -moz-float-edge: margin-box;
+ box-sizing: border-box;
+}
+
+HTML
+
+<div class="box">
+ <p>
+ Lorem ipsum dolor sit amet,
+ consectetur adipiscing elit.
+ </p>
+</div>
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-force-broken-image-icon/index.html b/files/fr/web/css/-moz-force-broken-image-icon/index.html
deleted file mode 100644
index 58e1ca993b..0000000000
--- a/files/fr/web/css/-moz-force-broken-image-icon/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: '-moz-force-broken-image-icon'
-slug: Web/CSS/-moz-force-broken-image-icon
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-force-broken-image-icon
----
--moz-force-broken-image-icon est une propriété CSS non-standard. Lorsqu'elle vaut 1, elle permet de forcer l'affichage d'une icône d'image brisée même si l'image possède un attribut {{HTMLElement("img","alt","#attr-alt")}}. Lorsqu'elle vaut 0, l'image est utilisée de façon normale et n'affichera que l'attribut alt.Syntaxe
-
-Valeurs
-
-
-
-
-alt", "#attr-alt")}}. 0 indique que seul l'attribut alt doit être affiché.
- 1, l'attribut alt sera affiché. Voir ci-après.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-img {
- -moz-force-broken-image-icon: 1;
- height: 100px;
- width: 100px;
-}
-
-HTML
-
-<img src='/lien/vers/image/cassée.png' alt='Un lien vers une image cassée'>
-
-Résultat
-
--moz-force-broken-image-icon a la valeur 1 et que ni la hauteur ni largeur de l'image ne sont spécifiées alors l'image ne sera pas affichée et l'attribut alt sera masqué.Spécifications
-
-Notes
-
-
-
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-force-broken-image-icon/index.md b/files/fr/web/css/-moz-force-broken-image-icon/index.md
new file mode 100644
index 0000000000..58e1ca993b
--- /dev/null
+++ b/files/fr/web/css/-moz-force-broken-image-icon/index.md
@@ -0,0 +1,70 @@
+---
+title: '-moz-force-broken-image-icon'
+slug: Web/CSS/-moz-force-broken-image-icon
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-force-broken-image-icon
+---
+-moz-force-broken-image-icon est une propriété CSS non-standard. Lorsqu'elle vaut 1, elle permet de forcer l'affichage d'une icône d'image brisée même si l'image possède un attribut {{HTMLElement("img","alt","#attr-alt")}}. Lorsqu'elle vaut 0, l'image est utilisée de façon normale et n'affichera que l'attribut alt.Syntaxe
+
+Valeurs
+
+
+
+
+alt", "#attr-alt")}}. 0 indique que seul l'attribut alt doit être affiché.
+ 1, l'attribut alt sera affiché. Voir ci-après.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+img {
+ -moz-force-broken-image-icon: 1;
+ height: 100px;
+ width: 100px;
+}
+
+HTML
+
+<img src='/lien/vers/image/cassée.png' alt='Un lien vers une image cassée'>
+
+Résultat
+
+-moz-force-broken-image-icon a la valeur 1 et que ni la hauteur ni largeur de l'image ne sont spécifiées alors l'image ne sera pas affichée et l'attribut alt sera masqué.Spécifications
+
+Notes
+
+
+
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-image-rect/index.html b/files/fr/web/css/-moz-image-rect/index.html
deleted file mode 100644
index 45b4ec33bf..0000000000
--- a/files/fr/web/css/-moz-image-rect/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: '-moz-image-rect'
-slug: Web/CSS/-moz-image-rect
-tags:
- - CSS
- - Fonction
- - Non-standard
- - Reference
-translation_of: Web/CSS/-moz-image-rect
----
--moz-image-rect permet d'utiliser une seule partie d'une image pour un arrière-plan (contrairement à {{cssxref("background-image")}}). On peut ainsi utiliser une image qui regroupe plusieurs sprites à différentes fins, ce qui permet de diminuer le nombre de transfert réseau.-moz-image-rect, on peut avoir le même fonctionnement pour n'importe quel arrière-plan CSS.rect() qui génère une valeur de type {{cssxref("<shape>")}}. Les quatre valeurs indiquées font chacune référence au coin supérieur gauche de l'image.Syntaxe
-
--moz-image-rect({{cssxref("<uri>")}}, top, right, bottom, left);
-
-Valeurs
-
-
-
-
-toprightbottomleftSyntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-CSS
-
-#container {
- width:267px;
- height:272px;
- top:100px;
- left:100px;
- position:absolute;
- font-size:16px;
- text-shadow:white 0px 0px 6px;
- text-align:center;
-}
-
-#box1 {
- background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 0%, 50%, 50%, 0%);
- width:133px;
- height:136px;
- position:absolute;
-}
-
-#box2 {
- background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 0%, 100%, 50%, 50%);
- width:133px;
- height:136px;
- position:absolute;
-}
-
-#box3 {
- background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 50%, 50%, 100%, 0%);
- width:133px;
- height:136px;
- position:absolute;
-}
-
-#box4 {
- background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 50%, 100%, 100%, 50%);
- width:133px;
- height:136px;
- position:absolute;
-}
-
-
-HTML
-
-<div id="container" onclick="rotate()">
- <div id="box1" style="left:0px;top:0px;">Top left</div>
- <div id="box2" style="left:133px;top:0px;">Top right</div>
- <div id="box3" style="left:0px;top:136px;">Bottom left</div>
- <div id="box4" style="left:133px;top:136px;">Bottom right</div>
-</div>
-
-
-JavaScript
-
-function rotate() {
- var prevStyle = window.getComputedStyle(document.getElementById("box4"), null).getPropertyValue("background-image");
-
- // Now that we've saved the last one, start rotating
-
- for (var i=1; i<=4; i++) {
- var curId = "box" + i;
-
- // Shift the background images
-
- var curStyle = window.getComputedStyle(document.getElementById(curId), null).getPropertyValue("background-image");
- document.getElementById(curId).style.backgroundImage = prevStyle;
- prevStyle = curStyle;
- }
-}
-
-Résultat
-
-Compatibilité des navigateurs
-
--moz-image-rect permet d'utiliser une seule partie d'une image pour un arrière-plan (contrairement à {{cssxref("background-image")}}). On peut ainsi utiliser une image qui regroupe plusieurs sprites à différentes fins, ce qui permet de diminuer le nombre de transfert réseau.-moz-image-rect, on peut avoir le même fonctionnement pour n'importe quel arrière-plan CSS.rect() qui génère une valeur de type {{cssxref("<shape>")}}. Les quatre valeurs indiquées font chacune référence au coin supérieur gauche de l'image.Syntaxe
+
+-moz-image-rect({{cssxref("<uri>")}}, top, right, bottom, left);
+
+Valeurs
+
+
+
+
+toprightbottomleftSyntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+CSS
+
+#container {
+ width:267px;
+ height:272px;
+ top:100px;
+ left:100px;
+ position:absolute;
+ font-size:16px;
+ text-shadow:white 0px 0px 6px;
+ text-align:center;
+}
+
+#box1 {
+ background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 0%, 50%, 50%, 0%);
+ width:133px;
+ height:136px;
+ position:absolute;
+}
+
+#box2 {
+ background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 0%, 100%, 50%, 50%);
+ width:133px;
+ height:136px;
+ position:absolute;
+}
+
+#box3 {
+ background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 50%, 50%, 100%, 0%);
+ width:133px;
+ height:136px;
+ position:absolute;
+}
+
+#box4 {
+ background-image: -moz-image-rect(url(https://mdn.mozillademos.org/files/12053/firefox.png), 50%, 100%, 100%, 50%);
+ width:133px;
+ height:136px;
+ position:absolute;
+}
+
+
+HTML
+
+<div id="container" onclick="rotate()">
+ <div id="box1" style="left:0px;top:0px;">Top left</div>
+ <div id="box2" style="left:133px;top:0px;">Top right</div>
+ <div id="box3" style="left:0px;top:136px;">Bottom left</div>
+ <div id="box4" style="left:133px;top:136px;">Bottom right</div>
+</div>
+
+
+JavaScript
+
+function rotate() {
+ var prevStyle = window.getComputedStyle(document.getElementById("box4"), null).getPropertyValue("background-image");
+
+ // Now that we've saved the last one, start rotating
+
+ for (var i=1; i<=4; i++) {
+ var curId = "box" + i;
+
+ // Shift the background images
+
+ var curStyle = window.getComputedStyle(document.getElementById(curId), null).getPropertyValue("background-image");
+ document.getElementById(curId).style.backgroundImage = prevStyle;
+ prevStyle = curStyle;
+ }
+}
+
+Résultat
+
+Compatibilité des navigateurs
+
+-moz-image-region définit la partie de l'image qui est utilisée plutôt que l'image toute entière. Cela permet d'utiliser des images qui regroupent des sprites afin d'améliorer les performances./* Valeur avec un mot-clé */
--moz-image-region: auto;
-
-/* Valeur de type <shape> */
--moz-image-region: rect(0, 8px, 4px, 4px);
-
-/* Valeurs globales */
--moz-image-region: inherit;
--moz-image-region: initial;
--moz-image-region: unset;
-
-Syntaxe
-
-Valeurs
-
-
-
-
-auto<shape>rect() permet de définir un rectangle. Les paramètres de cette fonction correspondent respectivement aux décalages des bords haut, droit, bas et gauche. Voir {{cssxref("<shape>")}}.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-#example-button {
- /* display only the 4x4 area from the top left of this image */
- list-style-image: url("chrome://example/skin/example.png");
- -moz-image-region: rect(0px, 4px, 4px, 0px);
-}
-#example-button:hover {
- /* use the 4x4 area to the right of the first for the hovered button */
- -moz-image-region: rect(0px, 8px, 4px, 4px);
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-image-region/index.md b/files/fr/web/css/-moz-image-region/index.md
new file mode 100644
index 0000000000..b63d4192c2
--- /dev/null
+++ b/files/fr/web/css/-moz-image-region/index.md
@@ -0,0 +1,73 @@
+---
+title: '-moz-image-region'
+slug: Web/CSS/-moz-image-region
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Référence(2)
+translation_of: Web/CSS/-moz-image-region
+---
+-moz-image-region définit la partie de l'image qui est utilisée plutôt que l'image toute entière. Cela permet d'utiliser des images qui regroupent des sprites afin d'améliorer les performances./* Valeur avec un mot-clé */
+-moz-image-region: auto;
+
+/* Valeur de type <shape> */
+-moz-image-region: rect(0, 8px, 4px, 4px);
+
+/* Valeurs globales */
+-moz-image-region: inherit;
+-moz-image-region: initial;
+-moz-image-region: unset;
+
+Syntaxe
+
+Valeurs
+
+
+
+
+auto<shape>rect() permet de définir un rectangle. Les paramètres de cette fonction correspondent respectivement aux décalages des bords haut, droit, bas et gauche. Voir {{cssxref("<shape>")}}.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+#example-button {
+ /* display only the 4x4 area from the top left of this image */
+ list-style-image: url("chrome://example/skin/example.png");
+ -moz-image-region: rect(0px, 4px, 4px, 0px);
+}
+#example-button:hover {
+ /* use the 4x4 area to the right of the first for the hovered button */
+ -moz-image-region: rect(0px, 8px, 4px, 4px);
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-orient/index.html b/files/fr/web/css/-moz-orient/index.html
deleted file mode 100644
index 4fd2c9583f..0000000000
--- a/files/fr/web/css/-moz-orient/index.html
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: '-moz-orient'
-slug: Web/CSS/-moz-orient
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-orient
----
--moz-orient définit l'orientation de l'élément sur lequel elle est appliquée.Syntaxe
-
-moz-orient est définie avec un mot-clé parmi ceux de la liste ci-après.Valeurs
-
-
-
-
-inlineblockhorizontalverticalSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<p>
- La barre de progression suivante est
- horizontale (le comportement par défaut) :
-</p>
-<progress max="100" value="75"></progress>
-
-<p>
- La barre de progression suivante
- est verticale :
-</p>
-<progress class="vert" max="100" value="75"></progress>
-
-CSS
-
-.vert {
- -moz-orient: vertical;
- width: 16px;
- height: 150px;
-}
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-orient/index.md b/files/fr/web/css/-moz-orient/index.md
new file mode 100644
index 0000000000..4fd2c9583f
--- /dev/null
+++ b/files/fr/web/css/-moz-orient/index.md
@@ -0,0 +1,78 @@
+---
+title: '-moz-orient'
+slug: Web/CSS/-moz-orient
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-orient
+---
+-moz-orient définit l'orientation de l'élément sur lequel elle est appliquée.Syntaxe
+
+moz-orient est définie avec un mot-clé parmi ceux de la liste ci-après.Valeurs
+
+
+
+
+inlineblockhorizontalverticalSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<p>
+ La barre de progression suivante est
+ horizontale (le comportement par défaut) :
+</p>
+<progress max="100" value="75"></progress>
+
+<p>
+ La barre de progression suivante
+ est verticale :
+</p>
+<progress class="vert" max="100" value="75"></progress>
+
+CSS
+
+.vert {
+ -moz-orient: vertical;
+ width: 16px;
+ height: 150px;
+}
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-outline-radius-bottomleft/index.html b/files/fr/web/css/-moz-outline-radius-bottomleft/index.html
deleted file mode 100644
index 4b4cbfb209..0000000000
--- a/files/fr/web/css/-moz-outline-radius-bottomleft/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: '-moz-outline-radius-bottomleft'
-slug: Web/CSS/-moz-outline-radius-bottomleft
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-outline-radius-bottomleft
----
--moz-outline-radius-bottomleft définit l'arrondi du coin inférieur gauche du contour.Exemples
-
-HTML
-
-<p>Regardez le coin inférieur gauche de ce paragraphe.</p>
-
-CSS
-
-p {
- margin: 5px;
- border: solid cyan;
- outline: dotted red;
- -moz-outline-radius-bottomleft: 2em;
-}
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-outline-radius-bottomleft/index.md b/files/fr/web/css/-moz-outline-radius-bottomleft/index.md
new file mode 100644
index 0000000000..4b4cbfb209
--- /dev/null
+++ b/files/fr/web/css/-moz-outline-radius-bottomleft/index.md
@@ -0,0 +1,49 @@
+---
+title: '-moz-outline-radius-bottomleft'
+slug: Web/CSS/-moz-outline-radius-bottomleft
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-outline-radius-bottomleft
+---
+-moz-outline-radius-bottomleft définit l'arrondi du coin inférieur gauche du contour.Exemples
+
+HTML
+
+<p>Regardez le coin inférieur gauche de ce paragraphe.</p>
+
+CSS
+
+p {
+ margin: 5px;
+ border: solid cyan;
+ outline: dotted red;
+ -moz-outline-radius-bottomleft: 2em;
+}
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-outline-radius-bottomright/index.html b/files/fr/web/css/-moz-outline-radius-bottomright/index.html
deleted file mode 100644
index 8c4e1a813a..0000000000
--- a/files/fr/web/css/-moz-outline-radius-bottomright/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: '-moz-outline-radius-bottomright'
-slug: Web/CSS/-moz-outline-radius-bottomright
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-outline-radius-bottomright
----
--moz-outline-radius-bottomright définit l'arrondi du coin inférieur droit du contour.Exemples
-
-HTML
-
-<p>Regardez le coin inférieur droit de ce paragraphe.</p>
-
-CSS
-
-p {
- margin: 5px;
- border: solid cyan;
- outline: dotted red;
- -moz-outline-radius-bottomright: 2em;
-}
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-outline-radius-bottomright/index.md b/files/fr/web/css/-moz-outline-radius-bottomright/index.md
new file mode 100644
index 0000000000..8c4e1a813a
--- /dev/null
+++ b/files/fr/web/css/-moz-outline-radius-bottomright/index.md
@@ -0,0 +1,49 @@
+---
+title: '-moz-outline-radius-bottomright'
+slug: Web/CSS/-moz-outline-radius-bottomright
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-outline-radius-bottomright
+---
+-moz-outline-radius-bottomright définit l'arrondi du coin inférieur droit du contour.Exemples
+
+HTML
+
+<p>Regardez le coin inférieur droit de ce paragraphe.</p>
+
+CSS
+
+p {
+ margin: 5px;
+ border: solid cyan;
+ outline: dotted red;
+ -moz-outline-radius-bottomright: 2em;
+}
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-outline-radius-topleft/index.html b/files/fr/web/css/-moz-outline-radius-topleft/index.html
deleted file mode 100644
index 825b0b8e08..0000000000
--- a/files/fr/web/css/-moz-outline-radius-topleft/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: '-moz-outline-radius-topleft'
-slug: Web/CSS/-moz-outline-radius-topleft
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-outline-radius-topleft
----
--moz-outline-radius-topleft définit l'arrondi du coin supérieur gauche du contour.Exemples
-
-HTML
-
-<p>Observez le coin supérieur gauche de ce paragraphe.</p>
-
-CSS
-
-p {
- margin: 5px;
- border: solid cyan;
- outline: dotted red;
- -moz-outline-radius-topleft: 2em;
-}
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-outline-radius-topleft/index.md b/files/fr/web/css/-moz-outline-radius-topleft/index.md
new file mode 100644
index 0000000000..825b0b8e08
--- /dev/null
+++ b/files/fr/web/css/-moz-outline-radius-topleft/index.md
@@ -0,0 +1,49 @@
+---
+title: '-moz-outline-radius-topleft'
+slug: Web/CSS/-moz-outline-radius-topleft
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-outline-radius-topleft
+---
+-moz-outline-radius-topleft définit l'arrondi du coin supérieur gauche du contour.Exemples
+
+HTML
+
+<p>Observez le coin supérieur gauche de ce paragraphe.</p>
+
+CSS
+
+p {
+ margin: 5px;
+ border: solid cyan;
+ outline: dotted red;
+ -moz-outline-radius-topleft: 2em;
+}
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-outline-radius-topright/index.html b/files/fr/web/css/-moz-outline-radius-topright/index.html
deleted file mode 100644
index df414e6d10..0000000000
--- a/files/fr/web/css/-moz-outline-radius-topright/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: '-moz-outline-radius-topright'
-slug: Web/CSS/-moz-outline-radius-topright
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Référence(2)
-translation_of: Web/CSS/-moz-outline-radius-topright
----
--moz-outline-radius-topright définit l'arrondi du coin supérieur droit du contour.Exemples
-
-HTML
-
-<p>Observez le coin supérieur droit de ce paragraphe.</p>
-
-CSS
-
-p {
- margin: 5px;
- border: solid cyan;
- outline: dotted red;
- -moz-outline-radius-topright: 2em;
-}
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-outline-radius-topright/index.md b/files/fr/web/css/-moz-outline-radius-topright/index.md
new file mode 100644
index 0000000000..df414e6d10
--- /dev/null
+++ b/files/fr/web/css/-moz-outline-radius-topright/index.md
@@ -0,0 +1,49 @@
+---
+title: '-moz-outline-radius-topright'
+slug: Web/CSS/-moz-outline-radius-topright
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Référence(2)
+translation_of: Web/CSS/-moz-outline-radius-topright
+---
+-moz-outline-radius-topright définit l'arrondi du coin supérieur droit du contour.Exemples
+
+HTML
+
+<p>Observez le coin supérieur droit de ce paragraphe.</p>
+
+CSS
+
+p {
+ margin: 5px;
+ border: solid cyan;
+ outline: dotted red;
+ -moz-outline-radius-topright: 2em;
+}
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-outline-radius/index.html b/files/fr/web/css/-moz-outline-radius/index.html
deleted file mode 100644
index f91a602fcb..0000000000
--- a/files/fr/web/css/-moz-outline-radius/index.html
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: '-moz-outline-radius'
-slug: Web/CSS/-moz-outline-radius
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-outline-radius
----
--moz-outline-radius peut être utilisée afin que le contour dessiné autour d'un élément ait des angles arrondis. Le contour ({{cssxref("outline")}}) est dessiné autour des éléments pour les faire ressortir./* Une seule valeur */
--moz-outline-radius: 25px;
-
-/* Deux valeurs */
--moz-outline-radius: 25px 1em;
-
-/* Trois valeurs */
--moz-outline-radius: 25px 1em 12%;
-
-/* Quatre valeurs */
--moz-outline-radius: 25px 1em 12% 4mm;
-
-/* Valeurs globales */
--moz-outline-radius: inherit;
--moz-outline-radius: initial;
--moz-outline-radius: unset;
-
-
--moz-outline-radius est une propriété raccourcie qui permet de définir les quatre propriétés destinées à chacun des angles {{cssxref("-moz-outline-radius-topleft")}}, {{cssxref("-moz-outline-radius-topright")}}, {{cssxref("-moz-outline-radius-bottomright")}} et {{cssxref("-moz-outline-radius-bottomleft")}}.Syntaxe
-
-Valeurs
-
-<percentage> respectent la même syntaxe que pour {{cssxref("border-radius")}}.<outline-radius> dont chacune peut être de type :
-
-
-<length><percentage>Gestion des valeurs multiples :
-
-
-
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.exemple1 {
- border: 1px solid black;
- outline: dotted red;
- -moz-outline-radius: 12% 1em 25px;
-}
-
-.exemple2 {
- border: 1px solid black;
- outline: dotted red;
- -moz-outline-radius-topleft: 12%;
- -moz-outline-radius-topright: 1em;
- -moz-outline-radius-bottomright: 35px;
- -moz-outline-radius-bottomleft: 1em;
-}
-
-HTML
-
-<p class="exemple1">
- La propriété outline-style en utilisant -moz-outline-radius
-</p>
-<p class="exemple2">
- Un exemple légèrement plus compliqué avec -moz-outline-radius-xxx
-</p>
-
-
-Résultat
-
-Notes
-
-
-
-
-dotted ou dashed sont affichés avec des lignes pleines (cf. {{bug("382721")}}) jusqu'à Firefox 50.Spécifications
-
-Compatibilité des navigateurs
-
--moz-outline-radius peut être utilisée afin que le contour dessiné autour d'un élément ait des angles arrondis. Le contour ({{cssxref("outline")}}) est dessiné autour des éléments pour les faire ressortir./* Une seule valeur */
+-moz-outline-radius: 25px;
+
+/* Deux valeurs */
+-moz-outline-radius: 25px 1em;
+
+/* Trois valeurs */
+-moz-outline-radius: 25px 1em 12%;
+
+/* Quatre valeurs */
+-moz-outline-radius: 25px 1em 12% 4mm;
+
+/* Valeurs globales */
+-moz-outline-radius: inherit;
+-moz-outline-radius: initial;
+-moz-outline-radius: unset;
+
+
+-moz-outline-radius est une propriété raccourcie qui permet de définir les quatre propriétés destinées à chacun des angles {{cssxref("-moz-outline-radius-topleft")}}, {{cssxref("-moz-outline-radius-topright")}}, {{cssxref("-moz-outline-radius-bottomright")}} et {{cssxref("-moz-outline-radius-bottomleft")}}.Syntaxe
+
+Valeurs
+
+<percentage> respectent la même syntaxe que pour {{cssxref("border-radius")}}.<outline-radius> dont chacune peut être de type :
+
+
+<length><percentage>Gestion des valeurs multiples :
+
+
+
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.exemple1 {
+ border: 1px solid black;
+ outline: dotted red;
+ -moz-outline-radius: 12% 1em 25px;
+}
+
+.exemple2 {
+ border: 1px solid black;
+ outline: dotted red;
+ -moz-outline-radius-topleft: 12%;
+ -moz-outline-radius-topright: 1em;
+ -moz-outline-radius-bottomright: 35px;
+ -moz-outline-radius-bottomleft: 1em;
+}
+
+HTML
+
+<p class="exemple1">
+ La propriété outline-style en utilisant -moz-outline-radius
+</p>
+<p class="exemple2">
+ Un exemple légèrement plus compliqué avec -moz-outline-radius-xxx
+</p>
+
+
+Résultat
+
+Notes
+
+
+
+
+dotted ou dashed sont affichés avec des lignes pleines (cf. {{bug("382721")}}) jusqu'à Firefox 50.Spécifications
+
+Compatibilité des navigateurs
+
+-moz-user-focus est utilisée pour indiquer si l'élément peut recevoir le focus./* Valeurs avec un mot-clé */
--moz-user-focus: normal;
--moz-user-focus: ignore;
-
-/* Valeurs globales */
--moz-user-focus: inherit;
--moz-user-focus: initial;
--moz-user-focus: unset;
-
-
-ignore, on peut désactiver la prise de focus sur l'élément (l'utilisateur ne pourra pas activer l'élément) et l'élément sera sauté lors de la navigation à la tabulation.textbox en tant que tel ne reçoit jamais le focus. À la place, XBL crée un élément HTML {{HTMLElement("input")}} anonyme à l'intérieur du textbox et que l'élément reçoit le focus. On peut empêcher le textbox de prendre le focus clavier en passant son index de tabulation à -1, pour l'empêcher de prendre le focus souris, on pourra utiliser les événements mousedown.Syntaxe
-
-Valeurs
-
-
-
-
-ignorenormalSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<input class="ignored" value="L'utilisateur ne peut pas placer le focus sur cet élément.">
-
-
-CSS
-
-.ignored {
- -moz-user-focus: ignore;
-}
-
-Spécifications
-
-user-focus a été proposée pour des brouillons de l'ancienne spécifications CSS3 pour les interfaces utilisateurs mais a été rejetée par le groupe de travail.Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-user-focus/index.md b/files/fr/web/css/-moz-user-focus/index.md
new file mode 100644
index 0000000000..62492eb50c
--- /dev/null
+++ b/files/fr/web/css/-moz-user-focus/index.md
@@ -0,0 +1,75 @@
+---
+title: '-moz-user-focus'
+slug: Web/CSS/-moz-user-focus
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-user-focus
+---
+-moz-user-focus est utilisée pour indiquer si l'élément peut recevoir le focus./* Valeurs avec un mot-clé */
+-moz-user-focus: normal;
+-moz-user-focus: ignore;
+
+/* Valeurs globales */
+-moz-user-focus: inherit;
+-moz-user-focus: initial;
+-moz-user-focus: unset;
+
+
+ignore, on peut désactiver la prise de focus sur l'élément (l'utilisateur ne pourra pas activer l'élément) et l'élément sera sauté lors de la navigation à la tabulation.textbox en tant que tel ne reçoit jamais le focus. À la place, XBL crée un élément HTML {{HTMLElement("input")}} anonyme à l'intérieur du textbox et que l'élément reçoit le focus. On peut empêcher le textbox de prendre le focus clavier en passant son index de tabulation à -1, pour l'empêcher de prendre le focus souris, on pourra utiliser les événements mousedown.Syntaxe
+
+Valeurs
+
+
+
+
+ignorenormalSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<input class="ignored" value="L'utilisateur ne peut pas placer le focus sur cet élément.">
+
+
+CSS
+
+.ignored {
+ -moz-user-focus: ignore;
+}
+
+Spécifications
+
+user-focus a été proposée pour des brouillons de l'ancienne spécifications CSS3 pour les interfaces utilisateurs mais a été rejetée par le groupe de travail.Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-moz-user-input/index.html b/files/fr/web/css/-moz-user-input/index.html
deleted file mode 100644
index 75138e739c..0000000000
--- a/files/fr/web/css/-moz-user-input/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: '-moz-user-input'
-slug: Web/CSS/-moz-user-input
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-moz-user-input
----
--moz-user-input détermine si l'utilisateur peut effectuer une saisie sur l'élément (bien que rejetée, cette propriété a contribué à la construction de la propriété standard {{cssxref("user-input")}}./* Valeurs avec un mot-clé */
--moz-user-input: none;
--moz-user-input: enabled;
--moz-user-input: disabled;
-
-/* Valeurs globales */
--moz-user-input: inherit;
--moz-user-input: initial;
--moz-user-input: unset;
-
-
--moz-user-input sera enabled.Syntaxe
-
-Valeurs
-
-
-
-
-noneenableddisabledtrue car l'élément est dessiné normalement). Cette valeur n'est plus prise en charge à partir de Firefox 60 (cf. {{bug(1405087)}}).Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-input.exemple {
- /* L'utilisateur pourra sélectionner le texte
- mais ne pourra pas le modifier. */
- -moz-user-input: disabled;
-}
-
-
-Spécifications
-
-user-focus a été proposée pour des brouillons de l'ancienne spécifications CSS3 pour les interfaces utilisateurs mais a été rejetée par le groupe de travail.Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-moz-user-input/index.md b/files/fr/web/css/-moz-user-input/index.md
new file mode 100644
index 0000000000..75138e739c
--- /dev/null
+++ b/files/fr/web/css/-moz-user-input/index.md
@@ -0,0 +1,70 @@
+---
+title: '-moz-user-input'
+slug: Web/CSS/-moz-user-input
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-moz-user-input
+---
+-moz-user-input détermine si l'utilisateur peut effectuer une saisie sur l'élément (bien que rejetée, cette propriété a contribué à la construction de la propriété standard {{cssxref("user-input")}}./* Valeurs avec un mot-clé */
+-moz-user-input: none;
+-moz-user-input: enabled;
+-moz-user-input: disabled;
+
+/* Valeurs globales */
+-moz-user-input: inherit;
+-moz-user-input: initial;
+-moz-user-input: unset;
+
+
+-moz-user-input sera enabled.Syntaxe
+
+Valeurs
+
+
+
+
+noneenableddisabledtrue car l'élément est dessiné normalement). Cette valeur n'est plus prise en charge à partir de Firefox 60 (cf. {{bug(1405087)}}).Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+input.exemple {
+ /* L'utilisateur pourra sélectionner le texte
+ mais ne pourra pas le modifier. */
+ -moz-user-input: disabled;
+}
+
+
+Spécifications
+
+user-focus a été proposée pour des brouillons de l'ancienne spécifications CSS3 pour les interfaces utilisateurs mais a été rejetée par le groupe de travail.Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-border-before/index.html b/files/fr/web/css/-webkit-border-before/index.html
deleted file mode 100644
index 9e383a0fb7..0000000000
--- a/files/fr/web/css/-webkit-border-before/index.html
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: '-webkit-border-before'
-slug: Web/CSS/-webkit-border-before
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-border-before
----
--webkit-border-before est une propriété raccourcie qui permet de définir les propriétés de la bordure pour le début d'un élément dans l'axe de bloc (l'axe logique orthogonal à l'axe de lecture)./* Valeurs décrivant une bordure */
--webkit-border-before: 1px;
--webkit-border-before: 2px dotted;
--webkit-border-before: medium dashed blue;
-
-/* Valeurs globales */
--webkit-border-before: inherit;
--webkit-border-before: initial;
--webkit-border-before: unset;
-
-
--webkit-border-before peut ainsi être utilisée pour définir les valeurs d'une ou plusieurs de ces propriétés : {{cssxref("-webkit-border-before-width")}}, {{cssxref("-webkit-border-before-style")}}, et {{cssxref("-webkit-border-before-color")}}. Cette propriété est une propriété logique qui correspond à une propriété physique selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}}ou {{cssxref("border-left")}} selon les valeurs définies pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
-
-Valeurs
-
-
-
-
-<border-width><border-style><color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- -webkit-border-before: 5px dashed blue;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Texte pour l'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-border-before/index.md b/files/fr/web/css/-webkit-border-before/index.md
new file mode 100644
index 0000000000..9e383a0fb7
--- /dev/null
+++ b/files/fr/web/css/-webkit-border-before/index.md
@@ -0,0 +1,106 @@
+---
+title: '-webkit-border-before'
+slug: Web/CSS/-webkit-border-before
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-border-before
+---
+
-
-
-
- -webkit-border-before est une propriété raccourcie qui permet de définir les propriétés de la bordure pour le début d'un élément dans l'axe de bloc (l'axe logique orthogonal à l'axe de lecture)./* Valeurs décrivant une bordure */
+-webkit-border-before: 1px;
+-webkit-border-before: 2px dotted;
+-webkit-border-before: medium dashed blue;
+
+/* Valeurs globales */
+-webkit-border-before: inherit;
+-webkit-border-before: initial;
+-webkit-border-before: unset;
+
+
+-webkit-border-before peut ainsi être utilisée pour définir les valeurs d'une ou plusieurs de ces propriétés : {{cssxref("-webkit-border-before-width")}}, {{cssxref("-webkit-border-before-style")}}, et {{cssxref("-webkit-border-before-color")}}. Cette propriété est une propriété logique qui correspond à une propriété physique selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}}ou {{cssxref("border-left")}} selon les valeurs définies pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
+
+Valeurs
+
+
+
+
+<border-width><border-style><color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ -webkit-border-before: 5px dashed blue;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Texte pour l'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-box-reflect/index.html b/files/fr/web/css/-webkit-box-reflect/index.html
deleted file mode 100644
index 856a9ca5b0..0000000000
--- a/files/fr/web/css/-webkit-box-reflect/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: '-webkit-box-reflect'
-slug: Web/CSS/-webkit-box-reflect
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-box-reflect
----
-
+
+
+
+ -webkit-box-reflect peut être utilisée afin de créer un effet de réflexion d'un élément dans une direction donnée./* Valeurs de directions */
--webkit-box-reflect: above;
--webkit-box-reflect: below;
--webkit-box-reflect: left;
--webkit-box-reflect: right;
-
-/* Valeurs incluant un décalage */
--webkit-box-reflect: below 10px;
-
-/* Valeur de masque */
--webkit-box-reflect: below 0 linear-gradient(transparent, white);
-
-/* Valeurs globales */
--webkit-box-reflect: inherit;
--webkit-box-reflect: initial;
--webkit-box-reflect: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-above, below, right, left<length><image>Syntaxe formelle
-
-{{csssyntax}}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-box-reflect/index.md b/files/fr/web/css/-webkit-box-reflect/index.md
new file mode 100644
index 0000000000..856a9ca5b0
--- /dev/null
+++ b/files/fr/web/css/-webkit-box-reflect/index.md
@@ -0,0 +1,70 @@
+---
+title: '-webkit-box-reflect'
+slug: Web/CSS/-webkit-box-reflect
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-box-reflect
+---
+-webkit-box-reflect peut être utilisée afin de créer un effet de réflexion d'un élément dans une direction donnée./* Valeurs de directions */
+-webkit-box-reflect: above;
+-webkit-box-reflect: below;
+-webkit-box-reflect: left;
+-webkit-box-reflect: right;
+
+/* Valeurs incluant un décalage */
+-webkit-box-reflect: below 10px;
+
+/* Valeur de masque */
+-webkit-box-reflect: below 0 linear-gradient(transparent, white);
+
+/* Valeurs globales */
+-webkit-box-reflect: inherit;
+-webkit-box-reflect: initial;
+-webkit-box-reflect: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+above, below, right, left<length><image>Syntaxe formelle
+
+{{csssyntax}}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-line-clamp/index.html b/files/fr/web/css/-webkit-line-clamp/index.html
deleted file mode 100644
index 26895d4690..0000000000
--- a/files/fr/web/css/-webkit-line-clamp/index.html
+++ /dev/null
@@ -1,99 +0,0 @@
----
-title: '-webkit-line-clamp'
-slug: Web/CSS/-webkit-line-clamp
-tags:
- - CSS
- - Propriété
-translation_of: Web/CSS/-webkit-line-clamp
----
--webkit-line-clamp permet de limiter l'affichage du contenu d'un bloc à un nombre donné de lignes.-webkit-box ou -webkit-inline-box et si {{cssxref("-webkit-box-orient")}} vaut vertical.hidden, afin de masquer le contenu qui dépasse (plutôt que d'afficher une ellipse en dehors de la boîte).-webkit-line-clamp.Syntaxe
-
-/* Valeurs avec un mot-clé */
--webkit-line-clamp: none;
-
-/* Valeurs entières */
-/* Type <integer> */
--webkit-line-clamp: 3;
--webkit-line-clamp: 10;
-
-/* Valeurs globales */
--webkit-line-clamp: inherit;
--webkit-line-clamp: initial;
--webkit-line-clamp: unset;
-
-
-
-
-
-noneExemples
-
-HTML
-
-<p>
- Dans cet exemple <code>-webkit-line-clamp</code> vaut <code>3</code>, ce qui signifie que le texte sera rogné après trois lignes.
- Une ellipse sera affichée au n ellipsis will be shown at the point where the text is clamped.
-</p>
-
-CSS
-
-p {
- width: 300px;
- display: -webkit-box;
- -webkit-box-orient: vertical;
- -webkit-line-clamp: 3;
- overflow: hidden;
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS3 Overflow", "#propdef--webkit-line-clamp", "-webkit-line-clamp")}}
- {{Spec2("CSS3 Overflow")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-line-clamp/index.md b/files/fr/web/css/-webkit-line-clamp/index.md
new file mode 100644
index 0000000000..26895d4690
--- /dev/null
+++ b/files/fr/web/css/-webkit-line-clamp/index.md
@@ -0,0 +1,99 @@
+---
+title: '-webkit-line-clamp'
+slug: Web/CSS/-webkit-line-clamp
+tags:
+ - CSS
+ - Propriété
+translation_of: Web/CSS/-webkit-line-clamp
+---
+-webkit-line-clamp permet de limiter l'affichage du contenu d'un bloc à un nombre donné de lignes.-webkit-box ou -webkit-inline-box et si {{cssxref("-webkit-box-orient")}} vaut vertical.hidden, afin de masquer le contenu qui dépasse (plutôt que d'afficher une ellipse en dehors de la boîte).-webkit-line-clamp.Syntaxe
+
+/* Valeurs avec un mot-clé */
+-webkit-line-clamp: none;
+
+/* Valeurs entières */
+/* Type <integer> */
+-webkit-line-clamp: 3;
+-webkit-line-clamp: 10;
+
+/* Valeurs globales */
+-webkit-line-clamp: inherit;
+-webkit-line-clamp: initial;
+-webkit-line-clamp: unset;
+
+
+
+
+
+noneExemples
+
+HTML
+
+<p>
+ Dans cet exemple <code>-webkit-line-clamp</code> vaut <code>3</code>, ce qui signifie que le texte sera rogné après trois lignes.
+ Une ellipse sera affichée au n ellipsis will be shown at the point where the text is clamped.
+</p>
+
+CSS
+
+p {
+ width: 300px;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
+ overflow: hidden;
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS3 Overflow", "#propdef--webkit-line-clamp", "-webkit-line-clamp")}}
+ {{Spec2("CSS3 Overflow")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-mask-attachment/index.html b/files/fr/web/css/-webkit-mask-attachment/index.html
deleted file mode 100644
index f278d89b0f..0000000000
--- a/files/fr/web/css/-webkit-mask-attachment/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: '-webkit-mask-attachment'
-slug: Web/CSS/-webkit-mask-attachment
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-mask-attachment
----
--webkit-mask-attachment permet de déterminer si la position de l'image est fixe par rapport à la zone d'affichage ou si elle défile avec le bloc qui l'englobe./* Valeurs avec un mot-clé */
--webkit-mask-attachment: scroll;
--webkit-mask-attachment: fixed;
--webkit-mask-attachment: local;
-
-/* Valeurs multiples */
--webkit-mask-attachment: scroll, local;
--webkit-mask-attachment: fixed, local, scroll;
-
-/* Valeurs globales */
--webkit-mask-attachment: inherit;
--webkit-mask-attachment: initial;
--webkit-mask-attachment: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-scrollscroll est utilisé, l'image de masque défilera avec le bloc qui l'englobe.fixedfixed est utilisé, l'image de masque ne défilera pas. Sa position sera fixe pour la zone d'affichag (viewport).Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-body {
- -webkit-mask-image: url('images/mask.png');
- -webkit-mask-attachment: fixed;
-}
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-mask-attachment/index.md b/files/fr/web/css/-webkit-mask-attachment/index.md
new file mode 100644
index 0000000000..f278d89b0f
--- /dev/null
+++ b/files/fr/web/css/-webkit-mask-attachment/index.md
@@ -0,0 +1,73 @@
+---
+title: '-webkit-mask-attachment'
+slug: Web/CSS/-webkit-mask-attachment
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-mask-attachment
+---
+-webkit-mask-attachment permet de déterminer si la position de l'image est fixe par rapport à la zone d'affichage ou si elle défile avec le bloc qui l'englobe./* Valeurs avec un mot-clé */
+-webkit-mask-attachment: scroll;
+-webkit-mask-attachment: fixed;
+-webkit-mask-attachment: local;
+
+/* Valeurs multiples */
+-webkit-mask-attachment: scroll, local;
+-webkit-mask-attachment: fixed, local, scroll;
+
+/* Valeurs globales */
+-webkit-mask-attachment: inherit;
+-webkit-mask-attachment: initial;
+-webkit-mask-attachment: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+scrollscroll est utilisé, l'image de masque défilera avec le bloc qui l'englobe.fixedfixed est utilisé, l'image de masque ne défilera pas. Sa position sera fixe pour la zone d'affichag (viewport).Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+body {
+ -webkit-mask-image: url('images/mask.png');
+ -webkit-mask-attachment: fixed;
+}
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-mask-box-image/index.html b/files/fr/web/css/-webkit-mask-box-image/index.html
deleted file mode 100644
index 79d751a5c2..0000000000
--- a/files/fr/web/css/-webkit-mask-box-image/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: '-webkit-mask-box-image'
-slug: Web/CSS/-webkit-mask-box-image
-tags:
- - CSS
- - Non-standard
- - Reference
- - Web
-translation_of: Web/CSS/-webkit-mask-box-image
----
--webkit-mask-box-image permet de définir l'image de masque utilisée pour la boîte de bordure d'un élément.
-
-
-noneSyntaxe
-
--webkit-mask-box-image: <mask-box-image> [<top> <right> <bottom> <left> <x-repeat> <y-repeat>]
-
-
-
-
-
-<mask-box-image>{{cssxref("<uri>")}} | <gradient> | none<top> <right> <bottom> <left><length> | <percentage><x-repeat> <y-repeat>repeat | stretch | roundValeurs
-
-
-
-
-<uri><gradient>-webkit-gradient utilisée pour générer l'image de masque.none
-
-
-<length><percentage>repeatstretchroundExemples
-
-.exempleUn {
- -webkit-mask-box-image: url('mask.png');
-}
-
-.exempleDeux {
- -webkit-mask-box-image: url('logo.png') 100 100 0 0 round round;
-}
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-mask-box-image/index.md b/files/fr/web/css/-webkit-mask-box-image/index.md
new file mode 100644
index 0000000000..79d751a5c2
--- /dev/null
+++ b/files/fr/web/css/-webkit-mask-box-image/index.md
@@ -0,0 +1,92 @@
+---
+title: '-webkit-mask-box-image'
+slug: Web/CSS/-webkit-mask-box-image
+tags:
+ - CSS
+ - Non-standard
+ - Reference
+ - Web
+translation_of: Web/CSS/-webkit-mask-box-image
+---
+-webkit-mask-box-image permet de définir l'image de masque utilisée pour la boîte de bordure d'un élément.
+
+
+noneSyntaxe
+
+-webkit-mask-box-image: <mask-box-image> [<top> <right> <bottom> <left> <x-repeat> <y-repeat>]
+
+
+
+
+
+<mask-box-image>{{cssxref("<uri>")}} | <gradient> | none<top> <right> <bottom> <left><length> | <percentage><x-repeat> <y-repeat>repeat | stretch | roundValeurs
+
+
+
+
+<uri><gradient>-webkit-gradient utilisée pour générer l'image de masque.none
+
+
+<length><percentage>repeatstretchroundExemples
+
+.exempleUn {
+ -webkit-mask-box-image: url('mask.png');
+}
+
+.exempleDeux {
+ -webkit-mask-box-image: url('logo.png') 100 100 0 0 round round;
+}
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-mask-composite/index.html b/files/fr/web/css/-webkit-mask-composite/index.html
deleted file mode 100644
index 03022f2f52..0000000000
--- a/files/fr/web/css/-webkit-mask-composite/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: '-webkit-mask-composite'
-slug: Web/CSS/-webkit-mask-composite
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-mask-composite
----
--webkit-mask-composite définit la façon dont plusieurs images de masque sont appliquées pour un même élément. Les images de masques sont composées dans l'ordre inverse dans lequel elles sont listées dans la propriété {{cssxref("-webkit-mask-image")}}./* Valeurs avec un mot-clé */
--webkit-mask-composite: clear;
--webkit-mask-composite: copy;
--webkit-mask-composite: source-over;
--webkit-mask-composite: source-in;
--webkit-mask-composite: source-out;
--webkit-mask-composite: source-atop;
--webkit-mask-composite: destination-over;
--webkit-mask-composite: destination-in;
--webkit-mask-composite: destination-out;
--webkit-mask-composite: destination-atop;
--webkit-mask-composite: xor;
-
-/* Valeurs globales */
--webkit-mask-composite: inherit;
--webkit-mask-composite: initial;
--webkit-mask-composite: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-clearcopysource-oversource-insource-outsource-atopdestination-overdestination-indestination-outdestination-atopxorSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-.exemple {
- -webkit-mask-image: url(mask1.png), url('mask2.png');
- -webkit-mask-composite: xor, source-over;
-}
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-mask-composite/index.md b/files/fr/web/css/-webkit-mask-composite/index.md
new file mode 100644
index 0000000000..03022f2f52
--- /dev/null
+++ b/files/fr/web/css/-webkit-mask-composite/index.md
@@ -0,0 +1,93 @@
+---
+title: '-webkit-mask-composite'
+slug: Web/CSS/-webkit-mask-composite
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-mask-composite
+---
+-webkit-mask-composite définit la façon dont plusieurs images de masque sont appliquées pour un même élément. Les images de masques sont composées dans l'ordre inverse dans lequel elles sont listées dans la propriété {{cssxref("-webkit-mask-image")}}./* Valeurs avec un mot-clé */
+-webkit-mask-composite: clear;
+-webkit-mask-composite: copy;
+-webkit-mask-composite: source-over;
+-webkit-mask-composite: source-in;
+-webkit-mask-composite: source-out;
+-webkit-mask-composite: source-atop;
+-webkit-mask-composite: destination-over;
+-webkit-mask-composite: destination-in;
+-webkit-mask-composite: destination-out;
+-webkit-mask-composite: destination-atop;
+-webkit-mask-composite: xor;
+
+/* Valeurs globales */
+-webkit-mask-composite: inherit;
+-webkit-mask-composite: initial;
+-webkit-mask-composite: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+clearcopysource-oversource-insource-outsource-atopdestination-overdestination-indestination-outdestination-atopxorSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+.exemple {
+ -webkit-mask-image: url(mask1.png), url('mask2.png');
+ -webkit-mask-composite: xor, source-over;
+}
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-mask-position-x/index.html b/files/fr/web/css/-webkit-mask-position-x/index.html
deleted file mode 100644
index d5bb42b38f..0000000000
--- a/files/fr/web/css/-webkit-mask-position-x/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: '-webkit-mask-position-x'
-slug: Web/CSS/-webkit-mask-position-x
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-mask-position-x
----
--webkit-mask-position-x permet de définir la position horizontale initiale d'une image de masque./* Valeurs avec un mot-clé */
--webkit-mask-position-x: left;
--webkit-mask-position-x: center;
--webkit-mask-position-x: right;
-
-/* Valeurs proportionnelles */
-/* Type <percentage> */
--webkit-mask-position-x: 100%;
--webkit-mask-position-x: -50%;
-
-/* Valeurs de longueur */
-/* Type <length> */
--webkit-mask-position-x: 50px;
--webkit-mask-position-x: -1cm;
-
-/* Gestion de plusieurs valeurs */
--webkit-mask-position-x: 50px, 25%, -3em;
-
-/* Valeurs globales */
--webkit-mask-position-x: inherit;
--webkit-mask-position-x: initial;
--webkit-mask-position-x: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<length-percentage>0% indique que le bord gauche de l'image est aligné avec le bord gauche de la boîte de remplissage et 100% indique que le bord droit de l'image est aligné avec le bord droit de la boîte de remplissage).left0%.right100%.center50%.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-.exempleUn {
- -webkit-mask-image: url(mask.png);
- -webkit-mask-position-x: right;
-}
-
-.exempleDeux {
- -webkit-mask-image: url(mask.png);
- -webkit-mask-position-x: 25%;
-}
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-mask-position-x/index.md b/files/fr/web/css/-webkit-mask-position-x/index.md
new file mode 100644
index 0000000000..d5bb42b38f
--- /dev/null
+++ b/files/fr/web/css/-webkit-mask-position-x/index.md
@@ -0,0 +1,88 @@
+---
+title: '-webkit-mask-position-x'
+slug: Web/CSS/-webkit-mask-position-x
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-mask-position-x
+---
+-webkit-mask-position-x permet de définir la position horizontale initiale d'une image de masque./* Valeurs avec un mot-clé */
+-webkit-mask-position-x: left;
+-webkit-mask-position-x: center;
+-webkit-mask-position-x: right;
+
+/* Valeurs proportionnelles */
+/* Type <percentage> */
+-webkit-mask-position-x: 100%;
+-webkit-mask-position-x: -50%;
+
+/* Valeurs de longueur */
+/* Type <length> */
+-webkit-mask-position-x: 50px;
+-webkit-mask-position-x: -1cm;
+
+/* Gestion de plusieurs valeurs */
+-webkit-mask-position-x: 50px, 25%, -3em;
+
+/* Valeurs globales */
+-webkit-mask-position-x: inherit;
+-webkit-mask-position-x: initial;
+-webkit-mask-position-x: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<length-percentage>0% indique que le bord gauche de l'image est aligné avec le bord gauche de la boîte de remplissage et 100% indique que le bord droit de l'image est aligné avec le bord droit de la boîte de remplissage).left0%.right100%.center50%.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+.exempleUn {
+ -webkit-mask-image: url(mask.png);
+ -webkit-mask-position-x: right;
+}
+
+.exempleDeux {
+ -webkit-mask-image: url(mask.png);
+ -webkit-mask-position-x: 25%;
+}
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-mask-position-y/index.html b/files/fr/web/css/-webkit-mask-position-y/index.html
deleted file mode 100644
index 8e944059d1..0000000000
--- a/files/fr/web/css/-webkit-mask-position-y/index.html
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: '-webkit-mask-position-y'
-slug: Web/CSS/-webkit-mask-position-y
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-mask-position-y
----
--webkit-mask-position-y permet de définir la position verticale initiale d'une image de masque./* Valeurs avec un mot-clé */
--webkit-mask-position-y: top;
--webkit-mask-position-y: center;
--webkit-mask-position-y: bottom;
-
-/* Valeurs proportionnelles */
-/* Type <percentage> */
--webkit-mask-position-y: 100%;
--webkit-mask-position-y: -50%;
-
-/* Valeurs de longueur */
-/* Type <length> */
--webkit-mask-position-y: 50px;
--webkit-mask-position-y: -1cm;
-
-/* Gestion de plusieurs valeurs */
--webkit-mask-position-y: 50px, 25%, -3em;
-
-/* Valeurs globales */
--webkit-mask-position-y: inherit;
--webkit-mask-position-y: initial;
--webkit-mask-position-y: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<length-percentage>0% indique que le bord haut de l'image est aligné avec le bord haut de la boîte de remplissage et 100% indique que le bord bas de l'image est aligné avec le bord bas de la boîte de remplissage).<length>top0%.bottom100%.center50%.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-.exempleUn {
- -webkit-mask-image: url(mask.png);
- -webkit-mask-position-y: bottom;
-}
-
-.exempleDeux {
- -webkit-mask-image: url(mask.png);
- -webkit-mask-position-y: 25%;
-}
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-mask-position-y/index.md b/files/fr/web/css/-webkit-mask-position-y/index.md
new file mode 100644
index 0000000000..8e944059d1
--- /dev/null
+++ b/files/fr/web/css/-webkit-mask-position-y/index.md
@@ -0,0 +1,90 @@
+---
+title: '-webkit-mask-position-y'
+slug: Web/CSS/-webkit-mask-position-y
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-mask-position-y
+---
+-webkit-mask-position-y permet de définir la position verticale initiale d'une image de masque./* Valeurs avec un mot-clé */
+-webkit-mask-position-y: top;
+-webkit-mask-position-y: center;
+-webkit-mask-position-y: bottom;
+
+/* Valeurs proportionnelles */
+/* Type <percentage> */
+-webkit-mask-position-y: 100%;
+-webkit-mask-position-y: -50%;
+
+/* Valeurs de longueur */
+/* Type <length> */
+-webkit-mask-position-y: 50px;
+-webkit-mask-position-y: -1cm;
+
+/* Gestion de plusieurs valeurs */
+-webkit-mask-position-y: 50px, 25%, -3em;
+
+/* Valeurs globales */
+-webkit-mask-position-y: inherit;
+-webkit-mask-position-y: initial;
+-webkit-mask-position-y: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<length-percentage>0% indique que le bord haut de l'image est aligné avec le bord haut de la boîte de remplissage et 100% indique que le bord bas de l'image est aligné avec le bord bas de la boîte de remplissage).<length>top0%.bottom100%.center50%.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+.exempleUn {
+ -webkit-mask-image: url(mask.png);
+ -webkit-mask-position-y: bottom;
+}
+
+.exempleDeux {
+ -webkit-mask-image: url(mask.png);
+ -webkit-mask-position-y: 25%;
+}
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-mask-repeat-x/index.html b/files/fr/web/css/-webkit-mask-repeat-x/index.html
deleted file mode 100644
index 0669e8a600..0000000000
--- a/files/fr/web/css/-webkit-mask-repeat-x/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: '-webkit-mask-repeat-x'
-slug: Web/CSS/-webkit-mask-repeat-x
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-mask-repeat-x
----
--webkit-mask-repeat-x définit la façon dont une image de masque est répétée horizontalement./* Valeurs avec un mot-clé */
--webkit-mask-repeat-x: repeat;
--webkit-mask-repeat-x: no-repeat;
--webkit-mask-repeat-x: space;
--webkit-mask-repeat-x: round;
-
-/* Valeurs multiples */
--webkit-mask-repeat-x: repeat, no-repeat, space;
-
-/* Valeurs globales */
--webkit-mask-repeat-x: inherit;
--webkit-mask-repeat-x: initial;
--webkit-mask-repeat-x: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-repeatno-repeatspaceroundSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-.exempleun {
- -webkit-mask-image: url('mask.png');
- -webkit-mask-repeat-x: repeat;
-}
-
-.exempledeux {
- -webkit-mask-image: url('mask.png');
- -webkit-mask-repeat-x: no-repeat;
-}
-
-
-Gestion de plusieurs images
-
-<repeat-style>) différent pour chacune des images de masque en séparant les valeurs par des virgules :.exempletrois {
- -webkit-mask-image: url('mask1.png'), url('mask2.png');
- -webkit-mask-repeat-x: repeat, space;
-}
-
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-mask-repeat-x/index.md b/files/fr/web/css/-webkit-mask-repeat-x/index.md
new file mode 100644
index 0000000000..0669e8a600
--- /dev/null
+++ b/files/fr/web/css/-webkit-mask-repeat-x/index.md
@@ -0,0 +1,85 @@
+---
+title: '-webkit-mask-repeat-x'
+slug: Web/CSS/-webkit-mask-repeat-x
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-mask-repeat-x
+---
+-webkit-mask-repeat-x définit la façon dont une image de masque est répétée horizontalement./* Valeurs avec un mot-clé */
+-webkit-mask-repeat-x: repeat;
+-webkit-mask-repeat-x: no-repeat;
+-webkit-mask-repeat-x: space;
+-webkit-mask-repeat-x: round;
+
+/* Valeurs multiples */
+-webkit-mask-repeat-x: repeat, no-repeat, space;
+
+/* Valeurs globales */
+-webkit-mask-repeat-x: inherit;
+-webkit-mask-repeat-x: initial;
+-webkit-mask-repeat-x: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+repeatno-repeatspaceroundSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+.exempleun {
+ -webkit-mask-image: url('mask.png');
+ -webkit-mask-repeat-x: repeat;
+}
+
+.exempledeux {
+ -webkit-mask-image: url('mask.png');
+ -webkit-mask-repeat-x: no-repeat;
+}
+
+
+Gestion de plusieurs images
+
+<repeat-style>) différent pour chacune des images de masque en séparant les valeurs par des virgules :.exempletrois {
+ -webkit-mask-image: url('mask1.png'), url('mask2.png');
+ -webkit-mask-repeat-x: repeat, space;
+}
+
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-mask-repeat-y/index.html b/files/fr/web/css/-webkit-mask-repeat-y/index.html
deleted file mode 100644
index d3bdaf3055..0000000000
--- a/files/fr/web/css/-webkit-mask-repeat-y/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: '-webkit-mask-repeat-y'
-slug: Web/CSS/-webkit-mask-repeat-y
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-mask-repeat-y
----
--webkit-mask-repeat-y définit la façon dont une image de masque est répétée verticalement./* Valeurs avec un mot-clé */
--webkit-mask-repeat-y: repeat;
--webkit-mask-repeat-y: no-repeat;
--webkit-mask-repeat-y: space;
--webkit-mask-repeat-y: round;
-
-/* Valeurs multiples */
--webkit-mask-repeat-y: repeat, no-repeat, space;
-
-/* Valeurs globales */
--webkit-mask-repeat-y: inherit;
--webkit-mask-repeat-y: initial;
--webkit-mask-repeat-y: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-repeatno-repeatspaceroundSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-.exempleun {
- -webkit-mask-image: url('mask.png');
- -webkit-mask-repeat-y: repeat;
-}
-
-.exempledeux {
- -webkit-mask-image: url('mask.png');
- -webkit-mask-repeat-y: no-repeat;
-}
-
-
-Gestion de plusieurs images
-
-<repeat-style>) différent pour chacune des images de masque en séparant les valeurs par des virgules :.exempletrois {
- -webkit-mask-image: url('mask1.png'), url('mask2.png');
- -webkit-mask-repeat-y: repeat, space;
-}
-
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-mask-repeat-y/index.md b/files/fr/web/css/-webkit-mask-repeat-y/index.md
new file mode 100644
index 0000000000..d3bdaf3055
--- /dev/null
+++ b/files/fr/web/css/-webkit-mask-repeat-y/index.md
@@ -0,0 +1,85 @@
+---
+title: '-webkit-mask-repeat-y'
+slug: Web/CSS/-webkit-mask-repeat-y
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-mask-repeat-y
+---
+-webkit-mask-repeat-y définit la façon dont une image de masque est répétée verticalement./* Valeurs avec un mot-clé */
+-webkit-mask-repeat-y: repeat;
+-webkit-mask-repeat-y: no-repeat;
+-webkit-mask-repeat-y: space;
+-webkit-mask-repeat-y: round;
+
+/* Valeurs multiples */
+-webkit-mask-repeat-y: repeat, no-repeat, space;
+
+/* Valeurs globales */
+-webkit-mask-repeat-y: inherit;
+-webkit-mask-repeat-y: initial;
+-webkit-mask-repeat-y: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+repeatno-repeatspaceroundSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+.exempleun {
+ -webkit-mask-image: url('mask.png');
+ -webkit-mask-repeat-y: repeat;
+}
+
+.exempledeux {
+ -webkit-mask-image: url('mask.png');
+ -webkit-mask-repeat-y: no-repeat;
+}
+
+
+Gestion de plusieurs images
+
+<repeat-style>) différent pour chacune des images de masque en séparant les valeurs par des virgules :.exempletrois {
+ -webkit-mask-image: url('mask1.png'), url('mask2.png');
+ -webkit-mask-repeat-y: repeat, space;
+}
+
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-overflow-scrolling/index.html b/files/fr/web/css/-webkit-overflow-scrolling/index.html
deleted file mode 100644
index 5f6b8e2325..0000000000
--- a/files/fr/web/css/-webkit-overflow-scrolling/index.html
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: '-webkit-overflow-scrolling'
-slug: Web/CSS/-webkit-overflow-scrolling
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-overflow-scrolling
----
--webkit-overflow-scrolling permet de contrôler si l'appareil tactile utilise l'inertie pour faire défiler l'élément visé par la déclaration.Valeurs
-
-
-
-
-autotouchSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- width: 100%;
- overflow: auto;
-}
-
-p {
- width: 200%;
- background: #f5f9fa;
- border: 2px solid #eaf2f4;
- padding: 10px;
-}
-
-.scroll-touch {
- -webkit-overflow-scrolling: touch; /* on laisse le défilement se poursuivre */
-}
-
-.scroll-auto {
- -webkit-overflow-scrolling: auto; /* on arrête le défilement immédiatement */
-}
-
-HTML
-
-<div class="scroll-touch">
- <p>
- Ce paragraphe a un défilement inertiel.
- </p>
-</div>
-<div class="scroll-auto">
- <p>
- Pas celui-ci.
- </p>
-</div>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-overflow-scrolling/index.md b/files/fr/web/css/-webkit-overflow-scrolling/index.md
new file mode 100644
index 0000000000..5f6b8e2325
--- /dev/null
+++ b/files/fr/web/css/-webkit-overflow-scrolling/index.md
@@ -0,0 +1,84 @@
+---
+title: '-webkit-overflow-scrolling'
+slug: Web/CSS/-webkit-overflow-scrolling
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-overflow-scrolling
+---
+-webkit-overflow-scrolling permet de contrôler si l'appareil tactile utilise l'inertie pour faire défiler l'élément visé par la déclaration.Valeurs
+
+
+
+
+autotouchSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ width: 100%;
+ overflow: auto;
+}
+
+p {
+ width: 200%;
+ background: #f5f9fa;
+ border: 2px solid #eaf2f4;
+ padding: 10px;
+}
+
+.scroll-touch {
+ -webkit-overflow-scrolling: touch; /* on laisse le défilement se poursuivre */
+}
+
+.scroll-auto {
+ -webkit-overflow-scrolling: auto; /* on arrête le défilement immédiatement */
+}
+
+HTML
+
+<div class="scroll-touch">
+ <p>
+ Ce paragraphe a un défilement inertiel.
+ </p>
+</div>
+<div class="scroll-auto">
+ <p>
+ Pas celui-ci.
+ </p>
+</div>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-print-color-adjust/index.html b/files/fr/web/css/-webkit-print-color-adjust/index.html
deleted file mode 100644
index dc129741d2..0000000000
--- a/files/fr/web/css/-webkit-print-color-adjust/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: '-webkit-print-color-adjust'
-slug: Web/CSS/-webkit-print-color-adjust
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-print-color-adjust
----
--webkit-print-color-adjust est une extension non-standard qui peut être utilisée pour forcer l'impression des images et couleurs utilisées en arrière-plan pour les navigateurs basés sur WebKit./* Valeurs avec un mot-clé */
--webkit-print-color-adjust: economy;
--webkit-print-color-adjust: exact;
-
-/* Valeurs globales */
--webkit-print-color-adjust: inherit;
--webkit-print-color-adjust: initial;
--webkit-print-color-adjust: unset;
-
-
-Syntaxe
-
--webkit-print-color-adjust peut être définie avec l'un des mots-clés suivants.Valeurs
-
-
-
-
-economyexactExemples
-
-/* Force l'article à être imprimé en noir et blanc */
-article {
- -webkit-print-color-adjust: exact;
- background: #222;
- color: #eee;
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-print-color-adjust/index.md b/files/fr/web/css/-webkit-print-color-adjust/index.md
new file mode 100644
index 0000000000..dc129741d2
--- /dev/null
+++ b/files/fr/web/css/-webkit-print-color-adjust/index.md
@@ -0,0 +1,61 @@
+---
+title: '-webkit-print-color-adjust'
+slug: Web/CSS/-webkit-print-color-adjust
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-print-color-adjust
+---
+color-adjust pour standardiser cette propriété.-webkit-print-color-adjust est une extension non-standard qui peut être utilisée pour forcer l'impression des images et couleurs utilisées en arrière-plan pour les navigateurs basés sur WebKit./* Valeurs avec un mot-clé */
+-webkit-print-color-adjust: economy;
+-webkit-print-color-adjust: exact;
+
+/* Valeurs globales */
+-webkit-print-color-adjust: inherit;
+-webkit-print-color-adjust: initial;
+-webkit-print-color-adjust: unset;
+
+
+Syntaxe
+
+-webkit-print-color-adjust peut être définie avec l'un des mots-clés suivants.Valeurs
+
+
+
+
+economyexactExemples
+
+/* Force l'article à être imprimé en noir et blanc */
+article {
+ -webkit-print-color-adjust: exact;
+ background: #222;
+ color: #eee;
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-tap-highlight-color/index.html b/files/fr/web/css/-webkit-tap-highlight-color/index.html
deleted file mode 100644
index 677d4e4be2..0000000000
--- a/files/fr/web/css/-webkit-tap-highlight-color/index.html
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: '-webkit-tap-highlight-color'
-slug: Web/CSS/-webkit-tap-highlight-color
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-tap-highlight-color
----
-color-adjust pour standardiser cette propriété.-webkit-tap-highlight-color est une propriété non-standard qui permet de définir la couleur utilisée pour surligner le lien et indiquer qu'il a bien été activé/touché par l'utilisateur.Syntaxe
-
--webkit-tap-highlight-color: red;
--webkit-tap-highlight-color: transparent; /* pour retirer la mise en avant */
-
-
-Valeurs
-
-
-
-
-<color>Syntaxe formelle
-
-{{csssyntax}}
-
-Spécifications
-
-Compatibilité des navigateurs
-
--webkit-tap-highlight-color est une propriété non-standard qui permet de définir la couleur utilisée pour surligner le lien et indiquer qu'il a bien été activé/touché par l'utilisateur.Syntaxe
+
+-webkit-tap-highlight-color: red;
+-webkit-tap-highlight-color: transparent; /* pour retirer la mise en avant */
+
+
+Valeurs
+
+
+
+
+<color>Syntaxe formelle
+
+{{csssyntax}}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+-webkit-text-fill-color définit la couleur utilisée pour dessiner le contenu des lettres qui forment un texte. Si cette propriété n'est pas définie, c'est la valeur de la propriété {{cssxref("color")}} qui sera utilisée./* Valeurs de couleurs */
-/* Type <color> */
--webkit-text-fill-color: red;
--webkit-text-fill-color: #000000;
--webkit-text-fill-color: rgb(100, 200, 0);
-
-/* Valeurs globales */
--webkit-text-fill-color: inherit;
--webkit-text-fill-color: initial;
--webkit-text-fill-color: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- margin: 0;
- font-size: 3em;
- -webkit-text-fill-color: green;
-}
-
-
-HTML
-
-<p>Ce texte est vert.</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('Compat', '#the-webkit-text-fill-color', '-webkit-text-fill-color')}}
- {{Spec2('Compat')}}
- Définition initiale dans un standard.
-
-
-
-Référence CSS Safari -webkit-text-fill-color' dans ce document.
- Documentation non-officielle, non-standard.
- Documentation initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-text-fill-color/index.md b/files/fr/web/css/-webkit-text-fill-color/index.md
new file mode 100644
index 0000000000..f00bc2ae33
--- /dev/null
+++ b/files/fr/web/css/-webkit-text-fill-color/index.md
@@ -0,0 +1,98 @@
+---
+title: '-webkit-text-fill-color'
+slug: Web/CSS/-webkit-text-fill-color
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-text-fill-color
+---
+-webkit-text-fill-color définit la couleur utilisée pour dessiner le contenu des lettres qui forment un texte. Si cette propriété n'est pas définie, c'est la valeur de la propriété {{cssxref("color")}} qui sera utilisée./* Valeurs de couleurs */
+/* Type <color> */
+-webkit-text-fill-color: red;
+-webkit-text-fill-color: #000000;
+-webkit-text-fill-color: rgb(100, 200, 0);
+
+/* Valeurs globales */
+-webkit-text-fill-color: inherit;
+-webkit-text-fill-color: initial;
+-webkit-text-fill-color: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ margin: 0;
+ font-size: 3em;
+ -webkit-text-fill-color: green;
+}
+
+
+HTML
+
+<p>Ce texte est vert.</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('Compat', '#the-webkit-text-fill-color', '-webkit-text-fill-color')}}
+ {{Spec2('Compat')}}
+ Définition initiale dans un standard.
+
+
+
+Référence CSS Safari -webkit-text-fill-color' dans ce document.
+ Documentation non-officielle, non-standard.
+ Documentation initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-text-security/index.html b/files/fr/web/css/-webkit-text-security/index.html
deleted file mode 100644
index 290fc9d2b7..0000000000
--- a/files/fr/web/css/-webkit-text-security/index.html
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: '-webkit-text-security'
-slug: Web/CSS/-webkit-text-security
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-text-security
----
--webkit-text-security est une propriété CSS non-standard qui permet de masquer les caractères saisis dans un camp d'un formulaire (ex. {{HTMLElement("input")}} ou {{HTMLElement("textarea")}}) en les remplaçant par une forme géométrique. Cette propriété n'affecte que les champs qui ne sont pas de type password.Syntaxe
-
--webkit-text-security: circle;
--webkit-text-security: disc;
--webkit-text-security: square;
--webkit-text-security: none;
-
-
-Exemples
-
-HTML
-
-<label for="name">Nom :</label>
-<input type="text" name="name" id="name" />
-
-CSS
-
-input {
- -webkit-text-security: square;
-}
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/-webkit-text-security/index.md b/files/fr/web/css/-webkit-text-security/index.md
new file mode 100644
index 0000000000..290fc9d2b7
--- /dev/null
+++ b/files/fr/web/css/-webkit-text-security/index.md
@@ -0,0 +1,54 @@
+---
+title: '-webkit-text-security'
+slug: Web/CSS/-webkit-text-security
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-text-security
+---
+-webkit-text-security est une propriété CSS non-standard qui permet de masquer les caractères saisis dans un camp d'un formulaire (ex. {{HTMLElement("input")}} ou {{HTMLElement("textarea")}}) en les remplaçant par une forme géométrique. Cette propriété n'affecte que les champs qui ne sont pas de type password.Syntaxe
+
+-webkit-text-security: circle;
+-webkit-text-security: disc;
+-webkit-text-security: square;
+-webkit-text-security: none;
+
+
+Exemples
+
+HTML
+
+<label for="name">Nom :</label>
+<input type="text" name="name" id="name" />
+
+CSS
+
+input {
+ -webkit-text-security: square;
+}
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/-webkit-text-stroke-color/index.html b/files/fr/web/css/-webkit-text-stroke-color/index.html
deleted file mode 100644
index 8717f6e1aa..0000000000
--- a/files/fr/web/css/-webkit-text-stroke-color/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: '-webkit-text-stroke-color'
-slug: Web/CSS/-webkit-text-stroke-color
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-text-stroke-color
----
--webkit-text-stroke-color permet de définir la couleur de la ligne utilisée pour le contour du text. Si cette propriété n'est pas définie, c'est la valeur de {{cssxref("color")}} qui sera utilisée./* Valeurs de couleur */
-/* Type <color> */
--webkit-text-stroke-color: red;
--webkit-text-stroke-color: #e08ab4;
--webkit-text-stroke-color: rgb(200, 100, 0);
-
-/* Valeurs globales */
--webkit-text-stroke-color: inherit;
--webkit-text-stroke-color: initial;
--webkit-text-stroke-color: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<p>Texte avec un contour</p>
-<input type="color" value="#ff0000">
-
-CSS
-
-p {
- margin: 0;
- font-size: 4em;
- -webkit-text-stroke-width: 3px;
- -webkit-text-stroke-color: #ff0000;
- /* Cette valeur peut être modifiée */
-}
-
-
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('Compat', '#the-webkit-text-stroke-color', '-webkit-text-stroke-color')}}
- {{Spec2('Compat')}}
- Définition initiale dans un standard.
-
-
-
-Référence CSS Safari -webkit-text-stroke-color dans ce document.
- Documentation non-officielle, non-standard.
- Documentation initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-text-stroke-color/index.md b/files/fr/web/css/-webkit-text-stroke-color/index.md
new file mode 100644
index 0000000000..8717f6e1aa
--- /dev/null
+++ b/files/fr/web/css/-webkit-text-stroke-color/index.md
@@ -0,0 +1,105 @@
+---
+title: '-webkit-text-stroke-color'
+slug: Web/CSS/-webkit-text-stroke-color
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-text-stroke-color
+---
+-webkit-text-stroke-color permet de définir la couleur de la ligne utilisée pour le contour du text. Si cette propriété n'est pas définie, c'est la valeur de {{cssxref("color")}} qui sera utilisée./* Valeurs de couleur */
+/* Type <color> */
+-webkit-text-stroke-color: red;
+-webkit-text-stroke-color: #e08ab4;
+-webkit-text-stroke-color: rgb(200, 100, 0);
+
+/* Valeurs globales */
+-webkit-text-stroke-color: inherit;
+-webkit-text-stroke-color: initial;
+-webkit-text-stroke-color: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<p>Texte avec un contour</p>
+<input type="color" value="#ff0000">
+
+CSS
+
+p {
+ margin: 0;
+ font-size: 4em;
+ -webkit-text-stroke-width: 3px;
+ -webkit-text-stroke-color: #ff0000;
+ /* Cette valeur peut être modifiée */
+}
+
+
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('Compat', '#the-webkit-text-stroke-color', '-webkit-text-stroke-color')}}
+ {{Spec2('Compat')}}
+ Définition initiale dans un standard.
+
+
+
+Référence CSS Safari -webkit-text-stroke-color dans ce document.
+ Documentation non-officielle, non-standard.
+ Documentation initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-text-stroke-width/index.html b/files/fr/web/css/-webkit-text-stroke-width/index.html
deleted file mode 100644
index 9e34011338..0000000000
--- a/files/fr/web/css/-webkit-text-stroke-width/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: '-webkit-text-stroke-width'
-slug: Web/CSS/-webkit-text-stroke-width
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-text-stroke-width
----
--webkit-text-stroke-width permet de définir l'épaisseur du trait qui entoure les lettres du texte.Syntaxe
-
-/* Valeurs avec un mot-clé */
--webkit-text-stroke-width: thin;
--webkit-text-stroke-width: medium;
--webkit-text-stroke-width: thick;
-
-/* Valeurs de longueur */
-/* Type <length> */
--webkit-text-stroke-width: 2px;
--webkit-text-stroke-width: 0.1em;
--webkit-text-stroke-width: 1mm;
--webkit-text-stroke-width: 5pt;
-
-/* Valeurs globales */
--webkit-text-stroke-width: inherit;
--webkit-text-stroke-width: initial;
--webkit-text-stroke-width: unset;
-
-
-Valeurs
-
-
-
-
-<line-width>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- margin: 0;
- font-size: 4em;
- -webkit-text-stroke-color: red;
-}
-
-#thin {
- -webkit-text-stroke-width: thin;
-}
-
-#medium {
- -webkit-text-stroke-width: 3px;
-}
-
-#thick {
- -webkit-text-stroke-width: 1.5mm;
-}
-
-
-HTML
-
-<p id="thin">Trait fin</p>
-<p id="medium">Trait moyen</p>
-<p id="thick">Trait épais</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('Compat', '#the-webkit-text-stroke-width', '-webkit-text-stroke-width')}}
- {{Spec2('Compat')}}
- Définition initiale dans un standard.
-
-
-
-Référence CSS Safari -webkit-text-stroke-width dans ce document.
- Documentation non-officielle, non-standard.
- Documentation initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-text-stroke-width/index.md b/files/fr/web/css/-webkit-text-stroke-width/index.md
new file mode 100644
index 0000000000..9e34011338
--- /dev/null
+++ b/files/fr/web/css/-webkit-text-stroke-width/index.md
@@ -0,0 +1,118 @@
+---
+title: '-webkit-text-stroke-width'
+slug: Web/CSS/-webkit-text-stroke-width
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-text-stroke-width
+---
+-webkit-text-stroke-width permet de définir l'épaisseur du trait qui entoure les lettres du texte.Syntaxe
+
+/* Valeurs avec un mot-clé */
+-webkit-text-stroke-width: thin;
+-webkit-text-stroke-width: medium;
+-webkit-text-stroke-width: thick;
+
+/* Valeurs de longueur */
+/* Type <length> */
+-webkit-text-stroke-width: 2px;
+-webkit-text-stroke-width: 0.1em;
+-webkit-text-stroke-width: 1mm;
+-webkit-text-stroke-width: 5pt;
+
+/* Valeurs globales */
+-webkit-text-stroke-width: inherit;
+-webkit-text-stroke-width: initial;
+-webkit-text-stroke-width: unset;
+
+
+Valeurs
+
+
+
+
+<line-width>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ margin: 0;
+ font-size: 4em;
+ -webkit-text-stroke-color: red;
+}
+
+#thin {
+ -webkit-text-stroke-width: thin;
+}
+
+#medium {
+ -webkit-text-stroke-width: 3px;
+}
+
+#thick {
+ -webkit-text-stroke-width: 1.5mm;
+}
+
+
+HTML
+
+<p id="thin">Trait fin</p>
+<p id="medium">Trait moyen</p>
+<p id="thick">Trait épais</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('Compat', '#the-webkit-text-stroke-width', '-webkit-text-stroke-width')}}
+ {{Spec2('Compat')}}
+ Définition initiale dans un standard.
+
+
+
+Référence CSS Safari -webkit-text-stroke-width dans ce document.
+ Documentation non-officielle, non-standard.
+ Documentation initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-text-stroke/index.html b/files/fr/web/css/-webkit-text-stroke/index.html
deleted file mode 100644
index 1b44d52d3b..0000000000
--- a/files/fr/web/css/-webkit-text-stroke/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: '-webkit-text-stroke'
-slug: Web/CSS/-webkit-text-stroke
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-text-stroke
----
--webkit-text-stroke permet de définir l'épaisseur et la couleur du contour utilisé pour les lettres d'un texte. Cette propriété est une propriété raccourcie qui permet de définir les propriétés {{cssxref("-webkit-text-stroke-width")}} et {{cssxref("-webkit-text-stroke-color")}}./* Valeurs de largeur et de couleur */
--webkit-text-stroke: 4px navy;
-
-/* Valeurs globales */
--webkit-text-stroke: inherit;
--webkit-text-stroke: initial;
--webkit-text-stroke: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<length><color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-#exemple {
- font-size: 3em;
- margin: 0;
- -webkit-text-stroke: 2px red;
-}
-
-HTML
-
-<p id="exemple">Le contour de ce texte est rouge.</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('Compat', '#the-webkit-text-stroke', '-webkit-text-stroke')}}
- {{Spec2('Compat')}}
- Définition initiale dans un standard.
-
-
-
-Référence CSS Safari -webkit-text-stroke dans ce document.
- Documentation non-officielle, non-standard.
- Documentation initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/-webkit-text-stroke/index.md b/files/fr/web/css/-webkit-text-stroke/index.md
new file mode 100644
index 0000000000..1b44d52d3b
--- /dev/null
+++ b/files/fr/web/css/-webkit-text-stroke/index.md
@@ -0,0 +1,95 @@
+---
+title: '-webkit-text-stroke'
+slug: Web/CSS/-webkit-text-stroke
+tags:
+ - CSS
+ - Non-standard
+ - Propriété
+ - Reference
+translation_of: Web/CSS/-webkit-text-stroke
+---
+-webkit-text-stroke permet de définir l'épaisseur et la couleur du contour utilisé pour les lettres d'un texte. Cette propriété est une propriété raccourcie qui permet de définir les propriétés {{cssxref("-webkit-text-stroke-width")}} et {{cssxref("-webkit-text-stroke-color")}}./* Valeurs de largeur et de couleur */
+-webkit-text-stroke: 4px navy;
+
+/* Valeurs globales */
+-webkit-text-stroke: inherit;
+-webkit-text-stroke: initial;
+-webkit-text-stroke: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<length><color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+#exemple {
+ font-size: 3em;
+ margin: 0;
+ -webkit-text-stroke: 2px red;
+}
+
+HTML
+
+<p id="exemple">Le contour de ce texte est rouge.</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('Compat', '#the-webkit-text-stroke', '-webkit-text-stroke')}}
+ {{Spec2('Compat')}}
+ Définition initiale dans un standard.
+
+
+
+Référence CSS Safari -webkit-text-stroke dans ce document.
+ Documentation non-officielle, non-standard.
+ Documentation initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/-webkit-touch-callout/index.html b/files/fr/web/css/-webkit-touch-callout/index.html
deleted file mode 100644
index 29ae2fe13a..0000000000
--- a/files/fr/web/css/-webkit-touch-callout/index.html
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: '-webkit-touch-callout'
-slug: Web/CSS/-webkit-touch-callout
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
-translation_of: Web/CSS/-webkit-touch-callout
----
--webkit-touch-callout permet de contrôler l'affichage de la légende (callout) affichée par défaut lorsque le toucher est maintenu sur un élément./* Valeurs avec un mot-clé */
--webkit-touch-callout: default;
--webkit-touch-callout: none;
-
-/* Valeurs globales */
--webkit-touch-callout: initial;
--webkit-touch-callout: inherit;
--webkit-touch-callout: unset;
-
-Syntaxe
-
-Valeurs
-
-
-
-
-defaultnoneSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-.exemple {
- -webkit-touch-callout: none;
-}
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
--webkit-touch-callout permet de contrôler l'affichage de la légende (callout) affichée par défaut lorsque le toucher est maintenu sur un élément./* Valeurs avec un mot-clé */
+-webkit-touch-callout: default;
+-webkit-touch-callout: none;
+
+/* Valeurs globales */
+-webkit-touch-callout: initial;
+-webkit-touch-callout: inherit;
+-webkit-touch-callout: unset;
+
+Syntaxe
+
+Valeurs
+
+
+
+
+defaultnoneSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+.exemple {
+ -webkit-touch-callout: none;
+}
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+@charset définit l'encodage des caractères utilisés dans la feuille de style. Cette règle doit être le premier élément de la feuille de style (aucun caractère ne doit être écrit avant). Cette règle ne fait pas partie des instructions imbriquées et ne peut donc pas être utilisée à l'intérieur des groupes conditionnels. Si plusieurs règles @charset sont définies, seule la première sera utilisée. Cette règle ne pourra pas être utilisée au sein d'un attribut style d'un élément HTML ou avec l'élément {{HTMLElement("style")}} car c'est l'encodage du document HTML qui est alors pris en compte.@charset "utf-8";
-
-
-
-
-charset de l'en-tête HTTP Content-Type ou l'information équivalente dans le protocole utilisé pour servir la feuille de style.@charset.charset de l'élément {{HTMLElement("link")}}). Cette méthode est désormais obsolète et ne doit plus être utilisée.Syntaxe
-
-@charset <charset>;
-
-
-
-
-
-charsetSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Exemples valides
-
-@charset "UTF-8"; /* Valide, la feuille de style est encodée en Unicode UTF-8 */
-@charset "iso-8859-15"; /* Valide, la feuille de style est encodée en Latin-9 (langues d'Europe occidentale avec le symbole €) */
-
-
-Exemples invalides
-
- @charset "UTF-8"; /* Invalide, il y a un caractère (un espace) avant la règle @ */
-@charset UTF-8; /* Invalide, sans ' ou ", le jeu de caractères n'est pas une chaîne CSS ({{cssxref("<string>")}}) */
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS2.1', 'syndata.html#x57', '@charset')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-@charset définit l'encodage des caractères utilisés dans la feuille de style. Cette règle doit être le premier élément de la feuille de style (aucun caractère ne doit être écrit avant). Cette règle ne fait pas partie des instructions imbriquées et ne peut donc pas être utilisée à l'intérieur des groupes conditionnels. Si plusieurs règles @charset sont définies, seule la première sera utilisée. Cette règle ne pourra pas être utilisée au sein d'un attribut style d'un élément HTML ou avec l'élément {{HTMLElement("style")}} car c'est l'encodage du document HTML qui est alors pris en compte.@charset "utf-8";
+
+
+
+
+charset de l'en-tête HTTP Content-Type ou l'information équivalente dans le protocole utilisé pour servir la feuille de style.@charset.charset de l'élément {{HTMLElement("link")}}). Cette méthode est désormais obsolète et ne doit plus être utilisée.Syntaxe
+
+@charset <charset>;
+
+
+
+
+
+charsetSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Exemples valides
+
+@charset "UTF-8"; /* Valide, la feuille de style est encodée en Unicode UTF-8 */
+@charset "iso-8859-15"; /* Valide, la feuille de style est encodée en Latin-9 (langues d'Europe occidentale avec le symbole €) */
+
+
+Exemples invalides
+
+ @charset "UTF-8"; /* Invalide, il y a un caractère (un espace) avant la règle @ */
+@charset UTF-8; /* Invalide, sans ' ou ", le jeu de caractères n'est pas une chaîne CSS ({{cssxref("<string>")}}) */
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS2.1', 'syndata.html#x57', '@charset')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+additive-symbols, utilisé pour la règle @ {{cssxref("@counter-style")}} est semblable au descripteur {{cssxref('symbols')}} et permet à l'utilisateur de définir les symboles qui doivent être utilisé pour représenter le compteur lorsque le descripteur {{cssxref('system')}} prend la valeur additive. Le descripteur additive-symbols définit des tuples additifs. Un tuple additif est une paire contenant un symbole et un entier positif qui représente un poids. Le système additif est utilisé afin de construire des systèmes de notation additive tels que les nombres romains.additive-symbols: 3 "0";
-additive-symbols: 3 "0", 2 "\2E\20";
-additive-symbols: 3 "0", 2 url(symbol.png);
-
-
-system est cyclic, numeric, alphabetic, symbolic ou fixed, c'est le descripteur symbols qui est utilisé à la place de additive-symbols afin de définir les symboles utilisés pour le compteur.Syntaxe
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style additive-symbols-example {
- system: additive;
- additive-symbols: V 5, IV 4, I 1;
-}
-.exemple {
- list-style: additive-symbols-example;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#counter-style-symbols', 'additive-symbols')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/additive-symbols/index.md b/files/fr/web/css/@counter-style/additive-symbols/index.md
new file mode 100644
index 0000000000..538f1b0fe8
--- /dev/null
+++ b/files/fr/web/css/@counter-style/additive-symbols/index.md
@@ -0,0 +1,85 @@
+---
+title: additive-symbols
+slug: Web/CSS/@counter-style/additive-symbols
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/additive-symbols
+---
+additive-symbols, utilisé pour la règle @ {{cssxref("@counter-style")}} est semblable au descripteur {{cssxref('symbols')}} et permet à l'utilisateur de définir les symboles qui doivent être utilisé pour représenter le compteur lorsque le descripteur {{cssxref('system')}} prend la valeur additive. Le descripteur additive-symbols définit des tuples additifs. Un tuple additif est une paire contenant un symbole et un entier positif qui représente un poids. Le système additif est utilisé afin de construire des systèmes de notation additive tels que les nombres romains.additive-symbols: 3 "0";
+additive-symbols: 3 "0", 2 "\2E\20";
+additive-symbols: 3 "0", 2 url(symbol.png);
+
+
+system est cyclic, numeric, alphabetic, symbolic ou fixed, c'est le descripteur symbols qui est utilisé à la place de additive-symbols afin de définir les symboles utilisés pour le compteur.Syntaxe
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style additive-symbols-example {
+ system: additive;
+ additive-symbols: V 5, IV 4, I 1;
+}
+.exemple {
+ list-style: additive-symbols-example;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#counter-style-symbols', 'additive-symbols')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/fallback/index.html b/files/fr/web/css/@counter-style/fallback/index.html
deleted file mode 100644
index 92c54c2c55..0000000000
--- a/files/fr/web/css/@counter-style/fallback/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: fallback
-slug: Web/CSS/@counter-style/fallback
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/fallback
----
-fallback, associé à la règle @ {{cssxref("@counter-style")}} est utilisé afin d'indiquer un style de secours au cas où le style courant ne permet pas de créer une représentation pour le marqueur du compteur pour une valeur donnée. Si le style de secours indiqué ne le permet pas non plus, ce sera le style de secours du style de secours qui sera utilisé et ainsi de suite. Si un style de secours valide n'est pas indiqué, ce sera la valeur decimal qui sera utilisée. Les scénarios pour lesquels ce style de secours est utilisé sont :
-
-
-fixed et qu'il n'y a pas suffisamment de symboles pour couvrir l'ensemble des éléments de la liste, le style de secours est utilisé pour le reste des éléments de la liste.Syntaxe
-
-/* Valeurs avec un mot-clé */
-fallback: lower-alpha;
-fallback: custom-gangnam-style;
-
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style fallback-example {
- system: fixed; symbols: "\24B6" "\24B7" "\24B8";
- fallback: upper-alpha;
-}
-.exemple {
- list-style: fallback-example;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#counter-style-fallback', 'fallback')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/fallback/index.md b/files/fr/web/css/@counter-style/fallback/index.md
new file mode 100644
index 0000000000..92c54c2c55
--- /dev/null
+++ b/files/fr/web/css/@counter-style/fallback/index.md
@@ -0,0 +1,88 @@
+---
+title: fallback
+slug: Web/CSS/@counter-style/fallback
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/fallback
+---
+fallback, associé à la règle @ {{cssxref("@counter-style")}} est utilisé afin d'indiquer un style de secours au cas où le style courant ne permet pas de créer une représentation pour le marqueur du compteur pour une valeur donnée. Si le style de secours indiqué ne le permet pas non plus, ce sera le style de secours du style de secours qui sera utilisé et ainsi de suite. Si un style de secours valide n'est pas indiqué, ce sera la valeur decimal qui sera utilisée. Les scénarios pour lesquels ce style de secours est utilisé sont :
+
+
+fixed et qu'il n'y a pas suffisamment de symboles pour couvrir l'ensemble des éléments de la liste, le style de secours est utilisé pour le reste des éléments de la liste.Syntaxe
+
+/* Valeurs avec un mot-clé */
+fallback: lower-alpha;
+fallback: custom-gangnam-style;
+
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style fallback-example {
+ system: fixed; symbols: "\24B6" "\24B7" "\24B8";
+ fallback: upper-alpha;
+}
+.exemple {
+ list-style: fallback-example;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#counter-style-fallback', 'fallback')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/index.html b/files/fr/web/css/@counter-style/index.html
deleted file mode 100644
index 6a557b88d4..0000000000
--- a/files/fr/web/css/@counter-style/index.html
+++ /dev/null
@@ -1,168 +0,0 @@
----
-title: '@counter-style'
-slug: Web/CSS/@counter-style
-tags:
- - CSS
- - Reference
- - Règle @
-translation_of: Web/CSS/@counter-style
----
-@counter-style permet aux auteurs de définir des styles de compteurs qui ne font pas partie de l'ensemble des styles natifs prédéfinis. Une règle @counter-style explique comment convertir la valeur d'un compteur en une chaîne de caractères correspondantes.@counter-style thumbs {
- system: cyclic;
- symbols: "\1F44D";
- suffix: " ";
-}
-
-ul {
- list-style: thumbs;
-}
-
-@counter-style permet donc aux auteurs de définir librement d'autres styles si les styles prédéfinis ne conviennent pas.Syntaxe
-
-Descripteurs
-
-@counter-style est identifié par un nom et possède un ensemble de descripteurs.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-system. Ainsi, si system vaut fixed, chacun des N symboles définis dans le descripteur sera utilisé pour représenter les N premiers symboles. Une fois l'ensemble épuisé, le style de secours sera utilisé pour le reste de la liste.
-
- Cet exemple de règle @counter-style utilise des images plutôt que des caractères. Attention, l'utilisation d'image pour les symboles est une fonctionnalité à risque en termes de conservation dans la spécification et n'est implémentée par aucun navigateur.
-
- @counter-style winners-list {
- system: fixed;
- symbols: url(gold-medal.svg) url(silver-medal.svg) url(bronze-medal.svg);
- suffix: " ";
-}
-
-
-
-symbols sont utilisés par la plupart des algorithmes. Certains systèmes dits « additifs » s'appuient sur des tuples additifs décrit avec ce descripteur. Chaque tuple additif se compose d'un symbole de compteur et d'un poids entier positif. Les tuples additifs doivent être définis dans l'ordre décroissant de leurs poids.
-
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style circled-alpha {
- system: fixed;
- symbols: Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ;
- suffix: " ";
-}
-
-.exemple {
- list-style: circled-alpha;
-}
-
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
- <li>Six</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#the-counter-style-rule', 'counter-style')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Notes relatives à Quantum
-
-
-
-
-none comme valeur pour les descripteurs system et fallback de @counter-style alors que ce devrait être invalide selon la spécification. Le nouveau moteur CSS de Firefox, Quantum CSS (aussi appelé Stylo, prévu pour Firefox 57) a résolu ce bug ({{bug(1377414)}}).Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/index.md b/files/fr/web/css/@counter-style/index.md
new file mode 100644
index 0000000000..6a557b88d4
--- /dev/null
+++ b/files/fr/web/css/@counter-style/index.md
@@ -0,0 +1,168 @@
+---
+title: '@counter-style'
+slug: Web/CSS/@counter-style
+tags:
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@counter-style
+---
+@counter-style permet aux auteurs de définir des styles de compteurs qui ne font pas partie de l'ensemble des styles natifs prédéfinis. Une règle @counter-style explique comment convertir la valeur d'un compteur en une chaîne de caractères correspondantes.@counter-style thumbs {
+ system: cyclic;
+ symbols: "\1F44D";
+ suffix: " ";
+}
+
+ul {
+ list-style: thumbs;
+}
+
+@counter-style permet donc aux auteurs de définir librement d'autres styles si les styles prédéfinis ne conviennent pas.Syntaxe
+
+Descripteurs
+
+@counter-style est identifié par un nom et possède un ensemble de descripteurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+system. Ainsi, si system vaut fixed, chacun des N symboles définis dans le descripteur sera utilisé pour représenter les N premiers symboles. Une fois l'ensemble épuisé, le style de secours sera utilisé pour le reste de la liste.
+
+ Cet exemple de règle @counter-style utilise des images plutôt que des caractères. Attention, l'utilisation d'image pour les symboles est une fonctionnalité à risque en termes de conservation dans la spécification et n'est implémentée par aucun navigateur.
+
+ @counter-style winners-list {
+ system: fixed;
+ symbols: url(gold-medal.svg) url(silver-medal.svg) url(bronze-medal.svg);
+ suffix: " ";
+}
+
+
+
+symbols sont utilisés par la plupart des algorithmes. Certains systèmes dits « additifs » s'appuient sur des tuples additifs décrit avec ce descripteur. Chaque tuple additif se compose d'un symbole de compteur et d'un poids entier positif. Les tuples additifs doivent être définis dans l'ordre décroissant de leurs poids.
+
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style circled-alpha {
+ system: fixed;
+ symbols: Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ;
+ suffix: " ";
+}
+
+.exemple {
+ list-style: circled-alpha;
+}
+
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+ <li>Six</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#the-counter-style-rule', 'counter-style')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Notes relatives à Quantum
+
+
+
+
+none comme valeur pour les descripteurs system et fallback de @counter-style alors que ce devrait être invalide selon la spécification. Le nouveau moteur CSS de Firefox, Quantum CSS (aussi appelé Stylo, prévu pour Firefox 57) a résolu ce bug ({{bug(1377414)}}).Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/negative/index.html b/files/fr/web/css/@counter-style/negative/index.html
deleted file mode 100644
index 673163de4e..0000000000
--- a/files/fr/web/css/@counter-style/negative/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: negative
-slug: Web/CSS/@counter-style/negative
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/negative
----
-negative, associé à la règle @ {{cssxref("@counter-style")}}, permet de définir la représentation du compteur lorsque la valeur est négative./* Valeurs représentant les symboles */
-negative: "-"; /* Préfixe '-' si la valeur est négative */
-negative: "(" ")"; /* Entoure la valeur avec '(' et ')' si elle est négative */
-
-
-negative n'a d'effet que si la valeur du descripteur system est symbolic, alphabetic, numeric, additive ou extends et si le compteur personnalisé utilise des indices négatifs. Dans les autres cas, si le descripteur negative est fourni, il est ignoré.Syntaxe
-
-Valeurs
-
-
-
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style neg {
- system: numeric;
- symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
- negative: "(-" ")";
-}
-.exemple {
- list-style: neg;
-}
-
-HTML
-
-<ul class="exemple" start="-3">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#counter-style-system', 'system')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/negative/index.md b/files/fr/web/css/@counter-style/negative/index.md
new file mode 100644
index 0000000000..673163de4e
--- /dev/null
+++ b/files/fr/web/css/@counter-style/negative/index.md
@@ -0,0 +1,95 @@
+---
+title: negative
+slug: Web/CSS/@counter-style/negative
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/negative
+---
+negative, associé à la règle @ {{cssxref("@counter-style")}}, permet de définir la représentation du compteur lorsque la valeur est négative./* Valeurs représentant les symboles */
+negative: "-"; /* Préfixe '-' si la valeur est négative */
+negative: "(" ")"; /* Entoure la valeur avec '(' et ')' si elle est négative */
+
+
+negative n'a d'effet que si la valeur du descripteur system est symbolic, alphabetic, numeric, additive ou extends et si le compteur personnalisé utilise des indices négatifs. Dans les autres cas, si le descripteur negative est fourni, il est ignoré.Syntaxe
+
+Valeurs
+
+
+
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style neg {
+ system: numeric;
+ symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
+ negative: "(-" ")";
+}
+.exemple {
+ list-style: neg;
+}
+
+HTML
+
+<ul class="exemple" start="-3">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#counter-style-system', 'system')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/pad/index.html b/files/fr/web/css/@counter-style/pad/index.html
deleted file mode 100644
index a27313ddef..0000000000
--- a/files/fr/web/css/@counter-style/pad/index.html
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: pad
-slug: Web/CSS/@counter-style/pad
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/pad
----
-pad, utilisé dans la règle @ {{cssxref("@counter-style")}} peut être utilisé pour que la représentation du marqueur pour le compteur ait une longueur minimale. Si la représentation du marqueur est plus courte que la longueur indiquée, le marqueur sera complété autant de fois que nécessaire avec le symbole indiqué. Les représentations du marqueur qui sont plus longues que la longueur minimale indiquée dans le descripteur sont construites normalement.pad utilise deux paramètres :
-
-
-Syntaxe
-
-pad: 3 "0";
-
-
-Valeurs
-
-
-
-
-<integer> && <symbol><integer> indique la longueur minimale du marqueur. La valeur doit être positive. Si la représentation du marqueur est plus courte, elle sera complétée avec la valeur indiquée par la composante <symbol>.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style pad-example {
- system: numeric;
- symbols: "0" "1" "2" "3" "4" "5";
- pad: 2 "0";
-}
-.exemple {
- list-style: pad-example;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#descdef-counter-style-pad', 'pad')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/pad/index.md b/files/fr/web/css/@counter-style/pad/index.md
new file mode 100644
index 0000000000..a27313ddef
--- /dev/null
+++ b/files/fr/web/css/@counter-style/pad/index.md
@@ -0,0 +1,96 @@
+---
+title: pad
+slug: Web/CSS/@counter-style/pad
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/pad
+---
+pad, utilisé dans la règle @ {{cssxref("@counter-style")}} peut être utilisé pour que la représentation du marqueur pour le compteur ait une longueur minimale. Si la représentation du marqueur est plus courte que la longueur indiquée, le marqueur sera complété autant de fois que nécessaire avec le symbole indiqué. Les représentations du marqueur qui sont plus longues que la longueur minimale indiquée dans le descripteur sont construites normalement.pad utilise deux paramètres :
+
+
+Syntaxe
+
+pad: 3 "0";
+
+
+Valeurs
+
+
+
+
+<integer> && <symbol><integer> indique la longueur minimale du marqueur. La valeur doit être positive. Si la représentation du marqueur est plus courte, elle sera complétée avec la valeur indiquée par la composante <symbol>.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style pad-example {
+ system: numeric;
+ symbols: "0" "1" "2" "3" "4" "5";
+ pad: 2 "0";
+}
+.exemple {
+ list-style: pad-example;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#descdef-counter-style-pad', 'pad')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/prefix/index.html b/files/fr/web/css/@counter-style/prefix/index.html
deleted file mode 100644
index 34af4ccc6e..0000000000
--- a/files/fr/web/css/@counter-style/prefix/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: prefix
-slug: Web/CSS/@counter-style/prefix
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/prefix
----
-prefix, utilisé avec la règle @ {{cssxref("@counter-style")}}, permet de définir un symbole qui sera ajouté comme préfixe à la représentation du marqueur. Si aucune valeur n'est fournie, la valeur utilisée par défaut sera la chaîne de caractères vide.Syntaxe
-
-/* Valeurs de symbole */
-prefix: "»";
-prefix: "Page";
-
-
-Valeurs
-
-
-
-
-<symbol>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style chapitres {
- system: numeric;
- symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
- prefix: 'Chapitre ';
-}
-
-.exemple {
- list-style: chapitres;
- padding-left: 15ch;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Au fond du terrier</li>
- <li>La mare aux larmes</li>
- <li>La course cocasse</li>
- <li>L'habitation du lapin blanc</li>
- <li>Conseils d'une chenille</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#descdef-counter-style-prefix', 'prefix')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/prefix/index.md b/files/fr/web/css/@counter-style/prefix/index.md
new file mode 100644
index 0000000000..34af4ccc6e
--- /dev/null
+++ b/files/fr/web/css/@counter-style/prefix/index.md
@@ -0,0 +1,93 @@
+---
+title: prefix
+slug: Web/CSS/@counter-style/prefix
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/prefix
+---
+prefix, utilisé avec la règle @ {{cssxref("@counter-style")}}, permet de définir un symbole qui sera ajouté comme préfixe à la représentation du marqueur. Si aucune valeur n'est fournie, la valeur utilisée par défaut sera la chaîne de caractères vide.Syntaxe
+
+/* Valeurs de symbole */
+prefix: "»";
+prefix: "Page";
+
+
+Valeurs
+
+
+
+
+<symbol>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style chapitres {
+ system: numeric;
+ symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
+ prefix: 'Chapitre ';
+}
+
+.exemple {
+ list-style: chapitres;
+ padding-left: 15ch;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Au fond du terrier</li>
+ <li>La mare aux larmes</li>
+ <li>La course cocasse</li>
+ <li>L'habitation du lapin blanc</li>
+ <li>Conseils d'une chenille</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#descdef-counter-style-prefix', 'prefix')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/range/index.html b/files/fr/web/css/@counter-style/range/index.html
deleted file mode 100644
index 4bc4ce55cd..0000000000
--- a/files/fr/web/css/@counter-style/range/index.html
+++ /dev/null
@@ -1,119 +0,0 @@
----
-title: range
-slug: Web/CSS/@counter-style/range
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/range
----
-range, associé à la règle @ {{cssxref("@counter-style")}}, permet de définir l'intervalle de valeurs pris en compte par le compteur personnalisé. Si la valeur du compteur de la liste est en dehors de cet intervalle, ce sera la mise en forme de secours qui sera utilisée pour représenter le marqueur du compteur. La valeur de range peut être auto ou une liste de majorants/minorants, séparés par des virgules.range vaut auto :
-
-
-system vaut cyclic, numeric ou fixed, l'intervalle considéré sera entre moins l'infini et plus l'infini.system vaut alphabetic ou symbolic, l'intervalle considéré s'étendra entre 1 et l'infini.system vaut additive, l'intervalle considéré ira de 0 à l'infini.system vaut extends, l'intervalle correspond à ce qui est produit par le système étendu avec cette valeur.range est défini par des entiers, on peut utiliser le mot-clé infinite pour indiquer l'infini. Lorsque infinite est indiqué comme la première valeur d'un intervalle, il est interprété comme l'infini négatif, sinon comme l'infini positif.Syntaxe
-
-/* Valeur avec un mot-clé */
-range: auto;
-
-/* Valeurs encadrant un intervalle */
-range: 2 5;
-range: infinite 10;
-range: 6 infinite;
-range: infinite infinite;
-
-/* Valeurs indiquant plusieurs intervalles */
-range: 2 5, 8 10;
-range: infinite 6, 10 infinite;
-
-
-Values
-
-
-
-
-auto[ [ | infinite ]{2} ]#infinite est utilisé en premier, il indique l'infini négatif comme borne inférieure et s'il est utilisé comme seconde valeur pour l'intervalle, il correspondra à l'infini positif (utilisé alors comme borne supérieure). L'intervalle sur lequel s'applique le compteur défini correspond à l'union des intervalles qui composent cette liste. Si un minorant indiqué est supérieur à un majorant, le descripteur sera considéré comme invalide et sera ignoré.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style range-multi-example {
- system: cyclic;
- symbols: "\25A0" "\25A1";
- range: 2 4, 7 9;
-}
-
-.exemple {
- list-style: range-multi-example;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
- <li>Six</li>
- <li>Sept</li>
- <li>Huit</li>
- <li>Neuf</li>
- <li>Dix</li>
-</ul>
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS3 Counter Styles", "#counter-style-range", "range")}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/range/index.md b/files/fr/web/css/@counter-style/range/index.md
new file mode 100644
index 0000000000..4bc4ce55cd
--- /dev/null
+++ b/files/fr/web/css/@counter-style/range/index.md
@@ -0,0 +1,119 @@
+---
+title: range
+slug: Web/CSS/@counter-style/range
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/range
+---
+range, associé à la règle @ {{cssxref("@counter-style")}}, permet de définir l'intervalle de valeurs pris en compte par le compteur personnalisé. Si la valeur du compteur de la liste est en dehors de cet intervalle, ce sera la mise en forme de secours qui sera utilisée pour représenter le marqueur du compteur. La valeur de range peut être auto ou une liste de majorants/minorants, séparés par des virgules.range vaut auto :
+
+
+system vaut cyclic, numeric ou fixed, l'intervalle considéré sera entre moins l'infini et plus l'infini.system vaut alphabetic ou symbolic, l'intervalle considéré s'étendra entre 1 et l'infini.system vaut additive, l'intervalle considéré ira de 0 à l'infini.system vaut extends, l'intervalle correspond à ce qui est produit par le système étendu avec cette valeur.range est défini par des entiers, on peut utiliser le mot-clé infinite pour indiquer l'infini. Lorsque infinite est indiqué comme la première valeur d'un intervalle, il est interprété comme l'infini négatif, sinon comme l'infini positif.Syntaxe
+
+/* Valeur avec un mot-clé */
+range: auto;
+
+/* Valeurs encadrant un intervalle */
+range: 2 5;
+range: infinite 10;
+range: 6 infinite;
+range: infinite infinite;
+
+/* Valeurs indiquant plusieurs intervalles */
+range: 2 5, 8 10;
+range: infinite 6, 10 infinite;
+
+
+Values
+
+
+
+
+auto[ [ | infinite ]{2} ]#infinite est utilisé en premier, il indique l'infini négatif comme borne inférieure et s'il est utilisé comme seconde valeur pour l'intervalle, il correspondra à l'infini positif (utilisé alors comme borne supérieure). L'intervalle sur lequel s'applique le compteur défini correspond à l'union des intervalles qui composent cette liste. Si un minorant indiqué est supérieur à un majorant, le descripteur sera considéré comme invalide et sera ignoré.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style range-multi-example {
+ system: cyclic;
+ symbols: "\25A0" "\25A1";
+ range: 2 4, 7 9;
+}
+
+.exemple {
+ list-style: range-multi-example;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+ <li>Six</li>
+ <li>Sept</li>
+ <li>Huit</li>
+ <li>Neuf</li>
+ <li>Dix</li>
+</ul>
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS3 Counter Styles", "#counter-style-range", "range")}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/speak-as/index.html b/files/fr/web/css/@counter-style/speak-as/index.html
deleted file mode 100644
index 2dd23e1c44..0000000000
--- a/files/fr/web/css/@counter-style/speak-as/index.html
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: speak-as
-slug: Web/CSS/@counter-style/speak-as
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/speak-as
----
-speak-as, rattaché à la règle @ {{cssxref("@counter-style")}}, permet d'indiquer la représentation sonore du compteur qui doit être utilisée par l'agent utilisateur si nécessaire. Ainsi, on peut utiliser ce descripteur pour que le compteur soit énoncé comme un nombre ou avec un signal audio particulier.auto, bullets, numbers, words, spell-out ou alors pourra pointer vers un autre style de compteur avec le nom de ce style.Syntaxe
-
-/* Valeurs avec un mot-clé */
-speak-as: auto;
-speak-as: bullets;
-speak-as: numbers;
-speak-as: words;
-speak-as: spell-out;
-
-/* Nom d'un autre style @counter-style */
-speak-as: <counter-style-name>;
-
-
-Valeurs
-
-
-
-
-autospeak-as sera définie selon la valeur utilisée pour le descripteur {{cssxref("system")}} :
-
-
- system vaut alphabetic, speak-as sera alors synonyme de spell-out.system vaut cyclic, speak-as sera alors synonyme de bullets.system vaut extends, la valeur de speak-as sera la même que celle correspondante à auto dans le style étendu.numbers sera utilisé.bulletsnumberswordsspell-outnumbers.<counter-style-name>speak-as de ce style qui sera utilisée. Si la style visé n'existe pas, cette valeur sera alors synonyme de auto.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style speak-as-exemple {
- system: fixed;
- symbols: ;
- suffix: " ";
- speak-as: numbers;
-}
-
-
-.exemple {
- list-style: speak-as-exemple;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Accessibilité
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#counter-style-speak-as', 'speak-as')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/speak-as/index.md b/files/fr/web/css/@counter-style/speak-as/index.md
new file mode 100644
index 0000000000..2dd23e1c44
--- /dev/null
+++ b/files/fr/web/css/@counter-style/speak-as/index.md
@@ -0,0 +1,127 @@
+---
+title: speak-as
+slug: Web/CSS/@counter-style/speak-as
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/speak-as
+---
+speak-as, rattaché à la règle @ {{cssxref("@counter-style")}}, permet d'indiquer la représentation sonore du compteur qui doit être utilisée par l'agent utilisateur si nécessaire. Ainsi, on peut utiliser ce descripteur pour que le compteur soit énoncé comme un nombre ou avec un signal audio particulier.auto, bullets, numbers, words, spell-out ou alors pourra pointer vers un autre style de compteur avec le nom de ce style.Syntaxe
+
+/* Valeurs avec un mot-clé */
+speak-as: auto;
+speak-as: bullets;
+speak-as: numbers;
+speak-as: words;
+speak-as: spell-out;
+
+/* Nom d'un autre style @counter-style */
+speak-as: <counter-style-name>;
+
+
+Valeurs
+
+
+
+
+autospeak-as sera définie selon la valeur utilisée pour le descripteur {{cssxref("system")}} :
+
+
+ system vaut alphabetic, speak-as sera alors synonyme de spell-out.system vaut cyclic, speak-as sera alors synonyme de bullets.system vaut extends, la valeur de speak-as sera la même que celle correspondante à auto dans le style étendu.numbers sera utilisé.bulletsnumberswordsspell-outnumbers.<counter-style-name>speak-as de ce style qui sera utilisée. Si la style visé n'existe pas, cette valeur sera alors synonyme de auto.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style speak-as-exemple {
+ system: fixed;
+ symbols: ;
+ suffix: " ";
+ speak-as: numbers;
+}
+
+
+.exemple {
+ list-style: speak-as-exemple;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Accessibilité
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#counter-style-speak-as', 'speak-as')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/suffix/index.html b/files/fr/web/css/@counter-style/suffix/index.html
deleted file mode 100644
index 9dfe61362b..0000000000
--- a/files/fr/web/css/@counter-style/suffix/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: suffix
-slug: Web/CSS/@counter-style/suffix
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/suffix
----
-suffix, utilisé avec la règle @ {{cssxref("@counter-style")}}, afin de définir un symbole qui pourra être utilisé comme suffixe pour la représentation du marqueur. Le symbole en question pourra être une chaîne de caractères, une image ou un identifiant CSS. La valeur par défaut de ce descripteur sera "\2E\20" (un point « . » suivi par un espace).Syntaxe
-
-/* Une valeur de type <symbol> */
-suffix: "";
-suffix: ") ";
-
-
-Valeur
-
-
-
-
-<symbol>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style options {
- system: fixed;
- symbols: A B C D;
- suffix: ") ";
-}
-
-.exemple {
- list-style: options;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Autre</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#descdef-counter-style-suffix', 'suffix')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/suffix/index.md b/files/fr/web/css/@counter-style/suffix/index.md
new file mode 100644
index 0000000000..9dfe61362b
--- /dev/null
+++ b/files/fr/web/css/@counter-style/suffix/index.md
@@ -0,0 +1,91 @@
+---
+title: suffix
+slug: Web/CSS/@counter-style/suffix
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/suffix
+---
+suffix, utilisé avec la règle @ {{cssxref("@counter-style")}}, afin de définir un symbole qui pourra être utilisé comme suffixe pour la représentation du marqueur. Le symbole en question pourra être une chaîne de caractères, une image ou un identifiant CSS. La valeur par défaut de ce descripteur sera "\2E\20" (un point « . » suivi par un espace).Syntaxe
+
+/* Une valeur de type <symbol> */
+suffix: "";
+suffix: ") ";
+
+
+Valeur
+
+
+
+
+<symbol>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style options {
+ system: fixed;
+ symbols: A B C D;
+ suffix: ") ";
+}
+
+.exemple {
+ list-style: options;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Autre</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#descdef-counter-style-suffix', 'suffix')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/symbols/index.html b/files/fr/web/css/@counter-style/symbols/index.html
deleted file mode 100644
index 758b13e4aa..0000000000
--- a/files/fr/web/css/@counter-style/symbols/index.html
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: symbols
-slug: Web/CSS/@counter-style/symbols
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/symbols
----
-symbols, rattaché à la règle @ {{cssxref("@counter-style")}}, est utilisé pour définir les symboles à utiliser pour construire les représentations du compteur. Un symbole peut être une chaîne de caractères, une image ou un identifiant.symbols: A B C D E;
-symbols: "\24B6" "\24B7" "\24B8" D E;
-symbols: "0" "1" "2" "4" "5" "6" "7" "8" "9";
-symbols: url('premier.svg') url('deuxieme.svg') url('troisieme.svg');
-symbols: indic-numbers;
-
-
-symbols doit être défini lorsque la valeur du descripteur {{cssxref('system')}} vaut cyclic, numeric, alphabetic, symbolic ou fixed. Lorsque system vaut additive, ce sera le descripteur {{cssxref('additive-symbols')}} qui sera utilisé afin de définir les symboles.
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-"\24B6".url(chemin-vers-image.png). Attention : cette fonctionnalité (l'utilisation d'image) est à risque en termes d'implémentation et de conservation dans les spécifications et n'est implémentée par aucun navigateur actuellement.
-
-
-<symbol>symbols peut être :Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@counter-style symbols-exemple {
- system: fixed;
- symbols: A "1" "\24B7" D E;
-}
-
-.exemple {
- list-style: symbols-exemple;
-}
-
-HTML
-
-<ul class="exemple">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#counter-style-symbols', 'symbols')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/symbols/index.md b/files/fr/web/css/@counter-style/symbols/index.md
new file mode 100644
index 0000000000..758b13e4aa
--- /dev/null
+++ b/files/fr/web/css/@counter-style/symbols/index.md
@@ -0,0 +1,106 @@
+---
+title: symbols
+slug: Web/CSS/@counter-style/symbols
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/symbols
+---
+symbols, rattaché à la règle @ {{cssxref("@counter-style")}}, est utilisé pour définir les symboles à utiliser pour construire les représentations du compteur. Un symbole peut être une chaîne de caractères, une image ou un identifiant.symbols: A B C D E;
+symbols: "\24B6" "\24B7" "\24B8" D E;
+symbols: "0" "1" "2" "4" "5" "6" "7" "8" "9";
+symbols: url('premier.svg') url('deuxieme.svg') url('troisieme.svg');
+symbols: indic-numbers;
+
+
+symbols doit être défini lorsque la valeur du descripteur {{cssxref('system')}} vaut cyclic, numeric, alphabetic, symbolic ou fixed. Lorsque system vaut additive, ce sera le descripteur {{cssxref('additive-symbols')}} qui sera utilisé afin de définir les symboles.
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+"\24B6".url(chemin-vers-image.png). Attention : cette fonctionnalité (l'utilisation d'image) est à risque en termes d'implémentation et de conservation dans les spécifications et n'est implémentée par aucun navigateur actuellement.
+
+
+<symbol>symbols peut être :Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@counter-style symbols-exemple {
+ system: fixed;
+ symbols: A "1" "\24B7" D E;
+}
+
+.exemple {
+ list-style: symbols-exemple;
+}
+
+HTML
+
+<ul class="exemple">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#counter-style-symbols', 'symbols')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@counter-style/system/index.html b/files/fr/web/css/@counter-style/system/index.html
deleted file mode 100644
index 07ba664616..0000000000
--- a/files/fr/web/css/@counter-style/system/index.html
+++ /dev/null
@@ -1,328 +0,0 @@
----
-title: system
-slug: Web/CSS/@counter-style/system
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@counter-style/system
----
-system, utilisé avec la règle @ {{cssxref("@counter-style")}}, permet de définir l'algorithme utilisé pour convertir la valeur entière d'un compteur en une chaîne de caractères./* Valeurs avec un mot-clé */
-system: cyclic;
-system: numeric;
-system: alphabetic;
-system: symbolic;
-system: additive;
-system: fixed;
-
-/* Combinaison de valeurs */
-system: fixed 3;
-system: extends decimal;
-
-
-Syntaxe
-
-
-
-
-cyclic, numeric, alphabetic, symbolic, additive, fixedfixed avec un entierextends avec un nom correspondant à un {{cssxref("@counter-style")}}.
-
-
-cyclicfixedsymbols. On peut éventuellement ajouter un entier (valeur {{cssxref("integer")}}) après le système et qui définit la valeur du premier symbole. La valeur par défaut de ce paramètre (s'il est absent) est 1.symbolicsymbols. Ce système de compteur ne fonctionne que pour les valeurs positives.alphabetica à z sont définies comme symbole dans un style de compteur dont le système est alphabetic, les 26 premières représentations du compteur seront a, b, etc. jusqu'à z (jusqu'ici, le comportement est identique à celui obtenu grâce à symbolic) mais ensuite, le système poursuivra avec aa, ab, ac, etc.
- Pour que le style du compteur soit valide, il faut qu'au moins deux symboles soient fournis. Le premier symbole est interprété comme 1, le suivant comme 2 et ainsi de suite. Ce système ne fonctionne que pour les valeurs positives.numericalphabetic sauf que, pour ce dernier, le premier symbole fourni par symbols sera interprété comme 1, le suivant comme 2 et ainsi de suite alors que pour numeric, le premier symbole est interprété comme 0, le suivant comme 1, puis 2 etc. Pour que le style de compteur soit valide, il faut qu'au moins deux symboles soient définis avec symbols. Le premier symbole qui est fourni sera interprété comme 0. Comme on peut le voir dans l'exemple ci-après, si on utilise les chiffres de 0 à 9 comme symboles, on obtiendra le même résultat qu'avec le système décimal.additiverange est utilisé afin de définir l'intervalle de validité. Une fois en dehors de cet intervalle, on utilisera la représentation classique avec decimal (le style de secours). Si on veut utiliser les chiffres romains, on pourra utiliser les valeurs de style prédéfinies comme upper-roman ou lower-roman afin d'éviter de réinventer la roue.
- extendsextends et que certains de ces descripteurs ne font pas définis, leurs valeurs seront prises depuis le style de compteur indiqué. Si le nom du style référencé n'existe pas, le style de secours (décimal) sera utilisé. Pour que le style de compteur soit valide, il ne doit pas contenir de descripteur symbols ou additive-symbols. Si, selon les différents styles de compteur, on a un cycle de référence (A qui pointe vers B qui pointe vers C qui pointe vers A par exemple), l'agent utilisateur considèrera que tous les styles étendent le style décimal. Dans l'exemple final, le style de compteur utiliser les valeurs du système de compteur lower-alpha mais retire le point comme suffixe et entour les caractères entre parenthèses (pour obtenir (a) (b) etc).Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Utilisation de
-
-cyclicCSS
-
-@counter-style fisheye {
- system: cyclic;
- symbols: ◉;
- suffix: " ";
-}
-
-.list {
- list-style: fisheye;
-}
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-
-Résultat
-
-Utilisation de
-
-fixedCSS
-
-@counter-style circled-digits {
- system: fixed;
- symbols: ➀ ➁ ➂;
- suffix: ' ';
-}
-
-.list {
- list-style: circled-digits;
-}
-
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Utilisation de
-
-symbolicCSS
-
-@counter-style abc {
- system: symbolic;
- symbols: a b c;
- suffix: ". ";
-}
-
-.list {
- list-style: abc;
-}
-
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Utilisation de
-
-alphabeticCSS
-
-@counter-style abc {
- system: alphabetic;
- symbols: a b c;
- suffix: ". ";
-}
-
-.list {
- list-style: abc;
-}
-
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-
-Résultat
-
-Utilisation de
-
-numeric avec des lettresCSS
-
-@counter-style abc {
- system: numeric;
- symbols: a b c;
- suffix: ". ";
-}
-
-.list {
- list-style: abc;
-}
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Résultat
-
-Utilisation de
-
-numeric avec des chiffresCSS
-
-@counter-style numbers {
- system: numeric;
- symbols: 0 1 2 3 4 5 6 7 8 9;
- suffix: ". ";
-}
-
-.list {
- list-style: numbers;
-}
-
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-Utilisation de
-
-additiveCSS
-
-@counter-style upper-roman {
- system: additive;
- range: 1 3999;
- additive-symbols: 1000 M, 900 CM, 500 D, 400 CD, 100 C, 90 XC, 50 L, 40 XL, 10 X, 9 IX, 5 V, 4 IV, 1 I;
-}
-
-.list {
- list-style: upper-roman;
-}
-
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-
-Résultat
-
-Combinaison avec
-
-extendsCSS
-
-@counter-style alpha-modified {
- system: extends lower-alpha;
- prefix: "(";
- suffix: ") ";
-}
-
-.list {
- list-style: alpha-modified;
-}
-
-
-HTML
-
-<ul class="list">
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
- <li>Cinq</li>
-</ul>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Counter Styles', '#counter-style-system', 'system')}}
- {{Spec2('CSS3 Counter Styles')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@counter-style/system/index.md b/files/fr/web/css/@counter-style/system/index.md
new file mode 100644
index 0000000000..07ba664616
--- /dev/null
+++ b/files/fr/web/css/@counter-style/system/index.md
@@ -0,0 +1,328 @@
+---
+title: system
+slug: Web/CSS/@counter-style/system
+tags:
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@counter-style/system
+---
+system, utilisé avec la règle @ {{cssxref("@counter-style")}}, permet de définir l'algorithme utilisé pour convertir la valeur entière d'un compteur en une chaîne de caractères./* Valeurs avec un mot-clé */
+system: cyclic;
+system: numeric;
+system: alphabetic;
+system: symbolic;
+system: additive;
+system: fixed;
+
+/* Combinaison de valeurs */
+system: fixed 3;
+system: extends decimal;
+
+
+Syntaxe
+
+
+
+
+cyclic, numeric, alphabetic, symbolic, additive, fixedfixed avec un entierextends avec un nom correspondant à un {{cssxref("@counter-style")}}.
+
+
+cyclicfixedsymbols. On peut éventuellement ajouter un entier (valeur {{cssxref("integer")}}) après le système et qui définit la valeur du premier symbole. La valeur par défaut de ce paramètre (s'il est absent) est 1.symbolicsymbols. Ce système de compteur ne fonctionne que pour les valeurs positives.alphabetica à z sont définies comme symbole dans un style de compteur dont le système est alphabetic, les 26 premières représentations du compteur seront a, b, etc. jusqu'à z (jusqu'ici, le comportement est identique à celui obtenu grâce à symbolic) mais ensuite, le système poursuivra avec aa, ab, ac, etc.
+ Pour que le style du compteur soit valide, il faut qu'au moins deux symboles soient fournis. Le premier symbole est interprété comme 1, le suivant comme 2 et ainsi de suite. Ce système ne fonctionne que pour les valeurs positives.numericalphabetic sauf que, pour ce dernier, le premier symbole fourni par symbols sera interprété comme 1, le suivant comme 2 et ainsi de suite alors que pour numeric, le premier symbole est interprété comme 0, le suivant comme 1, puis 2 etc. Pour que le style de compteur soit valide, il faut qu'au moins deux symboles soient définis avec symbols. Le premier symbole qui est fourni sera interprété comme 0. Comme on peut le voir dans l'exemple ci-après, si on utilise les chiffres de 0 à 9 comme symboles, on obtiendra le même résultat qu'avec le système décimal.additiverange est utilisé afin de définir l'intervalle de validité. Une fois en dehors de cet intervalle, on utilisera la représentation classique avec decimal (le style de secours). Si on veut utiliser les chiffres romains, on pourra utiliser les valeurs de style prédéfinies comme upper-roman ou lower-roman afin d'éviter de réinventer la roue.
+ extendsextends et que certains de ces descripteurs ne font pas définis, leurs valeurs seront prises depuis le style de compteur indiqué. Si le nom du style référencé n'existe pas, le style de secours (décimal) sera utilisé. Pour que le style de compteur soit valide, il ne doit pas contenir de descripteur symbols ou additive-symbols. Si, selon les différents styles de compteur, on a un cycle de référence (A qui pointe vers B qui pointe vers C qui pointe vers A par exemple), l'agent utilisateur considèrera que tous les styles étendent le style décimal. Dans l'exemple final, le style de compteur utiliser les valeurs du système de compteur lower-alpha mais retire le point comme suffixe et entour les caractères entre parenthèses (pour obtenir (a) (b) etc).Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Utilisation de
+
+cyclicCSS
+
+@counter-style fisheye {
+ system: cyclic;
+ symbols: ◉;
+ suffix: " ";
+}
+
+.list {
+ list-style: fisheye;
+}
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+
+Résultat
+
+Utilisation de
+
+fixedCSS
+
+@counter-style circled-digits {
+ system: fixed;
+ symbols: ➀ ➁ ➂;
+ suffix: ' ';
+}
+
+.list {
+ list-style: circled-digits;
+}
+
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Utilisation de
+
+symbolicCSS
+
+@counter-style abc {
+ system: symbolic;
+ symbols: a b c;
+ suffix: ". ";
+}
+
+.list {
+ list-style: abc;
+}
+
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Utilisation de
+
+alphabeticCSS
+
+@counter-style abc {
+ system: alphabetic;
+ symbols: a b c;
+ suffix: ". ";
+}
+
+.list {
+ list-style: abc;
+}
+
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+
+Résultat
+
+Utilisation de
+
+numeric avec des lettresCSS
+
+@counter-style abc {
+ system: numeric;
+ symbols: a b c;
+ suffix: ". ";
+}
+
+.list {
+ list-style: abc;
+}
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Résultat
+
+Utilisation de
+
+numeric avec des chiffresCSS
+
+@counter-style numbers {
+ system: numeric;
+ symbols: 0 1 2 3 4 5 6 7 8 9;
+ suffix: ". ";
+}
+
+.list {
+ list-style: numbers;
+}
+
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+Utilisation de
+
+additiveCSS
+
+@counter-style upper-roman {
+ system: additive;
+ range: 1 3999;
+ additive-symbols: 1000 M, 900 CM, 500 D, 400 CD, 100 C, 90 XC, 50 L, 40 XL, 10 X, 9 IX, 5 V, 4 IV, 1 I;
+}
+
+.list {
+ list-style: upper-roman;
+}
+
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+
+Résultat
+
+Combinaison avec
+
+extendsCSS
+
+@counter-style alpha-modified {
+ system: extends lower-alpha;
+ prefix: "(";
+ suffix: ") ";
+}
+
+.list {
+ list-style: alpha-modified;
+}
+
+
+HTML
+
+<ul class="list">
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+ <li>Cinq</li>
+</ul>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Counter Styles', '#counter-style-system', 'system')}}
+ {{Spec2('CSS3 Counter Styles')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@document/index.html b/files/fr/web/css/@document/index.html
deleted file mode 100644
index 06a8348209..0000000000
--- a/files/fr/web/css/@document/index.html
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: '@document'
-slug: Web/CSS/@document
-tags:
- - At-rule
- - CSS
- - Reference
- - Règle @
-translation_of: Web/CSS/@document
----
-@document restreint les règles qu'elle contient en fonction de l'URL du document. Elle est principalement conçue pour les feuilles de style utilisateur, bien qu'elle puisse être également utilisée pour les feuilles de style d'auteur.@document url("https://www.example.com/") {
- h1 {
- color: green;
- }
-}
-
-
-
-
-Syntaxe
-
-@document peut définir une ou plusieurs fonctions de correspondance. Si l'une quelconque des règles s'applique à l'URL donnée, la règle prendra effet sur cette URL. Les fonctions disponibles sont :
-
-
-url(), qui établit une correspondance avec une URL exacte ;url-prefix(), qui établit une correspondance si l'URL du document commence par la valeur fournie ;domain(), qui établit une correspondance si l'URL du document se trouve sur le domaine indiqué (ou l'un de ses sous-domaines) ;media-document() qui caractérise le type de document : vidéo, image, plugin, tout ;regexp(), qui établit une correspondance avec si l'URL du document vérifie une expression rationnelle. L'expression doit correspondre à l'URL entière.url(), url-prefix(), media-document() et domain() peuvent être éventuellement délimitées par des apostrophes, simples ou doubles. Les valeurs fournies à la fonction regexp() doivent être délimitées par des apostrophes.regexp() doivent être en outre échappées pour le CSS. Par exemple, un . (point) correspond à n'importe quel caractère dans les expressions régulières. Pour établir une correspondance avec un point littéral, vous aurez d'abord besoin de l'échapper en utilisant les règles des expressions rationnelles (en \.), puis d'échapper cette chaîne en utilisant les règles CSS (en \\.).@-moz-document. Cette propriété a été restreinte aux feuilles de style utilisateur ou à celles de l'agent utilisateur à partir de Firefox 59 afin d'expérimenter une méthode de réduction des risques d'injections CSS (cf. {{bug(1035091)}}).Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@document url("http://www.w3.org/"),
- url-prefix("http://www.w3.org/Style/"),
- domain("mozilla.org"),
- media-document("video"),
- regexp("https:.*")
-{
- /* Ces règles CSS s'appliquent à :
- - la page "http://www.w3.org/"
- - toute page dont l'URL commence par "http://www.w3.org/Style/"
- - toute page dont l'hôte de l'URL est "mozilla.org"
- ou finit par ".mozilla.org"
- - toute vidéo
- - toute page dont l'URL commence par "https:" */
-
- /* Rendre ces pages vraiment laides */
- body {
- color: purple;
- background: yellow;
- }
-}
-
-
-Spécifications
-
-@document a été repoussée au niveau 4.Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@document/index.md b/files/fr/web/css/@document/index.md
new file mode 100644
index 0000000000..06a8348209
--- /dev/null
+++ b/files/fr/web/css/@document/index.md
@@ -0,0 +1,84 @@
+---
+title: '@document'
+slug: Web/CSS/@document
+tags:
+ - At-rule
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@document
+---
+@document restreint les règles qu'elle contient en fonction de l'URL du document. Elle est principalement conçue pour les feuilles de style utilisateur, bien qu'elle puisse être également utilisée pour les feuilles de style d'auteur.@document url("https://www.example.com/") {
+ h1 {
+ color: green;
+ }
+}
+
+
+
+
+Syntaxe
+
+@document peut définir une ou plusieurs fonctions de correspondance. Si l'une quelconque des règles s'applique à l'URL donnée, la règle prendra effet sur cette URL. Les fonctions disponibles sont :
+
+
+url(), qui établit une correspondance avec une URL exacte ;url-prefix(), qui établit une correspondance si l'URL du document commence par la valeur fournie ;domain(), qui établit une correspondance si l'URL du document se trouve sur le domaine indiqué (ou l'un de ses sous-domaines) ;media-document() qui caractérise le type de document : vidéo, image, plugin, tout ;regexp(), qui établit une correspondance avec si l'URL du document vérifie une expression rationnelle. L'expression doit correspondre à l'URL entière.url(), url-prefix(), media-document() et domain() peuvent être éventuellement délimitées par des apostrophes, simples ou doubles. Les valeurs fournies à la fonction regexp() doivent être délimitées par des apostrophes.regexp() doivent être en outre échappées pour le CSS. Par exemple, un . (point) correspond à n'importe quel caractère dans les expressions régulières. Pour établir une correspondance avec un point littéral, vous aurez d'abord besoin de l'échapper en utilisant les règles des expressions rationnelles (en \.), puis d'échapper cette chaîne en utilisant les règles CSS (en \\.).@-moz-document. Cette propriété a été restreinte aux feuilles de style utilisateur ou à celles de l'agent utilisateur à partir de Firefox 59 afin d'expérimenter une méthode de réduction des risques d'injections CSS (cf. {{bug(1035091)}}).Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@document url("http://www.w3.org/"),
+ url-prefix("http://www.w3.org/Style/"),
+ domain("mozilla.org"),
+ media-document("video"),
+ regexp("https:.*")
+{
+ /* Ces règles CSS s'appliquent à :
+ - la page "http://www.w3.org/"
+ - toute page dont l'URL commence par "http://www.w3.org/Style/"
+ - toute page dont l'hôte de l'URL est "mozilla.org"
+ ou finit par ".mozilla.org"
+ - toute vidéo
+ - toute page dont l'URL commence par "https:" */
+
+ /* Rendre ces pages vraiment laides */
+ body {
+ color: purple;
+ background: yellow;
+ }
+}
+
+
+Spécifications
+
+@document a été repoussée au niveau 4.Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/ascent-override/index.html b/files/fr/web/css/@font-face/ascent-override/index.html
deleted file mode 100644
index dbbeb8eaa3..0000000000
--- a/files/fr/web/css/@font-face/ascent-override/index.html
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: ascent-override
-slug: Web/CSS/@font-face/ascent-override
-browser-compat: css.at-rules.font-face.ascent-override
-translation_of: 'Web/CSS/@font-face/ascent-override'
----
-ascent-override définit la mesure du jambage supérieur (ascendant) de la police (voir la définition de jambage). La mesure du jambage supérieur correspond à la distance verticale par rapport à la hauteur d'X (hauteur du caractère bas de casse, à l'exclusion des jambages inférieurs et supérieurs) que CSS doit utiliser pour agencer les boîtes dans un contexte de formatage en ligne.Syntaxe
-
-ascent-override: normal;
-ascent-override: 90%;
-
-Valeurs
-
-
-
-
-normal<percentage>Définition formelle
-
-Syntaxe formelle
-
-Exemples
-
-Surcharge de la mesure d'une police de recours
-
-ascent-override peut aider à la surcharge de la mesure d'une police de secours pour qu'elle corresponde mieux à celle de la police principale.@font-face {
- font-family: web-font;
- src: url("https://example.com/font.woff");
-}
-
-@font-face {
- font-family: local-font;
- src: local(Local Font);
- ascent-override: 125%;
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-face/ascent-override/index.md b/files/fr/web/css/@font-face/ascent-override/index.md
new file mode 100644
index 0000000000..dbbeb8eaa3
--- /dev/null
+++ b/files/fr/web/css/@font-face/ascent-override/index.md
@@ -0,0 +1,74 @@
+---
+title: ascent-override
+slug: Web/CSS/@font-face/ascent-override
+browser-compat: css.at-rules.font-face.ascent-override
+translation_of: 'Web/CSS/@font-face/ascent-override'
+---
+ascent-override définit la mesure du jambage supérieur (ascendant) de la police (voir la définition de jambage). La mesure du jambage supérieur correspond à la distance verticale par rapport à la hauteur d'X (hauteur du caractère bas de casse, à l'exclusion des jambages inférieurs et supérieurs) que CSS doit utiliser pour agencer les boîtes dans un contexte de formatage en ligne.Syntaxe
+
+ascent-override: normal;
+ascent-override: 90%;
+
+Valeurs
+
+
+
+
+normal<percentage>Définition formelle
+
+Syntaxe formelle
+
+Exemples
+
+Surcharge de la mesure d'une police de recours
+
+ascent-override peut aider à la surcharge de la mesure d'une police de secours pour qu'elle corresponde mieux à celle de la police principale.@font-face {
+ font-family: web-font;
+ src: url("https://example.com/font.woff");
+}
+
+@font-face {
+ font-family: local-font;
+ src: local(Local Font);
+ ascent-override: 125%;
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/descent-override/index.html b/files/fr/web/css/@font-face/descent-override/index.html
deleted file mode 100644
index 6805fdd77f..0000000000
--- a/files/fr/web/css/@font-face/descent-override/index.html
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: descent-override
-slug: Web/CSS/@font-face/descent-override
-browser-compat: css.at-rules.font-face.descent-override
-translation_of: 'Web/CSS/@font-face/descent-override'
----
-descent-override définit la mesure du jambage inférieur (descendant) de la police (voir la définition de jambage). La mesure du jambage inférieur correspond à la distance verticale par rapport à la hauteur d'X (hauteur du caractère bas de casse, à l'exclusion des jambages inférieurs et supérieurs) que CSS doit utiliser pour agencer les boîtes dans un contexte de formatage en ligne.Syntaxe
-
-descent-override: normal;
-descent-override: 90%;
-
-Valeurs
-
-
-
-
-normal<percentage>Définition formelle
-
-Syntaxe formelle
-
-Exemples
-
-Surcharge de la mesure d'une police de recours
-
-descent-override peut aider à la surcharge de la mesure d'une police de secours pour qu'elle corresponde mieux à celle de la police principale.@font-face {
- font-family: web-font;
- src: url("https://example.com/font.woff");
-}
-
-@font-face {
- font-family: local-font;
- src: local(Local Font);
- descent-override: 125%;
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-face/descent-override/index.md b/files/fr/web/css/@font-face/descent-override/index.md
new file mode 100644
index 0000000000..6805fdd77f
--- /dev/null
+++ b/files/fr/web/css/@font-face/descent-override/index.md
@@ -0,0 +1,74 @@
+---
+title: descent-override
+slug: Web/CSS/@font-face/descent-override
+browser-compat: css.at-rules.font-face.descent-override
+translation_of: 'Web/CSS/@font-face/descent-override'
+---
+descent-override définit la mesure du jambage inférieur (descendant) de la police (voir la définition de jambage). La mesure du jambage inférieur correspond à la distance verticale par rapport à la hauteur d'X (hauteur du caractère bas de casse, à l'exclusion des jambages inférieurs et supérieurs) que CSS doit utiliser pour agencer les boîtes dans un contexte de formatage en ligne.Syntaxe
+
+descent-override: normal;
+descent-override: 90%;
+
+Valeurs
+
+
+
+
+normal<percentage>Définition formelle
+
+Syntaxe formelle
+
+Exemples
+
+Surcharge de la mesure d'une police de recours
+
+descent-override peut aider à la surcharge de la mesure d'une police de secours pour qu'elle corresponde mieux à celle de la police principale.@font-face {
+ font-family: web-font;
+ src: url("https://example.com/font.woff");
+}
+
+@font-face {
+ font-family: local-font;
+ src: local(Local Font);
+ descent-override: 125%;
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/font-display/index.html b/files/fr/web/css/@font-face/font-display/index.html
deleted file mode 100644
index 2b89c8661d..0000000000
--- a/files/fr/web/css/@font-face/font-display/index.html
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: font-display
-slug: Web/CSS/@font-face/font-display
-tags:
- - CSS
- - Descripteur
- - Experimental
- - Reference
-translation_of: Web/CSS/@font-face/font-display
----
-font-display détermine la façon dont une fonte est affichée selon qu'elle ait été chargée et prête à être utilisée.Le déroulement de l'affichage d'une police
-
-
-
-
-Syntaxe
-
-/* Valeurs avec un mot-clé */
-font-display: auto;
-font-display: block;
-font-display: swap;
-font-display: fallback;
-font-display: optional;
-
-Valeurs
-
-
-
-
-autoblockswapfallbackoptionalSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@font-face {
- font-family: FonteExemple;
- src: url(/chemin/vers/fonts/examplefont.woff) format('woff'),
- url(/chemin/vers/fonts/examplefont.eot) format('eot');
- font-weight: 400;
- font-style: normal;
- font-display: fallback;
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Fonts', '#font-display-desc', 'font-display')}}
- {{Spec2('CSS4 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-font-display détermine la façon dont une fonte est affichée selon qu'elle ait été chargée et prête à être utilisée.Le déroulement de l'affichage d'une police
+
+
+
+
+Syntaxe
+
+/* Valeurs avec un mot-clé */
+font-display: auto;
+font-display: block;
+font-display: swap;
+font-display: fallback;
+font-display: optional;
+
+Valeurs
+
+
+
+
+autoblockswapfallbackoptionalSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@font-face {
+ font-family: FonteExemple;
+ src: url(/chemin/vers/fonts/examplefont.woff) format('woff'),
+ url(/chemin/vers/fonts/examplefont.eot) format('eot');
+ font-weight: 400;
+ font-style: normal;
+ font-display: fallback;
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Fonts', '#font-display-desc', 'font-display')}}
+ {{Spec2('CSS4 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+font-family permet aux auteurs d'un document de définir la police de caractères à utiliser au sein d'une règle @ {{cssxref("@font-face")}}.Syntaxe
-
-/* Valeurs de chaînes de caractères */
-/* Type <string> */
-font-family: "police de caractères a";
-font-family: 'une autre police';
-
-/* Valeur de type <custom-ident> */
-font-family: exemplepolice;
-
-
-Valeurs
-
-
-
-
-<family-name>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@font-face {
- font-family: exemplepolice;
- src: url('exemplepolice.ttf');
-}
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Fonts', '#font-family-desc', 'font-family')}}
- {{Spec2('CSS3 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-font-family permet aux auteurs d'un document de définir la police de caractères à utiliser au sein d'une règle @ {{cssxref("@font-face")}}.Syntaxe
+
+/* Valeurs de chaînes de caractères */
+/* Type <string> */
+font-family: "police de caractères a";
+font-family: 'une autre police';
+
+/* Valeur de type <custom-ident> */
+font-family: exemplepolice;
+
+
+Valeurs
+
+
+
+
+<family-name>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@font-face {
+ font-family: exemplepolice;
+ src: url('exemplepolice.ttf');
+}
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Fonts', '#font-family-desc', 'font-family')}}
+ {{Spec2('CSS3 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+font-stretch permet aux auteurs de choisir entre la forme normale, condensée ou étendue d'une police fournie dans une règle {{cssxref("@font-face")}}.font-stretch de façon explicite afin de choisir la fonte voulue. Les valeurs fournies au descripteur CSS sont les mêmes que celles qui peuvent être utilisées pour la propriété correspondante.Syntaxe
-
-/* Valeurs simples */
-font-stretch: ultra-condensed;
-font-stretch: extra-condensed;
-font-stretch: condensed;
-font-stretch: semi-condensed;
-font-stretch: normal;
-font-stretch: semi-expanded;
-font-stretch: expanded;
-font-stretch: extra-expanded;
-font-stretch: ultra-expanded;
-font-stretch: 50%;
-font-stretch: 100%;
-font-stretch: 200%;
-
-/* Valeurs multiples */
-font-stretch: 75% 125%;
-font-stretch: condensed ultra-condensed;;
-
-
-Valeurs
-
-
-
-
-normalsemi-condensed, condensed, extra-condensed, ultra-condensedultra-condensed correspond à la forme la plus condensée).semi-expanded, expanded, extra-expanded, ultra-expandedultra-expanded étant la plus étendue).<percentage>font-stretch, la propriété ne s'utilisait qu'avec des mots-clés. Avec le module CSS Fonts de niveau 4, la syntaxe est étendue afin de permettre l'utilisation des valeurs <percentage>. Cela permet aux polices variables de permettre un contrôle plus fin voire continu."wdth" qui est utilisé afin d'implémenter les largeurs variables.Correspondance entre les noms et les pourcentages
-
-
-
-
-
-
-
-
-
- Keyword
- Pourcentage
-
-
-
- ultra-condensed50%
-
-
-
- extra-condensed62.5%
-
-
-
- condensed75%
-
-
-
- semi-condensed87.5%
-
-
-
- normal100%
-
-
-
- semi-expanded112.5%
-
-
-
- expanded125%
-
-
-
- extra-expanded150%
-
-
-
-
- ultra-expanded200%
- Polices variables
-
-"wdth" qui est utilisé afin d'implémenter les largeurs variables des glyphes.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@font-face {
- font-family: "Open Sans";
- src: local("Open Sans") format("woff2"),
- url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
- font-stretch: 87.5% 112.5%;
-}
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Fonts', '#font-prop-desc', 'font-stretch')}}
- {{Spec2('CSS4 Fonts')}}
-
-
-
-
-{{SpecName('CSS3 Fonts', '#font-prop-desc', 'font-stretch')}}
- {{Spec2('CSS3 Fonts')}}
-
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-face/font-stretch/index.md b/files/fr/web/css/@font-face/font-stretch/index.md
new file mode 100644
index 0000000000..505de0c2ac
--- /dev/null
+++ b/files/fr/web/css/@font-face/font-stretch/index.md
@@ -0,0 +1,180 @@
+---
+title: font-stretch
+slug: Web/CSS/@font-face/font-stretch
+tags:
+ - '@font-face'
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@font-face/font-stretch
+---
+font-stretch permet aux auteurs de choisir entre la forme normale, condensée ou étendue d'une police fournie dans une règle {{cssxref("@font-face")}}.font-stretch de façon explicite afin de choisir la fonte voulue. Les valeurs fournies au descripteur CSS sont les mêmes que celles qui peuvent être utilisées pour la propriété correspondante.Syntaxe
+
+/* Valeurs simples */
+font-stretch: ultra-condensed;
+font-stretch: extra-condensed;
+font-stretch: condensed;
+font-stretch: semi-condensed;
+font-stretch: normal;
+font-stretch: semi-expanded;
+font-stretch: expanded;
+font-stretch: extra-expanded;
+font-stretch: ultra-expanded;
+font-stretch: 50%;
+font-stretch: 100%;
+font-stretch: 200%;
+
+/* Valeurs multiples */
+font-stretch: 75% 125%;
+font-stretch: condensed ultra-condensed;;
+
+
+Valeurs
+
+
+
+
+normalsemi-condensed, condensed, extra-condensed, ultra-condensedultra-condensed correspond à la forme la plus condensée).semi-expanded, expanded, extra-expanded, ultra-expandedultra-expanded étant la plus étendue).<percentage>font-stretch, la propriété ne s'utilisait qu'avec des mots-clés. Avec le module CSS Fonts de niveau 4, la syntaxe est étendue afin de permettre l'utilisation des valeurs <percentage>. Cela permet aux polices variables de permettre un contrôle plus fin voire continu."wdth" qui est utilisé afin d'implémenter les largeurs variables.Correspondance entre les noms et les pourcentages
+
+
+
+
+
+
+
+
+
+ Keyword
+ Pourcentage
+
+
+
+ ultra-condensed50%
+
+
+
+ extra-condensed62.5%
+
+
+
+ condensed75%
+
+
+
+ semi-condensed87.5%
+
+
+
+ normal100%
+
+
+
+ semi-expanded112.5%
+
+
+
+ expanded125%
+
+
+
+ extra-expanded150%
+
+
+
+
+ ultra-expanded200%
+ Polices variables
+
+"wdth" qui est utilisé afin d'implémenter les largeurs variables des glyphes.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@font-face {
+ font-family: "Open Sans";
+ src: local("Open Sans") format("woff2"),
+ url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
+ font-stretch: 87.5% 112.5%;
+}
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Fonts', '#font-prop-desc', 'font-stretch')}}
+ {{Spec2('CSS4 Fonts')}}
+
+
+
+
+{{SpecName('CSS3 Fonts', '#font-prop-desc', 'font-stretch')}}
+ {{Spec2('CSS3 Fonts')}}
+
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/font-style/index.html b/files/fr/web/css/@font-face/font-style/index.html
deleted file mode 100644
index 672e77a232..0000000000
--- a/files/fr/web/css/@font-face/font-style/index.html
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: font-style
-slug: Web/CSS/@font-face/font-style
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@font-face/font-style
----
-font-style, associé à la règle @ {{cssxref("@font-face")}}, permet d'indiquer le style de police pour la police définie via la règle.font-style peut alors être utilisé afin d'indiquer explicitement le style associé à la fonte. La valeur du descripteur correspond à la propriété de la fonte.Syntaxe
-
-font-style: normal;
-font-style: italic;
-font-style: oblique;
-font-style: oblique 30deg;
-font-style: oblique 30deg 50deg;
-
-Valeurs
-
-
-
-
-normalitalicobliqueoblique avec un angleoblique avec un intervalle d'angleoblique et indique un intervalle d'angles possibles pour la pente du texte. On notera que l'intervalle est uniquement pris en compte pour la valeur oblique, aucune autre valeur n'est autorisée après normal ou italic.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@font-face {
- font-family: garamond;
- src: url('garamond.ttf');
-}
-
-

src et indiquer que c'est une police italique via font-style. Une « vraie » police italique utilisera des glyphes différents et la qualité calligraphique obtenue sera meilleure qu'avec les glyphes normaux penchés artificiellement.@font-face {
- font-family: garamond;
- src: url('garamond-italic.ttf');
- /* On indique ici que la police est italique */
- font-style: italic;
-}
-
-
Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Fonts', '#font-prop-desc', 'font-style')}}
- {{Spec2('CSS4 Fonts')}}
- Ajoute la possibilité d'utiliser le mot-clé
- oblique suivi par une valeur angulaire.
-
-
-{{SpecName('CSS3 Fonts', '#font-prop-desc', 'font-style')}}
- {{Spec2('CSS3 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-font-style, associé à la règle @ {{cssxref("@font-face")}}, permet d'indiquer le style de police pour la police définie via la règle.font-style peut alors être utilisé afin d'indiquer explicitement le style associé à la fonte. La valeur du descripteur correspond à la propriété de la fonte.Syntaxe
+
+font-style: normal;
+font-style: italic;
+font-style: oblique;
+font-style: oblique 30deg;
+font-style: oblique 30deg 50deg;
+
+Valeurs
+
+
+
+
+normalitalicobliqueoblique avec un angleoblique avec un intervalle d'angleoblique et indique un intervalle d'angles possibles pour la pente du texte. On notera que l'intervalle est uniquement pris en compte pour la valeur oblique, aucune autre valeur n'est autorisée après normal ou italic.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@font-face {
+ font-family: garamond;
+ src: url('garamond.ttf');
+}
+
+

src et indiquer que c'est une police italique via font-style. Une « vraie » police italique utilisera des glyphes différents et la qualité calligraphique obtenue sera meilleure qu'avec les glyphes normaux penchés artificiellement.@font-face {
+ font-family: garamond;
+ src: url('garamond-italic.ttf');
+ /* On indique ici que la police est italique */
+ font-style: italic;
+}
+
+
Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Fonts', '#font-prop-desc', 'font-style')}}
+ {{Spec2('CSS4 Fonts')}}
+ Ajoute la possibilité d'utiliser le mot-clé
+ oblique suivi par une valeur angulaire.
+
+
+{{SpecName('CSS3 Fonts', '#font-prop-desc', 'font-style')}}
+ {{Spec2('CSS3 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+font-variation-settings, associé à la règle @ {{cssxref("@font-face")}} permet d'indiquer les variations de police de bas niveau pour les polices OpenType ou TrueType.Syntaxe
-
-/* On utilise les paramètres par défaut */
-font-variation-settings: normal;
-
-/* On indique les valeurs pour les noms des axes OpenType */
-font-variation-settings: "xhgt" 0.7;
-
-Valeurs
-
-
-
-
-normal<string> <number>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@font-face {
- font-family: 'OpenTypeFont';
- src: url('open_type_font.woff2') format('woff2');
- font-weight: normal;
- font-style: normal;
- font-variation-settings: 'wght' 400, 'wdth' 300;
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Fonts', '#font-rend-desc', 'font-variation-settings')}}
- {{Spec2('CSS4 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-font-variation-settings, associé à la règle @ {{cssxref("@font-face")}} permet d'indiquer les variations de police de bas niveau pour les polices OpenType ou TrueType.Syntaxe
+
+/* On utilise les paramètres par défaut */
+font-variation-settings: normal;
+
+/* On indique les valeurs pour les noms des axes OpenType */
+font-variation-settings: "xhgt" 0.7;
+
+Valeurs
+
+
+
+
+normal<string> <number>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@font-face {
+ font-family: 'OpenTypeFont';
+ src: url('open_type_font.woff2') format('woff2');
+ font-weight: normal;
+ font-style: normal;
+ font-variation-settings: 'wght' 400, 'wdth' 300;
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Fonts', '#font-rend-desc', 'font-variation-settings')}}
+ {{Spec2('CSS4 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+font-weight permet aux auteurs d'indiquer les graisses pour les polices fournies dans une règle {{cssxref("@font-face")}}. La propriété font-weight peut être utilisée séparément pour indiquer la graisse des caractères d'un texte (c'est-à-dire s'ils sont en gras, normaux ou plus fins).font-weight afin de définir explicitement le niveau de graisse. La valeur utilisée pour le descripteur est la même que celle qui peut être utilisée pour la propriété.Syntaxe
-
-/* Valeurs simples */
-font-weight: normal;
-font-weight: bold;
-font-weight: 400;
-
-/* Valeurs multiples */
-font-weight: normal bold;
-font-weight: 300 500;
-
-
-Valeurs
-
-
-
-
-normal400).bold700).<number>font-weight n'acceptait que les mots-clés et les valeurs numériques 100, 200, 300, 400, 500, 600, 700, 800 et 900. Les polices qui ne sont pas variables pourront n'utiliser que ces valeurs (les valeurs intermédiaires, ex. 451) seront ramenées à la valeur palier la plus proche.Correspondance entre les noms et les valeurs numériques
-
-100 et 900 correspondent (approximativement) à ces noms communément utilisés :
-
-
-
-
-
-
-
- Valeur
- Nom commun
-
-
- 100
- Thin (Hairline)
-
-
- 200
- Extra Light (Ultra Light)
-
-
- 300
- Light
-
-
- 400
- Normal
-
-
- 500
- Medium
-
-
- 600
- Semi Bold (Demi Bold)
-
-
- 700
- Bold
-
-
- 800
- Extra Bold (Ultra Bold)
-
-
-
-900
- Black (Heavy)
- Polices variables
-
-"wght" qui est utilisé afin d'implémenter ces largeurs variables.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@font-face {
- font-family: "Open Sans";
- src: local("Open Sans") format("woff2"),
- url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
- font-weight: 400;
-}
-
-Accessibilité
-
-font-weight qui vaut 100 ou 200, notamment si le contraste entre le texte et l'arrière-plan est faible.
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Fonts', '#font-prop-desc', 'font-weight')}}
- {{Spec2('CSS4 Fonts')}}
-
-
-
-
-{{SpecName('CSS3 Fonts', '#font-prop-desc', 'font-weight')}}
- {{Spec2('CSS3 Fonts')}}
-
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-face/font-weight/index.md b/files/fr/web/css/@font-face/font-weight/index.md
new file mode 100644
index 0000000000..9b6c5fb851
--- /dev/null
+++ b/files/fr/web/css/@font-face/font-weight/index.md
@@ -0,0 +1,170 @@
+---
+title: font-weight
+slug: Web/CSS/@font-face/font-weight
+tags:
+ - '@font-face'
+ - CSS
+ - Descripteur
+ - Reference
+translation_of: Web/CSS/@font-face/font-weight
+---
+font-weightfont-weight permet aux auteurs d'indiquer les graisses pour les polices fournies dans une règle {{cssxref("@font-face")}}. La propriété font-weight peut être utilisée séparément pour indiquer la graisse des caractères d'un texte (c'est-à-dire s'ils sont en gras, normaux ou plus fins).font-weight afin de définir explicitement le niveau de graisse. La valeur utilisée pour le descripteur est la même que celle qui peut être utilisée pour la propriété.Syntaxe
+
+/* Valeurs simples */
+font-weight: normal;
+font-weight: bold;
+font-weight: 400;
+
+/* Valeurs multiples */
+font-weight: normal bold;
+font-weight: 300 500;
+
+
+Valeurs
+
+
+
+
+normal400).bold700).<number>font-weight n'acceptait que les mots-clés et les valeurs numériques 100, 200, 300, 400, 500, 600, 700, 800 et 900. Les polices qui ne sont pas variables pourront n'utiliser que ces valeurs (les valeurs intermédiaires, ex. 451) seront ramenées à la valeur palier la plus proche.Correspondance entre les noms et les valeurs numériques
+
+100 et 900 correspondent (approximativement) à ces noms communément utilisés :
+
+
+
+
+
+
+
+ Valeur
+ Nom commun
+
+
+ 100
+ Thin (Hairline)
+
+
+ 200
+ Extra Light (Ultra Light)
+
+
+ 300
+ Light
+
+
+ 400
+ Normal
+
+
+ 500
+ Medium
+
+
+ 600
+ Semi Bold (Demi Bold)
+
+
+ 700
+ Bold
+
+
+ 800
+ Extra Bold (Ultra Bold)
+
+
+
+900
+ Black (Heavy)
+ Polices variables
+
+"wght" qui est utilisé afin d'implémenter ces largeurs variables.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@font-face {
+ font-family: "Open Sans";
+ src: local("Open Sans") format("woff2"),
+ url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
+ font-weight: 400;
+}
+
+Accessibilité
+
+font-weight qui vaut 100 ou 200, notamment si le contraste entre le texte et l'arrière-plan est faible.
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Fonts', '#font-prop-desc', 'font-weight')}}
+ {{Spec2('CSS4 Fonts')}}
+
+
+
+
+{{SpecName('CSS3 Fonts', '#font-prop-desc', 'font-weight')}}
+ {{Spec2('CSS3 Fonts')}}
+
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/index.html b/files/fr/web/css/@font-face/index.html
deleted file mode 100644
index f8dfeee254..0000000000
--- a/files/fr/web/css/@font-face/index.html
+++ /dev/null
@@ -1,188 +0,0 @@
----
-title: '@font-face'
-slug: Web/CSS/@font-face
-tags:
- - CSS
- - Reference
- - Règle @
-translation_of: Web/CSS/@font-face
----
-font-weight@font-face permet de définir les polices d'écriture à utiliser pour afficher le texte de pages web. Cette police peut être chargée depuis un serveur distant ou depuis l'ordinateur de l'utilisateur. Si la fonction local() est utilisée, elle indique à l'agent utilisateur de prendre en compte une police présente sur le poste de l'utilisateur.url() et local() afin de pouvoir utiliser une police locale si elle est disponible ou d'en télécharger une autre au cas où.@font-face peut être utilisée au niveau global d'une feuille de style et également au sein d'un groupe lié à une règle @ conditionnelle.@font-face {
- font-family: "Open Sans";
- src: url("/fonts/OpenSans-Regular-webfont.woff2") format("woff2"),
- url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
-}
-
-Syntaxe
-
-Descripteurs
-
-
-
-
-font-stretch: 50% 200%;.font-style: oblique 20deg 50deg;.font-weight: 100 400;.format() qui contient le type comme argument :src: url(ideal-sans-serif.woff) format("woff"),
- url(basic-sans-serif.ttf) format("truetype");
-
- "woff", "woff2", "truetype", "opentype", "embedded-opentype" et "svg".@font-face s'applique.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Police distante
-
-CSS
-
-@font-face {
- font-family: "Bitstream Vera Serif Bold";
- src: url("/static/styles/libs/font-awesome/fonts/fontawesome-webfont.fdf491ce5ff5.woff");
-}
-
-body {
- font-family: "Bitstream Vera Serif Bold", serif;
-}
-
-HTML
-
-<p> Et voici Bitstream Vera Serif Bold.</p>
-
-
-Résultat
-
-Police locale
-
-CSS
-
-@font-face {
- font-family: MaHelvetica;
- src: local("Helvetica Neue Bold"),
- local("HelveticaNeue-Bold"),
- url(MgOpenModernaBold.ttf);
- font-weight: bold;
-}
-
-HTML
-
-<p> Et voici Ma Helvetica.</p>
-
-
-Résultat
-
-Types MIME associés aux polices
-
-
-
-
-font/ttffont/otffont/wofffont/woff2Notes
-
-
-
-
-@font-face ne peut pas être déclaré au sein d'un sélecteur CSS. Ainsi l'exemple suivant ne fonctionnera pas :
- .nomClasse {
- @font-face {
- font-family: MyHelvetica;
- src: local("Helvetica Neue Bold"),
- local("HelveticaNeue-Bold"),
- url(MgOpenModernaBold.ttf;
- font-weight: bold;
- }
-}
- Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('WOFF2.0', '', 'WOFF2 font format')}}
- {{Spec2('WOFF2.0')}}
- Spécification du format de police avec un nouvel algorithme de compression.
-
-
- {{SpecName('WOFF1.0', '', 'WOFF font format')}}
- {{Spec2('WOFF1.0')}}
- Spécification du format de police.
-
-
-
-{{SpecName('CSS3 Fonts', '#font-face-rule', '@font-face')}}
- {{Spec2('CSS3 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-face/index.md b/files/fr/web/css/@font-face/index.md
new file mode 100644
index 0000000000..f8dfeee254
--- /dev/null
+++ b/files/fr/web/css/@font-face/index.md
@@ -0,0 +1,188 @@
+---
+title: '@font-face'
+slug: Web/CSS/@font-face
+tags:
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@font-face
+---
+@font-face par Everythingfonts @font-face (en anglais, sur hacks.mozilla.org)@font-face permet de définir les polices d'écriture à utiliser pour afficher le texte de pages web. Cette police peut être chargée depuis un serveur distant ou depuis l'ordinateur de l'utilisateur. Si la fonction local() est utilisée, elle indique à l'agent utilisateur de prendre en compte une police présente sur le poste de l'utilisateur.url() et local() afin de pouvoir utiliser une police locale si elle est disponible ou d'en télécharger une autre au cas où.@font-face peut être utilisée au niveau global d'une feuille de style et également au sein d'un groupe lié à une règle @ conditionnelle.@font-face {
+ font-family: "Open Sans";
+ src: url("/fonts/OpenSans-Regular-webfont.woff2") format("woff2"),
+ url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
+}
+
+Syntaxe
+
+Descripteurs
+
+
+
+
+font-stretch: 50% 200%;.font-style: oblique 20deg 50deg;.font-weight: 100 400;.format() qui contient le type comme argument :src: url(ideal-sans-serif.woff) format("woff"),
+ url(basic-sans-serif.ttf) format("truetype");
+
+ "woff", "woff2", "truetype", "opentype", "embedded-opentype" et "svg".@font-face s'applique.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Police distante
+
+CSS
+
+@font-face {
+ font-family: "Bitstream Vera Serif Bold";
+ src: url("/static/styles/libs/font-awesome/fonts/fontawesome-webfont.fdf491ce5ff5.woff");
+}
+
+body {
+ font-family: "Bitstream Vera Serif Bold", serif;
+}
+
+HTML
+
+<p> Et voici Bitstream Vera Serif Bold.</p>
+
+
+Résultat
+
+Police locale
+
+CSS
+
+@font-face {
+ font-family: MaHelvetica;
+ src: local("Helvetica Neue Bold"),
+ local("HelveticaNeue-Bold"),
+ url(MgOpenModernaBold.ttf);
+ font-weight: bold;
+}
+
+HTML
+
+<p> Et voici Ma Helvetica.</p>
+
+
+Résultat
+
+Types MIME associés aux polices
+
+
+
+
+font/ttffont/otffont/wofffont/woff2Notes
+
+
+
+
+@font-face ne peut pas être déclaré au sein d'un sélecteur CSS. Ainsi l'exemple suivant ne fonctionnera pas :
+ .nomClasse {
+ @font-face {
+ font-family: MyHelvetica;
+ src: local("Helvetica Neue Bold"),
+ local("HelveticaNeue-Bold"),
+ url(MgOpenModernaBold.ttf;
+ font-weight: bold;
+ }
+}
+ Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('WOFF2.0', '', 'WOFF2 font format')}}
+ {{Spec2('WOFF2.0')}}
+ Spécification du format de police avec un nouvel algorithme de compression.
+
+
+ {{SpecName('WOFF1.0', '', 'WOFF font format')}}
+ {{Spec2('WOFF1.0')}}
+ Spécification du format de police.
+
+
+
+{{SpecName('CSS3 Fonts', '#font-face-rule', '@font-face')}}
+ {{Spec2('CSS3 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/line-gap-override/index.html b/files/fr/web/css/@font-face/line-gap-override/index.html
deleted file mode 100644
index 3c70e24a29..0000000000
--- a/files/fr/web/css/@font-face/line-gap-override/index.html
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: line-gap-override
-slug: Web/CSS/@font-face/line-gap-override
-browser-compat: css.at-rules.font-face.line-gap-override
-translation_of: 'Web/CSS/@font-face/line-gap-override'
----
-@font-face par Everythingfonts @font-face (en anglais, sur hacks.mozilla.org)line-gap-override définit la mesure de l'écart de lignes de la police. La mesure de l'écart de lignes peut être l'écart recommandé par la police ou encore un écart externe.Syntaxe
-
-line-gap-override: normal;
-line-gap-override: 90%;
-
-Valeurs
-
-
-
-
-normal<percentage>Définition formelle
-
-Syntaxe formelle
-
-Exemples
-
-Surcharge de la mesure d'une police de recours
-
-line-gap-override peut aider à la surcharge des mesures d'une police de secours pour qu'elles correspondent mieux à celles de la police principale.@font-face {
- font-family: web-font;
- src: url("https://example.com/font.woff");
-}
-
-@font-face {
- font-family: local-font;
- src: local(Local Font);
- line-gap-override: 125%;
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-face/line-gap-override/index.md b/files/fr/web/css/@font-face/line-gap-override/index.md
new file mode 100644
index 0000000000..3c70e24a29
--- /dev/null
+++ b/files/fr/web/css/@font-face/line-gap-override/index.md
@@ -0,0 +1,74 @@
+---
+title: line-gap-override
+slug: Web/CSS/@font-face/line-gap-override
+browser-compat: css.at-rules.font-face.line-gap-override
+translation_of: 'Web/CSS/@font-face/line-gap-override'
+---
+line-gap-override définit la mesure de l'écart de lignes de la police. La mesure de l'écart de lignes peut être l'écart recommandé par la police ou encore un écart externe.Syntaxe
+
+line-gap-override: normal;
+line-gap-override: 90%;
+
+Valeurs
+
+
+
+
+normal<percentage>Définition formelle
+
+Syntaxe formelle
+
+Exemples
+
+Surcharge de la mesure d'une police de recours
+
+line-gap-override peut aider à la surcharge des mesures d'une police de secours pour qu'elles correspondent mieux à celles de la police principale.@font-face {
+ font-family: web-font;
+ src: url("https://example.com/font.woff");
+}
+
+@font-face {
+ font-family: local-font;
+ src: local(Local Font);
+ line-gap-override: 125%;
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/size-adjust/index.html b/files/fr/web/css/@font-face/size-adjust/index.html
deleted file mode 100644
index d56be8dda9..0000000000
--- a/files/fr/web/css/@font-face/size-adjust/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: size-adjust
-slug: Web/CSS/@font-face/size-adjust
-browser-compat: css.at-rules.font-face.size-adjust
-translation_of: 'Web/CSS/@font-face/size-adjust'
----
-size-adjust CSS définit un multiplicateur destiné aux contours des glyphes et aux mesures associées à la police. Cela facilite l'harmonisation de l'apparence des polices lorsqu'elles sont rendues avec la même taille.size-adjust se comporte d'une manière similaire à la propriété {{cssxref("font-size-adjust")}}. Il calcule l'ajustement à effectuer par police en faisant la correspondance avec leurs hauteurs respectives.Syntaxe
-
-size-adjust: 90%;
-
-Valeurs
-
-
-
-
-<percentage>Définition formelle
-
-Syntaxe formelle
-
-Exemples
-
-Surcharge de la mesure d'une police de recours
-
-size-adjust peut aider à la surcharge des mesures d'une police de secours pour qu'elles correspondent mieux à celles de la police principale.@font-face {
- font-family: web-font;
- src: url("https://example.com/font.woff");
-}
-
-@font-face {
- font-family: local-font;
- src: local(Local Font);
- size-adjust: 90%;
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-face/size-adjust/index.md b/files/fr/web/css/@font-face/size-adjust/index.md
new file mode 100644
index 0000000000..d56be8dda9
--- /dev/null
+++ b/files/fr/web/css/@font-face/size-adjust/index.md
@@ -0,0 +1,72 @@
+---
+title: size-adjust
+slug: Web/CSS/@font-face/size-adjust
+browser-compat: css.at-rules.font-face.size-adjust
+translation_of: 'Web/CSS/@font-face/size-adjust'
+---
+size-adjust CSS définit un multiplicateur destiné aux contours des glyphes et aux mesures associées à la police. Cela facilite l'harmonisation de l'apparence des polices lorsqu'elles sont rendues avec la même taille.size-adjust se comporte d'une manière similaire à la propriété {{cssxref("font-size-adjust")}}. Il calcule l'ajustement à effectuer par police en faisant la correspondance avec leurs hauteurs respectives.Syntaxe
+
+size-adjust: 90%;
+
+Valeurs
+
+
+
+
+<percentage>Définition formelle
+
+Syntaxe formelle
+
+Exemples
+
+Surcharge de la mesure d'une police de recours
+
+size-adjust peut aider à la surcharge des mesures d'une police de secours pour qu'elles correspondent mieux à celles de la police principale.@font-face {
+ font-family: web-font;
+ src: url("https://example.com/font.woff");
+}
+
+@font-face {
+ font-family: local-font;
+ src: local(Local Font);
+ size-adjust: 90%;
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@font-face/src/index.html b/files/fr/web/css/@font-face/src/index.html
deleted file mode 100644
index 0670afaf67..0000000000
--- a/files/fr/web/css/@font-face/src/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: src
-slug: Web/CSS/@font-face/src
-tags:
- - CSS
- - Descripteur
- - Reference
-translation_of: Web/CSS/@font-face/src
----
-src, associé à la règle @ {{cssxref("@font-face")}}, permet de définir la ressource qui contient les données relatives à une police de caractères. Ce descripteur est obligatoire afin que la règle @font-face soit considérée comme valide.@font-face. Pour les polices SVG, l'URL pointe vers un élément du document qui contient les définitions SVG de la police. Si l'élément de référence est absent, une référence implicite sera construite avec la première police définie. De même, pour les formats contenant plusieurs polices, seule une police est chargée pour une règle @font-face donnée. Les identifiants de fragment de l'URL peuvent être utilisés pour indiquer la police à charger. Si le format conteneur ne possède pas de schéma d'identification des fragments, ce sera un schéma simple d'indexation (ex. "font-collection#1" pour la première police, "font-collection#2" pour la seconde, etc.) qui sera utilisé.Syntaxe
-
-/* <url> */
-src: url(https://unsiteweb.com/chemin/vers/police.woff); /* URL absolue */
-src: url(chemin/vers/police.woff); /* URL relative */
-src: url(chemin/vers/police.woff) format("woff"); /* format explicite */
-src: url('chemin/vers/police.woff'); /* URL entre quotes */
-src: url(chemin/vers/policesvg.svg#exemple); /* fragment identifiant une police */
-
-/* Valeurs de type <font-face-name> */
-src: local(police); /* nom sans double quote */
-src: local(une police); /* nom avec espace */
-src: local("police"); /* nom entre double quotes */
-
-/* Liste avec plusieurs éléments */
-src: local(police), url(chemin/vers/police.svg) format("svg"),
- url(chemin/vers/police.woff) format("woff"),
- url(chemin/vers/police.otf) format("opentype");
-
-
-Valeurs
-
-
-
-
-<url> [ format( <string># ) ]?<font-face-name>local() qui permet d'identifier une police de caractères au sein d'une famille de polices. Le nom de la police peut être entre double quotes.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@font-face {
- font-family: policeexemple;
- src: local(Police Exemple), url('policeexemple.woff') format("woff"),
- url('policeexemple.otf') format("opentype");
-}
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Fonts', '#src-desc', 'src')}}
- {{Spec2('CSS3 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-src, associé à la règle @ {{cssxref("@font-face")}}, permet de définir la ressource qui contient les données relatives à une police de caractères. Ce descripteur est obligatoire afin que la règle @font-face soit considérée comme valide.@font-face. Pour les polices SVG, l'URL pointe vers un élément du document qui contient les définitions SVG de la police. Si l'élément de référence est absent, une référence implicite sera construite avec la première police définie. De même, pour les formats contenant plusieurs polices, seule une police est chargée pour une règle @font-face donnée. Les identifiants de fragment de l'URL peuvent être utilisés pour indiquer la police à charger. Si le format conteneur ne possède pas de schéma d'identification des fragments, ce sera un schéma simple d'indexation (ex. "font-collection#1" pour la première police, "font-collection#2" pour la seconde, etc.) qui sera utilisé.Syntaxe
+
+/* <url> */
+src: url(https://unsiteweb.com/chemin/vers/police.woff); /* URL absolue */
+src: url(chemin/vers/police.woff); /* URL relative */
+src: url(chemin/vers/police.woff) format("woff"); /* format explicite */
+src: url('chemin/vers/police.woff'); /* URL entre quotes */
+src: url(chemin/vers/policesvg.svg#exemple); /* fragment identifiant une police */
+
+/* Valeurs de type <font-face-name> */
+src: local(police); /* nom sans double quote */
+src: local(une police); /* nom avec espace */
+src: local("police"); /* nom entre double quotes */
+
+/* Liste avec plusieurs éléments */
+src: local(police), url(chemin/vers/police.svg) format("svg"),
+ url(chemin/vers/police.woff) format("woff"),
+ url(chemin/vers/police.otf) format("opentype");
+
+
+Valeurs
+
+
+
+
+<url> [ format( <string># ) ]?<font-face-name>local() qui permet d'identifier une police de caractères au sein d'une famille de polices. Le nom de la police peut être entre double quotes.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@font-face {
+ font-family: policeexemple;
+ src: local(Police Exemple), url('policeexemple.woff') format("woff"),
+ url('policeexemple.otf') format("opentype");
+}
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Fonts', '#src-desc', 'src')}}
+ {{Spec2('CSS3 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+unicode-range, associé à la règle @ {{cssxref("@font-face")}}, définit l'intervalle de caractères qui peuvent être représentés par cette police pour la page. Si la page n'utilise aucun caractère de cet intervalle, la police n'est pas téléchargée. Si, au contraire, elle utilise au moins un caractère appartenant à cet intervalle, toute la police est téléchargée.Syntaxe
-
-/* Valeurs <unicode-range> */
-unicode-range: U+26; /* un seul point de code */
-unicode-range: U+0-7F;
-unicode-range: U+0025-00FF; /* un intervalle spécifique */
-unicode-range: U+4??; /* un intervalle de substitution */
-unicode-range: U+0025-00FF, U+4??; /* plusieurs valeurs */
-
-
-Valeurs
-
-<unicode-range> peut se présenter de trois façons différentes :
-
-
-
-
- U+26
-
- U+0025-00FF indique que l'intervalle contient tous les caractères contenus entre les points de code U+0025 et U+00FF?
-
-
- U+4?? signifie « tous les caractères contenus dans l'intervalle entre les points de code U+400 et U+4FF).Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@font-face {
- font-family: 'Ampersand';
- src: local('Times New Roman');
- unicode-range: U+26;
-}
-
-div {
- font-size: 4em;
- font-family: Ampersand, Helvetica, sans-serif;
-}
-
-HTML
-
-<div>Me & You = Us</div>
-
-Résultat de référence (image statique)
-
-
Résultat du navigateur
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Fonts', '#descdef-font-face-unicode-range', 'unicode-range')}}
- {{Spec2('CSS3 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-unicode-range, associé à la règle @ {{cssxref("@font-face")}}, définit l'intervalle de caractères qui peuvent être représentés par cette police pour la page. Si la page n'utilise aucun caractère de cet intervalle, la police n'est pas téléchargée. Si, au contraire, elle utilise au moins un caractère appartenant à cet intervalle, toute la police est téléchargée.Syntaxe
+
+/* Valeurs <unicode-range> */
+unicode-range: U+26; /* un seul point de code */
+unicode-range: U+0-7F;
+unicode-range: U+0025-00FF; /* un intervalle spécifique */
+unicode-range: U+4??; /* un intervalle de substitution */
+unicode-range: U+0025-00FF, U+4??; /* plusieurs valeurs */
+
+
+Valeurs
+
+<unicode-range> peut se présenter de trois façons différentes :
+
+
+
+
+ U+26
+
+ U+0025-00FF indique que l'intervalle contient tous les caractères contenus entre les points de code U+0025 et U+00FF?
+
+
+ U+4?? signifie « tous les caractères contenus dans l'intervalle entre les points de code U+400 et U+4FF).Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@font-face {
+ font-family: 'Ampersand';
+ src: local('Times New Roman');
+ unicode-range: U+26;
+}
+
+div {
+ font-size: 4em;
+ font-family: Ampersand, Helvetica, sans-serif;
+}
+
+HTML
+
+<div>Me & You = Us</div>
+
+Résultat de référence (image statique)
+
+
Résultat du navigateur
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Fonts', '#descdef-font-face-unicode-range', 'unicode-range')}}
+ {{Spec2('CSS3 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+@font-feature-values permet aux auteurs d'utiliser un nom personnalisé dans une règle utilisant la propriété {{cssxref("font-variant-alternates")}} afin de régler finement les caractéristiques OpenType. Elle permet de simplifier les feuilles de style lorsqu'on utilise plusieurs polices.@font-feature-values Font One {
-/* On active la caractéristique nice-style
- sur Font One */
- @styleset {
- nice-style: 12;
- }
-}
-
-@font-feature-values Font Two {
-/* On active la caractéristique nice-style
- sur Font Two */
- @styleset {
- nice-style: 4;
- }
-}
-
-…
-/* Indépendamment de la police */
-.nice-look {
- font-variant-alternates: styleset(nice-style);
-}
-
-
-@font-feature-values peut être utilisée au plus haut niveau d'une feuille de style et aussi au sein d'un groupe de règles conditionnelles.Syntaxe
-
-Blocs liés aux caractéristiques
-
-
-
-
-@swashident1: 2 est valide alors que ident2: 2 4 est invalide.@annotationident1: 2 est valide alors que ident2: 2 4 est invalide.@ornamentsident1: 2 est valide alors que ident2: 2 4 est invalide.@stylisticident1: 2 est valide alors que ident2: 2 4 est invalide.@stylesetident1: 2 4 12 1 correspondra aux valeurs OpenType ss02, ss04, ss12, ss01. Les valeurs supérieures à 99 sont valides mais ne correspondent à aucune valeur OpenType et sont donc ignorées.@character-variantident1: 2 correspond à cv02=1 et ident2: 2 4 correspond à cv02)4, en revanche ident2: 2 4 5 est invalide.Syntaxe formelle
-
-{{csssyntax}}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Fonts', '#font-feature-values', '@font-feature-values')}}
- {{Spec2('CSS3 Fonts')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@font-feature-values/index.md b/files/fr/web/css/@font-feature-values/index.md
new file mode 100644
index 0000000000..cf733cde7b
--- /dev/null
+++ b/files/fr/web/css/@font-feature-values/index.md
@@ -0,0 +1,89 @@
+---
+title: '@font-feature-values'
+slug: Web/CSS/@font-feature-values
+tags:
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@font-feature-values
+---
+@font-feature-values permet aux auteurs d'utiliser un nom personnalisé dans une règle utilisant la propriété {{cssxref("font-variant-alternates")}} afin de régler finement les caractéristiques OpenType. Elle permet de simplifier les feuilles de style lorsqu'on utilise plusieurs polices.@font-feature-values Font One {
+/* On active la caractéristique nice-style
+ sur Font One */
+ @styleset {
+ nice-style: 12;
+ }
+}
+
+@font-feature-values Font Two {
+/* On active la caractéristique nice-style
+ sur Font Two */
+ @styleset {
+ nice-style: 4;
+ }
+}
+
+…
+/* Indépendamment de la police */
+.nice-look {
+ font-variant-alternates: styleset(nice-style);
+}
+
+
+@font-feature-values peut être utilisée au plus haut niveau d'une feuille de style et aussi au sein d'un groupe de règles conditionnelles.Syntaxe
+
+Blocs liés aux caractéristiques
+
+
+
+
+@swashident1: 2 est valide alors que ident2: 2 4 est invalide.@annotationident1: 2 est valide alors que ident2: 2 4 est invalide.@ornamentsident1: 2 est valide alors que ident2: 2 4 est invalide.@stylisticident1: 2 est valide alors que ident2: 2 4 est invalide.@stylesetident1: 2 4 12 1 correspondra aux valeurs OpenType ss02, ss04, ss12, ss01. Les valeurs supérieures à 99 sont valides mais ne correspondent à aucune valeur OpenType et sont donc ignorées.@character-variantident1: 2 correspond à cv02=1 et ident2: 2 4 correspond à cv02)4, en revanche ident2: 2 4 5 est invalide.Syntaxe formelle
+
+{{csssyntax}}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Fonts', '#font-feature-values', '@font-feature-values')}}
+ {{Spec2('CSS3 Fonts')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@import/index.html b/files/fr/web/css/@import/index.html
deleted file mode 100644
index 41f8a5dd52..0000000000
--- a/files/fr/web/css/@import/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: '@import'
-slug: Web/CSS/@import
-tags:
- - CSS
- - Reference
- - Règle @
-translation_of: Web/CSS/@import
----
-@import est utilisée afin d'importer des règles à partir d'autres feuilles de style. Ces règles @ doivent être utilisées avant toutes les autres règles, à l'exception de {{cssxref("@charset")}}. @import n'est pas une instruction imbriquée et ne peut donc pas être utilisée à l'intérieur de groupe de règles conditionnelles.@import url("fineprint.css") print;
-@import url("bluish.css") speech;
-@import 'custom.css';
-@import url("chrome://communicator/skin/");
-@import "common.css" screen;
-@import url('landscape.css') screen and (orientation:landscape);
-
-
-@import spécifiques à chaque média. Ces imports conditionnels comportent une liste de requête média séparées par des virgules, situées après l'URL. Si aucune requête média n'est indiquée, l'import est inconditionnel. Cela aura le même effet que d'utiliser la requête média all.Syntaxe
-
-@import url;
-@import url liste-requetes-media;
-
-
-
-
-
-urlliste-requetes-mediaSyntaxe formelle
-
-{{csssyntax}}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Cascade', '#at-ruledef-import', '@import')}}
- {{Spec2('CSS3 Cascade')}}
-
-
-
- {{SpecName('CSS3 Media Queries', '#media0', '@import')}}
- {{Spec2('CSS3 Media Queries')}}
- Extension de la syntaxe afin de prendre en charge n'importe quelle requête média et pas uniquement celles sur les types de média.
-
-
- {{SpecName('CSS2.1', 'cascade.html#at-import', '@import')}}
- {{Spec2('CSS2.1')}}
- Prise en charge du type {{cssxref("<string>")}} pour indiquer l'URL d'une feuille de style. Il est désormais nécessaire d'insérer les règles
- @import au début du document CSS.
-
-
-{{SpecName('CSS1', '#the-cascade', '@import')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-@import est utilisée afin d'importer des règles à partir d'autres feuilles de style. Ces règles @ doivent être utilisées avant toutes les autres règles, à l'exception de {{cssxref("@charset")}}. @import n'est pas une instruction imbriquée et ne peut donc pas être utilisée à l'intérieur de groupe de règles conditionnelles.@import url("fineprint.css") print;
+@import url("bluish.css") speech;
+@import 'custom.css';
+@import url("chrome://communicator/skin/");
+@import "common.css" screen;
+@import url('landscape.css') screen and (orientation:landscape);
+
+
+@import spécifiques à chaque média. Ces imports conditionnels comportent une liste de requête média séparées par des virgules, situées après l'URL. Si aucune requête média n'est indiquée, l'import est inconditionnel. Cela aura le même effet que d'utiliser la requête média all.Syntaxe
+
+@import url;
+@import url liste-requetes-media;
+
+
+
+
+
+urlliste-requetes-mediaSyntaxe formelle
+
+{{csssyntax}}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Cascade', '#at-ruledef-import', '@import')}}
+ {{Spec2('CSS3 Cascade')}}
+
+
+
+ {{SpecName('CSS3 Media Queries', '#media0', '@import')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Extension de la syntaxe afin de prendre en charge n'importe quelle requête média et pas uniquement celles sur les types de média.
+
+
+ {{SpecName('CSS2.1', 'cascade.html#at-import', '@import')}}
+ {{Spec2('CSS2.1')}}
+ Prise en charge du type {{cssxref("<string>")}} pour indiquer l'URL d'une feuille de style. Il est désormais nécessaire d'insérer les règles
+ @import au début du document CSS.
+
+
+{{SpecName('CSS1', '#the-cascade', '@import')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+@keyframes permet aux auteurs de définir les étapes qui composent la séquence d'une animation CSS. Cela permet de contrôler une animation plus finement que ce qu'on pourrait obtenir avec les transitions.@keyframes slidein {
- from {
- margin-left: 100%;
- width: 300%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-@keyframes via JavaScript et le CSSOM, notamment avec l'interface {{domxref("CSSKeyframesRule")}}.@keyframes avec un nom pour chaque étape et on utilisera ce nom avec la propriété {{cssxref("animation-name")}} afin qu'une animation corresponde à la liste des étapes qui la composent. Chaque règle @keyframes contient une liste de sélecteurs d'étapes dont chacun contient le pourcentage d'avancement de l'animation auquel il correspond ainsi que les informations de styles qui correspondent à cette étape..Validité de la liste des étapes
-
-0%/from) ou la fin (100%/to) d'une animation, le navigateur va utiliser les styles de l'élement définis par ailleurs. C'est assez pratique pour animer un élément depuis et vers son état initial.Résolution des doublons
-
-@keyframes existent avec le même nom, c'est la dernière qui est utilisée. Les règles @keyframes ne forment pas de cascade et il n'y a donc pas de dérivation entre les différentes règles qui porteraient le même nom.Gestion des propriétés absentes
-
-@keyframes identifier {
- 0% { top: 0; left: 0; }
- 30% { top: 50px; }
- 68%, 72% { left: 50px; }
- 100% { top: 100px; left: 100%; }
-}
-
-
-0%, 30% et 100%. Quant à {{cssxref("left")}}, elle est animée aux étapes 0%, 68% , 72% et 100%.0%) et de fin (100%) seront animées. Toutes les propriétés qui ne sont pas incluses dans les descriptions de ces étapes conserveront leurs valeurs de départ au cours de l'animation.
-
-!important dans une étape!important dans une description d'étape sont ignorées@keyframes important1 {
- from { margin-top: 50px; }
- 50% { margin-top: 150px !important; } /* ignorée */
- to { margin-top: 100px; }
-}
-
-@keyframes important2 {
- from { margin-top: 50px;
- margin-bottom: 100px; }
- to { margin-top: 150px !important; /* ignorée */
- margin-bottom: 50px; }
-}
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<identifier>from0%).to100%).Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- animation-duration: 25s;
- animation-name: slidein;
-}
-
-@keyframes slidein {
- from {
- margin-left: 100%;
- width: 300%;
- }
- 75% {
- font-size: 300%;
- margin-left: 25%;
- width: 150%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-HTML
-
-<p>
- Le Chat grimaça en apercevant Alice. Elle trouva qu’il
- avait l’air bon enfant, et cependant il avait de
- très longues griffes et une grande rangée de dents ;
- aussi comprit-elle qu’il fallait le traiter avec
- respect.
-</p>
-
-Résultat
-
-Plus d'exemples ?
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#keyframes', '@keyframes')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@keyframes/index.md b/files/fr/web/css/@keyframes/index.md
new file mode 100644
index 0000000000..9856d8f815
--- /dev/null
+++ b/files/fr/web/css/@keyframes/index.md
@@ -0,0 +1,169 @@
+---
+title: '@keyframes'
+slug: Web/CSS/@keyframes
+tags:
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@keyframes
+---
+@keyframes permet aux auteurs de définir les étapes qui composent la séquence d'une animation CSS. Cela permet de contrôler une animation plus finement que ce qu'on pourrait obtenir avec les transitions.@keyframes slidein {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+@keyframes via JavaScript et le CSSOM, notamment avec l'interface {{domxref("CSSKeyframesRule")}}.@keyframes avec un nom pour chaque étape et on utilisera ce nom avec la propriété {{cssxref("animation-name")}} afin qu'une animation corresponde à la liste des étapes qui la composent. Chaque règle @keyframes contient une liste de sélecteurs d'étapes dont chacun contient le pourcentage d'avancement de l'animation auquel il correspond ainsi que les informations de styles qui correspondent à cette étape..Validité de la liste des étapes
+
+0%/from) ou la fin (100%/to) d'une animation, le navigateur va utiliser les styles de l'élement définis par ailleurs. C'est assez pratique pour animer un élément depuis et vers son état initial.Résolution des doublons
+
+@keyframes existent avec le même nom, c'est la dernière qui est utilisée. Les règles @keyframes ne forment pas de cascade et il n'y a donc pas de dérivation entre les différentes règles qui porteraient le même nom.Gestion des propriétés absentes
+
+@keyframes identifier {
+ 0% { top: 0; left: 0; }
+ 30% { top: 50px; }
+ 68%, 72% { left: 50px; }
+ 100% { top: 100px; left: 100%; }
+}
+
+
+0%, 30% et 100%. Quant à {{cssxref("left")}}, elle est animée aux étapes 0%, 68% , 72% et 100%.0%) et de fin (100%) seront animées. Toutes les propriétés qui ne sont pas incluses dans les descriptions de ces étapes conserveront leurs valeurs de départ au cours de l'animation.
+
+!important dans une étape!important dans une description d'étape sont ignorées@keyframes important1 {
+ from { margin-top: 50px; }
+ 50% { margin-top: 150px !important; } /* ignorée */
+ to { margin-top: 100px; }
+}
+
+@keyframes important2 {
+ from { margin-top: 50px;
+ margin-bottom: 100px; }
+ to { margin-top: 150px !important; /* ignorée */
+ margin-bottom: 50px; }
+}
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<identifier>from0%).to100%).Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ animation-duration: 25s;
+ animation-name: slidein;
+}
+
+@keyframes slidein {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+ 75% {
+ font-size: 300%;
+ margin-left: 25%;
+ width: 150%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+HTML
+
+<p>
+ Le Chat grimaça en apercevant Alice. Elle trouva qu’il
+ avait l’air bon enfant, et cependant il avait de
+ très longues griffes et une grande rangée de dents ;
+ aussi comprit-elle qu’il fallait le traiter avec
+ respect.
+</p>
+
+Résultat
+
+Plus d'exemples ?
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#keyframes', '@keyframes')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/-moz-device-pixel-ratio/index.html b/files/fr/web/css/@media/-moz-device-pixel-ratio/index.html
deleted file mode 100644
index 10c33af0f5..0000000000
--- a/files/fr/web/css/@media/-moz-device-pixel-ratio/index.html
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: '-moz-device-pixel-ratio'
-slug: Web/CSS/@media/-moz-device-pixel-ratio
-tags:
- - '@media'
- - CSS
- - Caractéristique média
- - Déprécié
- - Non-standard
-translation_of: Web/CSS/@media/-moz-device-pixel-ratio
----
--moz-device-pixel-ratio, associée à @media, est une caractéristique propre à Gecko et peut être utilisée pour appliquer certains styles en fonctions du nombres de pixels physiques par pixel CSS.resolution et l'unité dppx permettent d'obtenir le même mécanisme.
-
- -moz-device-pixel-ratio peut être utilisée si besoin d'être compatible avec des versions de Firefox antérieures à la version 16 et -webkit-device-pixel-ratio peut être utilisée avec les navigateurs WebKit qui ne prennent pas en charge dppx. Par exemple :@media (-webkit-min-device-pixel-ratio: 2), /* Navigateurs basés sur Webkit */
- (min--moz-device-pixel-ratio: 2), /* Anciens Firefox (avant Firefox 16) */
- (min-resolution: 2dppx), /* La méthode standard */
- (min-resolution: 192dpi) /* Utilisée si dppx n'est pas gérée */
-
-resolution et dppx.-webkit-device-pixel-ratio. Les versions préfixées pour les seuils minimal / maximal sont intitulées min--moz-device-pixel-ratio et max--moz-device-pixel-ratio sous Gecko, tandis que sous Webkit, elles sont intitulées -webkit-min-device-pixel-ratio et -webkit-max-device-pixel-ratio.Syntaxe
-
-
-
-
-
- Média : {{cssxref("Media/Visual")}}
- Gestion des préfixes min/max : OuiCompatibilité des navigateurs
-
--moz-device-pixel-ratio, associée à @media, est une caractéristique propre à Gecko et peut être utilisée pour appliquer certains styles en fonctions du nombres de pixels physiques par pixel CSS.resolution et l'unité dppx permettent d'obtenir le même mécanisme.
+
+ -moz-device-pixel-ratio peut être utilisée si besoin d'être compatible avec des versions de Firefox antérieures à la version 16 et -webkit-device-pixel-ratio peut être utilisée avec les navigateurs WebKit qui ne prennent pas en charge dppx. Par exemple :@media (-webkit-min-device-pixel-ratio: 2), /* Navigateurs basés sur Webkit */
+ (min--moz-device-pixel-ratio: 2), /* Anciens Firefox (avant Firefox 16) */
+ (min-resolution: 2dppx), /* La méthode standard */
+ (min-resolution: 192dpi) /* Utilisée si dppx n'est pas gérée */
+
+resolution et dppx.-webkit-device-pixel-ratio. Les versions préfixées pour les seuils minimal / maximal sont intitulées min--moz-device-pixel-ratio et max--moz-device-pixel-ratio sous Gecko, tandis que sous Webkit, elles sont intitulées -webkit-min-device-pixel-ratio et -webkit-max-device-pixel-ratio.Syntaxe
+
+
+
+
+
+ Média : {{cssxref("Media/Visual")}}
+ Gestion des préfixes min/max : OuiCompatibilité des navigateurs
+
+-ms-high-contrast, relative à la règle @ @media, est une extension Microsoft qui décrit si l'application est affichée dans un mode de contraste élevé et, si c'est le cas, quelle est la variation de couleur affichée.min et max.Syntaxe
-
--ms-high-contrast est définie avec une des valeurs définies ci-après.Valeurs
-
-
-
-
-activenone{{deprecated_inline}}black-on-whitewhite-on-blackSyntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-@media screen and (-ms-high-contrast: active) {
- /* Règles utilisées dans tous les cas si
- le contraste élevé est utilisé */
-}
-@media screen and (-ms-high-contrast: black-on-white) {
- div { background-image: url('image-bw.png'); }
-}
-@media screen and (-ms-high-contrast: white-on-black) {
- div { background-image: url('image-wb.png'); }
-}
-
-
-Spécifications
-
-Notes
-
--ms-high-contrast: none n'est plus pris en charge.-ms-high-contrast fonctionne avec la propriété {{cssxref("-ms-high-contrast-adjust")}}.-ms-high-contrast a été introduite avec Windows 8.-ms-high-contrast, relative à la règle @ @media, est une extension Microsoft qui décrit si l'application est affichée dans un mode de contraste élevé et, si c'est le cas, quelle est la variation de couleur affichée.min et max.Syntaxe
+
+-ms-high-contrast est définie avec une des valeurs définies ci-après.Valeurs
+
+
+
+
+activenone{{deprecated_inline}}black-on-whitewhite-on-blackSyntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+@media screen and (-ms-high-contrast: active) {
+ /* Règles utilisées dans tous les cas si
+ le contraste élevé est utilisé */
+}
+@media screen and (-ms-high-contrast: black-on-white) {
+ div { background-image: url('image-bw.png'); }
+}
+@media screen and (-ms-high-contrast: white-on-black) {
+ div { background-image: url('image-wb.png'); }
+}
+
+
+Spécifications
+
+Notes
+
+-ms-high-contrast: none n'est plus pris en charge.-ms-high-contrast fonctionne avec la propriété {{cssxref("-ms-high-contrast-adjust")}}.-ms-high-contrast a été introduite avec Windows 8.-webkit-animation est une caractéristique média booléenne non-standard qui permet d'indiquer si les animationsCSS ({{cssxref("animation")}}) sont prises en charge dans leurs versions préfixées. Cette caractéristique est uniquement prise en charge par les navigateurs basés sur WebKit. L'alternative standard correspondante consiste à utiliser {{cssxref("@supports")}}.Exemples
-
-@media (-webkit-animation) {
- /* CSS à utiliser si les animations sont prises en charge */
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/-webkit-animation/index.md b/files/fr/web/css/@media/-webkit-animation/index.md
new file mode 100644
index 0000000000..e283f61a62
--- /dev/null
+++ b/files/fr/web/css/@media/-webkit-animation/index.md
@@ -0,0 +1,36 @@
+---
+title: '-webkit-animation'
+slug: Web/CSS/@media/-webkit-animation
+tags:
+ - CSS
+ - Caractéristique média
+ - Non-standard
+ - Reference
+translation_of: Web/CSS/@media/-webkit-animation
+---
+-webkit-animation est une caractéristique média booléenne non-standard qui permet d'indiquer si les animationsCSS ({{cssxref("animation")}}) sont prises en charge dans leurs versions préfixées. Cette caractéristique est uniquement prise en charge par les navigateurs basés sur WebKit. L'alternative standard correspondante consiste à utiliser {{cssxref("@supports")}}.Exemples
+
+@media (-webkit-animation) {
+ /* CSS à utiliser si les animations sont prises en charge */
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/-webkit-device-pixel-ratio/index.html b/files/fr/web/css/@media/-webkit-device-pixel-ratio/index.html
deleted file mode 100644
index 3d96ba5464..0000000000
--- a/files/fr/web/css/@media/-webkit-device-pixel-ratio/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
----
-title: '-webkit-device-pixel-ratio'
-slug: Web/CSS/@media/-webkit-device-pixel-ratio
-tags:
- - CSS
- - Caractéristique média
- - Non-standard
- - Reference
-translation_of: Web/CSS/@media/-webkit-device-pixel-ratio
----
--webkit-device-pixel-ratio est une caractéristique média non-standard, alternative à la caractéristique média standard {{cssxref("@media/resolution","resolution")}}.px). Bien que la valeur soit de type {{cssxref("<number>")}}, sans unité donc, l'unité implicite est dppx.Syntaxe
-
--webkit-device-pixel-ratio est une valleur décrivant un intervalle. On peut également utiliser -webkit-min-device-pixel-ratio et -webkit-max-device-pixel-ratio pour fixer un seuil minimum/maximum.Valeurs
-
-
-
-
-px) CSS. Bien que la valeur soit un nombre et ne permette pas d'utiliser des unités, l'unité implicite est dppx.Implémentation
-
-/* Unité dppx implicite */
-@media (-webkit-min-device-pixel-ratio: 2) { ... }
-/* équivalent à */
-@media (min-resolution: 2dppx) { ... }
-
-/* De même */
-@media (-webkit-max-device-pixel-ratio: 2) { ... }
-/* équivalent à */
-@media (max-resolution: 2dppx) { ... }
-
-
-Exemples
-
-CSS
-
-/* Résolution exacte */
-@media (-webkit-device-pixel-ratio: 1) {
- p {
- color: red;
- }
-}
-
-/* Résolution minimale */
-@media (-webkit-min-device-pixel-ratio: 1.1) {
- p {
- font-size: 1.5em;
- }
-}
-
-/* Résolution maximale */
-@media (-webkit-max-device-pixel-ratio: 3) {
- p {
- background: yellow;
- }
-}
-
-HTML
-
-<p>Voici un test pour la densité de pixel de votre appareil.</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('Compat', '#css-media-queries-webkit-device-pixel-ratio', '-webkit-device-pixel-ratio')}}
- {{Spec2('Compat')}}
- Définition initiale dans un standard.
-
-
-
-Safari CSS Reference 'media query extensions'.
- Documentation non-officielle, non-standard.
- Documentation initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/-webkit-device-pixel-ratio/index.md b/files/fr/web/css/@media/-webkit-device-pixel-ratio/index.md
new file mode 100644
index 0000000000..3d96ba5464
--- /dev/null
+++ b/files/fr/web/css/@media/-webkit-device-pixel-ratio/index.md
@@ -0,0 +1,116 @@
+---
+title: '-webkit-device-pixel-ratio'
+slug: Web/CSS/@media/-webkit-device-pixel-ratio
+tags:
+ - CSS
+ - Caractéristique média
+ - Non-standard
+ - Reference
+translation_of: Web/CSS/@media/-webkit-device-pixel-ratio
+---
+-webkit-device-pixel-ratio est une caractéristique média non-standard, alternative à la caractéristique média standard {{cssxref("@media/resolution","resolution")}}.px). Bien que la valeur soit de type {{cssxref("<number>")}}, sans unité donc, l'unité implicite est dppx.Syntaxe
+
+-webkit-device-pixel-ratio est une valleur décrivant un intervalle. On peut également utiliser -webkit-min-device-pixel-ratio et -webkit-max-device-pixel-ratio pour fixer un seuil minimum/maximum.Valeurs
+
+
+
+
+px) CSS. Bien que la valeur soit un nombre et ne permette pas d'utiliser des unités, l'unité implicite est dppx.Implémentation
+
+/* Unité dppx implicite */
+@media (-webkit-min-device-pixel-ratio: 2) { ... }
+/* équivalent à */
+@media (min-resolution: 2dppx) { ... }
+
+/* De même */
+@media (-webkit-max-device-pixel-ratio: 2) { ... }
+/* équivalent à */
+@media (max-resolution: 2dppx) { ... }
+
+
+Exemples
+
+CSS
+
+/* Résolution exacte */
+@media (-webkit-device-pixel-ratio: 1) {
+ p {
+ color: red;
+ }
+}
+
+/* Résolution minimale */
+@media (-webkit-min-device-pixel-ratio: 1.1) {
+ p {
+ font-size: 1.5em;
+ }
+}
+
+/* Résolution maximale */
+@media (-webkit-max-device-pixel-ratio: 3) {
+ p {
+ background: yellow;
+ }
+}
+
+HTML
+
+<p>Voici un test pour la densité de pixel de votre appareil.</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('Compat', '#css-media-queries-webkit-device-pixel-ratio', '-webkit-device-pixel-ratio')}}
+ {{Spec2('Compat')}}
+ Définition initiale dans un standard.
+
+
+
+Safari CSS Reference 'media query extensions'.
+ Documentation non-officielle, non-standard.
+ Documentation initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/-webkit-transform-2d/index.html b/files/fr/web/css/@media/-webkit-transform-2d/index.html
deleted file mode 100644
index 94ab2e5e51..0000000000
--- a/files/fr/web/css/@media/-webkit-transform-2d/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: '-webkit-transform-2d'
-slug: Web/CSS/@media/-webkit-transform-2d
-tags:
- - CSS
- - Caractéristique média
- - Non-standard
- - Reference
-translation_of: Web/CSS/@media/-webkit-transform-2d
----
--webkit-transform-2d est une caractéristique média booléenne non-standard qui indique si les transformations CSS en 2D (cf. {{cssxref("transform")}}) préfixées sont prises en charge par le navigateur.Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/-webkit-transform-2d/index.md b/files/fr/web/css/@media/-webkit-transform-2d/index.md
new file mode 100644
index 0000000000..94ab2e5e51
--- /dev/null
+++ b/files/fr/web/css/@media/-webkit-transform-2d/index.md
@@ -0,0 +1,34 @@
+---
+title: '-webkit-transform-2d'
+slug: Web/CSS/@media/-webkit-transform-2d
+tags:
+ - CSS
+ - Caractéristique média
+ - Non-standard
+ - Reference
+translation_of: Web/CSS/@media/-webkit-transform-2d
+---
+-webkit-transform-2d est une caractéristique média booléenne non-standard qui indique si les transformations CSS en 2D (cf. {{cssxref("transform")}}) préfixées sont prises en charge par le navigateur.Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/-webkit-transform-3d/index.html b/files/fr/web/css/@media/-webkit-transform-3d/index.html
deleted file mode 100644
index 887649670d..0000000000
--- a/files/fr/web/css/@media/-webkit-transform-3d/index.html
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: '-webkit-transform-3d'
-slug: Web/CSS/@media/-webkit-transform-3d
-tags:
- - CSS
- - Caractéristique média
- - Non-standard
- - Reference
-translation_of: Web/CSS/@media/-webkit-transform-3d
----
--webkit-transform-3d est une caractéristique média booléenne non-standard qui indique si les transformations CSS en 3D (cf. {{cssxref("transform")}}) préfixées sont prises en charge par le navigateur.Exmple
-
-@media (-webkit-transform-3d) {
- .toto {
- transform-style: preserve-3d;
- }
-}
-
-@media (-webkit-transform-3d: 1) {
- .toto {
- transform-style: preserve-3d;
- }
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('Compat', '#css-media-queries-webkit-transform-3d', '-webkit-transform-3d')}}
- {{Spec2('Compat')}}
- Définition initiale dans un standard.
-
-
-
-Safari CSS Reference media query extensions in that document.
- Documentation non-officielle, non-standard.
- Documentation initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/-webkit-transform-3d/index.md b/files/fr/web/css/@media/-webkit-transform-3d/index.md
new file mode 100644
index 0000000000..887649670d
--- /dev/null
+++ b/files/fr/web/css/@media/-webkit-transform-3d/index.md
@@ -0,0 +1,68 @@
+---
+title: '-webkit-transform-3d'
+slug: Web/CSS/@media/-webkit-transform-3d
+tags:
+ - CSS
+ - Caractéristique média
+ - Non-standard
+ - Reference
+translation_of: Web/CSS/@media/-webkit-transform-3d
+---
+-webkit-transform-3d est une caractéristique média booléenne non-standard qui indique si les transformations CSS en 3D (cf. {{cssxref("transform")}}) préfixées sont prises en charge par le navigateur.Exmple
+
+@media (-webkit-transform-3d) {
+ .toto {
+ transform-style: preserve-3d;
+ }
+}
+
+@media (-webkit-transform-3d: 1) {
+ .toto {
+ transform-style: preserve-3d;
+ }
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('Compat', '#css-media-queries-webkit-transform-3d', '-webkit-transform-3d')}}
+ {{Spec2('Compat')}}
+ Définition initiale dans un standard.
+
+
+
+Safari CSS Reference media query extensions in that document.
+ Documentation non-officielle, non-standard.
+ Documentation initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/-webkit-transition/index.html b/files/fr/web/css/@media/-webkit-transition/index.html
deleted file mode 100644
index 4a408bf765..0000000000
--- a/files/fr/web/css/@media/-webkit-transition/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: '-webkit-transition'
-slug: Web/CSS/@media/-webkit-transition
-tags:
- - CSS
- - Caractéristique média
- - Non-standard
- - Obsolete
- - Reference
-translation_of: Web/CSS/@media/-webkit-transition
----
--webkit-transition est une caractéristique média booléenne non-standard qui permet d'indiquer si les transitions CSS ({{cssxref("transition")}}) sont prises en charge dans leurs versions préfixées.Privilégier
-
-@supports-webkit-transition. En lieu et place, on utilisera la règle @ {{cssxref("@supports")}} :@supports(transition: initial) {
- /* Les règles CSS à utiliser si */
- /* les transitions sont prises en */
- /* charge. */
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/-webkit-transition/index.md b/files/fr/web/css/@media/-webkit-transition/index.md
new file mode 100644
index 0000000000..4a408bf765
--- /dev/null
+++ b/files/fr/web/css/@media/-webkit-transition/index.md
@@ -0,0 +1,49 @@
+---
+title: '-webkit-transition'
+slug: Web/CSS/@media/-webkit-transition
+tags:
+ - CSS
+ - Caractéristique média
+ - Non-standard
+ - Obsolete
+ - Reference
+translation_of: Web/CSS/@media/-webkit-transition
+---
+-webkit-transition est une caractéristique média booléenne non-standard qui permet d'indiquer si les transitions CSS ({{cssxref("transition")}}) sont prises en charge dans leurs versions préfixées.Privilégier
+
+@supports-webkit-transition. En lieu et place, on utilisera la règle @ {{cssxref("@supports")}} :@supports(transition: initial) {
+ /* Les règles CSS à utiliser si */
+ /* les transitions sont prises en */
+ /* charge. */
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/any-hover/index.html b/files/fr/web/css/@media/any-hover/index.html
deleted file mode 100644
index 27509c77c4..0000000000
--- a/files/fr/web/css/@media/any-hover/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: any-hover
-slug: Web/CSS/@media/any-hover
-tags:
- - CSS
- - Caractéristique média
- - Reference
-translation_of: Web/CSS/@media/any-hover
----
-any-hover est une caractéristique média CSS qui permet de vérifier si un mécanisme de saisie/d'entrée permet à l'utilisateur de survoler les éléments.Syntaxe
-
-any-hover est définie avec un mot-clé parmi ceux de la liste ci-après.
-
-
-nonehoverExemples
-
-HTML
-
-<a href="#">Essayez de me survoler !</a>
-
-CSS
-
-@media (any-hover: hover) {
- a:hover {
- background: yellow;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#descdef-media-any-hover', 'any-hover')}}
- {{Spec2('CSS4 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/@media/any-hover/index.md b/files/fr/web/css/@media/any-hover/index.md
new file mode 100644
index 0000000000..27509c77c4
--- /dev/null
+++ b/files/fr/web/css/@media/any-hover/index.md
@@ -0,0 +1,70 @@
+---
+title: any-hover
+slug: Web/CSS/@media/any-hover
+tags:
+ - CSS
+ - Caractéristique média
+ - Reference
+translation_of: Web/CSS/@media/any-hover
+---
+any-hover est une caractéristique média CSS qui permet de vérifier si un mécanisme de saisie/d'entrée permet à l'utilisateur de survoler les éléments.Syntaxe
+
+any-hover est définie avec un mot-clé parmi ceux de la liste ci-après.
+
+
+nonehoverExemples
+
+HTML
+
+<a href="#">Essayez de me survoler !</a>
+
+CSS
+
+@media (any-hover: hover) {
+ a:hover {
+ background: yellow;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#descdef-media-any-hover', 'any-hover')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/@media/any-pointer/index.html b/files/fr/web/css/@media/any-pointer/index.html
deleted file mode 100644
index a2ef25ec7c..0000000000
--- a/files/fr/web/css/@media/any-pointer/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: any-pointer
-slug: Web/CSS/@media/any-pointer
-tags:
- - CSS
- - Caractéristique média
- - Reference
-translation_of: Web/CSS/@media/any-pointer
----
-any-pointer est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui peut être utilisée afin de déterminer si un des mécanismes de saisie/d'entrée disponibles est un dispositif de pointage et sa précision le cas échéant.pointer à la place.Syntaxe
-
-any-pointer est définie comme un mot-clé parmi ceux de la liste ci-après.
-
-
-nonecoarsefinenone ne sera utilisée que lorsqu'aucun dispositif de pointage ne sera détecté.Exemples
-
-HTML
-
-<input id="test" type="checkbox" />
-<label for="test">Coucou !</label>
-
-CSS
-
-input[type="checkbox"]:checked {
- background: gray;
-}
-
-@media (any-pointer: fine) {
- input[type="checkbox"] {
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- width: 15px;
- height: 15px;
- border: 1px solid blue;
- }
-}
-
-@media (any-pointer: coarse) {
- input[type="checkbox"] {
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- width: 30px;
- height: 30px;
- border: 2px solid red;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#descdef-media-any-pointer', 'any-pointer')}}
- {{Spec2('CSS4 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/@media/any-pointer/index.md b/files/fr/web/css/@media/any-pointer/index.md
new file mode 100644
index 0000000000..a2ef25ec7c
--- /dev/null
+++ b/files/fr/web/css/@media/any-pointer/index.md
@@ -0,0 +1,103 @@
+---
+title: any-pointer
+slug: Web/CSS/@media/any-pointer
+tags:
+ - CSS
+ - Caractéristique média
+ - Reference
+translation_of: Web/CSS/@media/any-pointer
+---
+any-pointer est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui peut être utilisée afin de déterminer si un des mécanismes de saisie/d'entrée disponibles est un dispositif de pointage et sa précision le cas échéant.pointer à la place.Syntaxe
+
+any-pointer est définie comme un mot-clé parmi ceux de la liste ci-après.
+
+
+nonecoarsefinenone ne sera utilisée que lorsqu'aucun dispositif de pointage ne sera détecté.Exemples
+
+HTML
+
+<input id="test" type="checkbox" />
+<label for="test">Coucou !</label>
+
+CSS
+
+input[type="checkbox"]:checked {
+ background: gray;
+}
+
+@media (any-pointer: fine) {
+ input[type="checkbox"] {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ appearance: none;
+ width: 15px;
+ height: 15px;
+ border: 1px solid blue;
+ }
+}
+
+@media (any-pointer: coarse) {
+ input[type="checkbox"] {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ appearance: none;
+ width: 30px;
+ height: 30px;
+ border: 2px solid red;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#descdef-media-any-pointer', 'any-pointer')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/@media/aspect-ratio/index.html b/files/fr/web/css/@media/aspect-ratio/index.html
deleted file mode 100644
index 0999d4619e..0000000000
--- a/files/fr/web/css/@media/aspect-ratio/index.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: aspect-ratio
-slug: Web/CSS/@media/aspect-ratio
-tags:
- - CSS
- - Caractéristique média
- - Reference
-translation_of: Web/CSS/@media/aspect-ratio
----
-aspect-ratio est une caractéristique média CSS dont la valeur correspond au ratio ({{cssxref("<ratio>")}}) entre la largeur et la hauteur de la zone d'affichage (viewport).Syntaxe
-
-aspect-ratio est définie avec un ratio (type CSS {{cssxref("<ratio>")}}) qui représente le ratio entre la largeur et la hauteur de la zone d'affichage . C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-aspect-ratio et max-aspect-ratio afin de cibler des règles CSS en fonction d'une valeur minimale ou maximale.Exemples
-
-Exemples de valeurs pour aspect-ratio
-
-
-aspect-ratio: 1 / 1;
-aspect-ratio: 16 / 9;
-
-
-Correspondance entre width et height et aspect-ratio
-
-aspect-ratio interne qui s'applique aux éléments remplacés et aux autres éléments associés qui acceptent des attributs width et height. Celle-ci apparaît dans la feuille de style interne de l'agent utilisateur.
-img, input[type="image"], video, embed, iframe, marquee, object, table {
- aspect-ratio: attr(width) / attr(height);
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#aspect-ratio', 'aspect-ratio')}}
- {{Spec2('CSS4 Media Queries')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS3 Media Queries', '#aspect-ratio', 'aspect-ratio')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-aspect-ratio est une caractéristique média CSS dont la valeur correspond au ratio ({{cssxref("<ratio>")}}) entre la largeur et la hauteur de la zone d'affichage (viewport).Syntaxe
+
+aspect-ratio est définie avec un ratio (type CSS {{cssxref("<ratio>")}}) qui représente le ratio entre la largeur et la hauteur de la zone d'affichage . C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-aspect-ratio et max-aspect-ratio afin de cibler des règles CSS en fonction d'une valeur minimale ou maximale.Exemples
+
+Exemples de valeurs pour aspect-ratio
+
+
+aspect-ratio: 1 / 1;
+aspect-ratio: 16 / 9;
+
+
+Correspondance entre width et height et aspect-ratio
+
+aspect-ratio interne qui s'applique aux éléments remplacés et aux autres éléments associés qui acceptent des attributs width et height. Celle-ci apparaît dans la feuille de style interne de l'agent utilisateur.
+img, input[type="image"], video, embed, iframe, marquee, object, table {
+ aspect-ratio: attr(width) / attr(height);
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#aspect-ratio', 'aspect-ratio')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS3 Media Queries', '#aspect-ratio', 'aspect-ratio')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-CSS Level 2
- Dépréciation
- Définition initiale.
- Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/aural/index.md b/files/fr/web/css/@media/aural/index.md
new file mode 100644
index 0000000000..3de1642213
--- /dev/null
+++ b/files/fr/web/css/@media/aural/index.md
@@ -0,0 +1,42 @@
+---
+title: aural
+slug: Web/CSS/@media/aural
+tags:
+ - CSS
+ - Déprécié
+ - Obsolete
+ - Reference
+translation_of: Web/CSS/@media/aural
+---
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+CSS Level 2
+ Dépréciation
+ Définition initiale.
+ Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/color-gamut/index.html b/files/fr/web/css/@media/color-gamut/index.html
deleted file mode 100644
index e50d76749f..0000000000
--- a/files/fr/web/css/@media/color-gamut/index.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: color-gamut
-slug: Web/CSS/@media/color-gamut
-tags:
- - CSS
- - Caractéristique média
- - Reference
-translation_of: Web/CSS/@media/color-gamut
----
-color-gamut est une caractéristique média dont la valeur décrit l'intervalle approximatif des couleurs qui sont prises en charge par l'agent utilisateur et l'appareil responsable de l'affichage.Syntaxe
-
-color-gamut est définie avec un mot-clé parmi ceux de la liste ci-après.
-
-
-srgbp3rec2020Exemples
-
-HTML
-
-<p>Un test simple.</p>
-
-CSS
-
-@media (color-gamut: srgb) {
- p {
- background: #f4ae8a;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#color-gamut', 'color-gamut')}}
- {{Spec2('CSS4 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-color-gamut est une caractéristique média dont la valeur décrit l'intervalle approximatif des couleurs qui sont prises en charge par l'agent utilisateur et l'appareil responsable de l'affichage.Syntaxe
+
+color-gamut est définie avec un mot-clé parmi ceux de la liste ci-après.
+
+
+srgbp3rec2020Exemples
+
+HTML
+
+<p>Un test simple.</p>
+
+CSS
+
+@media (color-gamut: srgb) {
+ p {
+ background: #f4ae8a;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#color-gamut', 'color-gamut')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+color-index est une caractéristique média CSS (cf. {{cssxref("@media")}}) dont la valeur correspond au nombre d'entrées que comporte la palette de couleurs du périphérique de sortie, ou zéro si ce dernier n'en utilise pas.Syntaxe
-
-color-index est définie sous la forme d'un entier (type {{cssxref("<integer>")}}) et représente le nombre d'entrées de la palette de couleurs de l'appareil d'affichage (ou zéro si l'appareil n'utilise pas une telle palette). C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-color-index et max-color-index afin cibler des règles en fonction d'un minimum ou d'un maximum.Exemples
-
-Exemple simple
-
-HTML
-
-<p>Un test simple.</p>
-
-
-CSS
-
-p {
- color: black;
-}
-
-@media (color-index) {
- p {
- color: red;
- }
-}
-
-@media (min-color-index: 15000) {
- p {
- color: #1475ef;
- }
-}
-
-Résultat
-
-Feuille de style personnalisée
-
-
-
-<link rel="stylesheet" href="http://toto.truc.com/base.css" />
-<link rel="stylesheet" media="all and (min-color-index: 256)" href="http://toto.truc.com/feuille_style_couleurs.css" />Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- Etat
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#color-index', 'color-index')}}
- {{Spec2('CSS4 Media Queries')}}
- La valeur peut désormais être négative (ce qui correspond à un booléen faux).
-
-
-
-{{SpecName('CSS3 Media Queries', '#color-index', 'color-index')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale, la valeur ne peut pas être négative.
- Compatibilité des navigateurs
-
-color-index est une caractéristique média CSS (cf. {{cssxref("@media")}}) dont la valeur correspond au nombre d'entrées que comporte la palette de couleurs du périphérique de sortie, ou zéro si ce dernier n'en utilise pas.Syntaxe
+
+color-index est définie sous la forme d'un entier (type {{cssxref("<integer>")}}) et représente le nombre d'entrées de la palette de couleurs de l'appareil d'affichage (ou zéro si l'appareil n'utilise pas une telle palette). C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-color-index et max-color-index afin cibler des règles en fonction d'un minimum ou d'un maximum.Exemples
+
+Exemple simple
+
+HTML
+
+<p>Un test simple.</p>
+
+
+CSS
+
+p {
+ color: black;
+}
+
+@media (color-index) {
+ p {
+ color: red;
+ }
+}
+
+@media (min-color-index: 15000) {
+ p {
+ color: #1475ef;
+ }
+}
+
+Résultat
+
+Feuille de style personnalisée
+
+
+
+<link rel="stylesheet" href="http://toto.truc.com/base.css" />
+<link rel="stylesheet" media="all and (min-color-index: 256)" href="http://toto.truc.com/feuille_style_couleurs.css" />Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ Etat
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#color-index', 'color-index')}}
+ {{Spec2('CSS4 Media Queries')}}
+ La valeur peut désormais être négative (ce qui correspond à un booléen faux).
+
+
+
+{{SpecName('CSS3 Media Queries', '#color-index', 'color-index')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale, la valeur ne peut pas être négative.
+ Compatibilité des navigateurs
+
+color est une caractéristique média CSS (cf. {{cssxref("@media")}}) dont la valeur est le nombre de bits par composante de couleur du périphérique de sortie, ou zéro si ce dernier ne gère pas les couleurs.Syntaxe
-
-color est définie avec un entier (type CSS {{cssxref("<integer>")}}) et représente le nombre de bits utiisé par l'appareil d'affichage pour représenter chaque composante de couleur. Si l'appareil ne gère pas les couleurs, la valeur sera zéro. C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-color et max-color afin de cibler des règles en fonction d'un minimum ou d'un maximum.Exemples
-
-HTML
-
-<p>
- Ce texte sera noir pour les appareils qui ne prennent en charge
- aucune couleur, rouge pour ceux qui prennent peu de couleurs en
- charge et vert sinon.
-</p>
-
-
-CSS
-
-p {
- color: black;
-}
-
-/* Tout appareil qui gère des couleurs */
-@media (color) {
- p {
- color: red;
- }
-}
-
-/* Tout appareil qui gère des couleurs avec */
-/* au moins 8 bits par composante */
-@media (min-color: 8) {
- p {
- color: #24ba13;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Media Queries', '#color', 'color')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale, la valeur ne peut pas être négative.
-
-
-
-{{SpecName('CSS4 Media Queries', '#color', 'color')}}
- {{Spec2('CSS4 Media Queries')}}
- La valeur peut désormais être négative (ce qui correspond alors à un booléen faux).
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/color/index.md b/files/fr/web/css/@media/color/index.md
new file mode 100644
index 0000000000..166d7849d0
--- /dev/null
+++ b/files/fr/web/css/@media/color/index.md
@@ -0,0 +1,92 @@
+---
+title: color
+slug: Web/CSS/@media/color
+tags:
+ - CSS
+ - Caractéristique média
+ - Reference
+translation_of: Web/CSS/@media/color
+---
+color est une caractéristique média CSS (cf. {{cssxref("@media")}}) dont la valeur est le nombre de bits par composante de couleur du périphérique de sortie, ou zéro si ce dernier ne gère pas les couleurs.Syntaxe
+
+color est définie avec un entier (type CSS {{cssxref("<integer>")}}) et représente le nombre de bits utiisé par l'appareil d'affichage pour représenter chaque composante de couleur. Si l'appareil ne gère pas les couleurs, la valeur sera zéro. C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-color et max-color afin de cibler des règles en fonction d'un minimum ou d'un maximum.Exemples
+
+HTML
+
+<p>
+ Ce texte sera noir pour les appareils qui ne prennent en charge
+ aucune couleur, rouge pour ceux qui prennent peu de couleurs en
+ charge et vert sinon.
+</p>
+
+
+CSS
+
+p {
+ color: black;
+}
+
+/* Tout appareil qui gère des couleurs */
+@media (color) {
+ p {
+ color: red;
+ }
+}
+
+/* Tout appareil qui gère des couleurs avec */
+/* au moins 8 bits par composante */
+@media (min-color: 8) {
+ p {
+ color: #24ba13;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Media Queries', '#color', 'color')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale, la valeur ne peut pas être négative.
+
+
+
+{{SpecName('CSS4 Media Queries', '#color', 'color')}}
+ {{Spec2('CSS4 Media Queries')}}
+ La valeur peut désormais être négative (ce qui correspond alors à un booléen faux).
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/device-aspect-ratio/index.html b/files/fr/web/css/@media/device-aspect-ratio/index.html
deleted file mode 100644
index f9054e3aa9..0000000000
--- a/files/fr/web/css/@media/device-aspect-ratio/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: device-aspect-ratio
-slug: Web/CSS/@media/device-aspect-ratio
-tags:
- - CSS
- - Caractéristique média
- - Déprécié
- - Reference
-translation_of: Web/CSS/@media/device-aspect-ratio
----
-device-aspect-ratio est une caractéristique média (cf. {{cssxref("@media")}}) dont la valeur correspond au ratio entre la largeur et la hauteur de l'appareil d'affichage.Syntaxe
-
-device-aspect-ratio est définie sous la forme d'un ratio (type CSS {{cssxref("<ratio>")}}). C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-device-aspect-ratio et max-device-aspect-ratio afin de cibler des règles en fonction de minimum ou maximum.Exemples
-
-article {
- padding: 1rem;
-}
-
-@media screen and (min-device-aspect-ratio: 16/9) {
- article {
- padding: 1rem 5vw;
- }
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#device-aspect-ratio', 'device-aspect-ratio')}}
- {{Spec2('CSS4 Media Queries')}}
- Dépréciation dans la spécification de niveau 4 pour les requêtes média.
-
-
-
-{{SpecName('CSS3 Media Queries', '#device-aspect-ratio', 'device-aspect-ratio')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-device-aspect-ratio est une caractéristique média (cf. {{cssxref("@media")}}) dont la valeur correspond au ratio entre la largeur et la hauteur de l'appareil d'affichage.Syntaxe
+
+device-aspect-ratio est définie sous la forme d'un ratio (type CSS {{cssxref("<ratio>")}}). C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-device-aspect-ratio et max-device-aspect-ratio afin de cibler des règles en fonction de minimum ou maximum.Exemples
+
+article {
+ padding: 1rem;
+}
+
+@media screen and (min-device-aspect-ratio: 16/9) {
+ article {
+ padding: 1rem 5vw;
+ }
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#device-aspect-ratio', 'device-aspect-ratio')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Dépréciation dans la spécification de niveau 4 pour les requêtes média.
+
+
+
+{{SpecName('CSS3 Media Queries', '#device-aspect-ratio', 'device-aspect-ratio')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+device-height est une caractéristique média (cf. {{cssxref("@media")}}) dépréciée dont la valeur correspond à la hauteur de la surface de rendu pour l'appareil d'affichage.Syntaxe
-
-device-height est définie comme une longueur (type {{cssxref("<length>")}}). C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-device-height et max-device-height afin d'utiliser des critères de minimum et maximum.Exemples
-
-<link rel="stylesheet" media="screen and (max-device-height: 799px)" href="http://toto.truc.com/short-styles.css" />
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#device-height', 'device-height')}}
- {{Spec2('CSS4 Media Queries')}}
- Dépréciation dans la spécification de niveau 4 pour les requêtes média.
-
-
-
-{{SpecName('CSS3 Media Queries', '#device-height', 'device-height')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-device-height est une caractéristique média (cf. {{cssxref("@media")}}) dépréciée dont la valeur correspond à la hauteur de la surface de rendu pour l'appareil d'affichage.Syntaxe
+
+device-height est définie comme une longueur (type {{cssxref("<length>")}}). C'est une caractéristique d'intervalle ce qui signifie qu'on peut utiliser les variantes préfixées min-device-height et max-device-height afin d'utiliser des critères de minimum et maximum.Exemples
+
+<link rel="stylesheet" media="screen and (max-device-height: 799px)" href="http://toto.truc.com/short-styles.css" />
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#device-height', 'device-height')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Dépréciation dans la spécification de niveau 4 pour les requêtes média.
+
+
+
+{{SpecName('CSS3 Media Queries', '#device-height', 'device-height')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+device-width est une caractéristique média dépréciée dont la valeur représente la largeur de la surface de rendu de l'appareil d'affichage.Syntaxe
-
-device-width est définie comme une longueur (type {{cssxref("<length>")}}). C'est une caractéristique d'intervalle et les variantes préfixées min-device-width et max-device-width peuvent être utilisées pour manipuler un minimum ou un maximum.Exemples
-
-<link rel="stylesheet" media="screen and (max-device-width: 799px)" href="http://toto.truc.com/narrow-styles.css" />
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#device-width', 'device-width')}}
- {{Spec2('CSS4 Media Queries')}}
- Dépréciation dans la spécification de niveau 4 pour les requêtes média.
-
-
-
-{{SpecName('CSS3 Media Queries', '#device-width', 'device-width')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-device-width est une caractéristique média dépréciée dont la valeur représente la largeur de la surface de rendu de l'appareil d'affichage.Syntaxe
+
+device-width est définie comme une longueur (type {{cssxref("<length>")}}). C'est une caractéristique d'intervalle et les variantes préfixées min-device-width et max-device-width peuvent être utilisées pour manipuler un minimum ou un maximum.Exemples
+
+<link rel="stylesheet" media="screen and (max-device-width: 799px)" href="http://toto.truc.com/narrow-styles.css" />
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#device-width', 'device-width')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Dépréciation dans la spécification de niveau 4 pour les requêtes média.
+
+
+
+{{SpecName('CSS3 Media Queries', '#device-width', 'device-width')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+display-mode est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet d'appliquer différentes règles CSS selon le mode d'affichage de l'application. On pourra utiliser cette caractéristique afin qu'un utilisateur ait une expérience similaire selon qu'il lance le site depuis une URL ou depuis une icône sur un bureau.display du manifeste de l'application web. Les deux s'appliquent au contexte de navigation de plus haut niveau ainsi qu'aux contextes fils. Cette requête s'appliquera dans tous les cas (qu'un manifeste d'application soit présent ou non).Syntaxe
-
-display-mode est définie avec un mot-clé parmi ceux du tableau ci-après.
-
-
-
-
-
-
-
- Valeur (mode d'affichage)
- Description
- Mode d'affichage utilisé en recours
-
-
-
- fullscreenToute la zone d'affichage est utilisée et aucun autre élément d'interface utilisateur (chrome) n'est affiché.
-
- standalone
-
-
- standaloneL'application se comportera comme une application indépendante avec une fenêtre différente, une icône distincte dans les barres d'application. Dans ce mode, l'agent utilisateur supprimera les éléments d'interface utilisateur liés au contrôle de la navigation mais pourra conserver les autres éléments tels que la barre d'état.
-
- minimal-ui
-
-
- minimal-uiL'application se comportera comme une application indépendante mais son interface utilisateur sera restreinte aux contrôles de navigation. Les éléments affichés peuvent varier selon les navigateurs.
-
- browser
-
-
-
- browserL'application ouvre un nouvel onglet dans le navigateur ou une nouvelle fenêtre selon le navigateur et la plateforme utilisés.
- Aucun
- Exemples
-
-@media all and (display-mode: fullscreen) {
- body {
- margin: 0;
- border: 5px solid black;
- }
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('Manifest', '#the-display-mode-media-feature', 'display-mode')}}
- {{Spec2('Manifest')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-display-mode est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet d'appliquer différentes règles CSS selon le mode d'affichage de l'application. On pourra utiliser cette caractéristique afin qu'un utilisateur ait une expérience similaire selon qu'il lance le site depuis une URL ou depuis une icône sur un bureau.display du manifeste de l'application web. Les deux s'appliquent au contexte de navigation de plus haut niveau ainsi qu'aux contextes fils. Cette requête s'appliquera dans tous les cas (qu'un manifeste d'application soit présent ou non).Syntaxe
+
+display-mode est définie avec un mot-clé parmi ceux du tableau ci-après.
+
+
+
+
+
+
+
+ Valeur (mode d'affichage)
+ Description
+ Mode d'affichage utilisé en recours
+
+
+
+ fullscreenToute la zone d'affichage est utilisée et aucun autre élément d'interface utilisateur (chrome) n'est affiché.
+
+ standalone
+
+
+ standaloneL'application se comportera comme une application indépendante avec une fenêtre différente, une icône distincte dans les barres d'application. Dans ce mode, l'agent utilisateur supprimera les éléments d'interface utilisateur liés au contrôle de la navigation mais pourra conserver les autres éléments tels que la barre d'état.
+
+ minimal-ui
+
+
+ minimal-uiL'application se comportera comme une application indépendante mais son interface utilisateur sera restreinte aux contrôles de navigation. Les éléments affichés peuvent varier selon les navigateurs.
+
+ browser
+
+
+
+ browserL'application ouvre un nouvel onglet dans le navigateur ou une nouvelle fenêtre selon le navigateur et la plateforme utilisés.
+ Aucun
+ Exemples
+
+@media all and (display-mode: fullscreen) {
+ body {
+ margin: 0;
+ border: 5px solid black;
+ }
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('Manifest', '#the-display-mode-media-feature', 'display-mode')}}
+ {{Spec2('Manifest')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+forced-colors est utilisée afin de détecter si l'utilisateur a choisi une palette de couleur restreinte via le navigateur ou l'agent utilisateur.Valeurs
-
-
-
-
-noneactiveprefers-color-scheme sera également mise à jour afin que les auteurs puissent adapter la page.Préférences utilisateur
-
-Exemples
-
-HTML
-
-<div class="colors">quelques couleurs étranges</div>
-
-
-CSS
-
-.colors {
- background-color: red;
- color: grey;
-}
-
-@media (forced-colors: active) {
- .colors {
- background-color: white;
- color: black;
- }
-}
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS5 Media Queries', '#forced-colors', 'forced-colors')}}
- {{Spec2('CSS5 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-forced-colors est utilisée afin de détecter si l'utilisateur a choisi une palette de couleur restreinte via le navigateur ou l'agent utilisateur.Valeurs
+
+
+
+
+noneactiveprefers-color-scheme sera également mise à jour afin que les auteurs puissent adapter la page.Préférences utilisateur
+
+Exemples
+
+HTML
+
+<div class="colors">quelques couleurs étranges</div>
+
+
+CSS
+
+.colors {
+ background-color: red;
+ color: grey;
+}
+
+@media (forced-colors: active) {
+ .colors {
+ background-color: white;
+ color: black;
+ }
+}
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS5 Media Queries', '#forced-colors', 'forced-colors')}}
+ {{Spec2('CSS5 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+grid est une caractéristique média CSS (cf {{cssxref("@media")}}) dont la valeur est un booléen qui indique si l'appareil d'affichage fonctionne grâce à une grille (ex. un terminal ou un appareil qui ne dispose que d'une police à chasse fixe) ou grâce à une matrice d'affichage (avec des pixels « classiques »).Syntaxe
-
-grid est une valeur booléenne (0 ou 1) (type {{cssxref("<mq-boolean>")}}) qui indique si l'appareil d'affichage fonctionne selon une grille.Exemples
-
-HTML
-
-<p class="unknown">Impossible de savoir si l'affichage fonctionne sur une grille. :-(</p>
-<p class="bitmap">L'appareil dispose d'un affichage matriciel.</p>
-<p class="grid">L'appareil utilise une grille pour l'affichage !</p>
-
-CSS
-
-:not(.unknown) {
- color: lightgray;
-}
-
-@media (grid: 0) {
- .unknown {
- color: lightgray;
- }
-
- .bitmap {
- color: red;
- text-transform: uppercase;
- }
-}
-
-@media (grid: 1) {
- .unknown {
- color: lightgray;
- }
-
- .grid {
- color: black;
- text-transform: uppercase;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Media Queries', '#grid', 'grid')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-grid est une caractéristique média CSS (cf {{cssxref("@media")}}) dont la valeur est un booléen qui indique si l'appareil d'affichage fonctionne grâce à une grille (ex. un terminal ou un appareil qui ne dispose que d'une police à chasse fixe) ou grâce à une matrice d'affichage (avec des pixels « classiques »).Syntaxe
+
+grid est une valeur booléenne (0 ou 1) (type {{cssxref("<mq-boolean>")}}) qui indique si l'appareil d'affichage fonctionne selon une grille.Exemples
+
+HTML
+
+<p class="unknown">Impossible de savoir si l'affichage fonctionne sur une grille. :-(</p>
+<p class="bitmap">L'appareil dispose d'un affichage matriciel.</p>
+<p class="grid">L'appareil utilise une grille pour l'affichage !</p>
+
+CSS
+
+:not(.unknown) {
+ color: lightgray;
+}
+
+@media (grid: 0) {
+ .unknown {
+ color: lightgray;
+ }
+
+ .bitmap {
+ color: red;
+ text-transform: uppercase;
+ }
+}
+
+@media (grid: 1) {
+ .unknown {
+ color: lightgray;
+ }
+
+ .grid {
+ color: black;
+ text-transform: uppercase;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Media Queries', '#grid', 'grid')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+height est une caractéristique média CSS (cf. {{cssxref("@media")}}) dont la valeur représente la hauteur de la zone d'affichage (viewport) (ou de la boîte de page pour les média paginés).Syntaxe
-
-height est définie comme une longueur (type {{cssxref("<length>")}}) et représente la hauteur de la zone d'affichage. C'est une caractéristique d'intervalle et on peut donc utiliser les variantes préfixées min-height et max-height afin de cibler des règles selon un minimum ou un maximum.Exemples
-
-HTML
-
-<div>
- Surveillez cet élément lors du
- redimensionnement de la zone d'affichage.
-</div>
-
-CSS
-
-/* Hauteur exacte */
-@media (height: 360px) {
- div {
- color: red;
- }
-}
-
-/* Hauteur minimale */
-@media (min-height: 25rem) {
- div {
- background: yellow;
- }
-}
-
-/* Hauteur maximale */
-@media (max-height: 40rem) {
- div {
- border: 2px solid blue;
- }
-}
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#height', 'height')}}
- {{Spec2('CSS4 Media Queries')}}
- La valeur peut désormais être négative (ce qui correspond à un booléen faux).
-
-
-
-{{SpecName('CSS3 Media Queries', '#height', 'height')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale. La valeur ne doit pas être négative.
- Compatibilité des navigateurs
-
-height est une caractéristique média CSS (cf. {{cssxref("@media")}}) dont la valeur représente la hauteur de la zone d'affichage (viewport) (ou de la boîte de page pour les média paginés).Syntaxe
+
+height est définie comme une longueur (type {{cssxref("<length>")}}) et représente la hauteur de la zone d'affichage. C'est une caractéristique d'intervalle et on peut donc utiliser les variantes préfixées min-height et max-height afin de cibler des règles selon un minimum ou un maximum.Exemples
+
+HTML
+
+<div>
+ Surveillez cet élément lors du
+ redimensionnement de la zone d'affichage.
+</div>
+
+CSS
+
+/* Hauteur exacte */
+@media (height: 360px) {
+ div {
+ color: red;
+ }
+}
+
+/* Hauteur minimale */
+@media (min-height: 25rem) {
+ div {
+ background: yellow;
+ }
+}
+
+/* Hauteur maximale */
+@media (max-height: 40rem) {
+ div {
+ border: 2px solid blue;
+ }
+}
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#height', 'height')}}
+ {{Spec2('CSS4 Media Queries')}}
+ La valeur peut désormais être négative (ce qui correspond à un booléen faux).
+
+
+
+{{SpecName('CSS3 Media Queries', '#height', 'height')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale. La valeur ne doit pas être négative.
+ Compatibilité des navigateurs
+
+hover est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet de vérifier si le dispositif de saisie/d'entrée principal permet à l'utilisateur de survoler les éléments.Syntaxe
-
-hover est définie avec un mot-clé parmi ceux de la liste suivant :
-
-
-nonehoverExemples
-
-HTML
-
-<a href="#">Essayez de me survoler !</a>
-
-CSS
-
-@media (hover: hover) {
- a:hover {
- background: yellow;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#hover', 'hover')}}
- {{Spec2('CSS4 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/@media/hover/index.md b/files/fr/web/css/@media/hover/index.md
new file mode 100644
index 0000000000..2ca99b76f9
--- /dev/null
+++ b/files/fr/web/css/@media/hover/index.md
@@ -0,0 +1,70 @@
+---
+title: hover
+slug: Web/CSS/@media/hover
+tags:
+ - CSS
+ - Caractéristique média
+ - Reference
+translation_of: Web/CSS/@media/hover
+---
+hover est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet de vérifier si le dispositif de saisie/d'entrée principal permet à l'utilisateur de survoler les éléments.Syntaxe
+
+hover est définie avec un mot-clé parmi ceux de la liste suivant :
+
+
+nonehoverExemples
+
+HTML
+
+<a href="#">Essayez de me survoler !</a>
+
+CSS
+
+@media (hover: hover) {
+ a:hover {
+ background: yellow;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#hover', 'hover')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/@media/index.html b/files/fr/web/css/@media/index.html
deleted file mode 100644
index bc94ddbaf3..0000000000
--- a/files/fr/web/css/@media/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: '@media'
-slug: Web/CSS/@media
-browser-compat: css.at-rules.media
-translation_of: Web/CSS/@media
----
-@media permet d'appliquer une partie d'une feuille de styles en fonction du résultat d'une ou plusieurs requêtes média (media queries). Grâce à cette règle, on peut indiquer une requête média et un ensemble de règles CSS qui s'appliquent uniquement si la requête média est vérifiée pour l'appareil, le contexte avec lequel le contenu est consulté.@media via le CSSOM (et JavaScript) grâce à l'interface CSSMediaRule.Syntaxe
-
-<media-query>) est composée d'un type de média (optionnel) et/ou de différentes caractéristiques relatives au média. Une requête média peut être imbriquée dans une autre règle conditionnelle./* Au niveau le plus haut du code */
-@media screen and (min-width: 900px) {
- article {
- padding: 1rem 3rem;
- }
-}
-
-/* Imbriquée dans une autre règle-@ conditionnelle */
-@supports (display: flex) {
- @media screen and (min-width: 900px) {
- article {
- display: flex;
- }
- }
-}
-
-
-Description
-
-Types de média
-
-Caractéristiques de média
-
-Accessibilité
-
-em comme valeur pour les requêtes média lorsqu'il faut utiliser une longueur (<length>).em et px sont toutes les deux valides mais em s'adapte mieux quand la taille de la police du navigateur a été ajustée.prefers-reduced-motion afin de détecter si l'utilisateur souhaite minimiser les animations ou les déplacements.Sécurité
-
-Syntaxe formelle
-
-Exemples
-
-@media print {
- body { font-size: 10pt }
-}
-@media screen {
- body { font-size: 13px }
-}
-@media screen, print {
- body { line-height: 1.2 }
-}
-
-@media only screen
- and (min-width: 320px)
- and (max-width: 480px)
- and (-webkit-min-device-pixel-ratio: 2) {
- body { line-height: 1.4 }
-}
-
-
-@media (height > 600px) {
- body { line-height: 1.4; }
-}
-
-@media (400px <= width <= 700px) {
- body { line-height: 1.4; }
-}
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/index.md b/files/fr/web/css/@media/index.md
new file mode 100644
index 0000000000..bc94ddbaf3
--- /dev/null
+++ b/files/fr/web/css/@media/index.md
@@ -0,0 +1,112 @@
+---
+title: '@media'
+slug: Web/CSS/@media
+browser-compat: css.at-rules.media
+translation_of: Web/CSS/@media
+---
+CSSMediaRule qui est associée avec cette règle @.@media permet d'appliquer une partie d'une feuille de styles en fonction du résultat d'une ou plusieurs requêtes média (media queries). Grâce à cette règle, on peut indiquer une requête média et un ensemble de règles CSS qui s'appliquent uniquement si la requête média est vérifiée pour l'appareil, le contexte avec lequel le contenu est consulté.@media via le CSSOM (et JavaScript) grâce à l'interface CSSMediaRule.Syntaxe
+
+<media-query>) est composée d'un type de média (optionnel) et/ou de différentes caractéristiques relatives au média. Une requête média peut être imbriquée dans une autre règle conditionnelle./* Au niveau le plus haut du code */
+@media screen and (min-width: 900px) {
+ article {
+ padding: 1rem 3rem;
+ }
+}
+
+/* Imbriquée dans une autre règle-@ conditionnelle */
+@supports (display: flex) {
+ @media screen and (min-width: 900px) {
+ article {
+ display: flex;
+ }
+ }
+}
+
+
+Description
+
+Types de média
+
+Caractéristiques de média
+
+Accessibilité
+
+em comme valeur pour les requêtes média lorsqu'il faut utiliser une longueur (<length>).em et px sont toutes les deux valides mais em s'adapte mieux quand la taille de la police du navigateur a été ajustée.prefers-reduced-motion afin de détecter si l'utilisateur souhaite minimiser les animations ou les déplacements.Sécurité
+
+Syntaxe formelle
+
+Exemples
+
+@media print {
+ body { font-size: 10pt }
+}
+@media screen {
+ body { font-size: 13px }
+}
+@media screen, print {
+ body { line-height: 1.2 }
+}
+
+@media only screen
+ and (min-width: 320px)
+ and (max-width: 480px)
+ and (-webkit-min-device-pixel-ratio: 2) {
+ body { line-height: 1.4 }
+}
+
+
+@media (height > 600px) {
+ body { line-height: 1.4; }
+}
+
+@media (400px <= width <= 700px) {
+ body { line-height: 1.4; }
+}
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/inverted-colors/index.html b/files/fr/web/css/@media/inverted-colors/index.html
deleted file mode 100644
index 9d1983d497..0000000000
--- a/files/fr/web/css/@media/inverted-colors/index.html
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: inverted-colors
-slug: Web/CSS/@media/inverted-colors
-tags:
- - CSS
- - Caractéristique média
- - Reference
-translation_of: Web/CSS/@media/inverted-colors
----
-CSSMediaRule qui est associée avec cette règle @.inverted-colors est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui indique si l'agent utilisateur ou si le système d'exploitation sous-jacent inverse les couleurs.Syntaxe
-
-
-
-
-noneinvertedExemples
-
-HTML
-
-<p>
- Si vous utilisez les couleurs inversées, ce texte devrait
- être bleu sur blanc (l'inverse de jaune sur noir). Sinon,
- il devrait être rouge sur gris clair.
-</p>
-<p>
- Si le texte est gris, cela indique que votre navigateur
- ne prend pas en charge la caractéristique média
- `inverted-colors`.
-</p>
-
-CSS
-
-p {
- color: gray;
-}
-
-@media (inverted-colors: inverted) {
- p {
- background: black;
- color: yellow;
- }
-}
-
-@media (inverted-colors: none) {
- p {
- background: #eee;
- color: red;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS5 Media Queries', '#inverted', 'inverted-colors')}}
- {{Spec2('CSS5 Media Queries')}}
-
-
-
-
-{{SpecName('CSS4 Media Queries', '#inverted', 'inverted-colors')}}
- {{Spec2('CSS4 Media Queries')}}
- Repoussée à la spécification de niveau 5 pour les requêtes média.
- Compatibilité des navigateurs
-
-inverted-colors est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui indique si l'agent utilisateur ou si le système d'exploitation sous-jacent inverse les couleurs.Syntaxe
+
+
+
+
+noneinvertedExemples
+
+HTML
+
+<p>
+ Si vous utilisez les couleurs inversées, ce texte devrait
+ être bleu sur blanc (l'inverse de jaune sur noir). Sinon,
+ il devrait être rouge sur gris clair.
+</p>
+<p>
+ Si le texte est gris, cela indique que votre navigateur
+ ne prend pas en charge la caractéristique média
+ `inverted-colors`.
+</p>
+
+CSS
+
+p {
+ color: gray;
+}
+
+@media (inverted-colors: inverted) {
+ p {
+ background: black;
+ color: yellow;
+ }
+}
+
+@media (inverted-colors: none) {
+ p {
+ background: #eee;
+ color: red;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS5 Media Queries', '#inverted', 'inverted-colors')}}
+ {{Spec2('CSS5 Media Queries')}}
+
+
+
+
+{{SpecName('CSS4 Media Queries', '#inverted', 'inverted-colors')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Repoussée à la spécification de niveau 5 pour les requêtes média.
+ Compatibilité des navigateurs
+
+monochrome est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui peut être utilisée afin d'appliquer des styles en fonction du nombre de bits par pixel utilisés pour le tampon d'affichage monochrome de l'appareil.Syntaxe
-
-monochrome est un entier (type {{cssxref("<integer>")}})) dont la valeur correspond au nombre de bits par pixel utilisés pour le tampon d'affichage monochrome de l'appareil. Si l'appareil n'est pas monochrome, cela vaudra 0. Cette caractéristique est une caractéristique d'intervalle ce qui signifie qu'on peut également utiliser les variantes préfixées min-monochrome et max-monochrome afin de cibler les règles en fonction d'un minimum ou d'un maximum.Exemples
-
-HTML
-
-<p class="mono">
- Votre appareil prend en charge les
- pixels monochrome !
-</p>
-<p class="no-mono">
- Votre appareil ne prend pas en charge
- les pixels monochromes.
-</p>
-
-CSS
-
-p {
- display: none;
-}
-
-/* Any monochrome device */
-@media (monochrome) {
- p.mono {
- display: block;
- color: #333;
- }
-}
-
-/* Any non-monochrome device */
-@media (monochrome: 0) {
- p.no-mono {
- display: block;
- color: #ee3636;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#monochrome', 'monochrome')}}
- {{Spec2('CSS4 Media Queries')}}
- La valeur peut désormais être négative, auquel cas cela correspond à un booléen faux.
-
-
-
-{{SpecName('CSS3 Media Queries', '#monochrome', 'monochrome')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale. La valeur ne doit pas être négative.
- Compatibilité des navigateurs
-
-monochrome est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui peut être utilisée afin d'appliquer des styles en fonction du nombre de bits par pixel utilisés pour le tampon d'affichage monochrome de l'appareil.Syntaxe
+
+monochrome est un entier (type {{cssxref("<integer>")}})) dont la valeur correspond au nombre de bits par pixel utilisés pour le tampon d'affichage monochrome de l'appareil. Si l'appareil n'est pas monochrome, cela vaudra 0. Cette caractéristique est une caractéristique d'intervalle ce qui signifie qu'on peut également utiliser les variantes préfixées min-monochrome et max-monochrome afin de cibler les règles en fonction d'un minimum ou d'un maximum.Exemples
+
+HTML
+
+<p class="mono">
+ Votre appareil prend en charge les
+ pixels monochrome !
+</p>
+<p class="no-mono">
+ Votre appareil ne prend pas en charge
+ les pixels monochromes.
+</p>
+
+CSS
+
+p {
+ display: none;
+}
+
+/* Any monochrome device */
+@media (monochrome) {
+ p.mono {
+ display: block;
+ color: #333;
+ }
+}
+
+/* Any non-monochrome device */
+@media (monochrome: 0) {
+ p.no-mono {
+ display: block;
+ color: #ee3636;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#monochrome', 'monochrome')}}
+ {{Spec2('CSS4 Media Queries')}}
+ La valeur peut désormais être négative, auquel cas cela correspond à un booléen faux.
+
+
+
+{{SpecName('CSS3 Media Queries', '#monochrome', 'monochrome')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale. La valeur ne doit pas être négative.
+ Compatibilité des navigateurs
+
+orientation est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui peut être utilisée pour vérifier l'orientation de la zone d'affichage (viewport) (ou la boîte de la page pour les média paginés).Syntaxe
-
-orientation se définit grâce à l'un des mots-clés suivants :
-
-
-portraitlandscapeExemples
-
-HTML
-
-<div>Boîte 1</div>
-<div>Boîte 2</div>
-<div>Boîte 3</div>
-
-
-CSS
-
-body {
- display: flex;
-}
-
-div {
- background: yellow;
-}
-
-@media (orientation: landscape) {
- body {
- flex-direction: row;
- }
-}
-
-@media (orientation: portrait) {
- body {
- flex-direction: column;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#orientation', 'orientation')}}
- {{Spec2('CSS4 Media Queries')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS3 Media Queries', '#orientation', 'orientation')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-orientation est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui peut être utilisée pour vérifier l'orientation de la zone d'affichage (viewport) (ou la boîte de la page pour les média paginés).Syntaxe
+
+orientation se définit grâce à l'un des mots-clés suivants :
+
+
+portraitlandscapeExemples
+
+HTML
+
+<div>Boîte 1</div>
+<div>Boîte 2</div>
+<div>Boîte 3</div>
+
+
+CSS
+
+body {
+ display: flex;
+}
+
+div {
+ background: yellow;
+}
+
+@media (orientation: landscape) {
+ body {
+ flex-direction: row;
+ }
+}
+
+@media (orientation: portrait) {
+ body {
+ flex-direction: column;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#orientation', 'orientation')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS3 Media Queries', '#orientation', 'orientation')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+overflow-block est une caractéristique média CSS qui indique la façon dont l'appareil d'affichage gère le contenu qui dépasse de la zone d'affichage (viewport) dans l'axe logique de bloc (c'est-à-dire le sens perpendiculaire au sens de lecture).Syntaxe
-
-overflow-block est définie avec un mot-clé de la liste suivante :
-
-
-nonescrolloptional-pagedpagedExemples
-
-HTML
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ac turpis eleifend, fringilla velit ac, aliquam tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc velit erat, tempus id rutrum sed, dapibus ut urna. Integer vehicula nibh a justo imperdiet rutrum. Nam faucibus pretium orci imperdiet sollicitudin. Nunc id facilisis dui. Proin elementum et massa et feugiat. Integer rutrum ullamcorper eleifend. Proin sit amet tincidunt risus. Sed nec augue congue eros accumsan tincidunt sed eget ex.</p>
-
-
-CSS
-
-@media (overflow-block: scroll) {
- p {
- color: red;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#mf-overflow-block', 'overflow-block')}}
- {{Spec2('CSS4 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-overflow-block est une caractéristique média CSS qui indique la façon dont l'appareil d'affichage gère le contenu qui dépasse de la zone d'affichage (viewport) dans l'axe logique de bloc (c'est-à-dire le sens perpendiculaire au sens de lecture).Syntaxe
+
+overflow-block est définie avec un mot-clé de la liste suivante :
+
+
+nonescrolloptional-pagedpagedExemples
+
+HTML
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ac turpis eleifend, fringilla velit ac, aliquam tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc velit erat, tempus id rutrum sed, dapibus ut urna. Integer vehicula nibh a justo imperdiet rutrum. Nam faucibus pretium orci imperdiet sollicitudin. Nunc id facilisis dui. Proin elementum et massa et feugiat. Integer rutrum ullamcorper eleifend. Proin sit amet tincidunt risus. Sed nec augue congue eros accumsan tincidunt sed eget ex.</p>
+
+
+CSS
+
+@media (overflow-block: scroll) {
+ p {
+ color: red;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#mf-overflow-block', 'overflow-block')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+overflow-inline est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui indique la façon dont l'appareil d'affichage gère le contenu qui dépasse de la zone d'affichage (viewport) dans l'axe logique en ligne (c'est-à-dire le sens correspondant au sens de lecture).Syntaxe
-
-overflow-inline est définit avec un mot-clé parmi ceux de la liste suivante :
-
-
-nonescrollExemples
-
-HTML
-
-<p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Nullam ac turpis eleifend, fringilla velit ac, aliquam tellus.
- Vestibulum ante ipsum primis in faucibus orci luctus et
- ultrices posuere cubilia Curae; Nunc velit erat, tempus id
- rutrum sed, dapibus ut urna. Integer vehicula nibh a justo
- imperdiet rutrum. Nam faucibus pretium orci imperdiet
- sollicitudin. Nunc id facilisis dui. Proin elementum et
- massa et feugiat. Integer rutrum ullamcorper eleifend.
- Proin sit amet tincidunt risus. Sed nec augue congue eros
- accumsan tincidunt sed eget ex.
-</p>
-
-
-CSS
-
-@media (overflow-inline: scroll) {
- p {
- color: red;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#mf-overflow-inline', 'overflow-inline')}}
- {{Spec2('CSS4 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-overflow-inline est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui indique la façon dont l'appareil d'affichage gère le contenu qui dépasse de la zone d'affichage (viewport) dans l'axe logique en ligne (c'est-à-dire le sens correspondant au sens de lecture).Syntaxe
+
+overflow-inline est définit avec un mot-clé parmi ceux de la liste suivante :
+
+
+nonescrollExemples
+
+HTML
+
+<p>
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+ Nullam ac turpis eleifend, fringilla velit ac, aliquam tellus.
+ Vestibulum ante ipsum primis in faucibus orci luctus et
+ ultrices posuere cubilia Curae; Nunc velit erat, tempus id
+ rutrum sed, dapibus ut urna. Integer vehicula nibh a justo
+ imperdiet rutrum. Nam faucibus pretium orci imperdiet
+ sollicitudin. Nunc id facilisis dui. Proin elementum et
+ massa et feugiat. Integer rutrum ullamcorper eleifend.
+ Proin sit amet tincidunt risus. Sed nec augue congue eros
+ accumsan tincidunt sed eget ex.
+</p>
+
+
+CSS
+
+@media (overflow-inline: scroll) {
+ p {
+ color: red;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#mf-overflow-inline', 'overflow-inline')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+pointer est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet de vérifier si le dispositif de saisie/d'entrée principal est un dispositif de pointage et, le cas échéant, de connaître sa précision.any-pointer.Syntaxe
-
-
-
-
-nonecoarsefineExemples
-
-HTML
-
-<input id="test" type="checkbox" />
-<label for="test">Coucou !</label>
-
-CSS
-
-input[type="checkbox"]:checked {
- background: gray;
-}
-
-@media (pointer: fine) {
- input[type="checkbox"] {
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- width: 15px;
- height: 15px;
- border: 1px solid blue;
- }
-}
-
-@media (pointer: coarse) {
- input[type="checkbox"] {
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- width: 30px;
- height: 30px;
- border: 2px solid red;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#pointer', 'pointer')}}
- {{Spec2('CSS4 Media Queries')}}
- Ajout dans la spécification de niveau 4 pour les requêtes média.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/@media/pointer/index.md b/files/fr/web/css/@media/pointer/index.md
new file mode 100644
index 0000000000..6fecdf4b85
--- /dev/null
+++ b/files/fr/web/css/@media/pointer/index.md
@@ -0,0 +1,99 @@
+---
+title: pointer
+slug: Web/CSS/@media/pointer
+tags:
+ - CSS
+ - Caractéristique média
+ - Reference
+translation_of: Web/CSS/@media/pointer
+---
+pointer est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet de vérifier si le dispositif de saisie/d'entrée principal est un dispositif de pointage et, le cas échéant, de connaître sa précision.any-pointer.Syntaxe
+
+
+
+
+nonecoarsefineExemples
+
+HTML
+
+<input id="test" type="checkbox" />
+<label for="test">Coucou !</label>
+
+CSS
+
+input[type="checkbox"]:checked {
+ background: gray;
+}
+
+@media (pointer: fine) {
+ input[type="checkbox"] {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ appearance: none;
+ width: 15px;
+ height: 15px;
+ border: 1px solid blue;
+ }
+}
+
+@media (pointer: coarse) {
+ input[type="checkbox"] {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ appearance: none;
+ width: 30px;
+ height: 30px;
+ border: 2px solid red;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#pointer', 'pointer')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Ajout dans la spécification de niveau 4 pour les requêtes média.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/@media/prefers-color-scheme/index.html b/files/fr/web/css/@media/prefers-color-scheme/index.html
deleted file mode 100644
index 4476aacdf7..0000000000
--- a/files/fr/web/css/@media/prefers-color-scheme/index.html
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: prefers-color-scheme
-slug: Web/CSS/@media/prefers-color-scheme
-tags:
- - '@media'
- - CSS
- - Caractéristique média
- - Reference
-translation_of: Web/CSS/@media/prefers-color-scheme
----
-privacy.resistFingerprinting à vrai, le paramètre {{cssxref("@media/prefers-color-scheme", "prefers-color-scheme")}} sera redéfini à light.
- Sinon, vous pouvez créer le paramètre numérique ui.systemUsesDarkTheme pour redéfinier le comportement par défaut et retourner light (valeur : 0), dark (valeur : 1), or no-preference (valeur : 2). (Firefox retourneralight si une autre valeur est utilisée.)prefers-color-scheme permet de détecter les préférences exprimées par l'utilisateur quant au thème à utiliser (sombre ou clair).Syntaxe
-
-
-
-
-lightdarkExemples
-
-CSS
-
-.day { background: #eee; color: black; }
-.night { background: #333; color: white; }
-
-@media (prefers-color-scheme: dark) {
- .day.dark-scheme { background: #333; color: white; }
- .night.dark-scheme { background: black; color: #ddd; }
-}
-
-@media (prefers-color-scheme: light) {
- .day.light-scheme { background: white; color: #555; }
- .night.light-scheme { background: #eee; color: black; }
-}
-
-.day, .night {
- display: inline-block;
- padding: 1em;
- width: 7em;
- height: 2em;
- vertical-align: middle;
-}
-
-
-HTML
-
-<div class="day">Jour (initial)</div>
-<div class="day light-scheme">Jour (modifié si utilisation d'un thème clair)</div>
-<div class="day dark-scheme">Jour (modifié si utilisation d'un thème sombre)</div> <br>
-
-<div class="night">Nuit (initial)</div>
-<div class="night light-scheme">Nuit (modifié si utilisation d'un thème clair)</div>
-<div class="night dark-scheme">Nuit (modifié si utilisation d'un thème sombre)</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS5 Media Queries', '#descdef-media-prefers-color-scheme', 'prefers-color-scheme')}}
- {{Spec2('CSS5 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
-
-privacy.resistFingerprinting à vrai, le paramètre {{cssxref("@media/prefers-color-scheme", "prefers-color-scheme")}} sera redéfini à light.
+ Sinon, vous pouvez créer le paramètre numérique ui.systemUsesDarkTheme pour redéfinier le comportement par défaut et retourner light (valeur : 0), dark (valeur : 1), or no-preference (valeur : 2). (Firefox retourneralight si une autre valeur est utilisée.)prefers-color-scheme permet de détecter les préférences exprimées par l'utilisateur quant au thème à utiliser (sombre ou clair).Syntaxe
+
+
+
+
+lightdarkExemples
+
+CSS
+
+.day { background: #eee; color: black; }
+.night { background: #333; color: white; }
+
+@media (prefers-color-scheme: dark) {
+ .day.dark-scheme { background: #333; color: white; }
+ .night.dark-scheme { background: black; color: #ddd; }
+}
+
+@media (prefers-color-scheme: light) {
+ .day.light-scheme { background: white; color: #555; }
+ .night.light-scheme { background: #eee; color: black; }
+}
+
+.day, .night {
+ display: inline-block;
+ padding: 1em;
+ width: 7em;
+ height: 2em;
+ vertical-align: middle;
+}
+
+
+HTML
+
+<div class="day">Jour (initial)</div>
+<div class="day light-scheme">Jour (modifié si utilisation d'un thème clair)</div>
+<div class="day dark-scheme">Jour (modifié si utilisation d'un thème sombre)</div> <br>
+
+<div class="night">Nuit (initial)</div>
+<div class="night light-scheme">Nuit (modifié si utilisation d'un thème clair)</div>
+<div class="night dark-scheme">Nuit (modifié si utilisation d'un thème sombre)</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS5 Media Queries', '#descdef-media-prefers-color-scheme', 'prefers-color-scheme')}}
+ {{Spec2('CSS5 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
+
+prefers-contrast permet de détecter si l'utilisateur a configuré son système pour utiliser un contraste élevé.Syntaxe
-
-
-
-
-no-preferencefalse dans un contexte booléen.highlowPréférences utilisateur
-
-Exemples
-
-HTML
-
-<div class="contrast">Une boîte avec un contraste faible.</div>
-
-
-CSS
-
-.contrast {
- color: grey;
-}
-
-@media (prefers-contrast: high) {
- .contrast {
- color: black;
- }
-}
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Specification
- État
- Commentaires
-
-
-
-{{SpecName('CSS5 Media Queries', '#descdef-media-prefers-contrast', 'prefers-contrast')}}
- {{Spec2('CSS5 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
-
--ms-high-contrastprefers-contrast permet de détecter si l'utilisateur a configuré son système pour utiliser un contraste élevé.Syntaxe
+
+
+
+
+no-preferencefalse dans un contexte booléen.highlowPréférences utilisateur
+
+Exemples
+
+HTML
+
+<div class="contrast">Une boîte avec un contraste faible.</div>
+
+
+CSS
+
+.contrast {
+ color: grey;
+}
+
+@media (prefers-contrast: high) {
+ .contrast {
+ color: black;
+ }
+}
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Specification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS5 Media Queries', '#descdef-media-prefers-contrast', 'prefers-contrast')}}
+ {{Spec2('CSS5 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
+
+-ms-high-contrastprefers-reduced-motion détecte si l'utilisateur a demandé au système de minimiser la quantité d'animation ou de mouvement.Syntaxe
-
-
-
-
-no-preferencereduceGestion des préférences
-
-reduce est utilisée par le moteur selon des conditions provenant du système d'exploitation/environnement de bureau :
-
-
-gtk-enable-animation vaut false. Cela peut être configuré par le menu « Ajustements » de Gnome.about:config de Firefox : Ajoutez une préférence numérique appelée ui.prefersReducedMotion et définissez sa valeur soit à 0 pour des animations complètes, soit à 1 pour indiquer une préférence pour des mouvements réduits. Les modifications apportées à cette préférence prennent effet immédiatement.Exemple
-
-HTML
-
-<div class="animation">boîte animée</div>
-
-
-CSS
-
-.animation {
- animation: vibrate 0.3s linear infinite both;
-}
-
-@media (prefers-reduced-motion: reduce) {
- .animation {
- animation: none;
- }
-}
-
-
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- Statut
- Commentaire
-
-
-
-{{SpecName('CSS5 Media Queries', '#descdef-media-prefers-reduced-motion', 'prefers-reduced-motion')}}
- {{Spec2('CSS5 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@media/prefers-reduced-motion/index.md b/files/fr/web/css/@media/prefers-reduced-motion/index.md
new file mode 100644
index 0000000000..daf259477f
--- /dev/null
+++ b/files/fr/web/css/@media/prefers-reduced-motion/index.md
@@ -0,0 +1,140 @@
+---
+title: prefers-reduced-motion
+slug: Web/CSS/@media/prefers-reduced-motion
+tags:
+ - '@media'
+ - Accessibility
+ - CSS
+ - Media Queries
+ - Reference
+ - media feature
+translation_of: Web/CSS/@media/prefers-reduced-motion
+---
+prefers-reduced-motion détecte si l'utilisateur a demandé au système de minimiser la quantité d'animation ou de mouvement.Syntaxe
+
+
+
+
+no-preferencereduceGestion des préférences
+
+reduce est utilisée par le moteur selon des conditions provenant du système d'exploitation/environnement de bureau :
+
+
+gtk-enable-animation vaut false. Cela peut être configuré par le menu « Ajustements » de Gnome.about:config de Firefox : Ajoutez une préférence numérique appelée ui.prefersReducedMotion et définissez sa valeur soit à 0 pour des animations complètes, soit à 1 pour indiquer une préférence pour des mouvements réduits. Les modifications apportées à cette préférence prennent effet immédiatement.Exemple
+
+HTML
+
+<div class="animation">boîte animée</div>
+
+
+CSS
+
+.animation {
+ animation: vibrate 0.3s linear infinite both;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .animation {
+ animation: none;
+ }
+}
+
+
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ Statut
+ Commentaire
+
+
+
+{{SpecName('CSS5 Media Queries', '#descdef-media-prefers-reduced-motion', 'prefers-reduced-motion')}}
+ {{Spec2('CSS5 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@media/resolution/index.html b/files/fr/web/css/@media/resolution/index.html
deleted file mode 100644
index 771d463cd5..0000000000
--- a/files/fr/web/css/@media/resolution/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: resolution
-slug: Web/CSS/@media/resolution
-tags:
- - CSS
- - Caractéristique média
- - Reference
-translation_of: Web/CSS/@media/resolution
----
-resolution est une caractéristique média CSS dont la valeur représente la densité de pixels de l'appareil d'affichage.Syntaxe
-
-resolution est une valeur de type {{cssxref("<resolution>")}} qui représente la densité de pixels de l'appareil d'affichage. C'est une caractéristique d'intervalle, cela signifie qu'on peut utiliser les variantes préfixées min-resolution et max-resolution afin d'établir des règles selon un minimum ou un maximum.Exemples
-
-HTML
-
-<p>Un test pour la densité de pixels de votre appareil.</p>
-
-
-CSS
-
-/* Résolution exacte */
-@media (resolution: 150dpi) {
- p {
- color: red;
- }
-}
-
-/* Résolution minimale */
-@media (min-resolution: 72dpi) {
- p {
- text-decoration: underline;
- }
-}
-
-/* Résolution maximale */
-@media (max-resolution: 300dpi) {
- p {
- background: yellow;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Media Queries', '#resolution', 'resolution')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-resolution est une caractéristique média CSS dont la valeur représente la densité de pixels de l'appareil d'affichage.Syntaxe
+
+resolution est une valeur de type {{cssxref("<resolution>")}} qui représente la densité de pixels de l'appareil d'affichage. C'est une caractéristique d'intervalle, cela signifie qu'on peut utiliser les variantes préfixées min-resolution et max-resolution afin d'établir des règles selon un minimum ou un maximum.Exemples
+
+HTML
+
+<p>Un test pour la densité de pixels de votre appareil.</p>
+
+
+CSS
+
+/* Résolution exacte */
+@media (resolution: 150dpi) {
+ p {
+ color: red;
+ }
+}
+
+/* Résolution minimale */
+@media (min-resolution: 72dpi) {
+ p {
+ text-decoration: underline;
+ }
+}
+
+/* Résolution maximale */
+@media (max-resolution: 300dpi) {
+ p {
+ background: yellow;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Media Queries', '#resolution', 'resolution')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+scripting est une caractéristique média CSS qui permet de savoir si les outils de script (ex. JavaScript) sont disponibles.Syntaxe
-
-scripting est définie avec un mot-clé parmi les suivants :
-
-
-noneinitial-onlyenabledExemples
-
-HTML
-
-<p class="script-none">Les outils de script ne sont pas disponibles. :-(</p>
-<p class="script-initial-only">Les outils de script sont uniquement disponibles au chargement initial.</p>
-<p class="script-enabled">Les outils de script sont activés ! :-)</p>
-
-
-CSS
-
-p {
- color: lightgray;
-}
-
-@media (scripting: none) {
- .script-none {
- color: red;
- }
-}
-
-@media (scripting: initial-only) {
- .script-initial-only {
- color: red;
- }
-}
-
-@media (scripting: enabled) {
- .script-enabled {
- color: red;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#scripting', 'scripting')}}
- {{Spec2('CSS4 Media Queries')}}
- Reporté à la spécification Media Queries Level 5.
- Compatibilité des navigateurs
-
-scripting est une caractéristique média CSS qui permet de savoir si les outils de script (ex. JavaScript) sont disponibles.Syntaxe
+
+scripting est définie avec un mot-clé parmi les suivants :
+
+
+noneinitial-onlyenabledExemples
+
+HTML
+
+<p class="script-none">Les outils de script ne sont pas disponibles. :-(</p>
+<p class="script-initial-only">Les outils de script sont uniquement disponibles au chargement initial.</p>
+<p class="script-enabled">Les outils de script sont activés ! :-)</p>
+
+
+CSS
+
+p {
+ color: lightgray;
+}
+
+@media (scripting: none) {
+ .script-none {
+ color: red;
+ }
+}
+
+@media (scripting: initial-only) {
+ .script-initial-only {
+ color: red;
+ }
+}
+
+@media (scripting: enabled) {
+ .script-enabled {
+ color: red;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#scripting', 'scripting')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Reporté à la spécification Media Queries Level 5.
+ Compatibilité des navigateurs
+
+shape peut être utilisée afin de tester la forme d'un appareil pour distinguer les affichages rectangulaires des affichages ronds.Syntaxe
-
-shape peut prendre une valeur parmi deux valeurs définies : rect qui représente un écran rectangulaire ou round qui représente un écran circulaire, ovale ou elliptique.
-
-
-rectroundExemples
-
-Exemple simple
-
-HTML
-
-<h1>Coucou le monde !</h1>
-
-
-CSS
-
-h1 {
- text-align: left;
-}
-
-@media (shape: rect) {
- h1 {
- text-align: left;
- }
-}
-
-@media (shape: round) {
- h1 {
- text-align: center;
- }
-}
-
-
-Résultat
-
-Feuille de style spécifique
-
-
-
-<head>
- <link rel="stylesheet" href="default.css" />
- <link media="screen and (shape: rect)" rel="stylesheet" href="rectangle.css" />
- <link media="screen and (shape: round)" rel="stylesheet" href="round.css" />
-</head>
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-CSS Round Display Level 1
- Brouillon
- Définition initiale.
- Compatibilité des navigateurs
-
-shape peut être utilisée afin de tester la forme d'un appareil pour distinguer les affichages rectangulaires des affichages ronds.Syntaxe
+
+shape peut prendre une valeur parmi deux valeurs définies : rect qui représente un écran rectangulaire ou round qui représente un écran circulaire, ovale ou elliptique.
+
+
+rectroundExemples
+
+Exemple simple
+
+HTML
+
+<h1>Coucou le monde !</h1>
+
+
+CSS
+
+h1 {
+ text-align: left;
+}
+
+@media (shape: rect) {
+ h1 {
+ text-align: left;
+ }
+}
+
+@media (shape: round) {
+ h1 {
+ text-align: center;
+ }
+}
+
+
+Résultat
+
+Feuille de style spécifique
+
+
+
+<head>
+ <link rel="stylesheet" href="default.css" />
+ <link media="screen and (shape: rect)" rel="stylesheet" href="rectangle.css" />
+ <link media="screen and (shape: round)" rel="stylesheet" href="round.css" />
+</head>
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+CSS Round Display Level 1
+ Brouillon
+ Définition initiale.
+ Compatibilité des navigateurs
+
+update est une caractéristique média (cf. {{cssxref("@media")}}) qui permet de vérifier la vitesse à laquelle l'appareil d'affichage peut modifier l'apparence du contenu.Syntaxe
-
-update est définie avec un mot-clé parmi ceux de la liste ci-après.
-
-
-noneslowfastExemples
-
-HTML
-
-<p>
- Si ce texte est animé, cela signifie que vous utilisez
- un appareil avec un affichage qui évolue rapidement.
-</p>
-
-
-CSS
-
-@keyframes jiggle {
- from {
- transform: translateY(0);
- }
-
- to {
- transform: translateY(25px);
- }
-}
-
-@media (update: fast) {
- p {
- animation: 1s jiggle linear alternate infinite;
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Media Queries', '#update', 'update')}}
- {{Spec2('CSS4 Media Queries')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-update est une caractéristique média (cf. {{cssxref("@media")}}) qui permet de vérifier la vitesse à laquelle l'appareil d'affichage peut modifier l'apparence du contenu.Syntaxe
+
+update est définie avec un mot-clé parmi ceux de la liste ci-après.
+
+
+noneslowfastExemples
+
+HTML
+
+<p>
+ Si ce texte est animé, cela signifie que vous utilisez
+ un appareil avec un affichage qui évolue rapidement.
+</p>
+
+
+CSS
+
+@keyframes jiggle {
+ from {
+ transform: translateY(0);
+ }
+
+ to {
+ transform: translateY(25px);
+ }
+}
+
+@media (update: fast) {
+ p {
+ animation: 1s jiggle linear alternate infinite;
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Media Queries', '#update', 'update')}}
+ {{Spec2('CSS4 Media Queries')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+width est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet d'appliquer des styles différents en fonction de la largeur de la zone d'affichage (viewport) ou de la largeur de la page (pour les média paginés). La largeur est exprimée comme une longueur CSS (type {{cssxref("<length>")}}.Syntaxe
-
-width est une valeur décrivant la largeur d'affichage, les versions préfixées min-width et max-width peuvent également être utilisées afin de décrire la largeur minimale (resp. la largeur maximale)./* Largeur exacte */
-@media (width: 300px) {}
-
-/* Un viewport avec une largeur minimale */
-@media (min-width: 50em) {}
-
-/* Un viewport avec une largeur maximale */
-@media (max-width: 1000px) {}
-
-
-Exemples
-
-HTML
-
-<div>Observez cet élément lorsque vous redimensionnez la largeur du viewport.</div>
-
-CSS
-
-/* Largeur exacte */
-@media (width: 360px) {
- div {
- color: red;
- }
-}
-
-/* Largeur minimale */
-@media (min-width: 35rem) {
- div {
- background: yellow;
- }
-}
-
-/* Largeur maximale */
-@media (max-width: 50rem) {
- div {
- border: 2px solid blue;
- }
-}
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Media Queries', '#width', 'width')}}
- {{Spec2('CSS4 Media Queries')}}
- La valeur peut désormais être négative (ce qui correspond à un booléen faux).
-
-
-
-{{SpecName('CSS3 Media Queries', '#width', 'width')}}
- {{Spec2('CSS3 Media Queries')}}
- Définition initiale. La valeur ne peut pas être négative.
- Compatibilité des navigateurs
-
-width est une caractéristique média CSS (cf. {{cssxref("@media")}}) qui permet d'appliquer des styles différents en fonction de la largeur de la zone d'affichage (viewport) ou de la largeur de la page (pour les média paginés). La largeur est exprimée comme une longueur CSS (type {{cssxref("<length>")}}.Syntaxe
+
+width est une valeur décrivant la largeur d'affichage, les versions préfixées min-width et max-width peuvent également être utilisées afin de décrire la largeur minimale (resp. la largeur maximale)./* Largeur exacte */
+@media (width: 300px) {}
+
+/* Un viewport avec une largeur minimale */
+@media (min-width: 50em) {}
+
+/* Un viewport avec une largeur maximale */
+@media (max-width: 1000px) {}
+
+
+Exemples
+
+HTML
+
+<div>Observez cet élément lorsque vous redimensionnez la largeur du viewport.</div>
+
+CSS
+
+/* Largeur exacte */
+@media (width: 360px) {
+ div {
+ color: red;
+ }
+}
+
+/* Largeur minimale */
+@media (min-width: 35rem) {
+ div {
+ background: yellow;
+ }
+}
+
+/* Largeur maximale */
+@media (max-width: 50rem) {
+ div {
+ border: 2px solid blue;
+ }
+}
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Media Queries', '#width', 'width')}}
+ {{Spec2('CSS4 Media Queries')}}
+ La valeur peut désormais être négative (ce qui correspond à un booléen faux).
+
+
+
+{{SpecName('CSS3 Media Queries', '#width', 'width')}}
+ {{Spec2('CSS3 Media Queries')}}
+ Définition initiale. La valeur ne peut pas être négative.
+ Compatibilité des navigateurs
+
+@namespace est une règle @ qui définit les espaces de noms XML utilisés dans une feuille de style CSS. Les espaces de noms définis sont alors utilisés pour restreindre les sélecteurs universels, de type, et d'attribut afin que ceux-ci ne sélectionnent que les éléments contenus dans cet espace de nom. La règle @namespace est généralement utilisée lorsqu'on manipule des documents entremêlant différents espaces de noms (par exemple, un document HTML5 qui contient du SVG en ligne ou du MathML ou alors un fichier XML qui est composé de plusieurs vocabulaires).@namespace url(http://www.w3.org/1999/xhtml);
-@namespace svg url(http://www.w3.org/2000/svg);
-
-/* Cela correspond à tous les éléments XHTML <a>
- car XHTML est l'espace de nom par défaut, sans
- préfixe. */
-a {}
-
-/* Cela correspond à tous les éléments SVG <a> */
-svg|a {}
-
-/* Cela correspond aux éléments <a> XHTML et SVG */
-*|a {}
-
-
-@namespace doivent suivre les règles @ {{cssxref("@charset")}} et {{cssxref("@import")}} et précéder les autres règles @ ainsi que les déclarations de style contenus dans la feuille de style.@namespace peut être utilisée afin de définir l'espace de noms par défaut de la feuille de style. Lorsqu'un espace de noms par défaut est définit, les sélecteurs universels et les sélecteurs de types (pas les sélecteurs d'attribut, cf. note ci-après) ne s'appliqueront qu'aux éléments de cet espace de noms.@namespace peut également être utilisée afin de définir un préfixe d'espace de noms. Lorsqu'un sélecteur universel, de type ou d'attribut est préfixé avec le préfixe de l'espace de noms, ce sélecteur ne ciblera les éléments que si l'espace de nom et le nom ou l'attribut de l'élément correspond.http://www.w3.org/1999/xhtml) même s'il n'y a aucun attribut xmlns dans le document. Les éléments <svg> et <math> seront affectés à leurs espaces de noms respectifs (http://www.w3.org/2000/svg et http://www.w3.org/1998/Math/MathML).xlink:href), cet attribut n'est rattaché à aucun espace de noms. Autrement dit, les attributs n'héritent pas de l'espace de noms de l'élément auquel ils sont rattachés. Afin de respecter ce comportement, l'espace de noms par défaut n'est pas appliqué aux sélecteurs d'attributs.Syntaxe
-
-/* Espace de noms par défaut */
-@namespace url(XML-namespace-URL);
-@namespace "XML-namespace-URL";
-
-/* Espace de noms préfixé */
-@namespace préfixe url(XML-namespace-URL);
-@namespace préfixe "XML-namespace-URL";
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Namespaces', '#declaration', '@namespace')}}
- {{Spec2('CSS3 Namespaces')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-@namespace est une règle @ qui définit les espaces de noms XML utilisés dans une feuille de style CSS. Les espaces de noms définis sont alors utilisés pour restreindre les sélecteurs universels, de type, et d'attribut afin que ceux-ci ne sélectionnent que les éléments contenus dans cet espace de nom. La règle @namespace est généralement utilisée lorsqu'on manipule des documents entremêlant différents espaces de noms (par exemple, un document HTML5 qui contient du SVG en ligne ou du MathML ou alors un fichier XML qui est composé de plusieurs vocabulaires).@namespace url(http://www.w3.org/1999/xhtml);
+@namespace svg url(http://www.w3.org/2000/svg);
+
+/* Cela correspond à tous les éléments XHTML <a>
+ car XHTML est l'espace de nom par défaut, sans
+ préfixe. */
+a {}
+
+/* Cela correspond à tous les éléments SVG <a> */
+svg|a {}
+
+/* Cela correspond aux éléments <a> XHTML et SVG */
+*|a {}
+
+
+@namespace doivent suivre les règles @ {{cssxref("@charset")}} et {{cssxref("@import")}} et précéder les autres règles @ ainsi que les déclarations de style contenus dans la feuille de style.@namespace peut être utilisée afin de définir l'espace de noms par défaut de la feuille de style. Lorsqu'un espace de noms par défaut est définit, les sélecteurs universels et les sélecteurs de types (pas les sélecteurs d'attribut, cf. note ci-après) ne s'appliqueront qu'aux éléments de cet espace de noms.@namespace peut également être utilisée afin de définir un préfixe d'espace de noms. Lorsqu'un sélecteur universel, de type ou d'attribut est préfixé avec le préfixe de l'espace de noms, ce sélecteur ne ciblera les éléments que si l'espace de nom et le nom ou l'attribut de l'élément correspond.http://www.w3.org/1999/xhtml) même s'il n'y a aucun attribut xmlns dans le document. Les éléments <svg> et <math> seront affectés à leurs espaces de noms respectifs (http://www.w3.org/2000/svg et http://www.w3.org/1998/Math/MathML).xlink:href), cet attribut n'est rattaché à aucun espace de noms. Autrement dit, les attributs n'héritent pas de l'espace de noms de l'élément auquel ils sont rattachés. Afin de respecter ce comportement, l'espace de noms par défaut n'est pas appliqué aux sélecteurs d'attributs.Syntaxe
+
+/* Espace de noms par défaut */
+@namespace url(XML-namespace-URL);
+@namespace "XML-namespace-URL";
+
+/* Espace de noms préfixé */
+@namespace préfixe url(XML-namespace-URL);
+@namespace préfixe "XML-namespace-URL";
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Namespaces', '#declaration', '@namespace')}}
+ {{Spec2('CSS3 Namespaces')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+@page est utilisée afin de modifier certaines propriétés CSS lorsqu'on imprime un document. La règle @page ne permet par de modifier toutes les propriétés mais uniquement celles qui portent sur les marges, les lignes orphelines et veuves ainsi que les sauts de page du document. Si on utilise cette règle @ pour modifier une autre propriété, ce changement sera ignoré.@page {
- margin: 1cm;
-}
-
-@page :first {
- margin: 2cm;
-}
-
-@page peut être manipulée via le CSSOM, notamment avec l'interface {{domxref("CSSPageRule")}}.vh, vw, vmin et vmax. En attendant, il est conseillé de ne pas les utiliser au sein d'une règle @page.Syntaxe
-
-Descripteurs
-
-
-
-
-size
-
-
-marks
-
-
-bleedSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@page :first {
- margin: 2cm 3cm;
-}
-
-@page :
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS Logical Properties', '#logical-page', ':recto and :verso')}}
- {{Spec2('CSS Logical Properties')}}
- Ajout des sélecteurs de page
- :recto et :verso.
-
- {{SpecName('CSS3 Paged Media', '#at-page-rule', '@page')}}
- {{Spec2('CSS3 Paged Media')}}
- Aucun changement depuis {{SpecName('CSS2.1')}}, bien que plus de règles @ puissent être utilisées au sein d'une règle
- @page.
-
-
-{{SpecName('CSS2.1', 'page.html#page-selectors', '@page')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/@page/index.md b/files/fr/web/css/@page/index.md
new file mode 100644
index 0000000000..9d44d62546
--- /dev/null
+++ b/files/fr/web/css/@page/index.md
@@ -0,0 +1,105 @@
+---
+title: '@page'
+slug: Web/CSS/@page
+tags:
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@page
+---
+@page est utilisée afin de modifier certaines propriétés CSS lorsqu'on imprime un document. La règle @page ne permet par de modifier toutes les propriétés mais uniquement celles qui portent sur les marges, les lignes orphelines et veuves ainsi que les sauts de page du document. Si on utilise cette règle @ pour modifier une autre propriété, ce changement sera ignoré.@page {
+ margin: 1cm;
+}
+
+@page :first {
+ margin: 2cm;
+}
+
+@page peut être manipulée via le CSSOM, notamment avec l'interface {{domxref("CSSPageRule")}}.vh, vw, vmin et vmax. En attendant, il est conseillé de ne pas les utiliser au sein d'une règle @page.Syntaxe
+
+Descripteurs
+
+
+
+
+size
+
+
+marks
+
+
+bleedSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@page :first {
+ margin: 2cm 3cm;
+}
+
+@page :
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS Logical Properties', '#logical-page', ':recto and :verso')}}
+ {{Spec2('CSS Logical Properties')}}
+ Ajout des sélecteurs de page
+ :recto et :verso.
+
+ {{SpecName('CSS3 Paged Media', '#at-page-rule', '@page')}}
+ {{Spec2('CSS3 Paged Media')}}
+ Aucun changement depuis {{SpecName('CSS2.1')}}, bien que plus de règles @ puissent être utilisées au sein d'une règle
+ @page.
+
+
+{{SpecName('CSS2.1', 'page.html#page-selectors', '@page')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/@page/size/index.html b/files/fr/web/css/@page/size/index.html
deleted file mode 100644
index 89d4723b4d..0000000000
--- a/files/fr/web/css/@page/size/index.html
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: size
-slug: Web/CSS/@page/size
-tags:
- - CSS
- - Descripteur
- - Experimental
- - Reference
-translation_of: Web/CSS/@page/size
----
-size, associé à la règle @ {{cssxref("@page")}}, permet de définir les dimensions et l'orientation de la boîte utilisée pour représenter une page. La plupart du temps, cette taille correspondra à la totalité de la taille de la page imprimée.Syntaxe
-
-/* Des mots-clés qui peuvent être utilisées
- pour remplir l'espace disponible */
-size: auto;
-size: portrait;
-size: landscape;
-
-/* Des valeurs de longueur */
-/* Type <length> */
-/* 1 valeur : hauteur = largeur */
-size: 6in;
-
-/* 2 valeurs : la largeur puis la hauteur */
-size: 4in 6in;
-
-/* Des mots-clés qui représentent des */
-/* dimensions absolues */
-size: A4;
-size: B5;
-size: JIS-B4;
-size: letter;
-
-/* Une déclaration incluant la taille et l'orientation */
-size: A4 portrait;
-
-
-Valeurs
-
-
-
-
-autolandscapeportrait<length><page-size>
-
- A5A4A3B5B4JIS-B5JIS-B4letterlegalledgerExemples
-
-@page {
- size: 4cm 6cm landscape;
-}
-
-
-@media print {
- @page {
- size: 50mm 150mm;
- }
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Paged Media', '#size', 'size')}}
- {{Spec2('CSS3 Paged Media')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@page/size/index.md b/files/fr/web/css/@page/size/index.md
new file mode 100644
index 0000000000..89d4723b4d
--- /dev/null
+++ b/files/fr/web/css/@page/size/index.md
@@ -0,0 +1,125 @@
+---
+title: size
+slug: Web/CSS/@page/size
+tags:
+ - CSS
+ - Descripteur
+ - Experimental
+ - Reference
+translation_of: Web/CSS/@page/size
+---
+size, associé à la règle @ {{cssxref("@page")}}, permet de définir les dimensions et l'orientation de la boîte utilisée pour représenter une page. La plupart du temps, cette taille correspondra à la totalité de la taille de la page imprimée.Syntaxe
+
+/* Des mots-clés qui peuvent être utilisées
+ pour remplir l'espace disponible */
+size: auto;
+size: portrait;
+size: landscape;
+
+/* Des valeurs de longueur */
+/* Type <length> */
+/* 1 valeur : hauteur = largeur */
+size: 6in;
+
+/* 2 valeurs : la largeur puis la hauteur */
+size: 4in 6in;
+
+/* Des mots-clés qui représentent des */
+/* dimensions absolues */
+size: A4;
+size: B5;
+size: JIS-B4;
+size: letter;
+
+/* Une déclaration incluant la taille et l'orientation */
+size: A4 portrait;
+
+
+Valeurs
+
+
+
+
+autolandscapeportrait<length><page-size>
+
+ A5A4A3B5B4JIS-B5JIS-B4letterlegalledgerExemples
+
+@page {
+ size: 4cm 6cm landscape;
+}
+
+
+@media print {
+ @page {
+ size: 50mm 150mm;
+ }
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Paged Media', '#size', 'size')}}
+ {{Spec2('CSS3 Paged Media')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@property/index.html b/files/fr/web/css/@property/index.html
deleted file mode 100644
index cdcb5770ff..0000000000
--- a/files/fr/web/css/@property/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: '@property'
-slug: Web/CSS/@property
-browser-compat: css.at-rules.property
-translation_of: 'Web/CSS/@property'
----
-@property fait partie du panel d'API CSS Houdini, qui permet de définir explicitement leurs propriétés CSS personnalisées (voir {{cssxref('--*', 'CSS custom properties')}}). Cela permet la vérification des types de propriétés, de leur donner des valeurs par défaut et de déterminer si une propriété peut hériter ses valeurs ou non.@property permet l'enregistrement d'une propriété personnalisée directement dans une feuille de styles sans avoir à utiliser la moindre ligne de JavaScript. Une règle @property valide enregistre une nouvelle propriété personnalisée comme si {{domxref('CSS.registerProperty')}} avait été appelé avec les mêmes paramètres.Syntaxe
-
-@property --property-name {
- syntax: '<color>';
- inherits: false;
- initial-value: #c0ffee;
-}
-
-Descripteurs
-
-
-
-
-@property hérite ou non par défaut.@property valide enregistre une propriété personnalisée avec comme nom de propriété la sérialisation de du préfixe de la règle.@property nécessite le respecte d'une syntaxe (voir {{cssxref("@property/syntax","syntax")}}) et une description d'héritage (voir {{cssxref("@property/inherits","inherits")}}). Si l'un des deux manque, l'ensemble de la règle est invalide et celle-ci doit être ignorée. Le descripteur {{cssxref("@property/initial-value","initial-value")}} est optionnel, uniquement si la syntaxe est une définition de syntaxe universelle. Sinon, le descripteur est requis (s'il manque, l'ensemble de la règle est invalide et celle-ci doit être ignorée).@property.Exemples
-
---my-color en tant que couleur et que valeur par défaut, sans lui permettre d'hériter de sa valeur :@property --my-color {
- syntax: '<color>';
- inherits: false;
- initial-value: #c0ffee;
-}
-
-
-window.CSS.registerProperty({
- name: '--my-color',
- syntax: '<color>',
- inherits: false,
- initialValue: '#c0ffee',
-});
-
-
-Syntaxe formelle
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@property/index.md b/files/fr/web/css/@property/index.md
new file mode 100644
index 0000000000..cdcb5770ff
--- /dev/null
+++ b/files/fr/web/css/@property/index.md
@@ -0,0 +1,80 @@
+---
+title: '@property'
+slug: Web/CSS/@property
+browser-compat: css.at-rules.property
+translation_of: 'Web/CSS/@property'
+---
+@property fait partie du panel d'API CSS Houdini, qui permet de définir explicitement leurs propriétés CSS personnalisées (voir {{cssxref('--*', 'CSS custom properties')}}). Cela permet la vérification des types de propriétés, de leur donner des valeurs par défaut et de déterminer si une propriété peut hériter ses valeurs ou non.@property permet l'enregistrement d'une propriété personnalisée directement dans une feuille de styles sans avoir à utiliser la moindre ligne de JavaScript. Une règle @property valide enregistre une nouvelle propriété personnalisée comme si {{domxref('CSS.registerProperty')}} avait été appelé avec les mêmes paramètres.Syntaxe
+
+@property --property-name {
+ syntax: '<color>';
+ inherits: false;
+ initial-value: #c0ffee;
+}
+
+Descripteurs
+
+
+
+
+@property hérite ou non par défaut.@property valide enregistre une propriété personnalisée avec comme nom de propriété la sérialisation de du préfixe de la règle.@property nécessite le respecte d'une syntaxe (voir {{cssxref("@property/syntax","syntax")}}) et une description d'héritage (voir {{cssxref("@property/inherits","inherits")}}). Si l'un des deux manque, l'ensemble de la règle est invalide et celle-ci doit être ignorée. Le descripteur {{cssxref("@property/initial-value","initial-value")}} est optionnel, uniquement si la syntaxe est une définition de syntaxe universelle. Sinon, le descripteur est requis (s'il manque, l'ensemble de la règle est invalide et celle-ci doit être ignorée).@property.Exemples
+
+--my-color en tant que couleur et que valeur par défaut, sans lui permettre d'hériter de sa valeur :@property --my-color {
+ syntax: '<color>';
+ inherits: false;
+ initial-value: #c0ffee;
+}
+
+
+window.CSS.registerProperty({
+ name: '--my-color',
+ syntax: '<color>',
+ inherits: false,
+ initialValue: '#c0ffee',
+});
+
+
+Syntaxe formelle
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@supports/index.html b/files/fr/web/css/@supports/index.html
deleted file mode 100644
index 163bcdd89f..0000000000
--- a/files/fr/web/css/@supports/index.html
+++ /dev/null
@@ -1,207 +0,0 @@
----
-title: '@supports'
-slug: Web/CSS/@supports
-tags:
- - CSS
- - Reference
- - Règle @
-translation_of: Web/CSS/@supports
----
-@supports permet de définir des déclarations qui dépendent de la prise en charge du navigateur d'une ou plusieurs fonctionnalités CSS. Cette condition est définie par un ensemble de paires de propriété/valeur qui forment une combinaison de conjonctions, disjonctions, négations. Une telle condition est appelée « condition de prise en charge » (ou supports condition).@supports (display: grid) {
- div {
- display: grid;
- }
-}
-
-@supports not (display: grid) {
- div {
- float: right;
- }
-}
-
-@supports permet ainsi au moteur de rendu de tester la présence d'une fonctionnalité (on parle de feature query).@supports peut être utilisée au niveau le plus haut de la feuille de style et également à l'intérieur d'un groupe de règle conditionnel. Cette règle @ peut être manipulée via le modèle d'objets CSS et JavaScript, notamment via l'interface {{domxref("CSSSupportsRule")}}.Syntaxe
-
-and, or, not). La précédence des opérateurs peut être surchargée en utilisant des parenthèses autour des déclarations.Syntaxe déclarative
-
-@supports ( transform-origin: 5% 5% ) { }
-
-5% 5% est valide.Syntaxe fonctionnelle
-
-
-
-selector() {{Experimental_inline}}@supports selector(A > B) { }
-
-L'opérateur
-
-notnot peut être utilisée avant une expression afin de créer un expression dont le résultat logique est la négation du résultat de l'expression originale. Ainsi, l'expression suivante :@supports not ( transform-origin: 10em 10em 10em ) { }
-
-10em 10em 10em comme valide.not à une déclaration, quelle que soit sa complexité. Les exemples qui suivent sont donc des expressions valides :@supports not ( not ( transform-origin: 2px ) ) { }
-@supports (display: grid) and ( not (display: inline-grid) ) { }
-
-not entre parenthèses. Si on souhaite le combiner avec d'autres opérateurs comme and ou or, il faudra utiliser des parenthèses.L'opérateur
-
-andand peut être utilisé pour former une nouvelle expression à partir de deux expressions. L'expression résultante sera la conjonction des deux expressions originelles. Autrement dit, le résultat de cette nouvelle expression sera VRAI si et seulement si les deux expressions de départ sont vraies et FAUX sinon. Dans l'exemple suivant, l'expression complète ne sera vérifiée que si les deux expressions sont vérifiées :@supports (display: table-cell) and (display: list-item) { }
-
-@supports (display: table-cell) and (display: list-item) and (display:run-in) { }
-
-@supports (display: table-cell) and ((display: list-item) and (display:run-in)) { }
-
-L'opérateur
-
-oror peut être utilisé pour former une nouvelle expression à partir de deux expressions. L'expression résultante sera la disjonction des deux expressions originelles. Autrement dit, le résultat de cette nouvelle expression sera VRAI si au moins une des deux expressions est vraie. Dans l'exemple qui suit, l'expression complète est vérifiée si au moins une des deux (ce peuvent être les deux) expressions est vérifiée :@supports ( transform-style: preserve ) or ( -moz-transform-style: preserve ) { }
-
-@supports ( transform-style: preserve ) or ( -moz-transform-style: preserve ) or
- ( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve ) { }
-
-@supports ( transform-style: preserve-3d ) or (( -moz-transform-style: preserve-3d ) or
- (( -o-transform-style: preserve-3d ) or ( -webkit-transform-style: preserve-3d ))) { }
-
-and et l'opérateur or, il devient nécessaire d'utiliser des parenthèses pour que l'ordre d'application des opérateurs soit défini. Si on n'utilise pas de parenthèses, la condition sera considérée comme invalide et l'ensemble de la règle @ sera ignorée.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Tester la prise en charge d'une propriété CSS donnée
-
-@supports (animation-name: test) {
- … /* Du code CSS spécifique, appliqué quand les animations sont prises en charge sans préfixe */
- @keyframes { /* @supports est une règle @ qui peut inclure d'autres règles @ */
- …
- }
-}
-
-
-Tester la prise en charge d'une propriété CSS donnée ou d'une version préfixée
-
-@supports ( (perspective: 10px) or (-moz-perspective: 10px) or (-webkit-perspective: 10px) or
- (-ms-perspective: 10px) or (-o-perspective: 10px) ) {
- … /* Du code CSS spécifique, appliqué lorsque les transformations 3D,
- sont prises en charge, éventuellement avec un préfixe */
-}
-
-
-Tester l'absence de prise en charge d'une propriété CSS
-
-@supports not ((text-align-last:justify) or (-moz-text-align-last:justify) ){
- … /* Du code CSS spécifique, appliqué pour simuler text-align-last:justify */
-}
-
-Tester la prise en charge des propriétés personnalisées
-
-@supports (--toto: green) {
- body {
- color: --nomVar;
- }
-}
-
-Tester la prise en charge d'un sélecteur
-
-/* Cette règle ne sera pas appliquée si le navigateur */
-/* ne prend pas en charge :is() */
-:is(ul, ol) > li {
- … /* Le CSS à utiliser lorsque :is(…) est pris en charge */
-}
-
-@supports not selector(:is(a, b)) {
- /* Que faire lorsque :is() n'est pas pris en charge */
- ul > li,
- ol > li {
- …
- }
-}
-
-@supports selector(:nth-child(1n of a, b)) {
- /* Cette règle doit être placée dans un bloc @supports */
- /* Sinon elle pourra être partiellement appliquée pour les */
- /* navigateurs qui ne prennent pas en charge :is(…) */
- :is(nth-child(1n of ul, ol) a,
- details > summary) {
- … /* CSS appliqué quand le sélecteur :is(…) et quand la forme
- `of` pour :nth-child sont pris en charge */
- }
-}
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS4 Conditional", "#at-supports", "@supports")}}
- {{Spec2("CSS4 Conditional")}}
- Ajout de la fonction
- selector().
-
-
-{{SpecName("CSS3 Conditional", "#at-supports", "@supports")}}
- {{Spec2("CSS3 Conditional")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@supports/index.md b/files/fr/web/css/@supports/index.md
new file mode 100644
index 0000000000..163bcdd89f
--- /dev/null
+++ b/files/fr/web/css/@supports/index.md
@@ -0,0 +1,207 @@
+---
+title: '@supports'
+slug: Web/CSS/@supports
+tags:
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@supports
+---
+@supports permet de définir des déclarations qui dépendent de la prise en charge du navigateur d'une ou plusieurs fonctionnalités CSS. Cette condition est définie par un ensemble de paires de propriété/valeur qui forment une combinaison de conjonctions, disjonctions, négations. Une telle condition est appelée « condition de prise en charge » (ou supports condition).@supports (display: grid) {
+ div {
+ display: grid;
+ }
+}
+
+@supports not (display: grid) {
+ div {
+ float: right;
+ }
+}
+
+@supports permet ainsi au moteur de rendu de tester la présence d'une fonctionnalité (on parle de feature query).@supports peut être utilisée au niveau le plus haut de la feuille de style et également à l'intérieur d'un groupe de règle conditionnel. Cette règle @ peut être manipulée via le modèle d'objets CSS et JavaScript, notamment via l'interface {{domxref("CSSSupportsRule")}}.Syntaxe
+
+and, or, not). La précédence des opérateurs peut être surchargée en utilisant des parenthèses autour des déclarations.Syntaxe déclarative
+
+@supports ( transform-origin: 5% 5% ) { }
+
+5% 5% est valide.Syntaxe fonctionnelle
+
+
+
+selector() {{Experimental_inline}}@supports selector(A > B) { }
+
+L'opérateur
+
+notnot peut être utilisée avant une expression afin de créer un expression dont le résultat logique est la négation du résultat de l'expression originale. Ainsi, l'expression suivante :@supports not ( transform-origin: 10em 10em 10em ) { }
+
+10em 10em 10em comme valide.not à une déclaration, quelle que soit sa complexité. Les exemples qui suivent sont donc des expressions valides :@supports not ( not ( transform-origin: 2px ) ) { }
+@supports (display: grid) and ( not (display: inline-grid) ) { }
+
+not entre parenthèses. Si on souhaite le combiner avec d'autres opérateurs comme and ou or, il faudra utiliser des parenthèses.L'opérateur
+
+andand peut être utilisé pour former une nouvelle expression à partir de deux expressions. L'expression résultante sera la conjonction des deux expressions originelles. Autrement dit, le résultat de cette nouvelle expression sera VRAI si et seulement si les deux expressions de départ sont vraies et FAUX sinon. Dans l'exemple suivant, l'expression complète ne sera vérifiée que si les deux expressions sont vérifiées :@supports (display: table-cell) and (display: list-item) { }
+
+@supports (display: table-cell) and (display: list-item) and (display:run-in) { }
+
+@supports (display: table-cell) and ((display: list-item) and (display:run-in)) { }
+
+L'opérateur
+
+oror peut être utilisé pour former une nouvelle expression à partir de deux expressions. L'expression résultante sera la disjonction des deux expressions originelles. Autrement dit, le résultat de cette nouvelle expression sera VRAI si au moins une des deux expressions est vraie. Dans l'exemple qui suit, l'expression complète est vérifiée si au moins une des deux (ce peuvent être les deux) expressions est vérifiée :@supports ( transform-style: preserve ) or ( -moz-transform-style: preserve ) { }
+
+@supports ( transform-style: preserve ) or ( -moz-transform-style: preserve ) or
+ ( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve ) { }
+
+@supports ( transform-style: preserve-3d ) or (( -moz-transform-style: preserve-3d ) or
+ (( -o-transform-style: preserve-3d ) or ( -webkit-transform-style: preserve-3d ))) { }
+
+and et l'opérateur or, il devient nécessaire d'utiliser des parenthèses pour que l'ordre d'application des opérateurs soit défini. Si on n'utilise pas de parenthèses, la condition sera considérée comme invalide et l'ensemble de la règle @ sera ignorée.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Tester la prise en charge d'une propriété CSS donnée
+
+@supports (animation-name: test) {
+ … /* Du code CSS spécifique, appliqué quand les animations sont prises en charge sans préfixe */
+ @keyframes { /* @supports est une règle @ qui peut inclure d'autres règles @ */
+ …
+ }
+}
+
+
+Tester la prise en charge d'une propriété CSS donnée ou d'une version préfixée
+
+@supports ( (perspective: 10px) or (-moz-perspective: 10px) or (-webkit-perspective: 10px) or
+ (-ms-perspective: 10px) or (-o-perspective: 10px) ) {
+ … /* Du code CSS spécifique, appliqué lorsque les transformations 3D,
+ sont prises en charge, éventuellement avec un préfixe */
+}
+
+
+Tester l'absence de prise en charge d'une propriété CSS
+
+@supports not ((text-align-last:justify) or (-moz-text-align-last:justify) ){
+ … /* Du code CSS spécifique, appliqué pour simuler text-align-last:justify */
+}
+
+Tester la prise en charge des propriétés personnalisées
+
+@supports (--toto: green) {
+ body {
+ color: --nomVar;
+ }
+}
+
+Tester la prise en charge d'un sélecteur
+
+/* Cette règle ne sera pas appliquée si le navigateur */
+/* ne prend pas en charge :is() */
+:is(ul, ol) > li {
+ … /* Le CSS à utiliser lorsque :is(…) est pris en charge */
+}
+
+@supports not selector(:is(a, b)) {
+ /* Que faire lorsque :is() n'est pas pris en charge */
+ ul > li,
+ ol > li {
+ …
+ }
+}
+
+@supports selector(:nth-child(1n of a, b)) {
+ /* Cette règle doit être placée dans un bloc @supports */
+ /* Sinon elle pourra être partiellement appliquée pour les */
+ /* navigateurs qui ne prennent pas en charge :is(…) */
+ :is(nth-child(1n of ul, ol) a,
+ details > summary) {
+ … /* CSS appliqué quand le sélecteur :is(…) et quand la forme
+ `of` pour :nth-child sont pris en charge */
+ }
+}
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS4 Conditional", "#at-supports", "@supports")}}
+ {{Spec2("CSS4 Conditional")}}
+ Ajout de la fonction
+ selector().
+
+
+{{SpecName("CSS3 Conditional", "#at-supports", "@supports")}}
+ {{Spec2("CSS3 Conditional")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/@viewport/index.html b/files/fr/web/css/@viewport/index.html
deleted file mode 100644
index b14056c7ea..0000000000
--- a/files/fr/web/css/@viewport/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: '@viewport'
-slug: Web/CSS/@viewport
-tags:
- - CSS
- - Experimental
- - Reference
- - Règle @
-translation_of: Web/CSS/@viewport
----
-@viewport permet de configurer la zone d'affichage (le viewport en anglais) à travers laquelle le document est affiché. Cette règle est principalement utilisée pour les appareils mobiles mais aussi pour les navigateurs de bureau (par exemple Microsoft Edge qui gère la division de l'écran).@viewport {
- width: device-width;
-}
-
-Syntaxe
-
-1.0 ou de 100% signifie qu'il n'y a eu aucun zoom. Si la valeur est supérieure, cela signifie qu'on a zoomé pour agrandir le contenu. Inversement, si la valeur est inférieure à 1.0 ou à 100%, cela signifie qu'on a dézoomé.Descripteurs
-
-
-
-
-min-width et max-width.min-height et max-height.1.0 ou 100% correspond à une absence de zoom. Les valeurs supérieures traduiront une augmentation du niveau de zoom (agrandissement des images et du texte) et les valeurs inférieures correspondront à une réduction du niveau de zoom.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-@viewport {
- min-width: 640px;
- max-width: 800px;
-}
-
-@viewport {
- zoom: 0.75;
- min-zoom: 0.5;
- max-zoom: 0.9;
-}
-
-@viewport {
- orientation: landscape;
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS Round Display", "#extending-viewport-rule", "@viewport")}}
- {{Spec2("CSS Round Display")}}
- Définition du descripteur {{cssxref("@viewport/viewport-fit", "viewport-fit")}}.
-
-
-
-{{SpecName('CSS3 Device', '#the-atviewport-rule', '@viewport')}}
- {{Spec2('CSS3 Device')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/@viewport/index.md b/files/fr/web/css/@viewport/index.md
new file mode 100644
index 0000000000..b14056c7ea
--- /dev/null
+++ b/files/fr/web/css/@viewport/index.md
@@ -0,0 +1,118 @@
+---
+title: '@viewport'
+slug: Web/CSS/@viewport
+tags:
+ - CSS
+ - Experimental
+ - Reference
+ - Règle @
+translation_of: Web/CSS/@viewport
+---
+<meta name="viewport">meta afin de contrôler la disposition sur les navigateurs mobiles@viewport permet de configurer la zone d'affichage (le viewport en anglais) à travers laquelle le document est affiché. Cette règle est principalement utilisée pour les appareils mobiles mais aussi pour les navigateurs de bureau (par exemple Microsoft Edge qui gère la division de l'écran).@viewport {
+ width: device-width;
+}
+
+Syntaxe
+
+1.0 ou de 100% signifie qu'il n'y a eu aucun zoom. Si la valeur est supérieure, cela signifie qu'on a zoomé pour agrandir le contenu. Inversement, si la valeur est inférieure à 1.0 ou à 100%, cela signifie qu'on a dézoomé.Descripteurs
+
+
+
+
+min-width et max-width.min-height et max-height.1.0 ou 100% correspond à une absence de zoom. Les valeurs supérieures traduiront une augmentation du niveau de zoom (agrandissement des images et du texte) et les valeurs inférieures correspondront à une réduction du niveau de zoom.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+@viewport {
+ min-width: 640px;
+ max-width: 800px;
+}
+
+@viewport {
+ zoom: 0.75;
+ min-zoom: 0.5;
+ max-zoom: 0.9;
+}
+
+@viewport {
+ orientation: landscape;
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS Round Display", "#extending-viewport-rule", "@viewport")}}
+ {{Spec2("CSS Round Display")}}
+ Définition du descripteur {{cssxref("@viewport/viewport-fit", "viewport-fit")}}.
+
+
+
+{{SpecName('CSS3 Device', '#the-atviewport-rule', '@viewport')}}
+ {{Spec2('CSS3 Device')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-broken/index.html b/files/fr/web/css/_colon_-moz-broken/index.html
deleted file mode 100644
index cab1b281e3..0000000000
--- a/files/fr/web/css/_colon_-moz-broken/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: ':-moz-broken'
-slug: 'Web/CSS/:-moz-broken'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-broken'
----
-<meta name="viewport">meta afin de contrôler la disposition sur les navigateurs mobiles:-moz-broken s'adapte aux éléments qui représentent des liens cassés vers des images.Syntaxe
-
-:-moz-broken
-
-Exemples
-
-HTML
-
-<img src="broken.jpg" alt="Cette image ne fonctionne pas. :-(">
-
-CSS
-
-:-moz-broken {
- background: bisque;
- padding: 8px;
-}
-
-Résultat
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-broken/index.md b/files/fr/web/css/_colon_-moz-broken/index.md
new file mode 100644
index 0000000000..cab1b281e3
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-broken/index.md
@@ -0,0 +1,43 @@
+---
+title: ':-moz-broken'
+slug: 'Web/CSS/:-moz-broken'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-broken'
+---
+:-moz-broken s'adapte aux éléments qui représentent des liens cassés vers des images.Syntaxe
+
+:-moz-broken
+
+Exemples
+
+HTML
+
+<img src="broken.jpg" alt="Cette image ne fonctionne pas. :-(">
+
+CSS
+
+:-moz-broken {
+ background: bisque;
+ padding: 8px;
+}
+
+Résultat
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-drag-over/index.html b/files/fr/web/css/_colon_-moz-drag-over/index.html
deleted file mode 100644
index f8ef38f055..0000000000
--- a/files/fr/web/css/_colon_-moz-drag-over/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: ':-moz-drag-over'
-slug: 'Web/CSS/:-moz-drag-over'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-drag-over'
----
-:-moz-drag-over permet de mettre en forme un élément lorsqu'un événement drag-over est appelé dessus.Syntaxe
-
-element:-moz-drag-over { propriétés de mise en forme }
-
-
-Exemples
-
-CSS
-
-td:-moz-drag-over {
- color: red;
-}
-
-
-HTML
-
-<table border="1">
- <tr>
- <td width="100px" height="100px">Drag Over</td>
- </tr>
-</table>
-
-
-Résultat
-
-Spécifications
-
-:-moz-drag-over permet de mettre en forme un élément lorsqu'un événement drag-over est appelé dessus.Syntaxe
+
+element:-moz-drag-over { propriétés de mise en forme }
+
+
+Exemples
+
+CSS
+
+td:-moz-drag-over {
+ color: red;
+}
+
+
+HTML
+
+<table border="1">
+ <tr>
+ <td width="100px" height="100px">Drag Over</td>
+ </tr>
+</table>
+
+
+Résultat
+
+Spécifications
+
+:-moz-first-node correspond à un élément si celui-ci est le premier nœud d'un autre élément. Cette pseudo-classe est différente de {{cssxref(":first-child")}} car elle ne cible pas le premier élément qui possède du texte (hors blancs).:-moz-last-node.Syntaxe
-
-span:-moz-first-node { propriétés de mise en forme }
-
-
-Exemples
-
-CSS
-
-span:-moz-first-node {
- background-color: lime;
-}
-
-
-HTML
-
-<p>
- <span>:-moz-first-node</span>
- <span>:-moz-last-node</span>
-</p>
-<p>
- Bip bop bip bop
- <span>Cet élément n'est pas ciblé car il y a du texte avant.</span>
-</p>
-
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-first-node/index.md b/files/fr/web/css/_colon_-moz-first-node/index.md
new file mode 100644
index 0000000000..74fcd7f5bb
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-first-node/index.md
@@ -0,0 +1,58 @@
+---
+title: ':-moz-first-node'
+slug: 'Web/CSS/:-moz-first-node'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-first-node'
+---
+:-moz-first-node correspond à un élément si celui-ci est le premier nœud d'un autre élément. Cette pseudo-classe est différente de {{cssxref(":first-child")}} car elle ne cible pas le premier élément qui possède du texte (hors blancs).:-moz-last-node.Syntaxe
+
+span:-moz-first-node { propriétés de mise en forme }
+
+
+Exemples
+
+CSS
+
+span:-moz-first-node {
+ background-color: lime;
+}
+
+
+HTML
+
+<p>
+ <span>:-moz-first-node</span>
+ <span>:-moz-last-node</span>
+</p>
+<p>
+ Bip bop bip bop
+ <span>Cet élément n'est pas ciblé car il y a du texte avant.</span>
+</p>
+
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-focusring/index.html b/files/fr/web/css/_colon_-moz-focusring/index.html
deleted file mode 100644
index 6e6181fb70..0000000000
--- a/files/fr/web/css/_colon_-moz-focusring/index.html
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: ':-moz-focusring'
-slug: 'Web/CSS/:-moz-focusring'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-focusring'
----
-:-moz-focusring est similaire à la pseudo-classe {{cssxref(":focus")}} mais ne cible un élément que si celui-ci a le focus et qu'un indicateur doit être dessiné autour ou sur cet élément.:-moz-focusring correspond à un élément, :focus correspondra également (bien que l'inverse ne soit pas toujours vrai). Cela dépend de l'agent utilisateur qui indique si un anneau de focus doit être dessiné sur l'élément qui a reçu le focus. Cette indication dépend fortement du système d'exploitation et le comportement de cette pseudo-classe diffèrera donc selon les plateformes et/ou les paramètres du système.:-moz-focusring pour différencier l'atteinte du focus via le clic de la souris ou via la navigation au clavier (avec la tabulation). Cette pseudo-classe est également utile si on crée un élément personnalisé dont on veut changer le style en fonction de son comportement.Syntaxe
-
-:-moz-focusring
-
-Exemple
-
-CSS
-
-input {
- margin: 5px;
-}
-
-:-moz-focusring {
- color: red;
- outline: 2px dotted green;
-}
-
-
-HTML
-
-<input/>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-focusring/index.md b/files/fr/web/css/_colon_-moz-focusring/index.md
new file mode 100644
index 0000000000..6e6181fb70
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-focusring/index.md
@@ -0,0 +1,59 @@
+---
+title: ':-moz-focusring'
+slug: 'Web/CSS/:-moz-focusring'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-focusring'
+---
+:-moz-focusring est similaire à la pseudo-classe {{cssxref(":focus")}} mais ne cible un élément que si celui-ci a le focus et qu'un indicateur doit être dessiné autour ou sur cet élément.:-moz-focusring correspond à un élément, :focus correspondra également (bien que l'inverse ne soit pas toujours vrai). Cela dépend de l'agent utilisateur qui indique si un anneau de focus doit être dessiné sur l'élément qui a reçu le focus. Cette indication dépend fortement du système d'exploitation et le comportement de cette pseudo-classe diffèrera donc selon les plateformes et/ou les paramètres du système.:-moz-focusring pour différencier l'atteinte du focus via le clic de la souris ou via la navigation au clavier (avec la tabulation). Cette pseudo-classe est également utile si on crée un élément personnalisé dont on veut changer le style en fonction de son comportement.Syntaxe
+
+:-moz-focusring
+
+Exemple
+
+CSS
+
+input {
+ margin: 5px;
+}
+
+:-moz-focusring {
+ color: red;
+ outline: 2px dotted green;
+}
+
+
+HTML
+
+<input/>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-handler-blocked/index.html b/files/fr/web/css/_colon_-moz-handler-blocked/index.html
deleted file mode 100644
index 0168f703f5..0000000000
--- a/files/fr/web/css/_colon_-moz-handler-blocked/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: ':-moz-handler-blocked'
-slug: 'Web/CSS/:-moz-handler-blocked'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-handler-blocked'
----
-:-moz-handler-blocked permet de cibler un élément qui ne peut pas être affiché car le gestionnaire associé a été bloqué par l'utilisateur.Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-handler-blocked/index.md b/files/fr/web/css/_colon_-moz-handler-blocked/index.md
new file mode 100644
index 0000000000..0168f703f5
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-handler-blocked/index.md
@@ -0,0 +1,26 @@
+---
+title: ':-moz-handler-blocked'
+slug: 'Web/CSS/:-moz-handler-blocked'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-handler-blocked'
+---
+:-moz-handler-blocked permet de cibler un élément qui ne peut pas être affiché car le gestionnaire associé a été bloqué par l'utilisateur.Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-handler-crashed/index.html b/files/fr/web/css/_colon_-moz-handler-crashed/index.html
deleted file mode 100644
index 72f1bdff9f..0000000000
--- a/files/fr/web/css/_colon_-moz-handler-crashed/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: ':-moz-handler-crashed'
-slug: 'Web/CSS/:-moz-handler-crashed'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-handler-crashed'
----
-:-moz-handler-crashed permet de cibler un élément qui ne peut pas être affiché car le plugin sensé le dessiner a planté.Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-handler-crashed/index.md b/files/fr/web/css/_colon_-moz-handler-crashed/index.md
new file mode 100644
index 0000000000..72f1bdff9f
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-handler-crashed/index.md
@@ -0,0 +1,26 @@
+---
+title: ':-moz-handler-crashed'
+slug: 'Web/CSS/:-moz-handler-crashed'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-handler-crashed'
+---
+:-moz-handler-crashed permet de cibler un élément qui ne peut pas être affiché car le plugin sensé le dessiner a planté.Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-handler-disabled/index.html b/files/fr/web/css/_colon_-moz-handler-disabled/index.html
deleted file mode 100644
index 12ade56fe0..0000000000
--- a/files/fr/web/css/_colon_-moz-handler-disabled/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: ':-moz-handler-disabled'
-slug: 'Web/CSS/:-moz-handler-disabled'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-handler-disabled'
----
-:-moz-handler-disabled permet de cibler un élément qui ne peut pas être affiché car le gestionnaire associé a été désactivé par l'utilisateur.Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-handler-disabled/index.md b/files/fr/web/css/_colon_-moz-handler-disabled/index.md
new file mode 100644
index 0000000000..12ade56fe0
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-handler-disabled/index.md
@@ -0,0 +1,26 @@
+---
+title: ':-moz-handler-disabled'
+slug: 'Web/CSS/:-moz-handler-disabled'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-handler-disabled'
+---
+:-moz-handler-disabled permet de cibler un élément qui ne peut pas être affiché car le gestionnaire associé a été désactivé par l'utilisateur.Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-last-node/index.html b/files/fr/web/css/_colon_-moz-last-node/index.html
deleted file mode 100644
index aab079a2e6..0000000000
--- a/files/fr/web/css/_colon_-moz-last-node/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: ':-moz-last-node'
-slug: 'Web/CSS/:-moz-last-node'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-last-node'
----
-:-moz-last-node correspond à un élément si celui-ci est le dernier nœud d'un autre élément. Cette pseudo-classe est différente de {{cssxref(":last-child")}} car elle ne cible pas le dernier élément qui possède du texte (hors blancs).:-moz-last-node.Syntaxe
-
-span:-moz-last-node { propriétés de mise en forme }
-
-
-Exemples
-
-CSS
-
-span:-moz-last-node {
- background-color: lime;
-}
-
-
-HTML
-
-<p>
- <span>:-moz-first-node</span>
- <span>:-moz-last-node</span>
-</p>
-<p>
- <span>Cet élément n'est pas ciblé car il est suivi par du texte.</span>
- Bip bop bip bop.
-</p>
-
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-last-node/index.md b/files/fr/web/css/_colon_-moz-last-node/index.md
new file mode 100644
index 0000000000..aab079a2e6
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-last-node/index.md
@@ -0,0 +1,58 @@
+---
+title: ':-moz-last-node'
+slug: 'Web/CSS/:-moz-last-node'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-last-node'
+---
+:-moz-last-node correspond à un élément si celui-ci est le dernier nœud d'un autre élément. Cette pseudo-classe est différente de {{cssxref(":last-child")}} car elle ne cible pas le dernier élément qui possède du texte (hors blancs).:-moz-last-node.Syntaxe
+
+span:-moz-last-node { propriétés de mise en forme }
+
+
+Exemples
+
+CSS
+
+span:-moz-last-node {
+ background-color: lime;
+}
+
+
+HTML
+
+<p>
+ <span>:-moz-first-node</span>
+ <span>:-moz-last-node</span>
+</p>
+<p>
+ <span>Cet élément n'est pas ciblé car il est suivi par du texte.</span>
+ Bip bop bip bop.
+</p>
+
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-list-bullet/index.html b/files/fr/web/css/_colon_-moz-list-bullet/index.html
deleted file mode 100644
index 8bbfcb6954..0000000000
--- a/files/fr/web/css/_colon_-moz-list-bullet/index.html
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: '::-moz-list-bullet'
-slug: Web/CSS/:-moz-list-bullet
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/:-moz-list-bullet
-original_slug: Web/CSS/::-moz-list-bullet
----
-::-moz-list-bullet de Mozilla est utilisé pour appliquer un style aux puces des éléments d'une liste non ordonnée (autrement dit, pour un élément {{htmlelement("li")}}) contenu dans un élément {{htmlelement("ul")}}).Syntaxe
-
-li::-moz-list-bullet { propriétés de style }
-
-Exemples
-
-HTML
-
-<ul>
- <li>Numéro 1</li>
- <li>Numéro 2</li>
- <li>Numéro 3</li>
-</ul>
-
-<ul class="list">
- <li>Numéro 1</li>
- <li>Numéro 2</li>
- <li>Numéro 3</li>
-</ul>
-
-
-CSS
-
-.list ::-moz-list-bullet {
- font-size: 36px;
-}
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-list-bullet/index.md b/files/fr/web/css/_colon_-moz-list-bullet/index.md
new file mode 100644
index 0000000000..8bbfcb6954
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-list-bullet/index.md
@@ -0,0 +1,56 @@
+---
+title: '::-moz-list-bullet'
+slug: Web/CSS/:-moz-list-bullet
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/:-moz-list-bullet
+original_slug: Web/CSS/::-moz-list-bullet
+---
+::-moz-list-bullet de Mozilla est utilisé pour appliquer un style aux puces des éléments d'une liste non ordonnée (autrement dit, pour un élément {{htmlelement("li")}}) contenu dans un élément {{htmlelement("ul")}}).Syntaxe
+
+li::-moz-list-bullet { propriétés de style }
+
+Exemples
+
+HTML
+
+<ul>
+ <li>Numéro 1</li>
+ <li>Numéro 2</li>
+ <li>Numéro 3</li>
+</ul>
+
+<ul class="list">
+ <li>Numéro 1</li>
+ <li>Numéro 2</li>
+ <li>Numéro 3</li>
+</ul>
+
+
+CSS
+
+.list ::-moz-list-bullet {
+ font-size: 36px;
+}
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-list-number/index.html b/files/fr/web/css/_colon_-moz-list-number/index.html
deleted file mode 100644
index 8a4d2f4be6..0000000000
--- a/files/fr/web/css/_colon_-moz-list-number/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: '::-moz-list-number'
-slug: Web/CSS/:-moz-list-number
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/:-moz-list-number
-original_slug: Web/CSS/::-moz-list-number
----
-::-moz-list-number permet de personnaliser l'apparence des numéros des éléments de liste ({{HTMLElement("li")}}) au sein des listes numérotées ({{HTMLElement("ol")}}).Syntaxe
-
-li::-moz-list-number { propriétés de style }
-
-
-Exemples
-
-CSS
-
-li::-moz-list-number {
- font-style: italic;
- font-weight: bold;
-}
-
-
-HTML
-
-<ol>
- <li>Premier élément</li>
- <li>Second élément</li>
- <li>Troisième élément</li>
-</ol>
-
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-list-number/index.md b/files/fr/web/css/_colon_-moz-list-number/index.md
new file mode 100644
index 0000000000..8a4d2f4be6
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-list-number/index.md
@@ -0,0 +1,53 @@
+---
+title: '::-moz-list-number'
+slug: Web/CSS/:-moz-list-number
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/:-moz-list-number
+original_slug: Web/CSS/::-moz-list-number
+---
+::-moz-list-number permet de personnaliser l'apparence des numéros des éléments de liste ({{HTMLElement("li")}}) au sein des listes numérotées ({{HTMLElement("ol")}}).Syntaxe
+
+li::-moz-list-number { propriétés de style }
+
+
+Exemples
+
+CSS
+
+li::-moz-list-number {
+ font-style: italic;
+ font-weight: bold;
+}
+
+
+HTML
+
+<ol>
+ <li>Premier élément</li>
+ <li>Second élément</li>
+ <li>Troisième élément</li>
+</ol>
+
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-loading/index.html b/files/fr/web/css/_colon_-moz-loading/index.html
deleted file mode 100644
index 4efb552f03..0000000000
--- a/files/fr/web/css/_colon_-moz-loading/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: ':-moz-loading'
-slug: 'Web/CSS/:-moz-loading'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-loading'
----
-:-moz-loading correspond aux éléments qui ne peuvent être affichés, car ils n'ont pas été chargés (par exemple les images qui n'ont pas encore été transférées sur le réseau). On notera que les images en cours de chargement (le fichier est arrivé et est en train d'être traité pour affichage par le navigateur) ne sont pas ciblées par cette pseudo-classse.Syntaxe
-
-:-moz-loading
-
-Exemples
-
-img:-moz-loading {
- background-color: #aaa;
- background-image: url(loading-animation.gif) center no-repeat;
-}
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-loading/index.md b/files/fr/web/css/_colon_-moz-loading/index.md
new file mode 100644
index 0000000000..4efb552f03
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-loading/index.md
@@ -0,0 +1,36 @@
+---
+title: ':-moz-loading'
+slug: 'Web/CSS/:-moz-loading'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-loading'
+---
+:-moz-loading correspond aux éléments qui ne peuvent être affichés, car ils n'ont pas été chargés (par exemple les images qui n'ont pas encore été transférées sur le réseau). On notera que les images en cours de chargement (le fichier est arrivé et est en train d'être traité pour affichage par le navigateur) ne sont pas ciblées par cette pseudo-classse.Syntaxe
+
+:-moz-loading
+
+Exemples
+
+img:-moz-loading {
+ background-color: #aaa;
+ background-image: url(loading-animation.gif) center no-repeat;
+}
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-locale-dir(ltr)/index.html b/files/fr/web/css/_colon_-moz-locale-dir(ltr)/index.html
deleted file mode 100644
index 13622d0dd1..0000000000
--- a/files/fr/web/css/_colon_-moz-locale-dir(ltr)/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: ':-moz-locale-dir(ltr)'
-slug: 'Web/CSS/:-moz-locale-dir(ltr)'
-tags:
- - CSS
- - Localisation
- - Non-standard
- - Pseudo-classe
- - Reference
- - l10n
-translation_of: 'Web/CSS/:-moz-locale-dir(ltr)'
----
-:-moz-locale-dir(ltr) correspond à un élément si l'interface utilisateur est affichée de gauche à droite. Ceci est déterminé par la préférence intl.uidirection.locale (où locale est le language courant) qui est fixé à "ltr".Exemples
-
-HTML
-
-<p>Sur une interface allant de gauche à droite, ce texte devrait être rouge.</p>
-
-
-CSS
-
-p:-moz-locale-dir(ltr) {
- color: red;
-}
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-locale-dir(ltr)/index.md b/files/fr/web/css/_colon_-moz-locale-dir(ltr)/index.md
new file mode 100644
index 0000000000..13622d0dd1
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-locale-dir(ltr)/index.md
@@ -0,0 +1,47 @@
+---
+title: ':-moz-locale-dir(ltr)'
+slug: 'Web/CSS/:-moz-locale-dir(ltr)'
+tags:
+ - CSS
+ - Localisation
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+ - l10n
+translation_of: 'Web/CSS/:-moz-locale-dir(ltr)'
+---
+:-moz-locale-dir(ltr) correspond à un élément si l'interface utilisateur est affichée de gauche à droite. Ceci est déterminé par la préférence intl.uidirection.locale (où locale est le language courant) qui est fixé à "ltr".Exemples
+
+HTML
+
+<p>Sur une interface allant de gauche à droite, ce texte devrait être rouge.</p>
+
+
+CSS
+
+p:-moz-locale-dir(ltr) {
+ color: red;
+}
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-locale-dir(rtl)/index.html b/files/fr/web/css/_colon_-moz-locale-dir(rtl)/index.html
deleted file mode 100644
index 8ab4f863d5..0000000000
--- a/files/fr/web/css/_colon_-moz-locale-dir(rtl)/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: ':-moz-locale-dir(rtl)'
-slug: 'Web/CSS/:-moz-locale-dir(rtl)'
-tags:
- - CSS
- - Droite-à-gauche
- - Localisation
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-locale-dir(rtl)'
----
-:-moz-locale-dir(rtl) correspond à un élément si l'interface utilisateur est affichée de droite à gauche. Elle est déterminée par la préférence intl.uidirection.locale (où locale est la langue courante) qui est fixée à "rtl".Exemples
-
-CSS
-
-p:-moz-locale-dir(rtl) {
- color: red;
-}
-
-HTML
-
-<p>En utilisant une interface de droite à gauche, ce texte sera rouge.</p>
-
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-locale-dir(rtl)/index.md b/files/fr/web/css/_colon_-moz-locale-dir(rtl)/index.md
new file mode 100644
index 0000000000..8ab4f863d5
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-locale-dir(rtl)/index.md
@@ -0,0 +1,47 @@
+---
+title: ':-moz-locale-dir(rtl)'
+slug: 'Web/CSS/:-moz-locale-dir(rtl)'
+tags:
+ - CSS
+ - Droite-à-gauche
+ - Localisation
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-locale-dir(rtl)'
+---
+:-moz-locale-dir(rtl) correspond à un élément si l'interface utilisateur est affichée de droite à gauche. Elle est déterminée par la préférence intl.uidirection.locale (où locale est la langue courante) qui est fixée à "rtl".Exemples
+
+CSS
+
+p:-moz-locale-dir(rtl) {
+ color: red;
+}
+
+HTML
+
+<p>En utilisant une interface de droite à gauche, ce texte sera rouge.</p>
+
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-only-whitespace/index.html b/files/fr/web/css/_colon_-moz-only-whitespace/index.html
deleted file mode 100644
index d53499bc80..0000000000
--- a/files/fr/web/css/_colon_-moz-only-whitespace/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: ':-moz-only-whitespace'
-slug: 'Web/CSS/:-moz-only-whitespace'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
- - Sélecteur
-translation_of: 'Web/CSS/:-moz-only-whitespace'
----
-:-moz-only-whitespace mais aucun navigateur ne prend actuellement en charge cette fonctionnalité.:-moz-only-whitespace correspond aux éléments qui n'ont aucun nœud enfant, aux nœuds texte vides ou aux nœuds texte ne possédant que des espaces.Syntaxe
-
-{{CSSSyntax}}
-
-Exemples
-
-HTML
-
-<div> </div>
-
-
-CSS
-
-
-
-div {
- border: 4px solid red;
-}
-
-:-moz-only-whitespace {
- border-color: lime;
-}
-
-Résultat
-
-Spécifications
-
-:blank dans {{SpecName("CSS4 Selectors", "#changes-2018-02")}} puis la fonctionnalité a été fusionnée avec {{CSSxRef(":empty")}} et {{CSSxRef(":blank")}} a été redéfinie afin d'indiquer un élément {{HTMLElement("input")}} vide.Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-only-whitespace/index.md b/files/fr/web/css/_colon_-moz-only-whitespace/index.md
new file mode 100644
index 0000000000..d53499bc80
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-only-whitespace/index.md
@@ -0,0 +1,73 @@
+---
+title: ':-moz-only-whitespace'
+slug: 'Web/CSS/:-moz-only-whitespace'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+ - Sélecteur
+translation_of: 'Web/CSS/:-moz-only-whitespace'
+---
+:-moz-only-whitespace mais aucun navigateur ne prend actuellement en charge cette fonctionnalité.:-moz-only-whitespace correspond aux éléments qui n'ont aucun nœud enfant, aux nœuds texte vides ou aux nœuds texte ne possédant que des espaces.Syntaxe
+
+{{CSSSyntax}}
+
+Exemples
+
+HTML
+
+<div> </div>
+
+
+CSS
+
+
+
+div {
+ border: 4px solid red;
+}
+
+:-moz-only-whitespace {
+ border-color: lime;
+}
+
+Résultat
+
+Spécifications
+
+:blank dans {{SpecName("CSS4 Selectors", "#changes-2018-02")}} puis la fonctionnalité a été fusionnée avec {{CSSxRef(":empty")}} et {{CSSxRef(":blank")}} a été redéfinie afin d'indiquer un élément {{HTMLElement("input")}} vide.Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-submit-invalid/index.html b/files/fr/web/css/_colon_-moz-submit-invalid/index.html
deleted file mode 100644
index 30f9856f3d..0000000000
--- a/files/fr/web/css/_colon_-moz-submit-invalid/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: ':-moz-submit-invalid'
-slug: 'Web/CSS/:-moz-submit-invalid'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-submit-invalid'
----
-:-moz-submit-invalid représente tout bouton {{HTMLElement("input")}} de type submit présent sur un formulaire dont le contenu n'est pas valide compte-tenu de ses contraintes de validation.submit lorsqu'il y a des champs de formulaire invalides.Syntaxe
-
-:-moz-submit-invalid
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-submit-invalid/index.md b/files/fr/web/css/_colon_-moz-submit-invalid/index.md
new file mode 100644
index 0000000000..30f9856f3d
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-submit-invalid/index.md
@@ -0,0 +1,37 @@
+---
+title: ':-moz-submit-invalid'
+slug: 'Web/CSS/:-moz-submit-invalid'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-submit-invalid'
+---
+:-moz-submit-invalid représente tout bouton {{HTMLElement("input")}} de type submit présent sur un formulaire dont le contenu n'est pas valide compte-tenu de ses contraintes de validation.submit lorsqu'il y a des champs de formulaire invalides.Syntaxe
+
+:-moz-submit-invalid
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-suppressed/index.html b/files/fr/web/css/_colon_-moz-suppressed/index.html
deleted file mode 100644
index d250f94a15..0000000000
--- a/files/fr/web/css/_colon_-moz-suppressed/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: ':-moz-suppressed'
-slug: 'Web/CSS/:-moz-suppressed'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-suppressed'
----
-:-moz-suppressed est une pseudo-classe spécifique à Mozilla qui permet de sélectionner les images qui n’ont pas été chargées car le chargement des images depuis ce site a été bloqué.Syntaxe
-
-:-moz-suppressed
-
-Exemple
-
-:-moz-suppressed {
- background: yellow;
- padding: 8px;
-}
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-suppressed/index.md b/files/fr/web/css/_colon_-moz-suppressed/index.md
new file mode 100644
index 0000000000..d250f94a15
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-suppressed/index.md
@@ -0,0 +1,38 @@
+---
+title: ':-moz-suppressed'
+slug: 'Web/CSS/:-moz-suppressed'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-suppressed'
+---
+:-moz-suppressed est une pseudo-classe spécifique à Mozilla qui permet de sélectionner les images qui n’ont pas été chargées car le chargement des images depuis ce site a été bloqué.Syntaxe
+
+:-moz-suppressed
+
+Exemple
+
+:-moz-suppressed {
+ background: yellow;
+ padding: 8px;
+}
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-user-disabled/index.html b/files/fr/web/css/_colon_-moz-user-disabled/index.html
deleted file mode 100644
index 7890fbdca6..0000000000
--- a/files/fr/web/css/_colon_-moz-user-disabled/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: ':-moz-user-disabled'
-slug: 'Web/CSS/:-moz-user-disabled'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-user-disabled'
----
-:-moz-user-disabled correspond aux éléments représentant des images qui n'ont pas été chargées car elles ont été entièrement désactivées dans les préférences de l'utilisateur.Syntaxe
-
-:-moz-user-disabled
-
-Exemples
-
-:-moz-user-disabled {
- background-color: lightgray;
- padding: 8px;
-}
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_-moz-user-disabled/index.md b/files/fr/web/css/_colon_-moz-user-disabled/index.md
new file mode 100644
index 0000000000..7890fbdca6
--- /dev/null
+++ b/files/fr/web/css/_colon_-moz-user-disabled/index.md
@@ -0,0 +1,38 @@
+---
+title: ':-moz-user-disabled'
+slug: 'Web/CSS/:-moz-user-disabled'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:-moz-user-disabled'
+---
+:-moz-user-disabled correspond aux éléments représentant des images qui n'ont pas été chargées car elles ont été entièrement désactivées dans les préférences de l'utilisateur.Syntaxe
+
+:-moz-user-disabled
+
+Exemples
+
+:-moz-user-disabled {
+ background-color: lightgray;
+ padding: 8px;
+}
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_-moz-window-inactive/index.html b/files/fr/web/css/_colon_-moz-window-inactive/index.html
deleted file mode 100644
index e0352a939f..0000000000
--- a/files/fr/web/css/_colon_-moz-window-inactive/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: ':-moz-window-inactive'
-slug: 'Web/CSS/:-moz-window-inactive'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:-moz-window-inactive'
----
-:-moz-window-inactive, spécifique à Mozilla, correspond à n'importe quel élément qui se trouve sur une fenêtre inactive.active="true" sur la fenêtre XUL de plus haut niveau. Cet attribut n'est plus utilisé.:-moz-window-inactive fonctionne également pour le contenu des documents HTML.Exemples
-
-CSS
-
-#maboite {
- background: linear-gradient(to bottom, blue, cyan);
-}
-
-#maboite:-moz-window-inactive {
- background: cyan;
-}
-
-
-HTML
-
-<div id="maboite" style="width:200px; height:200px;">
- <p>Une boîte :)</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-:-moz-window-inactive, spécifique à Mozilla, correspond à n'importe quel élément qui se trouve sur une fenêtre inactive.active="true" sur la fenêtre XUL de plus haut niveau. Cet attribut n'est plus utilisé.:-moz-window-inactive fonctionne également pour le contenu des documents HTML.Exemples
+
+CSS
+
+#maboite {
+ background: linear-gradient(to bottom, blue, cyan);
+}
+
+#maboite:-moz-window-inactive {
+ background: cyan;
+}
+
+
+HTML
+
+<div id="maboite" style="width:200px; height:200px;">
+ <p>Une boîte :)</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+:active permet de cibler un élément lorsque celui-ci est activé par l'utilisateur. Elle permet de fournir un feedback indiquant que l'activation a bien été détectée par le navigateur. Lorsqu'on a une interaction avec un pointeur, il s'agit généralement du moment entre l'appui sur le pointeur et le relâchement de celui-ci./* ne cible <a> que lorsqu'il est activé */
-/* par exemple quand on clique dessus */
-a:active {
- color: red;
-}
-
-:active est également activée lorsque l'utilisateur emploie la touche de tabulation. Elle est souvent utilisée sur les éléments HTML {{HTMLElement("a")}} et {{HTMLElement("button")}} mais n'est pas restreinte à ceux-ci. Les éléments ciblés par cette pseudo-classe incluent les éléments qui contiennent l'élément activé et les éléments de formulaires activés via leur élément {{HTMLElement("label")}} associé.:active doit être écrite après les autres : :link — :visited — :hover — :active.:active ne doit s'appliquer qu'au bouton principal. Pour les souris de droitiers, c'est généralement le bouton le plus à gauche.Syntax
-
-{{csssyntax}}
-
-Exemples
-
-Liens actifs
-
-CSS
-
-a:link { color: blue; } /* Liens non visités */
-a:visited { color: purple; } /* Liens visités */
-a:hover { background: yellow; } /* Liens survolés */
-a:active { color: red; } /* Liens actifs */
-
-p:active { background: #eee; } /* Paragraphes actifs */
-
-HTML
-
-<p>Ce paragraphe contient un lien :
- <a href="#">Ce lien devient rouge quand vous cliquez dessus.</a>
- Le paragraphe sera sur un fond gris quand vous cliquerez dessus
- ou sur le lien.
-</p>
-
-Résultat
-
-Éléments de formulaire actifs
-
-CSS
-
-form :active {
- color: red;
-}
-
-form button {
- background: white;
-}
-
-HTML
-
-<form>
- <label for="mon-button">Un bouton :</label>
- <button id="mon-button" type="button">Cliquez sur moi ou sur mon libellé !</button>
-</form>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-active', ':active')}}
- {{Spec2('HTML WHATWG')}}
-
-
-
- {{SpecName('CSS4 Selectors', '#active-pseudo', ':active')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Selectors', '#useraction-pseudos', ':active')}}
- {{Spec2('CSS3 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':active')}}
- {{Spec2('CSS2.1')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS1', '#anchor-pseudo-classes', ':active')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_active/index.md b/files/fr/web/css/_colon_active/index.md
new file mode 100644
index 0000000000..0ac630a4c3
--- /dev/null
+++ b/files/fr/web/css/_colon_active/index.md
@@ -0,0 +1,129 @@
+---
+title: ':active'
+slug: 'Web/CSS/:active'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:active'
+---
+:active permet de cibler un élément lorsque celui-ci est activé par l'utilisateur. Elle permet de fournir un feedback indiquant que l'activation a bien été détectée par le navigateur. Lorsqu'on a une interaction avec un pointeur, il s'agit généralement du moment entre l'appui sur le pointeur et le relâchement de celui-ci./* ne cible <a> que lorsqu'il est activé */
+/* par exemple quand on clique dessus */
+a:active {
+ color: red;
+}
+
+:active est également activée lorsque l'utilisateur emploie la touche de tabulation. Elle est souvent utilisée sur les éléments HTML {{HTMLElement("a")}} et {{HTMLElement("button")}} mais n'est pas restreinte à ceux-ci. Les éléments ciblés par cette pseudo-classe incluent les éléments qui contiennent l'élément activé et les éléments de formulaires activés via leur élément {{HTMLElement("label")}} associé.:active doit être écrite après les autres : :link — :visited — :hover — :active.:active ne doit s'appliquer qu'au bouton principal. Pour les souris de droitiers, c'est généralement le bouton le plus à gauche.Syntax
+
+{{csssyntax}}
+
+Exemples
+
+Liens actifs
+
+CSS
+
+a:link { color: blue; } /* Liens non visités */
+a:visited { color: purple; } /* Liens visités */
+a:hover { background: yellow; } /* Liens survolés */
+a:active { color: red; } /* Liens actifs */
+
+p:active { background: #eee; } /* Paragraphes actifs */
+
+HTML
+
+<p>Ce paragraphe contient un lien :
+ <a href="#">Ce lien devient rouge quand vous cliquez dessus.</a>
+ Le paragraphe sera sur un fond gris quand vous cliquerez dessus
+ ou sur le lien.
+</p>
+
+Résultat
+
+Éléments de formulaire actifs
+
+CSS
+
+form :active {
+ color: red;
+}
+
+form button {
+ background: white;
+}
+
+HTML
+
+<form>
+ <label for="mon-button">Un bouton :</label>
+ <button id="mon-button" type="button">Cliquez sur moi ou sur mon libellé !</button>
+</form>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-active', ':active')}}
+ {{Spec2('HTML WHATWG')}}
+
+
+
+ {{SpecName('CSS4 Selectors', '#active-pseudo', ':active')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Selectors', '#useraction-pseudos', ':active')}}
+ {{Spec2('CSS3 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':active')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS1', '#anchor-pseudo-classes', ':active')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_any-link/index.html b/files/fr/web/css/_colon_any-link/index.html
deleted file mode 100644
index 689e4d42b2..0000000000
--- a/files/fr/web/css/_colon_any-link/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: ':any-link'
-slug: 'Web/CSS/:any-link'
-tags:
- - CSS
- - Experimental
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:any-link'
----
-:any-link permet de représenter un élément qui agit comme la source de l'ancre d'un hyperlien (qu'il ait été visité ou non). Elle permet donc de cibler les éléments {{HTMLElement("a")}}, {{HTMLElement("area")}} ou {{HTMLElement("link")}} avec un attribut href. Autrement dit, elle cible les éléments qui correspondent à {{cssxref(":link")}} ou à {{cssxref(":visited")}}./* cible tous les éléments qui seraient ciblés par */
-/* :link ou :visited */
-:any-link {
- color: green;
- font-weight: bold;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-:any-link {
- color: green;
- font-weight: bold;
-}
-
-/* Pour les navigateurs WebKit */
-:-webkit-any-link {
- color: green;
- font-weight: bold;
-}
-
-
-HTML
-
-<a href="https://mozilla.org">Une page différente</a><br>
-<a href="#">Une ancre</a><br>
-<a>Un lien sans cible (n'est pas mis en forme)</a>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#the-any-link-pseudo", ":any-link")}}
- {{Spec2('CSS4 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-:any-link permet de représenter un élément qui agit comme la source de l'ancre d'un hyperlien (qu'il ait été visité ou non). Elle permet donc de cibler les éléments {{HTMLElement("a")}}, {{HTMLElement("area")}} ou {{HTMLElement("link")}} avec un attribut href. Autrement dit, elle cible les éléments qui correspondent à {{cssxref(":link")}} ou à {{cssxref(":visited")}}./* cible tous les éléments qui seraient ciblés par */
+/* :link ou :visited */
+:any-link {
+ color: green;
+ font-weight: bold;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+:any-link {
+ color: green;
+ font-weight: bold;
+}
+
+/* Pour les navigateurs WebKit */
+:-webkit-any-link {
+ color: green;
+ font-weight: bold;
+}
+
+
+HTML
+
+<a href="https://mozilla.org">Une page différente</a><br>
+<a href="#">Une ancre</a><br>
+<a>Un lien sans cible (n'est pas mis en forme)</a>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#the-any-link-pseudo", ":any-link")}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+:-webkit-autofill correspond à un élément {{HTMLElement("input")}} lorsque sa valeur est remplie automatiquement par le navigateur.!important pour les déclarations avec :-webkit-autofill ce qui les rend difficilement modifiables sans utiliser JavaScript.Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_autofill/index.md b/files/fr/web/css/_colon_autofill/index.md
new file mode 100644
index 0000000000..c74d26ed18
--- /dev/null
+++ b/files/fr/web/css/_colon_autofill/index.md
@@ -0,0 +1,34 @@
+---
+title: ':-webkit-autofill'
+slug: Web/CSS/:autofill
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: Web/CSS/:-webkit-autofill
+original_slug: Web/CSS/:-webkit-autofill
+---
+:-moz-autofill pour les éléments input avec une valeur saisie automatiquement.:-webkit-autofill correspond à un élément {{HTMLElement("input")}} lorsque sa valeur est remplie automatiquement par le navigateur.!important pour les déclarations avec :-webkit-autofill ce qui les rend difficilement modifiables sans utiliser JavaScript.Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_blank/index.html b/files/fr/web/css/_colon_blank/index.html
deleted file mode 100644
index db9d6f5d06..0000000000
--- a/files/fr/web/css/_colon_blank/index.html
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: ':blank'
-slug: 'Web/CSS/:blank'
-tags:
- - CSS
- - Draft
- - Experimental
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:blank'
----
-:-moz-autofill pour les éléments input avec une valeur saisie automatiquement.:blank est une fonctionnalité considérée risquée car en cours de modification par le CSSWG. Voir l'issue n°1967 à ce propos.:blank permet de sélectionner les champs saissables par l'utilisateur et qui sont vides (par exemple des éléments {{HTMLElement("input")}} ou {{HTMLElement("textarea")}} où rien n'a encore été saisi).Syntaxe
-
-{{CSSSyntax}}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#blank-pseudo", ":blank")}}
- {{Spec2("CSS4 Selectors")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_blank/index.md b/files/fr/web/css/_colon_blank/index.md
new file mode 100644
index 0000000000..db9d6f5d06
--- /dev/null
+++ b/files/fr/web/css/_colon_blank/index.md
@@ -0,0 +1,51 @@
+---
+title: ':blank'
+slug: 'Web/CSS/:blank'
+tags:
+ - CSS
+ - Draft
+ - Experimental
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:blank'
+---
+:blank est une fonctionnalité considérée risquée car en cours de modification par le CSSWG. Voir l'issue n°1967 à ce propos.:blank permet de sélectionner les champs saissables par l'utilisateur et qui sont vides (par exemple des éléments {{HTMLElement("input")}} ou {{HTMLElement("textarea")}} où rien n'a encore été saisi).Syntaxe
+
+{{CSSSyntax}}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#blank-pseudo", ":blank")}}
+ {{Spec2("CSS4 Selectors")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_checked/index.html b/files/fr/web/css/_colon_checked/index.html
deleted file mode 100644
index fba13cef19..0000000000
--- a/files/fr/web/css/_colon_checked/index.html
+++ /dev/null
@@ -1,132 +0,0 @@
----
-title: ':checked'
-slug: Web/CSS/:checked
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:checked
----
-:checked représente n'importe quel bouton radio (<input type="radio">), case à cocher (<input type="checkbox">) ou option ({{HTMLElement("option")}} d'un élément {{HTMLElement("select")}}) qui est coché ou activé (on). L'utilisateur peut modifier cet état en cliquant sur l'élément ou en sélectionnant une valeur différente auquel cas la pseudo-classe :checked ne s'applique plus à l'élément en question./* cible n'importe quel bouton radio sélectionné, case
-/* à cocher cochée ou option sélectionnée */
-input:checked {
- margin-left: 25px;
- border: 1px solid blue;
-}
-
-
-<option> comme des éléments remplacéset la possibilité de mise en forme avec :checked varie d'un navigateur à l'autre.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-Exemple simple
-
-HTML
-
-
-<div>
- <input type="radio" name="my-input" id="yes">
- <label for="yes">Oui</label>
-
- <input type="radio" name="my-input" id="no">
- <label for="no">Non</label>
-</div>
-
-<div>
- <input type="checkbox" name="my-checkbox" id="opt-in">
- <label for="opt-in">Cochez-moi !</label>
-</div>
-
-<select name="my-select" id="fruit">
- <option value="opt1">Pommes</option>
- <option value="opt2">Raisins</option>
- <option value="opt3">Poires</option>
-</select>
-
-
-CSS
-
-
-div,
-select {
- margin: 8px;
-}
-
-/* Libellés pour les entrées cochées */
-input:checked + label {
- color: red;
-}
-
-/* Éléments radio cochés */
-input[type="radio"]:checked {
- box-shadow: 0 0 0 3px orange;
-}
-
-/* Éléments cases à cocher cochés */
-input[type="checkbox"]:checked {
- box-shadow: 0 0 0 3px hotpink;
-}
-
-/* Éléments options sélectionnés */
-option:checked {
- box-shadow: 0 0 0 3px lime;
- color: red;
-}
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-checked', ':checked')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-checked', ':checked')}}
- {{Spec2('HTML5 W3C')}}
- La sémantique relative au HTML est définie.
-
-
- {{SpecName('CSS4 Selectors', '#checked', ':checked')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Basic UI', '#pseudo-checked', ':checked')}}
- {{Spec2('CSS3 Basic UI')}}
- Lien avec la spécification de niveau 3 pour les sélecteurs.
-
-
-
-{{SpecName('CSS3 Selectors', '#checked', ':checked')}}
- {{Spec2('CSS3 Selectors')}}
- Définition de la pseudo-classe mais pas de la sémantique associée.
- Compatibilité des navigateurs
-
-:checked représente n'importe quel bouton radio (<input type="radio">), case à cocher (<input type="checkbox">) ou option ({{HTMLElement("option")}} d'un élément {{HTMLElement("select")}}) qui est coché ou activé (on). L'utilisateur peut modifier cet état en cliquant sur l'élément ou en sélectionnant une valeur différente auquel cas la pseudo-classe :checked ne s'applique plus à l'élément en question./* cible n'importe quel bouton radio sélectionné, case
+/* à cocher cochée ou option sélectionnée */
+input:checked {
+ margin-left: 25px;
+ border: 1px solid blue;
+}
+
+
+<option> comme des éléments remplacéset la possibilité de mise en forme avec :checked varie d'un navigateur à l'autre.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+Exemple simple
+
+HTML
+
+
+<div>
+ <input type="radio" name="my-input" id="yes">
+ <label for="yes">Oui</label>
+
+ <input type="radio" name="my-input" id="no">
+ <label for="no">Non</label>
+</div>
+
+<div>
+ <input type="checkbox" name="my-checkbox" id="opt-in">
+ <label for="opt-in">Cochez-moi !</label>
+</div>
+
+<select name="my-select" id="fruit">
+ <option value="opt1">Pommes</option>
+ <option value="opt2">Raisins</option>
+ <option value="opt3">Poires</option>
+</select>
+
+
+CSS
+
+
+div,
+select {
+ margin: 8px;
+}
+
+/* Libellés pour les entrées cochées */
+input:checked + label {
+ color: red;
+}
+
+/* Éléments radio cochés */
+input[type="radio"]:checked {
+ box-shadow: 0 0 0 3px orange;
+}
+
+/* Éléments cases à cocher cochés */
+input[type="checkbox"]:checked {
+ box-shadow: 0 0 0 3px hotpink;
+}
+
+/* Éléments options sélectionnés */
+option:checked {
+ box-shadow: 0 0 0 3px lime;
+ color: red;
+}
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-checked', ':checked')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-checked', ':checked')}}
+ {{Spec2('HTML5 W3C')}}
+ La sémantique relative au HTML est définie.
+
+
+ {{SpecName('CSS4 Selectors', '#checked', ':checked')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Basic UI', '#pseudo-checked', ':checked')}}
+ {{Spec2('CSS3 Basic UI')}}
+ Lien avec la spécification de niveau 3 pour les sélecteurs.
+
+
+
+{{SpecName('CSS3 Selectors', '#checked', ':checked')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition de la pseudo-classe mais pas de la sémantique associée.
+ Compatibilité des navigateurs
+
+:current est une pseudo-classe agissant dans la dimension temporelle et représentant l'élément actuellement affiché, ou un ancêtre de cet élément. Ce sélecteur peut par exemple servir dans le cas d'une vidéo ayant des sous-titres affichés à l'aide du format WebVTT.:current(p, span) {
- background-color: yellow;
-}
-
-Syntaxe
-
-Exemples
-
-CSS
-
-:current(p, span) {
- background-color: yellow;
-}
-
-HTML
-
-<video controls preload="metadata">
- <source src="video.mp4" type="video/mp4" />
- <source src="video.webm" type="video/webm" />
- <track label="Français" kind="subtitles" srclang="fr" src="subtitles.vtt" default>
-</video>
-
-WebVTT
-
-FICHIER WEBVTT
-
-1
-00:00:03.500 --> 00:00:05.000
-Voici le premier sous-titre
-
-2
-00:00:06.000 --> 00:00:09.000
-Voici le second sous-titre
-
-3
-00:00:11.000 --> 00:00:19.000
-Voici le troisième sous-titre
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_current/index.md b/files/fr/web/css/_colon_current/index.md
new file mode 100644
index 0000000000..b96560db91
--- /dev/null
+++ b/files/fr/web/css/_colon_current/index.md
@@ -0,0 +1,66 @@
+---
+title: ':current'
+slug: 'Web/CSS/:current'
+browser-compat: css.selectors.current
+translation_of: Web/CSS/:current
+---
+:current est une pseudo-classe agissant dans la dimension temporelle et représentant l'élément actuellement affiché, ou un ancêtre de cet élément. Ce sélecteur peut par exemple servir dans le cas d'une vidéo ayant des sous-titres affichés à l'aide du format WebVTT.:current(p, span) {
+ background-color: yellow;
+}
+
+Syntaxe
+
+Exemples
+
+CSS
+
+:current(p, span) {
+ background-color: yellow;
+}
+
+HTML
+
+<video controls preload="metadata">
+ <source src="video.mp4" type="video/mp4" />
+ <source src="video.webm" type="video/webm" />
+ <track label="Français" kind="subtitles" srclang="fr" src="subtitles.vtt" default>
+</video>
+
+WebVTT
+
+FICHIER WEBVTT
+
+1
+00:00:03.500 --> 00:00:05.000
+Voici le premier sous-titre
+
+2
+00:00:06.000 --> 00:00:09.000
+Voici le second sous-titre
+
+3
+00:00:11.000 --> 00:00:19.000
+Voici le troisième sous-titre
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_default/index.html b/files/fr/web/css/_colon_default/index.html
deleted file mode 100644
index 195232f149..0000000000
--- a/files/fr/web/css/_colon_default/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: ':default'
-slug: 'Web/CSS/:default'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:default'
----
-:default représente un élément de l'interface utilisateur qui est l'élément par défaut parmi d'autres éléments semblables (par exemple le bouton par défaut d'un groupe de boutons)./* Cible l'élément par défaut d'un groupe */
-:default {
- background-color: lime;
-}
-
-<input type="checkbox">, <input type="radio"> et {{htmlelement("option")}} :
-
-
-<option> par défaut est le premier qui possède l'attribut selected ou le premier qui est activé selon l'ordre du DOM.<input type="checkbox"> et <input type="radio"> seront ciblés s'ils possèdent l'attribut checked.<button> est ciblé si c'est le bouton d'envoi par défaut d'un formulaire, c'est-à-dire le premier bouton (selon l'ordre du DOM) appartenant au formulaire (cela vaut également pour les éléments {{htmlelement("input")}} dont le type permet d'envoyer des formulaires tels que image ou submit).:default.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input:default {
- box-shadow: 0 0 2px 1px coral;
-}
-
-input:default + label {
- color: coral;
-}
-
-
-HTML
-
-<fieldset>
- <legend>Saison préférée</legend>
-
- <input type="radio" name="season" id="spring">
- <label for="spring">Printemps</label>
-
- <input type="radio" name="season" id="summer" checked>
- <label for="summer">Eté</label>
-
- <input type="radio" name="season" id="fall">
- <label for="fall">Automne</label>
-
- <input type="radio" name="season" id="winter">
- <label for="winter">Hiver</label>
-</fieldset>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-default', ':default')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-default', ':default')}}
- {{Spec2('HTML5 W3C')}}
- La sémantique liée au HTML est définie et les contraintes de validation sont également définies.
-
-
- {{SpecName('CSS4 Selectors', '#default-pseudo', ':default')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS3 Basic UI', '#pseudo-default', ':default')}}
- {{Spec2('CSS3 Basic UI')}}
- Définition initiale de la pseudo-classe mais pas de la sémantique associée.
- Compatibilité des navigateurs
-
-:default représente un élément de l'interface utilisateur qui est l'élément par défaut parmi d'autres éléments semblables (par exemple le bouton par défaut d'un groupe de boutons)./* Cible l'élément par défaut d'un groupe */
+:default {
+ background-color: lime;
+}
+
+<input type="checkbox">, <input type="radio"> et {{htmlelement("option")}} :
+
+
+<option> par défaut est le premier qui possède l'attribut selected ou le premier qui est activé selon l'ordre du DOM.<input type="checkbox"> et <input type="radio"> seront ciblés s'ils possèdent l'attribut checked.<button> est ciblé si c'est le bouton d'envoi par défaut d'un formulaire, c'est-à-dire le premier bouton (selon l'ordre du DOM) appartenant au formulaire (cela vaut également pour les éléments {{htmlelement("input")}} dont le type permet d'envoyer des formulaires tels que image ou submit).:default.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input:default {
+ box-shadow: 0 0 2px 1px coral;
+}
+
+input:default + label {
+ color: coral;
+}
+
+
+HTML
+
+<fieldset>
+ <legend>Saison préférée</legend>
+
+ <input type="radio" name="season" id="spring">
+ <label for="spring">Printemps</label>
+
+ <input type="radio" name="season" id="summer" checked>
+ <label for="summer">Eté</label>
+
+ <input type="radio" name="season" id="fall">
+ <label for="fall">Automne</label>
+
+ <input type="radio" name="season" id="winter">
+ <label for="winter">Hiver</label>
+</fieldset>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-default', ':default')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-default', ':default')}}
+ {{Spec2('HTML5 W3C')}}
+ La sémantique liée au HTML est définie et les contraintes de validation sont également définies.
+
+
+ {{SpecName('CSS4 Selectors', '#default-pseudo', ':default')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS3 Basic UI', '#pseudo-default', ':default')}}
+ {{Spec2('CSS3 Basic UI')}}
+ Définition initiale de la pseudo-classe mais pas de la sémantique associée.
+ Compatibilité des navigateurs
+
+:defined représente n'importe quel élément ayant été défini. Cela inclut les éléments standards provenant du navigateur, ainsi que les éléments personnalisés (« custom elements ») ayant correctement été définis (c'est-à-dire grâce à la méthode CustomElementRegistry.define())./* Cette règle cible tout élément défini */
-:defined {
- font-style: italic;
-}
-
-/* Cette règle cible n'importe quelle instance d'un élément personnalisé donné */
-simple-custom:defined {
- display: block;
-}
-
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-defined-pseudo-class (voir le résultat en live).customElements.define('simple-custom',
- class extends HTMLElement {
- constructor() {
- super();
-
- let divElem = document.createElement('div');
- divElem.textContent = this.getAttribute('text');
-
- let shadowRoot = this.attachShadow({mode: 'open'})
- .appendChild(divElem);
- }
-})
-
-<p> :<simple-custom text="Le texte de l'élément personnalisé"></simple-custom>
-
-<p>Un paragraphe normal</p>
-
-// On utilise deux arrières-plans distincts pour ces deux éléments
-p {
- background: yellow;
-}
-
-simple-custom {
- background: cyan;
-}
-
-// On met en italique le texte de ces deux éléments
-:defined {
- font-style: italic;
-}
-
-simple-custom:not(:defined) {
- display: none;
-}
-
-simple-custom:defined {
- display: block;
-}
-
-Spécifications
-
-{{Specifications}}
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/_colon_defined/index.md b/files/fr/web/css/_colon_defined/index.md
new file mode 100644
index 0000000000..a1bfe2b1b9
--- /dev/null
+++ b/files/fr/web/css/_colon_defined/index.md
@@ -0,0 +1,98 @@
+---
+title: ':defined'
+slug: 'Web/CSS/:defined'
+tags:
+ - CSS
+ - Layout
+ - Pseudo-class
+ - Reference
+ - Selector
+ - Web
+translation_of: 'Web/CSS/:defined'
+browser-compat: css.selectors.defined
+---
+:defined représente n'importe quel élément ayant été défini. Cela inclut les éléments standards provenant du navigateur, ainsi que les éléments personnalisés (« custom elements ») ayant correctement été définis (c'est-à-dire grâce à la méthode CustomElementRegistry.define())./* Cette règle cible tout élément défini */
+:defined {
+ font-style: italic;
+}
+
+/* Cette règle cible n'importe quelle instance d'un élément personnalisé donné */
+simple-custom:defined {
+ display: block;
+}
+
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+defined-pseudo-class (voir le résultat en live).customElements.define('simple-custom',
+ class extends HTMLElement {
+ constructor() {
+ super();
+
+ let divElem = document.createElement('div');
+ divElem.textContent = this.getAttribute('text');
+
+ let shadowRoot = this.attachShadow({mode: 'open'})
+ .appendChild(divElem);
+ }
+})
+
+<p> :<simple-custom text="Le texte de l'élément personnalisé"></simple-custom>
+
+<p>Un paragraphe normal</p>
+
+// On utilise deux arrières-plans distincts pour ces deux éléments
+p {
+ background: yellow;
+}
+
+simple-custom {
+ background: cyan;
+}
+
+// On met en italique le texte de ces deux éléments
+:defined {
+ font-style: italic;
+}
+
+simple-custom:not(:defined) {
+ display: none;
+}
+
+simple-custom:defined {
+ display: block;
+}
+
+Spécifications
+
+{{Specifications}}
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/_colon_dir/index.html b/files/fr/web/css/_colon_dir/index.html
deleted file mode 100644
index 258e28c8b5..0000000000
--- a/files/fr/web/css/_colon_dir/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: ':dir'
-slug: 'Web/CSS/:dir'
-tags:
- - CSS
- - Experimental
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:dir'
----
-:dir permet de cibler un élément selon la direction du texte qu'il contient. En HTML, la direction est définie grâce à l'attribut {{htmlattrxref("dir", "html")}}. Pour les autres types de document, cela peut être déterminé autrement./* Cible le contenu avec du texte */
-/* écrit de droite à gauche */
-:dir(rtl) {
- background-color: red;
-}
-
-:dir() ne fonctionne pas de la même façon que le sélecteur d'attribut [dir=…]. Ce dernier utilise la valeur de l'attribut {{htmlattrxref("dir", "html")}} et il n'y a aucune correspondance lorsque l'attribut n'est pas défini (même si l'élément HTML hérite de la valeur de son élément parent). De la même façon [dir=rtl] ou [dir=ltr] ne pourront pas correspondre à la valeur auto qui peut être utilisée sur l'attribut dir. Au contraire, :dir() calculera la correspondance en fonction de la valeur utilisée par l'agent utilisateur (qu'elle soit héritée ou qu'elle vaille auto).:dir() ne prend en compte que la valeur sémantique de la direction, celle qui est définie par le document (la plupart du temps un document HTML). Elle ne tiendra pas compte de la direction liée à la mise en forme, purement stylistique, modifiée par des propriétés telles que {{cssxref("direction")}}.Syntaxe
-
-:dir() nécessite un paramètre qui indique la direction du texte qu'on souhaite ciblerParamètres
-
-
-
-
-directionltr (texte écrit de gauche à droite) ou rtl (texte écrit de droite à gauche).Syntaxe formelle
-
-Exemples
-
-CSS
-
-:-moz-dir(rtl) {
- color: lime;
-}
-
-:dir(rtl) {
- color: lime;
-}
-
-:-moz-dir(ltr) {
- color: black;
-}
-
-:dir(ltr) {
- color: black;
-}
-
-HTML
-
-<div dir="rtl">
- <span>test1</span>
- <div dir="ltr">test2
- <div dir="auto">עִבְרִית</div>
- </div>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-ltr', ':dir(ltr)')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS4 Selectors', '#the-dir-pseudo', ':dir()')}}
- {{Spec2('CSS4 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_dir/index.md b/files/fr/web/css/_colon_dir/index.md
new file mode 100644
index 0000000000..258e28c8b5
--- /dev/null
+++ b/files/fr/web/css/_colon_dir/index.md
@@ -0,0 +1,107 @@
+---
+title: ':dir'
+slug: 'Web/CSS/:dir'
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:dir'
+---
+:dir permet de cibler un élément selon la direction du texte qu'il contient. En HTML, la direction est définie grâce à l'attribut {{htmlattrxref("dir", "html")}}. Pour les autres types de document, cela peut être déterminé autrement./* Cible le contenu avec du texte */
+/* écrit de droite à gauche */
+:dir(rtl) {
+ background-color: red;
+}
+
+:dir() ne fonctionne pas de la même façon que le sélecteur d'attribut [dir=…]. Ce dernier utilise la valeur de l'attribut {{htmlattrxref("dir", "html")}} et il n'y a aucune correspondance lorsque l'attribut n'est pas défini (même si l'élément HTML hérite de la valeur de son élément parent). De la même façon [dir=rtl] ou [dir=ltr] ne pourront pas correspondre à la valeur auto qui peut être utilisée sur l'attribut dir. Au contraire, :dir() calculera la correspondance en fonction de la valeur utilisée par l'agent utilisateur (qu'elle soit héritée ou qu'elle vaille auto).:dir() ne prend en compte que la valeur sémantique de la direction, celle qui est définie par le document (la plupart du temps un document HTML). Elle ne tiendra pas compte de la direction liée à la mise en forme, purement stylistique, modifiée par des propriétés telles que {{cssxref("direction")}}.Syntaxe
+
+:dir() nécessite un paramètre qui indique la direction du texte qu'on souhaite ciblerParamètres
+
+
+
+
+directionltr (texte écrit de gauche à droite) ou rtl (texte écrit de droite à gauche).Syntaxe formelle
+
+Exemples
+
+CSS
+
+:-moz-dir(rtl) {
+ color: lime;
+}
+
+:dir(rtl) {
+ color: lime;
+}
+
+:-moz-dir(ltr) {
+ color: black;
+}
+
+:dir(ltr) {
+ color: black;
+}
+
+HTML
+
+<div dir="rtl">
+ <span>test1</span>
+ <div dir="ltr">test2
+ <div dir="auto">עִבְרִית</div>
+ </div>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-ltr', ':dir(ltr)')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS4 Selectors', '#the-dir-pseudo', ':dir()')}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_disabled/index.html b/files/fr/web/css/_colon_disabled/index.html
deleted file mode 100644
index a39b26df64..0000000000
--- a/files/fr/web/css/_colon_disabled/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: ':disabled'
-slug: 'Web/CSS/:disabled'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:disabled'
----
-:disabled permet de cibler un élément désactivé. Un élément est désactivé s'il ne peut pas être activé (sélectionné, cliqué ou saisi) ou s'il ne peut pas recevoir le focus de l'utilisateur. L'élément possède également un état activé dans lequel il peut être sélectionné ou recevoir le focus./* Cible tous les champs de saisie texte */
-/* qui sont désactivés */
-input[type="text"]:disabled {
- background: #ccc;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input[type="text"]:disabled { background: #ccc; }
-
-
-HTML
-
-<form action="#">
- <fieldset>
- <legend>Adresse de livraison</legend>
- <input type="text" placeholder="Nom">
- <input type="text" placeholder="Adresse">
- <input type="text" placeholder="Code postal">
- </fieldset>
- <fieldset id="facturation">
- <legend>Adresse de facturation</legend>
- <label for="facturation_livraison">Identique à l'adresse de livraison</label>
- <input type="checkbox" id="facturation_livraison" onchange="javascript:toggleBilling()" checked>
- <br />
- <input type="text" placeholder="Nom" disabled>
- <input type="text" placeholder="Adresse" disabled>
- <input type="text" placeholder="Code postal" disabled>
- </fieldset>
-</form>
-
-
-JavaScript
-
-function toggleBilling() {
- var billingItems = document.querySelectorAll('#facturation input[type="text"]');
- for (var i = 0; i < billingItems.length; i++) {
- billingItems[i].disabled = !billingItems[i].disabled;
- }
-}
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-disabled', ':disabled')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-disabled', ':disabled')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et aux formulaires.
-
-
- {{SpecName('CSS4 Selectors', '#enableddisabled', ':disabled')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Basic UI', '#pseudo-classes', ':disabled')}}
- {{Spec2('CSS3 Basic UI')}}
- Référence à la spécification de niveau 3 sur les sélecteurs.
-
-
-
-{{SpecName('CSS3 Selectors', '#enableddisabled', ':disabled')}}
- {{Spec2('CSS3 Selectors')}}
- Définition de la pseudo-classe mais sans la sémantique associée.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_disabled/index.md b/files/fr/web/css/_colon_disabled/index.md
new file mode 100644
index 0000000000..a39b26df64
--- /dev/null
+++ b/files/fr/web/css/_colon_disabled/index.md
@@ -0,0 +1,115 @@
+---
+title: ':disabled'
+slug: 'Web/CSS/:disabled'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:disabled'
+---
+:disabled permet de cibler un élément désactivé. Un élément est désactivé s'il ne peut pas être activé (sélectionné, cliqué ou saisi) ou s'il ne peut pas recevoir le focus de l'utilisateur. L'élément possède également un état activé dans lequel il peut être sélectionné ou recevoir le focus./* Cible tous les champs de saisie texte */
+/* qui sont désactivés */
+input[type="text"]:disabled {
+ background: #ccc;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input[type="text"]:disabled { background: #ccc; }
+
+
+HTML
+
+<form action="#">
+ <fieldset>
+ <legend>Adresse de livraison</legend>
+ <input type="text" placeholder="Nom">
+ <input type="text" placeholder="Adresse">
+ <input type="text" placeholder="Code postal">
+ </fieldset>
+ <fieldset id="facturation">
+ <legend>Adresse de facturation</legend>
+ <label for="facturation_livraison">Identique à l'adresse de livraison</label>
+ <input type="checkbox" id="facturation_livraison" onchange="javascript:toggleBilling()" checked>
+ <br />
+ <input type="text" placeholder="Nom" disabled>
+ <input type="text" placeholder="Adresse" disabled>
+ <input type="text" placeholder="Code postal" disabled>
+ </fieldset>
+</form>
+
+
+JavaScript
+
+function toggleBilling() {
+ var billingItems = document.querySelectorAll('#facturation input[type="text"]');
+ for (var i = 0; i < billingItems.length; i++) {
+ billingItems[i].disabled = !billingItems[i].disabled;
+ }
+}
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-disabled', ':disabled')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-disabled', ':disabled')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et aux formulaires.
+
+
+ {{SpecName('CSS4 Selectors', '#enableddisabled', ':disabled')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Basic UI', '#pseudo-classes', ':disabled')}}
+ {{Spec2('CSS3 Basic UI')}}
+ Référence à la spécification de niveau 3 sur les sélecteurs.
+
+
+
+{{SpecName('CSS3 Selectors', '#enableddisabled', ':disabled')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition de la pseudo-classe mais sans la sémantique associée.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_empty/index.html b/files/fr/web/css/_colon_empty/index.html
deleted file mode 100644
index 81091c8db4..0000000000
--- a/files/fr/web/css/_colon_empty/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: ':empty'
-slug: Web/CSS/:empty
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:empty
----
-:empty correspond à un élément qui n'a aucun enfant. Seules les feuilles de l'arbre et le texte (espaces inclus) sont pris en compte. Les commentaires, les attributs ou le contenu généré en CSS avec {{cssxref("content")}} n'ont pas d'influence sur le contenu de l'élément (autrement dit, si un élément ne contient que des commentaires, il sera considéré comme vide)./* Cible tous les éléments <div> qui */
-/* n'ont pas de contenu */
-div:empty {
- background: lime;
-}
-
-:empty a été modifié afin de se comporter comme {{CSSxRef(":-moz-only-whitespace")}} mais, à l'heure actuelle, aucun navigateur ne prend en charge cette fonctionnalité.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-body {
- display: flex;
- justify-content: space-around;
-}
-
-.box {
- background: red;
- height: 100px;
- width: 100px;
-}
-
-.box:empty {
- background: blue;
-}
-
-
-HTML
-
-<div class="box"><!-- Je serai bleu. --></div>
-<div class="box">Je serai rouge.</div>
-<div class="box">
- <!-- Je serai rouge à cause des espaces autour du commentaire -->
-</div>
-
-Résultat
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS4 Selectors", "#the-empty-pseudo", ":empty")}}
- {{Spec2('CSS4 Selectors')}}
- Modifier afin d'obtenir le comportement de {{CSSxRef(":-moz-only-whitespace")}}.
-
-
-
-{{SpecName("CSS3 Selectors", "#empty-pseudo", ":empty")}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_empty/index.md b/files/fr/web/css/_colon_empty/index.md
new file mode 100644
index 0000000000..81091c8db4
--- /dev/null
+++ b/files/fr/web/css/_colon_empty/index.md
@@ -0,0 +1,105 @@
+---
+title: ':empty'
+slug: Web/CSS/:empty
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: Web/CSS/:empty
+---
+:empty correspond à un élément qui n'a aucun enfant. Seules les feuilles de l'arbre et le texte (espaces inclus) sont pris en compte. Les commentaires, les attributs ou le contenu généré en CSS avec {{cssxref("content")}} n'ont pas d'influence sur le contenu de l'élément (autrement dit, si un élément ne contient que des commentaires, il sera considéré comme vide)./* Cible tous les éléments <div> qui */
+/* n'ont pas de contenu */
+div:empty {
+ background: lime;
+}
+
+:empty a été modifié afin de se comporter comme {{CSSxRef(":-moz-only-whitespace")}} mais, à l'heure actuelle, aucun navigateur ne prend en charge cette fonctionnalité.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+body {
+ display: flex;
+ justify-content: space-around;
+}
+
+.box {
+ background: red;
+ height: 100px;
+ width: 100px;
+}
+
+.box:empty {
+ background: blue;
+}
+
+
+HTML
+
+<div class="box"><!-- Je serai bleu. --></div>
+<div class="box">Je serai rouge.</div>
+<div class="box">
+ <!-- Je serai rouge à cause des espaces autour du commentaire -->
+</div>
+
+Résultat
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS4 Selectors", "#the-empty-pseudo", ":empty")}}
+ {{Spec2('CSS4 Selectors')}}
+ Modifier afin d'obtenir le comportement de {{CSSxRef(":-moz-only-whitespace")}}.
+
+
+
+{{SpecName("CSS3 Selectors", "#empty-pseudo", ":empty")}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_enabled/index.html b/files/fr/web/css/_colon_enabled/index.html
deleted file mode 100644
index 09241724f6..0000000000
--- a/files/fr/web/css/_colon_enabled/index.html
+++ /dev/null
@@ -1,102 +0,0 @@
----
-title: ':enabled'
-slug: 'Web/CSS/:enabled'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:enabled'
----
-:enabled permet de cibler un élément activé. Un élément est activé s'il peut être sélectionné, si on peut cliquer dessus ou si on peut y saisir du texte ou y passer le focus (un élément peut également être dans un état désactivé)./* Cible n'importe quel élément <input> actif */
-input:enabled {
- color: #22AA22;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<form action="url_of_form">
- <label for="PremierChamp">Premier champ (activé) :</label>
- <input type="text" id="PremierChamp" value="Titi"><br />
-
- <label for="DeuxiemeChamp">Deuxième champ (désactivé) :</label>
- <input type="text" id="DeuxiemeChamp" value="Toto" disabled="disabled"><br />
-
- <input type="button" value="Envoyer"/>
-</form>
-
-
-CSS
-
-input:enabled {
- color: #22AA22;
-}
-
-input:disabled {
- color: #D9D9D9;
-}
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-enabled', ':enabled')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-enabled', ':enabled')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique dans le contexte de HTML et des formulaires.
-
-
- {{SpecName('CSS4 Selectors', '#enableddisabled', ':enabled')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Basic UI', '#pseudo-classes', ':enabled')}}
- {{Spec2('CSS3 Basic UI')}}
- Lien vers la spécification des sélecteurs de niveau 3.
-
-
-
-{{SpecName('CSS3 Selectors', '#enableddisabled', ':enabled')}}
- {{Spec2('CSS3 Selectors')}}
- Définition de la pseudo-classe mais pas de la sémantique associée.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_enabled/index.md b/files/fr/web/css/_colon_enabled/index.md
new file mode 100644
index 0000000000..09241724f6
--- /dev/null
+++ b/files/fr/web/css/_colon_enabled/index.md
@@ -0,0 +1,102 @@
+---
+title: ':enabled'
+slug: 'Web/CSS/:enabled'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:enabled'
+---
+:enabled permet de cibler un élément activé. Un élément est activé s'il peut être sélectionné, si on peut cliquer dessus ou si on peut y saisir du texte ou y passer le focus (un élément peut également être dans un état désactivé)./* Cible n'importe quel élément <input> actif */
+input:enabled {
+ color: #22AA22;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<form action="url_of_form">
+ <label for="PremierChamp">Premier champ (activé) :</label>
+ <input type="text" id="PremierChamp" value="Titi"><br />
+
+ <label for="DeuxiemeChamp">Deuxième champ (désactivé) :</label>
+ <input type="text" id="DeuxiemeChamp" value="Toto" disabled="disabled"><br />
+
+ <input type="button" value="Envoyer"/>
+</form>
+
+
+CSS
+
+input:enabled {
+ color: #22AA22;
+}
+
+input:disabled {
+ color: #D9D9D9;
+}
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-enabled', ':enabled')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-enabled', ':enabled')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique dans le contexte de HTML et des formulaires.
+
+
+ {{SpecName('CSS4 Selectors', '#enableddisabled', ':enabled')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Basic UI', '#pseudo-classes', ':enabled')}}
+ {{Spec2('CSS3 Basic UI')}}
+ Lien vers la spécification des sélecteurs de niveau 3.
+
+
+
+{{SpecName('CSS3 Selectors', '#enableddisabled', ':enabled')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition de la pseudo-classe mais pas de la sémantique associée.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_first-child/index.html b/files/fr/web/css/_colon_first-child/index.html
deleted file mode 100644
index f82d5e854b..0000000000
--- a/files/fr/web/css/_colon_first-child/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: ':first-child'
-slug: 'Web/CSS/:first-child'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:first-child'
----
-:first-child permet de cibler un élément qui est le premier élément fils par rapport à son élément parent./* Cible n'importe quel élément <p> qui est */
-/* le premier fils de son élément parent */
-p:first-child {
- color: lime;
- background-color: black;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-Premier exemple
-
-CSS
-
-p:first-child {
- color: lime;
- background-color: black;
- padding: 5px;
-}
-
-HTML
-
-<div>
- <p>Ce paragraphe est mis en forme car c'est un élément
- p ET que c'est le premier fils de l'élément div.</p>
- <p>En revanche, ce paragraphe n'est pas mis en forme
- car ce n'est pas le premier !</p>
-</div>
-
-<div>
- <h2>Ce titre h2 n'est pas mis en forme car ce n'est pas
- un paragraphe.</h2>
- <p>Et ce paragraphe n'est pas mis en forme car ce n'est pas
- le premier fils !</p>
-</div>
-
-
-Résultat
-
-Utiliser les listes non ordonnées
-
-CSS
-
-li{
- color:blue;
-}
-
-li:first-child{
- color:green;
-}
-
-HTML
-
-<ul>
- <li>Élément 1 de la liste</li>
- <li>Élément 2</li>
- <li>Élément 3</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#first-child-pseudo', ':first-child')}}
- {{Spec2('CSS4 Selectors')}}
- Les éléments correspondants ne doivent pas avoir nécessairement de parent.
-
-
- {{SpecName('CSS3 Selectors', '#first-child-pseudo', ':first-child')}}
- {{Spec2('CSS3 Selectors')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS2.1', 'selector.html#first-child', ':first-child')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_first-child/index.md b/files/fr/web/css/_colon_first-child/index.md
new file mode 100644
index 0000000000..f82d5e854b
--- /dev/null
+++ b/files/fr/web/css/_colon_first-child/index.md
@@ -0,0 +1,126 @@
+---
+title: ':first-child'
+slug: 'Web/CSS/:first-child'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:first-child'
+---
+:first-child permet de cibler un élément qui est le premier élément fils par rapport à son élément parent./* Cible n'importe quel élément <p> qui est */
+/* le premier fils de son élément parent */
+p:first-child {
+ color: lime;
+ background-color: black;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+Premier exemple
+
+CSS
+
+p:first-child {
+ color: lime;
+ background-color: black;
+ padding: 5px;
+}
+
+HTML
+
+<div>
+ <p>Ce paragraphe est mis en forme car c'est un élément
+ p ET que c'est le premier fils de l'élément div.</p>
+ <p>En revanche, ce paragraphe n'est pas mis en forme
+ car ce n'est pas le premier !</p>
+</div>
+
+<div>
+ <h2>Ce titre h2 n'est pas mis en forme car ce n'est pas
+ un paragraphe.</h2>
+ <p>Et ce paragraphe n'est pas mis en forme car ce n'est pas
+ le premier fils !</p>
+</div>
+
+
+Résultat
+
+Utiliser les listes non ordonnées
+
+CSS
+
+li{
+ color:blue;
+}
+
+li:first-child{
+ color:green;
+}
+
+HTML
+
+<ul>
+ <li>Élément 1 de la liste</li>
+ <li>Élément 2</li>
+ <li>Élément 3</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#first-child-pseudo', ':first-child')}}
+ {{Spec2('CSS4 Selectors')}}
+ Les éléments correspondants ne doivent pas avoir nécessairement de parent.
+
+
+ {{SpecName('CSS3 Selectors', '#first-child-pseudo', ':first-child')}}
+ {{Spec2('CSS3 Selectors')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS2.1', 'selector.html#first-child', ':first-child')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_first-of-type/index.html b/files/fr/web/css/_colon_first-of-type/index.html
deleted file mode 100644
index c4582933bd..0000000000
--- a/files/fr/web/css/_colon_first-of-type/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: ':first-of-type'
-slug: 'Web/CSS/:first-of-type'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:first-of-type'
----
-:first-of-type permet de cibler le premier élément d'un type donné parmi ceux d'un même élément parent (et de même niveau)./* Cible le premier élément <p> d'un type donné */
-/* parmi ses éléments voisins */
-p:first-of-type {
- color: red;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div :first-of-type {
- background-color: lime;
-}
-
-HTML
-
-<div>
- <span>Voici le premier span !</span>
- <span>Un autre span, pas le premier.</span>
- <span>Quid de cet <em>élément imbriqué </em>?</span>
- <b>Un autre type d'élément.</b>
- <span>Ce type là est déjà apparu.</span>
-</div>
-
-
-Résultat
-
-<div>.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#first-of-type-pseudo', ':first-of-type')}}
- {{Spec2('CSS4 Selectors')}}
- Les éléments ciblés ne doivent pas nécessairement avoir de parent.
-
-
-
-{{SpecName('CSS3 Selectors', '#first-of-type-pseudo', ':first-of-type')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_first-of-type/index.md b/files/fr/web/css/_colon_first-of-type/index.md
new file mode 100644
index 0000000000..c4582933bd
--- /dev/null
+++ b/files/fr/web/css/_colon_first-of-type/index.md
@@ -0,0 +1,93 @@
+---
+title: ':first-of-type'
+slug: 'Web/CSS/:first-of-type'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:first-of-type'
+---
+:first-of-type permet de cibler le premier élément d'un type donné parmi ceux d'un même élément parent (et de même niveau)./* Cible le premier élément <p> d'un type donné */
+/* parmi ses éléments voisins */
+p:first-of-type {
+ color: red;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div :first-of-type {
+ background-color: lime;
+}
+
+HTML
+
+<div>
+ <span>Voici le premier span !</span>
+ <span>Un autre span, pas le premier.</span>
+ <span>Quid de cet <em>élément imbriqué </em>?</span>
+ <b>Un autre type d'élément.</b>
+ <span>Ce type là est déjà apparu.</span>
+</div>
+
+
+Résultat
+
+<div>.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#first-of-type-pseudo', ':first-of-type')}}
+ {{Spec2('CSS4 Selectors')}}
+ Les éléments ciblés ne doivent pas nécessairement avoir de parent.
+
+
+
+{{SpecName('CSS3 Selectors', '#first-of-type-pseudo', ':first-of-type')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_first/index.html b/files/fr/web/css/_colon_first/index.html
deleted file mode 100644
index 00a1c2771e..0000000000
--- a/files/fr/web/css/_colon_first/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: ':first'
-slug: Web/CSS/:first
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:first
----
-:first, liée à la règle @ {{cssxref("@page")}} décrit la mise en forme de la première page lors de l'impression d'un document. ( voir {{cssxref(":first-child")}} pour le premier élément d'un noeud )/* Cible le contenu de la première page */
-/* lorsqu'on imprime */
-@page :first {
- margin-left: 50%;
- margin-top: 50%;
-}
-
-
-
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-@page :first {
- margin-left: 50%;
- margin-top: 50%;
-}
-
-p {
- page-break-after: always;
-}
-
-HTML
-
-<p>Première page.</p>
-<p>Deuxième page.</p>
-<button>Imprimer</button>
-
-JavaScript
-
-document.querySelector("button").addEventListener('click', () => {
- window.print();
-});
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Paged Media', '#left-right-first', ':first')}}
- {{Spec2('CSS3 Paged Media')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS2.1', 'page.html#page-selectors', ':first')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_first/index.md b/files/fr/web/css/_colon_first/index.md
new file mode 100644
index 0000000000..00a1c2771e
--- /dev/null
+++ b/files/fr/web/css/_colon_first/index.md
@@ -0,0 +1,98 @@
+---
+title: ':first'
+slug: Web/CSS/:first
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: Web/CSS/:first
+---
+:first, liée à la règle @ {{cssxref("@page")}} décrit la mise en forme de la première page lors de l'impression d'un document. ( voir {{cssxref(":first-child")}} pour le premier élément d'un noeud )/* Cible le contenu de la première page */
+/* lorsqu'on imprime */
+@page :first {
+ margin-left: 50%;
+ margin-top: 50%;
+}
+
+
+
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+@page :first {
+ margin-left: 50%;
+ margin-top: 50%;
+}
+
+p {
+ page-break-after: always;
+}
+
+HTML
+
+<p>Première page.</p>
+<p>Deuxième page.</p>
+<button>Imprimer</button>
+
+JavaScript
+
+document.querySelector("button").addEventListener('click', () => {
+ window.print();
+});
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Paged Media', '#left-right-first', ':first')}}
+ {{Spec2('CSS3 Paged Media')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS2.1', 'page.html#page-selectors', ':first')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_focus-visible/index.html b/files/fr/web/css/_colon_focus-visible/index.html
deleted file mode 100644
index 8354f4329b..0000000000
--- a/files/fr/web/css/_colon_focus-visible/index.html
+++ /dev/null
@@ -1,135 +0,0 @@
----
-title: ':focus-visible'
-slug: 'Web/CSS/:focus-visible'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
- - Web
-translation_of: 'Web/CSS/:focus-visible'
----
-:focus-visible s'applique lorsqu'un élément correspond à la pseudo-classe {{cssxref("focus")}} et que l'agent utilisateur détermine, via une heuristique, que le focus devrait être mis en évidence sur l'élément (la plupart des navigateurs affichent un contour en surbrillance par défaut).:-moz-focusring. Voir la page {{cssxref(":-moz-focusring")}} pour plus d'informations.Syntaxe
-
-:focus-visible
-
-Exemples
-
-Exemple simple
-
-:focus-visible utilise le comportement de l'agent utilisateur afin de déterminer lorsqu'il doit s'appliquer. Pour utiliser l'exemple, comparez ce qui se produit selon que vous utilisez une souris ou un clavier et notez la différence avec les éléments ciblés par :focus.HTML
-
-<input value="Styles par défaut"><br>
-<button>Styles par défaut</button><br>
-<input class="focus-only" value=":focus only"><br>
-<button class="focus-only">:focus only</button><br>
-<input class="focus-visible-only" value=":focus-visible only"><br>
-<button class="focus-visible-only">:focus-visible only</button>
-
-CSS
-
-input, button {
- margin: 10px;
-}
-
-.focus-only:focus {
- outline: 2px solid black;
-}
-
-.focus-visible-only:focus-visible {
- outline: 4px dashed darkorange;
-}
-
-
-Choisir d'afficher l’indicateur de focus
-
-:focus-visible afin d'appliquer ou non un indicateur de focus pour la navigation au clavier afin de calquer au comportement natif de {{htmlelement("button")}}.HTML
-
-<custom-button tabindex="0" role="button">Cliquez-moi</custom-button>
-
-CSS
-
-custom-button {
- display: inline-block;
- margin: 10px;
-}
-
-custom-button:focus {
- /* Fournir une alternative pour les navigateurs
- qui ne prennent pas en charge :focus-visible */
- outline: 2px solid red;
- background: lightgrey;
-}
-
-custom-button:focus:not(:focus-visible) {
- /* Retirer l'indicateur de focus à la souris
- pour les navigateurs qui prennent en charge :focus-visible */
- background: transparent;
-}
-
-custom-button:focus-visible {
- /* Dessiner un contour pour les navigateurs qui
- prennent en charge :focus-visible lorsque la
- navigation est au clavier */
- outline: 4px dashed darkorange;
- background: transparent;
-}
-
-Accessibilité
-
-Troubles de la vision
-
-
-
-
-Troubles cognitifs
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#the-focus-visible-pseudo", ":focus-visible")}}
- {{Spec2("CSS4 Selectors")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_focus-visible/index.md b/files/fr/web/css/_colon_focus-visible/index.md
new file mode 100644
index 0000000000..8354f4329b
--- /dev/null
+++ b/files/fr/web/css/_colon_focus-visible/index.md
@@ -0,0 +1,135 @@
+---
+title: ':focus-visible'
+slug: 'Web/CSS/:focus-visible'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+ - Web
+translation_of: 'Web/CSS/:focus-visible'
+---
+:focus-visible s'applique lorsqu'un élément correspond à la pseudo-classe {{cssxref("focus")}} et que l'agent utilisateur détermine, via une heuristique, que le focus devrait être mis en évidence sur l'élément (la plupart des navigateurs affichent un contour en surbrillance par défaut).:-moz-focusring. Voir la page {{cssxref(":-moz-focusring")}} pour plus d'informations.Syntaxe
+
+:focus-visible
+
+Exemples
+
+Exemple simple
+
+:focus-visible utilise le comportement de l'agent utilisateur afin de déterminer lorsqu'il doit s'appliquer. Pour utiliser l'exemple, comparez ce qui se produit selon que vous utilisez une souris ou un clavier et notez la différence avec les éléments ciblés par :focus.HTML
+
+<input value="Styles par défaut"><br>
+<button>Styles par défaut</button><br>
+<input class="focus-only" value=":focus only"><br>
+<button class="focus-only">:focus only</button><br>
+<input class="focus-visible-only" value=":focus-visible only"><br>
+<button class="focus-visible-only">:focus-visible only</button>
+
+CSS
+
+input, button {
+ margin: 10px;
+}
+
+.focus-only:focus {
+ outline: 2px solid black;
+}
+
+.focus-visible-only:focus-visible {
+ outline: 4px dashed darkorange;
+}
+
+
+Choisir d'afficher l’indicateur de focus
+
+:focus-visible afin d'appliquer ou non un indicateur de focus pour la navigation au clavier afin de calquer au comportement natif de {{htmlelement("button")}}.HTML
+
+<custom-button tabindex="0" role="button">Cliquez-moi</custom-button>
+
+CSS
+
+custom-button {
+ display: inline-block;
+ margin: 10px;
+}
+
+custom-button:focus {
+ /* Fournir une alternative pour les navigateurs
+ qui ne prennent pas en charge :focus-visible */
+ outline: 2px solid red;
+ background: lightgrey;
+}
+
+custom-button:focus:not(:focus-visible) {
+ /* Retirer l'indicateur de focus à la souris
+ pour les navigateurs qui prennent en charge :focus-visible */
+ background: transparent;
+}
+
+custom-button:focus-visible {
+ /* Dessiner un contour pour les navigateurs qui
+ prennent en charge :focus-visible lorsque la
+ navigation est au clavier */
+ outline: 4px dashed darkorange;
+ background: transparent;
+}
+
+Accessibilité
+
+Troubles de la vision
+
+
+
+
+Troubles cognitifs
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#the-focus-visible-pseudo", ":focus-visible")}}
+ {{Spec2("CSS4 Selectors")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_focus-within/index.html b/files/fr/web/css/_colon_focus-within/index.html
deleted file mode 100644
index 96f6ec7d91..0000000000
--- a/files/fr/web/css/_colon_focus-within/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: ':focus-within'
-slug: 'Web/CSS/:focus-within'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:focus-within'
----
-:focus-within s'applique à tous les éléments pour lesquels la pseudo-classe {{cssxref(":focus")}} s'applique ainsi qu'à tous leurs éléments descendants, y compris ceux du Shadow DOM. Autrement dit, cette pseudo-classe s'applique lorsqu'un élément a reçu le focus via le clavier ou la souris (par exemple lorsqu'on clique sur un champ d'un formulaire)./* Cible n'importe quel <div> lorsqu'un */
-/* de ses descendants a reçu le focus */
-div:focus-within {
- background: yellow;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.name-container {
- padding: 4px;
-}
-
-.name-container:focus-within {
- background: yellow;
-}
-
-input {
- margin: 4px;
-}
-
-HTML
-
-<p>
- L'élément div ci-après aura un fond jaune
- si l'un des deux champs de saisie a le focus.
-</p>
-<div class="name-container">
- <label for="prenom">
- Prénom :
- <input id="prenom" placeholder="Prénom" type="text">
- </label>
- <label for="nom">
- Nom :
- <input id="nom" placeholder="Nom" type="text">
- </label>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#the-focus-within-pseudo", ":focus-within")}}
- {{Spec2("CSS4 Selectors")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_focus-within/index.md b/files/fr/web/css/_colon_focus-within/index.md
new file mode 100644
index 0000000000..96f6ec7d91
--- /dev/null
+++ b/files/fr/web/css/_colon_focus-within/index.md
@@ -0,0 +1,94 @@
+---
+title: ':focus-within'
+slug: 'Web/CSS/:focus-within'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:focus-within'
+---
+:focus-within s'applique à tous les éléments pour lesquels la pseudo-classe {{cssxref(":focus")}} s'applique ainsi qu'à tous leurs éléments descendants, y compris ceux du Shadow DOM. Autrement dit, cette pseudo-classe s'applique lorsqu'un élément a reçu le focus via le clavier ou la souris (par exemple lorsqu'on clique sur un champ d'un formulaire)./* Cible n'importe quel <div> lorsqu'un */
+/* de ses descendants a reçu le focus */
+div:focus-within {
+ background: yellow;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.name-container {
+ padding: 4px;
+}
+
+.name-container:focus-within {
+ background: yellow;
+}
+
+input {
+ margin: 4px;
+}
+
+HTML
+
+<p>
+ L'élément div ci-après aura un fond jaune
+ si l'un des deux champs de saisie a le focus.
+</p>
+<div class="name-container">
+ <label for="prenom">
+ Prénom :
+ <input id="prenom" placeholder="Prénom" type="text">
+ </label>
+ <label for="nom">
+ Nom :
+ <input id="nom" placeholder="Nom" type="text">
+ </label>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#the-focus-within-pseudo", ":focus-within")}}
+ {{Spec2("CSS4 Selectors")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_focus/index.html b/files/fr/web/css/_colon_focus/index.html
deleted file mode 100644
index 2f2b20b790..0000000000
--- a/files/fr/web/css/_colon_focus/index.html
+++ /dev/null
@@ -1,108 +0,0 @@
----
-title: ':focus'
-slug: 'Web/CSS/:focus'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:focus'
----
-:focus permet de cibler un élément lorsque celui-ci reçoit le focus (soit il est sélectionné à l'aide du clavier, soit il est activé avec la souris comme par exemple le champ d'un formulaire)./* Cible n'importe quel élément <input> */
-/* uniquement lorsqu'il a le focus */
-input:focus {
- color: red;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.prenom:focus {
- background: yellow;
- color: red;
-}
-
-.nom:focus {
- background: yellow;
- color: lime;
-}
-
-HTML
-
-<input class="prenom" value="Rouge si focus">
-<input class="nom" value="Vert si focus">
-
-Résultat
-
-Accessibilité
-
-
-
-
-
-
-:focus { outline: none; }Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-focus', ':focus')}}
- {{Spec2('HTML WHATWG')}}
- Définition de la sémantique relative à HTML.
-
-
- {{SpecName('CSS4 Selectors', '#focus-pseudo', ':focus')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Selectors', '#the-user-action-pseudo-classes-hover-act', ':focus')}}
- {{Spec2('CSS3 Selectors')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':focus')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_focus/index.md b/files/fr/web/css/_colon_focus/index.md
new file mode 100644
index 0000000000..2f2b20b790
--- /dev/null
+++ b/files/fr/web/css/_colon_focus/index.md
@@ -0,0 +1,108 @@
+---
+title: ':focus'
+slug: 'Web/CSS/:focus'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:focus'
+---
+:focus permet de cibler un élément lorsque celui-ci reçoit le focus (soit il est sélectionné à l'aide du clavier, soit il est activé avec la souris comme par exemple le champ d'un formulaire)./* Cible n'importe quel élément <input> */
+/* uniquement lorsqu'il a le focus */
+input:focus {
+ color: red;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.prenom:focus {
+ background: yellow;
+ color: red;
+}
+
+.nom:focus {
+ background: yellow;
+ color: lime;
+}
+
+HTML
+
+<input class="prenom" value="Rouge si focus">
+<input class="nom" value="Vert si focus">
+
+Résultat
+
+Accessibilité
+
+
+
+
+
+
+:focus { outline: none; }Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-focus', ':focus')}}
+ {{Spec2('HTML WHATWG')}}
+ Définition de la sémantique relative à HTML.
+
+
+ {{SpecName('CSS4 Selectors', '#focus-pseudo', ':focus')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Selectors', '#the-user-action-pseudo-classes-hover-act', ':focus')}}
+ {{Spec2('CSS3 Selectors')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':focus')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_fullscreen/index.html b/files/fr/web/css/_colon_fullscreen/index.html
deleted file mode 100644
index 70a63996e7..0000000000
--- a/files/fr/web/css/_colon_fullscreen/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: ':fullscreen'
-slug: 'Web/CSS/:fullscreen'
-tags:
- - CSS
- - Fullscreen API
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:fullscreen'
----
-:fullscreen permet de cibler tout élément qui est en mode plein écran. Si plusieurs éléments ont été mis en plein écran, tous ces éléments seront ciblés.Syntaxe
-
-{{csssyntax}}
-
-Notes d'utilisation
-
-:fullscreen permet de configurer la taille, le style ou la disposition du contenu lorsque les éléments passent de l'état plein écran à l'état normal et vice versa.Exemples
-
-CSS
-
-:not(:fullscreen), qui permet de cibler les éléments qui n'ont pas la pseudo-classe :fullscreen.#fs-toggle:not(:fullscreen) {
- background-color: #afa;
-}
-
-
-:fullscreen et on définit une autre couleur (ici un rouge pâle).#fs-toggle:fullscreen {
- background-color: #faa;
-}
-
-HTML
-
-<h1>MDN Web Docs Demo: :fullscreen pseudo-class</h1>
-
-<p>This demo uses the <code>:fullscreen</code> pseudo-class to automatically
- change the style of a button used to toggle full-screen mode on and off,
- entirely using CSS.</p>
-
-<button id="fs-toggle">Toggle Fullscreen</button>
-
-"fs-toggle" qui changera d'une couleur à une autre selon que le document est en plein écran ou non.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('Fullscreen', '#:fullscreen-pseudo-class', ':fullscreen')}}
- {{Spec2('Fullscreen')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_fullscreen/index.md b/files/fr/web/css/_colon_fullscreen/index.md
new file mode 100644
index 0000000000..70a63996e7
--- /dev/null
+++ b/files/fr/web/css/_colon_fullscreen/index.md
@@ -0,0 +1,91 @@
+---
+title: ':fullscreen'
+slug: 'Web/CSS/:fullscreen'
+tags:
+ - CSS
+ - Fullscreen API
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:fullscreen'
+---
+
-
- :fullscreen permet de cibler tout élément qui est en mode plein écran. Si plusieurs éléments ont été mis en plein écran, tous ces éléments seront ciblés.Syntaxe
+
+{{csssyntax}}
+
+Notes d'utilisation
+
+:fullscreen permet de configurer la taille, le style ou la disposition du contenu lorsque les éléments passent de l'état plein écran à l'état normal et vice versa.Exemples
+
+CSS
+
+:not(:fullscreen), qui permet de cibler les éléments qui n'ont pas la pseudo-classe :fullscreen.#fs-toggle:not(:fullscreen) {
+ background-color: #afa;
+}
+
+
+:fullscreen et on définit une autre couleur (ici un rouge pâle).#fs-toggle:fullscreen {
+ background-color: #faa;
+}
+
+HTML
+
+<h1>MDN Web Docs Demo: :fullscreen pseudo-class</h1>
+
+<p>This demo uses the <code>:fullscreen</code> pseudo-class to automatically
+ change the style of a button used to toggle full-screen mode on and off,
+ entirely using CSS.</p>
+
+<button id="fs-toggle">Toggle Fullscreen</button>
+
+"fs-toggle" qui changera d'une couleur à une autre selon que le document est en plein écran ou non.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('Fullscreen', '#:fullscreen-pseudo-class', ':fullscreen')}}
+ {{Spec2('Fullscreen')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_future/index.html b/files/fr/web/css/_colon_future/index.html
deleted file mode 100644
index 5f52b3f062..0000000000
--- a/files/fr/web/css/_colon_future/index.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: ':future'
-slug: 'Web/CSS/:future'
-browser-compat: css.selectors.future
-translation_of: Web/CSS/:future
----
-
+
+ :future est une pseudo-classe agissant dans la dimension temporelle qui cible n'importe quel élément apparaissant entièrement après un élément correspondant à {{cssxref(":current")}}. Ce sélecteur peut par exemple servir dans le cas d'une vidéo ayant des sous-titres affichés à l'aide du format WebVTT.:future(p, span) {
- display: none;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-:future(p, span) {
- display: none;
-}
-
-HTML
-
-<video controls preload="metadata">
- <source src="video.mp4" type="video/mp4" />
- <source src="video.webm" type="video/webm" />
- <track label="Français" kind="subtitles" srclang="fr" src="subtitles.vtt" default>
-</video>
-
-WebVTT
-
-FICHIER WEBVTT
-
-1
-00:00:03.500 --> 00:00:05.000
-Voici le premier sous-titre
-
-2
-00:00:06.000 --> 00:00:09.000
-Voici le second sous-titre
-
-3
-00:00:11.000 --> 00:00:19.000
-Voici le troisième sous-titre
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_future/index.md b/files/fr/web/css/_colon_future/index.md
new file mode 100644
index 0000000000..5f52b3f062
--- /dev/null
+++ b/files/fr/web/css/_colon_future/index.md
@@ -0,0 +1,66 @@
+---
+title: ':future'
+slug: 'Web/CSS/:future'
+browser-compat: css.selectors.future
+translation_of: Web/CSS/:future
+---
+:future est une pseudo-classe agissant dans la dimension temporelle qui cible n'importe quel élément apparaissant entièrement après un élément correspondant à {{cssxref(":current")}}. Ce sélecteur peut par exemple servir dans le cas d'une vidéo ayant des sous-titres affichés à l'aide du format WebVTT.:future(p, span) {
+ display: none;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+:future(p, span) {
+ display: none;
+}
+
+HTML
+
+<video controls preload="metadata">
+ <source src="video.mp4" type="video/mp4" />
+ <source src="video.webm" type="video/webm" />
+ <track label="Français" kind="subtitles" srclang="fr" src="subtitles.vtt" default>
+</video>
+
+WebVTT
+
+FICHIER WEBVTT
+
+1
+00:00:03.500 --> 00:00:05.000
+Voici le premier sous-titre
+
+2
+00:00:06.000 --> 00:00:09.000
+Voici le second sous-titre
+
+3
+00:00:11.000 --> 00:00:19.000
+Voici le troisième sous-titre
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_has/index.html b/files/fr/web/css/_colon_has/index.html
deleted file mode 100644
index 6b2f7ff50e..0000000000
--- a/files/fr/web/css/_colon_has/index.html
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: ':has'
-slug: 'Web/CSS/:has'
-tags:
- - CSS
- - Experimental
- - Pseudo-classe
- - Reference
- - Sélecteur
-translation_of: 'Web/CSS/:has'
----
-:has() permet de cibler un élément si au moins un des sélecteurs passés en paramètre correspond à l'élément (selon la portée, {{cssxref(":scope")}}, de l'élément).:has() prend en paramètre une liste de sélecteurs.has() n'est pas classé comme un sélecteur dynamique et peut uniquement être utilisé de façon statique (par exemple avec des fonctions comme {{domxref("document.querySelector()")}}./* Avec cette ligne de JavaScript, on récupère */
-/* tous les éléments <a> qui ont un fils direct */
-/* qui est un élément <img> */
-/* Attention, actuellement cette fonction n'est */
-/* pas prise en charge par les navigateurs et */
-/* n'est pas conçue pour fonctionner dans les */
-/* feuilles de style */
-var test = document.querySelector('a:has(> img)');
-
-Syntaxe
-
-:has(liste_selecteurs) { proprietes }
-
-Exemples
-
-a:has(> img)
-
-
-h1:has(+ p)
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#relational", ":has()")}}
- {{Spec2("CSS4 Selectors")}}
- Définition initiale
- Compatibilité des navigateurs
-
-:has() permet de cibler un élément si au moins un des sélecteurs passés en paramètre correspond à l'élément (selon la portée, {{cssxref(":scope")}}, de l'élément).:has() prend en paramètre une liste de sélecteurs.has() n'est pas classé comme un sélecteur dynamique et peut uniquement être utilisé de façon statique (par exemple avec des fonctions comme {{domxref("document.querySelector()")}}./* Avec cette ligne de JavaScript, on récupère */
+/* tous les éléments <a> qui ont un fils direct */
+/* qui est un élément <img> */
+/* Attention, actuellement cette fonction n'est */
+/* pas prise en charge par les navigateurs et */
+/* n'est pas conçue pour fonctionner dans les */
+/* feuilles de style */
+var test = document.querySelector('a:has(> img)');
+
+Syntaxe
+
+:has(liste_selecteurs) { proprietes }
+
+Exemples
+
+a:has(> img)
+
+
+h1:has(+ p)
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#relational", ":has()")}}
+ {{Spec2("CSS4 Selectors")}}
+ Définition initiale
+ Compatibilité des navigateurs
+
+:host() permet de sélectionner l'hôte du shadow DOM contenant le CSS à utiliser, uniquement si le sélecteur passé en argument correspond à l'élément hôte.:host(). Cette fonction ne peut pas être utilisée avec un sélecteur de descendant, pour cela il faudra utiliser {{cssxref(":host-context()")}}./* On cible l'hôte du shadow DOM uniquement s'il
- correspond au sélecteur passé en argument */
-:host(.special-custom-element) {
- font-weight: bold;
-}
-
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-<context-span>, qui peut contenir du texte :<h1>Host selectors <a href="#"><context-span>example</context-span></a></h1>
-
-style et un élément span. Ce dernier recevra le contenu textuel de l'élément personnalisé et l'élément style recevra quelques règles CSS :let style = document.createElement('style');
-let span = document.createElement('span');
-span.textContent = this.textContent;
-
-const shadowRoot = this.attachShadow({mode: 'open'});
-shadowRoot.appendChild(style);
-shadowRoot.appendChild(span);
-
-style.textContent = 'span:hover { text-decoration: underline; }' +
- ':host-context(h1) { font-style: italic; }' +
- ':host-context(h1):after { content: " - no links in headers!" }' +
- ':host-context(article, aside) { color: gray; }' +
- ':host(.footer) { color : red; }' +
- ':host { background: rgba(0,0,0,0.1); padding: 2px 5px; }';
-
-:host(.footer) { color : red; } s'applique à toutes les instances de l'élément <context-span> (il s'agit ici de l'hôte) du document qui possèdent la classe footer. Ici, pour ces éléments donnés, on utilise une couleur spécifique.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS Scope', '#host-selector', ':host()')}}
- {{Spec2('CSS Scope')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_host()/index.md b/files/fr/web/css/_colon_host()/index.md
new file mode 100644
index 0000000000..f2bbe1b429
--- /dev/null
+++ b/files/fr/web/css/_colon_host()/index.md
@@ -0,0 +1,87 @@
+---
+title: ':host()'
+slug: 'Web/CSS/:host()'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:host()'
+---
+:host() permet de sélectionner l'hôte du shadow DOM contenant le CSS à utiliser, uniquement si le sélecteur passé en argument correspond à l'élément hôte.:host(). Cette fonction ne peut pas être utilisée avec un sélecteur de descendant, pour cela il faudra utiliser {{cssxref(":host-context()")}}./* On cible l'hôte du shadow DOM uniquement s'il
+ correspond au sélecteur passé en argument */
+:host(.special-custom-element) {
+ font-weight: bold;
+}
+
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+<context-span>, qui peut contenir du texte :<h1>Host selectors <a href="#"><context-span>example</context-span></a></h1>
+
+style et un élément span. Ce dernier recevra le contenu textuel de l'élément personnalisé et l'élément style recevra quelques règles CSS :let style = document.createElement('style');
+let span = document.createElement('span');
+span.textContent = this.textContent;
+
+const shadowRoot = this.attachShadow({mode: 'open'});
+shadowRoot.appendChild(style);
+shadowRoot.appendChild(span);
+
+style.textContent = 'span:hover { text-decoration: underline; }' +
+ ':host-context(h1) { font-style: italic; }' +
+ ':host-context(h1):after { content: " - no links in headers!" }' +
+ ':host-context(article, aside) { color: gray; }' +
+ ':host(.footer) { color : red; }' +
+ ':host { background: rgba(0,0,0,0.1); padding: 2px 5px; }';
+
+:host(.footer) { color : red; } s'applique à toutes les instances de l'élément <context-span> (il s'agit ici de l'hôte) du document qui possèdent la classe footer. Ici, pour ces éléments donnés, on utilise une couleur spécifique.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS Scope', '#host-selector', ':host()')}}
+ {{Spec2('CSS Scope')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_host-context()/index.html b/files/fr/web/css/_colon_host-context()/index.html
deleted file mode 100644
index 6457aa73c3..0000000000
--- a/files/fr/web/css/_colon_host-context()/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: ':host-context()'
-slug: 'Web/CSS/:host-context()'
-tags:
- - CSS
- - Experimental
- - Pseudo-classe
- - Reference
- - Web
-translation_of: 'Web/CSS/:host-context()'
----
-:host-context() est une fonction qui sélectionne l'hôte (shadow host) du shadow DOM qui contient le CSS utilisé à l'intérieur, uniquement si le sélecteur fourni en argument correspond à l'ancêtre de l'hôte selon l'arborescence du DOM.h1 par exemple — afin de sélectionner uniquement les instances d'un élément personnalisé (custom element) présentes à l'intérieur d'un élément <h1>./* Cible un hôte uniquement si c'est un descendant
- du sélecteur passé en argument */
-:host-context(h1) {
- font-weight: bold;
-}
-
-:host-context(main article) {
- font-weight: bold;
-}
-
-
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-<context-span> — au sein duquel on peut avoir du texte :<h1>Host selectors <a href="#"><context-span>example</context-span></a></h1>
-
-style et span et on remplit le span avec le contenu de l'élément personnalisé puis on applique certains règles CSS pour l'élément style :let style = document.createElement('style');
-let span = document.createElement('span');
-span.textContent = this.textContent;
-
-const shadowRoot = this.attachShadow({mode: 'open'});
-shadowRoot.appendChild(style);
-shadowRoot.appendChild(span);
-
-style.textContent = 'span:hover { text-decoration: underline; }' +
- ':host-context(h1) { font-style: italic; }' +
- ':host-context(h1):after { content: " - no links in headers!" }' +
- ':host-context(article, aside) { color: gray; }' +
- ':host(.footer) { color : red; }' +
- ':host { background: rgba(0,0,0,0.1); padding: 2px 5px; }';
-
-:host-context(h1) { font-style: italic; } et :host-context(h1):after { content: " - no links in headers!" } permettent de mettre en forme l'instance de l'élément <context-span> (l'hôte de cette instance) à l'intérieur de l'élément <h1>. Nous avons utilisé cet hôte afin d'indiquer clairement qu'un tel élément personnalisé ne doit pas apparaître dans un titre <h1>.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS Scope', '#host-selector', ':host-context()')}}
- {{Spec2('CSS Scope')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_host-context()/index.md b/files/fr/web/css/_colon_host-context()/index.md
new file mode 100644
index 0000000000..6457aa73c3
--- /dev/null
+++ b/files/fr/web/css/_colon_host-context()/index.md
@@ -0,0 +1,94 @@
+---
+title: ':host-context()'
+slug: 'Web/CSS/:host-context()'
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-classe
+ - Reference
+ - Web
+translation_of: 'Web/CSS/:host-context()'
+---
+:host-context() est une fonction qui sélectionne l'hôte (shadow host) du shadow DOM qui contient le CSS utilisé à l'intérieur, uniquement si le sélecteur fourni en argument correspond à l'ancêtre de l'hôte selon l'arborescence du DOM.h1 par exemple — afin de sélectionner uniquement les instances d'un élément personnalisé (custom element) présentes à l'intérieur d'un élément <h1>./* Cible un hôte uniquement si c'est un descendant
+ du sélecteur passé en argument */
+:host-context(h1) {
+ font-weight: bold;
+}
+
+:host-context(main article) {
+ font-weight: bold;
+}
+
+
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+<context-span> — au sein duquel on peut avoir du texte :<h1>Host selectors <a href="#"><context-span>example</context-span></a></h1>
+
+style et span et on remplit le span avec le contenu de l'élément personnalisé puis on applique certains règles CSS pour l'élément style :let style = document.createElement('style');
+let span = document.createElement('span');
+span.textContent = this.textContent;
+
+const shadowRoot = this.attachShadow({mode: 'open'});
+shadowRoot.appendChild(style);
+shadowRoot.appendChild(span);
+
+style.textContent = 'span:hover { text-decoration: underline; }' +
+ ':host-context(h1) { font-style: italic; }' +
+ ':host-context(h1):after { content: " - no links in headers!" }' +
+ ':host-context(article, aside) { color: gray; }' +
+ ':host(.footer) { color : red; }' +
+ ':host { background: rgba(0,0,0,0.1); padding: 2px 5px; }';
+
+:host-context(h1) { font-style: italic; } et :host-context(h1):after { content: " - no links in headers!" } permettent de mettre en forme l'instance de l'élément <context-span> (l'hôte de cette instance) à l'intérieur de l'élément <h1>. Nous avons utilisé cet hôte afin d'indiquer clairement qu'un tel élément personnalisé ne doit pas apparaître dans un titre <h1>.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS Scope', '#host-selector', ':host-context()')}}
+ {{Spec2('CSS Scope')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_host/index.html b/files/fr/web/css/_colon_host/index.html
deleted file mode 100644
index e8a2a7a89f..0000000000
--- a/files/fr/web/css/_colon_host/index.html
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: ':host'
-slug: 'Web/CSS/:host'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:host'
----
-:host permet de cibler l'hôte d'un shadow DOM contenant le CSS à utiliser pour cet hôte. Autrement dit, elle permet de sélectionner un élément personnalisé (custom element) depuis l'intérieur du shadow DOM./* Cible la racine d'un hôte de shadow DOM */
-:host {
- font-weight: bold;
-}
-
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-<context-span> qui peut contenir du texte :<h1>Host selectors <a href="#"><context-span>example</context-span></a></h1>
-
-style et span : l'élément span recevra le contenu de l'élément personnalisé et style recevra quelques règles CSS :let style = document.createElement('style');
-let span = document.createElement('span');
-span.textContent = this.textContent;
-
-const shadowRoot = this.attachShadow({mode: 'open'});
-shadowRoot.appendChild(style);
-shadowRoot.appendChild(span);
-
-style.textContent = 'span:hover { text-decoration: underline; }' +
- ':host-context(h1) { font-style: italic; }' +
- ':host-context(h1):after { content: " - no links in headers!" }' +
- ':host-context(article, aside) { color: gray; }' +
- ':host(.footer) { color : red; }' +
- ':host { background: rgba(0,0,0,0.1); padding: 2px 5px; }';
-
-:host { background: rgba(0,0,0,0.1); padding: 2px 5px; } permet de cibler l'ensemble des instances de <context-span> (qui est l'hôte ici) dans le document.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS Scope', '#host-selector', ':host')}}
- {{Spec2('CSS Scope')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_host/index.md b/files/fr/web/css/_colon_host/index.md
new file mode 100644
index 0000000000..e8a2a7a89f
--- /dev/null
+++ b/files/fr/web/css/_colon_host/index.md
@@ -0,0 +1,84 @@
+---
+title: ':host'
+slug: 'Web/CSS/:host'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:host'
+---
+:host permet de cibler l'hôte d'un shadow DOM contenant le CSS à utiliser pour cet hôte. Autrement dit, elle permet de sélectionner un élément personnalisé (custom element) depuis l'intérieur du shadow DOM./* Cible la racine d'un hôte de shadow DOM */
+:host {
+ font-weight: bold;
+}
+
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+<context-span> qui peut contenir du texte :<h1>Host selectors <a href="#"><context-span>example</context-span></a></h1>
+
+style et span : l'élément span recevra le contenu de l'élément personnalisé et style recevra quelques règles CSS :let style = document.createElement('style');
+let span = document.createElement('span');
+span.textContent = this.textContent;
+
+const shadowRoot = this.attachShadow({mode: 'open'});
+shadowRoot.appendChild(style);
+shadowRoot.appendChild(span);
+
+style.textContent = 'span:hover { text-decoration: underline; }' +
+ ':host-context(h1) { font-style: italic; }' +
+ ':host-context(h1):after { content: " - no links in headers!" }' +
+ ':host-context(article, aside) { color: gray; }' +
+ ':host(.footer) { color : red; }' +
+ ':host { background: rgba(0,0,0,0.1); padding: 2px 5px; }';
+
+:host { background: rgba(0,0,0,0.1); padding: 2px 5px; } permet de cibler l'ensemble des instances de <context-span> (qui est l'hôte ici) dans le document.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS Scope', '#host-selector', ':host')}}
+ {{Spec2('CSS Scope')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_hover/index.html b/files/fr/web/css/_colon_hover/index.html
deleted file mode 100644
index 3871067514..0000000000
--- a/files/fr/web/css/_colon_hover/index.html
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: ':hover'
-slug: Web/CSS/:hover
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:hover
----
-:hover permet de spécifier l'apparence d'un élément au moment où l'utilisateur le survole avec le pointeur, sans nécessairement l'activer./* Cible n'importe quel élément <a> lorsque */
-/* celui-ci est survolé */
-a:hover {
- background-color: gold;
-}
-
-:hover après les règles :link et :visited mais avant la règle :active (l'ordre est :link — :visited — :hover — :active – un moyen mnémotechnique est de se souvenir des initiales LVHA) tandis que l'ordre de la règle {{cssxref(":focus")}} est indifférent.:hover peut être appliquée à n'importe quel pseudo-élément. {{experimental_inline}}:hover est problématique voire impossible. La pseudo-classe :hover n'est jamais valide, ou seulement pendant un très court instant après avoir touché l'élément. Puisque les appareils à écrans tactiles sont très courants, il est important que les développeurs web ne placent pas de contenu accessible seulement lors du survol, puisque ce contenu sera caché pour les utilisateurs de tels appareils.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-a:hover {
- background-color: gold;
-}
-
-HTML
-
-<p>
- <a href="#">Ce lien sera écrit sur un fond doré lors du survol.</a>
-</p>
-
-Résultat
-
-:checked dans une galerie d'images afin d'afficher une version agrandie de l'image lorsqu'on survole la vignette.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- Commentaires
- Retours
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-hover', ':hover')}}
-
- Issues GitHub du WHATWG HTML (en anglais)
-
-
- {{SpecName('CSS4 Selectors', '#the-hover-pseudo', ':hover')}}
- Permet d'appliquer
- :hover à n'importe quel pseudo-élément.Issues GitHub pour les brouillons du groupe de travail CSS (en anglais)
-
-
- {{SpecName('CSS3 Selectors', '#the-user-action-pseudo-classes-hover-act', ':hover')}}
-
-
-
-
-
-{{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':hover')}}
- Définition initiale.
-
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_hover/index.md b/files/fr/web/css/_colon_hover/index.md
new file mode 100644
index 0000000000..3871067514
--- /dev/null
+++ b/files/fr/web/css/_colon_hover/index.md
@@ -0,0 +1,97 @@
+---
+title: ':hover'
+slug: Web/CSS/:hover
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: Web/CSS/:hover
+---
+:hover permet de spécifier l'apparence d'un élément au moment où l'utilisateur le survole avec le pointeur, sans nécessairement l'activer./* Cible n'importe quel élément <a> lorsque */
+/* celui-ci est survolé */
+a:hover {
+ background-color: gold;
+}
+
+:hover après les règles :link et :visited mais avant la règle :active (l'ordre est :link — :visited — :hover — :active – un moyen mnémotechnique est de se souvenir des initiales LVHA) tandis que l'ordre de la règle {{cssxref(":focus")}} est indifférent.:hover peut être appliquée à n'importe quel pseudo-élément. {{experimental_inline}}:hover est problématique voire impossible. La pseudo-classe :hover n'est jamais valide, ou seulement pendant un très court instant après avoir touché l'élément. Puisque les appareils à écrans tactiles sont très courants, il est important que les développeurs web ne placent pas de contenu accessible seulement lors du survol, puisque ce contenu sera caché pour les utilisateurs de tels appareils.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+a:hover {
+ background-color: gold;
+}
+
+HTML
+
+<p>
+ <a href="#">Ce lien sera écrit sur un fond doré lors du survol.</a>
+</p>
+
+Résultat
+
+:checked dans une galerie d'images afin d'afficher une version agrandie de l'image lorsqu'on survole la vignette.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ Commentaires
+ Retours
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-hover', ':hover')}}
+
+ Issues GitHub du WHATWG HTML (en anglais)
+
+
+ {{SpecName('CSS4 Selectors', '#the-hover-pseudo', ':hover')}}
+ Permet d'appliquer
+ :hover à n'importe quel pseudo-élément.Issues GitHub pour les brouillons du groupe de travail CSS (en anglais)
+
+
+ {{SpecName('CSS3 Selectors', '#the-user-action-pseudo-classes-hover-act', ':hover')}}
+
+
+
+
+
+{{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':hover')}}
+ Définition initiale.
+
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_in-range/index.html b/files/fr/web/css/_colon_in-range/index.html
deleted file mode 100644
index b8c69639c9..0000000000
--- a/files/fr/web/css/_colon_in-range/index.html
+++ /dev/null
@@ -1,104 +0,0 @@
----
-title: ':in-range'
-slug: Web/CSS/:in-range
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:in-range
----
-:in-range cible un élément {{htmlelement("input")}} lorsque sa valeur courante est comprise dans l'intervalle défini par les attributs {{htmlattrxref("min", "input")}} et {{htmlattrxref("max","input")}}./* Cible n'importe quel élément <input> */
-/* qui possède un intervalle et pour le- */
-/* quel la valeur est dans cet intervalle */
-input:in-range {
- background-color: rgba(0, 255, 0, 0.25);
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-li {
- list-style: none;
- margin-bottom: 1em;
-}
-input {
- border: 1px solid black;
-}
-input:in-range {
- background-color: rgba(0, 255, 0, 0.25);
-}
-input:out-of-range {
- background-color: rgba(255, 0, 0, 0.25);
- border: 2px solid red;
-}
-input:in-range + label::after {
- content:' OK';
-}
-input:out-of-range + label::after {
- content:' non autorisée !';
-}
-
-HTML
-
-<form action="" id="form1">
- <ul>Les valeurs entre 1 et 10 sont valides.
- <li>
- <input id="valeur1" name="valeur1" type="number" placeholder="de 1 à 10" min="1" max="10" value="12">
- <label for="valeur1">Votre valeur est </label>
- </li>
- </ul>
-</form>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- Etat
- Commentaires
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-in-range', ':in-range')}}
- {{Spec2('HTML WHATWG')}}
- Définition de la correspondance entre
- :in-range et les éléments HTML.
-
-
-{{SpecName('CSS4 Selectors', '#in-range-pseudo', ':in-range')}}
- {{Spec2('CSS4 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_in-range/index.md b/files/fr/web/css/_colon_in-range/index.md
new file mode 100644
index 0000000000..b8c69639c9
--- /dev/null
+++ b/files/fr/web/css/_colon_in-range/index.md
@@ -0,0 +1,104 @@
+---
+title: ':in-range'
+slug: Web/CSS/:in-range
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: Web/CSS/:in-range
+---
+:in-range cible un élément {{htmlelement("input")}} lorsque sa valeur courante est comprise dans l'intervalle défini par les attributs {{htmlattrxref("min", "input")}} et {{htmlattrxref("max","input")}}./* Cible n'importe quel élément <input> */
+/* qui possède un intervalle et pour le- */
+/* quel la valeur est dans cet intervalle */
+input:in-range {
+ background-color: rgba(0, 255, 0, 0.25);
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+li {
+ list-style: none;
+ margin-bottom: 1em;
+}
+input {
+ border: 1px solid black;
+}
+input:in-range {
+ background-color: rgba(0, 255, 0, 0.25);
+}
+input:out-of-range {
+ background-color: rgba(255, 0, 0, 0.25);
+ border: 2px solid red;
+}
+input:in-range + label::after {
+ content:' OK';
+}
+input:out-of-range + label::after {
+ content:' non autorisée !';
+}
+
+HTML
+
+<form action="" id="form1">
+ <ul>Les valeurs entre 1 et 10 sont valides.
+ <li>
+ <input id="valeur1" name="valeur1" type="number" placeholder="de 1 à 10" min="1" max="10" value="12">
+ <label for="valeur1">Votre valeur est </label>
+ </li>
+ </ul>
+</form>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ Etat
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-in-range', ':in-range')}}
+ {{Spec2('HTML WHATWG')}}
+ Définition de la correspondance entre
+ :in-range et les éléments HTML.
+
+
+{{SpecName('CSS4 Selectors', '#in-range-pseudo', ':in-range')}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_indeterminate/index.html b/files/fr/web/css/_colon_indeterminate/index.html
deleted file mode 100644
index a94a588e4b..0000000000
--- a/files/fr/web/css/_colon_indeterminate/index.html
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: ':indeterminate'
-slug: Web/CSS/:indeterminate
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:indeterminate
----
-:indeterminate permet de cibler un élément de formulaire dont l'état est indéterminé./* Cible n'importe quel élément <input> */
-/* dans un état indéterminé */
-input:indeterminate {
- background: lime;
-}
-
-
-
-
-<input type="checkbox"> dont la propriété du DOM indeterminate est fixée à true via du code JavaScript<input type="radio"> dont tous les boutons radio du groupe sont décochésSyntaxe
-
-{{csssyntax}}
-
-Exemples
-
-Case à cocher et bouton radio
-
-CSS
-
-input, span {
- background: red;
-}
-
-:indeterminate, :indeterminate + label {
- background: lime;
-}
-
-
-HTML
-
-<div>
- <input type="checkbox" id="checkbox">
- <label for="checkbox">L'arrière-plan devrait être vert.</label>
-</div>
-<div>
- <input type="radio" id="radio">
- <label for="radio">L'arrière-plan devrait être vert.</label>
-</div>
-
-JavaScript
-
-var inputs = document.getElementsByTagName("input");
-for(var i = 0; i < inputs.length; i++) {
- inputs[i].indeterminate = true;
-}
-
-
-Résultat
-
-Élément
-
-progressCSS
-
-progress:indeterminate {
- opacity: 0.5;
- box-shadow: 0 0 2px 1px red;
-}
-
-
-HTML
-
-<progress/>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-indeterminate', ':indeterminate')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-indeterminate', ':indeterminate')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et des contraintes de validation associées.
-
-
- {{SpecName('CSS4 Selectors', '#indeterminate', ':indeterminate')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS3 Basic UI', '#indeterminate', ':indeterminate')}}
- {{Spec2('CSS3 Basic UI')}}
- Définition de la pseudo-classe, sans notion de sémantique associée.
- Compatibilité des navigateurs
-
-:indeterminate permet de cibler un élément de formulaire dont l'état est indéterminé./* Cible n'importe quel élément <input> */
+/* dans un état indéterminé */
+input:indeterminate {
+ background: lime;
+}
+
+
+
+
+<input type="checkbox"> dont la propriété du DOM indeterminate est fixée à true via du code JavaScript<input type="radio"> dont tous les boutons radio du groupe sont décochésSyntaxe
+
+{{csssyntax}}
+
+Exemples
+
+Case à cocher et bouton radio
+
+CSS
+
+input, span {
+ background: red;
+}
+
+:indeterminate, :indeterminate + label {
+ background: lime;
+}
+
+
+HTML
+
+<div>
+ <input type="checkbox" id="checkbox">
+ <label for="checkbox">L'arrière-plan devrait être vert.</label>
+</div>
+<div>
+ <input type="radio" id="radio">
+ <label for="radio">L'arrière-plan devrait être vert.</label>
+</div>
+
+JavaScript
+
+var inputs = document.getElementsByTagName("input");
+for(var i = 0; i < inputs.length; i++) {
+ inputs[i].indeterminate = true;
+}
+
+
+Résultat
+
+Élément
+
+progressCSS
+
+progress:indeterminate {
+ opacity: 0.5;
+ box-shadow: 0 0 2px 1px red;
+}
+
+
+HTML
+
+<progress/>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-indeterminate', ':indeterminate')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-indeterminate', ':indeterminate')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et des contraintes de validation associées.
+
+
+ {{SpecName('CSS4 Selectors', '#indeterminate', ':indeterminate')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS3 Basic UI', '#indeterminate', ':indeterminate')}}
+ {{Spec2('CSS3 Basic UI')}}
+ Définition de la pseudo-classe, sans notion de sémantique associée.
+ Compatibilité des navigateurs
+
+:invalid cible tout élément {{HTMLElement("input")}} pour lequel la validation du contenu échoue par rapport au type de donnée attendu. Ceci permet de mettre en forme les champs non valides pour aider l'utilisateur à identifier et à corriger les erreurs./* Cible n'importe quel élément input */
-/* dont la valeur ne satisfait pas aux */
-/* critères de validation */
-input:invalid {
- background-color: pink;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemple
-
-CSS
-
-label {
- display: block;
- margin: 1px;
- padding: 1px;
-}
-
-.field {
- margin: 1px;
- padding: 1px;
-}
-
-input:invalid {
- background-color: #ffdddd;
-}
-
-form:invalid {
- border: 5px solid #ffdddd;
-}
-
-input:valid {
- background-color: #ddffdd;
-}
-
-form:valid {
- border: 5px solid #ddffdd;
-}
-
-input:required {
- border-color: #800000;
- border-width: 3px;
-}
-
-input:required:invalid {
- border-color: #c00000;
-}
-
-
-HTML
-
-<form>
- <div class="field">
- <label for="url_input">Veuillez saisir une URL :</label>
- <input type="url" id="url_input">
- </div>
-
- <div class="field">
- <label for="email_input">Veuillez saisir une adresse électronique :</label>
- <input type="email" id="email_input" required>
- </div>
-</form>
-
-Résultat
-
-Accessibilité
-
-
-
-
-Notes
-
-Boutons radio
-
-name) possède l'attribut required , la pseudo-classe :invalid est appliquée à tous les boutons si aucun d'entre eux n'est sélectionné.Gestion dans Gecko
-
-:invalid . Toutefois un style différent est appliqué (un halo rouge utilisant la propriété {{cssxref("box-shadow")}}) via la pseudo-classe {{cssxref(":-moz-ui-invalid")}}, qui s'applique dans un sous-ensemble des cas de :invalid.:invalid {
- box-shadow: none;
-}
-
-:-moz-submit-invalid {
- box-shadow: none;
-}
-
-:-moz-ui-invalid {
- box-shadow: none;
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaire
-
-
- {{SpecName('HTML WHATWG', '#selector-invalid', ':invalid')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-invalid', ':invalid')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et aux contraintes de validation.
-
-
-
-{{SpecName('CSS4 Selectors', '#validity-pseudos', ':invalid')}}
- {{Spec2('CSS4 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_invalid/index.md b/files/fr/web/css/_colon_invalid/index.md
new file mode 100644
index 0000000000..37ae6658b6
--- /dev/null
+++ b/files/fr/web/css/_colon_invalid/index.md
@@ -0,0 +1,161 @@
+---
+title: ':invalid'
+slug: 'Web/CSS/:invalid'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:invalid'
+---
+:invalid cible tout élément {{HTMLElement("input")}} pour lequel la validation du contenu échoue par rapport au type de donnée attendu. Ceci permet de mettre en forme les champs non valides pour aider l'utilisateur à identifier et à corriger les erreurs./* Cible n'importe quel élément input */
+/* dont la valeur ne satisfait pas aux */
+/* critères de validation */
+input:invalid {
+ background-color: pink;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemple
+
+CSS
+
+label {
+ display: block;
+ margin: 1px;
+ padding: 1px;
+}
+
+.field {
+ margin: 1px;
+ padding: 1px;
+}
+
+input:invalid {
+ background-color: #ffdddd;
+}
+
+form:invalid {
+ border: 5px solid #ffdddd;
+}
+
+input:valid {
+ background-color: #ddffdd;
+}
+
+form:valid {
+ border: 5px solid #ddffdd;
+}
+
+input:required {
+ border-color: #800000;
+ border-width: 3px;
+}
+
+input:required:invalid {
+ border-color: #c00000;
+}
+
+
+HTML
+
+<form>
+ <div class="field">
+ <label for="url_input">Veuillez saisir une URL :</label>
+ <input type="url" id="url_input">
+ </div>
+
+ <div class="field">
+ <label for="email_input">Veuillez saisir une adresse électronique :</label>
+ <input type="email" id="email_input" required>
+ </div>
+</form>
+
+Résultat
+
+Accessibilité
+
+
+
+
+Notes
+
+Boutons radio
+
+name) possède l'attribut required , la pseudo-classe :invalid est appliquée à tous les boutons si aucun d'entre eux n'est sélectionné.Gestion dans Gecko
+
+:invalid . Toutefois un style différent est appliqué (un halo rouge utilisant la propriété {{cssxref("box-shadow")}}) via la pseudo-classe {{cssxref(":-moz-ui-invalid")}}, qui s'applique dans un sous-ensemble des cas de :invalid.:invalid {
+ box-shadow: none;
+}
+
+:-moz-submit-invalid {
+ box-shadow: none;
+}
+
+:-moz-ui-invalid {
+ box-shadow: none;
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaire
+
+
+ {{SpecName('HTML WHATWG', '#selector-invalid', ':invalid')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-invalid', ':invalid')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et aux contraintes de validation.
+
+
+
+{{SpecName('CSS4 Selectors', '#validity-pseudos', ':invalid')}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_is/index.html b/files/fr/web/css/_colon_is/index.html
deleted file mode 100644
index 3268425e30..0000000000
--- a/files/fr/web/css/_colon_is/index.html
+++ /dev/null
@@ -1,281 +0,0 @@
----
-title: ':is() (:matches(), :any())'
-slug: Web/CSS/:is
-tags:
- - CSS
- - Experimental
- - Pseudo-classe
- - Reference
- - Web
-translation_of: Web/CSS/:is
----
-:is() prend comme argument une liste de sélecteurs, et cible tous les éléments sélectionnés par chaque sélecteur de cette liste. Cela permet d'écrire des sélecteurs expansifs de façon plus concise.:matches(), ou via la pseudo-classe préfixée — :any() (anciennes versions de Chrome, Firefox et Safari). :any() fonctionne exactement comme :matches() et :is() mais nécessite l'utilisation de préfixes et ne prend pas en charge les sélecteurs complexes.:matches() a été renommé en is() d'après l'issue 3258 du CSSWG./* Sélectionne n'importe quel paragraphe survolé
- qui se trouve au sein d'un header, main, ou
- footer */
-:is(header, main, footer) p:hover {
- color: red;
- cursor: pointer;
-}
-
-/* La notation précédente est équivalente à */
-header p:hover,
-main p:hover,
-footer p:hover {
- color: red;
- cursor: pointer;
-}
-
-
-/* La version rétro-compatible avec :-*-any() */
-:-moz-any(header, main, footer) p:hover {
- color: red;
- cursor: pointer;
-}
-:-webkit-any(header, main, footer) p:hover{
- color: red;
- cursor: pointer;
-}
-:matches(header, main, footer) p:hover {
- color: red;
- cursor: pointer;
-}
-
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-Exemple fonctionnant pour les différents navigateurs
-
-HTML
-
-<header>
- <p>Voici un paragraphe dans un en-tête.</p>
-</header>
-
-<main>
- <ul>
- <li><p>Mon premier élément de</p><p>liste</p></li>
- <li><p>Mon deuxième élément de</p><p>liste</p></li>
- </ul>
-</main>
-
-<footer>
- <p>Et un paragraphe de pied de page</p>
-</footer>
-
-CSS
-
-:-webkit-any(header, main, footer) p:hover {
- color: red;
- cursor: pointer;
-}
-
-:-moz-any(header, main, footer) p:hover {
- color: red;
- cursor: pointer;
-}
-:is(header, main, footer) p:hover {
- color: red;
- cursor: pointer;
-}
-
-JavaScript
-
-let matchedItems;
-
-try {
- matchedItems = document.querySelectorAll(':is(header, main, footer) p');
-} catch(e) {
- try {
- matchedItems = document.querySelectorAll(':matches(header, main, footer) p');
- } catch(e) {
- try {
- matchedItems = document.querySelectorAll(':-webkit-any(header, main, footer) p');
- } catch(e) {
- try {
- matchedItems = document.querySelectorAll(':-moz-any(header, main, footer) p');
- } catch(e) {
- console.log('Votre navigateur ne prend pas en charge :is(), :matches() ou :any()');
- }
- }
- }
-}
-
-for(let i = 0; i < matchedItems.length; i++) {
- applyHandler(matchedItems[i]);
-}
-
-function applyHandler(elem) {
- elem.addEventListener('click', function(e) {
- alert('Ce paragraphe est à l\'intérieur d\'un élément ' + e.target.parentNode.nodeName);
- });
-}
-
-Simplifier les listes de sélecteurs
-
-:matches() permet de simplifier largement les sélecteurs CSS. Ainsi, la règle suivante :/* les listes non ordonnées sur 3 niveaux ou plus */
-/* utilisent un carré comme puce */
-ol ol ul, ol ul ul, ol menu ul, ol dir ul,
-ol ol menu, ol ul menu, ol menu menu, ol dir menu,
-ol ol dir, ol ul dir, ol menu dir, ol dir dir,
-ul ol ul, ul ul ul, ul menu ul, ul dir ul,
-ul ol menu, ul ul menu, ul menu menu, ul dir menu,
-ul ol dir, ul ul dir, ul menu dir, ul dir dir,
-menu ol ul, menu ul ul, menu menu ul, menu dir ul,
-menu ol menu, menu ul menu, menu menu menu, menu dir menu,
-menu ol dir, menu ul dir, menu menu dir, menu dir dir,
-dir ol ul, dir ul ul, dir menu ul, dir dir ul,
-dir ol menu, dir ul menu, dir menu menu, dir dir menu,
-dir ol dir, dir ul dir, dir menu dir, dir dir dir {
- list-style-type: square;
-}
-
-
-/* les listes non ordonnées sur 3 niveaux ou plus */
-/* utilisent un carré comme puce */
-:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) ul,
-:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) menu,
-:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) dir {
- list-style-type: square;
-}
-
-:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) :matches(ul, menu, dir) {
- list-style-type: square;
-}
-
-Simplifier les sélecteurs de section
-
-:matches est particulièrement utile lorsqu'on manipule les sections et en-têtes HTML5. {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}} et {{HTMLElement("nav")}} étant souvent imbriqués les uns dans les autres, les mettre en forme (sans :matches()) s'avèrerait plutôt compliqué.:matches(), on obtient ces règles plutôt compliquées :/* Niveau 0 */
-h1 {
- font-size: 30px;
-}
-/* Niveau 1 */
-section h1, article h1, aside h1, nav h1 {
- font-size: 25px;
-}
-/* Niveau 2 */
-section section h1, section article h1, section aside h1, section nav h1,
-article section h1, article article h1, article aside h1, article nav h1,
-aside section h1, aside article h1, aside aside h1, aside nav h1,
-nav section h1, nav article h1, nav aside h1, nav nav h1 {
- font-size: 20px;
-}
-/* Niveau 3 */
-/* … j'ai abandonné */
-
-
-:is(), c'est plus simple :/* Niveau 0 */
-h1 {
- font-size: 30px;
-}
-/* Niveau 1 */
-:is(section, article, aside, nav) h1 {
- font-size: 25px;
-}
-/* Niveau 2 */
-:is(section, article, aside, nav)
-:is(section, article, aside, nav) h1 {
- font-size: 20px;
-}
-/* Niveau 3 */
-:is(section, article, aside, nav)
-:is(section, article, aside, nav)
-:is(section, article, aside, nav) h1 {
- font-size: 15px;
-}
-
-Éviter l'invalidation d'une liste de sélecteur
-
-:is() ne devient pas invalide lorsqu'un des sélecteurs passés en argument n'est pas pris en charge par le navigateur.:is(:valid, :incompatible) {
- ...
-}
-
-
-:valid même si les navigateurs ne prennent pas en charge le sélecteur :incompatible. En revanche ::valid, :incompatible {
- ...
-}
-
-:incompatible, même si :valid est bien pris en charge.Notes
-
-Problèmes de performances avec
-
-any(): et la spécificité:-moz-any(). L'implémentation place :-moz-any() dans la catégorie des règles universelles, ce qui signifie que si on l'utilise comme sélecteur le plus à droite, ce sera plus lent que d'utiliser un sélecteur d'identifiant, de classe ou de balise comme premier sélecteur..a > :-moz-any(.b, .c)
-
-
-.a > .b, .a > .c
-
-
-:-moz-any(.a, .d) > .b, :-moz-any(.a, .d) > .c
-
-:is() doit permettre de corriger de tels problèmes.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#matches-pseudo", ":is()")}}
- {{Spec2('CSS4 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_is/index.md b/files/fr/web/css/_colon_is/index.md
new file mode 100644
index 0000000000..3268425e30
--- /dev/null
+++ b/files/fr/web/css/_colon_is/index.md
@@ -0,0 +1,281 @@
+---
+title: ':is() (:matches(), :any())'
+slug: Web/CSS/:is
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-classe
+ - Reference
+ - Web
+translation_of: Web/CSS/:is
+---
+is(), avec une spécificité nulle:is() prend comme argument une liste de sélecteurs, et cible tous les éléments sélectionnés par chaque sélecteur de cette liste. Cela permet d'écrire des sélecteurs expansifs de façon plus concise.:matches(), ou via la pseudo-classe préfixée — :any() (anciennes versions de Chrome, Firefox et Safari). :any() fonctionne exactement comme :matches() et :is() mais nécessite l'utilisation de préfixes et ne prend pas en charge les sélecteurs complexes.:matches() a été renommé en is() d'après l'issue 3258 du CSSWG./* Sélectionne n'importe quel paragraphe survolé
+ qui se trouve au sein d'un header, main, ou
+ footer */
+:is(header, main, footer) p:hover {
+ color: red;
+ cursor: pointer;
+}
+
+/* La notation précédente est équivalente à */
+header p:hover,
+main p:hover,
+footer p:hover {
+ color: red;
+ cursor: pointer;
+}
+
+
+/* La version rétro-compatible avec :-*-any() */
+:-moz-any(header, main, footer) p:hover {
+ color: red;
+ cursor: pointer;
+}
+:-webkit-any(header, main, footer) p:hover{
+ color: red;
+ cursor: pointer;
+}
+:matches(header, main, footer) p:hover {
+ color: red;
+ cursor: pointer;
+}
+
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+Exemple fonctionnant pour les différents navigateurs
+
+HTML
+
+<header>
+ <p>Voici un paragraphe dans un en-tête.</p>
+</header>
+
+<main>
+ <ul>
+ <li><p>Mon premier élément de</p><p>liste</p></li>
+ <li><p>Mon deuxième élément de</p><p>liste</p></li>
+ </ul>
+</main>
+
+<footer>
+ <p>Et un paragraphe de pied de page</p>
+</footer>
+
+CSS
+
+:-webkit-any(header, main, footer) p:hover {
+ color: red;
+ cursor: pointer;
+}
+
+:-moz-any(header, main, footer) p:hover {
+ color: red;
+ cursor: pointer;
+}
+:is(header, main, footer) p:hover {
+ color: red;
+ cursor: pointer;
+}
+
+JavaScript
+
+let matchedItems;
+
+try {
+ matchedItems = document.querySelectorAll(':is(header, main, footer) p');
+} catch(e) {
+ try {
+ matchedItems = document.querySelectorAll(':matches(header, main, footer) p');
+ } catch(e) {
+ try {
+ matchedItems = document.querySelectorAll(':-webkit-any(header, main, footer) p');
+ } catch(e) {
+ try {
+ matchedItems = document.querySelectorAll(':-moz-any(header, main, footer) p');
+ } catch(e) {
+ console.log('Votre navigateur ne prend pas en charge :is(), :matches() ou :any()');
+ }
+ }
+ }
+}
+
+for(let i = 0; i < matchedItems.length; i++) {
+ applyHandler(matchedItems[i]);
+}
+
+function applyHandler(elem) {
+ elem.addEventListener('click', function(e) {
+ alert('Ce paragraphe est à l\'intérieur d\'un élément ' + e.target.parentNode.nodeName);
+ });
+}
+
+Simplifier les listes de sélecteurs
+
+:matches() permet de simplifier largement les sélecteurs CSS. Ainsi, la règle suivante :/* les listes non ordonnées sur 3 niveaux ou plus */
+/* utilisent un carré comme puce */
+ol ol ul, ol ul ul, ol menu ul, ol dir ul,
+ol ol menu, ol ul menu, ol menu menu, ol dir menu,
+ol ol dir, ol ul dir, ol menu dir, ol dir dir,
+ul ol ul, ul ul ul, ul menu ul, ul dir ul,
+ul ol menu, ul ul menu, ul menu menu, ul dir menu,
+ul ol dir, ul ul dir, ul menu dir, ul dir dir,
+menu ol ul, menu ul ul, menu menu ul, menu dir ul,
+menu ol menu, menu ul menu, menu menu menu, menu dir menu,
+menu ol dir, menu ul dir, menu menu dir, menu dir dir,
+dir ol ul, dir ul ul, dir menu ul, dir dir ul,
+dir ol menu, dir ul menu, dir menu menu, dir dir menu,
+dir ol dir, dir ul dir, dir menu dir, dir dir dir {
+ list-style-type: square;
+}
+
+
+/* les listes non ordonnées sur 3 niveaux ou plus */
+/* utilisent un carré comme puce */
+:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) ul,
+:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) menu,
+:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) dir {
+ list-style-type: square;
+}
+
+:matches(ol, ul, menu, dir) :matches(ol, ul, menu, dir) :matches(ul, menu, dir) {
+ list-style-type: square;
+}
+
+Simplifier les sélecteurs de section
+
+:matches est particulièrement utile lorsqu'on manipule les sections et en-têtes HTML5. {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}} et {{HTMLElement("nav")}} étant souvent imbriqués les uns dans les autres, les mettre en forme (sans :matches()) s'avèrerait plutôt compliqué.:matches(), on obtient ces règles plutôt compliquées :/* Niveau 0 */
+h1 {
+ font-size: 30px;
+}
+/* Niveau 1 */
+section h1, article h1, aside h1, nav h1 {
+ font-size: 25px;
+}
+/* Niveau 2 */
+section section h1, section article h1, section aside h1, section nav h1,
+article section h1, article article h1, article aside h1, article nav h1,
+aside section h1, aside article h1, aside aside h1, aside nav h1,
+nav section h1, nav article h1, nav aside h1, nav nav h1 {
+ font-size: 20px;
+}
+/* Niveau 3 */
+/* … j'ai abandonné */
+
+
+:is(), c'est plus simple :/* Niveau 0 */
+h1 {
+ font-size: 30px;
+}
+/* Niveau 1 */
+:is(section, article, aside, nav) h1 {
+ font-size: 25px;
+}
+/* Niveau 2 */
+:is(section, article, aside, nav)
+:is(section, article, aside, nav) h1 {
+ font-size: 20px;
+}
+/* Niveau 3 */
+:is(section, article, aside, nav)
+:is(section, article, aside, nav)
+:is(section, article, aside, nav) h1 {
+ font-size: 15px;
+}
+
+Éviter l'invalidation d'une liste de sélecteur
+
+:is() ne devient pas invalide lorsqu'un des sélecteurs passés en argument n'est pas pris en charge par le navigateur.:is(:valid, :incompatible) {
+ ...
+}
+
+
+:valid même si les navigateurs ne prennent pas en charge le sélecteur :incompatible. En revanche ::valid, :incompatible {
+ ...
+}
+
+:incompatible, même si :valid est bien pris en charge.Notes
+
+Problèmes de performances avec
+
+any(): et la spécificité:-moz-any(). L'implémentation place :-moz-any() dans la catégorie des règles universelles, ce qui signifie que si on l'utilise comme sélecteur le plus à droite, ce sera plus lent que d'utiliser un sélecteur d'identifiant, de classe ou de balise comme premier sélecteur..a > :-moz-any(.b, .c)
+
+
+.a > .b, .a > .c
+
+
+:-moz-any(.a, .d) > .b, :-moz-any(.a, .d) > .c
+
+:is() doit permettre de corriger de tels problèmes.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#matches-pseudo", ":is()")}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_lang/index.html b/files/fr/web/css/_colon_lang/index.html
deleted file mode 100644
index b564018c4e..0000000000
--- a/files/fr/web/css/_colon_lang/index.html
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: ':lang'
-slug: 'Web/CSS/:lang'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:lang'
----
-is(), avec une spécificité nulle:lang permet de définir la mise en forme d'un élément selon la langue dans laquelle il est écrit./* Correspond aux paragraphes, uniquement si ceux-ci */
-/* sont indiqués comme étant en anglais (en) */
-p:lang(en) {
- quotes: '\201C' '\201D' '\2018' '\2019';
-}
-
-Syntaxe
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Paramètre
-
-
-
-
-language-codeExemples
-
-:lang est utilisée pour faire correspondre le parent d'une citation en utilisant {{cssxref(":first-child")}}. Il ne s'agit pas de la seule solution pour ce type de problème, ni même de la meilleure (qui dépendra du type de document). Les valeurs Unicode sont utilisées pour certains caractères spéciaux de citation.CSS
-
-:lang(fr) > Q {
- quotes: '« ' ' »';
-}
-
-:lang(de) > Q {
- quotes: '»' '«' '\2039' '\203A';
-}
-
-:lang(en) > Q {
- quotes: '\201C' '\201D' '\2018' '\2019';
-}
-
-
-HTML
-
-<div lang="fr">
- <q>
- Cette citation française a
- <q>une citation</q>
- imbriquée.
- </q>
-</div>
-
-<div lang="de">
- <q>
- Cette citation allemande a
- <q>une citation</q>
- imbriquée.
- </q>
-</div>
-
-<div lang="en">
- <q>
- Cette citation anglaise a
- <q>une citation</q>
- imbriquée.
- </q>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#lang-pseudo', ':lang()')}}
- {{Spec2('CSS4 Selectors')}}
- Ajout du joker pour correspondre à toutes les langues. Ajout des listes de langues séparées par des virgules.
-
-
- {{SpecName('CSS3 Selectors', '#lang-pseudo', ':lang()')}}
- {{Spec2('CSS3 Selectors')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS2.1', 'selector.html#lang', ':lang()')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_lang/index.md b/files/fr/web/css/_colon_lang/index.md
new file mode 100644
index 0000000000..b564018c4e
--- /dev/null
+++ b/files/fr/web/css/_colon_lang/index.md
@@ -0,0 +1,131 @@
+---
+title: ':lang'
+slug: 'Web/CSS/:lang'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:lang'
+---
+lang du DOMlang selon W3C DOM Level 2 HTML (en anglais):lang permet de définir la mise en forme d'un élément selon la langue dans laquelle il est écrit./* Correspond aux paragraphes, uniquement si ceux-ci */
+/* sont indiqués comme étant en anglais (en) */
+p:lang(en) {
+ quotes: '\201C' '\201D' '\2018' '\2019';
+}
+
+Syntaxe
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Paramètre
+
+
+
+
+language-codeExemples
+
+:lang est utilisée pour faire correspondre le parent d'une citation en utilisant {{cssxref(":first-child")}}. Il ne s'agit pas de la seule solution pour ce type de problème, ni même de la meilleure (qui dépendra du type de document). Les valeurs Unicode sont utilisées pour certains caractères spéciaux de citation.CSS
+
+:lang(fr) > Q {
+ quotes: '« ' ' »';
+}
+
+:lang(de) > Q {
+ quotes: '»' '«' '\2039' '\203A';
+}
+
+:lang(en) > Q {
+ quotes: '\201C' '\201D' '\2018' '\2019';
+}
+
+
+HTML
+
+<div lang="fr">
+ <q>
+ Cette citation française a
+ <q>une citation</q>
+ imbriquée.
+ </q>
+</div>
+
+<div lang="de">
+ <q>
+ Cette citation allemande a
+ <q>une citation</q>
+ imbriquée.
+ </q>
+</div>
+
+<div lang="en">
+ <q>
+ Cette citation anglaise a
+ <q>une citation</q>
+ imbriquée.
+ </q>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#lang-pseudo', ':lang()')}}
+ {{Spec2('CSS4 Selectors')}}
+ Ajout du joker pour correspondre à toutes les langues. Ajout des listes de langues séparées par des virgules.
+
+
+ {{SpecName('CSS3 Selectors', '#lang-pseudo', ':lang()')}}
+ {{Spec2('CSS3 Selectors')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS2.1', 'selector.html#lang', ':lang()')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_last-child/index.html b/files/fr/web/css/_colon_last-child/index.html
deleted file mode 100644
index 26b3e6dc6d..0000000000
--- a/files/fr/web/css/_colon_last-child/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: ':last-child'
-slug: 'Web/CSS/:last-child'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:last-child'
----
-lang du DOMlang selon W3C DOM Level 2 HTML (en anglais):last-child permet de cibler un élément qui est le dernier enfant de son parent./* Cible n'importe quel élément <li> tant que */
-/* celui-ci est le dernier enfant de son élément */
-/* parent */
-li:last-child {
- background-color: lime;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-li:last-child {
- background-color: lime;
-}
-
-
-HTML
-
-<ul>
- <li>Cet élément n'est pas vert !</li>
- <li>Celui-ci est vert.</li>
-</ul>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#last-child', ':last-child')}}
- {{Spec2('CSS4 Selectors')}}
- Il n'est plus obligatoire que l'élément ciblé ait un parent.
-
-
-
-{{SpecName('CSS3 Selectors', '#last-child', ':last-child')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_last-child/index.md b/files/fr/web/css/_colon_last-child/index.md
new file mode 100644
index 0000000000..26b3e6dc6d
--- /dev/null
+++ b/files/fr/web/css/_colon_last-child/index.md
@@ -0,0 +1,85 @@
+---
+title: ':last-child'
+slug: 'Web/CSS/:last-child'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:last-child'
+---
+:last-child permet de cibler un élément qui est le dernier enfant de son parent./* Cible n'importe quel élément <li> tant que */
+/* celui-ci est le dernier enfant de son élément */
+/* parent */
+li:last-child {
+ background-color: lime;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+li:last-child {
+ background-color: lime;
+}
+
+
+HTML
+
+<ul>
+ <li>Cet élément n'est pas vert !</li>
+ <li>Celui-ci est vert.</li>
+</ul>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#last-child', ':last-child')}}
+ {{Spec2('CSS4 Selectors')}}
+ Il n'est plus obligatoire que l'élément ciblé ait un parent.
+
+
+
+{{SpecName('CSS3 Selectors', '#last-child', ':last-child')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_last-of-type/index.html b/files/fr/web/css/_colon_last-of-type/index.html
deleted file mode 100644
index 8feeeed2f2..0000000000
--- a/files/fr/web/css/_colon_last-of-type/index.html
+++ /dev/null
@@ -1,100 +0,0 @@
----
-title: ':last-of-type'
-slug: 'Web/CSS/:last-of-type'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:last-of-type'
----
-:last-of-type cible un élément qui est le dernier enfant d'un type donné dans la liste des enfants de l'élément parent./* Cible n'importe quel paragraphe qui est */
-/* le dernier paragraphe de son élément parent */
-p:last-of-type {
- color: lime;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p em:last-of-type {
- color: lime;
-}
-
-
-HTML
-
-<p>
- <em>Je ne suis pas vert :(</em>
- <strong>Je ne suis pas vert :(</strong>
- <em>Je suis vert :D</em>
- <strong>Je ne suis pas vert non plus :(</strong>
-</p>
-
-<p>
- <em>Je ne suis pas vert :(</em>
- <span>
- <em>Je suis vert !</em>
- </span>
- <strong>Je ne suis pas vert :(</strong>
- <em>Je suis vert :D</em>
- <span>
- <em>Je suis aussi vert !</em>
- <strike>Je ne suis pas vert</strike>
- </span>
- <strong>Je ne suis pas vert non plus :(</strong>
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#last-of-type-pseudo', ':last-of-type')}}
- {{Spec2('CSS4 Selectors')}}
- L'élément ciblé ne doit pas nécessairement avoir un élément parent.
-
-
-
-{{SpecName('CSS3 Selectors', '#last-of-type-pseudo', ':last-of-type')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_last-of-type/index.md b/files/fr/web/css/_colon_last-of-type/index.md
new file mode 100644
index 0000000000..8feeeed2f2
--- /dev/null
+++ b/files/fr/web/css/_colon_last-of-type/index.md
@@ -0,0 +1,100 @@
+---
+title: ':last-of-type'
+slug: 'Web/CSS/:last-of-type'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:last-of-type'
+---
+:last-of-type cible un élément qui est le dernier enfant d'un type donné dans la liste des enfants de l'élément parent./* Cible n'importe quel paragraphe qui est */
+/* le dernier paragraphe de son élément parent */
+p:last-of-type {
+ color: lime;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p em:last-of-type {
+ color: lime;
+}
+
+
+HTML
+
+<p>
+ <em>Je ne suis pas vert :(</em>
+ <strong>Je ne suis pas vert :(</strong>
+ <em>Je suis vert :D</em>
+ <strong>Je ne suis pas vert non plus :(</strong>
+</p>
+
+<p>
+ <em>Je ne suis pas vert :(</em>
+ <span>
+ <em>Je suis vert !</em>
+ </span>
+ <strong>Je ne suis pas vert :(</strong>
+ <em>Je suis vert :D</em>
+ <span>
+ <em>Je suis aussi vert !</em>
+ <strike>Je ne suis pas vert</strike>
+ </span>
+ <strong>Je ne suis pas vert non plus :(</strong>
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#last-of-type-pseudo', ':last-of-type')}}
+ {{Spec2('CSS4 Selectors')}}
+ L'élément ciblé ne doit pas nécessairement avoir un élément parent.
+
+
+
+{{SpecName('CSS3 Selectors', '#last-of-type-pseudo', ':last-of-type')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_left/index.html b/files/fr/web/css/_colon_left/index.html
deleted file mode 100644
index 545f6f24f1..0000000000
--- a/files/fr/web/css/_colon_left/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: ':left'
-slug: 'Web/CSS/:left'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
- - Web
-translation_of: 'Web/CSS/:left'
----
-:left, liée à la règle {{cssxref("@page")}}, permet de cibler les pages de gauche lors d'une impression. Ceci permet de mettre en forme spécifiquement les pages de gauche./* Sélectionne le contenu des pages gauches */
-/* lors de l'impression */
-@page :left {
- margin: 2in 3in;
-}
-
-:left.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-@page :left {
- margin: 2cm 3cm;
-}
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Paged Media', '#left-right-first', ':left')}}
- {{Spec2('CSS3 Paged Media')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS2.1', 'page.html#page-selectors', ':left')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_left/index.md b/files/fr/web/css/_colon_left/index.md
new file mode 100644
index 0000000000..545f6f24f1
--- /dev/null
+++ b/files/fr/web/css/_colon_left/index.md
@@ -0,0 +1,72 @@
+---
+title: ':left'
+slug: 'Web/CSS/:left'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+ - Web
+translation_of: 'Web/CSS/:left'
+---
+:left, liée à la règle {{cssxref("@page")}}, permet de cibler les pages de gauche lors d'une impression. Ceci permet de mettre en forme spécifiquement les pages de gauche./* Sélectionne le contenu des pages gauches */
+/* lors de l'impression */
+@page :left {
+ margin: 2in 3in;
+}
+
+:left.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+@page :left {
+ margin: 2cm 3cm;
+}
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Paged Media', '#left-right-first', ':left')}}
+ {{Spec2('CSS3 Paged Media')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS2.1', 'page.html#page-selectors', ':left')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_link/index.html b/files/fr/web/css/_colon_link/index.html
deleted file mode 100644
index a429ffe7e9..0000000000
--- a/files/fr/web/css/_colon_link/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: ':link'
-slug: 'Web/CSS/:link'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:link'
----
-:link permet de sélectionner les liens à l'intérieur d'éléments. Elle sélectionnera tout lien n'ayant pas été visité, même ceux qui seraient déjà mis en forme via des sélecteurs utilisant d'autres pseudo-classes comme {{cssxref(":hover")}}, {{cssxref(":active")}} ou {{cssxref(":visited")}}./* Cible les liens qui n'ont pas encore */
-/* été visités */
-a:link {
- color: red;
-}
-
-:link doit être placée avant les autres : :link — :visited — :hover — :active. La pseudo-classe {{cssxref(":focus")}} est habituellement placée juste avant ou juste après :hover, en fonction de l'effet désiré.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-a:link {
- color: red;
-}
-
-.external:link {
- background-color: lightblue;
-}
-
-
-HTML
-
-<p>Et si on allait voir
- <a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/">
- un peu de JavaScript ?
- </a>
-</p>
-<p>Sinon, on peut continuer à se cultiver sur CSS autre part
- <a class="external" href="https://css-tricks.com/">
- comme CSS Tricks.
- </a>
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-link', ':link')}}
- {{Spec2('HTML WHATWG')}}
-
-
-
- {{SpecName('CSS4 Selectors', '#link', ':link')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Selectors', '#link', ':link')}}
- {{Spec2('CSS3 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS2.1', 'selector.html#link-pseudo-classes', ':link')}}
- {{Spec2('CSS2.1')}}
- Levée de la restriction limitant l'utilisation de cette pseudo-classe à l'élément {{HTMLElement("a")}}.
-
-
-
-{{SpecName('CSS1', '#anchor-pseudo-classes', ':link')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_link/index.md b/files/fr/web/css/_colon_link/index.md
new file mode 100644
index 0000000000..a429ffe7e9
--- /dev/null
+++ b/files/fr/web/css/_colon_link/index.md
@@ -0,0 +1,110 @@
+---
+title: ':link'
+slug: 'Web/CSS/:link'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:link'
+---
+:link permet de sélectionner les liens à l'intérieur d'éléments. Elle sélectionnera tout lien n'ayant pas été visité, même ceux qui seraient déjà mis en forme via des sélecteurs utilisant d'autres pseudo-classes comme {{cssxref(":hover")}}, {{cssxref(":active")}} ou {{cssxref(":visited")}}./* Cible les liens qui n'ont pas encore */
+/* été visités */
+a:link {
+ color: red;
+}
+
+:link doit être placée avant les autres : :link — :visited — :hover — :active. La pseudo-classe {{cssxref(":focus")}} est habituellement placée juste avant ou juste après :hover, en fonction de l'effet désiré.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+a:link {
+ color: red;
+}
+
+.external:link {
+ background-color: lightblue;
+}
+
+
+HTML
+
+<p>Et si on allait voir
+ <a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/">
+ un peu de JavaScript ?
+ </a>
+</p>
+<p>Sinon, on peut continuer à se cultiver sur CSS autre part
+ <a class="external" href="https://css-tricks.com/">
+ comme CSS Tricks.
+ </a>
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-link', ':link')}}
+ {{Spec2('HTML WHATWG')}}
+
+
+
+ {{SpecName('CSS4 Selectors', '#link', ':link')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Selectors', '#link', ':link')}}
+ {{Spec2('CSS3 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS2.1', 'selector.html#link-pseudo-classes', ':link')}}
+ {{Spec2('CSS2.1')}}
+ Levée de la restriction limitant l'utilisation de cette pseudo-classe à l'élément {{HTMLElement("a")}}.
+
+
+
+{{SpecName('CSS1', '#anchor-pseudo-classes', ':link')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_local-link/index.html b/files/fr/web/css/_colon_local-link/index.html
deleted file mode 100644
index 9f86e4fbd7..0000000000
--- a/files/fr/web/css/_colon_local-link/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: ':local-link'
-slug: 'Web/CSS/:local-link'
-browser-compat: css.selectors.local-link
-translation_of: Web/CSS/:local-link
----
-:local-link représente un lien vers le même document. Il s'agit donc d'un élément qui est l'ancre source d'un lien hypertexte dont la cible est une URL absolue correspondant à l'URL du document contenant l'élément./* Sélectionne n'importe quel <a> ciblant le document courant */
-a:local-link {
- color: green;
-}
-
-
-Syntaxe
-
-Exemples
-
-HTML
-
-<a href="#target">Voici un lien vers la page courante.</a><br>
-<a href="https://example.com">Voici un lien externe</a><br>
-
-
-CSS
-
-a:local-link {
- color: green;
-}
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_local-link/index.md b/files/fr/web/css/_colon_local-link/index.md
new file mode 100644
index 0000000000..9f86e4fbd7
--- /dev/null
+++ b/files/fr/web/css/_colon_local-link/index.md
@@ -0,0 +1,52 @@
+---
+title: ':local-link'
+slug: 'Web/CSS/:local-link'
+browser-compat: css.selectors.local-link
+translation_of: Web/CSS/:local-link
+---
+:local-link représente un lien vers le même document. Il s'agit donc d'un élément qui est l'ancre source d'un lien hypertexte dont la cible est une URL absolue correspondant à l'URL du document contenant l'élément./* Sélectionne n'importe quel <a> ciblant le document courant */
+a:local-link {
+ color: green;
+}
+
+
+Syntaxe
+
+Exemples
+
+HTML
+
+<a href="#target">Voici un lien vers la page courante.</a><br>
+<a href="https://example.com">Voici un lien externe</a><br>
+
+
+CSS
+
+a:local-link {
+ color: green;
+}
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_not/index.html b/files/fr/web/css/_colon_not/index.html
deleted file mode 100644
index 8cf347c1fc..0000000000
--- a/files/fr/web/css/_colon_not/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: ':not'
-slug: Web/CSS/:not
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:not
----
-:not(), est une notation fonctionnelle qui prend un sélecteur comme argument. Elle permet de cibler les éléments qui ne sont pas représentés par cet argument. Le sélecteur passé en argument ne doit pas contenir d'autre sélecteur de négation et ne doit pas cibler de pseudo-élément./* Sélectionne n'importe quel élément qui n'est */
-/* pas un paragraphe */
-:not(p) {
- color: blue;
-}
-
-:not est la spécificité de son argument. La pseudo-classe de négation n'ajoute pas de spécificité, contrairement aux autres pseudo-classes.
-
-
-:not(*) va exclure tous les éléments et ne sera jamais appliqué.toto:not(truc) ciblera les mêmes éléments que toto, mais avec une spécificité plus forte.:not(toto){} ciblera tout élément qui n'est pas toto, notamment {{HTMLElement("html")}} et {{HTMLElement("body")}}.body :not(table) a s'appliquera aux liens contenus dans un tableau car {{HTMLElement("tr")}} ne sera pas ciblé par la partie :not() du sélecteur.Syntaxe
-
-:not() prend en argument une liste d'un ou plusieurs sélecteurs séparés par des virgules. Cette liste ne doit pas contenir d'autre sélecteur de négation ou de pseudo-élément.Exemples
-
-CSS
-
-/* Contient tous les paragraphes (p) sauf
- ceux avec le sélecteur de class "classy" */
-p:not(.classy) {
- color: red;
-}
-
-/* Les balises p sont exclues */
-/* Attention, il est nécessaire d'avoir un */
-/* combinateur. On ne peut pas écrire ':not(p)' */
-*:not(p) {
- color: green;
-}
-
-/* Les éléments qui ne sont pas des paragraphes */
-/* et qui n'ont pas la classe "classy" */
-/* Note : cette syntaxe n'est pas bien supportée */
-body :not(.classy, p) {
- font-family: sans-serif;
-}
-
-HTML
-
-<p>
- Un peu de texte.
-</p>
-<p class="classy">
- Encore du texte.
-</p>
-<span>
- Et toujours du texte.
-<span>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#negation', ':not()')}}
- {{Spec2('CSS4 Selectors')}}
- La définition de l'argument est étendue afin d'autoriser les sélecteurs complexes.
-
-
-
-{{SpecName('CSS3 Selectors', '#negation', ':not()')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-:not(), est une notation fonctionnelle qui prend un sélecteur comme argument. Elle permet de cibler les éléments qui ne sont pas représentés par cet argument. Le sélecteur passé en argument ne doit pas contenir d'autre sélecteur de négation et ne doit pas cibler de pseudo-élément./* Sélectionne n'importe quel élément qui n'est */
+/* pas un paragraphe */
+:not(p) {
+ color: blue;
+}
+
+:not est la spécificité de son argument. La pseudo-classe de négation n'ajoute pas de spécificité, contrairement aux autres pseudo-classes.
+
+
+:not(*) va exclure tous les éléments et ne sera jamais appliqué.toto:not(truc) ciblera les mêmes éléments que toto, mais avec une spécificité plus forte.:not(toto){} ciblera tout élément qui n'est pas toto, notamment {{HTMLElement("html")}} et {{HTMLElement("body")}}.body :not(table) a s'appliquera aux liens contenus dans un tableau car {{HTMLElement("tr")}} ne sera pas ciblé par la partie :not() du sélecteur.Syntaxe
+
+:not() prend en argument une liste d'un ou plusieurs sélecteurs séparés par des virgules. Cette liste ne doit pas contenir d'autre sélecteur de négation ou de pseudo-élément.Exemples
+
+CSS
+
+/* Contient tous les paragraphes (p) sauf
+ ceux avec le sélecteur de class "classy" */
+p:not(.classy) {
+ color: red;
+}
+
+/* Les balises p sont exclues */
+/* Attention, il est nécessaire d'avoir un */
+/* combinateur. On ne peut pas écrire ':not(p)' */
+*:not(p) {
+ color: green;
+}
+
+/* Les éléments qui ne sont pas des paragraphes */
+/* et qui n'ont pas la classe "classy" */
+/* Note : cette syntaxe n'est pas bien supportée */
+body :not(.classy, p) {
+ font-family: sans-serif;
+}
+
+HTML
+
+<p>
+ Un peu de texte.
+</p>
+<p class="classy">
+ Encore du texte.
+</p>
+<span>
+ Et toujours du texte.
+<span>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#negation', ':not()')}}
+ {{Spec2('CSS4 Selectors')}}
+ La définition de l'argument est étendue afin d'autoriser les sélecteurs complexes.
+
+
+
+{{SpecName('CSS3 Selectors', '#negation', ':not()')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+:nth-child(an+b) permet de cibler un élément qui possède an+b-1 éléments voisins (au même niveau) avant lui dans l'arbre du document pour des valeurs entières n et qui possède un élément parent. Autrement dit, un sélecteur utilisant cette pseudo-classe permettra de cibler les éléments fils d'un élément dont les positions correspondent au motif an+b./* Cible les éléments en fonction de leur position dans */
-/* le document : ici le 4e, 8e, 16e, 20e, etc. quel que */
-/* soit le type de l'élément */
-body :nth-child(4n) {
- background-color: lime;
-}
-
-
-
-
-1n+0 ou n ciblera chaque élément fils. n ne cible aucun élément pour le navigateur Android jusqu'à la version 4.3 alors qu'1n fonctionne. 1n est synonyme de 1n+0 et les deux peuvent donc être utilisés de façon équivalente.2n+0 ou 2n ciblera les éléments fils 2, 4, 6, 8, etc. On pourra utiliser le mot-clé even à la place de cette expression.2n+1 ciblera les éléments fils 1, 3, 5, 7, etc. On pourra utiliser le mot-clé odd à la place de cette expression.3n+4 permettra de cibler les éléments fils 4, 7, 10, 13, etc.0n+3 (ou plus simplement 3) permettra de cibler le troisième élément.a et b doivent être des entiers et l'indice du premier élément fils commence à 1. Autrement dit, cette pseudo-classe permettra de cibler les éléments fils dont l'indice appartient à l'ensemble { an + b; n = 0, 1, 2, ... }.Syntaxe
-
-nth-child prend un seul argument qui représente le motif de répétition des éléments ciblés.Valeurs avec un mot-clé
-
-
-
-
-oddevenNotation fonctionnelle
-
-
-
-
-<An+B>An+B-ième avec n qui parcourt les entiers à partir de 0. Les valeurs fournies pour A et B doivent être des entiers ({{cssxref("<integer>")}}).Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Exemples de sélecteurs
-
-
-
-
-tr:nth-child(2n+1)tr:nth-child(odd)tr:nth-child(2n)tr:nth-child(even)span:nth-child(0n+1)span:nth-child(1)span:nth-child(-n+3)span.Exemple démonstratif
-
-CSS
-
-html {
- font-family: sans-serif;
-}
-
-span, div em {
- padding: 10px;
- border: 1px solid green;
- display: inline-block;
- margin-bottom: 3px;
-}
-
-.premier span:nth-child(2n+1),
-.deuxieme span:nth-child(2n+1),
-.troisieme span:nth-of-type(2n+1) {
- background-color: lime;
-}
-
-HTML
-
-<p>
- <code>span:nth-child(2n+1)</code>,
- <em>sans</em> un <code><em></code>
- parmi les éléments. Les éléments fils 1, 3,
- 5 et 7 sont sélectionnés.
-</p>
-
-<div class="premier">
- <span>Ce span est sélectionné !</span>
- <span>Pas ce span ci. :(</span>
- <span>Celui-ci ?</span>
- <span>Celui-là ?</span>
- <span>Un autre exemple</span>
- <span>Et encore un</span>
- <span>Puis un dernier</span>
-</div>
-
-<p>
- <code>span:nth-child(2n+1)</code>,
- <em>avec</em> un élément <code><em></code>
- parmi les fils. Les éléments fils 1, 5,
- et 7 sont sélectionnés. 3 est compté
- mais n'est pas ciblé car ce n'est pas
- <code><span></code>.
-</p>
-
-<div class="deuxieme">
- <span>Ce span est sélectionné !</span>
- <span>Pas ce span ci. :(</span>
- <em>Ici on a un em.</em>
- <span>Qu'en est-il de celui-ci ?</span>
- <span>De celui-là ?</span>
- <span>Voici un autre exemple</span>
- <span>Et encore un</span>
- <span>Puis un dernier</span>
-</div>
-
-<p>
- <code>span:nth-of-type(2n+1)</code>,
- <em>avec</em> un <code><em></code>
- parmi les éléments fils. Les éléments fils
- 1, 4, 6 et 8 sont sélectionnés. 3 n'est pas
- compté ni ciblé car c'est un <code><em></code>,
- et pas un <code><span></code> et
- <code>nth-of-type</code> ne sélectionne que les
- fils de ce type. Ce <code><em></code> est
- sauté et est ignoré.
-</p>
-
-<div class="troisieme">
- <span>Ce span est sélectionné !</span>
- <span>Pas ce span ci. :(</span>
- <em>Ici on a un em.</em>
- <span>Qu'en est-il de celui-ci ?</span>
- <span>De celui-là ?</span>
- <span>Voici un autre exemple</span>
- <span>Et encore un</span>
- <span>Puis un dernier</span>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#nth-child-pseudo', ':nth-child')}}
- {{Spec2('CSS4 Selectors')}}
- Ajout de la syntaxe
- <selector>. Les éléments ciblés peuvent ne pas avoir d'élément parent.
-
-
-{{SpecName('CSS3 Selectors', '#nth-child-pseudo', ':nth-child')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_nth-child/index.md b/files/fr/web/css/_colon_nth-child/index.md
new file mode 100644
index 0000000000..0e9b1efcac
--- /dev/null
+++ b/files/fr/web/css/_colon_nth-child/index.md
@@ -0,0 +1,206 @@
+---
+title: ':nth-child'
+slug: 'Web/CSS/:nth-child'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:nth-child'
+---
+:nth-child(an+b) permet de cibler un élément qui possède an+b-1 éléments voisins (au même niveau) avant lui dans l'arbre du document pour des valeurs entières n et qui possède un élément parent. Autrement dit, un sélecteur utilisant cette pseudo-classe permettra de cibler les éléments fils d'un élément dont les positions correspondent au motif an+b./* Cible les éléments en fonction de leur position dans */
+/* le document : ici le 4e, 8e, 16e, 20e, etc. quel que */
+/* soit le type de l'élément */
+body :nth-child(4n) {
+ background-color: lime;
+}
+
+
+
+
+1n+0 ou n ciblera chaque élément fils. n ne cible aucun élément pour le navigateur Android jusqu'à la version 4.3 alors qu'1n fonctionne. 1n est synonyme de 1n+0 et les deux peuvent donc être utilisés de façon équivalente.2n+0 ou 2n ciblera les éléments fils 2, 4, 6, 8, etc. On pourra utiliser le mot-clé even à la place de cette expression.2n+1 ciblera les éléments fils 1, 3, 5, 7, etc. On pourra utiliser le mot-clé odd à la place de cette expression.3n+4 permettra de cibler les éléments fils 4, 7, 10, 13, etc.0n+3 (ou plus simplement 3) permettra de cibler le troisième élément.a et b doivent être des entiers et l'indice du premier élément fils commence à 1. Autrement dit, cette pseudo-classe permettra de cibler les éléments fils dont l'indice appartient à l'ensemble { an + b; n = 0, 1, 2, ... }.Syntaxe
+
+nth-child prend un seul argument qui représente le motif de répétition des éléments ciblés.Valeurs avec un mot-clé
+
+
+
+
+oddevenNotation fonctionnelle
+
+
+
+
+<An+B>An+B-ième avec n qui parcourt les entiers à partir de 0. Les valeurs fournies pour A et B doivent être des entiers ({{cssxref("<integer>")}}).Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Exemples de sélecteurs
+
+
+
+
+tr:nth-child(2n+1)tr:nth-child(odd)tr:nth-child(2n)tr:nth-child(even)span:nth-child(0n+1)span:nth-child(1)span:nth-child(-n+3)span.Exemple démonstratif
+
+CSS
+
+html {
+ font-family: sans-serif;
+}
+
+span, div em {
+ padding: 10px;
+ border: 1px solid green;
+ display: inline-block;
+ margin-bottom: 3px;
+}
+
+.premier span:nth-child(2n+1),
+.deuxieme span:nth-child(2n+1),
+.troisieme span:nth-of-type(2n+1) {
+ background-color: lime;
+}
+
+HTML
+
+<p>
+ <code>span:nth-child(2n+1)</code>,
+ <em>sans</em> un <code><em></code>
+ parmi les éléments. Les éléments fils 1, 3,
+ 5 et 7 sont sélectionnés.
+</p>
+
+<div class="premier">
+ <span>Ce span est sélectionné !</span>
+ <span>Pas ce span ci. :(</span>
+ <span>Celui-ci ?</span>
+ <span>Celui-là ?</span>
+ <span>Un autre exemple</span>
+ <span>Et encore un</span>
+ <span>Puis un dernier</span>
+</div>
+
+<p>
+ <code>span:nth-child(2n+1)</code>,
+ <em>avec</em> un élément <code><em></code>
+ parmi les fils. Les éléments fils 1, 5,
+ et 7 sont sélectionnés. 3 est compté
+ mais n'est pas ciblé car ce n'est pas
+ <code><span></code>.
+</p>
+
+<div class="deuxieme">
+ <span>Ce span est sélectionné !</span>
+ <span>Pas ce span ci. :(</span>
+ <em>Ici on a un em.</em>
+ <span>Qu'en est-il de celui-ci ?</span>
+ <span>De celui-là ?</span>
+ <span>Voici un autre exemple</span>
+ <span>Et encore un</span>
+ <span>Puis un dernier</span>
+</div>
+
+<p>
+ <code>span:nth-of-type(2n+1)</code>,
+ <em>avec</em> un <code><em></code>
+ parmi les éléments fils. Les éléments fils
+ 1, 4, 6 et 8 sont sélectionnés. 3 n'est pas
+ compté ni ciblé car c'est un <code><em></code>,
+ et pas un <code><span></code> et
+ <code>nth-of-type</code> ne sélectionne que les
+ fils de ce type. Ce <code><em></code> est
+ sauté et est ignoré.
+</p>
+
+<div class="troisieme">
+ <span>Ce span est sélectionné !</span>
+ <span>Pas ce span ci. :(</span>
+ <em>Ici on a un em.</em>
+ <span>Qu'en est-il de celui-ci ?</span>
+ <span>De celui-là ?</span>
+ <span>Voici un autre exemple</span>
+ <span>Et encore un</span>
+ <span>Puis un dernier</span>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#nth-child-pseudo', ':nth-child')}}
+ {{Spec2('CSS4 Selectors')}}
+ Ajout de la syntaxe
+ <selector>. Les éléments ciblés peuvent ne pas avoir d'élément parent.
+
+
+{{SpecName('CSS3 Selectors', '#nth-child-pseudo', ':nth-child')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_nth-col/index.html b/files/fr/web/css/_colon_nth-col/index.html
deleted file mode 100644
index d8ff143e54..0000000000
--- a/files/fr/web/css/_colon_nth-col/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: ':nth-col'
-slug: 'Web/CSS/:nth-col'
-browser-compat: css.selectors.nth-col
-translation_of: 'Web/CSS/:nth-col'
----
-:nth-col() est conçue pour les tableaux et les grilles. Elle accepte les notations de type An+B telles qu'utilisées avec le sélecteur {{Cssxref(":nth-child")}}, ce qui permet de cibler un jeu de colonnes. Les valeurs odd et even sont aussi valides./* Sélectionne toutes les valeurs impaires du tableau */
-:nth-col(odd) {
- background-color: pink;
-}
-
-Syntaxe
-
-nth-col est spécifiée avec un argument unique qui représente le motif utilisé pour faire la correspondance des éléments.Syntaxe formelle
-
-Exemples
-
-Exemple basique
-
-HTML
-
-<table>
- <tr>
- <td>un</td>
- <td>deux</td>
- <td>trois</td>
- <td>quatre</td>
- </tr>
- <tr>
- <td>un</td>
- <td>deux</td>
- <td>trois</td>
- <td>quatre</td>
- </tr>
-</table>
-
-CSS
-
-td {
- border: 1px solid #ccc;
- padding: .2em;
-}
-
-/* Colonnes impaires */
-:nth-col(2n+1) {
- background-color: pink;
-}
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_nth-col/index.md b/files/fr/web/css/_colon_nth-col/index.md
new file mode 100644
index 0000000000..d8ff143e54
--- /dev/null
+++ b/files/fr/web/css/_colon_nth-col/index.md
@@ -0,0 +1,76 @@
+---
+title: ':nth-col'
+slug: 'Web/CSS/:nth-col'
+browser-compat: css.selectors.nth-col
+translation_of: 'Web/CSS/:nth-col'
+---
+:nth-col() est conçue pour les tableaux et les grilles. Elle accepte les notations de type An+B telles qu'utilisées avec le sélecteur {{Cssxref(":nth-child")}}, ce qui permet de cibler un jeu de colonnes. Les valeurs odd et even sont aussi valides./* Sélectionne toutes les valeurs impaires du tableau */
+:nth-col(odd) {
+ background-color: pink;
+}
+
+Syntaxe
+
+nth-col est spécifiée avec un argument unique qui représente le motif utilisé pour faire la correspondance des éléments.Syntaxe formelle
+
+Exemples
+
+Exemple basique
+
+HTML
+
+<table>
+ <tr>
+ <td>un</td>
+ <td>deux</td>
+ <td>trois</td>
+ <td>quatre</td>
+ </tr>
+ <tr>
+ <td>un</td>
+ <td>deux</td>
+ <td>trois</td>
+ <td>quatre</td>
+ </tr>
+</table>
+
+CSS
+
+td {
+ border: 1px solid #ccc;
+ padding: .2em;
+}
+
+/* Colonnes impaires */
+:nth-col(2n+1) {
+ background-color: pink;
+}
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_nth-last-child/index.html b/files/fr/web/css/_colon_nth-last-child/index.html
deleted file mode 100644
index d99871fa8a..0000000000
--- a/files/fr/web/css/_colon_nth-last-child/index.html
+++ /dev/null
@@ -1,195 +0,0 @@
----
-title: ':nth-last-child'
-slug: 'Web/CSS/:nth-last-child'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:nth-last-child'
----
-:nth-last-child permet de cibler les éléments qui possèdent an+b-1 nœud frères qui les suivent pour un même élément parent avec un indice n entier qui est incrémenté à partir de 0. Avec CSS3, il était nécessaire que l'élément ciblé ait un élément parent, cette restriction a été levée en CSS4./* Cible les éléments qui sont les 4e, 8e, 16e */
-/* 20e à partir de la fin, quel que soit leur type */
-body: nth-last-child(4n) {
- background-color: lime;
-}
-
-Syntaxe
-
-nth-last-child prend un seul argument qui représente le motif de répétition des éléments ciblés, compté à partir de la fin.Valeurs avec un mot-clé
-
-
-
-
-oddevenNotation fonctionnelle
-
-
-
-
-<An+B>An+B-ième avec n qui parcourt les entiers à partir de 0. Les valeurs fournies pour A et B doivent être des entiers {{cssxref("<integer>")}}.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Exemples
-
-
-
-
-tr:nth-last-child(-n+4)span:nth-last-child(even) ou span:nth-last-child(2n)Exemple appliqué
-
-CSS
-
-table {
- border:1px solid blue;
-}
-tr:nth-last-child(-n+3) { /* les trois derniers enfants */
- background-color: lime;
-}
-
-
-HTML
-
-<table>
- <tbody>
- <tr>
- <td>Première ligne</td>
- </tr>
- <tr>
- <td>Deuxième ligne</td>
- </tr>
- <tr>
- <td>Troisième ligne</td>
- </tr>
- <tr>
- <td>Quatrième ligne</td>
- </tr>
- <tr>
- <td>Sixième ligne</td>
- </tr>
- </tbody>
-</table>
-
-
-Résultat
-
-Cas aux limites
-
-n commence à zéro et le dernier élément commence à un, n et n+1 sélectionnent donc les mêmes éléments.HTML
-
-<table>
- <tbody>
- <tr>
- <td>Première ligne</td>
- </tr>
- <tr>
- <td>Deuxième ligne</td>
- </tr>
- <tr>
- <td>Troisième ligne</td>
- </tr>
- </tbody>
-</table>
-
-CSS
-
-tr:nth-last-child(n) {
- background-color: lightgray;
-}
-
-tr:nth-last-child(n+1){
- font-weight: 600;
-}
-
-
-Résultat
-
-Mise en forme selon le nombre d’éléments
-
-nth-last-child et le sélecteur de voisins généraux (general sibling combinator).HTML
-
-<h4>Une liste avec quatre éléments :</h4>
-<ol>
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
- <li>Quatre</li>
-</ol>
-
-<h4>Une liste avec deux éléments :</h4>
-<ol>
- <li>Un</li>
- <li>Deux</li>
-</ol>
-
-CSS
-
-li:nth-last-child(n+3),
-li:nth-last-child(n+3) ~ li {
- color: red;
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}
- {{Spec2('CSS4 Selectors')}}
- Les éléments ciblés peuvent ne pas avoir d'élément parent.
-
-
-
-{{SpecName('CSS3 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_nth-last-child/index.md b/files/fr/web/css/_colon_nth-last-child/index.md
new file mode 100644
index 0000000000..d99871fa8a
--- /dev/null
+++ b/files/fr/web/css/_colon_nth-last-child/index.md
@@ -0,0 +1,195 @@
+---
+title: ':nth-last-child'
+slug: 'Web/CSS/:nth-last-child'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:nth-last-child'
+---
+:nth-last-child permet de cibler les éléments qui possèdent an+b-1 nœud frères qui les suivent pour un même élément parent avec un indice n entier qui est incrémenté à partir de 0. Avec CSS3, il était nécessaire que l'élément ciblé ait un élément parent, cette restriction a été levée en CSS4./* Cible les éléments qui sont les 4e, 8e, 16e */
+/* 20e à partir de la fin, quel que soit leur type */
+body: nth-last-child(4n) {
+ background-color: lime;
+}
+
+Syntaxe
+
+nth-last-child prend un seul argument qui représente le motif de répétition des éléments ciblés, compté à partir de la fin.Valeurs avec un mot-clé
+
+
+
+
+oddevenNotation fonctionnelle
+
+
+
+
+<An+B>An+B-ième avec n qui parcourt les entiers à partir de 0. Les valeurs fournies pour A et B doivent être des entiers {{cssxref("<integer>")}}.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Exemples
+
+
+
+
+tr:nth-last-child(-n+4)span:nth-last-child(even) ou span:nth-last-child(2n)Exemple appliqué
+
+CSS
+
+table {
+ border:1px solid blue;
+}
+tr:nth-last-child(-n+3) { /* les trois derniers enfants */
+ background-color: lime;
+}
+
+
+HTML
+
+<table>
+ <tbody>
+ <tr>
+ <td>Première ligne</td>
+ </tr>
+ <tr>
+ <td>Deuxième ligne</td>
+ </tr>
+ <tr>
+ <td>Troisième ligne</td>
+ </tr>
+ <tr>
+ <td>Quatrième ligne</td>
+ </tr>
+ <tr>
+ <td>Sixième ligne</td>
+ </tr>
+ </tbody>
+</table>
+
+
+Résultat
+
+Cas aux limites
+
+n commence à zéro et le dernier élément commence à un, n et n+1 sélectionnent donc les mêmes éléments.HTML
+
+<table>
+ <tbody>
+ <tr>
+ <td>Première ligne</td>
+ </tr>
+ <tr>
+ <td>Deuxième ligne</td>
+ </tr>
+ <tr>
+ <td>Troisième ligne</td>
+ </tr>
+ </tbody>
+</table>
+
+CSS
+
+tr:nth-last-child(n) {
+ background-color: lightgray;
+}
+
+tr:nth-last-child(n+1){
+ font-weight: 600;
+}
+
+
+Résultat
+
+Mise en forme selon le nombre d’éléments
+
+nth-last-child et le sélecteur de voisins généraux (general sibling combinator).HTML
+
+<h4>Une liste avec quatre éléments :</h4>
+<ol>
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+ <li>Quatre</li>
+</ol>
+
+<h4>Une liste avec deux éléments :</h4>
+<ol>
+ <li>Un</li>
+ <li>Deux</li>
+</ol>
+
+CSS
+
+li:nth-last-child(n+3),
+li:nth-last-child(n+3) ~ li {
+ color: red;
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}
+ {{Spec2('CSS4 Selectors')}}
+ Les éléments ciblés peuvent ne pas avoir d'élément parent.
+
+
+
+{{SpecName('CSS3 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_nth-last-col/index.html b/files/fr/web/css/_colon_nth-last-col/index.html
deleted file mode 100644
index 767e6afc0b..0000000000
--- a/files/fr/web/css/_colon_nth-last-col/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: ':nth-last-col'
-slug: 'Web/CSS/:nth-last-col'
-browser-compat: css.selectors.nth-last-col
-translation_of: 'Web/CSS/:nth-last-col'
----
-:nth-last-col() est conçue pour les tableaux et les grilles. Elle accepte les notations de type An+B telles qu'utilisées avec le sélecteur {{Cssxref(":nth-child")}}, ce qui permet de cibler plusieurs colonnes en comptant à partir de la fin du jeu de colonnes. Les valeurs odd et even sont aussi valides./* Sélectionne toutes les valeurs impaires du tableau */
-:nth-last-col(odd) {
- background-color: pink;
-}
-
-Syntaxe
-
-nth-last-col est spécifiée avec un argument unique qui représente le motif utilisé pour faire la correspondance des éléments.Syntaxe formelle
-
-Exemples
-
-Exemple basique
-
-HTML
-
-<table>
- <tr>
- <td>un</td>
- <td>deux</td>
- <td>trois</td>
- <td>quatre</td>
- </tr>
- <tr>
- <td>un</td>
- <td>deux</td>
- <td>trois</td>
- <td>quatre</td>
- </tr>
-</table>
-
-CSS
-
-td {
- border: 1px solid #ccc;
- padding: .2em;
-}
-
-/* Colonnes impaires, en commençant par la colonne finale du tableau */
-:nth-last-col(2n+1) {
- background-color: pink;
-}
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_nth-last-col/index.md b/files/fr/web/css/_colon_nth-last-col/index.md
new file mode 100644
index 0000000000..767e6afc0b
--- /dev/null
+++ b/files/fr/web/css/_colon_nth-last-col/index.md
@@ -0,0 +1,76 @@
+---
+title: ':nth-last-col'
+slug: 'Web/CSS/:nth-last-col'
+browser-compat: css.selectors.nth-last-col
+translation_of: 'Web/CSS/:nth-last-col'
+---
+:nth-last-col() est conçue pour les tableaux et les grilles. Elle accepte les notations de type An+B telles qu'utilisées avec le sélecteur {{Cssxref(":nth-child")}}, ce qui permet de cibler plusieurs colonnes en comptant à partir de la fin du jeu de colonnes. Les valeurs odd et even sont aussi valides./* Sélectionne toutes les valeurs impaires du tableau */
+:nth-last-col(odd) {
+ background-color: pink;
+}
+
+Syntaxe
+
+nth-last-col est spécifiée avec un argument unique qui représente le motif utilisé pour faire la correspondance des éléments.Syntaxe formelle
+
+Exemples
+
+Exemple basique
+
+HTML
+
+<table>
+ <tr>
+ <td>un</td>
+ <td>deux</td>
+ <td>trois</td>
+ <td>quatre</td>
+ </tr>
+ <tr>
+ <td>un</td>
+ <td>deux</td>
+ <td>trois</td>
+ <td>quatre</td>
+ </tr>
+</table>
+
+CSS
+
+td {
+ border: 1px solid #ccc;
+ padding: .2em;
+}
+
+/* Colonnes impaires, en commençant par la colonne finale du tableau */
+:nth-last-col(2n+1) {
+ background-color: pink;
+}
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_nth-last-of-type/index.html b/files/fr/web/css/_colon_nth-last-of-type/index.html
deleted file mode 100644
index 21460cfb7e..0000000000
--- a/files/fr/web/css/_colon_nth-last-of-type/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: ':nth-last-of-type'
-slug: 'Web/CSS/:nth-last-of-type'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:nth-last-of-type'
----
-:nth-last-of-type permet de cibler des éléments qui possèdent an+b-1 nœud frères étant les mêmes éléments à partir de la fin de l'arbre et qui ont le même élément parent (l'indice n sera incrémenté à partir de 0). Autrement dit, la pseudo-classe parcourra les éléments d'un type donné en partant de la fin de l'élément parent, selon le motif passé en argument./* Cible les éléments <div> qui sont les 4e */
-/* 8e, 16e, 20e, à partir du dernier élément */
-/* <div> d'un élément parent */
-div:nth-last-of-type(4n) {
- background-color: lime;
-}
-
-Syntaxe
-
-nth-last-of-type prend un seul argument qui représente le motif de répétition des éléments correspondants, comptés à partir de la fin.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-span:nth-last-of-type(2) {
- background-color: lime;
-}
-
-
-HTML
-
-<div>
- <span>Ce span est le premier !</span>
- <span>Ce span ne l'est pas. :(</span>
- <em>Celui-ci est bizarre.</em>
- <span>Celui-ci l'est !</span>
- <strike>C'est un autre type</strike>
- <span>Malheureusement, celui-ci ne l'est pas.</span>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#nth-last-of-type-pseudo', ':nth-last-of-type')}}
- {{Spec2('CSS4 Selectors')}}
- L'élément ciblé ne doit pas nécessairement avoir un élément parent.
-
-
-
-{{SpecName('CSS3 Selectors', '#nth-last-of-type-pseudo', ':nth-last-of-type')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_nth-last-of-type/index.md b/files/fr/web/css/_colon_nth-last-of-type/index.md
new file mode 100644
index 0000000000..21460cfb7e
--- /dev/null
+++ b/files/fr/web/css/_colon_nth-last-of-type/index.md
@@ -0,0 +1,91 @@
+---
+title: ':nth-last-of-type'
+slug: 'Web/CSS/:nth-last-of-type'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:nth-last-of-type'
+---
+:nth-last-of-type permet de cibler des éléments qui possèdent an+b-1 nœud frères étant les mêmes éléments à partir de la fin de l'arbre et qui ont le même élément parent (l'indice n sera incrémenté à partir de 0). Autrement dit, la pseudo-classe parcourra les éléments d'un type donné en partant de la fin de l'élément parent, selon le motif passé en argument./* Cible les éléments <div> qui sont les 4e */
+/* 8e, 16e, 20e, à partir du dernier élément */
+/* <div> d'un élément parent */
+div:nth-last-of-type(4n) {
+ background-color: lime;
+}
+
+Syntaxe
+
+nth-last-of-type prend un seul argument qui représente le motif de répétition des éléments correspondants, comptés à partir de la fin.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+span:nth-last-of-type(2) {
+ background-color: lime;
+}
+
+
+HTML
+
+<div>
+ <span>Ce span est le premier !</span>
+ <span>Ce span ne l'est pas. :(</span>
+ <em>Celui-ci est bizarre.</em>
+ <span>Celui-ci l'est !</span>
+ <strike>C'est un autre type</strike>
+ <span>Malheureusement, celui-ci ne l'est pas.</span>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#nth-last-of-type-pseudo', ':nth-last-of-type')}}
+ {{Spec2('CSS4 Selectors')}}
+ L'élément ciblé ne doit pas nécessairement avoir un élément parent.
+
+
+
+{{SpecName('CSS3 Selectors', '#nth-last-of-type-pseudo', ':nth-last-of-type')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_nth-of-type/index.html b/files/fr/web/css/_colon_nth-of-type/index.html
deleted file mode 100644
index 9a64cd08c6..0000000000
--- a/files/fr/web/css/_colon_nth-of-type/index.html
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: ':nth-of-type'
-slug: Web/CSS/:nth-of-type
-tags:
- - CSS
- - Mise en page
- - Pseudo-classe
- - Reference
- - Web
-translation_of: Web/CSS/:nth-of-type
----
-:nth-of-type() correspond à des éléments d'un type donné, en fonction de leur position au sein d'un groupe de frères et sœurs./* Sélectionne chaque élément de type <p> dont
-la position parmi l'ensemble des éléments de type <p>
-descendants directement du même élément parent,
-est un multiple de 4. */
-p:nth-of-type(4n) {
- color: lime;
-}
-
-Syntaxe
-
-nth-of-type ne prend qu'un argument qui représente le motif de répétition pour les éléments ciblés.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<div>
- <div>Cet élément n'est pas compté.</div>
- <p>1er paragraphe.</p>
- <p>2e paragraphe.</p>
- <div>Cet élément n'est pas compté.</div>
- <p>3e paragraphe.</p>
- <p>4e paragraphe.</p>
-</div>
-
-
-CSS
-
-/* Paragraphes impairs */
-p:nth-of-type(2n+1) {
- color: red;
-}
-
-/* Paragraphes pairs */
-p:nth-of-type(2n) {
- color: blue;
-}
-
-/* Premier paragraphe */
-p:nth-of-type(1) {
- font-weight: bold;
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#nth-of-type-pseudo', ':nth-of-type')}}
- {{Spec2('CSS4 Selectors')}}
- L'élément ciblé ne doit pas nécessairement avoir un élément parent.
-
-
-
-{{SpecName('CSS3 Selectors', '#nth-of-type-pseudo', ':nth-of-type')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_nth-of-type/index.md b/files/fr/web/css/_colon_nth-of-type/index.md
new file mode 100644
index 0000000000..9a64cd08c6
--- /dev/null
+++ b/files/fr/web/css/_colon_nth-of-type/index.md
@@ -0,0 +1,106 @@
+---
+title: ':nth-of-type'
+slug: Web/CSS/:nth-of-type
+tags:
+ - CSS
+ - Mise en page
+ - Pseudo-classe
+ - Reference
+ - Web
+translation_of: Web/CSS/:nth-of-type
+---
+:nth-of-type() correspond à des éléments d'un type donné, en fonction de leur position au sein d'un groupe de frères et sœurs./* Sélectionne chaque élément de type <p> dont
+la position parmi l'ensemble des éléments de type <p>
+descendants directement du même élément parent,
+est un multiple de 4. */
+p:nth-of-type(4n) {
+ color: lime;
+}
+
+Syntaxe
+
+nth-of-type ne prend qu'un argument qui représente le motif de répétition pour les éléments ciblés.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<div>
+ <div>Cet élément n'est pas compté.</div>
+ <p>1er paragraphe.</p>
+ <p>2e paragraphe.</p>
+ <div>Cet élément n'est pas compté.</div>
+ <p>3e paragraphe.</p>
+ <p>4e paragraphe.</p>
+</div>
+
+
+CSS
+
+/* Paragraphes impairs */
+p:nth-of-type(2n+1) {
+ color: red;
+}
+
+/* Paragraphes pairs */
+p:nth-of-type(2n) {
+ color: blue;
+}
+
+/* Premier paragraphe */
+p:nth-of-type(1) {
+ font-weight: bold;
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#nth-of-type-pseudo', ':nth-of-type')}}
+ {{Spec2('CSS4 Selectors')}}
+ L'élément ciblé ne doit pas nécessairement avoir un élément parent.
+
+
+
+{{SpecName('CSS3 Selectors', '#nth-of-type-pseudo', ':nth-of-type')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_only-child/index.html b/files/fr/web/css/_colon_only-child/index.html
deleted file mode 100644
index 0f992ae22e..0000000000
--- a/files/fr/web/css/_colon_only-child/index.html
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: ':only-child'
-slug: 'Web/CSS/:only-child'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:only-child'
----
-:only-child représente n'importe quel élément qui est le seul enfant de son élément parent. Elle permet d'obtenir le même effet que :first-child:last-child ou :nth-child(1):nth-last-child(1), mais avec une spécificité inférieure./* Cible chaque élément <p> si celui-ci */
-/* est le seul élément fils de son parent */
-p:only-child {
- background-color: lime;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-Exemple simple
-
-CSS
-
-span:only-child {
- color:red;
-}
-
-
-HTML
-
-<div>
- <span>
- Ce span est l'unique enfant
- de son parent
- </span>
-</div>
-
-<div>
- <span>
- Ce span est l'un des deux
- enfants de son parent
- </span>
- <span>
- Ce span est l'un des deux
- enfants de son parent
- </span>
-</div>
-
-
-Résultat
-
-Exemple avec une liste
-
-CSS
-
-li li {
- list-style-type : disc;
-}
-
-li:only-child {
- color: #6699ff;
- font-style: italic;
- list-style-type: square;
-}
-
-HTML
-
-<ol>
- <li>Premier
- <ul>
- <li>Ceci est l'unique élément enfant</li>
- </ul>
- </li>
- <li>Deuxième
- <ul>
- <li>Cette liste a deux éléments</li>
- <li>Cette liste a deux éléments</li>
- </ul>
- </li>
- <li>Troisième
- <ul>
- <li>Cette liste a trois éléments</li>
- <li>Cette liste a trois éléments</li>
- <li>Cette liste a trois éléments</li>
- </ul>
- </li>
-</ol>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#only-child-pseudo', ':only-child')}}
- {{Spec2('CSS4 Selectors')}}
- Il n'est plus nécessaire qu'un élément ait un parent pour être ciblé.
-
-
-
-{{SpecName('CSS3 Selectors', '#only-child-pseudo', ':only-child')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_only-child/index.md b/files/fr/web/css/_colon_only-child/index.md
new file mode 100644
index 0000000000..0f992ae22e
--- /dev/null
+++ b/files/fr/web/css/_colon_only-child/index.md
@@ -0,0 +1,141 @@
+---
+title: ':only-child'
+slug: 'Web/CSS/:only-child'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:only-child'
+---
+:only-child représente n'importe quel élément qui est le seul enfant de son élément parent. Elle permet d'obtenir le même effet que :first-child:last-child ou :nth-child(1):nth-last-child(1), mais avec une spécificité inférieure./* Cible chaque élément <p> si celui-ci */
+/* est le seul élément fils de son parent */
+p:only-child {
+ background-color: lime;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+Exemple simple
+
+CSS
+
+span:only-child {
+ color:red;
+}
+
+
+HTML
+
+<div>
+ <span>
+ Ce span est l'unique enfant
+ de son parent
+ </span>
+</div>
+
+<div>
+ <span>
+ Ce span est l'un des deux
+ enfants de son parent
+ </span>
+ <span>
+ Ce span est l'un des deux
+ enfants de son parent
+ </span>
+</div>
+
+
+Résultat
+
+Exemple avec une liste
+
+CSS
+
+li li {
+ list-style-type : disc;
+}
+
+li:only-child {
+ color: #6699ff;
+ font-style: italic;
+ list-style-type: square;
+}
+
+HTML
+
+<ol>
+ <li>Premier
+ <ul>
+ <li>Ceci est l'unique élément enfant</li>
+ </ul>
+ </li>
+ <li>Deuxième
+ <ul>
+ <li>Cette liste a deux éléments</li>
+ <li>Cette liste a deux éléments</li>
+ </ul>
+ </li>
+ <li>Troisième
+ <ul>
+ <li>Cette liste a trois éléments</li>
+ <li>Cette liste a trois éléments</li>
+ <li>Cette liste a trois éléments</li>
+ </ul>
+ </li>
+</ol>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#only-child-pseudo', ':only-child')}}
+ {{Spec2('CSS4 Selectors')}}
+ Il n'est plus nécessaire qu'un élément ait un parent pour être ciblé.
+
+
+
+{{SpecName('CSS3 Selectors', '#only-child-pseudo', ':only-child')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_only-of-type/index.html b/files/fr/web/css/_colon_only-of-type/index.html
deleted file mode 100644
index 4c1042a821..0000000000
--- a/files/fr/web/css/_colon_only-of-type/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: ':only-of-type'
-slug: 'Web/CSS/:only-of-type'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:only-of-type'
----
-:only-of-type CSS permet de cibler un élément qui ne possède aucun nœud frère du même type pour un même élément parent (par exemple, sélectionner le seul élément {{HTMLElement("em")}} d'un {{HTMLElement("dd")}})./* Cible un élément <p> si celui-ci est le */
-/* seul paragraphe de son élément parent */
-p:only-of-type {
- background-color: lime;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-li li {
- list-style-type : disc;
-}
-
-li:only-of-type {
- color: #6699ff;
- font-style: italic;
- list-style-type: square;
-}
-
-HTML
-
-<ol>
- <li>Premier
- <ul>
- <li>Ceci est l'unique li</li>
- </ul>
- </li>
- <li>Deuxième
- <ul>
- <li>Cette liste a deux éléments</li>
- <li>Cette liste a deux éléments</li>
- </ul>
- </li>
- <li>Troisième
- <ul>
- <li>Cette liste a trois éléments</li>
- <li>Cette liste a trois éléments</li>
- <li>Cette liste a trois éléments</li>
- </ul>
- </li>
-</ol>
-<ol>
- <li>Une seule liste imbriquée
- <ul>Avec
- <li>Un seul item</li>
- </ul>
- </li>
-</ol>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#only-of-type-pseudo', ':only-of-type')}}
- {{Spec2('CSS4 Selectors')}}
- L'élément ciblé ne doit pas nécessairement avoir un élément parent.
-
-
-
-{{SpecName('CSS3 Selectors', '#only-of-type-pseudo', ':only-of-type')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_only-of-type/index.md b/files/fr/web/css/_colon_only-of-type/index.md
new file mode 100644
index 0000000000..4c1042a821
--- /dev/null
+++ b/files/fr/web/css/_colon_only-of-type/index.md
@@ -0,0 +1,112 @@
+---
+title: ':only-of-type'
+slug: 'Web/CSS/:only-of-type'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:only-of-type'
+---
+:only-of-type CSS permet de cibler un élément qui ne possède aucun nœud frère du même type pour un même élément parent (par exemple, sélectionner le seul élément {{HTMLElement("em")}} d'un {{HTMLElement("dd")}})./* Cible un élément <p> si celui-ci est le */
+/* seul paragraphe de son élément parent */
+p:only-of-type {
+ background-color: lime;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+li li {
+ list-style-type : disc;
+}
+
+li:only-of-type {
+ color: #6699ff;
+ font-style: italic;
+ list-style-type: square;
+}
+
+HTML
+
+<ol>
+ <li>Premier
+ <ul>
+ <li>Ceci est l'unique li</li>
+ </ul>
+ </li>
+ <li>Deuxième
+ <ul>
+ <li>Cette liste a deux éléments</li>
+ <li>Cette liste a deux éléments</li>
+ </ul>
+ </li>
+ <li>Troisième
+ <ul>
+ <li>Cette liste a trois éléments</li>
+ <li>Cette liste a trois éléments</li>
+ <li>Cette liste a trois éléments</li>
+ </ul>
+ </li>
+</ol>
+<ol>
+ <li>Une seule liste imbriquée
+ <ul>Avec
+ <li>Un seul item</li>
+ </ul>
+ </li>
+</ol>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#only-of-type-pseudo', ':only-of-type')}}
+ {{Spec2('CSS4 Selectors')}}
+ L'élément ciblé ne doit pas nécessairement avoir un élément parent.
+
+
+
+{{SpecName('CSS3 Selectors', '#only-of-type-pseudo', ':only-of-type')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_optional/index.html b/files/fr/web/css/_colon_optional/index.html
deleted file mode 100644
index f37ff60318..0000000000
--- a/files/fr/web/css/_colon_optional/index.html
+++ /dev/null
@@ -1,114 +0,0 @@
----
-title: ':optional'
-slug: 'Web/CSS/:optional'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:optional'
----
-:optional permet de cibler les éléments {{HTMLElement("input")}} ou {{HTMLElement("textarea")}} pour lesquels l'attribut {{htmlattrxref("required","input")}} n'est pas activé. Cela permet ainsi d'indiquer et de mettre en forme les champs facultatifs d'un formulaire./* Cible les élméents <input> qui sont optionnels */
-/* c'est-à-dire qui n'ont pas d'attribut required */
-input:optional {
- border: 1px dashed black;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input {
- border-width: 3px;
-}
-input:optional {
- border-color: #008000;
-}
-input:required {
- border-color: #800000;
-}
-
-HTML
-
-<form>
- <label for="url-input">Tapez une URL :</label>
- <input type="url" id="url-input">
- <br>
- <br>
- <label for="email-input">Tapez une adresse électronique :</label>
- <input type="email" id="email-input" required>
-</form>
-
-
-Résultat
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-optional', ':optional')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-optional', ':optional')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et aux contraintes de validation.
-
-
- {{SpecName('CSS4 Selectors', '#opt-pseudos', ':optional')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS3 Basic UI', '#pseudo-required-value', ':optional')}}
- {{Spec2('CSS3 Basic UI')}}
- Définition de la pseudo-classe mais sans la sémantique associée.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_optional/index.md b/files/fr/web/css/_colon_optional/index.md
new file mode 100644
index 0000000000..f37ff60318
--- /dev/null
+++ b/files/fr/web/css/_colon_optional/index.md
@@ -0,0 +1,114 @@
+---
+title: ':optional'
+slug: 'Web/CSS/:optional'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:optional'
+---
+:optional permet de cibler les éléments {{HTMLElement("input")}} ou {{HTMLElement("textarea")}} pour lesquels l'attribut {{htmlattrxref("required","input")}} n'est pas activé. Cela permet ainsi d'indiquer et de mettre en forme les champs facultatifs d'un formulaire./* Cible les élméents <input> qui sont optionnels */
+/* c'est-à-dire qui n'ont pas d'attribut required */
+input:optional {
+ border: 1px dashed black;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input {
+ border-width: 3px;
+}
+input:optional {
+ border-color: #008000;
+}
+input:required {
+ border-color: #800000;
+}
+
+HTML
+
+<form>
+ <label for="url-input">Tapez une URL :</label>
+ <input type="url" id="url-input">
+ <br>
+ <br>
+ <label for="email-input">Tapez une adresse électronique :</label>
+ <input type="email" id="email-input" required>
+</form>
+
+
+Résultat
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-optional', ':optional')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-optional', ':optional')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et aux contraintes de validation.
+
+
+ {{SpecName('CSS4 Selectors', '#opt-pseudos', ':optional')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS3 Basic UI', '#pseudo-required-value', ':optional')}}
+ {{Spec2('CSS3 Basic UI')}}
+ Définition de la pseudo-classe mais sans la sémantique associée.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_out-of-range/index.html b/files/fr/web/css/_colon_out-of-range/index.html
deleted file mode 100644
index 44486cf80d..0000000000
--- a/files/fr/web/css/_colon_out-of-range/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: ':out-of-range'
-slug: Web/CSS/:out-of-range
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:out-of-range
----
-:out-of-range cible un élément {{HTMLElement("input")}} lorsque la valeur de son attribut value est en dehors de l'intervalle autorisé par les attributs {{htmlattrxref("min", "input")}} et {{htmlattrxref("max","input")}} attributes. Ceci permet d'informer l'utilisateur que la valeur actuellement renseignée dans l'élément est hors des limites acceptables./* Cible n'importe quel élément <input> qui possède un */
-/* attribut range et que la valeur associée est en */
-/* dehors de cet intervalle */
-input:out-of-range {
- background-color: rgba(255, 0, 0, 0.25);
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<form action="" id="form1">
- <ul>Les valeurs entre 1 et 10 sont autorisées.
- <li>
- <input id="valeur1" name="valeur1" type="number" placeholder="1 à 10" min="1" max="10" value="12">
- <label for="valeur1">Votre valeur est </label>
- </li>
- </ul>
-</form>
-
-CSS
-
-li {
- list-style: none;
- margin-bottom: 1em;
-}
-
-input {
- border: 1px solid black;
-}
-
-input:in-range {
- background-color: rgba(0, 255, 0, 0.25);
-}
-
-input:out-of-range {
- background-color: rgba(255, 0, 0, 0.25);
- border: 2px solid red;
-}
-
-input:in-range + label::after {
- content:' OK';
-}
-
-input:out-of-range + label::after {
- content:'hors des limites !';
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-out-of-range', ':out-of-range')}}
- {{Spec2('HTML WHATWG')}}
- Définition de la correspondance entre
- :out-of-range et les éléments HTML.
-
-
-{{SpecName('CSS4 Selectors', '#out-of-range-pseudo', ':out-of-range')}}
- {{Spec2('CSS4 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_out-of-range/index.md b/files/fr/web/css/_colon_out-of-range/index.md
new file mode 100644
index 0000000000..44486cf80d
--- /dev/null
+++ b/files/fr/web/css/_colon_out-of-range/index.md
@@ -0,0 +1,107 @@
+---
+title: ':out-of-range'
+slug: Web/CSS/:out-of-range
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: Web/CSS/:out-of-range
+---
+:out-of-range cible un élément {{HTMLElement("input")}} lorsque la valeur de son attribut value est en dehors de l'intervalle autorisé par les attributs {{htmlattrxref("min", "input")}} et {{htmlattrxref("max","input")}} attributes. Ceci permet d'informer l'utilisateur que la valeur actuellement renseignée dans l'élément est hors des limites acceptables./* Cible n'importe quel élément <input> qui possède un */
+/* attribut range et que la valeur associée est en */
+/* dehors de cet intervalle */
+input:out-of-range {
+ background-color: rgba(255, 0, 0, 0.25);
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<form action="" id="form1">
+ <ul>Les valeurs entre 1 et 10 sont autorisées.
+ <li>
+ <input id="valeur1" name="valeur1" type="number" placeholder="1 à 10" min="1" max="10" value="12">
+ <label for="valeur1">Votre valeur est </label>
+ </li>
+ </ul>
+</form>
+
+CSS
+
+li {
+ list-style: none;
+ margin-bottom: 1em;
+}
+
+input {
+ border: 1px solid black;
+}
+
+input:in-range {
+ background-color: rgba(0, 255, 0, 0.25);
+}
+
+input:out-of-range {
+ background-color: rgba(255, 0, 0, 0.25);
+ border: 2px solid red;
+}
+
+input:in-range + label::after {
+ content:' OK';
+}
+
+input:out-of-range + label::after {
+ content:'hors des limites !';
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-out-of-range', ':out-of-range')}}
+ {{Spec2('HTML WHATWG')}}
+ Définition de la correspondance entre
+ :out-of-range et les éléments HTML.
+
+
+{{SpecName('CSS4 Selectors', '#out-of-range-pseudo', ':out-of-range')}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_past/index.html b/files/fr/web/css/_colon_past/index.html
deleted file mode 100644
index cc8a1a3cae..0000000000
--- a/files/fr/web/css/_colon_past/index.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: ':past'
-slug: 'Web/CSS/:past'
-browser-compat: css.selectors.past
-translation_of: Web/CSS/:past
----
-:past est une pseudo-classe agissant dans la dimension temporelle qui cible n'importe quel élément apparaissant entièrement avant un élément correspondant à {{cssxref(":current")}}. Ce sélecteur peut par exemple servir dans le cas d'une vidéo ayant des sous-titres affichés à l'aide du format WebVTT.:past(p, span) {
- display: none;
-}
-
-Syntaxe
-
-Exemples
-
-CSS
-
-:past(p, span) {
- display: none;
-}
-
-HTML
-
-<video controls preload="metadata">
- <source src="video.mp4" type="video/mp4" />
- <source src="video.webm" type="video/webm" />
- <track label="Français" kind="subtitles" srclang="fr" src="subtitles.vtt" default>
-</video>
-
-WebVTT
-
-FICHIER WEBVTT
-
-1
-00:00:03.500 --> 00:00:05.000
-Voici le premier sous-titre
-
-2
-00:00:06.000 --> 00:00:09.000
-Voici le second sous-titre
-
-3
-00:00:11.000 --> 00:00:19.000
-Voici le troisième sous-titre
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_past/index.md b/files/fr/web/css/_colon_past/index.md
new file mode 100644
index 0000000000..cc8a1a3cae
--- /dev/null
+++ b/files/fr/web/css/_colon_past/index.md
@@ -0,0 +1,66 @@
+---
+title: ':past'
+slug: 'Web/CSS/:past'
+browser-compat: css.selectors.past
+translation_of: Web/CSS/:past
+---
+:past est une pseudo-classe agissant dans la dimension temporelle qui cible n'importe quel élément apparaissant entièrement avant un élément correspondant à {{cssxref(":current")}}. Ce sélecteur peut par exemple servir dans le cas d'une vidéo ayant des sous-titres affichés à l'aide du format WebVTT.:past(p, span) {
+ display: none;
+}
+
+Syntaxe
+
+Exemples
+
+CSS
+
+:past(p, span) {
+ display: none;
+}
+
+HTML
+
+<video controls preload="metadata">
+ <source src="video.mp4" type="video/mp4" />
+ <source src="video.webm" type="video/webm" />
+ <track label="Français" kind="subtitles" srclang="fr" src="subtitles.vtt" default>
+</video>
+
+WebVTT
+
+FICHIER WEBVTT
+
+1
+00:00:03.500 --> 00:00:05.000
+Voici le premier sous-titre
+
+2
+00:00:06.000 --> 00:00:09.000
+Voici le second sous-titre
+
+3
+00:00:11.000 --> 00:00:19.000
+Voici le troisième sous-titre
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_placeholder-shown/index.html b/files/fr/web/css/_colon_placeholder-shown/index.html
deleted file mode 100644
index 93f571be8a..0000000000
--- a/files/fr/web/css/_colon_placeholder-shown/index.html
+++ /dev/null
@@ -1,190 +0,0 @@
----
-title: ':placeholder-shown'
-slug: 'Web/CSS/:placeholder-shown'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:placeholder-shown'
----
-:placeholder-shown permet de représenter n'importe quel élément {{htmlElement("input")}} ou {{htmlElement("textarea")}} affichant un texte de substitution./* Cible tout élément <input> ou <textarea> avec un */
-/* attribut placeholder actuellement affiché */
-:placeholder-shown {
- border: 2px solid silver;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-Exemple simple
-
-CSS
-
-
-
-input {
- border: 2px solid black;
- padding: 3px;
-}
-
-:placeholder-shown {
- border-color: silver;
-}
-
-HTML
-
-<input placeholder="Saisir quelque chose ici">
-
-Résultat
-
-Dépassement du texte
-
-HTML
-
-<input placeholder="Veuillez saisir quelque chose dans ce champ s'il vous plaît !">
-
-CSS
-
-
-
-
-input:placeholder-shown {
- text-overflow: ellipsis;
-}
-
-Résultat
-
-Texte coloré
-
-HTML
-
-<input placeholder="Saisir quelque chose ici">
-
-CSS
-
-
-
-input:placeholder-shown {
- color: red;
- font-style: italic;
-}
-
-
-Résultat
-
-Champ de saisie personnalisé
-
-HTML
-
-<form id="test">
- <p>
- <label for="name">Enter Student Name:</label>
- <input id="name" placeholder="Student Name"/>
- </p>
- <p>
- <label for="branch">Enter Student Branch:</label>
- <input id="branch" placeholder="Student Branch"/>
- </p>
- <p>
- <label for="sid">Enter Student ID:</label>
- <input type="number" pattern="[0-9]{8}" title="8 digit ID" id="sid" class="studentid" placeholder="8 digit id"/>
- </p>
- <input type="submit"/>
-</form>
-
-CSS
-
-
-
-input {
- background-color: #E8E8E8;
- color: black;
-}
-
-input.studentid:placeholder-shown {
- background-color: yellow;
- color: red;
- font-style: italic;
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#placeholder", ":placeholder-shown")}}
- {{Spec2("CSS4 Selectors")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_placeholder-shown/index.md b/files/fr/web/css/_colon_placeholder-shown/index.md
new file mode 100644
index 0000000000..93f571be8a
--- /dev/null
+++ b/files/fr/web/css/_colon_placeholder-shown/index.md
@@ -0,0 +1,190 @@
+---
+title: ':placeholder-shown'
+slug: 'Web/CSS/:placeholder-shown'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:placeholder-shown'
+---
+:placeholder-shown permet de représenter n'importe quel élément {{htmlElement("input")}} ou {{htmlElement("textarea")}} affichant un texte de substitution./* Cible tout élément <input> ou <textarea> avec un */
+/* attribut placeholder actuellement affiché */
+:placeholder-shown {
+ border: 2px solid silver;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+Exemple simple
+
+CSS
+
+
+
+input {
+ border: 2px solid black;
+ padding: 3px;
+}
+
+:placeholder-shown {
+ border-color: silver;
+}
+
+HTML
+
+<input placeholder="Saisir quelque chose ici">
+
+Résultat
+
+Dépassement du texte
+
+HTML
+
+<input placeholder="Veuillez saisir quelque chose dans ce champ s'il vous plaît !">
+
+CSS
+
+
+
+
+input:placeholder-shown {
+ text-overflow: ellipsis;
+}
+
+Résultat
+
+Texte coloré
+
+HTML
+
+<input placeholder="Saisir quelque chose ici">
+
+CSS
+
+
+
+input:placeholder-shown {
+ color: red;
+ font-style: italic;
+}
+
+
+Résultat
+
+Champ de saisie personnalisé
+
+HTML
+
+<form id="test">
+ <p>
+ <label for="name">Enter Student Name:</label>
+ <input id="name" placeholder="Student Name"/>
+ </p>
+ <p>
+ <label for="branch">Enter Student Branch:</label>
+ <input id="branch" placeholder="Student Branch"/>
+ </p>
+ <p>
+ <label for="sid">Enter Student ID:</label>
+ <input type="number" pattern="[0-9]{8}" title="8 digit ID" id="sid" class="studentid" placeholder="8 digit id"/>
+ </p>
+ <input type="submit"/>
+</form>
+
+CSS
+
+
+
+input {
+ background-color: #E8E8E8;
+ color: black;
+}
+
+input.studentid:placeholder-shown {
+ background-color: yellow;
+ color: red;
+ font-style: italic;
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#placeholder", ":placeholder-shown")}}
+ {{Spec2("CSS4 Selectors")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_read-only/index.html b/files/fr/web/css/_colon_read-only/index.html
deleted file mode 100644
index 41a0a4a663..0000000000
--- a/files/fr/web/css/_colon_read-only/index.html
+++ /dev/null
@@ -1,100 +0,0 @@
----
-title: ':read-only'
-slug: 'Web/CSS/:read-only'
-tags:
- - CSS
- - Pseudo-classe
- - Refrence
-translation_of: 'Web/CSS/:read-only'
----
-:read-only permet de cibler un élément que l'utilisateur ne peut pas modifier (l'élément est en lecture seule)./* Cible n'importe quel élément <input> */
-/* en lecture seule */
-
-/* Firefox utilise un préfixe */
-input:-moz-read-only {
- background-color: #ccc;
-}
-
-/* Blink/WebKit/Edge n'ont pas de préfixe */
-input:read-only {
- background-color: #ccc;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input { min-width: 25em; }
-input:-moz-read-only { background: cyan; }
-input:read-only { background: cyan; }
-
-p:-moz-read-only { background: lightgray; }
-p:read-only { background: lightgray; }
-p[contenteditable="true"] { color: blue; }
-
-
-HTML
-
-<input type="text" value="Un champ en lecture seule" readonly />
-<p contenteditable="true">
- Essayez un peu d'éditer ce paragraphe.
-</p>
-<p>
- Bonne chance pour celui-là !
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-read-only', ':read-only')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-read-only', ':read-only')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et aux contraintes de validation.
-
-
-
-{{SpecName('CSS4 Selectors', '#rw-pseudos', ':read-only')}}
- {{Spec2('CSS4 Selectors')}}
- Définition de la pseudo-classe mais pas de la sémantique associée.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_read-only/index.md b/files/fr/web/css/_colon_read-only/index.md
new file mode 100644
index 0000000000..41a0a4a663
--- /dev/null
+++ b/files/fr/web/css/_colon_read-only/index.md
@@ -0,0 +1,100 @@
+---
+title: ':read-only'
+slug: 'Web/CSS/:read-only'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Refrence
+translation_of: 'Web/CSS/:read-only'
+---
+:read-only permet de cibler un élément que l'utilisateur ne peut pas modifier (l'élément est en lecture seule)./* Cible n'importe quel élément <input> */
+/* en lecture seule */
+
+/* Firefox utilise un préfixe */
+input:-moz-read-only {
+ background-color: #ccc;
+}
+
+/* Blink/WebKit/Edge n'ont pas de préfixe */
+input:read-only {
+ background-color: #ccc;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input { min-width: 25em; }
+input:-moz-read-only { background: cyan; }
+input:read-only { background: cyan; }
+
+p:-moz-read-only { background: lightgray; }
+p:read-only { background: lightgray; }
+p[contenteditable="true"] { color: blue; }
+
+
+HTML
+
+<input type="text" value="Un champ en lecture seule" readonly />
+<p contenteditable="true">
+ Essayez un peu d'éditer ce paragraphe.
+</p>
+<p>
+ Bonne chance pour celui-là !
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-read-only', ':read-only')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-read-only', ':read-only')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et aux contraintes de validation.
+
+
+
+{{SpecName('CSS4 Selectors', '#rw-pseudos', ':read-only')}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition de la pseudo-classe mais pas de la sémantique associée.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_read-write/index.html b/files/fr/web/css/_colon_read-write/index.html
deleted file mode 100644
index 9dc879a98d..0000000000
--- a/files/fr/web/css/_colon_read-write/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: ':read-write'
-slug: 'Web/CSS/:read-write'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:read-write'
----
-:read-write permet de cibler un élément lorsque celui-ci peut être édité par l'utilisateur (par exemple les champs texte d'un formulaire ou les éléments {{HTMLElement("textarea")}})./* Cible tout élément éditable */
-/* Pris en charge dans Firefox avec un préfixe */
-input:-moz-read-write {
- background-color: #ccc;
-}
-
-/* Pris en charge sans préfixe pour Blink/WebKit/Edge */
-input:read-write {
- background-color: #ccc;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input { min-width: 25em; }
-input:-moz-read-write { background: cyan; }
-input:read-write { background: cyan; }
-
-p:-moz-read-write { background: lightgray; }
-p:read-write { background: lightgray; }
-p[contenteditable="true"] { color: blue; }
-
-
-HTML
-
-<input type="text" value="Un champ en lecture seule"/>
-<p contenteditable>Essayez un peu d'éditer ce paragraphe.</p>
-<p>Bonne chance pour celui-là !</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-read-write', ':read-write')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-read-write', ':read-write')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et aux contraintes de validation.
-
-
-
-{{SpecName('CSS4 Selectors', '#rw-pseudos', ':read-write')}}
- {{Spec2('CSS4 Selectors')}}
- Définition de la pseudo-classe mais pas de la sémantique associée.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_read-write/index.md b/files/fr/web/css/_colon_read-write/index.md
new file mode 100644
index 0000000000..9dc879a98d
--- /dev/null
+++ b/files/fr/web/css/_colon_read-write/index.md
@@ -0,0 +1,94 @@
+---
+title: ':read-write'
+slug: 'Web/CSS/:read-write'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:read-write'
+---
+:read-write permet de cibler un élément lorsque celui-ci peut être édité par l'utilisateur (par exemple les champs texte d'un formulaire ou les éléments {{HTMLElement("textarea")}})./* Cible tout élément éditable */
+/* Pris en charge dans Firefox avec un préfixe */
+input:-moz-read-write {
+ background-color: #ccc;
+}
+
+/* Pris en charge sans préfixe pour Blink/WebKit/Edge */
+input:read-write {
+ background-color: #ccc;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input { min-width: 25em; }
+input:-moz-read-write { background: cyan; }
+input:read-write { background: cyan; }
+
+p:-moz-read-write { background: lightgray; }
+p:read-write { background: lightgray; }
+p[contenteditable="true"] { color: blue; }
+
+
+HTML
+
+<input type="text" value="Un champ en lecture seule"/>
+<p contenteditable>Essayez un peu d'éditer ce paragraphe.</p>
+<p>Bonne chance pour celui-là !</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-read-write', ':read-write')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-read-write', ':read-write')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et aux contraintes de validation.
+
+
+
+{{SpecName('CSS4 Selectors', '#rw-pseudos', ':read-write')}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition de la pseudo-classe mais pas de la sémantique associée.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_required/index.html b/files/fr/web/css/_colon_required/index.html
deleted file mode 100644
index 2768e83a6f..0000000000
--- a/files/fr/web/css/_colon_required/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: ':required'
-slug: 'Web/CSS/:required'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:required'
----
-:required permet de cibler un élément {{HTMLElement("input")}} pour lequel l'attribut {{htmlattrxref("required", "input")}} est activé. Cela permet de mettre en forme les éléments obligatoires pour remplir correctement un formulaire./* Cible les éléments <input> qui ont */
-/* l'attribut required */
-input:required {
- border: 1px dashed red;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input {
- border-width: 3px;
-}
-input:optional {
- border-color: #008000;
-}
-input:required {
- border-color: #800000;
-}
-
-HTML
-
-<form>
- <label for="url-input">Tapez une URL :</label>
- <input type="url" id="url-input">
- <br>
- <br>
- <label for="email-input">Tapez une adresse courriel :</label>
- <input type="email" id="email-input" required>
-</form>
-
-
-Résultat
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-required', ':required')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-required', ':required')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et aux contraintes de validation.
-
-
- {{SpecName('CSS4 Selectors', '#opt-pseudos', ':required')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS3 Basic UI', '#pseudo-required-value', ':required')}}
- {{Spec2('CSS3 Basic UI')}}
- Définition de la pseudo-classe mais pas de la sémantique associée.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_required/index.md b/files/fr/web/css/_colon_required/index.md
new file mode 100644
index 0000000000..2768e83a6f
--- /dev/null
+++ b/files/fr/web/css/_colon_required/index.md
@@ -0,0 +1,118 @@
+---
+title: ':required'
+slug: 'Web/CSS/:required'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:required'
+---
+:required permet de cibler un élément {{HTMLElement("input")}} pour lequel l'attribut {{htmlattrxref("required", "input")}} est activé. Cela permet de mettre en forme les éléments obligatoires pour remplir correctement un formulaire./* Cible les éléments <input> qui ont */
+/* l'attribut required */
+input:required {
+ border: 1px dashed red;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input {
+ border-width: 3px;
+}
+input:optional {
+ border-color: #008000;
+}
+input:required {
+ border-color: #800000;
+}
+
+HTML
+
+<form>
+ <label for="url-input">Tapez une URL :</label>
+ <input type="url" id="url-input">
+ <br>
+ <br>
+ <label for="email-input">Tapez une adresse courriel :</label>
+ <input type="email" id="email-input" required>
+</form>
+
+
+Résultat
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-required', ':required')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-required', ':required')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et aux contraintes de validation.
+
+
+ {{SpecName('CSS4 Selectors', '#opt-pseudos', ':required')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS3 Basic UI', '#pseudo-required-value', ':required')}}
+ {{Spec2('CSS3 Basic UI')}}
+ Définition de la pseudo-classe mais pas de la sémantique associée.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_right/index.html b/files/fr/web/css/_colon_right/index.html
deleted file mode 100644
index ecaaba1862..0000000000
--- a/files/fr/web/css/_colon_right/index.html
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: ':right'
-slug: 'Web/CSS/:right'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:right'
----
-:right, liée à la règle {{cssxref("@page")}}, correspond aux pages de droite pour un média paginé. Ceci permet de mettre en forme les pages de droite./* Sélectionne le contenu des pages droites */
-/* lorsqu'on imprime le document */
-@page :right {
- margin: 2in 3in;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-@page :right {
- margin: 2cm 3cm;
-}
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Paged Media', '#left-right-first', ':right')}}
- {{Spec2('CSS3 Paged Media')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS2.1', 'page.html#page-selectors', ':right')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_right/index.md b/files/fr/web/css/_colon_right/index.md
new file mode 100644
index 0000000000..ecaaba1862
--- /dev/null
+++ b/files/fr/web/css/_colon_right/index.md
@@ -0,0 +1,71 @@
+---
+title: ':right'
+slug: 'Web/CSS/:right'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:right'
+---
+:right, liée à la règle {{cssxref("@page")}}, correspond aux pages de droite pour un média paginé. Ceci permet de mettre en forme les pages de droite./* Sélectionne le contenu des pages droites */
+/* lorsqu'on imprime le document */
+@page :right {
+ margin: 2in 3in;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+@page :right {
+ margin: 2cm 3cm;
+}
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Paged Media', '#left-right-first', ':right')}}
+ {{Spec2('CSS3 Paged Media')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS2.1', 'page.html#page-selectors', ':right')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_root/index.html b/files/fr/web/css/_colon_root/index.html
deleted file mode 100644
index c570e7fd8e..0000000000
--- a/files/fr/web/css/_colon_root/index.html
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: ':root'
-slug: 'Web/CSS/:root'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:root'
----
-:root permet de cibler la racine de l'arbre représentant le document. Pour un document HTML, :root ciblera donc l'élément {{HTMLElement("html")}} et aura le même comportement que le sélecteur html mais sa spécificité sera plus forte./* Sélectionne l'élément racine du document */
-/* Pour un document HTML, c'est <html> */
-:root {
- background: yellow;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-:root peut être utile lorsqu'on déclare des propriétés CSS personnalisées globales ::root {
- --main-color: hotpink;
- --pane-padding: 5px 42px;
-}
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#root-pseudo', ':root')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS3 Selectors', '#root-pseudo', ':root')}}
- {{Spec2('CSS3 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-:root permet de cibler la racine de l'arbre représentant le document. Pour un document HTML, :root ciblera donc l'élément {{HTMLElement("html")}} et aura le même comportement que le sélecteur html mais sa spécificité sera plus forte./* Sélectionne l'élément racine du document */
+/* Pour un document HTML, c'est <html> */
+:root {
+ background: yellow;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+:root peut être utile lorsqu'on déclare des propriétés CSS personnalisées globales ::root {
+ --main-color: hotpink;
+ --pane-padding: 5px 42px;
+}
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#root-pseudo', ':root')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS3 Selectors', '#root-pseudo', ':root')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+:scope correspond aux éléments qui sont un point de référence pour faire correspondre les sélecteurs./* Sélectionne un élément dans la portée */
-:scope {
- background-color: lime;
-}
-
-:scope est identique à {{cssxref(":root")}} car il n'existe pas de moyen pour identifier un élément dont la portée est restreinte. Lorsqu'elle est utilisée à travers des méthodes telles que {{domxref("Element.querySelector", "querySelector()")}}, {{domxref("Element.querySelectorAll", "querySelectorAll()")}}, {{domxref("Element.matches", "matches()")}} ou {{domxref("Element.closest()")}}, :scope correspond à l'élément sur lequel la méthode est appelée.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-:scope via la méthode {{domxref("Element.matches()")}}.JavaScript
-
-let paragraphe = document.getElementById("para");
-let output = document.getElementById("output");
-
-if (paragraphe.matches(":scope")) {
- output.innerText = "Oui l'élément est dans sa propre portée, comme attendu !";
-}
-
-HTML
-
-<p id="para">
- Voici un paragraphe, pas vraiment intéressant mais bon.
-</p>
-<p id="output"></p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Selectors', '#the-scope-pseudo', ':scope')}}
- {{Spec2('CSS4 Selectors')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_scope/index.md b/files/fr/web/css/_colon_scope/index.md
new file mode 100644
index 0000000000..3b260fd2a9
--- /dev/null
+++ b/files/fr/web/css/_colon_scope/index.md
@@ -0,0 +1,82 @@
+---
+title: ':scope'
+slug: 'Web/CSS/:scope'
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:scope'
+---
+:scope correspond aux éléments qui sont un point de référence pour faire correspondre les sélecteurs./* Sélectionne un élément dans la portée */
+:scope {
+ background-color: lime;
+}
+
+:scope est identique à {{cssxref(":root")}} car il n'existe pas de moyen pour identifier un élément dont la portée est restreinte. Lorsqu'elle est utilisée à travers des méthodes telles que {{domxref("Element.querySelector", "querySelector()")}}, {{domxref("Element.querySelectorAll", "querySelectorAll()")}}, {{domxref("Element.matches", "matches()")}} ou {{domxref("Element.closest()")}}, :scope correspond à l'élément sur lequel la méthode est appelée.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+:scope via la méthode {{domxref("Element.matches()")}}.JavaScript
+
+let paragraphe = document.getElementById("para");
+let output = document.getElementById("output");
+
+if (paragraphe.matches(":scope")) {
+ output.innerText = "Oui l'élément est dans sa propre portée, comme attendu !";
+}
+
+HTML
+
+<p id="para">
+ Voici un paragraphe, pas vraiment intéressant mais bon.
+</p>
+<p id="output"></p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Selectors', '#the-scope-pseudo', ':scope')}}
+ {{Spec2('CSS4 Selectors')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_target-within/index.html b/files/fr/web/css/_colon_target-within/index.html
deleted file mode 100644
index 6da19d0862..0000000000
--- a/files/fr/web/css/_colon_target-within/index.html
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: ':target-within'
-slug: Web/CSS/:target-within
-browser-compat: css.selectors.target-within
-translation_of: 'Web/CSS/:target-within'
----
-:target-within représente un élément ciblé ou qui contient un élément ciblé. Un élément ciblé est un élément unique disposant d'un id correspondant au fragment de l'URL. En d'autres termes, il représente un élément qui correspond lui-même à la pseudo-classe {{CSSxRef(":target")}} ou qui a un descendant correspondant à :target (cela inclut les descendants des arbres fantômes)./* Sélectionne une <div> lorsqu'un de ses descendants est une cible */
-div:target-within {
- background: cyan;
-}
-
-
-Syntaxe
-
-Exemples
-
-Mise en avant d'un article
-
-:target-within peut être utilisée pour mettre en avant un article si quoi que ce soit dans son contenu a été mis en lien. La pseudo-classe :target est aussi utilisée pour montrer l'élément qui a été ciblé.HTML
-
-<h3>Table des matières</h3>
-<ol>
- <li><a href="#p1">Aller au premier paragraphe !</a></li>
- <li><a href="#p2">Aller au second paragraphe !</a></li>
-</ol>
-
-<article>
- <h3>Mon bel article</h3>
- <p id="p1">Vous pouvez cibler <i>ce paragraphe</i> en utilisant un fragment d'URL. Cliquez sur le lien ci-dessus pour essayer !</p>
- <p id="p2">Ceci est <i>un autre paragraphe</i>, également accessible depuis les liens ci-dessus. N'est-ce pas savoureux ?</p>
-</article>
-
-
-CSS
-
-article:target-within {
- background-color: gold;
-}
-
-/* Ajout d'un pseudo élément à l'intérieur de l'élément cible */
-p:target::before {
- font: 70% sans-serif;
- content: "►";
- color: limegreen;
- margin-right: .25em;
-}
-
-/* Style des éléments en italique à l'intérieur de l'élément cible */
-p:target i {
- color: red;
-}
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_target-within/index.md b/files/fr/web/css/_colon_target-within/index.md
new file mode 100644
index 0000000000..6da19d0862
--- /dev/null
+++ b/files/fr/web/css/_colon_target-within/index.md
@@ -0,0 +1,77 @@
+---
+title: ':target-within'
+slug: Web/CSS/:target-within
+browser-compat: css.selectors.target-within
+translation_of: 'Web/CSS/:target-within'
+---
+:target-within représente un élément ciblé ou qui contient un élément ciblé. Un élément ciblé est un élément unique disposant d'un id correspondant au fragment de l'URL. En d'autres termes, il représente un élément qui correspond lui-même à la pseudo-classe {{CSSxRef(":target")}} ou qui a un descendant correspondant à :target (cela inclut les descendants des arbres fantômes)./* Sélectionne une <div> lorsqu'un de ses descendants est une cible */
+div:target-within {
+ background: cyan;
+}
+
+
+Syntaxe
+
+Exemples
+
+Mise en avant d'un article
+
+:target-within peut être utilisée pour mettre en avant un article si quoi que ce soit dans son contenu a été mis en lien. La pseudo-classe :target est aussi utilisée pour montrer l'élément qui a été ciblé.HTML
+
+<h3>Table des matières</h3>
+<ol>
+ <li><a href="#p1">Aller au premier paragraphe !</a></li>
+ <li><a href="#p2">Aller au second paragraphe !</a></li>
+</ol>
+
+<article>
+ <h3>Mon bel article</h3>
+ <p id="p1">Vous pouvez cibler <i>ce paragraphe</i> en utilisant un fragment d'URL. Cliquez sur le lien ci-dessus pour essayer !</p>
+ <p id="p2">Ceci est <i>un autre paragraphe</i>, également accessible depuis les liens ci-dessus. N'est-ce pas savoureux ?</p>
+</article>
+
+
+CSS
+
+article:target-within {
+ background-color: gold;
+}
+
+/* Ajout d'un pseudo élément à l'intérieur de l'élément cible */
+p:target::before {
+ font: 70% sans-serif;
+ content: "►";
+ color: limegreen;
+ margin-right: .25em;
+}
+
+/* Style des éléments en italique à l'intérieur de l'élément cible */
+p:target i {
+ color: red;
+}
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_target/index.html b/files/fr/web/css/_colon_target/index.html
deleted file mode 100644
index 183349cc73..0000000000
--- a/files/fr/web/css/_colon_target/index.html
+++ /dev/null
@@ -1,240 +0,0 @@
----
-title: ':target'
-slug: 'Web/CSS/:target'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:target'
----
-:target permet de cibler l'unique élément (s'il existe) dont l'attribut {{htmlattrxref("id")}} correspond au fragment d'identifiant de l'URI du document./* Cible un élément dont l'identifiant */
-/* correspond au fragment de l'URL courante */
-:target {
- border: 2px solid black;
-}
-
-section2 :http://exemple.com/chemin/document.html#section2
-
-:target avec l'URL précédente :<section id="section2">Exemple</section>
-
-id a été ajouté avec HTML 4 (décembre 1997). Dans les anciennes versions de HTML, <a> était nécessairement l'élément cible. La pseudo-classe :target permet également de gérer ces cibles.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-Exemples simples
-
-/* Exemple de code pouvant être utilisé dans une feuille
- de style utilisateur. Une flèche rouge/jaune indique
- l'élément cible. */
-
-:target {
- box-shadow: 0.2em 0.2em 0.3em #888;
-}
-
-:target:before {
- font: 70% Arial,"Nimbus Sans L",sans-serif !important;
- content: "\25ba"; /* ► */
- color: red;
- background: gold;
- border: solid thin;
- padding-left: 1px;
- display: inline-block;
- margin-right: 0.13em;
- vertical-align: 20%;
-}
-
-
-Manipuler les éléments avec
-
-display: none:target s'accommode également des éléments qui ne sont pas affichés.CSS
-
-#newcomment {
- display: none;
-}
-
-#newcomment:target {
- display: block;
-}
-
-HTML
-
-<p><a href="#newcomment">Ajouter un commentaire</a></p>
-<div id="newcomment">
- <form>
- <p>Saisir un commentaire :<br />
- <textarea></textarea></p>
- </form>
-</div>
-
-
-Résultat
-
-Révéler des éléments
-
-:target peut être utile afin de révéler/masquer certains éléments invisibles.CSS
-
-div.lightbox {
- display: none;
- position: fixed;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
-}
-
-div.lightbox:target {
- display: table;
-}
-
-div.lightbox figure {
- display: table-cell;
- margin: 0;
- padding: 0;
- width: 100%;
- height: 100%;
- vertical-align: middle;
-}
-
-div.lightbox figure figcaption {
- display: block;
- margin: auto;
- padding: 8px;
- background-color: #ddbbff;
- height: 250px;
- position: relative;
- overflow: auto;
- border: 1px #000000 solid;
- border-radius: 10px;
- text-align: justify;
- font-size: 14px;
-}
-
-div.lightbox figure .closemsg {
- display: block;
- margin: auto;
- height: 0;
- overflow: visible;
- text-align: right;
- z-index: 2;
- cursor: default;
-}
-
-div.lightbox figure .closemsg, div.lightbox figure figcaption {
- width: 300px;
-}
-
-.closemsg::after {
- content: "\00D7";
- display: inline-block;
- position: relative;
- right: -20px;
- top: -10px;
- z-index: 3;
- color: #ffffff;
- border: 1px #ffffff solid;
- border-radius: 10px;
- width: 20px;
- height: 20px;
- line-height: 18px;
- text-align: center;
- margin: 0;
- background-color: #000000;
- font-weight: bold;
- cursor: pointer;
-}
-
-.closemsg::before {
- content: "";
- display: block;
- position: fixed;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
- background-color: #000000;
- opacity: 0.85;
-}
-
-HTML
-
-<p>Un texte pour l'exemple…</p>
-<p>[ <a href="#exemple1">Ouvrir l'exemple n°1</a> | <a href="#exemple2"> Ouvrir l'exemple n°2</a> ]</p>
-<p>Un autre texte pour l'exemple…</p>
-<div class="lightbox" id="exemple1">
- <figure>
- <a href="#" class="closemsg"></a>
- <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec felis enim, placerat id eleifend eu, semper vel sem. Sed interdum commodo enim venenatis pulvinar. Proin mattis lorem vitae diam scelerisque hendrerit. Fusce cursus imperdiet mauris, vitae hendrerit velit dignissim a. Suspendisse potenti. Aenean feugiat facilisis diam, in posuere sapien mattis vel. Proin molestie rutrum diam, pharetra feugiat ligula sollicitudin sed. Etiam cursus diam quis tellus aliquam gravida. Aliquam erat volutpat.<br />
- Etiam varius adipiscing mi eget imperdiet. Nulla quis vestibulum leo. Integer molestie massa ut massa commodo in blandit purus aliquam. Mauris sit amet posuere massa. Ut a eleifend augue. Proin sodales mauris nec tellus pharetra dictum.</figcaption>
- </figure>
-</div>
-
-<div class="lightbox" id="exemple2">
- <figure>
- <a href="#" class="closemsg"></a>
- <figcaption>Cras risus odio, pharetra nec ultricies et, mollis ac augue. Nunc et diam quis sapien dignissim auctor. Quisque quis neque arcu, nec gravida magna. Etiam ullamcorper augue quis orci posuere et tincidunt augue semper. Maecenas varius augue eu orci auctor bibendum tristique ligula egestas. Morbi pharetra tortor iaculis erat porta id aliquam leo cursus. Ut nec elit vel mauris dapibus lacinia eget sed odio.</figcaption>
- </figure>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("HTML WHATWG", "browsers.html#selector-target", ":target")}}
- {{Spec2("HTML WHATWG")}}
- Définition de la sémantique relative à HTML.
-
-
- {{SpecName("CSS4 Selectors", "#the-target-pseudo", ":target")}}
- {{Spec2("CSS4 Selectors")}}
- Aucune modification.
-
-
-
-{{SpecName("CSS3 Selectors", "#target-pseudo", ":target")}}
- {{Spec2("CSS3 Selectors")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_target/index.md b/files/fr/web/css/_colon_target/index.md
new file mode 100644
index 0000000000..183349cc73
--- /dev/null
+++ b/files/fr/web/css/_colon_target/index.md
@@ -0,0 +1,240 @@
+---
+title: ':target'
+slug: 'Web/CSS/:target'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:target'
+---
+:target dans les sélecteurs:target pour un système de diapositives, sur GitHub:target permet de cibler l'unique élément (s'il existe) dont l'attribut {{htmlattrxref("id")}} correspond au fragment d'identifiant de l'URI du document./* Cible un élément dont l'identifiant */
+/* correspond au fragment de l'URL courante */
+:target {
+ border: 2px solid black;
+}
+
+section2 :http://exemple.com/chemin/document.html#section2
+
+:target avec l'URL précédente :<section id="section2">Exemple</section>
+
+id a été ajouté avec HTML 4 (décembre 1997). Dans les anciennes versions de HTML, <a> était nécessairement l'élément cible. La pseudo-classe :target permet également de gérer ces cibles.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+Exemples simples
+
+/* Exemple de code pouvant être utilisé dans une feuille
+ de style utilisateur. Une flèche rouge/jaune indique
+ l'élément cible. */
+
+:target {
+ box-shadow: 0.2em 0.2em 0.3em #888;
+}
+
+:target:before {
+ font: 70% Arial,"Nimbus Sans L",sans-serif !important;
+ content: "\25ba"; /* ► */
+ color: red;
+ background: gold;
+ border: solid thin;
+ padding-left: 1px;
+ display: inline-block;
+ margin-right: 0.13em;
+ vertical-align: 20%;
+}
+
+
+Manipuler les éléments avec
+
+display: none:target s'accommode également des éléments qui ne sont pas affichés.CSS
+
+#newcomment {
+ display: none;
+}
+
+#newcomment:target {
+ display: block;
+}
+
+HTML
+
+<p><a href="#newcomment">Ajouter un commentaire</a></p>
+<div id="newcomment">
+ <form>
+ <p>Saisir un commentaire :<br />
+ <textarea></textarea></p>
+ </form>
+</div>
+
+
+Résultat
+
+Révéler des éléments
+
+:target peut être utile afin de révéler/masquer certains éléments invisibles.CSS
+
+div.lightbox {
+ display: none;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+div.lightbox:target {
+ display: table;
+}
+
+div.lightbox figure {
+ display: table-cell;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+ vertical-align: middle;
+}
+
+div.lightbox figure figcaption {
+ display: block;
+ margin: auto;
+ padding: 8px;
+ background-color: #ddbbff;
+ height: 250px;
+ position: relative;
+ overflow: auto;
+ border: 1px #000000 solid;
+ border-radius: 10px;
+ text-align: justify;
+ font-size: 14px;
+}
+
+div.lightbox figure .closemsg {
+ display: block;
+ margin: auto;
+ height: 0;
+ overflow: visible;
+ text-align: right;
+ z-index: 2;
+ cursor: default;
+}
+
+div.lightbox figure .closemsg, div.lightbox figure figcaption {
+ width: 300px;
+}
+
+.closemsg::after {
+ content: "\00D7";
+ display: inline-block;
+ position: relative;
+ right: -20px;
+ top: -10px;
+ z-index: 3;
+ color: #ffffff;
+ border: 1px #ffffff solid;
+ border-radius: 10px;
+ width: 20px;
+ height: 20px;
+ line-height: 18px;
+ text-align: center;
+ margin: 0;
+ background-color: #000000;
+ font-weight: bold;
+ cursor: pointer;
+}
+
+.closemsg::before {
+ content: "";
+ display: block;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background-color: #000000;
+ opacity: 0.85;
+}
+
+HTML
+
+<p>Un texte pour l'exemple…</p>
+<p>[ <a href="#exemple1">Ouvrir l'exemple n°1</a> | <a href="#exemple2"> Ouvrir l'exemple n°2</a> ]</p>
+<p>Un autre texte pour l'exemple…</p>
+<div class="lightbox" id="exemple1">
+ <figure>
+ <a href="#" class="closemsg"></a>
+ <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec felis enim, placerat id eleifend eu, semper vel sem. Sed interdum commodo enim venenatis pulvinar. Proin mattis lorem vitae diam scelerisque hendrerit. Fusce cursus imperdiet mauris, vitae hendrerit velit dignissim a. Suspendisse potenti. Aenean feugiat facilisis diam, in posuere sapien mattis vel. Proin molestie rutrum diam, pharetra feugiat ligula sollicitudin sed. Etiam cursus diam quis tellus aliquam gravida. Aliquam erat volutpat.<br />
+ Etiam varius adipiscing mi eget imperdiet. Nulla quis vestibulum leo. Integer molestie massa ut massa commodo in blandit purus aliquam. Mauris sit amet posuere massa. Ut a eleifend augue. Proin sodales mauris nec tellus pharetra dictum.</figcaption>
+ </figure>
+</div>
+
+<div class="lightbox" id="exemple2">
+ <figure>
+ <a href="#" class="closemsg"></a>
+ <figcaption>Cras risus odio, pharetra nec ultricies et, mollis ac augue. Nunc et diam quis sapien dignissim auctor. Quisque quis neque arcu, nec gravida magna. Etiam ullamcorper augue quis orci posuere et tincidunt augue semper. Maecenas varius augue eu orci auctor bibendum tristique ligula egestas. Morbi pharetra tortor iaculis erat porta id aliquam leo cursus. Ut nec elit vel mauris dapibus lacinia eget sed odio.</figcaption>
+ </figure>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("HTML WHATWG", "browsers.html#selector-target", ":target")}}
+ {{Spec2("HTML WHATWG")}}
+ Définition de la sémantique relative à HTML.
+
+
+ {{SpecName("CSS4 Selectors", "#the-target-pseudo", ":target")}}
+ {{Spec2("CSS4 Selectors")}}
+ Aucune modification.
+
+
+
+{{SpecName("CSS3 Selectors", "#target-pseudo", ":target")}}
+ {{Spec2("CSS3 Selectors")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_user-invalid/index.html b/files/fr/web/css/_colon_user-invalid/index.html
deleted file mode 100644
index 4fe074a4d4..0000000000
--- a/files/fr/web/css/_colon_user-invalid/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: ':-moz-ui-invalid'
-slug: Web/CSS/:user-invalid
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: Web/CSS/:user-invalid
-original_slug: Web/CSS/:-moz-ui-invalid
----
-:target dans les sélecteurs:target pour un système de diapositives, sur GitHub:-moz-ui-invalid représente n'importe quel élément de formulaire dont la valeur est invalide selon ses contraintes de validation.
-
-
-Syntaxe
-
-{{CSSSyntax}}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_user-invalid/index.md b/files/fr/web/css/_colon_user-invalid/index.md
new file mode 100644
index 0000000000..4fe074a4d4
--- /dev/null
+++ b/files/fr/web/css/_colon_user-invalid/index.md
@@ -0,0 +1,49 @@
+---
+title: ':-moz-ui-invalid'
+slug: Web/CSS/:user-invalid
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-classe
+ - Reference
+translation_of: Web/CSS/:user-invalid
+original_slug: Web/CSS/:-moz-ui-invalid
+---
+:-moz-ui-invalid représente n'importe quel élément de formulaire dont la valeur est invalide selon ses contraintes de validation.
+
+
+Syntaxe
+
+{{CSSSyntax}}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_valid/index.html b/files/fr/web/css/_colon_valid/index.html
deleted file mode 100644
index 31ab4fd0a7..0000000000
--- a/files/fr/web/css/_colon_valid/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: ':valid'
-slug: 'Web/CSS/:valid'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:valid'
----
-:valid permet de cibler tout élément {{HTMLElement("input")}} ou {{HTMLElement("form")}} dont la validation du contenu s'effectue correctement par rapport au type de donnée attendu. On peut ainsi facilement mettre en forme les champs correctement remplis par l'utilisateur.input:valid {
- background-color: #ddffdd;
-}
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input:invalid {
- background-color: #ffdddd;
-}
-
-form:invalid {
- border: 5px solid #ffdddd;
-}
-
-input:valid {
- background-color: #ddffdd;
-}
-
-form:valid {
- border: 5px solid #ddffdd;
-}
-
-input:required {
- border-color: #800000;
- border-width: 3px;
-}
-
-input:required:valid {
- border-color: #008000;
-}
-
-HTML
-
-<form>
- <label>Veuillez saisir une URL :</label>
- <input type="url">
- <br>
- <br>
- <label>Veuillez saisir une adresse électronique :</label>
- <input type="email" required>
-</form>
-
-Résultat
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', '#selector-valid', ':valid')}}
- {{Spec2('HTML WHATWG')}}
- Aucune modification.
-
-
- {{SpecName('HTML5 W3C', '#selector-valid', ':valid')}}
- {{Spec2('HTML5 W3C')}}
- Définition de la sémantique relative à HTML et aux contraintes de validation.
-
-
-
-{{SpecName('CSS4 Selectors', '#validity-pseudos', ':valid')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_valid/index.md b/files/fr/web/css/_colon_valid/index.md
new file mode 100644
index 0000000000..31ab4fd0a7
--- /dev/null
+++ b/files/fr/web/css/_colon_valid/index.md
@@ -0,0 +1,118 @@
+---
+title: ':valid'
+slug: 'Web/CSS/:valid'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:valid'
+---
+:valid permet de cibler tout élément {{HTMLElement("input")}} ou {{HTMLElement("form")}} dont la validation du contenu s'effectue correctement par rapport au type de donnée attendu. On peut ainsi facilement mettre en forme les champs correctement remplis par l'utilisateur.input:valid {
+ background-color: #ddffdd;
+}
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input:invalid {
+ background-color: #ffdddd;
+}
+
+form:invalid {
+ border: 5px solid #ffdddd;
+}
+
+input:valid {
+ background-color: #ddffdd;
+}
+
+form:valid {
+ border: 5px solid #ddffdd;
+}
+
+input:required {
+ border-color: #800000;
+ border-width: 3px;
+}
+
+input:required:valid {
+ border-color: #008000;
+}
+
+HTML
+
+<form>
+ <label>Veuillez saisir une URL :</label>
+ <input type="url">
+ <br>
+ <br>
+ <label>Veuillez saisir une adresse électronique :</label>
+ <input type="email" required>
+</form>
+
+Résultat
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', '#selector-valid', ':valid')}}
+ {{Spec2('HTML WHATWG')}}
+ Aucune modification.
+
+
+ {{SpecName('HTML5 W3C', '#selector-valid', ':valid')}}
+ {{Spec2('HTML5 W3C')}}
+ Définition de la sémantique relative à HTML et aux contraintes de validation.
+
+
+
+{{SpecName('CSS4 Selectors', '#validity-pseudos', ':valid')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_visited/index.html b/files/fr/web/css/_colon_visited/index.html
deleted file mode 100644
index 4bb1cd4122..0000000000
--- a/files/fr/web/css/_colon_visited/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: ':visited'
-slug: 'Web/CSS/:visited'
-tags:
- - CSS
- - Pseudo-classe
- - Reference
-translation_of: 'Web/CSS/:visited'
----
-:visited permet de modifier l'aspect d'un lien après que l'utilisateur l'a visité. Pour des raisons relatives à la vie privée, les propriétés qui peuvent être utilisées sont restreintes.a:visited {
- color: #4b2f89;
-}
-
-:visited doit être utilisée après une règle basée sur :link, mais avant les autres (:link — :visited — :hover — :active).Restrictions
-
-
-
-
-0, dans ce cas, toute la couleur est ignorée, ainsi que celle de la règle non-visité).:visited.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-a:visited { color: #00ff00; }
-
-HTML
-
-<p><a href="https://developer.mozilla.org/fr/docs/Web/CSS/:visited">
- Cette page est visitée
-</a></p>
-<p><a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/">
- Essayez celle-ci peut-être ?
-</a></p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('HTML WHATWG', 'scripting.html#selector-visited', ':visited')}}
- {{Spec2('HTML WHATWG')}}
-
-
-
- {{SpecName('CSS4 Selectors', '#link', ':visited')}}
- {{Spec2('CSS4 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Selectors', '#link', ':visited')}}
- {{Spec2('CSS3 Selectors')}}
- Aucune modification.
-
-
- {{SpecName('CSS2.1', 'selector.html#link-pseudo-classes', ':visited')}}
- {{Spec2('CSS2.1')}}
- Suppression de la restriction limitant son usage à l'élément {{HTMLElement("a")}}. Permission donnée aux navigateurs de limiter le comportement de cette pseudo-classe pour des questions de vie privée.
-
-
-
-{{SpecName('CSS1', '#anchor-pseudo-classes', ':visited')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_visited/index.md b/files/fr/web/css/_colon_visited/index.md
new file mode 100644
index 0000000000..4bb1cd4122
--- /dev/null
+++ b/files/fr/web/css/_colon_visited/index.md
@@ -0,0 +1,111 @@
+---
+title: ':visited'
+slug: 'Web/CSS/:visited'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:visited'
+---
+:visited
-
- :visited permet de modifier l'aspect d'un lien après que l'utilisateur l'a visité. Pour des raisons relatives à la vie privée, les propriétés qui peuvent être utilisées sont restreintes.a:visited {
+ color: #4b2f89;
+}
+
+:visited doit être utilisée après une règle basée sur :link, mais avant les autres (:link — :visited — :hover — :active).Restrictions
+
+
+
+
+0, dans ce cas, toute la couleur est ignorée, ainsi que celle de la règle non-visité).:visited.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+a:visited { color: #00ff00; }
+
+HTML
+
+<p><a href="https://developer.mozilla.org/fr/docs/Web/CSS/:visited">
+ Cette page est visitée
+</a></p>
+<p><a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/">
+ Essayez celle-ci peut-être ?
+</a></p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('HTML WHATWG', 'scripting.html#selector-visited', ':visited')}}
+ {{Spec2('HTML WHATWG')}}
+
+
+
+ {{SpecName('CSS4 Selectors', '#link', ':visited')}}
+ {{Spec2('CSS4 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Selectors', '#link', ':visited')}}
+ {{Spec2('CSS3 Selectors')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS2.1', 'selector.html#link-pseudo-classes', ':visited')}}
+ {{Spec2('CSS2.1')}}
+ Suppression de la restriction limitant son usage à l'élément {{HTMLElement("a")}}. Permission donnée aux navigateurs de limiter le comportement de cette pseudo-classe pour des questions de vie privée.
+
+
+
+{{SpecName('CSS1', '#anchor-pseudo-classes', ':visited')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_colon_where/index.html b/files/fr/web/css/_colon_where/index.html
deleted file mode 100644
index 3e9f501aba..0000000000
--- a/files/fr/web/css/_colon_where/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: ':where()'
-slug: 'Web/CSS/:where'
-tags:
- - CSS
- - Experimental
- - Pseudo-classe
- - Reference
- - Sélecteur
-translation_of: 'Web/CSS/:where'
----
-:visited
+
+ :where() prend comme argument une liste de sélecteurs et cible tout élément qui peut être sélectionné par l'un des sélecteurs de la liste.:where() et {{CSSxRef(":is", ":is()")}} est la suivante : :where() aura toujours une spécificité nulle tandis que :is() prend la spécificité du sélecteur passé en argument le plus spécifique.Syntaxe
-
-{{CSSSyntax}}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS4 Selectors", "#zero-matches", ":where()")}}
- {{Spec2("CSS4 Selectors")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_colon_where/index.md b/files/fr/web/css/_colon_where/index.md
new file mode 100644
index 0000000000..3e9f501aba
--- /dev/null
+++ b/files/fr/web/css/_colon_where/index.md
@@ -0,0 +1,50 @@
+---
+title: ':where()'
+slug: 'Web/CSS/:where'
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-classe
+ - Reference
+ - Sélecteur
+translation_of: 'Web/CSS/:where'
+---
+:where() prend comme argument une liste de sélecteurs et cible tout élément qui peut être sélectionné par l'un des sélecteurs de la liste.:where() et {{CSSxRef(":is", ":is()")}} est la suivante : :where() aura toujours une spécificité nulle tandis que :is() prend la spécificité du sélecteur passé en argument le plus spécifique.Syntaxe
+
+{{CSSSyntax}}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS4 Selectors", "#zero-matches", ":where()")}}
+ {{Spec2("CSS4 Selectors")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-color-swatch/index.html b/files/fr/web/css/_doublecolon_-moz-color-swatch/index.html
deleted file mode 100644
index c99555216a..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-color-swatch/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: '::-moz-color-swatch'
-slug: 'Web/CSS/::-moz-color-swatch'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-color-swatch'
----
-::-moz-color-swatch est un pseudo-élément spécifique à Mozilla qui représente la couleur sélectionnée d'un élément {{HTMLElement("input")}} avec type="color".::-moz-color-swatch sur tout autre élément qu'un <input type="color"> n'aura aucun effet.Syntax
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<input type="color" value="#de2020"/>
-
-
-CSS
-
-input[type=color]::-moz-color-swatch {
- border-radius: 10px;
- border-style: none;
-}
-
-
-Résultat
-
-Specifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-color-swatch/index.md b/files/fr/web/css/_doublecolon_-moz-color-swatch/index.md
new file mode 100644
index 0000000000..c99555216a
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-color-swatch/index.md
@@ -0,0 +1,58 @@
+---
+title: '::-moz-color-swatch'
+slug: 'Web/CSS/::-moz-color-swatch'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-color-swatch'
+---
+
-
- ::-moz-color-swatch est un pseudo-élément spécifique à Mozilla qui représente la couleur sélectionnée d'un élément {{HTMLElement("input")}} avec type="color".::-moz-color-swatch sur tout autre élément qu'un <input type="color"> n'aura aucun effet.Syntax
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<input type="color" value="#de2020"/>
+
+
+CSS
+
+input[type=color]::-moz-color-swatch {
+ border-radius: 10px;
+ border-style: none;
+}
+
+
+Résultat
+
+Specifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-page-sequence/index.html b/files/fr/web/css/_doublecolon_-moz-page-sequence/index.html
deleted file mode 100644
index 908a8e6ed7..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-page-sequence/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: '::-moz-page-sequence'
-slug: 'Web/CSS/::-moz-page-sequence'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-page-sequence'
----
-
+
+ ::-moz-page-sequence, spécifique à Mozilla, représente l'arrière-plan du document lors de la prévisualisation avant une impression.Syntaxe
-
-{{CSSSyntax}}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-page-sequence/index.md b/files/fr/web/css/_doublecolon_-moz-page-sequence/index.md
new file mode 100644
index 0000000000..908a8e6ed7
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-page-sequence/index.md
@@ -0,0 +1,32 @@
+---
+title: '::-moz-page-sequence'
+slug: 'Web/CSS/::-moz-page-sequence'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-page-sequence'
+---
+::-moz-page-sequence, spécifique à Mozilla, représente l'arrière-plan du document lors de la prévisualisation avant une impression.Syntaxe
+
+{{CSSSyntax}}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-page/index.html b/files/fr/web/css/_doublecolon_-moz-page/index.html
deleted file mode 100644
index 3cd419c099..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-page/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: '::-moz-page'
-slug: 'Web/CSS/::-moz-page'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-page'
----
-::-moz-page, spécifique à Mozilla, est appliqué aux pages individuelles dans les impressions ou les aperçus avant impression.Syntaxe
-
-{{CSSSyntax}}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-page/index.md b/files/fr/web/css/_doublecolon_-moz-page/index.md
new file mode 100644
index 0000000000..3cd419c099
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-page/index.md
@@ -0,0 +1,32 @@
+---
+title: '::-moz-page'
+slug: 'Web/CSS/::-moz-page'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-page'
+---
+::-moz-page, spécifique à Mozilla, est appliqué aux pages individuelles dans les impressions ou les aperçus avant impression.Syntaxe
+
+{{CSSSyntax}}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-progress-bar/index.html b/files/fr/web/css/_doublecolon_-moz-progress-bar/index.html
deleted file mode 100644
index 51dc574676..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-progress-bar/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: '::-moz-progress-bar'
-slug: 'Web/CSS/::-moz-progress-bar'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-progress-bar'
----
-::-moz-progress-bar s'appliquant à la zone d'élément HTML {{HTMLElement("progress")}} représente la valeur de la progression effectuée jusqu'à présent. Vous pourrez par exemple, modifier la couleur de la barre de progression.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-#redbar::-moz-progress-bar {
- background-color: red;
-}
-
-HTML
-
-<progress id="redbar" value="30" max="100">30 %</progress>
-
-Résultat
-
-Spécifications
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-progress-bar/index.md b/files/fr/web/css/_doublecolon_-moz-progress-bar/index.md
new file mode 100644
index 0000000000..51dc574676
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-progress-bar/index.md
@@ -0,0 +1,47 @@
+---
+title: '::-moz-progress-bar'
+slug: 'Web/CSS/::-moz-progress-bar'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-progress-bar'
+---
+::-moz-progress-bar s'appliquant à la zone d'élément HTML {{HTMLElement("progress")}} représente la valeur de la progression effectuée jusqu'à présent. Vous pourrez par exemple, modifier la couleur de la barre de progression.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+#redbar::-moz-progress-bar {
+ background-color: red;
+}
+
+HTML
+
+<progress id="redbar" value="30" max="100">30 %</progress>
+
+Résultat
+
+Spécifications
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-range-progress/index.html b/files/fr/web/css/_doublecolon_-moz-range-progress/index.html
deleted file mode 100644
index b4f123f2fb..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-range-progress/index.html
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: '::-moz-range-progress'
-slug: 'Web/CSS/::-moz-range-progress'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-range-progress'
----
-::-moz-range-progress représente la portion de la piste d'un élément {{HTMLElement("input")}} de type range, qui correspond aux valeurs inférieures à la valeur sélectionnée par le curseur.::-moz-range-progress est utilisé sur autre chose qu'un élément <input type="range">, il n'aura aucun effet.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input[type=range]::-moz-range-progress {
- background-color: green;
- height: 1em;
-}
-
-
-HTML
-
-<input type="range" min="0" max="100" step="5" value="50"/>
-
-
-Résultat
-
-
Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-range-progress/index.md b/files/fr/web/css/_doublecolon_-moz-range-progress/index.md
new file mode 100644
index 0000000000..b4f123f2fb
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-range-progress/index.md
@@ -0,0 +1,67 @@
+---
+title: '::-moz-range-progress'
+slug: 'Web/CSS/::-moz-range-progress'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-range-progress'
+---
+range :
-
-
-
- input de type range de façon compatible entre les navigateurs (en anglais)::-moz-range-progress représente la portion de la piste d'un élément {{HTMLElement("input")}} de type range, qui correspond aux valeurs inférieures à la valeur sélectionnée par le curseur.::-moz-range-progress est utilisé sur autre chose qu'un élément <input type="range">, il n'aura aucun effet.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input[type=range]::-moz-range-progress {
+ background-color: green;
+ height: 1em;
+}
+
+
+HTML
+
+<input type="range" min="0" max="100" step="5" value="50"/>
+
+
+Résultat
+
+
Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-range-thumb/index.html b/files/fr/web/css/_doublecolon_-moz-range-thumb/index.html
deleted file mode 100644
index 2b64feb5a9..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-range-thumb/index.html
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: '::-moz-range-thumb'
-slug: 'Web/CSS/::-moz-range-thumb'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-range-thumb'
----
-range :
+
+
+
+ input de type range de façon compatible entre les navigateurs (en anglais)::-moz-range-thumb représente le curseur qui se déplace le long de la piste dans un élément {{HTMLElement("input")}} de type range et qui permet de modifier la valeur numérique associée.::-moz-range-thumb avec un autre élément que <input type="range"> n'aura aucun effet.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input[type=range]::-moz-range-thumb {
- background-color: green;
-}
-
-
-HTML
-
-<input type="range" min="0" max="100" step="5" value="50"/>
-
-
-Résultat
-
-
Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-range-thumb/index.md b/files/fr/web/css/_doublecolon_-moz-range-thumb/index.md
new file mode 100644
index 0000000000..2b64feb5a9
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-range-thumb/index.md
@@ -0,0 +1,71 @@
+---
+title: '::-moz-range-thumb'
+slug: 'Web/CSS/::-moz-range-thumb'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-range-thumb'
+---
+range :
-
-
-
-
-
- input de type range de façon compatible entre les navigateurs (en anglais)::-moz-range-thumb représente le curseur qui se déplace le long de la piste dans un élément {{HTMLElement("input")}} de type range et qui permet de modifier la valeur numérique associée.::-moz-range-thumb avec un autre élément que <input type="range"> n'aura aucun effet.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input[type=range]::-moz-range-thumb {
+ background-color: green;
+}
+
+
+HTML
+
+<input type="range" min="0" max="100" step="5" value="50"/>
+
+
+Résultat
+
+
Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-range-track/index.html b/files/fr/web/css/_doublecolon_-moz-range-track/index.html
deleted file mode 100644
index f8fd1cce12..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-range-track/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: '::-moz-range-track'
-slug: 'Web/CSS/::-moz-range-track'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-range-track'
----
-range :
+
+
+
+
+
+ input de type range de façon compatible entre les navigateurs (en anglais)::-moz-range-track est un pseudo-élément spsécifique à Mozilla et représente la piste d'un élément {{HTMLElement("input")}} de type range.::-moz-range-track n'aura aucun effet s'il est utilisé sur autre chose qu'un élément <input type="range">.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input[type=range]::-moz-range-track {
- background-color: green;
-}
-
-
-HTML
-
-<input type="range" min="0" max="100" step="5" value="50"/>
-
-
-Résultat
-
-
Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-range-track/index.md b/files/fr/web/css/_doublecolon_-moz-range-track/index.md
new file mode 100644
index 0000000000..f8fd1cce12
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-range-track/index.md
@@ -0,0 +1,70 @@
+---
+title: '::-moz-range-track'
+slug: 'Web/CSS/::-moz-range-track'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-range-track'
+---
+range :
-
-
-
-
-
- input de type range de façon compatible entre les navigateurs (en anglais)::-moz-range-track est un pseudo-élément spsécifique à Mozilla et représente la piste d'un élément {{HTMLElement("input")}} de type range.::-moz-range-track n'aura aucun effet s'il est utilisé sur autre chose qu'un élément <input type="range">.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input[type=range]::-moz-range-track {
+ background-color: green;
+}
+
+
+HTML
+
+<input type="range" min="0" max="100" step="5" value="50"/>
+
+
+Résultat
+
+
Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-moz-scrolled-page-sequence/index.html b/files/fr/web/css/_doublecolon_-moz-scrolled-page-sequence/index.html
deleted file mode 100644
index 7fea3ec964..0000000000
--- a/files/fr/web/css/_doublecolon_-moz-scrolled-page-sequence/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: '::-moz-scrolled-page-sequence'
-slug: 'Web/CSS/::-moz-scrolled-page-sequence'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-moz-scrolled-page-sequence'
----
-range :
+
+
+
+
+
+ input de type range de façon compatible entre les navigateurs (en anglais)::-moz-scrolled-page-sequence est un pseudo-élément spécifique à Mozilla et représente l'arrière-plan de la prévisualisation de l'impression.Syntaxe
-
-{{CSSSyntax}}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-moz-scrolled-page-sequence/index.md b/files/fr/web/css/_doublecolon_-moz-scrolled-page-sequence/index.md
new file mode 100644
index 0000000000..7fea3ec964
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-moz-scrolled-page-sequence/index.md
@@ -0,0 +1,32 @@
+---
+title: '::-moz-scrolled-page-sequence'
+slug: 'Web/CSS/::-moz-scrolled-page-sequence'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-moz-scrolled-page-sequence'
+---
+::-moz-scrolled-page-sequence est un pseudo-élément spécifique à Mozilla et représente l'arrière-plan de la prévisualisation de l'impression.Syntaxe
+
+{{CSSSyntax}}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-inner-spin-button/index.html b/files/fr/web/css/_doublecolon_-webkit-inner-spin-button/index.html
deleted file mode 100644
index e8230dce99..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-inner-spin-button/index.html
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: '::-webkit-inner-spin-button'
-slug: 'Web/CSS/::-webkit-inner-spin-button'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-inner-spin-button'
----
-::-webkit-inner-spin-button permet de mettre en forme la partie intérieure de la roulette qui permet de choisir la valeur d'un élément {{HTMLElement("input")}} de type number.Exemples
-
-CSS
-
-input[type=number]::-webkit-inner-spin-button {
- cursor: pointer;
-}
-
-HTML
-
-<input type="number">
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-inner-spin-button/index.md b/files/fr/web/css/_doublecolon_-webkit-inner-spin-button/index.md
new file mode 100644
index 0000000000..e8230dce99
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-inner-spin-button/index.md
@@ -0,0 +1,46 @@
+---
+title: '::-webkit-inner-spin-button'
+slug: 'Web/CSS/::-webkit-inner-spin-button'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-inner-spin-button'
+---
+::-webkit-inner-spin-button permet de mettre en forme la partie intérieure de la roulette qui permet de choisir la valeur d'un élément {{HTMLElement("input")}} de type number.Exemples
+
+CSS
+
+input[type=number]::-webkit-inner-spin-button {
+ cursor: pointer;
+}
+
+HTML
+
+<input type="number">
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-bar/index.html b/files/fr/web/css/_doublecolon_-webkit-meter-bar/index.html
deleted file mode 100644
index 0700be99b5..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-meter-bar/index.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: '::-webkit-meter-bar'
-slug: 'Web/CSS/::-webkit-meter-bar'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-meter-bar'
----
-::-webkit-meter-bar est un pseudo-élément spécifique à WebKit et permet de mettre en forme l'arrière-plan d'un élément {{HTMLElement("meter")}}.Exemples
-
-CSS
-
-meter {
- /* On réinitialise l'apparence par défaut */
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
-}
-
-meter::-webkit-meter-bar {
- background: #eee;
- box-shadow: 0 2px 3px rgba (0, 0, 0, 0.2) inset;
- border-radius: 3px;
-}
-
-HTML
-
-<meter min="0" max="10" value="6">Score sur 10</meter>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
-
-
-
- ::-webkit-meter-bar est un pseudo-élément spécifique à WebKit et permet de mettre en forme l'arrière-plan d'un élément {{HTMLElement("meter")}}.Exemples
+
+CSS
+
+meter {
+ /* On réinitialise l'apparence par défaut */
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+
+meter::-webkit-meter-bar {
+ background: #eee;
+ box-shadow: 0 2px 3px rgba (0, 0, 0, 0.2) inset;
+ border-radius: 3px;
+}
+
+HTML
+
+<meter min="0" max="10" value="6">Score sur 10</meter>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
+
+
+
+ ::-webkit-meter-even-less-good-value donne une couleur rouge à l'élément {{HTMLElement("meter")}} lorsque les valeurs de value et d'optimum sont dans des intervalles opposés (par exemple : value < low < high < optimum ou value > high > low > optimum).Exemples
-
-CSS
-
-meter::-webkit-meter-even-less-good-value {
- background: linear-gradient(to bottom, #f77, #d44 45%, #d44 55%, #f77);
- height: 100%;
- box-sizing: border-box;
-}
-
-HTML
-
-<meter min="0" max="10" value="6">Score out of 10</meter>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-even-less-good-value/index.md b/files/fr/web/css/_doublecolon_-webkit-meter-even-less-good-value/index.md
new file mode 100644
index 0000000000..e9736324a9
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-meter-even-less-good-value/index.md
@@ -0,0 +1,54 @@
+---
+title: '::-webkit-meter-even-less-good-value'
+slug: 'Web/CSS/::-webkit-meter-even-less-good-value'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-meter-even-less-good-value'
+---
+::-webkit-meter-even-less-good-value donne une couleur rouge à l'élément {{HTMLElement("meter")}} lorsque les valeurs de value et d'optimum sont dans des intervalles opposés (par exemple : value < low < high < optimum ou value > high > low > optimum).Exemples
+
+CSS
+
+meter::-webkit-meter-even-less-good-value {
+ background: linear-gradient(to bottom, #f77, #d44 45%, #d44 55%, #f77);
+ height: 100%;
+ box-sizing: border-box;
+}
+
+HTML
+
+<meter min="0" max="10" value="6">Score out of 10</meter>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-inner-element/index.html b/files/fr/web/css/_doublecolon_-webkit-meter-inner-element/index.html
deleted file mode 100644
index 3ae9405761..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-meter-inner-element/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: '::-webkit-meter-inner-element'
-slug: 'Web/CSS/::-webkit-meter-inner-element'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-meter-inner-element'
----
-::-webkit-meter-inner-element est un pseudo-élément qui permet de sélectionner et d'appliquer des styles au conteneur d'un élément {{htmlelement("meter")}}.Exemples
-
-CSS
-
-meter {
- /* Réinitialise l'apparence par défaut */
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
-}
-
-meter::-webkit-meter-inner-element {
- -webkit-appearance: inherit;
- box-sizing: inherit;
- border: 1px solid #aaa;
-}
-
-HTML
-
-<meter min="0" max="10" value="6">Score out of 10</meter>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-inner-element/index.md b/files/fr/web/css/_doublecolon_-webkit-meter-inner-element/index.md
new file mode 100644
index 0000000000..3ae9405761
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-meter-inner-element/index.md
@@ -0,0 +1,61 @@
+---
+title: '::-webkit-meter-inner-element'
+slug: 'Web/CSS/::-webkit-meter-inner-element'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-meter-inner-element'
+---
+::-webkit-meter-inner-element est un pseudo-élément qui permet de sélectionner et d'appliquer des styles au conteneur d'un élément {{htmlelement("meter")}}.Exemples
+
+CSS
+
+meter {
+ /* Réinitialise l'apparence par défaut */
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+
+meter::-webkit-meter-inner-element {
+ -webkit-appearance: inherit;
+ box-sizing: inherit;
+ border: 1px solid #aaa;
+}
+
+HTML
+
+<meter min="0" max="10" value="6">Score out of 10</meter>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-optimum-value/index.html b/files/fr/web/css/_doublecolon_-webkit-meter-optimum-value/index.html
deleted file mode 100644
index e8f23f94e6..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-meter-optimum-value/index.html
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: '::-webkit-meter-optimum-value'
-slug: 'Web/CSS/::-webkit-meter-optimum-value'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-meter-optimum-value'
----
-::-webkit-meter-optimum-value permet de mettre en forme l'élément {{HTMLElement("meter")}} lorsque la valeur de son attribut tombe dans l'intervalle haut. La couleur appliquée par défaut est le vert.Exemples
-
-CSS
-
-meter::-webkit-meter-bar {
- background : none;
- background-color : whiteSmoke;
- box-shadow : 0 5px 5px -5px #333 inset;
-}
-
-meter::-webkit-meter-optimum-value {
- box-shadow: 0 5px 5px -5px #999 inset;
-}
-
-HTML
-
-<meter min="0" max="10" value="6">Score out of 10</meter>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-optimum-value/index.md b/files/fr/web/css/_doublecolon_-webkit-meter-optimum-value/index.md
new file mode 100644
index 0000000000..e8f23f94e6
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-meter-optimum-value/index.md
@@ -0,0 +1,54 @@
+---
+title: '::-webkit-meter-optimum-value'
+slug: 'Web/CSS/::-webkit-meter-optimum-value'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-meter-optimum-value'
+---
+::-webkit-meter-optimum-value permet de mettre en forme l'élément {{HTMLElement("meter")}} lorsque la valeur de son attribut tombe dans l'intervalle haut. La couleur appliquée par défaut est le vert.Exemples
+
+CSS
+
+meter::-webkit-meter-bar {
+ background : none;
+ background-color : whiteSmoke;
+ box-shadow : 0 5px 5px -5px #333 inset;
+}
+
+meter::-webkit-meter-optimum-value {
+ box-shadow: 0 5px 5px -5px #999 inset;
+}
+
+HTML
+
+<meter min="0" max="10" value="6">Score out of 10</meter>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.html b/files/fr/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.html
deleted file mode 100644
index 3700e1e859..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.html
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: '::-webkit-meter-suboptimum-value'
-slug: 'Web/CSS/::-webkit-meter-suboptimum-value'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-meter-suboptimum-value'
----
-::-webkit-meter-suboptimum-value donne une couleur jaune à l'élément {{HTMLElement("meter")}} lorsque la valeur de l'attribut est en dehors de l'intervalle haut des valeurs.Exemples
-
-CSS
-
-meter::-webkit-meter-suboptimum-value {
- background: -webkit-gradient linear, left top, left bottom;
- height: 100%;
- box-sizing: border-box;
-}
-
-HTML
-
-<meter min="0" max="10" value="6">Score sur 10</meter>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.md b/files/fr/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.md
new file mode 100644
index 0000000000..3700e1e859
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.md
@@ -0,0 +1,54 @@
+---
+title: '::-webkit-meter-suboptimum-value'
+slug: 'Web/CSS/::-webkit-meter-suboptimum-value'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-meter-suboptimum-value'
+---
+::-webkit-meter-suboptimum-value donne une couleur jaune à l'élément {{HTMLElement("meter")}} lorsque la valeur de l'attribut est en dehors de l'intervalle haut des valeurs.Exemples
+
+CSS
+
+meter::-webkit-meter-suboptimum-value {
+ background: -webkit-gradient linear, left top, left bottom;
+ height: 100%;
+ box-sizing: border-box;
+}
+
+HTML
+
+<meter min="0" max="10" value="6">Score sur 10</meter>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-outer-spin-button/index.html b/files/fr/web/css/_doublecolon_-webkit-outer-spin-button/index.html
deleted file mode 100644
index 58b369dfdf..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-outer-spin-button/index.html
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: '::-webkit-outer-spin-button'
-slug: 'Web/CSS/::-webkit-outer-spin-button'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-outer-spin-button'
----
-::-webkit-outer-spin-button peut être utilisé afin de mettre en forme la partie extérieure du sélecteur numérique utilisé pour les éléments {{HTMLElement("input")}} de type number.Exemples
-
-CSS
-
-input::-webkit-outer-spin-button {
- -webkit-appearance: none;
-}
-
-HTML
-
-<input type="number">
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-outer-spin-button/index.md b/files/fr/web/css/_doublecolon_-webkit-outer-spin-button/index.md
new file mode 100644
index 0000000000..58b369dfdf
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-outer-spin-button/index.md
@@ -0,0 +1,46 @@
+---
+title: '::-webkit-outer-spin-button'
+slug: 'Web/CSS/::-webkit-outer-spin-button'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-outer-spin-button'
+---
+::-webkit-outer-spin-button peut être utilisé afin de mettre en forme la partie extérieure du sélecteur numérique utilisé pour les éléments {{HTMLElement("input")}} de type number.Exemples
+
+CSS
+
+input::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+}
+
+HTML
+
+<input type="number">
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-progress-bar/index.html b/files/fr/web/css/_doublecolon_-webkit-progress-bar/index.html
deleted file mode 100644
index 9fc489d9c2..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-progress-bar/index.html
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: '::-webkit-progress-bar'
-slug: Web/CSS/::-webkit-progress-bar
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/::-webkit-progress-bar
----
-::-webkit-progress-bar représente l'ensemble de la barre d'un élément {{HTMLElement("progress")}}. Normalement, celui-ci n'est visible que pour la partie de la barre qui n'est pas remplie car, par défaut, il est affiché sous le pseudo-élément {{cssxref("::-webkit-progress-value")}}. C'est un pseudo-élément fils du pseudo-élément {{cssxref("::-webkit-progress-inner-element")}} et c'est le pseudo-élément parent du pseudo-élément {{cssxref("::-webkit-progress-value")}}.::-webkit-progress-value ait un effet, il faut que {{cssxref("appearance")}} vaille none sur l'élément <progress>.Exemples
-
-CSS
-
-progress {
- -webkit-appearance: none;
-}
-
-::-webkit-progress-bar {
- background-color: orange;
-}
-
-
-HTML
-
-<progress value="10" max="50">
-
-
-Résultat
-
-
Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-progress-bar/index.md b/files/fr/web/css/_doublecolon_-webkit-progress-bar/index.md
new file mode 100644
index 0000000000..9fc489d9c2
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-progress-bar/index.md
@@ -0,0 +1,64 @@
+---
+title: '::-webkit-progress-bar'
+slug: Web/CSS/::-webkit-progress-bar
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/::-webkit-progress-bar
+---
+
-
- ::-webkit-progress-bar représente l'ensemble de la barre d'un élément {{HTMLElement("progress")}}. Normalement, celui-ci n'est visible que pour la partie de la barre qui n'est pas remplie car, par défaut, il est affiché sous le pseudo-élément {{cssxref("::-webkit-progress-value")}}. C'est un pseudo-élément fils du pseudo-élément {{cssxref("::-webkit-progress-inner-element")}} et c'est le pseudo-élément parent du pseudo-élément {{cssxref("::-webkit-progress-value")}}.::-webkit-progress-value ait un effet, il faut que {{cssxref("appearance")}} vaille none sur l'élément <progress>.Exemples
+
+CSS
+
+progress {
+ -webkit-appearance: none;
+}
+
+::-webkit-progress-bar {
+ background-color: orange;
+}
+
+
+HTML
+
+<progress value="10" max="50">
+
+
+Résultat
+
+
Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-progress-inner-element/index.html b/files/fr/web/css/_doublecolon_-webkit-progress-inner-element/index.html
deleted file mode 100644
index cfe8be136c..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-progress-inner-element/index.html
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: '::-webkit-progress-inner-element'
-slug: 'Web/CSS/::-webkit-progress-inner-element'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-progress-inner-element'
----
-
+
+ ::-webkit-progress-inner-element représente le cadre extérieur de l'élément {{HTMLElement("progress")}}. C'est un pseudo-élément parent du pseudo-élément {{cssxref("::-webkit-progress-bar")}}.::-webkit-progress-value ait un effet, il faut que {{cssxref("-webkit-appearance")}} vaille none sur l'élément <progress>.Exemples
-
-CSS
-
-progress {
- -webkit-appearance: none;
-}
-
-::-webkit-progress-inner-element {
- border: 2px solid black;
-}
-
-
-HTML
-
-<progress value="10" max="50">
-
-
-Résultat
-
-
Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-progress-inner-element/index.md b/files/fr/web/css/_doublecolon_-webkit-progress-inner-element/index.md
new file mode 100644
index 0000000000..cfe8be136c
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-progress-inner-element/index.md
@@ -0,0 +1,64 @@
+---
+title: '::-webkit-progress-inner-element'
+slug: 'Web/CSS/::-webkit-progress-inner-element'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-progress-inner-element'
+---
+
-
- ::-webkit-progress-inner-element représente le cadre extérieur de l'élément {{HTMLElement("progress")}}. C'est un pseudo-élément parent du pseudo-élément {{cssxref("::-webkit-progress-bar")}}.::-webkit-progress-value ait un effet, il faut que {{cssxref("-webkit-appearance")}} vaille none sur l'élément <progress>.Exemples
+
+CSS
+
+progress {
+ -webkit-appearance: none;
+}
+
+::-webkit-progress-inner-element {
+ border: 2px solid black;
+}
+
+
+HTML
+
+<progress value="10" max="50">
+
+
+Résultat
+
+
Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-progress-value/index.html b/files/fr/web/css/_doublecolon_-webkit-progress-value/index.html
deleted file mode 100644
index 91a831dcef..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-progress-value/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: '::-webkit-progress-value'
-slug: Web/CSS/::-webkit-progress-value
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/::-webkit-progress-value
----
-
+
+ ::-webkit-progress-value permet de représenter la portion « remplie » de la barre d'un élément {{HTMLElement("progress")}}. C'est un pseudo-élément fils du pseudo-élément {{cssxref("::-webkit-progress-bar")}}.::-webkit-progress-value ait un effet, il faut que {{cssxref("-webkit-appearance")}} vaille none sur l'élément <progress>.Exemples
-
-CSS
-
-progress {
- -webkit-appearance: none;
-}
-
-::-webkit-progress-value {
- background-color: orange;
-}
-
-HTML
-
-<progress value="10" max="50">
-
-
-Résultat
-
-
Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-progress-value/index.md b/files/fr/web/css/_doublecolon_-webkit-progress-value/index.md
new file mode 100644
index 0000000000..91a831dcef
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-progress-value/index.md
@@ -0,0 +1,63 @@
+---
+title: '::-webkit-progress-value'
+slug: Web/CSS/::-webkit-progress-value
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/::-webkit-progress-value
+---
+
-
- ::-webkit-progress-value permet de représenter la portion « remplie » de la barre d'un élément {{HTMLElement("progress")}}. C'est un pseudo-élément fils du pseudo-élément {{cssxref("::-webkit-progress-bar")}}.::-webkit-progress-value ait un effet, il faut que {{cssxref("-webkit-appearance")}} vaille none sur l'élément <progress>.Exemples
+
+CSS
+
+progress {
+ -webkit-appearance: none;
+}
+
+::-webkit-progress-value {
+ background-color: orange;
+}
+
+HTML
+
+<progress value="10" max="50">
+
+
+Résultat
+
+
Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-scrollbar/index.html b/files/fr/web/css/_doublecolon_-webkit-scrollbar/index.html
deleted file mode 100644
index 27ce824819..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-scrollbar/index.html
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: '::-webkit-scrollbar'
-slug: 'Web/CSS/::-webkit-scrollbar'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-scrollbar'
----
-
+
+ ::-webkit-scrollbar permet de modifier le style de la barre de défilement associée à un élément. Il s'agit d'un pseudo-élément propriétaire, uniquement disponible pour les navigateurs WebKit.Syntaxe
-
-{{CSSSyntax}}
-
-Sélecteurs de scrollbars
-
-
-
-
-::-webkit-scrollbar — la barre entière.::-webkit-scrollbar-button — les boutons de la barre de défilement (les flèches vers le bas ou le haut)::-webkit-scrollbar-thumb — l'emplacement qui permet de déplacer la barre de défilement.::-webkit-scrollbar-track — la piste (la zone de progression) de la barre de défilement::-webkit-scrollbar-track-piece — la partie de la piste qui n'est pas couverte par le bouton de la barre de défilement.::-webkit-scrollbar-corner — le coin inférieur de la barre où les barres horizontales et verticales se rencontrent.::-webkit-resizer — le bouton qui apparaît dans le coin inférieur de certains éléments et qui permet de les redimensionner.Exemples
-
-.visible-scrollbar, .invisible-scrollbar, .mostly-customized-scrollbar {
- display: block;
- width: 10em;
- overflow: auto;
- height: 2em;
-}
-.invisible-scrollbar::-webkit-scrollbar {
- display: none;
-}
-
-/* Demonstrate a "mostly customized" scrollbar
- * (won't be visible otherwise if width/height is specified) */
-.mostly-customized-scrollbar::-webkit-scrollbar {
- width: 5px;
- height: 8px;
- background-color: #aaa; /* or add it to the track */
-}
-/* Add a thumb */
-.mostly-customized-scrollbar::-webkit-scrollbar-thumb {
- background: #000;
-}
-
-
-<div class="visible-scrollbar">
- Etiam sagittis sem sed lacus laoreet, eu fermentum eros auctor.
- Proin at nulla elementum, consectetur ex eget, commodo ante.
- Sed eros mi, bibendum ut dignissim et, maximus eget nibh. Phasellus
- blandit quam turpis, at mollis velit pretium ut. Nunc consequat
- efficitur ultrices. Nullam hendrerit posuere est. Nulla libero
- sapien, egestas ac felis porta, cursus ultricies quam. Vestibulum
- tincidunt accumsan sapien, a fringilla dui semper in. Vivamus
- consectetur ipsum a ornare blandit. Aenean tempus at lorem sit
- amet faucibus. Curabitur nibh justo, faucibus sed velit cursus,
- mattis cursus dolor. Pellentesque id pretium est. Quisque
- convallis nisi a diam malesuada mollis. Aliquam at enim ligula.
-</div>
-<div class="invisible-scrollbar">Thisisaveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongword</div>
-<div class="mostly-customized-scrollbar">Thisisaveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongword<br>
-And pretty tall<br>
-thing with weird scrollbars.<br>
-Who thought scrollbars could be made weeeeird?</div>
-
-
-Spécifications
-
-Compatibilité des navigateurs
-
-
-
-::-webkit-scrollbar
-
-::-webkit-scrollbar-button
-
-::-webkit-scrollbar-thumb
-
-::-webkit-scrollbar-track
-
-::-webkit-scrollbar-track-piece
-
-::-webkit-scrollbar-corner
-
-::-webkit-resizerVoir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-scrollbar/index.md b/files/fr/web/css/_doublecolon_-webkit-scrollbar/index.md
new file mode 100644
index 0000000000..27ce824819
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-scrollbar/index.md
@@ -0,0 +1,120 @@
+---
+title: '::-webkit-scrollbar'
+slug: 'Web/CSS/::-webkit-scrollbar'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-scrollbar'
+---
+::-webkit-scrollbar permet de modifier le style de la barre de défilement associée à un élément. Il s'agit d'un pseudo-élément propriétaire, uniquement disponible pour les navigateurs WebKit.Syntaxe
+
+{{CSSSyntax}}
+
+Sélecteurs de scrollbars
+
+
+
+
+::-webkit-scrollbar — la barre entière.::-webkit-scrollbar-button — les boutons de la barre de défilement (les flèches vers le bas ou le haut)::-webkit-scrollbar-thumb — l'emplacement qui permet de déplacer la barre de défilement.::-webkit-scrollbar-track — la piste (la zone de progression) de la barre de défilement::-webkit-scrollbar-track-piece — la partie de la piste qui n'est pas couverte par le bouton de la barre de défilement.::-webkit-scrollbar-corner — le coin inférieur de la barre où les barres horizontales et verticales se rencontrent.::-webkit-resizer — le bouton qui apparaît dans le coin inférieur de certains éléments et qui permet de les redimensionner.Exemples
+
+.visible-scrollbar, .invisible-scrollbar, .mostly-customized-scrollbar {
+ display: block;
+ width: 10em;
+ overflow: auto;
+ height: 2em;
+}
+.invisible-scrollbar::-webkit-scrollbar {
+ display: none;
+}
+
+/* Demonstrate a "mostly customized" scrollbar
+ * (won't be visible otherwise if width/height is specified) */
+.mostly-customized-scrollbar::-webkit-scrollbar {
+ width: 5px;
+ height: 8px;
+ background-color: #aaa; /* or add it to the track */
+}
+/* Add a thumb */
+.mostly-customized-scrollbar::-webkit-scrollbar-thumb {
+ background: #000;
+}
+
+
+<div class="visible-scrollbar">
+ Etiam sagittis sem sed lacus laoreet, eu fermentum eros auctor.
+ Proin at nulla elementum, consectetur ex eget, commodo ante.
+ Sed eros mi, bibendum ut dignissim et, maximus eget nibh. Phasellus
+ blandit quam turpis, at mollis velit pretium ut. Nunc consequat
+ efficitur ultrices. Nullam hendrerit posuere est. Nulla libero
+ sapien, egestas ac felis porta, cursus ultricies quam. Vestibulum
+ tincidunt accumsan sapien, a fringilla dui semper in. Vivamus
+ consectetur ipsum a ornare blandit. Aenean tempus at lorem sit
+ amet faucibus. Curabitur nibh justo, faucibus sed velit cursus,
+ mattis cursus dolor. Pellentesque id pretium est. Quisque
+ convallis nisi a diam malesuada mollis. Aliquam at enim ligula.
+</div>
+<div class="invisible-scrollbar">Thisisaveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongword</div>
+<div class="mostly-customized-scrollbar">Thisisaveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongword<br>
+And pretty tall<br>
+thing with weird scrollbars.<br>
+Who thought scrollbars could be made weeeeird?</div>
+
+
+Spécifications
+
+Compatibilité des navigateurs
+
+
+
+::-webkit-scrollbar
+
+::-webkit-scrollbar-button
+
+::-webkit-scrollbar-thumb
+
+::-webkit-scrollbar-track
+
+::-webkit-scrollbar-track-piece
+
+::-webkit-scrollbar-corner
+
+::-webkit-resizerVoir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-search-cancel-button/index.html b/files/fr/web/css/_doublecolon_-webkit-search-cancel-button/index.html
deleted file mode 100644
index 7859eca19f..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-search-cancel-button/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: '::-webkit-search-cancel-button'
-slug: 'Web/CSS/::-webkit-search-cancel-button'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-search-cancel-button'
----
-::-webkit-search-cancel-button représente le bouton d'annulation présenté au bout d'un champ {{HTMLElement("input")}} de type search et qui permet d'effacer la valeur actuellement saisie dans l'élément {{HTMLElement("input")}}. Ce bouton et ce pseudo-élément ne sont pas standards et ne sont pris en charge que par WebKit et Blink. Ce bouton est uniquement affiché pour les éléments {{HTMLElement("input")}} qui ne sont pas vides.Syntaxe
-
- selecteur::-webkit-search-cancel-button
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-search-cancel-button/index.md b/files/fr/web/css/_doublecolon_-webkit-search-cancel-button/index.md
new file mode 100644
index 0000000000..7859eca19f
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-search-cancel-button/index.md
@@ -0,0 +1,32 @@
+---
+title: '::-webkit-search-cancel-button'
+slug: 'Web/CSS/::-webkit-search-cancel-button'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-search-cancel-button'
+---
+::-webkit-search-cancel-button représente le bouton d'annulation présenté au bout d'un champ {{HTMLElement("input")}} de type search et qui permet d'effacer la valeur actuellement saisie dans l'élément {{HTMLElement("input")}}. Ce bouton et ce pseudo-élément ne sont pas standards et ne sont pris en charge que par WebKit et Blink. Ce bouton est uniquement affiché pour les éléments {{HTMLElement("input")}} qui ne sont pas vides.Syntaxe
+
+ selecteur::-webkit-search-cancel-button
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-search-results-button/index.html b/files/fr/web/css/_doublecolon_-webkit-search-results-button/index.html
deleted file mode 100644
index 4dc067866c..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-search-results-button/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: '::-webkit-search-results-button'
-slug: 'Web/CSS/::-webkit-search-results-button'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-search-results-button'
----
-::-webkit-search-results-button représente le bouton affiché sur le bord gauche d'un élément {{HTMLElement("input")}} de type "search" qui affiche un menu proposant les dernières recherches effectuées à l'utilisateur. Ce bouton et ce pseudo-élément ne sont pas standards et sont uniquement pris en charge par WebKit/Blink. Le bouton des résultats de recherche est uniquement affiché pour les éléments {{HTMLElement("input")}} qui possèdent un attribut results.Syntaxe
-
- selecteur::-webkit-search-results-button
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-search-results-button/index.md b/files/fr/web/css/_doublecolon_-webkit-search-results-button/index.md
new file mode 100644
index 0000000000..4dc067866c
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-search-results-button/index.md
@@ -0,0 +1,31 @@
+---
+title: '::-webkit-search-results-button'
+slug: 'Web/CSS/::-webkit-search-results-button'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-search-results-button'
+---
+::-webkit-search-results-button représente le bouton affiché sur le bord gauche d'un élément {{HTMLElement("input")}} de type "search" qui affiche un menu proposant les dernières recherches effectuées à l'utilisateur. Ce bouton et ce pseudo-élément ne sont pas standards et sont uniquement pris en charge par WebKit/Blink. Le bouton des résultats de recherche est uniquement affiché pour les éléments {{HTMLElement("input")}} qui possèdent un attribut results.Syntaxe
+
+ selecteur::-webkit-search-results-button
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-slider-runnable-track/index.html b/files/fr/web/css/_doublecolon_-webkit-slider-runnable-track/index.html
deleted file mode 100644
index 288756a23b..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-slider-runnable-track/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: '::-webkit-slider-runnable-track'
-slug: 'Web/CSS/::-webkit-slider-runnable-track'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-slider-runnable-track'
----
-::-webkit-slider-runnable-track représente la piste utilisée par un élément {{HTMLElement("input")}} de type "range" (cf. {{HTMLElement("input/range", '<input type="range">')}}).Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-slider-runnable-track/index.md b/files/fr/web/css/_doublecolon_-webkit-slider-runnable-track/index.md
new file mode 100644
index 0000000000..288756a23b
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-slider-runnable-track/index.md
@@ -0,0 +1,33 @@
+---
+title: '::-webkit-slider-runnable-track'
+slug: 'Web/CSS/::-webkit-slider-runnable-track'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-slider-runnable-track'
+---
+
-
- input de type range de façon compatible entre les navigateurs (en anglais)::-webkit-slider-runnable-track représente la piste utilisée par un élément {{HTMLElement("input")}} de type "range" (cf. {{HTMLElement("input/range", '<input type="range">')}}).Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_-webkit-slider-thumb/index.html b/files/fr/web/css/_doublecolon_-webkit-slider-thumb/index.html
deleted file mode 100644
index 2af11cb873..0000000000
--- a/files/fr/web/css/_doublecolon_-webkit-slider-thumb/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: '::-webkit-slider-thumb'
-slug: 'Web/CSS/::-webkit-slider-thumb'
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::-webkit-slider-thumb'
----
-
+
+ input de type range de façon compatible entre les navigateurs (en anglais)::-webkit-slider-thumb représente le curseur que peut déplacer l'utilisateur le long de la piste d'un élément {{HTMLElement("input")}} de type "range" afin de modifier la valeur numérique associée.Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_-webkit-slider-thumb/index.md b/files/fr/web/css/_doublecolon_-webkit-slider-thumb/index.md
new file mode 100644
index 0000000000..2af11cb873
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_-webkit-slider-thumb/index.md
@@ -0,0 +1,34 @@
+---
+title: '::-webkit-slider-thumb'
+slug: 'Web/CSS/::-webkit-slider-thumb'
+tags:
+ - CSS
+ - Non-standard
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::-webkit-slider-thumb'
+---
+
-
- input de type range de façon compatible entre les navigateurs (en anglais)::-webkit-slider-thumb représente le curseur que peut déplacer l'utilisateur le long de la piste d'un élément {{HTMLElement("input")}} de type "range" afin de modifier la valeur numérique associée.Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_after/index.html b/files/fr/web/css/_doublecolon_after/index.html
deleted file mode 100644
index 5b7aa71588..0000000000
--- a/files/fr/web/css/_doublecolon_after/index.html
+++ /dev/null
@@ -1,179 +0,0 @@
----
-title: '::after (:after)'
-slug: 'Web/CSS/::after'
-tags:
- - CSS
- - Disposition
- - Pseudo-element
- - Reference
- - Web
-translation_of: 'Web/CSS/::after'
----
-
+
+ input de type range de façon compatible entre les navigateurs (en anglais)::after crée un pseudo-élément qui sera le dernier enfant de l'élément sélectionné. Il est souvent utilisé pour ajouter du contenu cosmétique à un élément, en utilisant la propriété CSS {{cssxref("content")}}. Par défaut, ce contenu est de type « en ligne »./* Ajoute une flèche après les liens */
-a:after {
- content: "→";
-}
-
-::before et ::after sont contenus dans la boîte de mise en forme de l'élément. Aussi, ::before et ::after ne s'appliquent pas aux éléments remplacés tels que les éléments {{HTMLElement("img")}} ou {{HTMLElement("br")}}.Syntaxe
-
-{{csssyntax}}
-
-::after (avec deux deux-points) pour distinguer les pseudo-classes des pseudo-éléments. Les navigateurs acceptent aussi:after, introduite dans CSS2.Exemples
-
-Utilisation simple
-
-HTML
-
-<p class="texte-ennuyeux">Voici un peu de vieux texte ennuyeux ordinaire.</p>
-<p>Voici un peu de texte normal qui n'est ni ennuyeux, ni intéressant.</p>
-<p class="texte-interessant">Contribuer à MDN est facile et amusant.
- Cliquez simplement sur le bouton Modifier pour ajouter de nouveaux exemples vivants, ou améliorer ceux existants.</p>
-
-CSS
-
-.texte-interessant::after {
- content: "<- maintenant, cela *est* intéressant !";
- color: green;
-}
-
-.texte-ennuyeux::after {
- content: "<- ENNUYEUX !";
- color: red;
-}
-
-Résultat
-
-Exemple décoratif
-
-HTML
-
-<span class="ruban">Observez où se trouve la boîte orange.</span>
-
-
-CSS
-
-.ruban {
- background-color: #5BC8F7;
-}
-
-.ruban::after {
- content: "Voyez cette boîte orange.";
- background-color: #FFBA10;
- border-color: black;
- border-style: dotted;
-}
-
-Résultat
-
-Bulles d’information
-
-::after avec l'expression CSS {{cssxref("attr()")}} et un attribut de données personnalisé data-descr afin de créer une bulle d'information de type glossaire en CSS pur.tabindex de 0 pour faire un span focusable, et en utilisant la sélection :focus. Cela montre à quel point les options ::before and ::after peuvent être flexibles, bien que, pour l'expérience la plus accessible, un widget de divulgation sémantique créé d'une autre manière serait probablement plus approprié..HTML
-
-<p>Voici l’exemple en action du code ci-dessus.<br />
- Nous avons un peu de <span data-descr="collection de mots et de ponctuation">texte</span>
- ici avec quelques <span data-descr="petites fenêtres surgissantes qui se cachent aussi">
- bulles d’information</span>.<br />
- Ne soyez pas timide, survolez le texte pour jeter un <span data-descr="à ne pas prendre au sens littéral">œil</span>.
-</p>
-
-CSS
-
-span[data-descr] {
- position: relative;
- text-decoration: underline;
- color: #00F;
- cursor: help;
-}
-
-span[data-descr]:hover::after {
- content: attr(data-descr);
- position: absolute;
- left: 0;
- top: 24px;
- min-width: 200px;
- border: 1px #aaaaaa solid;
- border-radius: 10px;
- background-color: #ffffcc;
- padding: 12px;
- color: #000000;
- font-size: 14px;
- z-index: 1;
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécifications
- Statut
- Commentaire
-
-
- {{SpecName('CSS4 Pseudo-Elements', '#selectordef-after', '::after')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Pas de changement significatif depuis la spécification précédente.
-
-
- {{Specname("CSS3 Transitions", "#animatable-properties", "")}}
- {{Spec2("CSS3 Transitions")}}
- Permet les transitions sur les propriétés définies sur les pseudo-éléments.
-
-
- {{Specname("CSS3 Animations", "", "")}}
- {{Spec2("CSS3 Animations")}}
- Permet les animations sur les propriétés définies sur les pseudo-éléments.
-
-
- {{SpecName('CSS3 Selectors', '#gen-content', '::after')}}
- {{Spec2('CSS3 Selectors')}}
- Introduit la syntaxe à deux deux-points.
-
-
-
-{{SpecName('CSS2.1', 'generate.html#before-after-content', '::after')}}
- {{Spec2('CSS2.1')}}
- Définition initiale, utilisant la syntaxe à un deux-points.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_after/index.md b/files/fr/web/css/_doublecolon_after/index.md
new file mode 100644
index 0000000000..5b7aa71588
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_after/index.md
@@ -0,0 +1,179 @@
+---
+title: '::after (:after)'
+slug: 'Web/CSS/::after'
+tags:
+ - CSS
+ - Disposition
+ - Pseudo-element
+ - Reference
+ - Web
+translation_of: 'Web/CSS/::after'
+---
+::after crée un pseudo-élément qui sera le dernier enfant de l'élément sélectionné. Il est souvent utilisé pour ajouter du contenu cosmétique à un élément, en utilisant la propriété CSS {{cssxref("content")}}. Par défaut, ce contenu est de type « en ligne »./* Ajoute une flèche après les liens */
+a:after {
+ content: "→";
+}
+
+::before et ::after sont contenus dans la boîte de mise en forme de l'élément. Aussi, ::before et ::after ne s'appliquent pas aux éléments remplacés tels que les éléments {{HTMLElement("img")}} ou {{HTMLElement("br")}}.Syntaxe
+
+{{csssyntax}}
+
+::after (avec deux deux-points) pour distinguer les pseudo-classes des pseudo-éléments. Les navigateurs acceptent aussi:after, introduite dans CSS2.Exemples
+
+Utilisation simple
+
+HTML
+
+<p class="texte-ennuyeux">Voici un peu de vieux texte ennuyeux ordinaire.</p>
+<p>Voici un peu de texte normal qui n'est ni ennuyeux, ni intéressant.</p>
+<p class="texte-interessant">Contribuer à MDN est facile et amusant.
+ Cliquez simplement sur le bouton Modifier pour ajouter de nouveaux exemples vivants, ou améliorer ceux existants.</p>
+
+CSS
+
+.texte-interessant::after {
+ content: "<- maintenant, cela *est* intéressant !";
+ color: green;
+}
+
+.texte-ennuyeux::after {
+ content: "<- ENNUYEUX !";
+ color: red;
+}
+
+Résultat
+
+Exemple décoratif
+
+HTML
+
+<span class="ruban">Observez où se trouve la boîte orange.</span>
+
+
+CSS
+
+.ruban {
+ background-color: #5BC8F7;
+}
+
+.ruban::after {
+ content: "Voyez cette boîte orange.";
+ background-color: #FFBA10;
+ border-color: black;
+ border-style: dotted;
+}
+
+Résultat
+
+Bulles d’information
+
+::after avec l'expression CSS {{cssxref("attr()")}} et un attribut de données personnalisé data-descr afin de créer une bulle d'information de type glossaire en CSS pur.tabindex de 0 pour faire un span focusable, et en utilisant la sélection :focus. Cela montre à quel point les options ::before and ::after peuvent être flexibles, bien que, pour l'expérience la plus accessible, un widget de divulgation sémantique créé d'une autre manière serait probablement plus approprié..HTML
+
+<p>Voici l’exemple en action du code ci-dessus.<br />
+ Nous avons un peu de <span data-descr="collection de mots et de ponctuation">texte</span>
+ ici avec quelques <span data-descr="petites fenêtres surgissantes qui se cachent aussi">
+ bulles d’information</span>.<br />
+ Ne soyez pas timide, survolez le texte pour jeter un <span data-descr="à ne pas prendre au sens littéral">œil</span>.
+</p>
+
+CSS
+
+span[data-descr] {
+ position: relative;
+ text-decoration: underline;
+ color: #00F;
+ cursor: help;
+}
+
+span[data-descr]:hover::after {
+ content: attr(data-descr);
+ position: absolute;
+ left: 0;
+ top: 24px;
+ min-width: 200px;
+ border: 1px #aaaaaa solid;
+ border-radius: 10px;
+ background-color: #ffffcc;
+ padding: 12px;
+ color: #000000;
+ font-size: 14px;
+ z-index: 1;
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécifications
+ Statut
+ Commentaire
+
+
+ {{SpecName('CSS4 Pseudo-Elements', '#selectordef-after', '::after')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Pas de changement significatif depuis la spécification précédente.
+
+
+ {{Specname("CSS3 Transitions", "#animatable-properties", "")}}
+ {{Spec2("CSS3 Transitions")}}
+ Permet les transitions sur les propriétés définies sur les pseudo-éléments.
+
+
+ {{Specname("CSS3 Animations", "", "")}}
+ {{Spec2("CSS3 Animations")}}
+ Permet les animations sur les propriétés définies sur les pseudo-éléments.
+
+
+ {{SpecName('CSS3 Selectors', '#gen-content', '::after')}}
+ {{Spec2('CSS3 Selectors')}}
+ Introduit la syntaxe à deux deux-points.
+
+
+
+{{SpecName('CSS2.1', 'generate.html#before-after-content', '::after')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale, utilisant la syntaxe à un deux-points.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_backdrop/index.html b/files/fr/web/css/_doublecolon_backdrop/index.html
deleted file mode 100644
index 4a5d8fae17..0000000000
--- a/files/fr/web/css/_doublecolon_backdrop/index.html
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: '::backdrop'
-slug: Web/CSS/::backdrop
-tags:
- - CSS
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/::backdrop
----
-::backdrop est une boîte de la taille de la zone d'affichage (viewport) qui est affichée immédiatement sous un élément lorsque ce dernier est affiché en plein écran. Cela correspond aux éléments passés en plein écran via l'API Fullscreen et aux éléments {{HTMLElement("dialog")}}.// Cette ombre n'est affichée que lorsque la boîte de dialogue
-// est ouverte avec dialog.showModal()
-dialog::backdrop {
- background: rgba(255,0,0,.25);
-}
-
-::backdrop peut être utilisé comme un arrière-plan/masque pour l'élément afin de cacher le document en-dessous lorsque l'élément est affiché en plein écran selon la spécification.Syntaxe
-
-{{CSSSyntax}}
-
-Exemples
-
-video::backdrop {
- background-color: #448;
-}
-
-
-
Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('Fullscreen', '#::backdrop-pseudo-element', '::backdrop')}}
- {{Spec2('Fullscreen')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_backdrop/index.md b/files/fr/web/css/_doublecolon_backdrop/index.md
new file mode 100644
index 0000000000..4a5d8fae17
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_backdrop/index.md
@@ -0,0 +1,78 @@
+---
+title: '::backdrop'
+slug: Web/CSS/::backdrop
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/::backdrop
+---
+::backdrop est une boîte de la taille de la zone d'affichage (viewport) qui est affichée immédiatement sous un élément lorsque ce dernier est affiché en plein écran. Cela correspond aux éléments passés en plein écran via l'API Fullscreen et aux éléments {{HTMLElement("dialog")}}.// Cette ombre n'est affichée que lorsque la boîte de dialogue
+// est ouverte avec dialog.showModal()
+dialog::backdrop {
+ background: rgba(255,0,0,.25);
+}
+
+::backdrop peut être utilisé comme un arrière-plan/masque pour l'élément afin de cacher le document en-dessous lorsque l'élément est affiché en plein écran selon la spécification.Syntaxe
+
+{{CSSSyntax}}
+
+Exemples
+
+video::backdrop {
+ background-color: #448;
+}
+
+
+
Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('Fullscreen', '#::backdrop-pseudo-element', '::backdrop')}}
+ {{Spec2('Fullscreen')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_before/index.html b/files/fr/web/css/_doublecolon_before/index.html
deleted file mode 100644
index 51d962fb43..0000000000
--- a/files/fr/web/css/_doublecolon_before/index.html
+++ /dev/null
@@ -1,187 +0,0 @@
----
-title: '::before (:before)'
-slug: 'Web/CSS/::before'
-tags:
- - CSS
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::before'
----
-::before crée un pseudo-élément qui sera le premier enfant de l'élément ciblé. Généralement utilisé pour ajouter du contenu esthétique à un élément via la propriété CSS {{cssxref("content")}}. Par défaut, l'élément créé est de type en-ligne (inline)./* On ajoute un coeur avant les liens */
-a::before {
- content: "♥";
-}
-
-
-::before et ::after sont contenus dans la boîte de mise en forme de l'élément. Aussi, ::before et ::after ne s'appliquent pas aux éléments remplacés tels que {{HTMLElement("img")}} ou {{HTMLElement("br")}}.Syntaxe
-
-{{csssyntax}}
-
-::before a été introduite par CSS 3 pour différencier les pseudo-classes et les pseudo-éléments. Les navigateurs acceptent aussi la notation :before introduite par CSS 2.Exemples
-
-Ajouter des guillemets
-
-::before et {{cssxref("::after")}} pour effectuer l'insertion.HTML
-
-<q>Quelques guillemets</q>, dit-il, <q>sont mieux que pas du tout</q>
-
-CSS
-
-q::before {
- content: "«";
- color: blue;
-}
-q::after {
- content: '»';
- color: red;
-}
-
-Résultat
-
-Exemple décoratif
-
-HTML
-
-<span class="ribbon">Observez où est placée la boite orange.</span>
-
-CSS
-
-.ribbon {
- background-color: #5BC8F7;
-}
-
-.ribbon::before {
- content: "Regardez cette boite orange.";
- background-color: #FFBA10;
- border-color: black;
- border-style: dotted;
-}
-
-Résultat
-
-Liste de choses à faire
-
-HTML
-
-<ul>
- <li>Acheter du lait</li>
- <li>Promener le chien</li>
- <li>Faire de l'exercice</li>
- <li>Coder</li>
- <li>Jouer de la musique</li>
- <li>Se reposer</li>
-</ul>
-
-
-CSS
-
-li {
- list-style-type: none;
- position: relative;
- margin: 1px;
- padding: 0.5em 0.5em 0.5em 2em;
- background: lightgrey;
- font-family: sans-serif;
-}
-
-li.done {
- background: #CCFF99;
-}
-
-li.done::before {
- content: '';
- position: absolute;
- border-color: #009933;
- border-style: solid;
- border-width: 0 0.3em 0.25em 0;
- height: 1em;
- top: 1.3em;
- left: 0.6em;
- margin-top: -1em;
- transform: rotate(45deg);
- width: 0.5em;
-}
-
-JavaScript
-
-var list = document.querySelector('ul');
-list.addEventListener('click', function(ev) {
- if( ev.target.tagName === 'LI') {
- ev.target.classList.toggle('done');
- }
-}, false);
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Pseudo-Elements', '#selectordef-before', '::before')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Pas de modification significative depuis la spécification précédente.
-
-
- {{Specname("CSS3 Transitions", "#animatable-properties", "")}}
- {{Spec2("CSS3 Transitions")}}
- Les transitions peuvent être appliquées sur les propriétés de ce pseudo-élément.
-
-
- {{Specname("CSS3 Animations", "", "")}}
- {{Spec2("CSS3 Animations")}}
- Les animations peuvent être appliquées sur les propriétés de ce pseudo-élément.
-
-
- {{SpecName('CSS3 Selectors', '#gen-content', '::before')}}
- {{Spec2('CSS3 Selectors')}}
- Introduction de la syntaxe avec les deux deux-points.
-
-
-
-{{SpecName('CSS2.1', 'generate.html#before-after-content', '::before')}}
- {{Spec2('CSS2.1')}}
- Définition initiale avec une seule fois le caractère deux-points.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_before/index.md b/files/fr/web/css/_doublecolon_before/index.md
new file mode 100644
index 0000000000..51d962fb43
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_before/index.md
@@ -0,0 +1,187 @@
+---
+title: '::before (:before)'
+slug: 'Web/CSS/::before'
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::before'
+---
+::before crée un pseudo-élément qui sera le premier enfant de l'élément ciblé. Généralement utilisé pour ajouter du contenu esthétique à un élément via la propriété CSS {{cssxref("content")}}. Par défaut, l'élément créé est de type en-ligne (inline)./* On ajoute un coeur avant les liens */
+a::before {
+ content: "♥";
+}
+
+
+::before et ::after sont contenus dans la boîte de mise en forme de l'élément. Aussi, ::before et ::after ne s'appliquent pas aux éléments remplacés tels que {{HTMLElement("img")}} ou {{HTMLElement("br")}}.Syntaxe
+
+{{csssyntax}}
+
+::before a été introduite par CSS 3 pour différencier les pseudo-classes et les pseudo-éléments. Les navigateurs acceptent aussi la notation :before introduite par CSS 2.Exemples
+
+Ajouter des guillemets
+
+::before et {{cssxref("::after")}} pour effectuer l'insertion.HTML
+
+<q>Quelques guillemets</q>, dit-il, <q>sont mieux que pas du tout</q>
+
+CSS
+
+q::before {
+ content: "«";
+ color: blue;
+}
+q::after {
+ content: '»';
+ color: red;
+}
+
+Résultat
+
+Exemple décoratif
+
+HTML
+
+<span class="ribbon">Observez où est placée la boite orange.</span>
+
+CSS
+
+.ribbon {
+ background-color: #5BC8F7;
+}
+
+.ribbon::before {
+ content: "Regardez cette boite orange.";
+ background-color: #FFBA10;
+ border-color: black;
+ border-style: dotted;
+}
+
+Résultat
+
+Liste de choses à faire
+
+HTML
+
+<ul>
+ <li>Acheter du lait</li>
+ <li>Promener le chien</li>
+ <li>Faire de l'exercice</li>
+ <li>Coder</li>
+ <li>Jouer de la musique</li>
+ <li>Se reposer</li>
+</ul>
+
+
+CSS
+
+li {
+ list-style-type: none;
+ position: relative;
+ margin: 1px;
+ padding: 0.5em 0.5em 0.5em 2em;
+ background: lightgrey;
+ font-family: sans-serif;
+}
+
+li.done {
+ background: #CCFF99;
+}
+
+li.done::before {
+ content: '';
+ position: absolute;
+ border-color: #009933;
+ border-style: solid;
+ border-width: 0 0.3em 0.25em 0;
+ height: 1em;
+ top: 1.3em;
+ left: 0.6em;
+ margin-top: -1em;
+ transform: rotate(45deg);
+ width: 0.5em;
+}
+
+JavaScript
+
+var list = document.querySelector('ul');
+list.addEventListener('click', function(ev) {
+ if( ev.target.tagName === 'LI') {
+ ev.target.classList.toggle('done');
+ }
+}, false);
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Pseudo-Elements', '#selectordef-before', '::before')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Pas de modification significative depuis la spécification précédente.
+
+
+ {{Specname("CSS3 Transitions", "#animatable-properties", "")}}
+ {{Spec2("CSS3 Transitions")}}
+ Les transitions peuvent être appliquées sur les propriétés de ce pseudo-élément.
+
+
+ {{Specname("CSS3 Animations", "", "")}}
+ {{Spec2("CSS3 Animations")}}
+ Les animations peuvent être appliquées sur les propriétés de ce pseudo-élément.
+
+
+ {{SpecName('CSS3 Selectors', '#gen-content', '::before')}}
+ {{Spec2('CSS3 Selectors')}}
+ Introduction de la syntaxe avec les deux deux-points.
+
+
+
+{{SpecName('CSS2.1', 'generate.html#before-after-content', '::before')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale avec une seule fois le caractère deux-points.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_cue-region/index.html b/files/fr/web/css/_doublecolon_cue-region/index.html
deleted file mode 100644
index 4386cd36f5..0000000000
--- a/files/fr/web/css/_doublecolon_cue-region/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: '::cue-region'
-slug: 'Web/CSS/::cue-region'
-tags:
- - CSS
- - Media
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::cue-region'
----
-::cue-region correspond à une piste {{DOMxRef("WebVTT API", "WebVTT", "", 1)}} de l'élément ciblé. Il peut être utilisé afin de mettre en forme des sous-titres et autres indications textuelles de pistes VTT.::cue-region {
- color: yellow;
- font-weight: bold;
-}
-
-Propriétés autorisées
-
-::cue-region sont limitées aux propriétés CSS suivantes :
-
-
-background (et/ou des propriétés détaillées correspondantes) : cette propriété s'applique distinctement à chaque partie du texte séparément afin d'éviter de masquer ou d'obscurcir de grandes zones de texte sur le média.Syntaxe
-
-{{CSSSyntax}}
-
-Exemples
-
-Spécifications
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("WebVTT", "#the-cue-region-pseudo-element", "the
- ::cue-region pseudo-element")}}{{Spec2("WebVTT")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_cue-region/index.md b/files/fr/web/css/_doublecolon_cue-region/index.md
new file mode 100644
index 0000000000..4386cd36f5
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_cue-region/index.md
@@ -0,0 +1,82 @@
+---
+title: '::cue-region'
+slug: 'Web/CSS/::cue-region'
+tags:
+ - CSS
+ - Media
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::cue-region'
+---
+
-
- ::cue-region correspond à une piste {{DOMxRef("WebVTT API", "WebVTT", "", 1)}} de l'élément ciblé. Il peut être utilisé afin de mettre en forme des sous-titres et autres indications textuelles de pistes VTT.::cue-region {
+ color: yellow;
+ font-weight: bold;
+}
+
+Propriétés autorisées
+
+::cue-region sont limitées aux propriétés CSS suivantes :
+
+
+background (et/ou des propriétés détaillées correspondantes) : cette propriété s'applique distinctement à chaque partie du texte séparément afin d'éviter de masquer ou d'obscurcir de grandes zones de texte sur le média.Syntaxe
+
+{{CSSSyntax}}
+
+Exemples
+
+Spécifications
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("WebVTT", "#the-cue-region-pseudo-element", "the
+ ::cue-region pseudo-element")}}{{Spec2("WebVTT")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_cue/index.html b/files/fr/web/css/_doublecolon_cue/index.html
deleted file mode 100644
index 01ab9c8284..0000000000
--- a/files/fr/web/css/_doublecolon_cue/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: '::cue'
-slug: 'Web/CSS/::cue'
-tags:
- - CSS
- - Pseudo-element
- - Reference
- - WebVTT
-translation_of: 'Web/CSS/::cue'
----
-
+
+ ::cue permet de cibler les indications textuelles WebVTT d'un élément. Ce pseudo-élément peut être utilisé afin de mettre en forme les légendes et autres indications textuelles pour les médias avec des pistes VTT.::cue {
- color: yellow;
- font-weight: bold;
-}
-
-Propriétés autorisées
-
-::cue :
-
-
-background (ou les propriétés raccourcies associées) s'appliquent à chaque indication séparément (afin d'éviter de créer des boîtes qui masqueraient de grandes zones sur le média).Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-::cue {
- color: #fff;
- background-color: rgba(0, 0, 0, 0.6);
-}
-
-Spécifications
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("WebVTT", "#the-cue-pseudo-element", "::cue")}}
- {{Spec2("WebVTT")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/_doublecolon_cue/index.md b/files/fr/web/css/_doublecolon_cue/index.md
new file mode 100644
index 0000000000..01ab9c8284
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_cue/index.md
@@ -0,0 +1,79 @@
+---
+title: '::cue'
+slug: 'Web/CSS/::cue'
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+ - WebVTT
+translation_of: 'Web/CSS/::cue'
+---
+::cue permet de cibler les indications textuelles WebVTT d'un élément. Ce pseudo-élément peut être utilisé afin de mettre en forme les légendes et autres indications textuelles pour les médias avec des pistes VTT.::cue {
+ color: yellow;
+ font-weight: bold;
+}
+
+Propriétés autorisées
+
+::cue :
+
+
+background (ou les propriétés raccourcies associées) s'appliquent à chaque indication séparément (afin d'éviter de créer des boîtes qui masqueraient de grandes zones sur le média).Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+::cue {
+ color: #fff;
+ background-color: rgba(0, 0, 0, 0.6);
+}
+
+Spécifications
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("WebVTT", "#the-cue-pseudo-element", "::cue")}}
+ {{Spec2("WebVTT")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/_doublecolon_file-selector-button/index.html b/files/fr/web/css/_doublecolon_file-selector-button/index.html
deleted file mode 100644
index 67030cc606..0000000000
--- a/files/fr/web/css/_doublecolon_file-selector-button/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: '::-webkit-file-upload-button'
-slug: Web/CSS/::file-selector-button
-tags:
- - CSS
- - Non-standard
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/::file-selector-button
-original_slug: Web/CSS/::-webkit-file-upload-button
----
-::-webkit-file-upload-button représente le bouton d'un élément {{HTMLElement("input")}} de type file.Syntaxe
-
-selecteur::-webkit-file-upload-button
-
-
-Exemples
-
-CSS
-
-input, label {
- display: block;
-}
-
-input[type=file]::-webkit-file-upload-button {
- border: 1px solid grey;
- background: #FFFAAA;
-}
-
-HTML
-
-<form>
- <label for="fileUpload">Uploader un fichier</label><br>
- <input type="file" id="fileUpload">
-</form>
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-::-webkit-file-upload-button représente le bouton d'un élément {{HTMLElement("input")}} de type file.Syntaxe
+
+selecteur::-webkit-file-upload-button
+
+
+Exemples
+
+CSS
+
+input, label {
+ display: block;
+}
+
+input[type=file]::-webkit-file-upload-button {
+ border: 1px solid grey;
+ background: #FFFAAA;
+}
+
+HTML
+
+<form>
+ <label for="fileUpload">Uploader un fichier</label><br>
+ <input type="file" id="fileUpload">
+</form>
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+::first-letter sélectionne la première lettre de la première ligne d'un bloc, si elle n'est pas précédée par un quelconque autre contenu (comme une image ou un tableau en ligne) sur sa ligne./* Sélectionne la première lettre */
-/* d'un élément <p> */
-p::first-letter {
- color: red;
- font-size: 130%;
-}
-
-
-
-
-IJ en néerlandais. Dans ces rares cas, les deux lettres du digraphes doivent être sélectionnées par le pseudo-élément ::first-letter. (Ceci est mal supporté par les navigateurs, reportez vous au tableau de compatibilité des navigateurs).::first-letter sélectionnera la première lettre du contenu inséré.::first-letter n'a un effet que sur les éléments ayant une valeur {{cssxref("display")}} correspondant à block, inline-block, table-cell, list-item ou table-caption. Dans tous les autres cas, ::first-letter n'a pas d'effet.Propriétés utilisables
-
-::first-letter :
-
-
-margin : {{cssxref("margin")}}, {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}}, {{cssxref("margin-left")}}.padding : {{cssxref("padding")}}, {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}}, {{cssxref("padding-left")}}.float vaut none).:first-letter est le seul choix viable. Sinon, la syntaxe ::first-letter doit être privilégiée.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p::first-letter {
- color: red;
- font-size: 130%;
-}
-
-HTML
-
-<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
- ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
- dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor
- sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy amet.</p>
-<p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.</p>
-<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut
- aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit
- esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et
- iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
- nulla facilisi.</p>
-<p>-The beginning of a special punctuation mark.</p>
-<p>_The beginning of a special punctuation mark.</p>
-<p>"The beginning of a special punctuation mark.</p>
-<p>'The beginning of a special punctuation mark.</p>
-<p>*The beginning of a special punctuation mark.</p>
-<p>#The beginning of a special punctuation mark.</p>
-<p>「特殊的汉字标点符号开头。</p>
-<p>《特殊的汉字标点符号开头。</p>
-<p>“特殊的汉字标点符号开头。</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- Statut
- Commentaire
-
-
- {{SpecName('CSS4 Pseudo-Elements', '#first-letter-pseudo', '::first-letter')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Généralisation des propriétés permises pour la mise en forme du texte et des popriétés de mise en page en-ligne, {{cssxref("opacity")}} et {{cssxref("box-shadow")}}.
-
-
- {{SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow avec ::first-letter')}}
- {{Spec2('CSS3 Text Decoration')}}
- Autorise l'usage de {{cssxref("text-shadow")}} avec
- ::first-letter.
-
- {{SpecName('CSS3 Selectors', '#first-letter', '::first-letter')}}
- {{Spec2('CSS3 Selectors')}}
- Définition des cas limites comme les listes, ou les comportement spécifiques à certaines langues (comme le digraphe néerlandais
- IJ).
-
- {{SpecName('CSS2.1', 'selector.html#first-letter', '::first-letter')}}
- {{Spec2('CSS2.1')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS1', '#the-first-letter-pseudo-element', '::first-letter')}}
- {{Spec2('CSS1')}}
- La définition initiale utilisait la syntaxe à un caractère deux-points.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_first-letter/index.md b/files/fr/web/css/_doublecolon_first-letter/index.md
new file mode 100644
index 0000000000..23d75fa8fd
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_first-letter/index.md
@@ -0,0 +1,141 @@
+---
+title: '::first-letter'
+slug: Web/CSS/::first-letter
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/::first-letter
+---
+::first-letter sélectionne la première lettre de la première ligne d'un bloc, si elle n'est pas précédée par un quelconque autre contenu (comme une image ou un tableau en ligne) sur sa ligne./* Sélectionne la première lettre */
+/* d'un élément <p> */
+p::first-letter {
+ color: red;
+ font-size: 130%;
+}
+
+
+
+
+IJ en néerlandais. Dans ces rares cas, les deux lettres du digraphes doivent être sélectionnées par le pseudo-élément ::first-letter. (Ceci est mal supporté par les navigateurs, reportez vous au tableau de compatibilité des navigateurs).::first-letter sélectionnera la première lettre du contenu inséré.::first-letter n'a un effet que sur les éléments ayant une valeur {{cssxref("display")}} correspondant à block, inline-block, table-cell, list-item ou table-caption. Dans tous les autres cas, ::first-letter n'a pas d'effet.Propriétés utilisables
+
+::first-letter :
+
+
+margin : {{cssxref("margin")}}, {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}}, {{cssxref("margin-left")}}.padding : {{cssxref("padding")}}, {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}}, {{cssxref("padding-left")}}.float vaut none).:first-letter est le seul choix viable. Sinon, la syntaxe ::first-letter doit être privilégiée.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p::first-letter {
+ color: red;
+ font-size: 130%;
+}
+
+HTML
+
+<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
+ ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
+ dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor
+ sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy amet.</p>
+<p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.</p>
+<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut
+ aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit
+ esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et
+ iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
+ nulla facilisi.</p>
+<p>-The beginning of a special punctuation mark.</p>
+<p>_The beginning of a special punctuation mark.</p>
+<p>"The beginning of a special punctuation mark.</p>
+<p>'The beginning of a special punctuation mark.</p>
+<p>*The beginning of a special punctuation mark.</p>
+<p>#The beginning of a special punctuation mark.</p>
+<p>「特殊的汉字标点符号开头。</p>
+<p>《特殊的汉字标点符号开头。</p>
+<p>“特殊的汉字标点符号开头。</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ Statut
+ Commentaire
+
+
+ {{SpecName('CSS4 Pseudo-Elements', '#first-letter-pseudo', '::first-letter')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Généralisation des propriétés permises pour la mise en forme du texte et des popriétés de mise en page en-ligne, {{cssxref("opacity")}} et {{cssxref("box-shadow")}}.
+
+
+ {{SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow avec ::first-letter')}}
+ {{Spec2('CSS3 Text Decoration')}}
+ Autorise l'usage de {{cssxref("text-shadow")}} avec
+ ::first-letter.
+
+ {{SpecName('CSS3 Selectors', '#first-letter', '::first-letter')}}
+ {{Spec2('CSS3 Selectors')}}
+ Définition des cas limites comme les listes, ou les comportement spécifiques à certaines langues (comme le digraphe néerlandais
+ IJ).
+
+ {{SpecName('CSS2.1', 'selector.html#first-letter', '::first-letter')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS1', '#the-first-letter-pseudo-element', '::first-letter')}}
+ {{Spec2('CSS1')}}
+ La définition initiale utilisait la syntaxe à un caractère deux-points.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_first-line/index.html b/files/fr/web/css/_doublecolon_first-line/index.html
deleted file mode 100644
index 11f165eae1..0000000000
--- a/files/fr/web/css/_doublecolon_first-line/index.html
+++ /dev/null
@@ -1,159 +0,0 @@
----
-title: '::first-line (:first-line)'
-slug: Web/CSS/::first-line
-tags:
- - CSS
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/::first-line
----
-::first-line applique la décoration à la première ligne d'un élément. La quantité de texte sur la première ligne dépend de nombreux facteurs, comme la largeur des éléments ou du document, mais aussi de la taille du texte. Comme tous les pseudo-éléments, les sélecteurs contenant ::first-line ne ciblent pas un élément HTML réel./* Sélectionne la première ligne */
-/* d'un élément <p> */
-::first-line {
- color: red;
- text-transform: uppercase;
-}
-
-::first-line n'a d'effet que sur les éléments dont {{cssxref("display")}} à une valeur de block, inline-block, table-cell ou table-caption. Dans tous les autres cas, ::first-line n'a pas d'effet.Propriétés utilisables
-
-::first-line :
-
-
-:first-line est le seul choix viable ; sinon,::first-line est préféré.Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-
-
-text-transformCSS
-
-p::first-line {
- text-transform: uppercase;
-}
-
-HTML
-
-<p>
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
- sed do eiusmod tempor incididunt ut labore.
-</p>
-
-Résultat
-
-
-
-margin-leftmargin-left ne peut pas être appliquée sur ce pseudo-élément.CSS
-
-p::first-line {
- margin-left: 20px;
-}
-
-HTML
-
-<p>
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
- sed do eiusmod tempor incididunt ut labore.
-</p>
-
-Résultat
-
-
-
-text-indenttext-indent ne peut pas être appliqué sur ce pseudo-élément.CSS
-
-p::first-line {
- text-indent: 20px;
-}
-
-HTML
-
-<p>
- Lorem ipsum dolor sit amet, consectetur adipisicing elit,
- sed do eiusmod tempor incididunt ut labore.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Pseudo-Elements', '#first-line-pseudo', '::first-line')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- La définition est affinée pour indiquer où ce pseudo-élément peut correspondre. Les propriétés possibles sont généralisées (fontes, décoration, disposition en ligne et {{cssxref("opacity")}}). Définit l'héritage de
- ::first-letter.
-
- {{SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow with ::first-line')}}
- {{Spec2('CSS3 Text Decoration')}}
- La propriété {{cssxref("text-shadow")}} peut être utilisée avec
- ::first-letter.
-
- {{SpecName('CSS3 Selectors', '#first-line', '::first-line')}}
- {{Spec2('CSS3 Selectors')}}
- La définition de « première ligne » a été reformulée. La syntaxe utilise désormais deux fois le caractère deux-points.
-
-
- {{SpecName('CSS2.1', 'selector.html#first-line-pseudo', '::first-line')}}
- {{Spec2('CSS2.1')}}
- Aucune modification.
-
-
-
-{{SpecName('CSS1', '#the-first-line-pseudo-element', '::first-line')}}
- {{Spec2('CSS1')}}
- La définition initiale qui utilise la syntaxe avec un seul caractère deux-points.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_first-line/index.md b/files/fr/web/css/_doublecolon_first-line/index.md
new file mode 100644
index 0000000000..11f165eae1
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_first-line/index.md
@@ -0,0 +1,159 @@
+---
+title: '::first-line (:first-line)'
+slug: Web/CSS/::first-line
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/::first-line
+---
+::first-line applique la décoration à la première ligne d'un élément. La quantité de texte sur la première ligne dépend de nombreux facteurs, comme la largeur des éléments ou du document, mais aussi de la taille du texte. Comme tous les pseudo-éléments, les sélecteurs contenant ::first-line ne ciblent pas un élément HTML réel./* Sélectionne la première ligne */
+/* d'un élément <p> */
+::first-line {
+ color: red;
+ text-transform: uppercase;
+}
+
+::first-line n'a d'effet que sur les éléments dont {{cssxref("display")}} à une valeur de block, inline-block, table-cell ou table-caption. Dans tous les autres cas, ::first-line n'a pas d'effet.Propriétés utilisables
+
+::first-line :
+
+
+:first-line est le seul choix viable ; sinon,::first-line est préféré.Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+
+
+text-transformCSS
+
+p::first-line {
+ text-transform: uppercase;
+}
+
+HTML
+
+<p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit,
+ sed do eiusmod tempor incididunt ut labore.
+</p>
+
+Résultat
+
+
+
+margin-leftmargin-left ne peut pas être appliquée sur ce pseudo-élément.CSS
+
+p::first-line {
+ margin-left: 20px;
+}
+
+HTML
+
+<p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit,
+ sed do eiusmod tempor incididunt ut labore.
+</p>
+
+Résultat
+
+
+
+text-indenttext-indent ne peut pas être appliqué sur ce pseudo-élément.CSS
+
+p::first-line {
+ text-indent: 20px;
+}
+
+HTML
+
+<p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit,
+ sed do eiusmod tempor incididunt ut labore.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Pseudo-Elements', '#first-line-pseudo', '::first-line')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ La définition est affinée pour indiquer où ce pseudo-élément peut correspondre. Les propriétés possibles sont généralisées (fontes, décoration, disposition en ligne et {{cssxref("opacity")}}). Définit l'héritage de
+ ::first-letter.
+
+ {{SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow with ::first-line')}}
+ {{Spec2('CSS3 Text Decoration')}}
+ La propriété {{cssxref("text-shadow")}} peut être utilisée avec
+ ::first-letter.
+
+ {{SpecName('CSS3 Selectors', '#first-line', '::first-line')}}
+ {{Spec2('CSS3 Selectors')}}
+ La définition de « première ligne » a été reformulée. La syntaxe utilise désormais deux fois le caractère deux-points.
+
+
+ {{SpecName('CSS2.1', 'selector.html#first-line-pseudo', '::first-line')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification.
+
+
+
+{{SpecName('CSS1', '#the-first-line-pseudo-element', '::first-line')}}
+ {{Spec2('CSS1')}}
+ La définition initiale qui utilise la syntaxe avec un seul caractère deux-points.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_grammar-error/index.html b/files/fr/web/css/_doublecolon_grammar-error/index.html
deleted file mode 100644
index 6d55d7ab01..0000000000
--- a/files/fr/web/css/_doublecolon_grammar-error/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: '::grammar-error'
-slug: 'Web/CSS/::grammar-error'
-tags:
- - CSS
- - Experimental
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::grammar-error'
----
-::grammar-error représente une portion de texte que le navigateur signale comme contenant une ou plusieurs erreurs de grammaire.::grammar-error {
- color: green;
-}
-
-Propriétés autorisées
-
-::grammar-error :
-
-
-Syntaxe
-
-::grammar-error
-
-Exemples
-
-CSS
-
-p::grammar-error { color:red }
-
-HTML
-
-<p>
- Alice devina tout de suite qu’il chercher l’éventail
- et la paire de gants.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Pseudo-Elements', '#selectordef-grammar-error', '::grammar-error')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Définition initiale
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_grammar-error/index.md b/files/fr/web/css/_doublecolon_grammar-error/index.md
new file mode 100644
index 0000000000..6d55d7ab01
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_grammar-error/index.md
@@ -0,0 +1,82 @@
+---
+title: '::grammar-error'
+slug: 'Web/CSS/::grammar-error'
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::grammar-error'
+---
+::grammar-error représente une portion de texte que le navigateur signale comme contenant une ou plusieurs erreurs de grammaire.::grammar-error {
+ color: green;
+}
+
+Propriétés autorisées
+
+::grammar-error :
+
+
+Syntaxe
+
+::grammar-error
+
+Exemples
+
+CSS
+
+p::grammar-error { color:red }
+
+HTML
+
+<p>
+ Alice devina tout de suite qu’il chercher l’éventail
+ et la paire de gants.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Pseudo-Elements', '#selectordef-grammar-error', '::grammar-error')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Définition initiale
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_marker/index.html b/files/fr/web/css/_doublecolon_marker/index.html
deleted file mode 100644
index d4f4c6f0dc..0000000000
--- a/files/fr/web/css/_doublecolon_marker/index.html
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: '::marker'
-slug: 'Web/CSS/::marker'
-tags:
- - CSS
- - Experimental
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::marker'
----
-::marker représente le marqueur d'un élément d'une liste (par exemple la puce ou le numéro de l'élément d'un élément {{HTMLElement("li")}}). Ce pseudo-élément ne fonctionne que pour les éléments ou pseudo-éléments pour lesquels {{cssxref("display")}} vaut list-item (par défaut c'est le cas des éléments {{htmlelement("li")}} et {{htmlelement("summary")}}).::marker {
- color: red;
- font-size: 1.5em;
-}
-
-Propriétés autorisées
-
-::marker :
-
-
-Syntaxe
-
-{{CSSSyntax}}
-
-Exemples
-
-CSS
-
-li::marker {
- color:red;
-}
-
-HTML
-
-<ol>
- <li>Savoir lacer ses chaussures</li>
- <li>Et compter deux par deux.</li>
-</ol>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Pseudo-Elements', '#marker-pseudo', '::marker')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS3 Lists', '#marker-pseudo', '::marker')}}
- {{Spec2('CSS3 Lists')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_marker/index.md b/files/fr/web/css/_doublecolon_marker/index.md
new file mode 100644
index 0000000000..d4f4c6f0dc
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_marker/index.md
@@ -0,0 +1,97 @@
+---
+title: '::marker'
+slug: 'Web/CSS/::marker'
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::marker'
+---
+
-
- ::marker représente le marqueur d'un élément d'une liste (par exemple la puce ou le numéro de l'élément d'un élément {{HTMLElement("li")}}). Ce pseudo-élément ne fonctionne que pour les éléments ou pseudo-éléments pour lesquels {{cssxref("display")}} vaut list-item (par défaut c'est le cas des éléments {{htmlelement("li")}} et {{htmlelement("summary")}}).::marker {
+ color: red;
+ font-size: 1.5em;
+}
+
+Propriétés autorisées
+
+::marker :
+
+
+Syntaxe
+
+{{CSSSyntax}}
+
+Exemples
+
+CSS
+
+li::marker {
+ color:red;
+}
+
+HTML
+
+<ol>
+ <li>Savoir lacer ses chaussures</li>
+ <li>Et compter deux par deux.</li>
+</ol>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Pseudo-Elements', '#marker-pseudo', '::marker')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS3 Lists', '#marker-pseudo', '::marker')}}
+ {{Spec2('CSS3 Lists')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_part/index.html b/files/fr/web/css/_doublecolon_part/index.html
deleted file mode 100644
index 98bb333590..0000000000
--- a/files/fr/web/css/_doublecolon_part/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: '::part()'
-slug: 'Web/CSS/::part'
-tags:
- - '::part'
- - CSS
- - Draft
- - Exp
- - NeedsBrowserCompatibility
- - NeedsExample
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::part'
----
-
+
+ ::part représente n’importe quel élément dans un arbre fantôme qui a un attribut {{HTMLAttrxRef("part")}} correspondant.custom-element::part(foo) {
- /* Styles à appliquer à la partie `foo` */
-}
-
-
-Syntaxe
-
-{{CSSSyntax}}
-
-Exemples
-
-
-
-<tabbed-custom-element>Arbre fantôme
-
-<tabbed-custom-element><style type="text/css">
- *, ::before, ::after {
- box-sizing: border-box;
- }
-
- :host {
- display: flex;
- }
-</style>
-<div part="tab active">
- Tab 1
-</div>
-<div part="tab">
- Tab 2
-</div>
-<div part="tab">
- Tab 3
-</div>
-
-
-Feuille de style chargée dans un arbre léger
-
-
-tabbed-custom-element::part(tab) {
- color: #0c0c0dcc;
- border-bottom: transparent solid 2px;
-}
-
-tabbed-custom-element::part(tab):hover {
- background-color: #0c0c0d19;
- border-color: #0c0c0d33;
-}
-
-tabbed-custom-element::part(tab):hover:active {
- background-color: #0c0c0d33;
-}
-
-tabbed-custom-element::part(tab):focus {
- box-shadow:
- 0 0 0 1px #0a84ff inset,
- 0 0 0 1px #0a84ff,
- 0 0 0 4px rgba(10, 132, 255, 0.3);
-}
-
-tabbed-custom-element::part(active tab) {
- color: #0060df;
- border-color: #0a84ff !important;
-}
-
-
-Spécifications
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Shadow Parts", "#part", "::part")}}
- {{Spec2("CSS Shadow Parts")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_part/index.md b/files/fr/web/css/_doublecolon_part/index.md
new file mode 100644
index 0000000000..98bb333590
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_part/index.md
@@ -0,0 +1,111 @@
+---
+title: '::part()'
+slug: 'Web/CSS/::part'
+tags:
+ - '::part'
+ - CSS
+ - Draft
+ - Exp
+ - NeedsBrowserCompatibility
+ - NeedsExample
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::part'
+---
+::part()::part et ::theme::part représente n’importe quel élément dans un arbre fantôme qui a un attribut {{HTMLAttrxRef("part")}} correspondant.custom-element::part(foo) {
+ /* Styles à appliquer à la partie `foo` */
+}
+
+
+Syntaxe
+
+{{CSSSyntax}}
+
+Exemples
+
+
+
+<tabbed-custom-element>Arbre fantôme
+
+<tabbed-custom-element><style type="text/css">
+ *, ::before, ::after {
+ box-sizing: border-box;
+ }
+
+ :host {
+ display: flex;
+ }
+</style>
+<div part="tab active">
+ Tab 1
+</div>
+<div part="tab">
+ Tab 2
+</div>
+<div part="tab">
+ Tab 3
+</div>
+
+
+Feuille de style chargée dans un arbre léger
+
+
+tabbed-custom-element::part(tab) {
+ color: #0c0c0dcc;
+ border-bottom: transparent solid 2px;
+}
+
+tabbed-custom-element::part(tab):hover {
+ background-color: #0c0c0d19;
+ border-color: #0c0c0d33;
+}
+
+tabbed-custom-element::part(tab):hover:active {
+ background-color: #0c0c0d33;
+}
+
+tabbed-custom-element::part(tab):focus {
+ box-shadow:
+ 0 0 0 1px #0a84ff inset,
+ 0 0 0 1px #0a84ff,
+ 0 0 0 4px rgba(10, 132, 255, 0.3);
+}
+
+tabbed-custom-element::part(active tab) {
+ color: #0060df;
+ border-color: #0a84ff !important;
+}
+
+
+Spécifications
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Shadow Parts", "#part", "::part")}}
+ {{Spec2("CSS Shadow Parts")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_placeholder/index.html b/files/fr/web/css/_doublecolon_placeholder/index.html
deleted file mode 100644
index 54944043c7..0000000000
--- a/files/fr/web/css/_doublecolon_placeholder/index.html
+++ /dev/null
@@ -1,154 +0,0 @@
----
-title: '::placeholder'
-slug: Web/CSS/::placeholder
-tags:
- - CSS
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/::placeholder
----
-::part()::part et ::theme::placeholder représente le texte de substitution pour un élément {{HTMLElement("input")}} ou {{HTMLElement("textarea")}}. Cela permet aux développeurs web de personnaliser l'apparence de ce texte.::placeholder {
- color: blue;
- font-size: 1.5em;
-}
-
-
-
-
-Syntaxe
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-input::placeholder {
- color: red;
-}
-
-HTML
-
-<input type="email" placeholder="toto@exemple.com">
-
-Résultat
-
-Accessibilité
-
-Contraste
-
-Taux de contraste
-
-
-
-
-
-
-
-Utilisabilité
-
-aria-describedby afin de relier l'élément {{HTMLElement("input")}} à l'indication associée.aria-describedby afin de lire l'indication lorsque le libellé du champ aura été annoncé. La personne utilisant le lecteur d'écran pourra arrêter les annonces si elle estime que les informations supplémentaires ne sont pas nécessaires.<label for="user-email">Votre adresse mail</label>
-<span id="user-email-hint" class="input-hint">Exemple : johndoe@example.com</span>
-<input id="user-email" aria-describedby="user-email-hint" name="email" type="email">
-
-
-
-
-Mode « contraste élevé » de Windows
-
-
-
-
--ms-high-contrast (en anglais)Libellés ({{HTMLElement("<label>")}})
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Pseudo-Elements', '#placeholder-pseudo', '::placeholder')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Définitions initiales.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_placeholder/index.md b/files/fr/web/css/_doublecolon_placeholder/index.md
new file mode 100644
index 0000000000..54944043c7
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_placeholder/index.md
@@ -0,0 +1,154 @@
+---
+title: '::placeholder'
+slug: Web/CSS/::placeholder
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/::placeholder
+---
+
-
-
-
- ::placeholder représente le texte de substitution pour un élément {{HTMLElement("input")}} ou {{HTMLElement("textarea")}}. Cela permet aux développeurs web de personnaliser l'apparence de ce texte.::placeholder {
+ color: blue;
+ font-size: 1.5em;
+}
+
+
+
+
+Syntaxe
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+input::placeholder {
+ color: red;
+}
+
+HTML
+
+<input type="email" placeholder="toto@exemple.com">
+
+Résultat
+
+Accessibilité
+
+Contraste
+
+Taux de contraste
+
+
+
+
+
+
+
+Utilisabilité
+
+aria-describedby afin de relier l'élément {{HTMLElement("input")}} à l'indication associée.aria-describedby afin de lire l'indication lorsque le libellé du champ aura été annoncé. La personne utilisant le lecteur d'écran pourra arrêter les annonces si elle estime que les informations supplémentaires ne sont pas nécessaires.<label for="user-email">Votre adresse mail</label>
+<span id="user-email-hint" class="input-hint">Exemple : johndoe@example.com</span>
+<input id="user-email" aria-describedby="user-email-hint" name="email" type="email">
+
+
+
+
+Mode « contraste élevé » de Windows
+
+
+
+
+-ms-high-contrast (en anglais)Libellés ({{HTMLElement("<label>")}})
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Pseudo-Elements', '#placeholder-pseudo', '::placeholder')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Définitions initiales.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_selection/index.html b/files/fr/web/css/_doublecolon_selection/index.html
deleted file mode 100644
index 2072d308a1..0000000000
--- a/files/fr/web/css/_doublecolon_selection/index.html
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: '::selection'
-slug: Web/CSS/::selection
-tags:
- - CSS
- - Pseudo-element
- - Reference
-translation_of: Web/CSS/::selection
----
-
+
+
+
+ ::selection permet d'appliquer des règles CSS à une portion du document qui a été sélectionnée par l'utilisateur (via la souris ou un autre dispositif de pointage).::selection {
- background-color: cyan;
-}
-
-Propriétés autorisées
-
-::selection :
-
-
-Syntaxe
-
-/*Syntaxe propre à Firefox (61 et antérieur) */
-::-moz-selection
-{{csssyntax}}
-
-
-Exemples
-
-CSS
-
-/* du texte sélectionné sera jaune sur fond rouge */
-::-moz-selection {
- color: gold;
- background-color: red;
-}
-
-::selection {
- color: gold;
- background-color: red;
-}
-
-/* le texte sélectionné dans un paragraphe */
-/* sera blanc sur noir */
-p::-moz-selection {
- color: white;
- background-color: black;
-}
-
-p::selection {
- color: white;
- background-color: black;
-}
-
-HTML
-
-<div>Un peu de texte pour tester ::selection.</div>
-<p>Essayez également de sélectionner du texte dans ce <p></p>
-
-Résultat
-
-Accessibilité
-
-
-
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Pseudo-Elements', '#selectordef-selection', '::selection')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Définition initiale.
- ::selection a de nouveau été ajouté dans la spécification pour les pseudo-éléments de niveau 4.Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_selection/index.md b/files/fr/web/css/_doublecolon_selection/index.md
new file mode 100644
index 0000000000..2072d308a1
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_selection/index.md
@@ -0,0 +1,131 @@
+---
+title: '::selection'
+slug: Web/CSS/::selection
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+translation_of: Web/CSS/::selection
+---
+::selection permet d'appliquer des règles CSS à une portion du document qui a été sélectionnée par l'utilisateur (via la souris ou un autre dispositif de pointage).::selection {
+ background-color: cyan;
+}
+
+Propriétés autorisées
+
+::selection :
+
+
+Syntaxe
+
+/*Syntaxe propre à Firefox (61 et antérieur) */
+::-moz-selection
+{{csssyntax}}
+
+
+Exemples
+
+CSS
+
+/* du texte sélectionné sera jaune sur fond rouge */
+::-moz-selection {
+ color: gold;
+ background-color: red;
+}
+
+::selection {
+ color: gold;
+ background-color: red;
+}
+
+/* le texte sélectionné dans un paragraphe */
+/* sera blanc sur noir */
+p::-moz-selection {
+ color: white;
+ background-color: black;
+}
+
+p::selection {
+ color: white;
+ background-color: black;
+}
+
+HTML
+
+<div>Un peu de texte pour tester ::selection.</div>
+<p>Essayez également de sélectionner du texte dans ce <p></p>
+
+Résultat
+
+Accessibilité
+
+
+
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Pseudo-Elements', '#selectordef-selection', '::selection')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Définition initiale.
+ ::selection a de nouveau été ajouté dans la spécification pour les pseudo-éléments de niveau 4.Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_slotted/index.html b/files/fr/web/css/_doublecolon_slotted/index.html
deleted file mode 100644
index 0737e7ba63..0000000000
--- a/files/fr/web/css/_doublecolon_slotted/index.html
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: '::slotted()'
-slug: 'Web/CSS/::slotted'
-tags:
- - CSS
- - Pseudo-element
- - Reference
- - Web
-translation_of: 'Web/CSS/::slotted'
----
-::slotted() représente n'importe quel élément ayant été placé à l'intérieur d'un emplacement (slot) au sein d'un gabarit (template) HTML (cf. Utiliser les gabarits et les emplacements pour plus d'informations)./* Cible n'importe quel élément placé dans un emplacement */
-::slotted(*) {
- font-weight: bold;
-}
-
-/* Cible n'importe quel élément <span> placé dans un emplacement */
-::slotted(span) {
- font-weight: bold;
-}
-
-
-Syntax
-
-{{csssyntax}}
-
-Exemples
-
-slotted-pseudo-element (voir le résultat en live).<template id="person-template">
- <div>
- <h2>Carte d'identité d'une personne</h2>
- <slot name="person-name">NOM ABSENT</slot>
- <ul>
- <li><slot name="person-age">AGE ABSENT</slot></li>
- <li><slot name="person-occupation">POSTE ABSENT</slot></li>
- </ul>
- </div>
-</template>
-
-<person-details> — est défini de la façon suivante :customElements.define('person-details',
- class extends HTMLElement {
- constructor() {
- super();
- let template = document.getElementById('person-template');
- let templateContent = template.content;
-
- const shadowRoot = this.attachShadow({mode: 'open'});
-
- let style = document.createElement('style');
- style.textContent = 'div { padding: 10px; border: 1px solid gray; width: 200px; margin: 10px; }' +
- 'h2 { margin: 0 0 10px; }' +
- 'ul { margin: 0; }' +
- 'p { margin: 10px 0; }' +
- '::slotted(*) { color: gray; font-family: sans-serif; } ';
-
- shadowRoot.appendChild(style);
- shadowRoot.appendChild(templateContent.cloneNode(true));
- }
-})
-
-style de l'élément, on sélectionne tous les éléments présents dans les emplacements (::slotted(*)) afin de leur fournir différentes polices et couleurs. Cela permet d'avoir une meilleur vision des emplacements qui ne sont pas encore occupés.<person-details>
- <p slot="person-name">Dr. Shazaam</p>
- <span slot="person-age">Immortel</span>
- <span slot="person-occupation">Super-héros</span>
-</person-details>
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS Scope', '#slotted-pseudo', '::slotted')}}
- {{Spec2('CSS Scope')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/_doublecolon_slotted/index.md b/files/fr/web/css/_doublecolon_slotted/index.md
new file mode 100644
index 0000000000..0737e7ba63
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_slotted/index.md
@@ -0,0 +1,109 @@
+---
+title: '::slotted()'
+slug: 'Web/CSS/::slotted'
+tags:
+ - CSS
+ - Pseudo-element
+ - Reference
+ - Web
+translation_of: 'Web/CSS/::slotted'
+---
+::slotted() représente n'importe quel élément ayant été placé à l'intérieur d'un emplacement (slot) au sein d'un gabarit (template) HTML (cf. Utiliser les gabarits et les emplacements pour plus d'informations)./* Cible n'importe quel élément placé dans un emplacement */
+::slotted(*) {
+ font-weight: bold;
+}
+
+/* Cible n'importe quel élément <span> placé dans un emplacement */
+::slotted(span) {
+ font-weight: bold;
+}
+
+
+Syntax
+
+{{csssyntax}}
+
+Exemples
+
+slotted-pseudo-element (voir le résultat en live).<template id="person-template">
+ <div>
+ <h2>Carte d'identité d'une personne</h2>
+ <slot name="person-name">NOM ABSENT</slot>
+ <ul>
+ <li><slot name="person-age">AGE ABSENT</slot></li>
+ <li><slot name="person-occupation">POSTE ABSENT</slot></li>
+ </ul>
+ </div>
+</template>
+
+<person-details> — est défini de la façon suivante :customElements.define('person-details',
+ class extends HTMLElement {
+ constructor() {
+ super();
+ let template = document.getElementById('person-template');
+ let templateContent = template.content;
+
+ const shadowRoot = this.attachShadow({mode: 'open'});
+
+ let style = document.createElement('style');
+ style.textContent = 'div { padding: 10px; border: 1px solid gray; width: 200px; margin: 10px; }' +
+ 'h2 { margin: 0 0 10px; }' +
+ 'ul { margin: 0; }' +
+ 'p { margin: 10px 0; }' +
+ '::slotted(*) { color: gray; font-family: sans-serif; } ';
+
+ shadowRoot.appendChild(style);
+ shadowRoot.appendChild(templateContent.cloneNode(true));
+ }
+})
+
+style de l'élément, on sélectionne tous les éléments présents dans les emplacements (::slotted(*)) afin de leur fournir différentes polices et couleurs. Cela permet d'avoir une meilleur vision des emplacements qui ne sont pas encore occupés.<person-details>
+ <p slot="person-name">Dr. Shazaam</p>
+ <span slot="person-age">Immortel</span>
+ <span slot="person-occupation">Super-héros</span>
+</person-details>
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS Scope', '#slotted-pseudo', '::slotted')}}
+ {{Spec2('CSS Scope')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/_doublecolon_spelling-error/index.html b/files/fr/web/css/_doublecolon_spelling-error/index.html
deleted file mode 100644
index 5fc89ba317..0000000000
--- a/files/fr/web/css/_doublecolon_spelling-error/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: '::spelling-error'
-slug: 'Web/CSS/::spelling-error'
-tags:
- - CSS
- - Experimental
- - Pseudo-element
- - Reference
-translation_of: 'Web/CSS/::spelling-error'
----
-::spelling-error représente une portion de texte que le navigateur signale comme étant mal orthographiée.::spelling-error {
- color: red;
-}
-
-Propriétés autoriséees
-
-::spelling-error :
-
-
-Syntaxe
-
-::spelling-error
-
-Exemples
-
-CSS
-
-p::spelling-error { color:red }
-
-HTML
-
-<p>
- Alice devina tout de suite qu’il cherch l’éventail
- et la paire de gants.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Pseudo-Elements', '#selectordef-spelling-error', '::spelling-error')}}
- {{Spec2('CSS4 Pseudo-Elements')}}
- Définition initiale
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/_doublecolon_spelling-error/index.md b/files/fr/web/css/_doublecolon_spelling-error/index.md
new file mode 100644
index 0000000000..5fc89ba317
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_spelling-error/index.md
@@ -0,0 +1,82 @@
+---
+title: '::spelling-error'
+slug: 'Web/CSS/::spelling-error'
+tags:
+ - CSS
+ - Experimental
+ - Pseudo-element
+ - Reference
+translation_of: 'Web/CSS/::spelling-error'
+---
+::spelling-error représente une portion de texte que le navigateur signale comme étant mal orthographiée.::spelling-error {
+ color: red;
+}
+
+Propriétés autoriséees
+
+::spelling-error :
+
+
+Syntaxe
+
+::spelling-error
+
+Exemples
+
+CSS
+
+p::spelling-error { color:red }
+
+HTML
+
+<p>
+ Alice devina tout de suite qu’il cherch l’éventail
+ et la paire de gants.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Pseudo-Elements', '#selectordef-spelling-error', '::spelling-error')}}
+ {{Spec2('CSS4 Pseudo-Elements')}}
+ Définition initiale
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/_doublecolon_target-text/index.html b/files/fr/web/css/_doublecolon_target-text/index.html
deleted file mode 100644
index b576694e50..0000000000
--- a/files/fr/web/css/_doublecolon_target-text/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: '::target-text'
-slug: 'Web/CSS/::target-text'
-browser-compat: css.selectors.target-text
-translation_of: 'Web/CSS/::target-text'
----
-::target-text représente le texte vers lequel l'écran vient de défiler, dans le cas où le navigateur prend en charge les fragments scroll-to-text. Il permet aux auteurs de mettre en valeur cette section de texte.::target-text {
- background-color: pink;
-}
-
-Syntaxe
-
-Exemples
-
-Mise en valeur de scroll-to-text
-
-::target-text {
- background-color: rebeccapurple;
- color: white;
- font-weight: bold;
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/_doublecolon_target-text/index.md b/files/fr/web/css/_doublecolon_target-text/index.md
new file mode 100644
index 0000000000..b576694e50
--- /dev/null
+++ b/files/fr/web/css/_doublecolon_target-text/index.md
@@ -0,0 +1,43 @@
+---
+title: '::target-text'
+slug: 'Web/CSS/::target-text'
+browser-compat: css.selectors.target-text
+translation_of: 'Web/CSS/::target-text'
+---
+::target-text représente le texte vers lequel l'écran vient de défiler, dans le cas où le navigateur prend en charge les fragments scroll-to-text. Il permet aux auteurs de mettre en valeur cette section de texte.::target-text {
+ background-color: pink;
+}
+
+Syntaxe
+
+Exemples
+
+Mise en valeur de scroll-to-text
+
+::target-text {
+ background-color: rebeccapurple;
+ color: white;
+ font-weight: bold;
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/accent-color/index.html b/files/fr/web/css/accent-color/index.html
deleted file mode 100644
index 99717b6404..0000000000
--- a/files/fr/web/css/accent-color/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: accent-color
-slug: Web/CSS/accent-color
-browser-compat: css.properties.accent-color
-translation_of: Web/CSS/accent-color
----
-accent-color définit la couleur d'accentuation ({{Glossary("accent")}}) des éléments. Une accentuation est présente sur des éléments HTML tels que des {{HTMLElement("input")}} de type checkbox ou radio.Syntaxe
-
-/* Valeurs avec un mot-clé */
-accent-color: auto;
-
-/* Valeurs de <color> */
-accent-color: red;
-accent-color: #5729e9;
-accent-color: rgb(0, 200, 0);
-accent-color: hsl(228, 4%, 24%);
-
-/* Valeurs globales */
-accent-color: inherit;
-accent-color: initial;
-accent-color: revert;
-accent-color: unset;
-
-Valeurs
-
-
-
-
-autoDéfinition formelle
-
-Syntaxe formelle
-
-Exemples
-
-Définir une couleur d'accentuation personnalisée
-
-HTML
-
-<input type="checkbox" checked />
-<input type="checkbox" class="custom" checked />
-
-CSS
-
-input {
- accent-color: auto;
- display: block;
- width: 30px;
- height: 30px;
-}
-
-input.custom {
- accent-color: rebeccapurple;
-}
-
-
-Résultat
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/accent-color/index.md b/files/fr/web/css/accent-color/index.md
new file mode 100644
index 0000000000..99717b6404
--- /dev/null
+++ b/files/fr/web/css/accent-color/index.md
@@ -0,0 +1,88 @@
+---
+title: accent-color
+slug: Web/CSS/accent-color
+browser-compat: css.properties.accent-color
+translation_of: Web/CSS/accent-color
+---
+accent-color définit la couleur d'accentuation ({{Glossary("accent")}}) des éléments. Une accentuation est présente sur des éléments HTML tels que des {{HTMLElement("input")}} de type checkbox ou radio.Syntaxe
+
+/* Valeurs avec un mot-clé */
+accent-color: auto;
+
+/* Valeurs de <color> */
+accent-color: red;
+accent-color: #5729e9;
+accent-color: rgb(0, 200, 0);
+accent-color: hsl(228, 4%, 24%);
+
+/* Valeurs globales */
+accent-color: inherit;
+accent-color: initial;
+accent-color: revert;
+accent-color: unset;
+
+Valeurs
+
+
+
+
+autoDéfinition formelle
+
+Syntaxe formelle
+
+Exemples
+
+Définir une couleur d'accentuation personnalisée
+
+HTML
+
+<input type="checkbox" checked />
+<input type="checkbox" class="custom" checked />
+
+CSS
+
+input {
+ accent-color: auto;
+ display: block;
+ width: 30px;
+ height: 30px;
+}
+
+input.custom {
+ accent-color: rebeccapurple;
+}
+
+
+Résultat
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/actual_value/index.html b/files/fr/web/css/actual_value/index.html
deleted file mode 100644
index c0d975771f..0000000000
--- a/files/fr/web/css/actual_value/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Valeur réelle
-slug: Web/CSS/actual_value
-tags:
- - CSS
- - Guide
- - Reference
-translation_of: Web/CSS/actual_value
-original_slug: Web/CSS/valeur_reelle
----
-Calculer la valeur réelle d'une propriété
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS2.1', 'cascade.html#actual-value', 'actual value')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Voir aussi
-
-
diff --git a/files/fr/web/css/actual_value/index.md b/files/fr/web/css/actual_value/index.md
new file mode 100644
index 0000000000..c0d975771f
--- /dev/null
+++ b/files/fr/web/css/actual_value/index.md
@@ -0,0 +1,53 @@
+---
+title: Valeur réelle
+slug: Web/CSS/actual_value
+tags:
+ - CSS
+ - Guide
+ - Reference
+translation_of: Web/CSS/actual_value
+original_slug: Web/CSS/valeur_reelle
+---
+Calculer la valeur réelle d'une propriété
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS2.1', 'cascade.html#actual-value', 'actual value')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Voir aussi
+
+
diff --git a/files/fr/web/css/adjacent_sibling_combinator/index.html b/files/fr/web/css/adjacent_sibling_combinator/index.html
deleted file mode 100644
index c6100f0b8e..0000000000
--- a/files/fr/web/css/adjacent_sibling_combinator/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Combinateur de voisin direct
-slug: Web/CSS/Adjacent_sibling_combinator
-tags:
- - CSS
- - Reference
- - Sélecteur
-translation_of: Web/CSS/Adjacent_sibling_combinator
-original_slug: Web/CSS/Combinateur_de_voisin_direct
----
-/* Ne cible que les paragraphes situé directement après une image */
-img + p {
- font-style: bold;
-}
-
-Syntaxe
-
-premier_element + element_cible { styles }
-
-
-Exemples
-
-CSS
-
-li:first-of-type + li {
- color: red;
-}
-
-
-HTML
-
-<ul>
- <li>Un</li>
- <li>Deux</li>
- <li>Trois</li>
-</ul>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#adjacent-sibling-combinators', 'next-sibling combinator')}}
- {{Spec2('CSS4 Selectors')}}
- Renomme ce sélecteur en « next-sibling combinator ».
-
-
- {{SpecName('CSS3 Selectors', '#adjacent-sibling-combinators', 'Adjacent sibling combinator')}}
- {{Spec2('CSS3 Selectors')}}
-
-
-
-
-{{SpecName('CSS2.1', 'selector.html#adjacent-selectors', 'Adjacent sibling selectors')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/adjacent_sibling_combinator/index.md b/files/fr/web/css/adjacent_sibling_combinator/index.md
new file mode 100644
index 0000000000..c6100f0b8e
--- /dev/null
+++ b/files/fr/web/css/adjacent_sibling_combinator/index.md
@@ -0,0 +1,83 @@
+---
+title: Combinateur de voisin direct
+slug: Web/CSS/Adjacent_sibling_combinator
+tags:
+ - CSS
+ - Reference
+ - Sélecteur
+translation_of: Web/CSS/Adjacent_sibling_combinator
+original_slug: Web/CSS/Combinateur_de_voisin_direct
+---
+/* Ne cible que les paragraphes situé directement après une image */
+img + p {
+ font-style: bold;
+}
+
+Syntaxe
+
+premier_element + element_cible { styles }
+
+
+Exemples
+
+CSS
+
+li:first-of-type + li {
+ color: red;
+}
+
+
+HTML
+
+<ul>
+ <li>Un</li>
+ <li>Deux</li>
+ <li>Trois</li>
+</ul>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#adjacent-sibling-combinators', 'next-sibling combinator')}}
+ {{Spec2('CSS4 Selectors')}}
+ Renomme ce sélecteur en « next-sibling combinator ».
+
+
+ {{SpecName('CSS3 Selectors', '#adjacent-sibling-combinators', 'Adjacent sibling combinator')}}
+ {{Spec2('CSS3 Selectors')}}
+
+
+
+
+{{SpecName('CSS2.1', 'selector.html#adjacent-selectors', 'Adjacent sibling selectors')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/align-content/index.html b/files/fr/web/css/align-content/index.html
deleted file mode 100644
index 014928628a..0000000000
--- a/files/fr/web/css/align-content/index.html
+++ /dev/null
@@ -1,284 +0,0 @@
----
-title: align-content
-slug: Web/CSS/align-content
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/align-content
----
-align-content définit la façon dont l'espace est réparti entre et autour des éléments le long de l'axe en bloc du conteneur (c'est-à-dire l'axe orthogonal à l'axe d'écriture) lorsque celui-ci est un conteneur de boîte flexible et le long de l'axe principal lorsque le conteneur est une grille.flex-wrap: nowrap par exemple).Syntaxe
-
-/* Alignement le long de l'axe */
-/* Note : align-content ne prend pas en charge les valeurs left et right */
-align-content: center; /* Les éléments sont groupés au centre */
-align-content: start; /* Les éléments sont groupés au début */
-align-content: end; /* Les éléments sont groupés à la fin */
-align-content: flex-start; /* Les éléments flexibles sont groupés au début */
-align-content: flex-end; /* Les éléments flexibles sont groupés à la fin */
-
-/* Alignement normal */
-align-content: normal;
-
-/* Alignement sur la ligne de base */
-align-content: baseline;
-align-content: first baseline;
-align-content: last baseline;
-
-/* Répartition de l'espace */
-align-content: space-between; /* L'espace est réparti entre
- les éléments, le premier est
- accolé au bord et le dernier
- également. */
-align-content: space-around; /* L'espace est réparti entre les
- éléments avec un demi-espace
- au début et à la fin */
-align-content: space-evenly; /* L'espace est réparti entre les
- éléments et autour */
-align-content: stretch; /* Les éléments dimensionnés avec
- auto sont étirés également
- afin de remplir le conteneur*/
-
-/* Gestion du dépassement */
-align-content: safe center;
-align-content: unsafe center;
-
-/* Valeurs globales */
-align-content: inherit;
-align-content: initial;
-align-content: unset;
-
-Valeurs
-
-
-
-
-startendflex-startstart.flex-endend.centernormalalign-content n'avait pas été défini.baseline
- first baseline
- last baseline
Ces valeurs permettent de définir l'alignement par rapport à la ligne de base pour l'élément du conteneur avec la ligne de base la plus haute ou la plus basse.
- Si first baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.space-betweenspace-aroundspace-evenlystretchsafestart.unsafeSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-#container {
- height:200px;
- width: 240px;
- align-content: center; /* Cette valeur peut être changée dans la démonstration */
- background-color: #8c8c8c;
-}
-
-.flex {
- display: flex;
- flex-wrap: wrap;
-}
-
-.grid {
- display: grid;
- grid-template-columns: repeat(auto-fill, 50px);
-}
-
-div > div {
- box-sizing: border-box;
- border: 2px solid #8c8c8c;
- width: 50px;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-#item1 {
- background-color: #8cffa0;
- min-height: 30px;
-}
-
-#item2 {
- background-color: #a0c8ff;
- min-height: 50px;
-}
-
-#item3 {
- background-color: #ffa08c;
- min-height: 40px;
-}
-
-#item4 {
- background-color: #ffff8c;
- min-height: 60px;
-}
-
-#item5 {
- background-color: #ff8cff;
- min-height: 70px;
-}
-
-#item6 {
- background-color: #8cffff;
- min-height: 50px;
- font-size: 30px;
-}
-
-select {
- font-size: 16px;
-}
-
-.row {
- margin-top: 10px;
-}
-
-
-HTML
-
-<div id="container" class="flex">
- <div id="item1">1</div>
- <div id="item2">2</div>
- <div id="item3">3</div>
- <div id="item4">4</div>
- <div id="item5">5</div>
- <div id="item6">6</div>
-</div>
-
-<div class="row">
- <label for="display">display: </label>
- <select id="display">
- <option value="flex">flex</option>
- <option value="grid">grid</option>
- </select>
-</div>
-
-<div class="row">
- <label for="values">align-content: </label>
- <select id="values">
- <option value="normal">normal</option>
- <option value="stretch">stretch</option>
- <option value="flex-start">flex-start</option>
- <option value="flex-end">flex-end</option>
- <option value="center" selected>center</option>
- <option value="space-between">space-between</option>
- <option value="space-around">space-around</option>
- <option value="space-evenly">space-evenly</option>
-
- <option value="start">start</option>
- <option value="end">end</option>
- <option value="left">left</option>
- <option value="right">right</option>
-
- <option value="baseline">baseline</option>
- <option value="first baseline">first baseline</option>
- <option value="last baseline">last baseline</option>
-
- <option value="safe center">safe center</option>
- <option value="unsafe center">unsafe center</option>
- <option value="safe right">safe right</option>
- <option value="unsafe right">unsafe right</option>
- <option value="safe end">safe end</option>
- <option value="unsafe end">unsafe end</option>
- <option value="safe flex-end">safe flex-end</option>
- <option value="unsafe flex-end">unsafe flex-end</option>
- </select>
-</div>
-
-
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS3 Box Alignment", "#propdef-align-content", "align-content")}}
- {{Spec2("CSS3 Box Alignment")}}
- Ajout des valeurs
- [ first | last ]? baseline, start, end, left, right et unsafe | safe.
-
-
-{{SpecName("CSS3 Flexbox", "#align-content", "align-content")}}
- {{Spec2("CSS3 Flexbox")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Prise en charge pour les dispositions flexibles (Flexbox)
-
-Prise en charge pour les dispositions avec les grilles CSS
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/align-content/index.md b/files/fr/web/css/align-content/index.md
new file mode 100644
index 0000000000..014928628a
--- /dev/null
+++ b/files/fr/web/css/align-content/index.md
@@ -0,0 +1,284 @@
+---
+title: align-content
+slug: Web/CSS/align-content
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/align-content
+---
+align-content définit la façon dont l'espace est réparti entre et autour des éléments le long de l'axe en bloc du conteneur (c'est-à-dire l'axe orthogonal à l'axe d'écriture) lorsque celui-ci est un conteneur de boîte flexible et le long de l'axe principal lorsque le conteneur est une grille.flex-wrap: nowrap par exemple).Syntaxe
+
+/* Alignement le long de l'axe */
+/* Note : align-content ne prend pas en charge les valeurs left et right */
+align-content: center; /* Les éléments sont groupés au centre */
+align-content: start; /* Les éléments sont groupés au début */
+align-content: end; /* Les éléments sont groupés à la fin */
+align-content: flex-start; /* Les éléments flexibles sont groupés au début */
+align-content: flex-end; /* Les éléments flexibles sont groupés à la fin */
+
+/* Alignement normal */
+align-content: normal;
+
+/* Alignement sur la ligne de base */
+align-content: baseline;
+align-content: first baseline;
+align-content: last baseline;
+
+/* Répartition de l'espace */
+align-content: space-between; /* L'espace est réparti entre
+ les éléments, le premier est
+ accolé au bord et le dernier
+ également. */
+align-content: space-around; /* L'espace est réparti entre les
+ éléments avec un demi-espace
+ au début et à la fin */
+align-content: space-evenly; /* L'espace est réparti entre les
+ éléments et autour */
+align-content: stretch; /* Les éléments dimensionnés avec
+ auto sont étirés également
+ afin de remplir le conteneur*/
+
+/* Gestion du dépassement */
+align-content: safe center;
+align-content: unsafe center;
+
+/* Valeurs globales */
+align-content: inherit;
+align-content: initial;
+align-content: unset;
+
+Valeurs
+
+
+
+
+startendflex-startstart.flex-endend.centernormalalign-content n'avait pas été défini.baseline
+ first baseline
+ last baseline
Ces valeurs permettent de définir l'alignement par rapport à la ligne de base pour l'élément du conteneur avec la ligne de base la plus haute ou la plus basse.
+ Si first baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.space-betweenspace-aroundspace-evenlystretchsafestart.unsafeSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+#container {
+ height:200px;
+ width: 240px;
+ align-content: center; /* Cette valeur peut être changée dans la démonstration */
+ background-color: #8c8c8c;
+}
+
+.flex {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 50px);
+}
+
+div > div {
+ box-sizing: border-box;
+ border: 2px solid #8c8c8c;
+ width: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+#item1 {
+ background-color: #8cffa0;
+ min-height: 30px;
+}
+
+#item2 {
+ background-color: #a0c8ff;
+ min-height: 50px;
+}
+
+#item3 {
+ background-color: #ffa08c;
+ min-height: 40px;
+}
+
+#item4 {
+ background-color: #ffff8c;
+ min-height: 60px;
+}
+
+#item5 {
+ background-color: #ff8cff;
+ min-height: 70px;
+}
+
+#item6 {
+ background-color: #8cffff;
+ min-height: 50px;
+ font-size: 30px;
+}
+
+select {
+ font-size: 16px;
+}
+
+.row {
+ margin-top: 10px;
+}
+
+
+HTML
+
+<div id="container" class="flex">
+ <div id="item1">1</div>
+ <div id="item2">2</div>
+ <div id="item3">3</div>
+ <div id="item4">4</div>
+ <div id="item5">5</div>
+ <div id="item6">6</div>
+</div>
+
+<div class="row">
+ <label for="display">display: </label>
+ <select id="display">
+ <option value="flex">flex</option>
+ <option value="grid">grid</option>
+ </select>
+</div>
+
+<div class="row">
+ <label for="values">align-content: </label>
+ <select id="values">
+ <option value="normal">normal</option>
+ <option value="stretch">stretch</option>
+ <option value="flex-start">flex-start</option>
+ <option value="flex-end">flex-end</option>
+ <option value="center" selected>center</option>
+ <option value="space-between">space-between</option>
+ <option value="space-around">space-around</option>
+ <option value="space-evenly">space-evenly</option>
+
+ <option value="start">start</option>
+ <option value="end">end</option>
+ <option value="left">left</option>
+ <option value="right">right</option>
+
+ <option value="baseline">baseline</option>
+ <option value="first baseline">first baseline</option>
+ <option value="last baseline">last baseline</option>
+
+ <option value="safe center">safe center</option>
+ <option value="unsafe center">unsafe center</option>
+ <option value="safe right">safe right</option>
+ <option value="unsafe right">unsafe right</option>
+ <option value="safe end">safe end</option>
+ <option value="unsafe end">unsafe end</option>
+ <option value="safe flex-end">safe flex-end</option>
+ <option value="unsafe flex-end">unsafe flex-end</option>
+ </select>
+</div>
+
+
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS3 Box Alignment", "#propdef-align-content", "align-content")}}
+ {{Spec2("CSS3 Box Alignment")}}
+ Ajout des valeurs
+ [ first | last ]? baseline, start, end, left, right et unsafe | safe.
+
+
+{{SpecName("CSS3 Flexbox", "#align-content", "align-content")}}
+ {{Spec2("CSS3 Flexbox")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Prise en charge pour les dispositions flexibles (Flexbox)
+
+Prise en charge pour les dispositions avec les grilles CSS
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/align-items/index.html b/files/fr/web/css/align-items/index.html
deleted file mode 100644
index 69e1fcd440..0000000000
--- a/files/fr/web/css/align-items/index.html
+++ /dev/null
@@ -1,278 +0,0 @@
----
-title: align-items
-slug: Web/CSS/align-items
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/align-items
----
-align-items définit la valeur de {{cssxref("align-self")}} sur l'ensemble des éléments-fils directs.align-self définit elle l'alignement d'un objet au sein de son conteneur. Pour les boîtes flexibles, cette propriété contrôle l'alignement par rapport à l'axe secondaire (cross axis). Au sein d'une grille CSS, elle contrôle l'alignement des éléments sur l'axe de bloc de la zone de grille correspondante.align-items au sein d'une grile.Syntaxe
-
-/* Mots-clés de base */
-align-items: normal;
-align-items: stretch;
-
-/* Alignement géométrique */
-/* align-items ne gère pas les valeurs left et right */
-align-items: center; /* Les éléments sont regroupés au centre */
-align-items: start; /* Les éléments sont regroupés au début */
-align-items: end; /* Les éléments sont regroupés à la fin */
-align-items: flex-start; /* Les éléments flexibles sont regroupés au début */
-align-items: flex-end; /* Les éléments flexibles sont regroupés à la fin */
-align-items: self-start;
-align-items: self-end;
-
-/* Alignement par rapport à la ligne de base */
-align-items: first;
-align-items: first baseline;
-align-items: last baseline;
-
-/* Gestion du dépassement */
-align-items: safe center;
-align-items: unsafe center;
-
-/* Valeurs globales */
-align-items: inherit;
-align-items: initial;
-align-items: unset;
-
-
-Valeurs
-
-
-
-
-normal
-
- start pour les éléments remplacés, pour les autres éléments positionnés de façon absolue, il est synonyme de stretch.stretch.stretch.stretch sauf pour les boîtes ayant des dimensions intrinsèques où il se comporte comme start.flex-startflex-endcenterstartendcenterself-startself-endbaselinefirst baseline
- last baselinestretchsafestart à la place.unsafeSyntaxe formelle
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-#container {
- height:200px;
- width: 240px;
- align-items: center; /* Cette valeur peut être modifiée dans l'exemple */
- background-color: #8c8c8c;
-}
-
-.flex {
- display: flex;
- flex-wrap: wrap;
-}
-
-.grid {
- display: grid;
- grid-template-columns: repeat(auto-fill, 50px);
-}
-
-div > div {
- box-sizing: border-box;
- border: 2px solid #8c8c8c;
- width: 50px;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-#item1 {
- background-color: #8cffa0;
- min-height: 30px;
-}
-
-#item2 {
- background-color: #a0c8ff;
- min-height: 50px;
-}
-
-#item3 {
- background-color: #ffa08c;
- min-height: 40px;
-}
-
-#item4 {
- background-color: #ffff8c;
- min-height: 60px;
-}
-
-#item5 {
- background-color: #ff8cff;
- min-height: 70px;
-}
-
-#item6 {
- background-color: #8cffff;
- min-height: 50px;
- font-size: 30px;
-}
-
-select {
- font-size: 16px;
-}
-
-.row {
- margin-top: 10px;
-}
-
-HTML
-
-<div id="container" class="flex">
- <div id="item1">1</div>
- <div id="item2">2</div>
- <div id="item3">3</div>
- <div id="item4">4</div>
- <div id="item5">5</div>
- <div id="item6">6</div>
-</div>
-
-<div class="row">
- <label for="display">display: </label>
- <select id="display">
- <option value="flex">flex</option>
- <option value="grid">grid</option>
- </select>
-</div>
-
-<div class="row">
- <label for="values">align-items: </label>
- <select id="values">
- <option value="normal">normal</option>
- <option value="flex-start">flex-start</option>
- <option value="flex-end">flex-end</option>
- <option value="center" selected>center</option>
- <option value="baseline">baseline</option>
- <option value="stretch">stretch</option>
-
- <option value="start">start</option>
- <option value="end">end</option>
- <option value="self-start">self-start</option>
- <option value="self-end">self-end</option>
- <option value="first baseline">first baseline</option>
- <option value="last baseline">last baseline</option>
-
- <option value="safe center">safe center</option>
- <option value="unsafe center">unsafe center</option>
- <option value="safe right">safe right</option>
- <option value="unsafe right">unsafe right</option>
- <option value="safe end">safe end</option>
- <option value="unsafe end">unsafe end</option>
- <option value="safe self-end">safe self-end</option>
- <option value="unsafe self-end">unsafe self-end</option>
- <option value="safe flex-end">safe flex-end</option>
- <option value="unsafe flex-end">unsafe flex-end</option>
- </select>
-</div>
-
-
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS3 Box Alignment", "#propdef-align-items", "align-items")}}
- {{Spec2("CSS3 Box Alignment")}}
-
-
-
-
-{{SpecName('CSS3 Flexbox', '#propdef-align-items', 'align-items')}}
- {{Spec2('CSS3 Flexbox')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Prise en charge pour les dispositions flexibles
-
-Prise en charge pour les dispositions en grille
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/align-items/index.md b/files/fr/web/css/align-items/index.md
new file mode 100644
index 0000000000..69e1fcd440
--- /dev/null
+++ b/files/fr/web/css/align-items/index.md
@@ -0,0 +1,278 @@
+---
+title: align-items
+slug: Web/CSS/align-items
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/align-items
+---
+align-items définit la valeur de {{cssxref("align-self")}} sur l'ensemble des éléments-fils directs.align-self définit elle l'alignement d'un objet au sein de son conteneur. Pour les boîtes flexibles, cette propriété contrôle l'alignement par rapport à l'axe secondaire (cross axis). Au sein d'une grille CSS, elle contrôle l'alignement des éléments sur l'axe de bloc de la zone de grille correspondante.align-items au sein d'une grile.Syntaxe
+
+/* Mots-clés de base */
+align-items: normal;
+align-items: stretch;
+
+/* Alignement géométrique */
+/* align-items ne gère pas les valeurs left et right */
+align-items: center; /* Les éléments sont regroupés au centre */
+align-items: start; /* Les éléments sont regroupés au début */
+align-items: end; /* Les éléments sont regroupés à la fin */
+align-items: flex-start; /* Les éléments flexibles sont regroupés au début */
+align-items: flex-end; /* Les éléments flexibles sont regroupés à la fin */
+align-items: self-start;
+align-items: self-end;
+
+/* Alignement par rapport à la ligne de base */
+align-items: first;
+align-items: first baseline;
+align-items: last baseline;
+
+/* Gestion du dépassement */
+align-items: safe center;
+align-items: unsafe center;
+
+/* Valeurs globales */
+align-items: inherit;
+align-items: initial;
+align-items: unset;
+
+
+Valeurs
+
+
+
+
+normal
+
+ start pour les éléments remplacés, pour les autres éléments positionnés de façon absolue, il est synonyme de stretch.stretch.stretch.stretch sauf pour les boîtes ayant des dimensions intrinsèques où il se comporte comme start.flex-startflex-endcenterstartendcenterself-startself-endbaselinefirst baseline
+ last baselinestretchsafestart à la place.unsafeSyntaxe formelle
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+#container {
+ height:200px;
+ width: 240px;
+ align-items: center; /* Cette valeur peut être modifiée dans l'exemple */
+ background-color: #8c8c8c;
+}
+
+.flex {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 50px);
+}
+
+div > div {
+ box-sizing: border-box;
+ border: 2px solid #8c8c8c;
+ width: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+#item1 {
+ background-color: #8cffa0;
+ min-height: 30px;
+}
+
+#item2 {
+ background-color: #a0c8ff;
+ min-height: 50px;
+}
+
+#item3 {
+ background-color: #ffa08c;
+ min-height: 40px;
+}
+
+#item4 {
+ background-color: #ffff8c;
+ min-height: 60px;
+}
+
+#item5 {
+ background-color: #ff8cff;
+ min-height: 70px;
+}
+
+#item6 {
+ background-color: #8cffff;
+ min-height: 50px;
+ font-size: 30px;
+}
+
+select {
+ font-size: 16px;
+}
+
+.row {
+ margin-top: 10px;
+}
+
+HTML
+
+<div id="container" class="flex">
+ <div id="item1">1</div>
+ <div id="item2">2</div>
+ <div id="item3">3</div>
+ <div id="item4">4</div>
+ <div id="item5">5</div>
+ <div id="item6">6</div>
+</div>
+
+<div class="row">
+ <label for="display">display: </label>
+ <select id="display">
+ <option value="flex">flex</option>
+ <option value="grid">grid</option>
+ </select>
+</div>
+
+<div class="row">
+ <label for="values">align-items: </label>
+ <select id="values">
+ <option value="normal">normal</option>
+ <option value="flex-start">flex-start</option>
+ <option value="flex-end">flex-end</option>
+ <option value="center" selected>center</option>
+ <option value="baseline">baseline</option>
+ <option value="stretch">stretch</option>
+
+ <option value="start">start</option>
+ <option value="end">end</option>
+ <option value="self-start">self-start</option>
+ <option value="self-end">self-end</option>
+ <option value="first baseline">first baseline</option>
+ <option value="last baseline">last baseline</option>
+
+ <option value="safe center">safe center</option>
+ <option value="unsafe center">unsafe center</option>
+ <option value="safe right">safe right</option>
+ <option value="unsafe right">unsafe right</option>
+ <option value="safe end">safe end</option>
+ <option value="unsafe end">unsafe end</option>
+ <option value="safe self-end">safe self-end</option>
+ <option value="unsafe self-end">unsafe self-end</option>
+ <option value="safe flex-end">safe flex-end</option>
+ <option value="unsafe flex-end">unsafe flex-end</option>
+ </select>
+</div>
+
+
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS3 Box Alignment", "#propdef-align-items", "align-items")}}
+ {{Spec2("CSS3 Box Alignment")}}
+
+
+
+
+{{SpecName('CSS3 Flexbox', '#propdef-align-items', 'align-items')}}
+ {{Spec2('CSS3 Flexbox')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Prise en charge pour les dispositions flexibles
+
+Prise en charge pour les dispositions en grille
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/align-self/index.html b/files/fr/web/css/align-self/index.html
deleted file mode 100644
index 02b2574984..0000000000
--- a/files/fr/web/css/align-self/index.html
+++ /dev/null
@@ -1,183 +0,0 @@
----
-title: align-self
-slug: Web/CSS/align-self
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/align-self
----
-align-self permet d'aligner les objets flexibles d'une ligne flexible ou d'une grille en surchargeant la valeur donnée par {{cssxref("align-items")}}.auto) pour l'axe perpendiculaire à l'axe principal, align-self sera ignoré. Lorsque le conteneur est une grille, align-self permet d'aligner l'élément au sein de la zone de grille. Si le conteneur est une boîte flexible, l'alignement se fait selon l'axe secondaire.Syntaxe
-
-/* Valeurs avec un mot-clé */
-align-self: auto;
-align-self: normal;
-
-/* Alignement géométrique */
-/* align-self ne gère pas les valeurs left et right */
-align-self: center; /* Les éléments sont alignés sur le centre */
-align-self: start; /* Les éléments sont alignés au début de l'axe */
-align-self: end; /* Les éléments sont alignés à la fin de l'axe */
-align-self: self-start; /* Les éléments sont alignés par rapport à leur début */
-align-self: self-end; /* Les éléments sont alignés par rapport à leur fin */
-align-self: flex-start; /* Les éléments flexibles sont alignés au début */
-align-self: flex-end; /* Les éléments flexibles sont alignés à la fin */
-
-/* Alignement selon la ligne de base */
-align-self: baseline;
-align-self: first baseline;
-align-self: last baseline;
-align-self: stretch; /* Les objets dimensionnés avec 'auto' sont */
- /* étirés pour remplir le conteneur */
-
-/* Alignement avec gestion du dépassement */
-align-self: safe center;
-align-self: unsafe center;
-
-/* Valeurs globales */
-align-self: inherit;
-align-self: initial;
-align-self: unset;
-
-Valeurs
-
-
-
-
-autonormal
-
- start pour les boîtes remplacées positionnées de façon absolue, il est synonyme de stretch pour les autres boîtes positionnées de façon absolue.stretch.stretch.stretch, sauf pour les boîtes qui ont un ratio d'aspec ou des dimensions intrinsèques, dans ce cas, cette valeur se comporte comme start.self-startself-endflex-startflex-endcenterbaseline
- first baseline
- last baseline
- Si besoin, la valeur first baseline est remplacée par start et last baseline est remplacée par end.stretchsafestart avait été utilisée.unsafeSyntaxe formelle
-
-{{csssyntax}}
-
-CSS
-
-.flex-container {
- height: 250px;
- display: flex;
-}
-
-.element-flex {
- background: palegreen;
- width: 100px;
- padding: 5px;
- margin: 5px;
- line-height: 50px;
- font-size: 2em;
-}
-
-.center {
- -webkit-align-self: center;
- align-self: center;
-}
-
-.baseline {
- -webkit-align-self: baseline;
- align-self: baseline;
-}
-
-.stretch {
- -webkit-align-self: stretch;
- align-self: stretch;
-}
-
-
-HTML
-
-<div class="flex-container">
- <p class="element-flex center">Milieu</p>
- <p class="element-flex baseline">Base</p>
- <p class="element-flex stretch">Étiré</p>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS3 Box Alignment", "#propdef-align-self", "align-self")}}
- {{Spec2("CSS3 Box Alignment")}}
-
-
-
-
-{{SpecName("CSS3 Flexbox", "#propdef-align-self", "align-self")}}
- {{Spec2("CSS3 Flexbox")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Prise en charge pour les dispositions avec les boîtes flexibles (Flexbox)
-
-Prise en charge pour les dispositions avec les grilles CSS
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/align-self/index.md b/files/fr/web/css/align-self/index.md
new file mode 100644
index 0000000000..02b2574984
--- /dev/null
+++ b/files/fr/web/css/align-self/index.md
@@ -0,0 +1,183 @@
+---
+title: align-self
+slug: Web/CSS/align-self
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/align-self
+---
+align-self permet d'aligner les objets flexibles d'une ligne flexible ou d'une grille en surchargeant la valeur donnée par {{cssxref("align-items")}}.auto) pour l'axe perpendiculaire à l'axe principal, align-self sera ignoré. Lorsque le conteneur est une grille, align-self permet d'aligner l'élément au sein de la zone de grille. Si le conteneur est une boîte flexible, l'alignement se fait selon l'axe secondaire.Syntaxe
+
+/* Valeurs avec un mot-clé */
+align-self: auto;
+align-self: normal;
+
+/* Alignement géométrique */
+/* align-self ne gère pas les valeurs left et right */
+align-self: center; /* Les éléments sont alignés sur le centre */
+align-self: start; /* Les éléments sont alignés au début de l'axe */
+align-self: end; /* Les éléments sont alignés à la fin de l'axe */
+align-self: self-start; /* Les éléments sont alignés par rapport à leur début */
+align-self: self-end; /* Les éléments sont alignés par rapport à leur fin */
+align-self: flex-start; /* Les éléments flexibles sont alignés au début */
+align-self: flex-end; /* Les éléments flexibles sont alignés à la fin */
+
+/* Alignement selon la ligne de base */
+align-self: baseline;
+align-self: first baseline;
+align-self: last baseline;
+align-self: stretch; /* Les objets dimensionnés avec 'auto' sont */
+ /* étirés pour remplir le conteneur */
+
+/* Alignement avec gestion du dépassement */
+align-self: safe center;
+align-self: unsafe center;
+
+/* Valeurs globales */
+align-self: inherit;
+align-self: initial;
+align-self: unset;
+
+Valeurs
+
+
+
+
+autonormal
+
+ start pour les boîtes remplacées positionnées de façon absolue, il est synonyme de stretch pour les autres boîtes positionnées de façon absolue.stretch.stretch.stretch, sauf pour les boîtes qui ont un ratio d'aspec ou des dimensions intrinsèques, dans ce cas, cette valeur se comporte comme start.self-startself-endflex-startflex-endcenterbaseline
+ first baseline
+ last baseline
+ Si besoin, la valeur first baseline est remplacée par start et last baseline est remplacée par end.stretchsafestart avait été utilisée.unsafeSyntaxe formelle
+
+{{csssyntax}}
+
+CSS
+
+.flex-container {
+ height: 250px;
+ display: flex;
+}
+
+.element-flex {
+ background: palegreen;
+ width: 100px;
+ padding: 5px;
+ margin: 5px;
+ line-height: 50px;
+ font-size: 2em;
+}
+
+.center {
+ -webkit-align-self: center;
+ align-self: center;
+}
+
+.baseline {
+ -webkit-align-self: baseline;
+ align-self: baseline;
+}
+
+.stretch {
+ -webkit-align-self: stretch;
+ align-self: stretch;
+}
+
+
+HTML
+
+<div class="flex-container">
+ <p class="element-flex center">Milieu</p>
+ <p class="element-flex baseline">Base</p>
+ <p class="element-flex stretch">Étiré</p>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS3 Box Alignment", "#propdef-align-self", "align-self")}}
+ {{Spec2("CSS3 Box Alignment")}}
+
+
+
+
+{{SpecName("CSS3 Flexbox", "#propdef-align-self", "align-self")}}
+ {{Spec2("CSS3 Flexbox")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Prise en charge pour les dispositions avec les boîtes flexibles (Flexbox)
+
+Prise en charge pour les dispositions avec les grilles CSS
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/all/index.html b/files/fr/web/css/all/index.html
deleted file mode 100644
index 335620c2ee..0000000000
--- a/files/fr/web/css/all/index.html
+++ /dev/null
@@ -1,162 +0,0 @@
----
-title: all
-slug: Web/CSS/all
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/all
----
-all permet de réinitialiser toutes les propriétés, à l'exception de {{cssxref("unicode-bidi")}} et {{cssxref("direction")}}, avec leurs valeurs initiales, héritées ou qui proviennent d'une autre feuille de style.Syntaxe
-
-/* Valeurs globales */
-all: initial;
-all: inherit;
-all: unset;
-
-/* Héritage et cascade CSS : Niveau 4 */
-all: revert;
-
-
-all est définie avec un des mots-clés globaux de CSS. On notera que la valeur de cette propriété n'a pas d'impact sur les propriétés {{cssxref("unicode-bidi")}} et {{cssxref("direction")}}.Valeurs
-
-
-
-
-initialall (ou qu'il hérite de cette valeur via un élément parent) devront prendre leurs valeurs initiales.inheritall (ou qu'il hérite de cette valeur via un élément parent) devront prendre les valeurs héritées (c'est-à-dire celles définies pour le parent de l'élément).unsetrevertrevert, le comportement obtenu sera différent selon l'origine de la déclaration :
-
-
- unset.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<blockquote id="quote">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-</blockquote>
-Phasellus eget velit sagittis.
-
-CSS
-
-body {
- font-size: small;
- background-color: #F0F0F0;
- color: blue;
-}
-
-blockquote {
- background-color: skyblue;
- color: red;
-}
-
-
-Résultat
-
-Pas de propriété
-
-
-
-
-{{EmbedLiveSample("ex0", "200", "125")}}
-
-all
-
-
-
-
-{{EmbedLiveSample("ex1", "200", "125")}}
-
-all:unsettransparent (la valeur initiale), mais {{cssxref("font-size")}} vaut toujours small (valeur héritée) et {{cssxref("color")}} vaut (valeur héritée).
-
-
-
-
-{{EmbedLiveSample("ex2", "200", "125")}}
-
-all:initialtransparent (sa valeur initiale), {{cssxref("font-size")}} vaut normal (valeur initiale) et {{cssxref("color")}} vaut black (sa valeur initiale).
-
-
-
-
-{{EmbedLiveSample("ex3", "200", "125")}}
-
-all:inherit#F0F0F0 (valeur héritée), {{cssxref("font-size")}} vaut small (valeur héritée) et {{cssxref("color")}} vaut blue (valeur héritée).Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Cascade', '#all-shorthand', 'all')}}
- {{Spec2('CSS4 Cascade')}}
- Ajout de la valeur
- revert.
-
-
-{{SpecName('CSS3 Cascade', '#all-shorthand', 'all')}}
- {{Spec2('CSS3 Cascade')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/all/index.md b/files/fr/web/css/all/index.md
new file mode 100644
index 0000000000..335620c2ee
--- /dev/null
+++ b/files/fr/web/css/all/index.md
@@ -0,0 +1,162 @@
+---
+title: all
+slug: Web/CSS/all
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/all
+---
+all permet de réinitialiser toutes les propriétés, à l'exception de {{cssxref("unicode-bidi")}} et {{cssxref("direction")}}, avec leurs valeurs initiales, héritées ou qui proviennent d'une autre feuille de style.Syntaxe
+
+/* Valeurs globales */
+all: initial;
+all: inherit;
+all: unset;
+
+/* Héritage et cascade CSS : Niveau 4 */
+all: revert;
+
+
+all est définie avec un des mots-clés globaux de CSS. On notera que la valeur de cette propriété n'a pas d'impact sur les propriétés {{cssxref("unicode-bidi")}} et {{cssxref("direction")}}.Valeurs
+
+
+
+
+initialall (ou qu'il hérite de cette valeur via un élément parent) devront prendre leurs valeurs initiales.inheritall (ou qu'il hérite de cette valeur via un élément parent) devront prendre les valeurs héritées (c'est-à-dire celles définies pour le parent de l'élément).unsetrevertrevert, le comportement obtenu sera différent selon l'origine de la déclaration :
+
+
+ unset.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<blockquote id="quote">
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+</blockquote>
+Phasellus eget velit sagittis.
+
+CSS
+
+body {
+ font-size: small;
+ background-color: #F0F0F0;
+ color: blue;
+}
+
+blockquote {
+ background-color: skyblue;
+ color: red;
+}
+
+
+Résultat
+
+Pas de propriété
+
+
+
+
+{{EmbedLiveSample("ex0", "200", "125")}}
+
+all
+
+
+
+
+{{EmbedLiveSample("ex1", "200", "125")}}
+
+all:unsettransparent (la valeur initiale), mais {{cssxref("font-size")}} vaut toujours small (valeur héritée) et {{cssxref("color")}} vaut (valeur héritée).
+
+
+
+
+{{EmbedLiveSample("ex2", "200", "125")}}
+
+all:initialtransparent (sa valeur initiale), {{cssxref("font-size")}} vaut normal (valeur initiale) et {{cssxref("color")}} vaut black (sa valeur initiale).
+
+
+
+
+{{EmbedLiveSample("ex3", "200", "125")}}
+
+all:inherit#F0F0F0 (valeur héritée), {{cssxref("font-size")}} vaut small (valeur héritée) et {{cssxref("color")}} vaut blue (valeur héritée).Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Cascade', '#all-shorthand', 'all')}}
+ {{Spec2('CSS4 Cascade')}}
+ Ajout de la valeur
+ revert.
+
+
+{{SpecName('CSS3 Cascade', '#all-shorthand', 'all')}}
+ {{Spec2('CSS3 Cascade')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/alpha-value/index.html b/files/fr/web/css/alpha-value/index.html
deleted file mode 100644
index a2736fad98..0000000000
--- a/files/fr/web/css/alpha-value/index.html
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: alpha-value
-slug: Web/CSS/alpha-value
-tags:
- - CSS
- - Reference
- - Type de donnée
-translation_of: Web/CSS/alpha-value
----
-<alpha-value> représente une valeur qui peut être un nombre ({{cssxref("<number>")}}) ou un pourcentage ({{cssxref("<percentage>")}}) et qui indique le canal alpha ou l'opacité d'une couleur.Syntaxe
-
-Interpolation
-
-<alpha-value>, les valeurs sont interpolées comme des nombres réels à point flottant. La vitesse de l'interpolation est déterminée par la fonction de temporisation associée à l'animation.Exemples
-
-<alpha-value> dont les notations fonctionnelles pour les couleurs telles que rgba() et hsla() et aussi {{cssxref("shape-image-threshold")}} (qui détermine les pixels à prendre en compte pour une image lorsqu'on souhaite en extraire une forme).
-/* <rgba()> */
-color: rgba(34, 12, 64, 0.6);
-color: rgba(34.0 12 64 / 60%);
-
-
-
-/* shape-image-threshold */
-shape-image-threshold: 70%;
-shape-image-threshold: 0.7;
-
-
-Spécifications
-
-
-
-
diff --git a/files/fr/web/css/alpha-value/index.md b/files/fr/web/css/alpha-value/index.md
new file mode 100644
index 0000000000..a2736fad98
--- /dev/null
+++ b/files/fr/web/css/alpha-value/index.md
@@ -0,0 +1,62 @@
+---
+title: alpha-value
+slug: Web/CSS/alpha-value
+tags:
+ - CSS
+ - Reference
+ - Type de donnée
+translation_of: Web/CSS/alpha-value
+---
+
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Colors', '#type-def-alpha-value', '<alpha-value>')}}
- {{Spec2('CSS4 Colors')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS3 Colors', '#alphavaluedt', '<alpha-value>')}}
- {{Spec2('CSS3 Colors')}}
- Introduit le type
- <alpha-value> ainsi que les notations fonctionnelles rgba() et hsla().<alpha-value> représente une valeur qui peut être un nombre ({{cssxref("<number>")}}) ou un pourcentage ({{cssxref("<percentage>")}}) et qui indique le canal alpha ou l'opacité d'une couleur.Syntaxe
+
+Interpolation
+
+<alpha-value>, les valeurs sont interpolées comme des nombres réels à point flottant. La vitesse de l'interpolation est déterminée par la fonction de temporisation associée à l'animation.Exemples
+
+<alpha-value> dont les notations fonctionnelles pour les couleurs telles que rgba() et hsla() et aussi {{cssxref("shape-image-threshold")}} (qui détermine les pixels à prendre en compte pour une image lorsqu'on souhaite en extraire une forme).
+/* <rgba()> */
+color: rgba(34, 12, 64, 0.6);
+color: rgba(34.0 12 64 / 60%);
+
+
+
+/* shape-image-threshold */
+shape-image-threshold: 70%;
+shape-image-threshold: 0.7;
+
+
+Spécifications
+
+
+
+
diff --git a/files/fr/web/css/alternative_style_sheets/index.html b/files/fr/web/css/alternative_style_sheets/index.html
deleted file mode 100644
index 5bb6c9afdd..0000000000
--- a/files/fr/web/css/alternative_style_sheets/index.html
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: Feuilles de style alternatives
-slug: Web/CSS/Alternative_style_sheets
-tags:
- - CSS
- - NeedsCompatTable
- - Reference
-translation_of: Web/CSS/Alternative_style_sheets
-original_slug: Web/CSS/Feuilles_de_style_alternatives
----
-
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Colors', '#type-def-alpha-value', '<alpha-value>')}}
+ {{Spec2('CSS4 Colors')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS3 Colors', '#alphavaluedt', '<alpha-value>')}}
+ {{Spec2('CSS3 Colors')}}
+ Introduit le type
+ <alpha-value> ainsi que les notations fonctionnelles rgba() et hsla().Exemple d'application : définir des feuilles de style alternatives
-
-rel="stylesheet alternate" et title="...". Ainsi :<link href="reset.css" rel="stylesheet" type="text/css">
-
-<link href="default.css" rel="stylesheet" type="text/css" title="Style par défaut">
-<link href="joli.css" rel="alternate stylesheet" type="text/css" title="Joli">
-<link href="basique.css" rel="alternate stylesheet" type="text/css" title="Basique">
-
-
-alternate pour l'attribut rel) qui sera sélectionné. Lorsque l'utilisateur choisit un autre style, la page est alors immédiatement affichée avec cette feuille de style.reset.css seront toujours appliquées.Détails
-
-
-
-
-rel="alternate", aucun title="") : la feuille de style s'applique au document quoi qu'il arriverel="alternate", un attribut title="..." défini) : la feuille de style est appliquée par défaut mais est désactivée si une autre feuille de style est sélectionnée. Il ne peut y avoir qu'une seule feuille de style préférée. Si plusieurs feuilles de style sont fournies avec différentes valeurs pour l'attribut title, certaines seront ignorées.rel="stylesheet alternate", un attribut title="..." défini) : la feuille de style est désactivée par défaut mais peut être sélectionnée.title sur l'élément {{HTMLElement("link", "<link rel=\"stylesheet\">")}} ou sur l'élément {{HTMLElement("style")}}, ce titre est l'une des options proposées à l'utilisateur. Les feuilles de style qui contiennent le même titre (title a la même valeur) s'appliqueront toutes pour ce choix. Enfin, les feuilles de style qui n'ont aucun attribut title seront toujours appliquées.rel="stylesheet" pour pointer vers la feuille de style par défaut et rel="alternate stylesheet" pour pointer vers les feuilles de style alternatives. Cela permet à l'agent utilisateur de savoir quelle feuille doit être appliquée par défaut ; c'est aussi cette valeur qui sera utilisée pour les navigateurs qui ne prennent pas en charge cette fonctionnalité.Spécifications
-
-
-
-
diff --git a/files/fr/web/css/alternative_style_sheets/index.md b/files/fr/web/css/alternative_style_sheets/index.md
new file mode 100644
index 0000000000..5bb6c9afdd
--- /dev/null
+++ b/files/fr/web/css/alternative_style_sheets/index.md
@@ -0,0 +1,78 @@
+---
+title: Feuilles de style alternatives
+slug: Web/CSS/Alternative_style_sheets
+tags:
+ - CSS
+ - NeedsCompatTable
+ - Reference
+translation_of: Web/CSS/Alternative_style_sheets
+original_slug: Web/CSS/Feuilles_de_style_alternatives
+---
+
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSSOM', '#css-style-sheet-collections', 'CSS Style Sheet Collections')}}
- {{Spec2('CSSOM')}}
- La spécification CSS OM définit les concepts de nom d'ensemble de feuilles de style, le marqueur « désactivé » et le nom d'ensemble de feuilles de style CSS préférées.
-
- Cette spécification définit comment ces concepts sont déterminés, elle laisse à la spécification HTML le soin de définir les comportements spécifiques à HTML qui doit notamment définir quand est créée une feuille de style CSS.
-
-
-
-
- {{SpecName('HTML WHATWG', 'semantics.html#attr-style-title', 'The style element')}}
- {{SpecName('HTML WHATWG', 'semantics.html#attr-meta-http-equiv-default-style', 'Default style state (http-equiv="default-style")')}}{{Spec2('HTML WHATWG')}}
- La spécification HTML définit quand et comment créer un algorithme déterminant la feuille de style CSS et qui gère les éléments
- <link> et <style>. Elle définit également le comportement de <meta http-equiv="default-style">.
-
-
-{{SpecName("HTML4.01", "present/styles.html#h-14.3", "Alternative style sheets")}}
- {{Spec2("HTML4.01")}}
- La spécification HTML définit le concept de feuilles de style préférées et alternatives.
- Exemple d'application : définir des feuilles de style alternatives
+
+rel="stylesheet alternate" et title="...". Ainsi :<link href="reset.css" rel="stylesheet" type="text/css">
+
+<link href="default.css" rel="stylesheet" type="text/css" title="Style par défaut">
+<link href="joli.css" rel="alternate stylesheet" type="text/css" title="Joli">
+<link href="basique.css" rel="alternate stylesheet" type="text/css" title="Basique">
+
+
+alternate pour l'attribut rel) qui sera sélectionné. Lorsque l'utilisateur choisit un autre style, la page est alors immédiatement affichée avec cette feuille de style.reset.css seront toujours appliquées.Détails
+
+
+
+
+rel="alternate", aucun title="") : la feuille de style s'applique au document quoi qu'il arriverel="alternate", un attribut title="..." défini) : la feuille de style est appliquée par défaut mais est désactivée si une autre feuille de style est sélectionnée. Il ne peut y avoir qu'une seule feuille de style préférée. Si plusieurs feuilles de style sont fournies avec différentes valeurs pour l'attribut title, certaines seront ignorées.rel="stylesheet alternate", un attribut title="..." défini) : la feuille de style est désactivée par défaut mais peut être sélectionnée.title sur l'élément {{HTMLElement("link", "<link rel=\"stylesheet\">")}} ou sur l'élément {{HTMLElement("style")}}, ce titre est l'une des options proposées à l'utilisateur. Les feuilles de style qui contiennent le même titre (title a la même valeur) s'appliqueront toutes pour ce choix. Enfin, les feuilles de style qui n'ont aucun attribut title seront toujours appliquées.rel="stylesheet" pour pointer vers la feuille de style par défaut et rel="alternate stylesheet" pour pointer vers les feuilles de style alternatives. Cela permet à l'agent utilisateur de savoir quelle feuille doit être appliquée par défaut ; c'est aussi cette valeur qui sera utilisée pour les navigateurs qui ne prennent pas en charge cette fonctionnalité.Spécifications
+
+
+
+
diff --git a/files/fr/web/css/angle-percentage/index.html b/files/fr/web/css/angle-percentage/index.html
deleted file mode 100644
index 528f08969a..0000000000
--- a/files/fr/web/css/angle-percentage/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title:
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSSOM', '#css-style-sheet-collections', 'CSS Style Sheet Collections')}}
+ {{Spec2('CSSOM')}}
+ La spécification CSS OM définit les concepts de nom d'ensemble de feuilles de style, le marqueur « désactivé » et le nom d'ensemble de feuilles de style CSS préférées.
+
+ Cette spécification définit comment ces concepts sont déterminés, elle laisse à la spécification HTML le soin de définir les comportements spécifiques à HTML qui doit notamment définir quand est créée une feuille de style CSS.
+
+
+
+
+ {{SpecName('HTML WHATWG', 'semantics.html#attr-style-title', 'The style element')}}
+ {{SpecName('HTML WHATWG', 'semantics.html#attr-meta-http-equiv-default-style', 'Default style state (http-equiv="default-style")')}}{{Spec2('HTML WHATWG')}}
+ La spécification HTML définit quand et comment créer un algorithme déterminant la feuille de style CSS et qui gère les éléments
+ <link> et <style>. Elle définit également le comportement de <meta http-equiv="default-style">.
+
+
+{{SpecName("HTML4.01", "present/styles.html#h-14.3", "Alternative style sheets")}}
+ {{Spec2("HTML4.01")}}
+ La spécification HTML définit le concept de feuilles de style préférées et alternatives.
+ <angle-percentage> représente une valeur qui peut être une valeur de type {{cssxref("angle")}} ou une valeur de type {{cssxref("percentage")}}.Syntaxe
-
-Utilisation avec
-
-calc()<angle-percentage> dans une déclaration, cela signifie que le pourcentage sera résolu avec une valeur angulaire et qu'il peut être utilisé dans une expression {{Cssxref("calc()")}}.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Values', '#mixed-percentages', '<angle-percentage>')}}
- {{Spec2('CSS4 Values')}}
-
-
-
-
-{{SpecName('CSS3 Values', '#mixed-percentages', '<angle-percentage>')}}
- {{Spec2('CSS3 Values')}}
- Définition du type
- <angle-percentage>. Ajout de calc()Compatibilité des navigateurs
-
-<angle-percentage> représente une valeur qui peut être une valeur de type {{cssxref("angle")}} ou une valeur de type {{cssxref("percentage")}}.Syntaxe
+
+Utilisation avec
+
+calc()<angle-percentage> dans une déclaration, cela signifie que le pourcentage sera résolu avec une valeur angulaire et qu'il peut être utilisé dans une expression {{Cssxref("calc()")}}.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Values', '#mixed-percentages', '<angle-percentage>')}}
+ {{Spec2('CSS4 Values')}}
+
+
+
+
+{{SpecName('CSS3 Values', '#mixed-percentages', '<angle-percentage>')}}
+ {{Spec2('CSS3 Values')}}
+ Définition du type
+ <angle-percentage>. Ajout de calc()Compatibilité des navigateurs
+
+<angle> permet de représenter des angles exprimés en degrés, radians, grades ou tours. Les angles positifs sont des angles allant dans le sens horaire et les valeurs négatives sont des angles allant dans le sens anti-horaire. Les angles sont par exemples utilisés pour les transformations CSS ({{cssxref("transform")}}) ou les dégradés ({{cssxref("<gradient>")}}).Syntaxe
-
-deg, grad, rad ou turn. Comme pour les autres dimensions présentes en CSS, il n'y a pas d'espace entre le littéral réservé à l'unité et le nombre qui indique la mesure de l'angle. L'unité est facultative pour la valeur 0 (bien qu'il soit recommandé d'écrire une unité pour des raisons de lisibilité et de cohérence). Il est possible d'utiliser un signe + ou - en préfixe.90deg, -270deg, 1turn et 4turn représentent le même angle. En revanche, pour les propriétés dynamiques (par exemple {{cssxref("transition")}} sur {{cssxref("transform")}}), l'effet obtenu sera différent.Unités
-
-<angle>, on pourra utiliser les unités suivantes :
-
-
-deg360deg. Voici des valeurs pour l'exemple : 0deg, 90deg, 360deg.grad400grad. Voici des valeurs pour l'exemple : 0grad, 100grad, 400grad.rad6.2832rad). Un radian correspond à 180/π degrés. Voici des valeurs pour l'exemple : 0rad, 1.0708rad, 6.2832rad.turn1turn. Voici des valeurs pour l'exemple : 0turn, 0.25turn, 1turn.Exemples
-
-
-
-
-
-
-
-
- 
-
- 90deg = 100grad = 0.25turn ≈ 1.5708rad
-
-
- 
Un angle plat orienté dans le sens horaire :
- 180deg = 200grad = 0.5turn ≈ 3.1416rad
-
-
- 
Un angle droit orienté dans le sens anti-horaire :
- -90deg = -100grad = -0.25turn ≈ -1.5708rad
-
-
-
- 
-
- 0 = 0deg = 0grad = 0turn = 0radSpécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Values', '#angles', '<angle>')}}
- {{Spec2('CSS4 Values')}}
-
-
-
-
-{{SpecName('CSS3 Values', '#angles', '<angle>')}}
- {{Spec2('CSS3 Values')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-<angle> permet de représenter des angles exprimés en degrés, radians, grades ou tours. Les angles positifs sont des angles allant dans le sens horaire et les valeurs négatives sont des angles allant dans le sens anti-horaire. Les angles sont par exemples utilisés pour les transformations CSS ({{cssxref("transform")}}) ou les dégradés ({{cssxref("<gradient>")}}).Syntaxe
+
+deg, grad, rad ou turn. Comme pour les autres dimensions présentes en CSS, il n'y a pas d'espace entre le littéral réservé à l'unité et le nombre qui indique la mesure de l'angle. L'unité est facultative pour la valeur 0 (bien qu'il soit recommandé d'écrire une unité pour des raisons de lisibilité et de cohérence). Il est possible d'utiliser un signe + ou - en préfixe.90deg, -270deg, 1turn et 4turn représentent le même angle. En revanche, pour les propriétés dynamiques (par exemple {{cssxref("transition")}} sur {{cssxref("transform")}}), l'effet obtenu sera différent.Unités
+
+<angle>, on pourra utiliser les unités suivantes :
+
+
+deg360deg. Voici des valeurs pour l'exemple : 0deg, 90deg, 360deg.grad400grad. Voici des valeurs pour l'exemple : 0grad, 100grad, 400grad.rad6.2832rad). Un radian correspond à 180/π degrés. Voici des valeurs pour l'exemple : 0rad, 1.0708rad, 6.2832rad.turn1turn. Voici des valeurs pour l'exemple : 0turn, 0.25turn, 1turn.Exemples
+
+
+
+
+
+
+
+
+ 
+
+ 90deg = 100grad = 0.25turn ≈ 1.5708rad
+
+
+ 
Un angle plat orienté dans le sens horaire :
+ 180deg = 200grad = 0.5turn ≈ 3.1416rad
+
+
+ 
Un angle droit orienté dans le sens anti-horaire :
+ -90deg = -100grad = -0.25turn ≈ -1.5708rad
+
+
+
+ 
+
+ 0 = 0deg = 0grad = 0turn = 0radSpécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Values', '#angles', '<angle>')}}
+ {{Spec2('CSS4 Values')}}
+
+
+
+
+{{SpecName('CSS3 Values', '#angles', '<angle>')}}
+ {{Spec2('CSS3 Values')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+animation-delay définit la durée d'attente avant de démarrer une animation une fois qu'elle a été appliquée à un élément.0s, indique que l'animation doit démarrer dès qu'elle est appliquée. Dans les autres cas, la valeur indique le décalage à observer entre le début de l'animation et le moment où celle-ci a été appliquée sur l'élément.-1s comme durée, l'animation commencera immédiatement avec l'état qu'elle aurait « normalement » eue au bout d'une seconde.Syntaxe
-
-animation-delay: 3s;
-animation-delay: 2s, 4ms;
-
-
-Valeurs
-
-
-
-
-<time>s comme suffixe) ou en millisecondes (ms comme suffixe). Si aucune unité n'est définie, la déclaration sera considérée comme invalide.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- animation-duration: 3s;
- animation-delay: 15s;
- animation-name: glissement;
- animation-iteration-count: infinite;
-}
-@keyframes glissement {
- from {
- margin-left: 100%;
- width: 300%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-HTML
-
-<p>
- La Chenille et Alice se considérèrent un instant en silence.
- Enfin la Chenille sortit le houka de sa bouche, et lui adressa
- la parole d’une voix endormie et traînante.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-delay', 'animation-delay')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-delay/index.md b/files/fr/web/css/animation-delay/index.md
new file mode 100644
index 0000000000..733ba4d654
--- /dev/null
+++ b/files/fr/web/css/animation-delay/index.md
@@ -0,0 +1,107 @@
+---
+title: animation-delay
+slug: Web/CSS/animation-delay
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-delay
+---
+animation-delay définit la durée d'attente avant de démarrer une animation une fois qu'elle a été appliquée à un élément.0s, indique que l'animation doit démarrer dès qu'elle est appliquée. Dans les autres cas, la valeur indique le décalage à observer entre le début de l'animation et le moment où celle-ci a été appliquée sur l'élément.-1s comme durée, l'animation commencera immédiatement avec l'état qu'elle aurait « normalement » eue au bout d'une seconde.Syntaxe
+
+animation-delay: 3s;
+animation-delay: 2s, 4ms;
+
+
+Valeurs
+
+
+
+
+<time>s comme suffixe) ou en millisecondes (ms comme suffixe). Si aucune unité n'est définie, la déclaration sera considérée comme invalide.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ animation-duration: 3s;
+ animation-delay: 15s;
+ animation-name: glissement;
+ animation-iteration-count: infinite;
+}
+@keyframes glissement {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+HTML
+
+<p>
+ La Chenille et Alice se considérèrent un instant en silence.
+ Enfin la Chenille sortit le houka de sa bouche, et lui adressa
+ la parole d’une voix endormie et traînante.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-delay', 'animation-delay')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation-direction/index.html b/files/fr/web/css/animation-direction/index.html
deleted file mode 100644
index 45fa6dbf7b..0000000000
--- a/files/fr/web/css/animation-direction/index.html
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: animation-direction
-slug: Web/CSS/animation-direction
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation-direction
----
-animation-direction indique si les cycles de l'animation doivent être joués dans le sens inverse et/ou de façon alternée.Syntaxe
-
-/* Valeurs avec un mot-clé */
-animation-direction: normal;
-animation-direction: reverse;
-animation-direction: alternate;
-animation-direction: alternate-reverse;
-
-/* Gestion de plusieurs animations */
-animation-direction: normal, reverse;
-animation-direction: alternate, reverse, normal;
-
-/* Valeurs globales */
-animation-direction: inherit;
-animation-direction: initial;
-animation-direction: unset;
-
-
-Valeurs
-
-
-
-
-normalreversealternateease-in sera ainsi remplacée par ease-out). Le premier cycle se fait dans le sens normal, le deuxième dans le sens inverse et ainsi de suite.alternate-reverseanimation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- animation-duration: 5s;
- animation-name: glissement;
- animation-iteration-count: infinite;
-}
-
-.aller {
- animation-direction: normal;
-}
-
-.retour {
- animation-direction: reverse;
-}
-@keyframes glissement {
- from {
- margin-left: 100%;
- width: 300%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-HTML
-
-<p class="aller">
- La Chenille et Alice se considérèrent un instant en silence.
- Enfin la Chenille sortit le houka de sa bouche, et lui adressa
- la parole d’une voix endormie et traînante.
-</p>
-
-<p class="retour">
- « Revenez, » lui cria la Chenille. « J’ai quelque chose
- d’important à vous dire ! »
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-direction', 'animation-direction')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-direction/index.md b/files/fr/web/css/animation-direction/index.md
new file mode 100644
index 0000000000..45fa6dbf7b
--- /dev/null
+++ b/files/fr/web/css/animation-direction/index.md
@@ -0,0 +1,133 @@
+---
+title: animation-direction
+slug: Web/CSS/animation-direction
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-direction
+---
+animation-direction indique si les cycles de l'animation doivent être joués dans le sens inverse et/ou de façon alternée.Syntaxe
+
+/* Valeurs avec un mot-clé */
+animation-direction: normal;
+animation-direction: reverse;
+animation-direction: alternate;
+animation-direction: alternate-reverse;
+
+/* Gestion de plusieurs animations */
+animation-direction: normal, reverse;
+animation-direction: alternate, reverse, normal;
+
+/* Valeurs globales */
+animation-direction: inherit;
+animation-direction: initial;
+animation-direction: unset;
+
+
+Valeurs
+
+
+
+
+normalreversealternateease-in sera ainsi remplacée par ease-out). Le premier cycle se fait dans le sens normal, le deuxième dans le sens inverse et ainsi de suite.alternate-reverseanimation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ animation-duration: 5s;
+ animation-name: glissement;
+ animation-iteration-count: infinite;
+}
+
+.aller {
+ animation-direction: normal;
+}
+
+.retour {
+ animation-direction: reverse;
+}
+@keyframes glissement {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+HTML
+
+<p class="aller">
+ La Chenille et Alice se considérèrent un instant en silence.
+ Enfin la Chenille sortit le houka de sa bouche, et lui adressa
+ la parole d’une voix endormie et traînante.
+</p>
+
+<p class="retour">
+ « Revenez, » lui cria la Chenille. « J’ai quelque chose
+ d’important à vous dire ! »
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-direction', 'animation-direction')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation-duration/index.html b/files/fr/web/css/animation-duration/index.html
deleted file mode 100644
index 766d826733..0000000000
--- a/files/fr/web/css/animation-duration/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: animation-duration
-slug: Web/CSS/animation-duration
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation-duration
----
-animation-duration définit la durée d'une animation pour parcourir un cycle.0s, ce qui indique qu'aucune animation ne doit avoir lieu.Syntaxe
-
-animation-duration: 6s;
-animation-duration: 120ms;
-animation-duration: 1s, 15s;
-animation-duration: 10s, 30s, 230ms;
-
-
-Valeurs
-
-
-
-
-<time>s comme suffixe pour l'unité) ou en millisecondes (ms comme suffixe pour l'unité). Si aucune unité n'est définie, la déclaration sera considérée comme invalide.0s.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- animation-duration: 15s;
- animation-name: glissement;
- animation-iteration-count: infinite;
-}
-@keyframes glissement {
- from {
- margin-left: 100%;
- width: 300%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-HTML
-
-<p>
- La Chenille et Alice se considérèrent un instant en silence.
- Enfin la Chenille sortit le houka de sa bouche, et lui adressa
- la parole d’une voix endormie et traînante.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-duration', 'animation-duration')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-duration/index.md b/files/fr/web/css/animation-duration/index.md
new file mode 100644
index 0000000000..766d826733
--- /dev/null
+++ b/files/fr/web/css/animation-duration/index.md
@@ -0,0 +1,110 @@
+---
+title: animation-duration
+slug: Web/CSS/animation-duration
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-duration
+---
+animation-duration définit la durée d'une animation pour parcourir un cycle.0s, ce qui indique qu'aucune animation ne doit avoir lieu.Syntaxe
+
+animation-duration: 6s;
+animation-duration: 120ms;
+animation-duration: 1s, 15s;
+animation-duration: 10s, 30s, 230ms;
+
+
+Valeurs
+
+
+
+
+<time>s comme suffixe pour l'unité) ou en millisecondes (ms comme suffixe pour l'unité). Si aucune unité n'est définie, la déclaration sera considérée comme invalide.0s.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ animation-duration: 15s;
+ animation-name: glissement;
+ animation-iteration-count: infinite;
+}
+@keyframes glissement {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+HTML
+
+<p>
+ La Chenille et Alice se considérèrent un instant en silence.
+ Enfin la Chenille sortit le houka de sa bouche, et lui adressa
+ la parole d’une voix endormie et traînante.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-duration', 'animation-duration')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation-fill-mode/index.html b/files/fr/web/css/animation-fill-mode/index.html
deleted file mode 100644
index 01b33f2513..0000000000
--- a/files/fr/web/css/animation-fill-mode/index.html
+++ /dev/null
@@ -1,185 +0,0 @@
----
-title: animation-fill-mode
-slug: Web/CSS/animation-fill-mode
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation-fill-mode
----
-animation-fill-mode indique la façon dont une animation CSS doit appliquer les styles à sa cible avant et après son exécution.Syntaxe
-
-/* Valeurs avec un mot-clé */
-animation-fill-mode: none;
-animation-fill-mode: forwards;
-animation-fill-mode: backwards;
-animation-fill-mode: both;
-
-/* Gestion de plusieurs animations */
-animation-fill-mode: none, backwards;
-animation-fill-mode: both, forwards, none;
-
-
-Valeurs
-
-
-
-
-noneforwards
-
-
-
-
-
-
-
- animation-direction
- animation-iteration-countdernière keyframe
-
-
-
- normalpair ou impair
-
- 100% ou to
-
-
- reversepair ou impair
-
- 0% ou from
-
-
- alternatepair
-
- 0% ou from
-
-
- alternateimpair
-
- 100% ou to
-
-
- alternate-reversepair
-
- 100% ou to
-
-
-
- alternate-reverseimpair
-
- 0% ou frombackwards
-
-
-
-
-
-
-
- animation-directionpremière keyframe
-
-
-
- normal ou alternate
- 0% ou from
-
-
-
- reverse ou alternate-reverse
- 100% ou tobothforwards et backwards, entraînant ainsi l'extension des propriétés de l'animation dans les deux directions.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.demo {
- border-top: 100px solid #ccc;
- height: 300px;
- font-family: sans-serif;
-}
-@keyframes grow {
- 0% { font-size: 0 }
- 100% { font-size: 40px }
-}
-@-webkit-keyframes grow {
- 0% { font-size: 0 }
- 100% { font-size: 40px }
-}
-.demo:hover .grows {
- animation-name: grow;
- animation-duration: 3s;
- -webkit-animation-name: grow;
- -webkit-animation-duration: 3s;
-}
-.demo:hover .growsandstays {
- animation-name: grow;
- animation-duration: 3s;
- animation-fill-mode: forwards;
- -webkit-animation-name: grow;
- -webkit-animation-duration: 3s;
- -webkit-animation-fill-mode: forwards;
-}
-
-HTML
-
-<p>Déplacez votre souris sur la boîte grise.</p>
-<div class="demo">
- <div class="growsandstays">La boîte grandit et s'arrête</div>
- <div class="grows">La boîte grandit</div>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-fill-mode', 'animation-fill-mode')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-fill-mode/index.md b/files/fr/web/css/animation-fill-mode/index.md
new file mode 100644
index 0000000000..01b33f2513
--- /dev/null
+++ b/files/fr/web/css/animation-fill-mode/index.md
@@ -0,0 +1,185 @@
+---
+title: animation-fill-mode
+slug: Web/CSS/animation-fill-mode
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-fill-mode
+---
+animation-fill-mode indique la façon dont une animation CSS doit appliquer les styles à sa cible avant et après son exécution.Syntaxe
+
+/* Valeurs avec un mot-clé */
+animation-fill-mode: none;
+animation-fill-mode: forwards;
+animation-fill-mode: backwards;
+animation-fill-mode: both;
+
+/* Gestion de plusieurs animations */
+animation-fill-mode: none, backwards;
+animation-fill-mode: both, forwards, none;
+
+
+Valeurs
+
+
+
+
+noneforwards
+
+
+
+
+
+
+
+ animation-direction
+ animation-iteration-countdernière keyframe
+
+
+
+ normalpair ou impair
+
+ 100% ou to
+
+
+ reversepair ou impair
+
+ 0% ou from
+
+
+ alternatepair
+
+ 0% ou from
+
+
+ alternateimpair
+
+ 100% ou to
+
+
+ alternate-reversepair
+
+ 100% ou to
+
+
+
+ alternate-reverseimpair
+
+ 0% ou frombackwards
+
+
+
+
+
+
+
+ animation-directionpremière keyframe
+
+
+
+ normal ou alternate
+ 0% ou from
+
+
+
+ reverse ou alternate-reverse
+ 100% ou tobothforwards et backwards, entraînant ainsi l'extension des propriétés de l'animation dans les deux directions.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.demo {
+ border-top: 100px solid #ccc;
+ height: 300px;
+ font-family: sans-serif;
+}
+@keyframes grow {
+ 0% { font-size: 0 }
+ 100% { font-size: 40px }
+}
+@-webkit-keyframes grow {
+ 0% { font-size: 0 }
+ 100% { font-size: 40px }
+}
+.demo:hover .grows {
+ animation-name: grow;
+ animation-duration: 3s;
+ -webkit-animation-name: grow;
+ -webkit-animation-duration: 3s;
+}
+.demo:hover .growsandstays {
+ animation-name: grow;
+ animation-duration: 3s;
+ animation-fill-mode: forwards;
+ -webkit-animation-name: grow;
+ -webkit-animation-duration: 3s;
+ -webkit-animation-fill-mode: forwards;
+}
+
+HTML
+
+<p>Déplacez votre souris sur la boîte grise.</p>
+<div class="demo">
+ <div class="growsandstays">La boîte grandit et s'arrête</div>
+ <div class="grows">La boîte grandit</div>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-fill-mode', 'animation-fill-mode')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation-iteration-count/index.html b/files/fr/web/css/animation-iteration-count/index.html
deleted file mode 100644
index 7291b39c13..0000000000
--- a/files/fr/web/css/animation-iteration-count/index.html
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: animation-iteration-count
-slug: Web/CSS/animation-iteration-count
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation-iteration-count
----
-animation-iteration-count indique le nombre de cycles utilisés pour répéter une animation avant que celle-ci s'arrête.Syntaxe
-
-/* Valeur avec un mot-clé */
-animation-iteration-count: infinite;
-
-/* Valeur avec une quantité */
-/* Type <number> */
-animation-iteration-count: 3;
-animation-iteration-count: 2.3;
-
-/* Gestion de plusieurs animations */
-animation-iteration-count: 2, 0, infinite;
-
-
-animation-iteration-count est définie avec une ou plusieurs valeurs, parmi la liste suivante, séparées par des virgules.Valeurs
-
-
-
-
-infiniteanimation-direction.<number>1 (elle n'est exécutée qu'une seule fois). Les valeurs négatives sont considérées comme invalides. Il est possible d'utiliser des valeurs qui ne sont pas entières pour indiquer des fragments d'un cycle (ainsi 0.5 indiquera une moitié du cycle de l'animation).animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- animation-duration: 3s;
- animation-name: glissement;
- animation-iteration-count: infinite;
-}
-
-.infini {
- animation-iteration-count: infinite;
-}
-
-.dix {
- animation-iteration-count: 10;
-}
-
-@keyframes glissement {
- from {
- margin-left: 100%;
- width: 300%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-HTML
-
-<p class="infini">
- La Chenille et Alice se considérèrent un instant en silence.
- Enfin la Chenille sortit le houka de sa bouche, et lui adressa
- la parole d’une voix endormie et traînante.
-</p>
-
-<p class="dix">
- Voyons si je me souviendrai de tout ce que je savais : quatre fois
- cinq font douze, quatre fois six font treize, quatre fois sept font
- — je n’arriverai jamais à vingt de ce train-là.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-iteration-count', 'animation-iteration-count')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-iteration-count/index.md b/files/fr/web/css/animation-iteration-count/index.md
new file mode 100644
index 0000000000..7291b39c13
--- /dev/null
+++ b/files/fr/web/css/animation-iteration-count/index.md
@@ -0,0 +1,131 @@
+---
+title: animation-iteration-count
+slug: Web/CSS/animation-iteration-count
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-iteration-count
+---
+animation-iteration-count indique le nombre de cycles utilisés pour répéter une animation avant que celle-ci s'arrête.Syntaxe
+
+/* Valeur avec un mot-clé */
+animation-iteration-count: infinite;
+
+/* Valeur avec une quantité */
+/* Type <number> */
+animation-iteration-count: 3;
+animation-iteration-count: 2.3;
+
+/* Gestion de plusieurs animations */
+animation-iteration-count: 2, 0, infinite;
+
+
+animation-iteration-count est définie avec une ou plusieurs valeurs, parmi la liste suivante, séparées par des virgules.Valeurs
+
+
+
+
+infiniteanimation-direction.<number>1 (elle n'est exécutée qu'une seule fois). Les valeurs négatives sont considérées comme invalides. Il est possible d'utiliser des valeurs qui ne sont pas entières pour indiquer des fragments d'un cycle (ainsi 0.5 indiquera une moitié du cycle de l'animation).animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ animation-duration: 3s;
+ animation-name: glissement;
+ animation-iteration-count: infinite;
+}
+
+.infini {
+ animation-iteration-count: infinite;
+}
+
+.dix {
+ animation-iteration-count: 10;
+}
+
+@keyframes glissement {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+HTML
+
+<p class="infini">
+ La Chenille et Alice se considérèrent un instant en silence.
+ Enfin la Chenille sortit le houka de sa bouche, et lui adressa
+ la parole d’une voix endormie et traînante.
+</p>
+
+<p class="dix">
+ Voyons si je me souviendrai de tout ce que je savais : quatre fois
+ cinq font douze, quatre fois six font treize, quatre fois sept font
+ — je n’arriverai jamais à vingt de ce train-là.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-iteration-count', 'animation-iteration-count')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation-name/index.html b/files/fr/web/css/animation-name/index.html
deleted file mode 100644
index 107ab29d0c..0000000000
--- a/files/fr/web/css/animation-name/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: animation-name
-slug: Web/CSS/animation-name
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation-name
----
-animation-name définit une liste d'animations qui doivent être appliquées à l'élément ciblé. Chaque nom indique une règle @ {{cssxref("@keyframes")}} qui définit les valeurs des propriétés pour la séquence.Syntaxe
-
-/* Valeur avec un mot-clé */
-animation-name: none;
-
-/* Valeur utilisant un identifiant */
-animation-name: test_05;
-
-/* Gestion de plusieurs animations */
-animation-name: test1, animation4;
-
-/* Valeurs globales * /
-animation-name: initial
-animation-name: inherit
-animation-name: unset
-
-
-Valeurs
-
-
-
-
-nonea et z, de nombres entre 0 et 9, de tirets bas (_) et/ou de tirets (-). Le première caractère qui n'est pas un tiret doit être une lettre. Il est également interdit d'utiliser deux tirets en début d'identifiant. Enfin, la chaîne de l'identifiant ne peut pas être unset, initial, inherit ou une combinaison analogue avec une casse différente.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- animation-duration: 3s;
- animation-name: glissement;
- animation-iteration-count: infinite;
-}
-@keyframes glissement {
- from {
- margin-left: 100%;
- width: 300%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-HTML
-
-<p>
- La Chenille et Alice se considérèrent un instant en silence.
- Enfin la Chenille sortit le houka de sa bouche, et lui adressa
- la parole d’une voix endormie et traînante.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-name', 'animation-name')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-name/index.md b/files/fr/web/css/animation-name/index.md
new file mode 100644
index 0000000000..107ab29d0c
--- /dev/null
+++ b/files/fr/web/css/animation-name/index.md
@@ -0,0 +1,115 @@
+---
+title: animation-name
+slug: Web/CSS/animation-name
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-name
+---
+animation-name définit une liste d'animations qui doivent être appliquées à l'élément ciblé. Chaque nom indique une règle @ {{cssxref("@keyframes")}} qui définit les valeurs des propriétés pour la séquence.Syntaxe
+
+/* Valeur avec un mot-clé */
+animation-name: none;
+
+/* Valeur utilisant un identifiant */
+animation-name: test_05;
+
+/* Gestion de plusieurs animations */
+animation-name: test1, animation4;
+
+/* Valeurs globales * /
+animation-name: initial
+animation-name: inherit
+animation-name: unset
+
+
+Valeurs
+
+
+
+
+nonea et z, de nombres entre 0 et 9, de tirets bas (_) et/ou de tirets (-). Le première caractère qui n'est pas un tiret doit être une lettre. Il est également interdit d'utiliser deux tirets en début d'identifiant. Enfin, la chaîne de l'identifiant ne peut pas être unset, initial, inherit ou une combinaison analogue avec une casse différente.animation-*, selon leur quantité, elles seront différemment affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ animation-duration: 3s;
+ animation-name: glissement;
+ animation-iteration-count: infinite;
+}
+@keyframes glissement {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+HTML
+
+<p>
+ La Chenille et Alice se considérèrent un instant en silence.
+ Enfin la Chenille sortit le houka de sa bouche, et lui adressa
+ la parole d’une voix endormie et traînante.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-name', 'animation-name')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation-play-state/index.html b/files/fr/web/css/animation-play-state/index.html
deleted file mode 100644
index c0dcf45efb..0000000000
--- a/files/fr/web/css/animation-play-state/index.html
+++ /dev/null
@@ -1,128 +0,0 @@
----
-title: animation-play-state
-slug: Web/CSS/animation-play-state
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation-play-state
----
-animation-play-state définit si une animation est en cours d'exécution ou si elle est en pause.Syntaxe
-
-/* On a une seule animation */
-animation-play-state: running;
-animation-play-state: paused;
-
-/* On gère plusieurs animations */
-/* avec des valeurs respectives */
-animation-play-state: paused, running, running;
-
-/* Valeurs globales */
-animation-play-state: inherit;
-animation-play-state: initial;
-animation-play-state: unset;
-
-
-Valeurs
-
-
-
-
-runningpausedanimation-*, elles seront respectivement affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- animation-duration: 3s;
- animation-name: glissement;
- animation-iteration-count: infinite;
-}
-
-.arret {
- animation-play-state: paused;
-}
-
-.encours {
- animation-play-state: running;
-}
-
-@keyframes glissement {
- from {
- margin-left: 100%;
- width: 200%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-HTML
-
-<p class="arret">
- La Chenille et Alice se considérèrent un instant en silence.
- Enfin la Chenille sortit le houka de sa bouche, et lui adressa
- la parole d’une voix endormie et traînante.
-</p>
-
-<p class="encours">
- Alice, un peu irritée du parler bref de la Chenille, se redressa
- de toute sa hauteur.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-play-state', 'animation-play-state')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-play-state/index.md b/files/fr/web/css/animation-play-state/index.md
new file mode 100644
index 0000000000..c0dcf45efb
--- /dev/null
+++ b/files/fr/web/css/animation-play-state/index.md
@@ -0,0 +1,128 @@
+---
+title: animation-play-state
+slug: Web/CSS/animation-play-state
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-play-state
+---
+animation-play-state définit si une animation est en cours d'exécution ou si elle est en pause.Syntaxe
+
+/* On a une seule animation */
+animation-play-state: running;
+animation-play-state: paused;
+
+/* On gère plusieurs animations */
+/* avec des valeurs respectives */
+animation-play-state: paused, running, running;
+
+/* Valeurs globales */
+animation-play-state: inherit;
+animation-play-state: initial;
+animation-play-state: unset;
+
+
+Valeurs
+
+
+
+
+runningpausedanimation-*, elles seront respectivement affectées aux animations définies par {{cssxref("animation-name")}}. Pour plus d'informations, voir : paramétrer les valeurs des propriétés pour plusieurs animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ animation-duration: 3s;
+ animation-name: glissement;
+ animation-iteration-count: infinite;
+}
+
+.arret {
+ animation-play-state: paused;
+}
+
+.encours {
+ animation-play-state: running;
+}
+
+@keyframes glissement {
+ from {
+ margin-left: 100%;
+ width: 200%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+HTML
+
+<p class="arret">
+ La Chenille et Alice se considérèrent un instant en silence.
+ Enfin la Chenille sortit le houka de sa bouche, et lui adressa
+ la parole d’une voix endormie et traînante.
+</p>
+
+<p class="encours">
+ Alice, un peu irritée du parler bref de la Chenille, se redressa
+ de toute sa hauteur.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-play-state', 'animation-play-state')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation-timing-function/index.html b/files/fr/web/css/animation-timing-function/index.html
deleted file mode 100644
index f3b7858272..0000000000
--- a/files/fr/web/css/animation-timing-function/index.html
+++ /dev/null
@@ -1,264 +0,0 @@
----
-title: animation-timing-function
-slug: Web/CSS/animation-timing-function
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation-timing-function
----
-animation-timing-function définit la façon dont une animation CSS doit se dérouler au fur et à mesure de chaque cycle. Cette propriété prendra comme valeurs une ou plusieurs fonctions {{cssxref("easing-function")}}.Syntaxe
-
-/* Valeurs avec un mot-clé */
-animation-timing-function: ease;
-animation-timing-function: ease-in;
-animation-timing-function: ease-out;
-animation-timing-function: ease-in-out;
-animation-timing-function: linear;
-animation-timing-function: step-start;
-animation-timing-function: step-end;
-
-/* Valeurs fonctionnelles */
-animation-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1);
-animation-timing-function: steps(4, end);
-
-/* Valeurs avec une fonction en escalier */
-animation-timing-function: steps(4, jump-start);
-animation-timing-function: steps(10, jump-end);
-animation-timing-function: steps(20, jump-none);
-animation-timing-function: steps(5, jump-both);
-animation-timing-function: steps(6, start);
-animation-timing-function: steps(8, end);
-
-/* Définition de temporisations pour plusieurs animations */
-animation-timing-function: ease, step-start, cubic-bezier(0.1, 0.7, 1.0, 0.1);
-
-/* Valeurs globales */
-animation-timing-function: inherit;
-animation-timing-function: initial;
-animation-timing-function: unset;
-
-
-Valeurs
-
-
-
-
-<timing-function>ease, linear, ease-in-out, etc.) correspondent à une courbe de Bézier cubique fixe avec quatre valeurs prédéfinies; La fonction cubic-bezier() permet de paramétrer une courbe spécifique. Les fonctions en escalier permettent de diviser l'animation en intervalles de même durée.
-
- easecubic-bezier(0.25, 0.1, 0.25, 1.0) : c'est la valeur par défaut, la vitesse de l'animation augmente au milieu de celle-ci puis ralentit à la fin.linearcubic-bezier(0.0, 0.0, 1.0, 1.0) : l'animation s'effectue à vitesse constante.ease-incubic-bezier(0.42, 0, 1.0, 1.0) : l'animation commence doucement puis la vitesse augmente jusqu'à ce qu'elle soit terminée.ease-outcubic-bezier(0, 0, 0.58, 1.0) : l'animation commence rapidement puis ralentit jusqu'à la fin.ease-in-outcubic-bezier(0.42, 0, 0.58, 1.0) : l'animation commence lentement, accèlere puis ralentit à nouveau avant la fin.cubic-bezier(p1, p2, p3, p4)steps( n, <jumpterm>)
-
- jump-startjump-endjump-nonejump-bothstartjump-start.endjump-end.step-startsteps(1, jump-start)step-endsteps(1, jump-end)animation-*, elles seront affectées selon leur ordre aux différentes animations listées par {{cssxref("animation-name")}}. Si le nombre de valeurs n'est pas le même que le nombre d'animation, voir Paramétrer plusieurs valeurs de propriétés pour les animations.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Courbes de Bézier cubiques
-
-
-
-
-
-.ease {
- animation-timing-function: ease;
-}
-.easein {
- animation-timing-function: ease-in;
-}
-.easeout {
- animation-timing-function: ease-out;
-}
-.easeinout {
- animation-timing-function: ease-in-out;
-}
-.linear {
- animation-timing-function: linear;
-}
-.cb {
- animation-timing-function: cubic-bezier(0.2,-2,0.8,2);
-}
-
-Fonctions en escalier
-
-
-
-
-
-.jump-start {
- animation-timing-function: steps(5, jump-start);
-}
-.jump-end {
- animation-timing-function: steps(5, jump-end);
-}
-.jump-none {
- animation-timing-function: steps(5, jump-none);
-}
-.jump-both {
- animation-timing-function: steps(5, jump-both);
-}
-.start {
- animation-timing-function: steps(5, start);
-}
-.end {
- animation-timing-function: steps(5, end);
-}
-.step-start {
- animation-timing-function: step-start;
-}
-.step-end {
- animation-timing-function: step-end;
-}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation-timing-function', 'animation-timing-function')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale..
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation-timing-function/index.md b/files/fr/web/css/animation-timing-function/index.md
new file mode 100644
index 0000000000..f3b7858272
--- /dev/null
+++ b/files/fr/web/css/animation-timing-function/index.md
@@ -0,0 +1,264 @@
+---
+title: animation-timing-function
+slug: Web/CSS/animation-timing-function
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation-timing-function
+---
+animation-timing-function définit la façon dont une animation CSS doit se dérouler au fur et à mesure de chaque cycle. Cette propriété prendra comme valeurs une ou plusieurs fonctions {{cssxref("easing-function")}}.Syntaxe
+
+/* Valeurs avec un mot-clé */
+animation-timing-function: ease;
+animation-timing-function: ease-in;
+animation-timing-function: ease-out;
+animation-timing-function: ease-in-out;
+animation-timing-function: linear;
+animation-timing-function: step-start;
+animation-timing-function: step-end;
+
+/* Valeurs fonctionnelles */
+animation-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1);
+animation-timing-function: steps(4, end);
+
+/* Valeurs avec une fonction en escalier */
+animation-timing-function: steps(4, jump-start);
+animation-timing-function: steps(10, jump-end);
+animation-timing-function: steps(20, jump-none);
+animation-timing-function: steps(5, jump-both);
+animation-timing-function: steps(6, start);
+animation-timing-function: steps(8, end);
+
+/* Définition de temporisations pour plusieurs animations */
+animation-timing-function: ease, step-start, cubic-bezier(0.1, 0.7, 1.0, 0.1);
+
+/* Valeurs globales */
+animation-timing-function: inherit;
+animation-timing-function: initial;
+animation-timing-function: unset;
+
+
+Valeurs
+
+
+
+
+<timing-function>ease, linear, ease-in-out, etc.) correspondent à une courbe de Bézier cubique fixe avec quatre valeurs prédéfinies; La fonction cubic-bezier() permet de paramétrer une courbe spécifique. Les fonctions en escalier permettent de diviser l'animation en intervalles de même durée.
+
+ easecubic-bezier(0.25, 0.1, 0.25, 1.0) : c'est la valeur par défaut, la vitesse de l'animation augmente au milieu de celle-ci puis ralentit à la fin.linearcubic-bezier(0.0, 0.0, 1.0, 1.0) : l'animation s'effectue à vitesse constante.ease-incubic-bezier(0.42, 0, 1.0, 1.0) : l'animation commence doucement puis la vitesse augmente jusqu'à ce qu'elle soit terminée.ease-outcubic-bezier(0, 0, 0.58, 1.0) : l'animation commence rapidement puis ralentit jusqu'à la fin.ease-in-outcubic-bezier(0.42, 0, 0.58, 1.0) : l'animation commence lentement, accèlere puis ralentit à nouveau avant la fin.cubic-bezier(p1, p2, p3, p4)steps( n, <jumpterm>)
+
+ jump-startjump-endjump-nonejump-bothstartjump-start.endjump-end.step-startsteps(1, jump-start)step-endsteps(1, jump-end)animation-*, elles seront affectées selon leur ordre aux différentes animations listées par {{cssxref("animation-name")}}. Si le nombre de valeurs n'est pas le même que le nombre d'animation, voir Paramétrer plusieurs valeurs de propriétés pour les animations.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Courbes de Bézier cubiques
+
+
+
+
+
+.ease {
+ animation-timing-function: ease;
+}
+.easein {
+ animation-timing-function: ease-in;
+}
+.easeout {
+ animation-timing-function: ease-out;
+}
+.easeinout {
+ animation-timing-function: ease-in-out;
+}
+.linear {
+ animation-timing-function: linear;
+}
+.cb {
+ animation-timing-function: cubic-bezier(0.2,-2,0.8,2);
+}
+
+Fonctions en escalier
+
+
+
+
+
+.jump-start {
+ animation-timing-function: steps(5, jump-start);
+}
+.jump-end {
+ animation-timing-function: steps(5, jump-end);
+}
+.jump-none {
+ animation-timing-function: steps(5, jump-none);
+}
+.jump-both {
+ animation-timing-function: steps(5, jump-both);
+}
+.start {
+ animation-timing-function: steps(5, start);
+}
+.end {
+ animation-timing-function: steps(5, end);
+}
+.step-start {
+ animation-timing-function: step-start;
+}
+.step-end {
+ animation-timing-function: step-end;
+}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation-timing-function', 'animation-timing-function')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale..
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/animation/index.html b/files/fr/web/css/animation/index.html
deleted file mode 100644
index fd5be78c0d..0000000000
--- a/files/fr/web/css/animation/index.html
+++ /dev/null
@@ -1,362 +0,0 @@
----
-title: animation
-slug: Web/CSS/animation
-tags:
- - Animations
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/animation
----
-animation est une propriété raccourcie qui permet de d'appliquer une animation entre des styles.
-
-
-/* @keyframes duration | timing-function | delay |
- iteration-count | direction | fill-mode | play-state | name */
- animation: 3s ease-in 1s 2 reverse both paused slidein;
-
-/* @keyframes duration | timing-function | delay | name */
- animation: 3s linear 1s slidein;
-
-/* @keyframes duration | name */
- animation: 3s slidein;
-
-
-Exemple d'animation
-
-
-
-
-
-
-Syntaxe
-
-animation se définit grâce à une ou plusieurs animations, séparées par des virgules.
-
-
-
-
- none, un identifiant ({{cssxref("<custom-ident>")}}) ou une chaîne de caractères ({{cssxref("<string>")}})Valeurs
-
-
-
-
-<single-animation-iteration-count><single-animation-direction><single-animation-fill-mode><single-animation-play-state>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Vue laser
-
-HTML
-
-<div class="view_port">
- <div class="polling_message">
- En attente
- </div>
- <div class="cylon_eye"></div>
-</div>
-
-
-CSS
-
-.polling_message {
- color: white;
- float: left;
- margin-right: 2%;
-}
-
-.view_port {
- background-color: black;
- height: 25px;
- width: 100%;
- overflow: hidden;
-}
-
-.cylon_eye {
- background-color: red;
- background-image: linear-gradient(to right, rgba( 0,0,0,0.9 ) 25%, rgba( 0,0,0,0.1 ) 50%, rgba( 0,0,0,0.9 ) 75%);
- color: white;
- height: 100%;
- width: 20%;
-
- -webkit-animation: 4s linear 0s infinite alternate move_eye;
- animation: 4s linear 0s infinite alternate move_eye;
-}
-
-@-webkit-keyframes move_eye { from { margin-left:-20%; } to { margin-left:100%; } }
- @keyframes move_eye { from { margin-left:-20%; } to { margin-left:100%; } }
-
-
-Résultat
-
-Accessibilité
-
-prefers-reduced-motion pour les mouvements réduits afin d'obtenir une ergonomie complémentaire pour les personnes souhaitant ne pas avoir d'animations.
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Animations', '#animation', 'animation')}}
- {{Spec2('CSS3 Animations')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Notes relatives à Quantum (Firefox)
-
-
-
-
-open si ceux-ci sont animés (cf. {{bug(1382124)}}). Cet autre point est également résolu avec Stylo.em pour l'élément parent (cf. {{bug(1254424)}}). Stylo règle ce problème.Voir aussi
-
-
-
diff --git a/files/fr/web/css/animation/index.md b/files/fr/web/css/animation/index.md
new file mode 100644
index 0000000000..fd5be78c0d
--- /dev/null
+++ b/files/fr/web/css/animation/index.md
@@ -0,0 +1,362 @@
+---
+title: animation
+slug: Web/CSS/animation
+tags:
+ - Animations
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/animation
+---
+animation est une propriété raccourcie qui permet de d'appliquer une animation entre des styles.
+
+
+/* @keyframes duration | timing-function | delay |
+ iteration-count | direction | fill-mode | play-state | name */
+ animation: 3s ease-in 1s 2 reverse both paused slidein;
+
+/* @keyframes duration | timing-function | delay | name */
+ animation: 3s linear 1s slidein;
+
+/* @keyframes duration | name */
+ animation: 3s slidein;
+
+
+Exemple d'animation
+
+
+
+
+
+
+Syntaxe
+
+animation se définit grâce à une ou plusieurs animations, séparées par des virgules.
+
+
+
+
+ none, un identifiant ({{cssxref("<custom-ident>")}}) ou une chaîne de caractères ({{cssxref("<string>")}})Valeurs
+
+
+
+
+<single-animation-iteration-count><single-animation-direction><single-animation-fill-mode><single-animation-play-state>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Vue laser
+
+HTML
+
+<div class="view_port">
+ <div class="polling_message">
+ En attente
+ </div>
+ <div class="cylon_eye"></div>
+</div>
+
+
+CSS
+
+.polling_message {
+ color: white;
+ float: left;
+ margin-right: 2%;
+}
+
+.view_port {
+ background-color: black;
+ height: 25px;
+ width: 100%;
+ overflow: hidden;
+}
+
+.cylon_eye {
+ background-color: red;
+ background-image: linear-gradient(to right, rgba( 0,0,0,0.9 ) 25%, rgba( 0,0,0,0.1 ) 50%, rgba( 0,0,0,0.9 ) 75%);
+ color: white;
+ height: 100%;
+ width: 20%;
+
+ -webkit-animation: 4s linear 0s infinite alternate move_eye;
+ animation: 4s linear 0s infinite alternate move_eye;
+}
+
+@-webkit-keyframes move_eye { from { margin-left:-20%; } to { margin-left:100%; } }
+ @keyframes move_eye { from { margin-left:-20%; } to { margin-left:100%; } }
+
+
+Résultat
+
+Accessibilité
+
+prefers-reduced-motion pour les mouvements réduits afin d'obtenir une ergonomie complémentaire pour les personnes souhaitant ne pas avoir d'animations.
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Animations', '#animation', 'animation')}}
+ {{Spec2('CSS3 Animations')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Notes relatives à Quantum (Firefox)
+
+
+
+
+open si ceux-ci sont animés (cf. {{bug(1382124)}}). Cet autre point est également résolu avec Stylo.em pour l'élément parent (cf. {{bug(1254424)}}). Stylo règle ce problème.Voir aussi
+
+
+
diff --git a/files/fr/web/css/appearance/index.html b/files/fr/web/css/appearance/index.html
deleted file mode 100644
index 3f709c1ac5..0000000000
--- a/files/fr/web/css/appearance/index.html
+++ /dev/null
@@ -1,584 +0,0 @@
----
-title: appearance (-moz-appearance, -webkit-appearance)
-slug: Web/CSS/appearance
-tags:
- - '-moz-appearance'
- - '-webkit-appearance'
- - CSS
- - CSS Basic User Interface
- - CSS Property
- - Reference
- - appearance
- - recipe:css-property
-translation_of: Web/CSS/appearance
-browser-compat: css.properties.appearance
----
--moz-appearance est utilisée dans Gecko (Firefox) afin d'afficher un élément en utilisant la mise en forme native du système d'exploitation.-webkit-appearance est utilisée dans les navigateurs basés sur WebKit (c'est-à-dire Safari) et sur Blink (c'est-à-dire Chrome ou Opera) et permet d'avoir la même fonctionnalités. On notera que plusieurs navigateurs, non basés sur WebKit (Firefox et Edge par exemple), prennent en charge ce préfixe pour des raisons de compatibilité web.none peut avoir un comportement différent d'une plateforme à une autre et d'autres mots-clés ne sont pas pris en charge.Syntaxe
-
-/* Valeurs spécifiées par le module CSS Basic User Interface de niveau 4 */
-appearance: none;
-appearance: auto;
-appearance: menulist-button;
-appearance: textfield;
-
-/* Valeurs ayant le même effet que 'auto' */
-appearance: button;
-appearance: searchfield;
-appearance: textarea;
-appearance: push-button;
-appearance: slider-horizontal;
-appearance: checkbox;
-appearance: radio;
-appearance: square-button;
-appearance: menulist;
-appearance: listbox;
-appearance: meter;
-appearance: progress-bar;
-
-/* Liste partielle des valeurs disponibles pour Gecko */
--moz-appearance: scrollbarbutton-up;
--moz-appearance: button-bevel;
-
-/* Liste partielle des valeurs disponibles pour WebKit/Blink (ainsi que pour Gecko et Edge) */
--webkit-appearance: media-mute-button;
--webkit-appearance: caret;
-
-
-Valeurs
-
-Mots-clés standard
-
-
-
-
-
-
-
- Valeur
- Navigateur
- Description
-
-
-
- noneFirefox Chrome Safari Edge
- Aucune mise en forme particulière n'est appliquée. C'est la valeur par défaut.
-
-
-
- autoFirefox Chrome
- L'agent utilisateur sélectionne la mise en forme spécifique appropriée en fonction de l'élément. Cette valeur agira comme
- none pour les éléments sans mise en forme spéciale.
-
-
- menulist-buttonFirefox Chrome Safari Edge
- L'élément est mis en forme comme un bouton qui indiquerait qu'un menu pourrait être ouvert.
-
-
-
- textfieldFirefox Chrome Safari Edge
-
-
-
- Les valeurs suivantes sont traitées de façon équivalente à
- auto:
-
-
- buttonFirefox Chrome Safari Edge
- L'élément est dessiné comme un bouton.
-
-
-
- checkboxFirefox Chrome Safari Edge
- L'élément est dessiné comme une case à cocher (et n'inclut que la case à cocher).
-
-
-
- listboxFirefox Chrome Safari Edge
-
-
-
-
- menulistFirefox Chrome Safari Edge
-
-
-
-
- meterChrome Safari Firefox
-
-
-
-
- progress-barChrome Safari Firefox
-
-
-
-
- push-buttonChrome Safari Edge
-
-
-
-
- radioFirefox Chrome Safari Edge
- L'élément est dessiné comme un bouton radio (et n'inclut que la portion liée au « bouton radio »).
-
-
-
- searchfieldFirefox Chrome Safari Edge
-
-
-
-
- slider-horizontalChrome Safari Edge
-
-
-
-
- square-buttonChrome Safari Edge
-
-
-
-
-
- textareaFirefox Chrome Safari Edge
-
- Mots-clés non-standards
-
-appearance.
-
-
-
-
-
- Valeur
- Navigateur
- Description
-
-
-
- attachmentSafari
-
-
-
-
- borderless-attachmentSafari
-
-
-
-
- button-bevelFirefox Chrome Safari Edge
-
-
-
-
- caps-lock-indicatorSafari Edge
-
-
-
-
- caretFirefox Chrome Safari Edge
-
-
-
-
- checkbox-containerFirefox
- L'élément est dessiné comme le conteneur d'une case à cocher. Il pourra inclure un effet d'arrière-plan sur certaines plateformes. Normalement, il devrait contenir un libellé et une case à cocher.
-
-
-
- checkbox-labelFirefox
-
-
-
-
- checkmenuitemFirefox
-
-
-
-
- color-wellSafari
-
- input type=color
-
-
- continuous-capacity-level-indicatorSafari
-
-
-
-
- default-buttonSafari Edge
-
-
-
-
- discrete-capacity-level-indicatorSafari
-
-
-
-
- inner-spin-buttonFirefox Chrome Safari
-
-
-
-
- image-controls-buttonSafari
-
-
-
-
- list-buttonSafari
- datalist
-
-
-
- listitemFirefox Chrome Safari Edge
-
-
-
-
- media-enter-fullscreen-buttonChrome Safari
-
-
-
-
- media-exit-fullscreen-buttonChrome Safari
-
-
-
-
- media-fullscreen-volume-sliderSafari
-
-
-
-
- media-fullscreen-volume-slider-thumbSafari
-
-
-
-
- media-mute-buttonChrome Safari Edge
-
-
-
-
- media-play-buttonChrome Safari Edge
-
-
-
-
- media-overlay-play-buttonChrome Safari
-
-
-
-
- media-return-to-realtime-buttonSafari
-
-
-
-
- media-rewind-buttonSafari
-
-
-
-
- media-seek-back-buttonSafari Edge
-
-
-
-
- media-seek-forward-buttonSafari Edge
-
-
-
-
- media-toggle-closed-captions-buttonChrome Safari
-
-
-
-
- media-sliderChrome Safari Edge
-
-
-
-
- media-sliderthumbChrome Safari Edge
-
-
-
-
- media-volume-slider-containerChrome Safari
-
-
-
-
- media-volume-slider-mute-buttonSafari
-
-
-
-
- media-volume-sliderChrome Safari
-
-
-
-
- media-volume-sliderthumbChrome Safari
-
-
-
-
- media-controls-backgroundChrome Safari
-
-
-
-
- media-controls-dark-bar-backgroundSafari
-
-
-
-
- media-controls-fullscreen-backgroundChrome Safari
-
-
-
-
- media-controls-light-bar-backgroundSafari
-
-
-
-
- media-current-time-displayChrome Safari
-
-
-
-
- media-time-remaining-displayChrome Safari
-
-
-
-
- menulist-textFirefox Chrome Safari Edge
-
-
-
-
- menulist-textfieldFirefox Chrome Safari Edge
- L'élément est mis en forme comme le champ texte d'une liste de menu (non implémenté sur Windows).
-
-
-
- meterbarFirefox
- On utilisera
- meter à la place.
-
-
- number-inputFirefox
-
-
-
-
- progress-bar-valueChrome Safari
-
-
-
-
- progressbarFirefox
- Cet élément est mis en forme comme une barre de progression, aussi, on utilisera
- progress-bar à la place.
-
-
- progressbar-verticalFirefox
-
-
-
-
- rangeFirefox
-
-
-
-
- range-thumbFirefox
-
-
-
-
- rating-level-indicatorSafari
-
-
-
-
- relevancy-level-indicatorSafari
-
-
-
-
- scale-horizontalFirefox
-
-
-
-
- scalethumbendFirefox
-
-
-
-
- scalethumb-horizontalFirefox
-
-
-
-
- scalethumbstartFirefox
-
-
-
-
- scalethumbtickFirefox
-
-
-
-
- scalethumb-verticalFirefox
-
-
-
-
- scale-verticalFirefox
-
-
-
-
- scrollbarthumb-horizontalFirefox
-
-
-
-
- scrollbarthumb-verticalFirefox
-
-
-
-
- scrollbartrack-horizontalFirefox
-
-
-
-
- scrollbartrack-verticalFirefox
-
-
-
-
- searchfield-decorationSafari Edge
-
-
-
-
- searchfield-results-decorationChrome Safari Edge
- (Fonctionne sur Chrome 51 sur Windows 7)
-
-
-
- searchfield-results-buttonSafari Edge
-
-
-
-
- searchfield-cancel-buttonChrome Safari Edge
-
-
-
-
- snapshotted-plugin-overlaySafari
-
-
-
-
- sheetNone
-
-
-
-
- slider-verticalChrome Safari Edge
-
-
-
-
- sliderthumb-horizontalChrome Safari Edge
-
-
-
-
- sliderthumb-verticalChrome Safari Edge
-
-
-
-
- textfield-multilineFirefox
- On utilisera
- textarea à la place.
-
-
-
- -apple-pay-buttonSafari
- iOS et macOS uniquement. Disponible pour le Web à partir de iOS 10.1 et macOS 10.12.1
- Syntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-.exempleun {
- appearance: toolbarbutton;
- -moz-appearance: toolbarbutton;
- -webkit-appearance: toolbarbutton;
-}
-
-
-appearance: none afin d'appliquer une mise en forme spécifique aux boutons radio et aux cases à cocher.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Basic UI', "#appearance-switching", "appearance")}}
- {{Spec2('CSS3 Basic UI')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/appearance/index.md b/files/fr/web/css/appearance/index.md
new file mode 100644
index 0000000000..3f709c1ac5
--- /dev/null
+++ b/files/fr/web/css/appearance/index.md
@@ -0,0 +1,584 @@
+---
+title: appearance (-moz-appearance, -webkit-appearance)
+slug: Web/CSS/appearance
+tags:
+ - '-moz-appearance'
+ - '-webkit-appearance'
+ - CSS
+ - CSS Basic User Interface
+ - CSS Property
+ - Reference
+ - appearance
+ - recipe:css-property
+translation_of: Web/CSS/appearance
+browser-compat: css.properties.appearance
+---
+appearance dans la recommandation CSS 3 Basic User Interface (Candidate Recommendation du 11 mai 2004), qui n'est plus à jour-moz-appearance est utilisée dans Gecko (Firefox) afin d'afficher un élément en utilisant la mise en forme native du système d'exploitation.-webkit-appearance est utilisée dans les navigateurs basés sur WebKit (c'est-à-dire Safari) et sur Blink (c'est-à-dire Chrome ou Opera) et permet d'avoir la même fonctionnalités. On notera que plusieurs navigateurs, non basés sur WebKit (Firefox et Edge par exemple), prennent en charge ce préfixe pour des raisons de compatibilité web.none peut avoir un comportement différent d'une plateforme à une autre et d'autres mots-clés ne sont pas pris en charge.Syntaxe
+
+/* Valeurs spécifiées par le module CSS Basic User Interface de niveau 4 */
+appearance: none;
+appearance: auto;
+appearance: menulist-button;
+appearance: textfield;
+
+/* Valeurs ayant le même effet que 'auto' */
+appearance: button;
+appearance: searchfield;
+appearance: textarea;
+appearance: push-button;
+appearance: slider-horizontal;
+appearance: checkbox;
+appearance: radio;
+appearance: square-button;
+appearance: menulist;
+appearance: listbox;
+appearance: meter;
+appearance: progress-bar;
+
+/* Liste partielle des valeurs disponibles pour Gecko */
+-moz-appearance: scrollbarbutton-up;
+-moz-appearance: button-bevel;
+
+/* Liste partielle des valeurs disponibles pour WebKit/Blink (ainsi que pour Gecko et Edge) */
+-webkit-appearance: media-mute-button;
+-webkit-appearance: caret;
+
+
+Valeurs
+
+Mots-clés standard
+
+
+
+
+
+
+
+ Valeur
+ Navigateur
+ Description
+
+
+
+ noneFirefox Chrome Safari Edge
+ Aucune mise en forme particulière n'est appliquée. C'est la valeur par défaut.
+
+
+
+ autoFirefox Chrome
+ L'agent utilisateur sélectionne la mise en forme spécifique appropriée en fonction de l'élément. Cette valeur agira comme
+ none pour les éléments sans mise en forme spéciale.
+
+
+ menulist-buttonFirefox Chrome Safari Edge
+ L'élément est mis en forme comme un bouton qui indiquerait qu'un menu pourrait être ouvert.
+
+
+
+ textfieldFirefox Chrome Safari Edge
+
+
+
+ Les valeurs suivantes sont traitées de façon équivalente à
+ auto:
+
+
+ buttonFirefox Chrome Safari Edge
+ L'élément est dessiné comme un bouton.
+
+
+
+ checkboxFirefox Chrome Safari Edge
+ L'élément est dessiné comme une case à cocher (et n'inclut que la case à cocher).
+
+
+
+ listboxFirefox Chrome Safari Edge
+
+
+
+
+ menulistFirefox Chrome Safari Edge
+
+
+
+
+ meterChrome Safari Firefox
+
+
+
+
+ progress-barChrome Safari Firefox
+
+
+
+
+ push-buttonChrome Safari Edge
+
+
+
+
+ radioFirefox Chrome Safari Edge
+ L'élément est dessiné comme un bouton radio (et n'inclut que la portion liée au « bouton radio »).
+
+
+
+ searchfieldFirefox Chrome Safari Edge
+
+
+
+
+ slider-horizontalChrome Safari Edge
+
+
+
+
+ square-buttonChrome Safari Edge
+
+
+
+
+
+ textareaFirefox Chrome Safari Edge
+
+ Mots-clés non-standards
+
+appearance.
+
+
+
+
+
+ Valeur
+ Navigateur
+ Description
+
+
+
+ attachmentSafari
+
+
+
+
+ borderless-attachmentSafari
+
+
+
+
+ button-bevelFirefox Chrome Safari Edge
+
+
+
+
+ caps-lock-indicatorSafari Edge
+
+
+
+
+ caretFirefox Chrome Safari Edge
+
+
+
+
+ checkbox-containerFirefox
+ L'élément est dessiné comme le conteneur d'une case à cocher. Il pourra inclure un effet d'arrière-plan sur certaines plateformes. Normalement, il devrait contenir un libellé et une case à cocher.
+
+
+
+ checkbox-labelFirefox
+
+
+
+
+ checkmenuitemFirefox
+
+
+
+
+ color-wellSafari
+
+ input type=color
+
+
+ continuous-capacity-level-indicatorSafari
+
+
+
+
+ default-buttonSafari Edge
+
+
+
+
+ discrete-capacity-level-indicatorSafari
+
+
+
+
+ inner-spin-buttonFirefox Chrome Safari
+
+
+
+
+ image-controls-buttonSafari
+
+
+
+
+ list-buttonSafari
+ datalist
+
+
+
+ listitemFirefox Chrome Safari Edge
+
+
+
+
+ media-enter-fullscreen-buttonChrome Safari
+
+
+
+
+ media-exit-fullscreen-buttonChrome Safari
+
+
+
+
+ media-fullscreen-volume-sliderSafari
+
+
+
+
+ media-fullscreen-volume-slider-thumbSafari
+
+
+
+
+ media-mute-buttonChrome Safari Edge
+
+
+
+
+ media-play-buttonChrome Safari Edge
+
+
+
+
+ media-overlay-play-buttonChrome Safari
+
+
+
+
+ media-return-to-realtime-buttonSafari
+
+
+
+
+ media-rewind-buttonSafari
+
+
+
+
+ media-seek-back-buttonSafari Edge
+
+
+
+
+ media-seek-forward-buttonSafari Edge
+
+
+
+
+ media-toggle-closed-captions-buttonChrome Safari
+
+
+
+
+ media-sliderChrome Safari Edge
+
+
+
+
+ media-sliderthumbChrome Safari Edge
+
+
+
+
+ media-volume-slider-containerChrome Safari
+
+
+
+
+ media-volume-slider-mute-buttonSafari
+
+
+
+
+ media-volume-sliderChrome Safari
+
+
+
+
+ media-volume-sliderthumbChrome Safari
+
+
+
+
+ media-controls-backgroundChrome Safari
+
+
+
+
+ media-controls-dark-bar-backgroundSafari
+
+
+
+
+ media-controls-fullscreen-backgroundChrome Safari
+
+
+
+
+ media-controls-light-bar-backgroundSafari
+
+
+
+
+ media-current-time-displayChrome Safari
+
+
+
+
+ media-time-remaining-displayChrome Safari
+
+
+
+
+ menulist-textFirefox Chrome Safari Edge
+
+
+
+
+ menulist-textfieldFirefox Chrome Safari Edge
+ L'élément est mis en forme comme le champ texte d'une liste de menu (non implémenté sur Windows).
+
+
+
+ meterbarFirefox
+ On utilisera
+ meter à la place.
+
+
+ number-inputFirefox
+
+
+
+
+ progress-bar-valueChrome Safari
+
+
+
+
+ progressbarFirefox
+ Cet élément est mis en forme comme une barre de progression, aussi, on utilisera
+ progress-bar à la place.
+
+
+ progressbar-verticalFirefox
+
+
+
+
+ rangeFirefox
+
+
+
+
+ range-thumbFirefox
+
+
+
+
+ rating-level-indicatorSafari
+
+
+
+
+ relevancy-level-indicatorSafari
+
+
+
+
+ scale-horizontalFirefox
+
+
+
+
+ scalethumbendFirefox
+
+
+
+
+ scalethumb-horizontalFirefox
+
+
+
+
+ scalethumbstartFirefox
+
+
+
+
+ scalethumbtickFirefox
+
+
+
+
+ scalethumb-verticalFirefox
+
+
+
+
+ scale-verticalFirefox
+
+
+
+
+ scrollbarthumb-horizontalFirefox
+
+
+
+
+ scrollbarthumb-verticalFirefox
+
+
+
+
+ scrollbartrack-horizontalFirefox
+
+
+
+
+ scrollbartrack-verticalFirefox
+
+
+
+
+ searchfield-decorationSafari Edge
+
+
+
+
+ searchfield-results-decorationChrome Safari Edge
+ (Fonctionne sur Chrome 51 sur Windows 7)
+
+
+
+ searchfield-results-buttonSafari Edge
+
+
+
+
+ searchfield-cancel-buttonChrome Safari Edge
+
+
+
+
+ snapshotted-plugin-overlaySafari
+
+
+
+
+ sheetNone
+
+
+
+
+ slider-verticalChrome Safari Edge
+
+
+
+
+ sliderthumb-horizontalChrome Safari Edge
+
+
+
+
+ sliderthumb-verticalChrome Safari Edge
+
+
+
+
+ textfield-multilineFirefox
+ On utilisera
+ textarea à la place.
+
+
+
+ -apple-pay-buttonSafari
+ iOS et macOS uniquement. Disponible pour le Web à partir de iOS 10.1 et macOS 10.12.1
+ Syntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+.exempleun {
+ appearance: toolbarbutton;
+ -moz-appearance: toolbarbutton;
+ -webkit-appearance: toolbarbutton;
+}
+
+
+appearance: none afin d'appliquer une mise en forme spécifique aux boutons radio et aux cases à cocher.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Basic UI', "#appearance-switching", "appearance")}}
+ {{Spec2('CSS3 Basic UI')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/aspect-ratio/index.html b/files/fr/web/css/aspect-ratio/index.html
deleted file mode 100644
index aee0eae8a1..0000000000
--- a/files/fr/web/css/aspect-ratio/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: aspect-ratio
-slug: Web/CSS/aspect-ratio
-browser-compat: css.properties.aspect-ratio
-translation_of: 'Web/CSS/aspect-ratio'
----
-appearance dans la recommandation CSS 3 Basic User Interface (Candidate Recommendation du 11 mai 2004), qui n'est plus à jouraspect-ratio définit un ratio d'affichage préférentiel pour la boîte, qui sera utilisé dans le calcul des tailles automatiques et pour d'autres fonctions de mise en page.aspect-ratio: 1 / 1;
-
-/* Valeurs globales */
-aspect-ratio: inherit;
-aspect-ratio: initial;
-aspect-ratio: revert;
-aspect-ratio: unset;
-
-
-Valeurs
-
-
-
-
-width / height. Les calculs de tailles impliquant un ratio d'affichage intrinsèque fonctionnent toujours avec les dimensions de la boîte de contenu spécifiées par box-sizing.Définition formelle
-
-Syntaxe formelle
-
-Exemples
-
-Exemples de valeurs pour aspect-ratio
-
-aspect-ratio: 1 / 1;
-aspect-ratio: 16 / 9;
-
-
-Correspondance entre largeur et hauteur avec aspect-ratio
-
-aspect-ratio interne qui s'applique aux éléments remplacés et à d'autres éléments liés qui acceptent les attributs width et height. Cela se passe dans la feuille de styles interne du navigateur.img, input[type="image"], video, embed, iframe, marquee, object, table {
- aspect-ratio: attr(width) / attr(height);
-}
-
-Spécifications
-
-Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/aspect-ratio/index.md b/files/fr/web/css/aspect-ratio/index.md
new file mode 100644
index 0000000000..aee0eae8a1
--- /dev/null
+++ b/files/fr/web/css/aspect-ratio/index.md
@@ -0,0 +1,70 @@
+---
+title: aspect-ratio
+slug: Web/CSS/aspect-ratio
+browser-compat: css.properties.aspect-ratio
+translation_of: 'Web/CSS/aspect-ratio'
+---
+aspect-ratio définit un ratio d'affichage préférentiel pour la boîte, qui sera utilisé dans le calcul des tailles automatiques et pour d'autres fonctions de mise en page.aspect-ratio: 1 / 1;
+
+/* Valeurs globales */
+aspect-ratio: inherit;
+aspect-ratio: initial;
+aspect-ratio: revert;
+aspect-ratio: unset;
+
+
+Valeurs
+
+
+
+
+width / height. Les calculs de tailles impliquant un ratio d'affichage intrinsèque fonctionnent toujours avec les dimensions de la boîte de contenu spécifiées par box-sizing.Définition formelle
+
+Syntaxe formelle
+
+Exemples
+
+Exemples de valeurs pour aspect-ratio
+
+aspect-ratio: 1 / 1;
+aspect-ratio: 16 / 9;
+
+
+Correspondance entre largeur et hauteur avec aspect-ratio
+
+aspect-ratio interne qui s'applique aux éléments remplacés et à d'autres éléments liés qui acceptent les attributs width et height. Cela se passe dans la feuille de styles interne du navigateur.img, input[type="image"], video, embed, iframe, marquee, object, table {
+ aspect-ratio: attr(width) / attr(height);
+}
+
+Spécifications
+
+Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/at-rule/index.html b/files/fr/web/css/at-rule/index.html
deleted file mode 100644
index b2573ba775..0000000000
--- a/files/fr/web/css/at-rule/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Règles @
-slug: Web/CSS/At-rule
-tags:
- - CSS
- - Reference
- - Règle @
-translation_of: Web/CSS/At-rule
-original_slug: Web/CSS/Règles_@
----
-/* Forme générique */
-@IDENTIFIANT (RÈGLE);
-
-/* Exemple : indiquer au navigateur d'utiliser */
-/* UTF-8 comme jeu de caractères */
-@charset "utf-8";
-
-
-
-
-
-
- @swash, @ornaments, @annotation, @stylistic, @styleset et @character-variant) : ces règles permettent de définir des noms d'usages pour la propriété {{cssxref("font-variant-alternates")}} qui permet d'activer différentes caractéristiques des polices OpenType (bien que la spécification ait atteint le niveau de Candidate Recommendation, cette fonctionnalité est uniquement implémentée dans Gecko au moment où nous écrivons ces lignes)Les règles de groupe conditionnelles
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
- Spécification
- État
- Définition
-
-
- {{SpecName('CSS3 Conditional')}}
- {{Spec2('CSS3 Conditional')}}
- Définition initiale.
-
-
-
-{{SpecName('Compat', '#css-at-rules', 'CSS At-rules')}}
- {{Spec2('Compat')}}
- Standardisation de
- @-webkit-keyframes.Voir aussi
-
-
-
diff --git a/files/fr/web/css/at-rule/index.md b/files/fr/web/css/at-rule/index.md
new file mode 100644
index 0000000000..b2573ba775
--- /dev/null
+++ b/files/fr/web/css/at-rule/index.md
@@ -0,0 +1,83 @@
+---
+title: Règles @
+slug: Web/CSS/At-rule
+tags:
+ - CSS
+ - Reference
+ - Règle @
+translation_of: Web/CSS/At-rule
+original_slug: Web/CSS/Règles_@
+---
+/* Forme générique */
+@IDENTIFIANT (RÈGLE);
+
+/* Exemple : indiquer au navigateur d'utiliser */
+/* UTF-8 comme jeu de caractères */
+@charset "utf-8";
+
+
+
+
+
+
+ @swash, @ornaments, @annotation, @stylistic, @styleset et @character-variant) : ces règles permettent de définir des noms d'usages pour la propriété {{cssxref("font-variant-alternates")}} qui permet d'activer différentes caractéristiques des polices OpenType (bien que la spécification ait atteint le niveau de Candidate Recommendation, cette fonctionnalité est uniquement implémentée dans Gecko au moment où nous écrivons ces lignes)Les règles de groupe conditionnelles
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+ Spécification
+ État
+ Définition
+
+
+ {{SpecName('CSS3 Conditional')}}
+ {{Spec2('CSS3 Conditional')}}
+ Définition initiale.
+
+
+
+{{SpecName('Compat', '#css-at-rules', 'CSS At-rules')}}
+ {{Spec2('Compat')}}
+ Standardisation de
+ @-webkit-keyframes.Voir aussi
+
+
+
diff --git a/files/fr/web/css/attr()/index.html b/files/fr/web/css/attr()/index.html
deleted file mode 100644
index 1a026e67da..0000000000
--- a/files/fr/web/css/attr()/index.html
+++ /dev/null
@@ -1,250 +0,0 @@
----
-title: attr()
-slug: Web/CSS/attr()
-tags:
- - CSS
- - Fonction
- - Reference
-translation_of: Web/CSS/attr()
----
-attr() est utilisée afin de récupérer la valeur d'un attribut d'un élément pour l'utiliser dans la feuille de style. Cette fonction peut également être utilisée sur les pseudo-éléments auquel cas c'est la valeur correspondant à l'élément source qui est renvoyée./* Utilisation simple */
-attr(data-count);
-attr(title);
-
-/* Avec un type */
-attr(src url);
-attr(data-count number);
-attr(data-width px);
-
-/* Avec une valeur par défaut */
-attr(data-count number, 0);
-attr(src url, "");
-attr(data-width px, inherit);
-attr(data-something, "default");
-
-
-attr() peut être utilisée sur n'importe quelle propriété CSS. Toutefois, en dehors de {{cssxref("content")}}, la prise en charge des navigateurs est expérimentale. Voir le tableau de compatibilité en fin d'article.Syntaxe
-
-Valeurs
-
-
-
-
-attribute-name<type-or-unit> {{experimental_inline}}<type-or-unit> est invalide pour l'attribut ciblé, l'expression attr() sera également considérée comme invalide. Si cette valeur est absente, elle vaudra string par défaut. La liste des valeurs valides est :
-
-
-
-
-
-
-
- Mot-clé
- Type associé
- Commentaires
- Valeur par défaut
-
-
-
- string{{cssxref("<string>")}}
- La valeur de l'attribut est traitée comme une chaîne de caractères. Elle n'est pas réanalysée et les caractères sont utilisés tels quels (les échappements CSS ne sont pas transformés).
- Une chaîne vide.
-
-
-
- color {{experimental_inline}}{{cssxref("<color>")}}
- La valeur de l'attribut est analysée comme un code sur 3 ou 6 chiffres ou comme un mot-clé. Elle doit être une valeur {{cssxref("<string>")}} valide. Les blancs en début et en fin de chaîne sont supprimés.
-
- currentColor
-
-
- url {{experimental_inline}}{{cssxref("<uri>")}}
- La valeur de l'attribut est analysée comme une chaîne, utilisée dans une fonction
- url().
- Une URL relative sera résolue par rapport au document original et non par rapport à la feuille de style. Les blancs en début et en fin de chaîne sont supprimés.L'URL
- about:invalid qui pointe vers un document inexistant.
-
-
- integer {{experimental_inline}}{{cssxref("<integer>")}}
- La valeur de l'attribut est analysée comme un entier ({{cssxref("<integer>")}}). Si elle n'est pas valide (si ce n'est pass un entier ou s'il sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
-
- Les blancs en début et en fin de chaîne sont supprimés.
- 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
-
-
- number {{experimental_inline}}{{cssxref("<number>")}}
- La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}). Si elle n'est pas valide (si ce n'est pas un nombre ou que celui-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
-
- Les blancs en début et en fin de chaîne sont supprimés.
- 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
-
-
- length {{experimental_inline}}{{cssxref("<length>")}}
-
-
- 12.5em). Si la valeur n'est pas valide (si ce n'est pas une longueur ou que celle-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
- Si l'unité fournie est une unité relative, attr() calculera la valeur absolue correspondante. Les blancs en début et en fin de chaîne sont supprimés.
- 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
-
-
- em, ex, px, rem, vw, vh, vmin, vmax, mm, cm, in, pt, or pc {{experimental_inline}}{{cssxref("<length>")}}
- La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) (il n'y a pas d'unité) et interprétée comme une longueur ({{cssxref("<length>")}}) grâce à l'unité passée comme argument. Si la valeur n'est pas valide (ce n'est pas un nombre ou celui-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
-
- Si l'unité indiquée est une unité de longueur relative, attr() calculera la valeur absolue correspondante.
- Les blancs en début et en fin de chaîne sont supprimés.
- 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
-
-
- angle {{experimental_inline}}{{cssxref("<angle>")}}
- La valeur de l'attribut est analysée comme un angle ({{cssxref("<angle>")}}) et inclut l'unité (par exemple
- 30.5deg). Si la valeur n'est pas valide (si ce n'est pas un angle ou si la valeur sort de l'intervalle autorisé par la propriété CSS), ce sera la valeur par défaut qui sera utilisée.
- Les blancs en début et en fin de chaîne sont supprimés.
- 0deg, ou, si 0deg n'est pas valide, la valeur minimale de la propriété.
-
-
- deg, grad, rad {{experimental_inline}}{{cssxref("<angle>")}}
-
-
-
- Les blancs en début et en fin de chaîne sont supprimés.
- 0deg, ou, si 0deg n'est pas valide, la valeur minimale de la propriété.
-
-
- time {{experimental_inline}}{{cssxref("<time>")}}
- La valeur de l'attribut est analysée comme une durée ({{cssxref("<time>")}}) et inclut l'unité (par exemple
- 30.5ms). Si elle n'est pas valide (la valeur n'est pas une durée ou n'est pas comprise dans l'intervalle autorisée), ce sera la valeur par défaut qui sera utilisée.
- Les blancs en début et en fin de chaîne sont supprimés.
- 0s, ou, si 0s n'est pas valide, la valeur minimale de la propriété.
-
-
- s, ms {{experimental_inline}}{{cssxref("<time>")}}
- La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) sans unité (par exemple
- 12.5) et est interprétée comme une durée ({{cssxref("<time>")}}) grâce à l'unité passée en paramètre. Si la valeur n'est pas valide (ce n'est pas un nombre ou celui-ci n'est pas compris dans l'intervalle autorisé), ce sera la valeur par défaut qui sera utilisée.
- Les blancs en début et en fin de chaîne sont supprimés.
- 0s, ou, si 0s n'est pas valide, la valeur minimale de la propriété.
-
-
- frequency {{experimental_inline}}{{cssxref("<frequency>")}}
- La valeur de l'attribut est analysée comme une fréquence ({{cssxref("<frequency>")}}) et inclut l'unité (par exemple
- 30.5kHz). Si elle n'est pas valide (ce n'est pas une fréquence ou celle-ci n'est pas comprise dans l'intervalle autorisé), ce sera la valeur par défaut qui sera utilisée. Les blancs en début et en fin de chaîne sont supprimés.
- 0Hz, ou, si 0Hz n'est pas valide, la valeur minimale de la propriété.
-
-
- Hz, kHz {{experimental_inline}}{{cssxref("<frequency>")}}
- La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) sans unité (par exemple
- 12.5) et est interprétée comme une fréquence grâce à l'unité indiquée. Si la valeur n'est pas valide (ce n'est pas un nombre ou celui-ci n'est pas compris dans l'intervalle autorisé), ce sera la valeur par défaut qui sera utilisée.
- Les blancs en début et en fin de chaîne sont supprimés.
- 0Hz, ou, si 0Hz n'est pas valide, la valeur minimale de la propriété.
-
-
-
- % {{experimental_inline}}{{cssxref("<percentage>")}}
- La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) sans unité (par exemple
- 12.5) et est interprétée comme un pourcentage ({{cssxref("<percentage>")}}). Si elle n'est pas valide (ce n'est pas un nombre ou celui-ci n'est pas compris dans l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
- Si la valeur fournie est utilisée comme une longueur, attr() calcule la longueur absolue correspondante.
- Les blancs en début et en fin de chaîne sont supprimés.
- 0%, ou, si 0% n'est pas valide, la valeur minimale de la propriété.<fallback> {{experimental_inline}}attr(). Si attr() n'est pas le seul composant de la valeur d'une propriété, la valeur <fallback> doit correspondre au type défini par <type-or-unit>. Si ce paramètre n'est pas utilisé, le moteur de rendu utilisera la valeur par défaut définie par <type-or-unit>.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Utiliser la propriété
-
-contentHTML
-
-<p data-toto="coucou">world</p>
-
-CSS
-
-[data-toto]::before {
- content: attr(data-toto) " ";
-}
-
-Résultat
-
-Valeur
-
-<color>HTML
-
-<div class="background" data-background="lime"></div>
-
-CSS
-
-html,
-body,
-.background {
- height: 100vh;
-}
-
-.background {
- background-color: red;
-}
-
-.background[data-background] {
- background-color: attr(data-background color, red);
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS4 Values", "#attr-notation", "attr()")}}
- {{Spec2("CSS4 Values")}}
- Aucune modification.
-
-
- {{SpecName('CSS3 Values', '#attr-notation', 'attr()')}}
- {{Spec2('CSS3 Values')}}
- Ajout de deux paramètres optionnels. La fonction peut être utilisée sur toutes les propriétés et renvoyer des valeurs qui ne sont pas des chaînes de caractères. Ces modifications sont expérimentales et pourront être abandonnées pour la recommandation si la prise en charge des navigateurs est trop faible.
-
-
-
-{{SpecName('CSS2.1', 'generate.html#x18', 'attr()')}}
- {{Spec2('CSS2.1')}}
- Utilisation limitée à {{cssxref("content")}}, la fonction renvoie toujours une chaîne de caractères ({{cssxref("<string>")}}).
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/attr()/index.md b/files/fr/web/css/attr()/index.md
new file mode 100644
index 0000000000..1a026e67da
--- /dev/null
+++ b/files/fr/web/css/attr()/index.md
@@ -0,0 +1,250 @@
+---
+title: attr()
+slug: Web/CSS/attr()
+tags:
+ - CSS
+ - Fonction
+ - Reference
+translation_of: Web/CSS/attr()
+---
+attr() est utilisée afin de récupérer la valeur d'un attribut d'un élément pour l'utiliser dans la feuille de style. Cette fonction peut également être utilisée sur les pseudo-éléments auquel cas c'est la valeur correspondant à l'élément source qui est renvoyée./* Utilisation simple */
+attr(data-count);
+attr(title);
+
+/* Avec un type */
+attr(src url);
+attr(data-count number);
+attr(data-width px);
+
+/* Avec une valeur par défaut */
+attr(data-count number, 0);
+attr(src url, "");
+attr(data-width px, inherit);
+attr(data-something, "default");
+
+
+attr() peut être utilisée sur n'importe quelle propriété CSS. Toutefois, en dehors de {{cssxref("content")}}, la prise en charge des navigateurs est expérimentale. Voir le tableau de compatibilité en fin d'article.Syntaxe
+
+Valeurs
+
+
+
+
+attribute-name<type-or-unit> {{experimental_inline}}<type-or-unit> est invalide pour l'attribut ciblé, l'expression attr() sera également considérée comme invalide. Si cette valeur est absente, elle vaudra string par défaut. La liste des valeurs valides est :
+
+
+
+
+
+
+
+ Mot-clé
+ Type associé
+ Commentaires
+ Valeur par défaut
+
+
+
+ string{{cssxref("<string>")}}
+ La valeur de l'attribut est traitée comme une chaîne de caractères. Elle n'est pas réanalysée et les caractères sont utilisés tels quels (les échappements CSS ne sont pas transformés).
+ Une chaîne vide.
+
+
+
+ color {{experimental_inline}}{{cssxref("<color>")}}
+ La valeur de l'attribut est analysée comme un code sur 3 ou 6 chiffres ou comme un mot-clé. Elle doit être une valeur {{cssxref("<string>")}} valide. Les blancs en début et en fin de chaîne sont supprimés.
+
+ currentColor
+
+
+ url {{experimental_inline}}{{cssxref("<uri>")}}
+ La valeur de l'attribut est analysée comme une chaîne, utilisée dans une fonction
+ url().
+ Une URL relative sera résolue par rapport au document original et non par rapport à la feuille de style. Les blancs en début et en fin de chaîne sont supprimés.L'URL
+ about:invalid qui pointe vers un document inexistant.
+
+
+ integer {{experimental_inline}}{{cssxref("<integer>")}}
+ La valeur de l'attribut est analysée comme un entier ({{cssxref("<integer>")}}). Si elle n'est pas valide (si ce n'est pass un entier ou s'il sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
+
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
+
+
+ number {{experimental_inline}}{{cssxref("<number>")}}
+ La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}). Si elle n'est pas valide (si ce n'est pas un nombre ou que celui-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
+
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
+
+
+ length {{experimental_inline}}{{cssxref("<length>")}}
+
+
+ 12.5em). Si la valeur n'est pas valide (si ce n'est pas une longueur ou que celle-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
+ Si l'unité fournie est une unité relative, attr() calculera la valeur absolue correspondante. Les blancs en début et en fin de chaîne sont supprimés.
+ 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
+
+
+ em, ex, px, rem, vw, vh, vmin, vmax, mm, cm, in, pt, or pc {{experimental_inline}}{{cssxref("<length>")}}
+ La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) (il n'y a pas d'unité) et interprétée comme une longueur ({{cssxref("<length>")}}) grâce à l'unité passée comme argument. Si la valeur n'est pas valide (ce n'est pas un nombre ou celui-ci sort de l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
+
+ Si l'unité indiquée est une unité de longueur relative, attr() calculera la valeur absolue correspondante.
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0, ou, si 0 n'est pas valide, la valeur minimale de la propriété.
+
+
+ angle {{experimental_inline}}{{cssxref("<angle>")}}
+ La valeur de l'attribut est analysée comme un angle ({{cssxref("<angle>")}}) et inclut l'unité (par exemple
+ 30.5deg). Si la valeur n'est pas valide (si ce n'est pas un angle ou si la valeur sort de l'intervalle autorisé par la propriété CSS), ce sera la valeur par défaut qui sera utilisée.
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0deg, ou, si 0deg n'est pas valide, la valeur minimale de la propriété.
+
+
+ deg, grad, rad {{experimental_inline}}{{cssxref("<angle>")}}
+
+
+
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0deg, ou, si 0deg n'est pas valide, la valeur minimale de la propriété.
+
+
+ time {{experimental_inline}}{{cssxref("<time>")}}
+ La valeur de l'attribut est analysée comme une durée ({{cssxref("<time>")}}) et inclut l'unité (par exemple
+ 30.5ms). Si elle n'est pas valide (la valeur n'est pas une durée ou n'est pas comprise dans l'intervalle autorisée), ce sera la valeur par défaut qui sera utilisée.
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0s, ou, si 0s n'est pas valide, la valeur minimale de la propriété.
+
+
+ s, ms {{experimental_inline}}{{cssxref("<time>")}}
+ La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) sans unité (par exemple
+ 12.5) et est interprétée comme une durée ({{cssxref("<time>")}}) grâce à l'unité passée en paramètre. Si la valeur n'est pas valide (ce n'est pas un nombre ou celui-ci n'est pas compris dans l'intervalle autorisé), ce sera la valeur par défaut qui sera utilisée.
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0s, ou, si 0s n'est pas valide, la valeur minimale de la propriété.
+
+
+ frequency {{experimental_inline}}{{cssxref("<frequency>")}}
+ La valeur de l'attribut est analysée comme une fréquence ({{cssxref("<frequency>")}}) et inclut l'unité (par exemple
+ 30.5kHz). Si elle n'est pas valide (ce n'est pas une fréquence ou celle-ci n'est pas comprise dans l'intervalle autorisé), ce sera la valeur par défaut qui sera utilisée. Les blancs en début et en fin de chaîne sont supprimés.
+ 0Hz, ou, si 0Hz n'est pas valide, la valeur minimale de la propriété.
+
+
+ Hz, kHz {{experimental_inline}}{{cssxref("<frequency>")}}
+ La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) sans unité (par exemple
+ 12.5) et est interprétée comme une fréquence grâce à l'unité indiquée. Si la valeur n'est pas valide (ce n'est pas un nombre ou celui-ci n'est pas compris dans l'intervalle autorisé), ce sera la valeur par défaut qui sera utilisée.
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0Hz, ou, si 0Hz n'est pas valide, la valeur minimale de la propriété.
+
+
+
+ % {{experimental_inline}}{{cssxref("<percentage>")}}
+ La valeur de l'attribut est analysée comme un nombre ({{cssxref("<number>")}}) sans unité (par exemple
+ 12.5) et est interprétée comme un pourcentage ({{cssxref("<percentage>")}}). Si elle n'est pas valide (ce n'est pas un nombre ou celui-ci n'est pas compris dans l'intervalle autorisé par la propriété), ce sera la valeur par défaut qui sera utilisée.
+ Si la valeur fournie est utilisée comme une longueur, attr() calcule la longueur absolue correspondante.
+ Les blancs en début et en fin de chaîne sont supprimés.
+ 0%, ou, si 0% n'est pas valide, la valeur minimale de la propriété.<fallback> {{experimental_inline}}attr(). Si attr() n'est pas le seul composant de la valeur d'une propriété, la valeur <fallback> doit correspondre au type défini par <type-or-unit>. Si ce paramètre n'est pas utilisé, le moteur de rendu utilisera la valeur par défaut définie par <type-or-unit>.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Utiliser la propriété
+
+contentHTML
+
+<p data-toto="coucou">world</p>
+
+CSS
+
+[data-toto]::before {
+ content: attr(data-toto) " ";
+}
+
+Résultat
+
+Valeur
+
+<color>HTML
+
+<div class="background" data-background="lime"></div>
+
+CSS
+
+html,
+body,
+.background {
+ height: 100vh;
+}
+
+.background {
+ background-color: red;
+}
+
+.background[data-background] {
+ background-color: attr(data-background color, red);
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS4 Values", "#attr-notation", "attr()")}}
+ {{Spec2("CSS4 Values")}}
+ Aucune modification.
+
+
+ {{SpecName('CSS3 Values', '#attr-notation', 'attr()')}}
+ {{Spec2('CSS3 Values')}}
+ Ajout de deux paramètres optionnels. La fonction peut être utilisée sur toutes les propriétés et renvoyer des valeurs qui ne sont pas des chaînes de caractères. Ces modifications sont expérimentales et pourront être abandonnées pour la recommandation si la prise en charge des navigateurs est trop faible.
+
+
+
+{{SpecName('CSS2.1', 'generate.html#x18', 'attr()')}}
+ {{Spec2('CSS2.1')}}
+ Utilisation limitée à {{cssxref("content")}}, la fonction renvoie toujours une chaîne de caractères ({{cssxref("<string>")}}).
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/attribute_selectors/index.html b/files/fr/web/css/attribute_selectors/index.html
deleted file mode 100644
index 1c0631a784..0000000000
--- a/files/fr/web/css/attribute_selectors/index.html
+++ /dev/null
@@ -1,242 +0,0 @@
----
-title: Sélecteurs d'attribut
-slug: Web/CSS/Attribute_selectors
-tags:
- - CSS
- - Débutant
- - Reference
- - Sélecteur
-translation_of: Web/CSS/Attribute_selectors
-original_slug: Web/CSS/Sélecteurs_d_attribut
----
-/* Les éléments <a> avec un attribut title */
-a[title] {
- color: purple;
-}
-
-/* Les éléments <a> avec un href qui correspond */
-/* à "https://example.org" */
-a[href="https://example.org"] {
- color: green;
-}
-
-/* Les éléments <a> dont href contient "example" */
-a[href*="example"] {
- font-size: 2em;
-}
-
-/* Les éléments <a> dont href finit par ".org" */
-a[href$=".org"] {
- font-style: italic;
-}
-
-/* Les éléments <a> dont l'attribut class contient le mot logo */
-/* comportement identique à a.logo */
-a[class~="logo"] {
- padding: 2px;
-}
-
-Syntaxe
-
-
-
-
-[attr]attr.[attr=valeur]attr dont la valeur est exactement valeur.[attr~=valeur]attr dont la valeur est valeur. Cette forme permet de fournir une liste de valeurs, séparées par des blancs, à tester. Si au moins une de ces valeurs est égale à celle de l'attribut, l'élément sera ciblé.[attr|=valeur]attr dont la valeur est exactement valeur ou dont la valeur commence par valeur suivi immédiatement d'un tiret (U+002D). Cela peut notamment être utilisé pour effectuer des correspondances avec des codes de langues.[attr^=valeur]attr dont la valeur commence par valeur.[attr$=valeur]attr dont la valeur se termine par valeur.[attr*=valeur]attr et dont la valeur contient au moins une occurrence de valeur dans la chaîne de caractères.[attr operateur valeur i]i (ou I) avant le crochet de fin. Dans ce cas, la casse ne sera pas prise en compte (pour les caractères contenus sur l'intervalle ASCII).[attr operateur valeur s] {{experimental_inline}}s (ou S) avant le crochet fermant permettra d'effectuer une comparaison de valeur sensible à la casse (pour les caractères ASCII).Syntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-Liens
-
-CSS
-
-a {
- color: blue;
-}
-
-/* Liens internes commençant avec "#" */
-a[href^="#"] {
- background-color: gold;
-}
-
-/* Liens avec "example" n'importe où dans l'URL */
-a[href*="example"] {
- background-color: silver;
-}
-
-/* Liens avec "insensitive" n'importe où dans l'URL,
- quelle que soit la casse */
-a[href*="insensitive" i] {
- color: cyan;
-}
-
-/* Liens avec "cAsE" n'importe où dans l'URL,
- et avec cette casse donnée.*/
-a[href*="cAsE" s] {
- color: pink;
-}
-
-/* Liens qui finissent ".org" */
-a[href$=".org"] {
- color: red;
-}
-
-HTML
-
-<ul>
- <li><a href="#internal">Lien interne<a></li>
- <li><a href="http://example.com">Lien d'exemple</a></li>
- <li><a href="#InSensitive">Lien interne insensible à la casse</a></li>
- <li><a href="http://example.org">Lien vers example.org</a></li>
-</ul>
-
-Résultat
-
-Langues
-
-CSS
-
-/* Tous les éléments divs avec un attribut `lang` seront en gras. */
-div[lang] {
- font-weight: bold;
-}
-
-/* Tous les divs en anglais américains seront bleus. */
-div[lang~="en-us"] {
- color: blue;
-}
-
-/* Tous les divs en portugais seront verts. */
-div[lang="pt"] {
- color: green;
-}
-
-/* Tous les divs en chinois seront rouges (chinois
- simplifié (zh-CN) ou traditionnel (zh-TW). */
-div[lang|="zh"] {
- color: red;
-}
-
-/* Tous les divs en chinois traditionnels pour l'attribut
- `data-lang` seront violet. */
-/* Note : Les doubles quotes ne sont pas strictement nécessaires
- ici */
-div[data-lang="zh-TW"] {
- color: purple;
-}
-
-
-HTML
-
-<div lang="en-us en-gb en-au en-nz">Hello World!</div>
-<div lang="pt">Olá Mundo!</div>
-<div lang="zh-CN">世界您好!</div>
-<div lang="zh-TW">世界您好!</div>
-<div data-lang="zh-TW">世界您好!</div>
-
-
-Résultat
-
-Listes ordonnées
-
-CSS
-
-/* Les types de liste devront être utilisé avec le
- marqueur pour la casse vu les spécifications HTML */
-ol[type="a"] {
- list-style-type: lower-alpha;
- background: red;
-}
-
-ol[type="a" s] {
- list-style-type: lower-alpha;
- background: lime;
-}
-
-ol[type="A" s] {
- list-style-type: upper-alpha;
- background: lime;
-}
-
-HTML
-
-<ol type="A">
- <li>Liste d'exemple</li>
-</ol>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS4 Selectors', '#attribute-selectors', 'attribute selectors')}}
- {{Spec2('CSS4 Selectors')}}
- Ajout du modification pour la sélection des valeurs d'attribut ASCII insensible à la casse.
-
-
- {{SpecName('CSS3 Selectors', '#attribute-selectors', 'attribute selectors')}}
- {{Spec2('CSS3 Selectors')}}
-
-
-
-
-{{SpecName('CSS2.1', 'selector.html#attribute-selectors', 'attribute selectors')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/attribute_selectors/index.md b/files/fr/web/css/attribute_selectors/index.md
new file mode 100644
index 0000000000..1c0631a784
--- /dev/null
+++ b/files/fr/web/css/attribute_selectors/index.md
@@ -0,0 +1,242 @@
+---
+title: Sélecteurs d'attribut
+slug: Web/CSS/Attribute_selectors
+tags:
+ - CSS
+ - Débutant
+ - Reference
+ - Sélecteur
+translation_of: Web/CSS/Attribute_selectors
+original_slug: Web/CSS/Sélecteurs_d_attribut
+---
+/* Les éléments <a> avec un attribut title */
+a[title] {
+ color: purple;
+}
+
+/* Les éléments <a> avec un href qui correspond */
+/* à "https://example.org" */
+a[href="https://example.org"] {
+ color: green;
+}
+
+/* Les éléments <a> dont href contient "example" */
+a[href*="example"] {
+ font-size: 2em;
+}
+
+/* Les éléments <a> dont href finit par ".org" */
+a[href$=".org"] {
+ font-style: italic;
+}
+
+/* Les éléments <a> dont l'attribut class contient le mot logo */
+/* comportement identique à a.logo */
+a[class~="logo"] {
+ padding: 2px;
+}
+
+Syntaxe
+
+
+
+
+[attr]attr.[attr=valeur]attr dont la valeur est exactement valeur.[attr~=valeur]attr dont la valeur est valeur. Cette forme permet de fournir une liste de valeurs, séparées par des blancs, à tester. Si au moins une de ces valeurs est égale à celle de l'attribut, l'élément sera ciblé.[attr|=valeur]attr dont la valeur est exactement valeur ou dont la valeur commence par valeur suivi immédiatement d'un tiret (U+002D). Cela peut notamment être utilisé pour effectuer des correspondances avec des codes de langues.[attr^=valeur]attr dont la valeur commence par valeur.[attr$=valeur]attr dont la valeur se termine par valeur.[attr*=valeur]attr et dont la valeur contient au moins une occurrence de valeur dans la chaîne de caractères.[attr operateur valeur i]i (ou I) avant le crochet de fin. Dans ce cas, la casse ne sera pas prise en compte (pour les caractères contenus sur l'intervalle ASCII).[attr operateur valeur s] {{experimental_inline}}s (ou S) avant le crochet fermant permettra d'effectuer une comparaison de valeur sensible à la casse (pour les caractères ASCII).Syntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+Liens
+
+CSS
+
+a {
+ color: blue;
+}
+
+/* Liens internes commençant avec "#" */
+a[href^="#"] {
+ background-color: gold;
+}
+
+/* Liens avec "example" n'importe où dans l'URL */
+a[href*="example"] {
+ background-color: silver;
+}
+
+/* Liens avec "insensitive" n'importe où dans l'URL,
+ quelle que soit la casse */
+a[href*="insensitive" i] {
+ color: cyan;
+}
+
+/* Liens avec "cAsE" n'importe où dans l'URL,
+ et avec cette casse donnée.*/
+a[href*="cAsE" s] {
+ color: pink;
+}
+
+/* Liens qui finissent ".org" */
+a[href$=".org"] {
+ color: red;
+}
+
+HTML
+
+<ul>
+ <li><a href="#internal">Lien interne<a></li>
+ <li><a href="http://example.com">Lien d'exemple</a></li>
+ <li><a href="#InSensitive">Lien interne insensible à la casse</a></li>
+ <li><a href="http://example.org">Lien vers example.org</a></li>
+</ul>
+
+Résultat
+
+Langues
+
+CSS
+
+/* Tous les éléments divs avec un attribut `lang` seront en gras. */
+div[lang] {
+ font-weight: bold;
+}
+
+/* Tous les divs en anglais américains seront bleus. */
+div[lang~="en-us"] {
+ color: blue;
+}
+
+/* Tous les divs en portugais seront verts. */
+div[lang="pt"] {
+ color: green;
+}
+
+/* Tous les divs en chinois seront rouges (chinois
+ simplifié (zh-CN) ou traditionnel (zh-TW). */
+div[lang|="zh"] {
+ color: red;
+}
+
+/* Tous les divs en chinois traditionnels pour l'attribut
+ `data-lang` seront violet. */
+/* Note : Les doubles quotes ne sont pas strictement nécessaires
+ ici */
+div[data-lang="zh-TW"] {
+ color: purple;
+}
+
+
+HTML
+
+<div lang="en-us en-gb en-au en-nz">Hello World!</div>
+<div lang="pt">Olá Mundo!</div>
+<div lang="zh-CN">世界您好!</div>
+<div lang="zh-TW">世界您好!</div>
+<div data-lang="zh-TW">世界您好!</div>
+
+
+Résultat
+
+Listes ordonnées
+
+CSS
+
+/* Les types de liste devront être utilisé avec le
+ marqueur pour la casse vu les spécifications HTML */
+ol[type="a"] {
+ list-style-type: lower-alpha;
+ background: red;
+}
+
+ol[type="a" s] {
+ list-style-type: lower-alpha;
+ background: lime;
+}
+
+ol[type="A" s] {
+ list-style-type: upper-alpha;
+ background: lime;
+}
+
+HTML
+
+<ol type="A">
+ <li>Liste d'exemple</li>
+</ol>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS4 Selectors', '#attribute-selectors', 'attribute selectors')}}
+ {{Spec2('CSS4 Selectors')}}
+ Ajout du modification pour la sélection des valeurs d'attribut ASCII insensible à la casse.
+
+
+ {{SpecName('CSS3 Selectors', '#attribute-selectors', 'attribute selectors')}}
+ {{Spec2('CSS3 Selectors')}}
+
+
+
+
+{{SpecName('CSS2.1', 'selector.html#attribute-selectors', 'attribute selectors')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/backdrop-filter/index.html b/files/fr/web/css/backdrop-filter/index.html
deleted file mode 100644
index 9207d87746..0000000000
--- a/files/fr/web/css/backdrop-filter/index.html
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: backdrop-filter
-slug: Web/CSS/backdrop-filter
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/backdrop-filter
----
-backdrop-filter permet d'obtenir un effet de flou ou de diffusion de la couleur sur la zone derrière l'élément. L'effet étant situé derrière l'élément, il pourra être observé en ajustant la transparence de l'élément./* Valeur avec un mot-clé */
-backdrop-filter: none;
-
-/* Une valeur d'URL vers un filtre SVG */
-backdrop-filter: url(commonfilters.svg#filter);
-
-/* Les notations fonctionnelles pour les filtres */
-/* Valeur de type <filter-function> */
-backdrop-filter: blur(2px);
-backdrop-filter: brightness(60%);
-backdrop-filter: contrast(40%);
-backdrop-filter: drop-shadow(4px 4px 10px blue);
-backdrop-filter: grayscale(30%);
-backdrop-filter: hue-rotate(120deg);
-backdrop-filter: invert(70%);
-backdrop-filter: opacity(20%);
-backdrop-filter: sepia(90%);
-backdrop-filter: saturate(80%);
-
-/* On enchaîne plusieurs filtres */
-backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%);
-
-/* Valeurs globales */
-backdrop-filter: inherit;
-backdrop-filter: initial;
-backdrop-filter: unset;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-none<filter-function-list>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.box {
- background-color: rgba(255, 255, 255, 0.95);
- border-radius: 5px;
- font-family: sans-serif;
- text-align: center;
- line-height: 1;
- backdrop-filter: blur(10px);
- -webkit-backdrop-filter: blur(10px);
- max-width: 50%;
- max-height: 50%;
- padding: 20px 40px;
-}
-
-html, body {
- height: 100%;
- width: 100%;
-}
-
-body {
- background-image: url('https://lorempixel.com/400/200/');
- background-position: center center;
- background-repeat: no-repeat;
- background-size: cover;
-}
-
-.container {
- align-items: center;
- display: flex;
- justify-content: center;
- height: 100%;
- width: 100%;
-}
-
-HTML
-
-<div class="container">
- <div class="box">
- <p>backdrop-filter: blur(10px)</p>
- </div>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('Filters 2.0', '#BackdropFilterProperty', 'backdrop-filter')}}
- {{Spec2('Filters 2.0')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/backdrop-filter/index.md b/files/fr/web/css/backdrop-filter/index.md
new file mode 100644
index 0000000000..9207d87746
--- /dev/null
+++ b/files/fr/web/css/backdrop-filter/index.md
@@ -0,0 +1,136 @@
+---
+title: backdrop-filter
+slug: Web/CSS/backdrop-filter
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/backdrop-filter
+---
+backdrop-filter (en anglais)backdrop-filter permet d'obtenir un effet de flou ou de diffusion de la couleur sur la zone derrière l'élément. L'effet étant situé derrière l'élément, il pourra être observé en ajustant la transparence de l'élément./* Valeur avec un mot-clé */
+backdrop-filter: none;
+
+/* Une valeur d'URL vers un filtre SVG */
+backdrop-filter: url(commonfilters.svg#filter);
+
+/* Les notations fonctionnelles pour les filtres */
+/* Valeur de type <filter-function> */
+backdrop-filter: blur(2px);
+backdrop-filter: brightness(60%);
+backdrop-filter: contrast(40%);
+backdrop-filter: drop-shadow(4px 4px 10px blue);
+backdrop-filter: grayscale(30%);
+backdrop-filter: hue-rotate(120deg);
+backdrop-filter: invert(70%);
+backdrop-filter: opacity(20%);
+backdrop-filter: sepia(90%);
+backdrop-filter: saturate(80%);
+
+/* On enchaîne plusieurs filtres */
+backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%);
+
+/* Valeurs globales */
+backdrop-filter: inherit;
+backdrop-filter: initial;
+backdrop-filter: unset;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+none<filter-function-list>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.box {
+ background-color: rgba(255, 255, 255, 0.95);
+ border-radius: 5px;
+ font-family: sans-serif;
+ text-align: center;
+ line-height: 1;
+ backdrop-filter: blur(10px);
+ -webkit-backdrop-filter: blur(10px);
+ max-width: 50%;
+ max-height: 50%;
+ padding: 20px 40px;
+}
+
+html, body {
+ height: 100%;
+ width: 100%;
+}
+
+body {
+ background-image: url('https://lorempixel.com/400/200/');
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: cover;
+}
+
+.container {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ width: 100%;
+}
+
+HTML
+
+<div class="container">
+ <div class="box">
+ <p>backdrop-filter: blur(10px)</p>
+ </div>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('Filters 2.0', '#BackdropFilterProperty', 'backdrop-filter')}}
+ {{Spec2('Filters 2.0')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/backface-visibility/index.html b/files/fr/web/css/backface-visibility/index.html
deleted file mode 100644
index 510a676f14..0000000000
--- a/files/fr/web/css/backface-visibility/index.html
+++ /dev/null
@@ -1,213 +0,0 @@
----
-title: backface-visibility
-slug: Web/CSS/backface-visibility
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/backface-visibility
----
-backdrop-filter (en anglais)backface-visibility indique si la face arrière d'un élément doit être visible lorsqu'elle est orientée vers l'utilisateur. La face arrière d'un élément est un arrière-plan transparent qui, lorsqu'il est visible, permet de voir un reflet symétrique de la face avant de l'élément.Syntaxe
-
-/* Valeurs avec un mot-clé */
-backface-visibility: visible;
-backface-visibility: hidden;
-
-/* Valeurs globales */
-backface-visibility: inherit;
-backface-visibility: initial;
-backface-visibility: unset;
-
-backface-visibility est définie avec l'un des mots-clés suivants.Valeurs
-
-
-
-
-visiblehiddenSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-/* Des classes utilitaires pour afficher ou
- masquer les faces arrières du cube */
-.hidebf div {
- backface-visibility: hidden;
-}
-
-.showbf div {
- backface-visibility: visible;
-}
-
-/* On définit les règles pour le conteneur, */
-/* le cube et une face quelconque */
-.container {
- width: 150px;
- height: 150px;
- margin: 75px 0 0 75px;
- border: none;
-}
-
-.cube {
- width: 100%;
- height: 100%;
- perspective: 550px;
- perspective-origin: 150% 150%;
- transform-style: preserve-3d;
-}
-
-.face {
- display: block;
- position: absolute;
- width: 100px;
- height: 100px;
- border: none;
- line-height: 100px;
- font-family: sans-serif;
- font-size: 60px;
- color: white;
- text-align: center;
-}
-
-/* On définit chacune des faces */
-.front {
- background: rgba(0, 0, 0, 0.3);
- transform: translateZ(50px);
-}
-
-.back {
- background: rgba(0, 255, 0, 1);
- color: black;
- transform: rotateY(180deg) translateZ(50px);
-}
-
-.right {
- background: rgba(196, 0, 0, 0.7);
- transform: rotateY(90deg) translateZ(50px);
-}
-
-.left {
- background: rgba(0, 0, 196, 0.7);
- transform: rotateY(-90deg) translateZ(50px);
-}
-
-.top {
- background: rgba(196, 196, 0, 0.7);
- transform: rotateX(90deg) translateZ(50px);
-}
-
-.bottom {
- background: rgba(196, 0, 196, 0.7);
- transform: rotateX(-90deg) translateZ(50px);
-}
-
-/* On améliore le rendu du tableau */
-th, p, td {
- background-color: #EEEEEE;
- margin: 0px;
- padding: 6px;
- font-family: sans-serif;
- text-align: left;
-}
-
-HTML
-
-<table>
- <tbody>
- <tr>
- <th><code>backface-visibility: visible;</code></th>
- <th><code>backface-visibility: hidden;</code></th>
- </tr>
- <tr>
- <td>
- <div class="container">
- <div class="cube showbf">
- <div class="face front">1</div>
- <div class="face back">2</div>
- <div class="face right">3</div>
- <div class="face left">4</div>
- <div class="face top">5</div>
- <div class="face bottom">6</div>
- </div>
- </div>
- <p>
- Toutes les faces sont transparentes et les trois
- faces arrières sont visibles au travers des faces
- avant.
- </p>
- </td>
- <td>
- <div class="container">
- <div class="cube hidebf">
- <div class="face front">1</div>
- <div class="face back">2</div>
- <div class="face right">3</div>
- <div class="face left">4</div>
- <div class="face top">5</div>
- <div class="face bottom">6</div>
- </div>
- </div>
- <p>
- Aucune face n'est opaque mais les trois faces arrières
- sont désormais cachées.
- </p>
- </td>
- </tr>
- </tbody>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS Transforms 2', '#propdef-backface-visibility', 'backface-visibility')}}
- {{Spec2('CSS Transforms 2')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/backface-visibility/index.md b/files/fr/web/css/backface-visibility/index.md
new file mode 100644
index 0000000000..510a676f14
--- /dev/null
+++ b/files/fr/web/css/backface-visibility/index.md
@@ -0,0 +1,213 @@
+---
+title: backface-visibility
+slug: Web/CSS/backface-visibility
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/backface-visibility
+---
+backface-visibility indique si la face arrière d'un élément doit être visible lorsqu'elle est orientée vers l'utilisateur. La face arrière d'un élément est un arrière-plan transparent qui, lorsqu'il est visible, permet de voir un reflet symétrique de la face avant de l'élément.Syntaxe
+
+/* Valeurs avec un mot-clé */
+backface-visibility: visible;
+backface-visibility: hidden;
+
+/* Valeurs globales */
+backface-visibility: inherit;
+backface-visibility: initial;
+backface-visibility: unset;
+
+backface-visibility est définie avec l'un des mots-clés suivants.Valeurs
+
+
+
+
+visiblehiddenSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+/* Des classes utilitaires pour afficher ou
+ masquer les faces arrières du cube */
+.hidebf div {
+ backface-visibility: hidden;
+}
+
+.showbf div {
+ backface-visibility: visible;
+}
+
+/* On définit les règles pour le conteneur, */
+/* le cube et une face quelconque */
+.container {
+ width: 150px;
+ height: 150px;
+ margin: 75px 0 0 75px;
+ border: none;
+}
+
+.cube {
+ width: 100%;
+ height: 100%;
+ perspective: 550px;
+ perspective-origin: 150% 150%;
+ transform-style: preserve-3d;
+}
+
+.face {
+ display: block;
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ border: none;
+ line-height: 100px;
+ font-family: sans-serif;
+ font-size: 60px;
+ color: white;
+ text-align: center;
+}
+
+/* On définit chacune des faces */
+.front {
+ background: rgba(0, 0, 0, 0.3);
+ transform: translateZ(50px);
+}
+
+.back {
+ background: rgba(0, 255, 0, 1);
+ color: black;
+ transform: rotateY(180deg) translateZ(50px);
+}
+
+.right {
+ background: rgba(196, 0, 0, 0.7);
+ transform: rotateY(90deg) translateZ(50px);
+}
+
+.left {
+ background: rgba(0, 0, 196, 0.7);
+ transform: rotateY(-90deg) translateZ(50px);
+}
+
+.top {
+ background: rgba(196, 196, 0, 0.7);
+ transform: rotateX(90deg) translateZ(50px);
+}
+
+.bottom {
+ background: rgba(196, 0, 196, 0.7);
+ transform: rotateX(-90deg) translateZ(50px);
+}
+
+/* On améliore le rendu du tableau */
+th, p, td {
+ background-color: #EEEEEE;
+ margin: 0px;
+ padding: 6px;
+ font-family: sans-serif;
+ text-align: left;
+}
+
+HTML
+
+<table>
+ <tbody>
+ <tr>
+ <th><code>backface-visibility: visible;</code></th>
+ <th><code>backface-visibility: hidden;</code></th>
+ </tr>
+ <tr>
+ <td>
+ <div class="container">
+ <div class="cube showbf">
+ <div class="face front">1</div>
+ <div class="face back">2</div>
+ <div class="face right">3</div>
+ <div class="face left">4</div>
+ <div class="face top">5</div>
+ <div class="face bottom">6</div>
+ </div>
+ </div>
+ <p>
+ Toutes les faces sont transparentes et les trois
+ faces arrières sont visibles au travers des faces
+ avant.
+ </p>
+ </td>
+ <td>
+ <div class="container">
+ <div class="cube hidebf">
+ <div class="face front">1</div>
+ <div class="face back">2</div>
+ <div class="face right">3</div>
+ <div class="face left">4</div>
+ <div class="face top">5</div>
+ <div class="face bottom">6</div>
+ </div>
+ </div>
+ <p>
+ Aucune face n'est opaque mais les trois faces arrières
+ sont désormais cachées.
+ </p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS Transforms 2', '#propdef-backface-visibility', 'backface-visibility')}}
+ {{Spec2('CSS Transforms 2')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/background-attachment/index.html b/files/fr/web/css/background-attachment/index.html
deleted file mode 100644
index a047e44575..0000000000
--- a/files/fr/web/css/background-attachment/index.html
+++ /dev/null
@@ -1,144 +0,0 @@
----
-title: background-attachment
-slug: Web/CSS/background-attachment
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-attachment
----
-background-attachment définit si la position de l'image d'arrière-plan est fixée dans la zone d'affichage (viewport) ou si celle-ci défile avec le bloc englobant.Syntaxe
-
-/* Valeurs avec un mot-clé */
-background-attachment: scroll;
-background-attachment: fixed;
-background-attachment: local;
-
-/* Valeurs globales */
-background-attachment: inherit;
-background-attachment: initial;
-background-attachment: unset;
-
-
-background-attachment est définie avec un des mots-clés de la liste suivante.Valeurs
-
-
-
-
-fixedlocalscrollSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Exemple simple
-
-CSS
-
-p {
- background-image: url("https://mdn.mozillademos.org/files/12057/starsolid.gif");
- background-attachment: fixed;
-}
-
-
-HTML
-
-<p>
- There were doors all round the hall, but they were all locked; and when
- Alice had been all the way down one side and up the other, trying every
- door, she walked sadly down the middle, wondering how she was ever to
- get out again.
-</p>
-
-Résultat
-
-Gestion de plusieurs arrière-plans
-
-background-attachment spécifique. Pour cela, on utilisera une liste, séparée par des virgules. Les images seront associées dans l'ordre à chaque propriété d'attachement.CSS
-
-p {
- background-image: url("https://mdn.mozillademos.org/files/12057/starsolid.gif"), url("https://mdn.mozillademos.org/files/12059/startransparent.gif");
- background-attachment: fixed, scroll;
- background-repeat: no-repeat, repeat-y;
-}
-
-HTML
-
-<p>
- There were doors all round the hall, but they were all locked; and when
- Alice had been all the way down one side and up the other, trying every
- door, she walked sadly down the middle, wondering how she was ever to
- get out again.
-
- Suddenly she came upon a little three-legged table, all made of solid
- glass; there was nothing on it except a tiny golden key, and Alice's
- first thought was that it might belong to one of the doors of the hall;
- but, alas! either the locks were too large, or the key was too small,
- but at any rate it would not open any of them. However, on the second
- time round, she came upon a low curtain she had not noticed before, and
- behind it was a little door about fifteen inches high: she tried the
- little golden key in the lock, and to her great delight it fitted!
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-background-attachment', 'background-attachment')}}
- {{Spec2('CSS3 Backgrounds')}}
- La propriété a été étendue pour gérer plusieurs arrière-plans et la valeur
- local.
-
- {{SpecName('CSS2.1', 'colors.html#propdef-background-attachment', 'background-attachment')}}
- {{Spec2('CSS2.1')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS1', '#background-attachment', 'background-attachment')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/background-attachment/index.md b/files/fr/web/css/background-attachment/index.md
new file mode 100644
index 0000000000..a047e44575
--- /dev/null
+++ b/files/fr/web/css/background-attachment/index.md
@@ -0,0 +1,144 @@
+---
+title: background-attachment
+slug: Web/CSS/background-attachment
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-attachment
+---
+background-attachment définit si la position de l'image d'arrière-plan est fixée dans la zone d'affichage (viewport) ou si celle-ci défile avec le bloc englobant.Syntaxe
+
+/* Valeurs avec un mot-clé */
+background-attachment: scroll;
+background-attachment: fixed;
+background-attachment: local;
+
+/* Valeurs globales */
+background-attachment: inherit;
+background-attachment: initial;
+background-attachment: unset;
+
+
+background-attachment est définie avec un des mots-clés de la liste suivante.Valeurs
+
+
+
+
+fixedlocalscrollSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Exemple simple
+
+CSS
+
+p {
+ background-image: url("https://mdn.mozillademos.org/files/12057/starsolid.gif");
+ background-attachment: fixed;
+}
+
+
+HTML
+
+<p>
+ There were doors all round the hall, but they were all locked; and when
+ Alice had been all the way down one side and up the other, trying every
+ door, she walked sadly down the middle, wondering how she was ever to
+ get out again.
+</p>
+
+Résultat
+
+Gestion de plusieurs arrière-plans
+
+background-attachment spécifique. Pour cela, on utilisera une liste, séparée par des virgules. Les images seront associées dans l'ordre à chaque propriété d'attachement.CSS
+
+p {
+ background-image: url("https://mdn.mozillademos.org/files/12057/starsolid.gif"), url("https://mdn.mozillademos.org/files/12059/startransparent.gif");
+ background-attachment: fixed, scroll;
+ background-repeat: no-repeat, repeat-y;
+}
+
+HTML
+
+<p>
+ There were doors all round the hall, but they were all locked; and when
+ Alice had been all the way down one side and up the other, trying every
+ door, she walked sadly down the middle, wondering how she was ever to
+ get out again.
+
+ Suddenly she came upon a little three-legged table, all made of solid
+ glass; there was nothing on it except a tiny golden key, and Alice's
+ first thought was that it might belong to one of the doors of the hall;
+ but, alas! either the locks were too large, or the key was too small,
+ but at any rate it would not open any of them. However, on the second
+ time round, she came upon a low curtain she had not noticed before, and
+ behind it was a little door about fifteen inches high: she tried the
+ little golden key in the lock, and to her great delight it fitted!
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-background-attachment', 'background-attachment')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ La propriété a été étendue pour gérer plusieurs arrière-plans et la valeur
+ local.
+
+ {{SpecName('CSS2.1', 'colors.html#propdef-background-attachment', 'background-attachment')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS1', '#background-attachment', 'background-attachment')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/background-blend-mode/index.html b/files/fr/web/css/background-blend-mode/index.html
deleted file mode 100644
index 0b8bc30a7f..0000000000
--- a/files/fr/web/css/background-blend-mode/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
----
-title: background-blend-mode
-slug: Web/CSS/background-blend-mode
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-blend-mode
----
-background-blend-mode définit la façon dont les images d'arrière-plan doivent être fusionnées entre elles et avec la couleur d'arrière-plan.Syntaxe
-
-/* Une valeur qui s'applique à toutes les images */
-background-blend-mode: normal;
-
-/* Deux valeurs, chacune pour une image */
-background-blend-mode: darken, luminosity;
-
-/* Valeurs globales */
-background-blend-mode: initial;
-background-blend-mode: inherit;
-background-blend-mode: unset;
-
-
-Valeurs
-
-
-
-
-<blend-mode>Syntaxe formelle
-
-Syntaxe Formelle: normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity
-
-Exemples
-
-CSS
-
-#div {
- width: 300px;
- height: 300px;
- background: url('https://mdn.mozillademos.org/files/8543/br.png'),url('https://mdn.mozillademos.org/files/8545/tr.png');
- background-blend-mode: screen;
-}
-
-HTML
-
-<div id="div"></div>
-
-<select id="select">
- <option>normal</option>
- <option>multiply</option>
- <option selected>screen</option>
- <option>overlay</option>
- <option>darken</option>
- <option>lighten</option>
- <option>color-dodge</option>
- <option>color-burn</option>
- <option>hard-light</option>
- <option>soft-light</option>
- <option>difference</option>
- <option>exclusion</option>
- <option>hue</option>
- <option>saturation</option>
- <option>color</option>
- <option>luminosity</option>
-</select>
-
-JavaScript
-
-document.getElementById("select").onchange = function(event) {
- document.getElementById("div").style.backgroundBlendMode = document.getElementById("select").selectedOptions[0].innerHTML;
-}
-console.log(document.getElementById('div'));
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('Compositing', '#background-blend-mode', 'background-blend-mode')}}
- {{Spec2('Compositing')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-blend-mode/index.md b/files/fr/web/css/background-blend-mode/index.md
new file mode 100644
index 0000000000..0b8bc30a7f
--- /dev/null
+++ b/files/fr/web/css/background-blend-mode/index.md
@@ -0,0 +1,116 @@
+---
+title: background-blend-mode
+slug: Web/CSS/background-blend-mode
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-blend-mode
+---
+background-blend-mode définit la façon dont les images d'arrière-plan doivent être fusionnées entre elles et avec la couleur d'arrière-plan.Syntaxe
+
+/* Une valeur qui s'applique à toutes les images */
+background-blend-mode: normal;
+
+/* Deux valeurs, chacune pour une image */
+background-blend-mode: darken, luminosity;
+
+/* Valeurs globales */
+background-blend-mode: initial;
+background-blend-mode: inherit;
+background-blend-mode: unset;
+
+
+Valeurs
+
+
+
+
+<blend-mode>Syntaxe formelle
+
+Syntaxe Formelle: normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity
+
+Exemples
+
+CSS
+
+#div {
+ width: 300px;
+ height: 300px;
+ background: url('https://mdn.mozillademos.org/files/8543/br.png'),url('https://mdn.mozillademos.org/files/8545/tr.png');
+ background-blend-mode: screen;
+}
+
+HTML
+
+<div id="div"></div>
+
+<select id="select">
+ <option>normal</option>
+ <option>multiply</option>
+ <option selected>screen</option>
+ <option>overlay</option>
+ <option>darken</option>
+ <option>lighten</option>
+ <option>color-dodge</option>
+ <option>color-burn</option>
+ <option>hard-light</option>
+ <option>soft-light</option>
+ <option>difference</option>
+ <option>exclusion</option>
+ <option>hue</option>
+ <option>saturation</option>
+ <option>color</option>
+ <option>luminosity</option>
+</select>
+
+JavaScript
+
+document.getElementById("select").onchange = function(event) {
+ document.getElementById("div").style.backgroundBlendMode = document.getElementById("select").selectedOptions[0].innerHTML;
+}
+console.log(document.getElementById('div'));
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('Compositing', '#background-blend-mode', 'background-blend-mode')}}
+ {{Spec2('Compositing')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-clip/index.html b/files/fr/web/css/background-clip/index.html
deleted file mode 100644
index 78a5167402..0000000000
--- a/files/fr/web/css/background-clip/index.html
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: background-clip
-slug: Web/CSS/background-clip
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-clip
----
-background-clip définit la façon dont l'arrière-plan d'un élément (que ce soit l'image ou la couleur) s'étend sous la boîte de bordure, la boîte de remplissage (padding) ou la boîte de contenu.Syntaxe
-
-/* Valeurs utilisant un mot-clé */
-background-clip: border-box;
-background-clip: padding-box;
-background-clip: content-box;
-background-clip: text;
-
-/* Valeurs globales */
-background-clip: inherit;
-background-clip: initial;
-background-clip: unset;
-
-
-Valeurs
-
-
-
-
-border-boxpadding-boxcontent-boxtext {{experimental_inline}}Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- border: 10px navy;
- border-style: dotted double;
- margin: 1em;
- padding: 2em;
- background: #F8D575;
- font: 900 1.2em sans-serif;
- text-decoration: underline;
-}
-
-.border-box {
- background-clip: border-box;
-}
-
-.padding-box {
- background-clip: padding-box;
-}
-
-.content-box {
- background-clip: content-box;
-}
-
-.text {
- background-clip: text;
- color: rgba(0,0,0,.2);
-}
-
-
-HTML
-
-<p class="border-box">
- L'arrière-plan s'étend sous la bordure.
-</p>
-<p class="padding-box">
- L'arrière-plan s'étend jusqu'avant la
- bordure.
-</p>
-<p class="content-box">
- L'arrière-plan s'arrête à la boîte de
- contenu.
-</p>
-<p class="text">
- L'arrière-plan se limite au texte au
- premier-plan.
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-background-clip', 'background-clip')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
-
-
-
-{{SpecName('CSS4 Backgrounds', '#background-clip', 'background-clip')}}
- {{Spec2('CSS4 Backgrounds')}}
- Ajout de la valeur
- text.Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-clip/index.md b/files/fr/web/css/background-clip/index.md
new file mode 100644
index 0000000000..78a5167402
--- /dev/null
+++ b/files/fr/web/css/background-clip/index.md
@@ -0,0 +1,147 @@
+---
+title: background-clip
+slug: Web/CSS/background-clip
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-clip
+---
+
-
- background-clip définit la façon dont l'arrière-plan d'un élément (que ce soit l'image ou la couleur) s'étend sous la boîte de bordure, la boîte de remplissage (padding) ou la boîte de contenu.Syntaxe
+
+/* Valeurs utilisant un mot-clé */
+background-clip: border-box;
+background-clip: padding-box;
+background-clip: content-box;
+background-clip: text;
+
+/* Valeurs globales */
+background-clip: inherit;
+background-clip: initial;
+background-clip: unset;
+
+
+Valeurs
+
+
+
+
+border-boxpadding-boxcontent-boxtext {{experimental_inline}}Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ border: 10px navy;
+ border-style: dotted double;
+ margin: 1em;
+ padding: 2em;
+ background: #F8D575;
+ font: 900 1.2em sans-serif;
+ text-decoration: underline;
+}
+
+.border-box {
+ background-clip: border-box;
+}
+
+.padding-box {
+ background-clip: padding-box;
+}
+
+.content-box {
+ background-clip: content-box;
+}
+
+.text {
+ background-clip: text;
+ color: rgba(0,0,0,.2);
+}
+
+
+HTML
+
+<p class="border-box">
+ L'arrière-plan s'étend sous la bordure.
+</p>
+<p class="padding-box">
+ L'arrière-plan s'étend jusqu'avant la
+ bordure.
+</p>
+<p class="content-box">
+ L'arrière-plan s'arrête à la boîte de
+ contenu.
+</p>
+<p class="text">
+ L'arrière-plan se limite au texte au
+ premier-plan.
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-background-clip', 'background-clip')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+
+
+
+{{SpecName('CSS4 Backgrounds', '#background-clip', 'background-clip')}}
+ {{Spec2('CSS4 Backgrounds')}}
+ Ajout de la valeur
+ text.Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-color/index.html b/files/fr/web/css/background-color/index.html
deleted file mode 100644
index b536c82c49..0000000000
--- a/files/fr/web/css/background-color/index.html
+++ /dev/null
@@ -1,157 +0,0 @@
----
-title: background-color
-slug: Web/CSS/background-color
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-color
----
-
+
+ background-color permet de définir la couleur utilisée pour l'arrière-plan d'un élément (celle-ci peut être une couleur transparente).Syntaxe
-
-/* Valeurs avec un mot-clé */
-background-color: red;
-
-
-/* Valeur hexadécimale */
-background-color: #bbff00; /* Complètement opaque */
-background-color: #bf0; /* Complètement opaque - notation raccourcie */
-background-color: #11ffee00; /* Complètement transparent */
-background-color: #1fe0; /* Complètement transparent - notation raccourcie */
-background-color: #11ffeeff; /* Complètement opaque */
-background-color: #1fef; /* Complètement opaque - notation raccourcie */
-
-/* Valeur RGB */
-background-color: rgb(255, 255, 128);
-
-/* Valeur RGBA : une valeur RGB avec un canal alpha */
-background-color: rgba(117, 190, 218, 0.0); /* 0.0 - transparent */
-background-color: rgba(117, 190, 218, 0.5); /* 0.5 - semi-transparent */
-background-color: rgba(117, 190, 218, 1.0); /* 1.0 - opaque */
-
-/* Valeur HSLA */
-background-color: hsla(50, 33%, 25%, 0.75);
-
-/* Valeurs avec un mot-clé spécial */
-background-color: currentcolor;
-background-color: transparent;
-
-/* Valeurs globales */
-background-color: inherit;
-background-color: initial;
-background-color: unset;
-
-background-color se définit grâce à une valeur de type <color>.Valeurs
-
-
-
-
-<color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.exemple_un {
- background-color: teal;
- color: white;
-}
-
-.exemple_deux {
- background-color: rgb(153,102,153);
- color: rgb(255,255,204);
-}
-
-.exemple_trois {
- background-color: #777799;
- color: #FFFFFF;
-}
-
-
-HTML
-
-<div class="exemple_un">
- Lorem ipsum dolor sit amet, consectetuer
-</div>
-
-<div class="exemple_deux">
- Lorem ipsum dolor sit amet, consectetuer
-</div>
-
-<div class="exemple_trois">
- Lorem ipsum dolor sit amet, consectetuer
-</div>
-
-Résultat
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- Commentaires
- Retours
-
-
- {{SpecName('CSS3 Backgrounds', '#background-color', 'background-color')}}
- Le mot-clé
- transparent a été retiré de la propriété pour être intégré au type de données {{cssxref("<color>")}} (dans la pratique, il n'y a aucune différence).Issues GitHub pour la spécification Background de niveau 3 (en anglais)
-
-
- {{SpecName('CSS2.1', 'colors.html#propdef-background-color', 'background-color')}}
- Aucune modification.
-
-
-
-
-{{SpecName('CSS1', '#background-color', 'background-color')}}
- Définition initiale.
-
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-color/index.md b/files/fr/web/css/background-color/index.md
new file mode 100644
index 0000000000..b536c82c49
--- /dev/null
+++ b/files/fr/web/css/background-color/index.md
@@ -0,0 +1,157 @@
+---
+title: background-color
+slug: Web/CSS/background-color
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-color
+---
+background-color permet de définir la couleur utilisée pour l'arrière-plan d'un élément (celle-ci peut être une couleur transparente).Syntaxe
+
+/* Valeurs avec un mot-clé */
+background-color: red;
+
+
+/* Valeur hexadécimale */
+background-color: #bbff00; /* Complètement opaque */
+background-color: #bf0; /* Complètement opaque - notation raccourcie */
+background-color: #11ffee00; /* Complètement transparent */
+background-color: #1fe0; /* Complètement transparent - notation raccourcie */
+background-color: #11ffeeff; /* Complètement opaque */
+background-color: #1fef; /* Complètement opaque - notation raccourcie */
+
+/* Valeur RGB */
+background-color: rgb(255, 255, 128);
+
+/* Valeur RGBA : une valeur RGB avec un canal alpha */
+background-color: rgba(117, 190, 218, 0.0); /* 0.0 - transparent */
+background-color: rgba(117, 190, 218, 0.5); /* 0.5 - semi-transparent */
+background-color: rgba(117, 190, 218, 1.0); /* 1.0 - opaque */
+
+/* Valeur HSLA */
+background-color: hsla(50, 33%, 25%, 0.75);
+
+/* Valeurs avec un mot-clé spécial */
+background-color: currentcolor;
+background-color: transparent;
+
+/* Valeurs globales */
+background-color: inherit;
+background-color: initial;
+background-color: unset;
+
+background-color se définit grâce à une valeur de type <color>.Valeurs
+
+
+
+
+<color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.exemple_un {
+ background-color: teal;
+ color: white;
+}
+
+.exemple_deux {
+ background-color: rgb(153,102,153);
+ color: rgb(255,255,204);
+}
+
+.exemple_trois {
+ background-color: #777799;
+ color: #FFFFFF;
+}
+
+
+HTML
+
+<div class="exemple_un">
+ Lorem ipsum dolor sit amet, consectetuer
+</div>
+
+<div class="exemple_deux">
+ Lorem ipsum dolor sit amet, consectetuer
+</div>
+
+<div class="exemple_trois">
+ Lorem ipsum dolor sit amet, consectetuer
+</div>
+
+Résultat
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ Commentaires
+ Retours
+
+
+ {{SpecName('CSS3 Backgrounds', '#background-color', 'background-color')}}
+ Le mot-clé
+ transparent a été retiré de la propriété pour être intégré au type de données {{cssxref("<color>")}} (dans la pratique, il n'y a aucune différence).Issues GitHub pour la spécification Background de niveau 3 (en anglais)
+
+
+ {{SpecName('CSS2.1', 'colors.html#propdef-background-color', 'background-color')}}
+ Aucune modification.
+
+
+
+
+{{SpecName('CSS1', '#background-color', 'background-color')}}
+ Définition initiale.
+
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-image/index.html b/files/fr/web/css/background-image/index.html
deleted file mode 100644
index 8060b3da48..0000000000
--- a/files/fr/web/css/background-image/index.html
+++ /dev/null
@@ -1,170 +0,0 @@
----
-title: background-image
-slug: Web/CSS/background-image
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-image
----
-background-image permet de définir une ou plusieurs images comme arrière(s)-plan(s) pour un élément.none.Syntaxe
-
-/* Valeur simple */
-background-image: url('https://example.com/bck.png');
-
-/* Plusieurs valeurs */
-background-image: url('https://example.com/top.png'), url('https://example.com/bottom.png');
-
-/* Valeur avec un mot-clé */
-background-image: none;
-
-/* Valeurs globales */
-background-image: inherit;
-background-image: initial;
-background-image: unset;
-
-
-none ou avec une valeur de type <image>. Pour indiquer plusieurs images d'arrière-plan, on listera les différentes valeurs les unes à la suite des autres et séparées par des virgules :background-image:
- linear-gradient(to bottom, rgba(255,255,0,0.5), rgba(0,0,255,0.5)),
- url("https://mdn.mozillademos.org/files/7693/catfront.png");
-
-
-Valeurs
-
-
-
-
-none<image>'texte_avec_double_quotes_"_') ou des doubles quotes ("texte_avec_simple_quote_'_") pour encadrer le texte qui forme l'URL.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<div>
- <p class="catsandstars">
- Un paragraphe avec des chats<br/>
- et des étoiles.
- </p>
- <p>Pas ici.</p>
- <p class="catsandstars">
- Et voilà encore des chats.<br/>
- Et des étoiles !
- </p>
- <p>Puis plus rien.</p>
-</div>
-
-CSS
-
-p {
- font-size: 1.5em;
- color: #FE7F88;
- background-color: transparent;
- background-image: none;
-}
-
-div {
- background-image: url("https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png");
-}
-
-.catsandstars {
- background-image: url("https://mdn.mozillademos.org/files/11991/startransparent.gif"),
- url("https://mdn.mozillademos.org/files/7693/catfront.png");
- background-color: transparent;
-}
-
-
-Résultat
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#background-image', 'background-image')}}
- {{Spec2('CSS3 Backgrounds')}}
- La propriété a été étendue pour gérer plusieurs arrières-plans et le type de donnée CSS {{cssxref("<image>")}}.
-
-
- {{SpecName('CSS2.2', 'colors.html#propdef-background-image', 'background-image')}}
- {{Spec2('CSS2.2')}}
-
-
-
- {{SpecName('CSS2.1', 'colors.html#propdef-background-image', 'background-image')}}
- {{Spec2('CSS2.1')}}
- La gestion des dimensions intrinsèques (lorsqu'elles sont absentes ou présentes) est décrite.
-
-
-
-{{SpecName('CSS1', '#background-image', 'background-image')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-image/index.md b/files/fr/web/css/background-image/index.md
new file mode 100644
index 0000000000..8060b3da48
--- /dev/null
+++ b/files/fr/web/css/background-image/index.md
@@ -0,0 +1,170 @@
+---
+title: background-image
+slug: Web/CSS/background-image
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-image
+---
+background-image permet de définir une ou plusieurs images comme arrière(s)-plan(s) pour un élément.none.Syntaxe
+
+/* Valeur simple */
+background-image: url('https://example.com/bck.png');
+
+/* Plusieurs valeurs */
+background-image: url('https://example.com/top.png'), url('https://example.com/bottom.png');
+
+/* Valeur avec un mot-clé */
+background-image: none;
+
+/* Valeurs globales */
+background-image: inherit;
+background-image: initial;
+background-image: unset;
+
+
+none ou avec une valeur de type <image>. Pour indiquer plusieurs images d'arrière-plan, on listera les différentes valeurs les unes à la suite des autres et séparées par des virgules :background-image:
+ linear-gradient(to bottom, rgba(255,255,0,0.5), rgba(0,0,255,0.5)),
+ url("https://mdn.mozillademos.org/files/7693/catfront.png");
+
+
+Valeurs
+
+
+
+
+none<image>'texte_avec_double_quotes_"_') ou des doubles quotes ("texte_avec_simple_quote_'_") pour encadrer le texte qui forme l'URL.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<div>
+ <p class="catsandstars">
+ Un paragraphe avec des chats<br/>
+ et des étoiles.
+ </p>
+ <p>Pas ici.</p>
+ <p class="catsandstars">
+ Et voilà encore des chats.<br/>
+ Et des étoiles !
+ </p>
+ <p>Puis plus rien.</p>
+</div>
+
+CSS
+
+p {
+ font-size: 1.5em;
+ color: #FE7F88;
+ background-color: transparent;
+ background-image: none;
+}
+
+div {
+ background-image: url("https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png");
+}
+
+.catsandstars {
+ background-image: url("https://mdn.mozillademos.org/files/11991/startransparent.gif"),
+ url("https://mdn.mozillademos.org/files/7693/catfront.png");
+ background-color: transparent;
+}
+
+
+Résultat
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#background-image', 'background-image')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ La propriété a été étendue pour gérer plusieurs arrières-plans et le type de donnée CSS {{cssxref("<image>")}}.
+
+
+ {{SpecName('CSS2.2', 'colors.html#propdef-background-image', 'background-image')}}
+ {{Spec2('CSS2.2')}}
+
+
+
+ {{SpecName('CSS2.1', 'colors.html#propdef-background-image', 'background-image')}}
+ {{Spec2('CSS2.1')}}
+ La gestion des dimensions intrinsèques (lorsqu'elles sont absentes ou présentes) est décrite.
+
+
+
+{{SpecName('CSS1', '#background-image', 'background-image')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-origin/index.html b/files/fr/web/css/background-origin/index.html
deleted file mode 100644
index 30fda75135..0000000000
--- a/files/fr/web/css/background-origin/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: background-origin
-slug: Web/CSS/background-origin
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-origin
----
-background-origin détermine l'origine de l'arrière-plan {{cssxref("background-image")}} à partir de la bordure, à l'intérieur de la bordure ou à l'intérieur de la zone de remplissage (padding).background-origin est ignorée lorsque {{cssxref("background-attachment")}} vaut fixed.background-origin avant la propriété raccourcie et que cette dernière ne définit pas la valeur de l'origine, ce sera la valeur initiale par défaut qui sera prise en compte pour background-origin.Syntaxe
-
-/* Valeurs avec un mot-clé */
-background-origin: border-box;
-background-origin: padding-box;
-background-origin: content-box;
-
-/* Valeurs globales */
-background-origin: inherit;
-background-origin: initial;
-background-origin: unset;
-
-
-Valeurs
-
-
-
-
-border-boxpadding-boxcontent-boxSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- width: 200px;
- height: 100px;
-}
-
-.exemple {
- border: 10px double;
- padding: 10px;
- background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
- background-color: palegreen;
- background-position: 0px 40px;
- background-origin: content-box;
- background-repeat: no-repeat;
-}
-
-
-HTML
-
-<div class="exemple"></div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-background-origin', 'background-origin')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-origin/index.md b/files/fr/web/css/background-origin/index.md
new file mode 100644
index 0000000000..30fda75135
--- /dev/null
+++ b/files/fr/web/css/background-origin/index.md
@@ -0,0 +1,107 @@
+---
+title: background-origin
+slug: Web/CSS/background-origin
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-origin
+---
+background-origin détermine l'origine de l'arrière-plan {{cssxref("background-image")}} à partir de la bordure, à l'intérieur de la bordure ou à l'intérieur de la zone de remplissage (padding).background-origin est ignorée lorsque {{cssxref("background-attachment")}} vaut fixed.background-origin avant la propriété raccourcie et que cette dernière ne définit pas la valeur de l'origine, ce sera la valeur initiale par défaut qui sera prise en compte pour background-origin.Syntaxe
+
+/* Valeurs avec un mot-clé */
+background-origin: border-box;
+background-origin: padding-box;
+background-origin: content-box;
+
+/* Valeurs globales */
+background-origin: inherit;
+background-origin: initial;
+background-origin: unset;
+
+
+Valeurs
+
+
+
+
+border-boxpadding-boxcontent-boxSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ width: 200px;
+ height: 100px;
+}
+
+.exemple {
+ border: 10px double;
+ padding: 10px;
+ background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
+ background-color: palegreen;
+ background-position: 0px 40px;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+}
+
+
+HTML
+
+<div class="exemple"></div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-background-origin', 'background-origin')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-position-x/index.html b/files/fr/web/css/background-position-x/index.html
deleted file mode 100644
index 19ef27e117..0000000000
--- a/files/fr/web/css/background-position-x/index.html
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: background-position-x
-slug: Web/CSS/background-position-x
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/background-position-x
----
-background-position-x définit la position horizontale initiale de chaque image d'arrière-plan par rapport à l'origine, définie avec {{cssxref("background-origin")}}.background-position-x.Syntaxe
-
-/* Valeurs avec un mot-clé */
-background-position-x: left;
-background-position-x: right;
-background-position-x: center;
-
-/* Valeurs proportionnelles */
-/* Type <percentage> */
-background-position-x: 25%;
-
-/* Valeurs de longueur */
-/* Type <length> */
-background-position-x: 0px;
-background-position-x: 1cm;
-background-position-x: 8em;
-
-/* Déclaration indiquant un décalage */
-/* relatif à un des côtés de la boîte */
-background-position-x: right 3px;
-
-/* Gestion de plusieurs valeurs */
-/* pour plusieurs arrières-plan */
-background-position-x: 0px, center;
-
-/* Valeurs globales */
-background-position-x: inherit;
-background-position-x: initial;
-background-position-x: unset;
-
-
-Valeurs
-
-
-
-
-leftcenterright<length><percentage>Syntaxe formelle
-
-{{csssyntax}}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Backgrounds', '#background-position-longhands', 'background-position-x')}}
- {{Spec2('CSS4 Backgrounds')}}
- Spécification initiale pour les propriétés détaillées de {{cssxref("background-position")}}, implémentée depuis longtemps.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-position-x/index.md b/files/fr/web/css/background-position-x/index.md
new file mode 100644
index 0000000000..19ef27e117
--- /dev/null
+++ b/files/fr/web/css/background-position-x/index.md
@@ -0,0 +1,106 @@
+---
+title: background-position-x
+slug: Web/CSS/background-position-x
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-position-x
+---
+background-position-x définit la position horizontale initiale de chaque image d'arrière-plan par rapport à l'origine, définie avec {{cssxref("background-origin")}}.background-position-x.Syntaxe
+
+/* Valeurs avec un mot-clé */
+background-position-x: left;
+background-position-x: right;
+background-position-x: center;
+
+/* Valeurs proportionnelles */
+/* Type <percentage> */
+background-position-x: 25%;
+
+/* Valeurs de longueur */
+/* Type <length> */
+background-position-x: 0px;
+background-position-x: 1cm;
+background-position-x: 8em;
+
+/* Déclaration indiquant un décalage */
+/* relatif à un des côtés de la boîte */
+background-position-x: right 3px;
+
+/* Gestion de plusieurs valeurs */
+/* pour plusieurs arrières-plan */
+background-position-x: 0px, center;
+
+/* Valeurs globales */
+background-position-x: inherit;
+background-position-x: initial;
+background-position-x: unset;
+
+
+Valeurs
+
+
+
+
+leftcenterright<length><percentage>Syntaxe formelle
+
+{{csssyntax}}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Backgrounds', '#background-position-longhands', 'background-position-x')}}
+ {{Spec2('CSS4 Backgrounds')}}
+ Spécification initiale pour les propriétés détaillées de {{cssxref("background-position")}}, implémentée depuis longtemps.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-position-y/index.html b/files/fr/web/css/background-position-y/index.html
deleted file mode 100644
index d6346071e7..0000000000
--- a/files/fr/web/css/background-position-y/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: background-position-y
-slug: Web/CSS/background-position-y
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/background-position-y
----
-background-position-y définit la position verticale initiale de chaque image d'arrière-plan. La position est relative à l'origine définie par {{cssxref("background-origin")}}.Syntaxe
-
-/* Valeurs avec un mot-clé */
-background-position-y: top;
-background-position-y: bottom;
-background-position-y: center;
-
-/* Valeurs proportionnelles */
-/* Type <percentage> */
-background-position-y: 25%;
-
-/* Valeurs de longueur */
-/* Type <length> */
-background-position-y: 0px;
-background-position-y: 1cm;
-background-position-y: 8em;
-
-/* Déclaration indiquant un décalage */
-/* relatif à un des côtés de la boîte */
-background-position-y: bottom 3px;
-background-position-y: bottom 10%;
-
-/* Gestion de plusieurs valeurs */
-/* pour plusieurs arrières-plan */
-background-position-y: 0px, center;
-
-/* Valeurs globales */
-background-position-y: inherit;
-background-position-y: initial;
-background-position-y: unset;
-
-
-Valeurs
-
-
-
-
-topcenterbottom<length><percentage>Syntaxe formelle
-
-{{csssyntax}}
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS4 Backgrounds', '#background-position-longhands', 'background-position-y')}}
- {{Spec2('CSS4 Backgrounds')}}
- Spécification initiale pour les propriétés détaillées de {{cssxref("background-position")}}, implémentée depuis longtemps.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-position-y/index.md b/files/fr/web/css/background-position-y/index.md
new file mode 100644
index 0000000000..d6346071e7
--- /dev/null
+++ b/files/fr/web/css/background-position-y/index.md
@@ -0,0 +1,105 @@
+---
+title: background-position-y
+slug: Web/CSS/background-position-y
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-position-y
+---
+background-position-y définit la position verticale initiale de chaque image d'arrière-plan. La position est relative à l'origine définie par {{cssxref("background-origin")}}.Syntaxe
+
+/* Valeurs avec un mot-clé */
+background-position-y: top;
+background-position-y: bottom;
+background-position-y: center;
+
+/* Valeurs proportionnelles */
+/* Type <percentage> */
+background-position-y: 25%;
+
+/* Valeurs de longueur */
+/* Type <length> */
+background-position-y: 0px;
+background-position-y: 1cm;
+background-position-y: 8em;
+
+/* Déclaration indiquant un décalage */
+/* relatif à un des côtés de la boîte */
+background-position-y: bottom 3px;
+background-position-y: bottom 10%;
+
+/* Gestion de plusieurs valeurs */
+/* pour plusieurs arrières-plan */
+background-position-y: 0px, center;
+
+/* Valeurs globales */
+background-position-y: inherit;
+background-position-y: initial;
+background-position-y: unset;
+
+
+Valeurs
+
+
+
+
+topcenterbottom<length><percentage>Syntaxe formelle
+
+{{csssyntax}}
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS4 Backgrounds', '#background-position-longhands', 'background-position-y')}}
+ {{Spec2('CSS4 Backgrounds')}}
+ Spécification initiale pour les propriétés détaillées de {{cssxref("background-position")}}, implémentée depuis longtemps.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-position/index.html b/files/fr/web/css/background-position/index.html
deleted file mode 100644
index 5649bec662..0000000000
--- a/files/fr/web/css/background-position/index.html
+++ /dev/null
@@ -1,192 +0,0 @@
----
-title: background-position
-slug: Web/CSS/background-position
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-position
----
-background-position permet de définir la position initiale, relative à l'origine définie par {{cssxref("background-origin")}}, pour chaque image d'arrière-plan.Syntaxe
-
-/* Valeurs utilisant un mot-clé */
-background-position: top;
-background-position: bottom;
-background-position: left;
-background-position: right;
-background-position: center;
-
-/* Valeurs proportionnelles à la boîte */
-/* Type <percentage> */
-background-position: 25% 75%;
-
-/* Valeurs de longueur */
-/* Type <length> */
-background-position: 0 0;
-background-position: 1cm 2cm;
-background-position: 10ch 8em;
-
-/* Plusieurs valeurs pour plusieurs arrières-plans */
-background-position: 0 0, center;
-
-/* Valeurs exprimant un décalage relatif aux côtés */
-background-position: bottom 10px right 20px;
-background-position: right 3em bottom 10px;
-background-position: bottom 10px right;
-background-position: top right 10px;
-
-/* Valeurs globales */
-background-position: inherit;
-background-position: initial;
-background-position: unset;
-
-
-background-position peut être définie grâce à une ou plusieurs valeurs <position>, séparées par des virgules.Valeurs
-
-
-
-
-<position>
-
-
- center qui centre l'image.top, left, bottom, right. Ce mot-clé indique le bord par rapport auquel placer l'élément. Pour l'autre dimension, on utilisera la moitié de la boîte (50%).
-
-
- top, left, bottom, right. Si left ou right est utilisé, la valeur définit l'abscisse et l'autre définira l'ordonnée. Si top ou bottom est indiqué, cette valeur définira l'ordonnée et l'autre valeur définira X.left ou right, cette valeur définira l'ordonnée par rapport au bord haut. Si l'autre valeur est top ou bottom, cette valeur définira l'abscisse relativement au bord gauche. Si les deux valeurs sont des longueurs ou des pourcentages, la première définira l'abscisse et la seconde l'ordonnée.
-
-
- top ou bottom, la seconde ne peut pas être top ou bottom.left ou right, la seconde ne peut pas être left ou right.top top" ou "left right" seront considérées comme invalides.(largeur conteneur - largeur image) * (position en %) = (décalage horizontal)
- (hauteur conteneur - hauteur image) * (position en %) = (décalage vertical).background-position n'auront aucun effet. Il faudra utiliser des valeurs absolues pour décaler l'image.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Exemples utilisant plusieurs images
-
-CSS
-
-div {
- background-color: #FFEE99;
- background-repeat: no-repeat;
- width: 300px;
- height: 80px;
- margin-bottom: 12px;
-}
-
-/* On utilise la propriété raccourcie background */
-.exemple_un {
- background: url("https://mdn.mozillademos.org/files/11987/startransparent.gif") #FFEE99 2.5cm bottom no-repeat;
-}
-.exemple_deux {
- background: url("https://mdn.mozillademos.org/files/11987/startransparent.gif") #FFEE99 3em 50% no-repeat;
-}
-
-/*
-Plusieurs images d'arrière-plan chacune positionnée
-différemment, on voit les virgules dans les déclarations.
-L'ordre est le même entre background-image et -position.
-*/
-.exemple_trois {
- background-image: url("https://mdn.mozillademos.org/files/11987/startransparent.gif"),
- url("https://mdn.mozillademos.org/files/7693/catfront.png");
- background-position: 0px 0px,
- center;
-}
-
-HTML
-
-<div class="exemple_un">Premier exemple</div>
-<div class="exemple_deux">Deuxième exemple</div>
-<div class="exemple_trois">Troisième exemple</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#background-position', 'background-position')}}
- {{Spec2('CSS3 Backgrounds')}}
- La gestion de plusieurs arrières-plans a été ajoutée. La syntaxe avec quatre valeurs a été ajoutée. La définition des valeurs en pourcentages a été modifiée pour correspondre aux implémentations.
-
-
- {{SpecName('CSS2.1', 'colors.html#propdef-background-position', 'background-position')}}
- {{Spec2('CSS2.1')}}
- Cette spécification permet de mélanger les valeurs qui sont des mots-clés, les valeurs de type {{cssxref("<length>")}} et {{cssxref("<percentage>")}}.
-
-
-
-{{SpecName('CSS1', '#background-position', 'background-position')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Notes relatives à Quantum CSS
-
-
-
-
-background-position entre deux valeurs qui contiennent différents nombres de valeurs {{cssxref("<position>")}} (par exemple background-position: 10px 10px; d'une part et background-position: 20px 20px, 30px 30px; d'autre part) (cf. {{bug(1390446)}}). Le nouveau moteur CSS de Firefox (appelé Quantum CSS ou Stylo, prévu pour Firefox 57) corrige ce problème.Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-position/index.md b/files/fr/web/css/background-position/index.md
new file mode 100644
index 0000000000..5649bec662
--- /dev/null
+++ b/files/fr/web/css/background-position/index.md
@@ -0,0 +1,192 @@
+---
+title: background-position
+slug: Web/CSS/background-position
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-position
+---
+background-position permet de définir la position initiale, relative à l'origine définie par {{cssxref("background-origin")}}, pour chaque image d'arrière-plan.Syntaxe
+
+/* Valeurs utilisant un mot-clé */
+background-position: top;
+background-position: bottom;
+background-position: left;
+background-position: right;
+background-position: center;
+
+/* Valeurs proportionnelles à la boîte */
+/* Type <percentage> */
+background-position: 25% 75%;
+
+/* Valeurs de longueur */
+/* Type <length> */
+background-position: 0 0;
+background-position: 1cm 2cm;
+background-position: 10ch 8em;
+
+/* Plusieurs valeurs pour plusieurs arrières-plans */
+background-position: 0 0, center;
+
+/* Valeurs exprimant un décalage relatif aux côtés */
+background-position: bottom 10px right 20px;
+background-position: right 3em bottom 10px;
+background-position: bottom 10px right;
+background-position: top right 10px;
+
+/* Valeurs globales */
+background-position: inherit;
+background-position: initial;
+background-position: unset;
+
+
+background-position peut être définie grâce à une ou plusieurs valeurs <position>, séparées par des virgules.Valeurs
+
+
+
+
+<position>
+
+
+ center qui centre l'image.top, left, bottom, right. Ce mot-clé indique le bord par rapport auquel placer l'élément. Pour l'autre dimension, on utilisera la moitié de la boîte (50%).
+
+
+ top, left, bottom, right. Si left ou right est utilisé, la valeur définit l'abscisse et l'autre définira l'ordonnée. Si top ou bottom est indiqué, cette valeur définira l'ordonnée et l'autre valeur définira X.left ou right, cette valeur définira l'ordonnée par rapport au bord haut. Si l'autre valeur est top ou bottom, cette valeur définira l'abscisse relativement au bord gauche. Si les deux valeurs sont des longueurs ou des pourcentages, la première définira l'abscisse et la seconde l'ordonnée.
+
+
+ top ou bottom, la seconde ne peut pas être top ou bottom.left ou right, la seconde ne peut pas être left ou right.top top" ou "left right" seront considérées comme invalides.(largeur conteneur - largeur image) * (position en %) = (décalage horizontal)
+ (hauteur conteneur - hauteur image) * (position en %) = (décalage vertical).background-position n'auront aucun effet. Il faudra utiliser des valeurs absolues pour décaler l'image.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Exemples utilisant plusieurs images
+
+CSS
+
+div {
+ background-color: #FFEE99;
+ background-repeat: no-repeat;
+ width: 300px;
+ height: 80px;
+ margin-bottom: 12px;
+}
+
+/* On utilise la propriété raccourcie background */
+.exemple_un {
+ background: url("https://mdn.mozillademos.org/files/11987/startransparent.gif") #FFEE99 2.5cm bottom no-repeat;
+}
+.exemple_deux {
+ background: url("https://mdn.mozillademos.org/files/11987/startransparent.gif") #FFEE99 3em 50% no-repeat;
+}
+
+/*
+Plusieurs images d'arrière-plan chacune positionnée
+différemment, on voit les virgules dans les déclarations.
+L'ordre est le même entre background-image et -position.
+*/
+.exemple_trois {
+ background-image: url("https://mdn.mozillademos.org/files/11987/startransparent.gif"),
+ url("https://mdn.mozillademos.org/files/7693/catfront.png");
+ background-position: 0px 0px,
+ center;
+}
+
+HTML
+
+<div class="exemple_un">Premier exemple</div>
+<div class="exemple_deux">Deuxième exemple</div>
+<div class="exemple_trois">Troisième exemple</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#background-position', 'background-position')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ La gestion de plusieurs arrières-plans a été ajoutée. La syntaxe avec quatre valeurs a été ajoutée. La définition des valeurs en pourcentages a été modifiée pour correspondre aux implémentations.
+
+
+ {{SpecName('CSS2.1', 'colors.html#propdef-background-position', 'background-position')}}
+ {{Spec2('CSS2.1')}}
+ Cette spécification permet de mélanger les valeurs qui sont des mots-clés, les valeurs de type {{cssxref("<length>")}} et {{cssxref("<percentage>")}}.
+
+
+
+{{SpecName('CSS1', '#background-position', 'background-position')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Notes relatives à Quantum CSS
+
+
+
+
+background-position entre deux valeurs qui contiennent différents nombres de valeurs {{cssxref("<position>")}} (par exemple background-position: 10px 10px; d'une part et background-position: 20px 20px, 30px 30px; d'autre part) (cf. {{bug(1390446)}}). Le nouveau moteur CSS de Firefox (appelé Quantum CSS ou Stylo, prévu pour Firefox 57) corrige ce problème.Voir aussi
+
+
+
diff --git a/files/fr/web/css/background-repeat/index.html b/files/fr/web/css/background-repeat/index.html
deleted file mode 100644
index 91aeac12e6..0000000000
--- a/files/fr/web/css/background-repeat/index.html
+++ /dev/null
@@ -1,227 +0,0 @@
----
-title: background-repeat
-slug: Web/CSS/background-repeat
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-repeat
----
-background-repeat définit la façon dont les images utilisées en arrière-plan sont répétées. Une image d'arrière-plan pourra ainsi être répétée sur l'axe horizontal, l'axe vertical ou bien ne pas être répétée.round) voire être distribuées avec des espaces entre les motifs pour remplir la zone (space).Syntaxe
-
-/* Valeurs avec un mot-clé */
-background-repeat: repeat-x;
-background-repeat: repeat-y;
-background-repeat: repeat;
-background-repeat: space;
-background-repeat: round;
-background-repeat: no-repeat;
-
-/* Syntaxe avec deux valeurs */
-/* Première valeur : axe horizontal */
-/* Seconde valeur : axe vertical */
-background-repeat: repeat space;
-background-repeat: repeat repeat;
-background-repeat: round space;
-background-repeat: no-repeat round;
-
-/* Valeurs globales */
-background-repeat: inherit;
-background-repeat: initial;
-background-repeat: unset;
-
-
-Valeurs
-
-
-
-
-<repeat-style>
-
-
- Lorsqu'on utilise la syntaxe à deux valeurs, la première indique la méthode de répétition pour l'axe horizontal et la seconde celle pour l'axe vertical. Voici un tableau décrivant chacune des options :
-
-
- Une seule valeur
- Équivalent avec deux-valeurs
-
-
-
- repeat-x
- repeat no-repeat
-
-
- repeat-y
- no-repeat repeat
-
-
- repeat
- repeat repeat
-
-
- space
- space space
-
-
- round
- round round
-
-
-
- no-repeat
- no-repeat no-repeat
-
-
-
-
-
- repeatL'image est répétée autant de fois que nécessaire pour recouvrir la zone dédiée à l'arrière-plan. La dernière image sera rognée si nécessaire.
-
-
-
- spaceL'image est répétée autant que possible sans rognage. La première et la dernière image sont accolées aux bords de l'élément et des espaces sont repartis de façon égale entre les images. La propriété {{cssxref("background-position")}} est ignorée sauf s'il n'y a qu'une seule image qui puisse être affichée sans être rognée. Le seul cas où
- space est utilisé et qu'une image est rognée se produit lorsque l'image est trop grande pour être affichée.
-
-
- roundL'image est répétée autant que possible et est étirée si nécessaire afin qu'il n'y ait ni rognage ni espace restant. Dès qu'il y a la place d'ajouter une image, les autres sont compressées pour lui laisser la place. Ainsi, une image avec une largeur originale de 260px, répétée trois fois, pourra être étirée pour que chaque exemplaire mesure 300 pixels de large, lorsqu'une autre image sera ajoutée, elles seront compressées sur 225 pixels.
-
-
-
-
- no-repeatIl n'y a aucune répétition de l'image (dès lors, il est possible que toute la zone ne soit pas recouverte par cette image). La position de l'image est définie grâce à la propriété {{cssxref("background-position")}}.
- Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-/* Commun à tous les DIVS */
-ol, li {
- margin: 0;
- padding: 0;
-}
-li {
- margin-bottom: 12px;
-}
-div {
- background-image: url(https://mdn.mozillademos.org/files/12005/starsolid.gif);
- width: 160px;
- height: 70px;
-}
-
-/* background repeat CSS */
-.one {
- background-repeat: no-repeat;
-}
-.two {
- background-repeat: repeat;
-}
-.three {
- background-repeat: repeat-x;
-}
-.four {
- background-repeat: repeat-y;
-}
-
-.five {
- background-repeat: space;
-}
-
-.six {
- background-repeat: round;
-}
-
-/* Plusieurs images */
-.seven {
- background-image: url(https://mdn.mozillademos.org/files/12005/starsolid.gif),
- url(https://developer.mozilla.org/static/img/favicon32.png);
- background-repeat: repeat-x,
- repeat-y;
- height: 144px;
-}
-
-HTML
-
-<ol>
- <li>no-repeat
- <div class="one"></div>
- </li>
- <li>repeat
- <div class="two"></div>
- </li>
- <li>repeat-x
- <div class="three"></div>
- </li>
- <li>repeat-y
- <div class="four"></div>
- </li>
- <li>space
- <div class="five"></div>
- </li>
- <li>round
- <div class="six"></div>
- </li>
- <li>repeat-x, repeat-y (plusieurs images)
- <div class="seven"></div>
- </li>
-</ol>
-
-Résultat
-
-background-repeat.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-background-repeat', 'background-repeat')}}
- {{Spec2('CSS3 Backgrounds')}}
- Ajout de la prise en charge de plusieurs images d'arrière-plan. La syntaxe avec deux valeurs permet d'avoir des motifs de répétition différents pour les deux axes. Les mots-clés
- space et round sont ajoutés. La définition de la zone de dessin pour l'arrière-plan est mieux définie pour les éléments en ligne.
-
- {{SpecName('CSS2.1', 'colors.html#propdef-background-repeat', 'background-repeat')}}
- {{Spec2('CSS2.1')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS1', '#background-repeat', 'background-repeat')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/background-repeat/index.md b/files/fr/web/css/background-repeat/index.md
new file mode 100644
index 0000000000..91aeac12e6
--- /dev/null
+++ b/files/fr/web/css/background-repeat/index.md
@@ -0,0 +1,227 @@
+---
+title: background-repeat
+slug: Web/CSS/background-repeat
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-repeat
+---
+background-repeat définit la façon dont les images utilisées en arrière-plan sont répétées. Une image d'arrière-plan pourra ainsi être répétée sur l'axe horizontal, l'axe vertical ou bien ne pas être répétée.round) voire être distribuées avec des espaces entre les motifs pour remplir la zone (space).Syntaxe
+
+/* Valeurs avec un mot-clé */
+background-repeat: repeat-x;
+background-repeat: repeat-y;
+background-repeat: repeat;
+background-repeat: space;
+background-repeat: round;
+background-repeat: no-repeat;
+
+/* Syntaxe avec deux valeurs */
+/* Première valeur : axe horizontal */
+/* Seconde valeur : axe vertical */
+background-repeat: repeat space;
+background-repeat: repeat repeat;
+background-repeat: round space;
+background-repeat: no-repeat round;
+
+/* Valeurs globales */
+background-repeat: inherit;
+background-repeat: initial;
+background-repeat: unset;
+
+
+Valeurs
+
+
+
+
+<repeat-style>
+
+
+ Lorsqu'on utilise la syntaxe à deux valeurs, la première indique la méthode de répétition pour l'axe horizontal et la seconde celle pour l'axe vertical. Voici un tableau décrivant chacune des options :
+
+
+ Une seule valeur
+ Équivalent avec deux-valeurs
+
+
+
+ repeat-x
+ repeat no-repeat
+
+
+ repeat-y
+ no-repeat repeat
+
+
+ repeat
+ repeat repeat
+
+
+ space
+ space space
+
+
+ round
+ round round
+
+
+
+ no-repeat
+ no-repeat no-repeat
+
+
+
+
+
+ repeatL'image est répétée autant de fois que nécessaire pour recouvrir la zone dédiée à l'arrière-plan. La dernière image sera rognée si nécessaire.
+
+
+
+ spaceL'image est répétée autant que possible sans rognage. La première et la dernière image sont accolées aux bords de l'élément et des espaces sont repartis de façon égale entre les images. La propriété {{cssxref("background-position")}} est ignorée sauf s'il n'y a qu'une seule image qui puisse être affichée sans être rognée. Le seul cas où
+ space est utilisé et qu'une image est rognée se produit lorsque l'image est trop grande pour être affichée.
+
+
+ roundL'image est répétée autant que possible et est étirée si nécessaire afin qu'il n'y ait ni rognage ni espace restant. Dès qu'il y a la place d'ajouter une image, les autres sont compressées pour lui laisser la place. Ainsi, une image avec une largeur originale de 260px, répétée trois fois, pourra être étirée pour que chaque exemplaire mesure 300 pixels de large, lorsqu'une autre image sera ajoutée, elles seront compressées sur 225 pixels.
+
+
+
+
+ no-repeatIl n'y a aucune répétition de l'image (dès lors, il est possible que toute la zone ne soit pas recouverte par cette image). La position de l'image est définie grâce à la propriété {{cssxref("background-position")}}.
+ Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+/* Commun à tous les DIVS */
+ol, li {
+ margin: 0;
+ padding: 0;
+}
+li {
+ margin-bottom: 12px;
+}
+div {
+ background-image: url(https://mdn.mozillademos.org/files/12005/starsolid.gif);
+ width: 160px;
+ height: 70px;
+}
+
+/* background repeat CSS */
+.one {
+ background-repeat: no-repeat;
+}
+.two {
+ background-repeat: repeat;
+}
+.three {
+ background-repeat: repeat-x;
+}
+.four {
+ background-repeat: repeat-y;
+}
+
+.five {
+ background-repeat: space;
+}
+
+.six {
+ background-repeat: round;
+}
+
+/* Plusieurs images */
+.seven {
+ background-image: url(https://mdn.mozillademos.org/files/12005/starsolid.gif),
+ url(https://developer.mozilla.org/static/img/favicon32.png);
+ background-repeat: repeat-x,
+ repeat-y;
+ height: 144px;
+}
+
+HTML
+
+<ol>
+ <li>no-repeat
+ <div class="one"></div>
+ </li>
+ <li>repeat
+ <div class="two"></div>
+ </li>
+ <li>repeat-x
+ <div class="three"></div>
+ </li>
+ <li>repeat-y
+ <div class="four"></div>
+ </li>
+ <li>space
+ <div class="five"></div>
+ </li>
+ <li>round
+ <div class="six"></div>
+ </li>
+ <li>repeat-x, repeat-y (plusieurs images)
+ <div class="seven"></div>
+ </li>
+</ol>
+
+Résultat
+
+background-repeat.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-background-repeat', 'background-repeat')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Ajout de la prise en charge de plusieurs images d'arrière-plan. La syntaxe avec deux valeurs permet d'avoir des motifs de répétition différents pour les deux axes. Les mots-clés
+ space et round sont ajoutés. La définition de la zone de dessin pour l'arrière-plan est mieux définie pour les éléments en ligne.
+
+ {{SpecName('CSS2.1', 'colors.html#propdef-background-repeat', 'background-repeat')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS1', '#background-repeat', 'background-repeat')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/background-size/index.html b/files/fr/web/css/background-size/index.html
deleted file mode 100644
index 3ab7be1f5f..0000000000
--- a/files/fr/web/css/background-size/index.html
+++ /dev/null
@@ -1,256 +0,0 @@
----
-title: background-size
-slug: Web/CSS/background-size
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background-size
----
-background-size définit la taille des images d'arrière-plan pour l'élément. La taille de l'image peut être contrainte, complètement ou partiellement afin de conserver ses proportions.Syntaxe
-
-/* Valeurs avec un mot-clé */
-background-size: cover;
-background-size: contain;
-
-/* Une seule valeur */
-/* La valeur désigne la largeur de l'image. */
-/* La hauteur vaut 'auto'. */
-background-size: 50%;
-background-size: 3.2em;
-background-size: 12px;
-background-size: auto;
-
-/* Deux valeurs */
-/* Première valeur : la largeur de l'image */
-/* Seconde valeur : la hauteur de l'image */
-background-size: 50% auto;
-background-size: 3em 25%;
-background-size: auto 6px;
-background-size: auto auto;
-
-/* Valeurs pour plusieurs arrière-plans */
-background-size: auto, auto; /* À ne pas confondre avec `auto auto` */
-background-size: 50%, 25%, 25%;
-background-size: 6px, auto, contain;
-
-/* Valeurs globales */
-background-size: inherit;
-background-size: initial;
-background-size: unset;
-
-
-background-size peut être définie de différentes façons :
-
-
-contain ou cover.auto par défaut)auto.Valeurs
-
-
-
-
-containcovercontain. L'image est redimensionnée pour être aussi grande que possible et pour conserver ses proportions. L'image couvre toute la largeur ou la hauteur du conteneur et les parties qui dépassent sont rognées si les proportions du conteneur sont différentes (il n'y aucun espace libre sur lequel on verrait la couleur d'arrière-plan).auto<length><percentage>fixed, la zone de positionnement de l'arrière-plan sera la fenêtre du navigateur (sans les barres de défilement). Les valeurs négatives ne sont pas autorisées.Dimensions intrinsèques et proportions
-
-
-
-
-<gradient>) a été modifié avec Gecko 8.0 {{geckoRelease("8.0")}}. Auparavant, les dégradés étaient traités comme des images sans dimensions intrinsèques mais avec des proportions intrinsèques identiques à celles de la zone de positionnement de l'arrière-plan.
-
-
-background-size sont définis et qu'aucun ne vaut auto : L'image utilise la taille définie.background-size vaut contain ou cover : L'image est affichée et ses proportions sont conservées pour que l'image soit contenue dans la zone ou la recouvre complètement. Si l'image ne possède pas de proportions intrinsèques; elle est affichée avec la taille de la zone de positionnement de l'arrière-plan.background-size vaut auto ou auto auto :
-
- contain avait été utilisée.preserveAspectRatio pour lequel la valeur par défaut est équivalente à contain. Pour Firefox 43, à la différence de Chrome 52, une valeur explicite pour background-size permet d'ignorer preserveAspectRatio.background-size possède une composante auto et que l'autre composante est différente de auto :
-
- Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-
-
-coverCSS
-
-div {
- height: 300px;
- width: 200px;
- background-color: palegreen;
- background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
- background-repeat: no-repeat;
-}
-
-.exemple_cover {
- background-size: cover;
-}
-
-HTML
-
-<div class="exemple_cover"></div>
-
-Résultat
-
-
-
-containCSS
-
-div {
- height: 300px;
- width: 200px;
- background-color: palegreen;
- background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
- background-repeat: no-repeat;
-}
-
-.exemple_cover {
- background-size: contain;
-}
-
-HTML
-
-<div class="exemple_cover"></div>
-
-Résultat
-
-
-
-auto 50%CSS
-
-div {
- height: 300px;
- width: 200px;
- background-color: palegreen;
- background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
- background-repeat: no-repeat;
-}
-
-.exemple_cover {
- background-size: auto 50%;
-}
-
-HTML
-
-<div class="exemple_cover"></div>
-
-Résultat
-
-Notes
-
-<gradient>) comme arrière-plan et qu'on définit une valeur associée pour la propriété background-size, mieux vaut ne pas définir une taille qui n'utilise qu'un seul composant auto ou qu'une seule largeur (par exemple background-size: 50%). En effet, le rendu de tels éléments a été modifié avec Firefox 8 et peut avoir un comportement différent entre les navigateurs (tous n'implémentent pas exactement la spécification CSS3 pour background-size et la spécification CSS3 pour les images qui sont des dégradés)..gradient-exemple {
- width: 50px;
- height: 100px;
- background-image: linear-gradient(blue, red);
-
- /* Méthode risquée */
- background-size: 25px;
- background-size: 50%;
- background-size: auto 50px;
- background-size: auto 50%;
-
- /* Sans risque */
- background-size: 25px 50px;
- background-size: 50% 50%;
-}
-
-
-auto lorsqu'on manipule des dégradés car il est impossible d'obtenir le même rendu que celui de Firefox pour les versions antérieures à Firefox 8 sans connaître la taille exacte de l'élément dont on définit l'arrière-plan.Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-background-size', 'background-size')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background-size/index.md b/files/fr/web/css/background-size/index.md
new file mode 100644
index 0000000000..3ab7be1f5f
--- /dev/null
+++ b/files/fr/web/css/background-size/index.md
@@ -0,0 +1,256 @@
+---
+title: background-size
+slug: Web/CSS/background-size
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background-size
+---
+background-size définit la taille des images d'arrière-plan pour l'élément. La taille de l'image peut être contrainte, complètement ou partiellement afin de conserver ses proportions.Syntaxe
+
+/* Valeurs avec un mot-clé */
+background-size: cover;
+background-size: contain;
+
+/* Une seule valeur */
+/* La valeur désigne la largeur de l'image. */
+/* La hauteur vaut 'auto'. */
+background-size: 50%;
+background-size: 3.2em;
+background-size: 12px;
+background-size: auto;
+
+/* Deux valeurs */
+/* Première valeur : la largeur de l'image */
+/* Seconde valeur : la hauteur de l'image */
+background-size: 50% auto;
+background-size: 3em 25%;
+background-size: auto 6px;
+background-size: auto auto;
+
+/* Valeurs pour plusieurs arrière-plans */
+background-size: auto, auto; /* À ne pas confondre avec `auto auto` */
+background-size: 50%, 25%, 25%;
+background-size: 6px, auto, contain;
+
+/* Valeurs globales */
+background-size: inherit;
+background-size: initial;
+background-size: unset;
+
+
+background-size peut être définie de différentes façons :
+
+
+contain ou cover.auto par défaut)auto.Valeurs
+
+
+
+
+containcovercontain. L'image est redimensionnée pour être aussi grande que possible et pour conserver ses proportions. L'image couvre toute la largeur ou la hauteur du conteneur et les parties qui dépassent sont rognées si les proportions du conteneur sont différentes (il n'y aucun espace libre sur lequel on verrait la couleur d'arrière-plan).auto<length><percentage>fixed, la zone de positionnement de l'arrière-plan sera la fenêtre du navigateur (sans les barres de défilement). Les valeurs négatives ne sont pas autorisées.Dimensions intrinsèques et proportions
+
+
+
+
+<gradient>) a été modifié avec Gecko 8.0 {{geckoRelease("8.0")}}. Auparavant, les dégradés étaient traités comme des images sans dimensions intrinsèques mais avec des proportions intrinsèques identiques à celles de la zone de positionnement de l'arrière-plan.
+
+
+background-size sont définis et qu'aucun ne vaut auto : L'image utilise la taille définie.background-size vaut contain ou cover : L'image est affichée et ses proportions sont conservées pour que l'image soit contenue dans la zone ou la recouvre complètement. Si l'image ne possède pas de proportions intrinsèques; elle est affichée avec la taille de la zone de positionnement de l'arrière-plan.background-size vaut auto ou auto auto :
+
+ contain avait été utilisée.preserveAspectRatio pour lequel la valeur par défaut est équivalente à contain. Pour Firefox 43, à la différence de Chrome 52, une valeur explicite pour background-size permet d'ignorer preserveAspectRatio.background-size possède une composante auto et que l'autre composante est différente de auto :
+
+ Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+
+
+coverCSS
+
+div {
+ height: 300px;
+ width: 200px;
+ background-color: palegreen;
+ background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
+ background-repeat: no-repeat;
+}
+
+.exemple_cover {
+ background-size: cover;
+}
+
+HTML
+
+<div class="exemple_cover"></div>
+
+Résultat
+
+
+
+containCSS
+
+div {
+ height: 300px;
+ width: 200px;
+ background-color: palegreen;
+ background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
+ background-repeat: no-repeat;
+}
+
+.exemple_cover {
+ background-size: contain;
+}
+
+HTML
+
+<div class="exemple_cover"></div>
+
+Résultat
+
+
+
+auto 50%CSS
+
+div {
+ height: 300px;
+ width: 200px;
+ background-color: palegreen;
+ background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg);
+ background-repeat: no-repeat;
+}
+
+.exemple_cover {
+ background-size: auto 50%;
+}
+
+HTML
+
+<div class="exemple_cover"></div>
+
+Résultat
+
+Notes
+
+<gradient>) comme arrière-plan et qu'on définit une valeur associée pour la propriété background-size, mieux vaut ne pas définir une taille qui n'utilise qu'un seul composant auto ou qu'une seule largeur (par exemple background-size: 50%). En effet, le rendu de tels éléments a été modifié avec Firefox 8 et peut avoir un comportement différent entre les navigateurs (tous n'implémentent pas exactement la spécification CSS3 pour background-size et la spécification CSS3 pour les images qui sont des dégradés)..gradient-exemple {
+ width: 50px;
+ height: 100px;
+ background-image: linear-gradient(blue, red);
+
+ /* Méthode risquée */
+ background-size: 25px;
+ background-size: 50%;
+ background-size: auto 50px;
+ background-size: auto 50%;
+
+ /* Sans risque */
+ background-size: 25px 50px;
+ background-size: 50% 50%;
+}
+
+
+auto lorsqu'on manipule des dégradés car il est impossible d'obtenir le même rendu que celui de Firefox pour les versions antérieures à Firefox 8 sans connaître la taille exacte de l'élément dont on définit l'arrière-plan.Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-background-size', 'background-size')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/background/index.html b/files/fr/web/css/background/index.html
deleted file mode 100644
index a404e63da6..0000000000
--- a/files/fr/web/css/background/index.html
+++ /dev/null
@@ -1,156 +0,0 @@
----
-title: background
-slug: Web/CSS/background
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/background
----
-background est une propriété raccourcie qui permet de définir les différentes valeurs des propriétés liées à la gestion des arrière-plans d'un élément (couleur, image, origine, taille, répétition, etc.).background, les valeurs fournies sont appliquées et pour les valeurs absentes, la propriété réinitialisera les propriétés détaillées avec leurs valeurs initiales.Syntaxe
-
-/* On utilise une couleur <background-color> */
-background: green;
-
-/* Ici, une <bg-image> avec <repeat-style> */
-background: url("test.jpg") repeat-y;
-
-/* Là <box> et <background-color> */
-background: border-box red;
-
-/* Ici on utilise une seule image, centrée */
-/* et remise à l'échelle */
-background: no-repeat center/80% url("../img/image.png");
-
-
-background permet de définir une ou plusieurs couches d'arrière-plan, séparées par des virgules. Chacune des couches peut être définie avec :
-
-
-
-
- <attachment><bg-image><position><bg-size><repeat-style><bg-size> qui peut uniquement être utilisée directement après une valeur <position> suivie d'une barre oblique (par exemple "center/80%")<box> présente zéro, une voire deux fois. Si elle n'est présente qu'une fois, cette valeur sera utilisée pour définir {{cssxref("background-origin")}} et {{cssxref("background-clip")}}. Si elle est présente à deux reprises, la première occurrence sera utilisée pour définir {{cssxref("background-origin")}} et la seconde définira {{cssxref("background-clip")}}.<background-color> qui peut uniquement être incluse pour la dernière couche qui est définie.Valeurs
-
-
-
-
-<attachment><box><background-color><bg-image><position><repeat-style><bg-size>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<p class="banniere">
- Dessine-moi une étoile<br/>
- Qui brille<br/>
- Dans le ciel.
-</p>
-<p class="attention">Voici un paragraphe !<p>
-
-CSS
-
-.attention {
- background: pink;
-}
-
-.banniere {
- background: url("https://mdn.mozillademos.org/files/11983/starsolid.gif") #99f repeat-y fixed;
-}
-
-
-Résultat
-
-Accessibilité
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-background', 'background')}}
- {{Spec2('CSS3 Backgrounds')}}
- La propriété raccourcie a été étendue pour gérer plusieurs arrière-plans et également gérer les propriétés {{cssxref("background-size")}}, {{cssxref("background-origin")}} et {{cssxref("background-clip")}}.
-
-
- {{SpecName('CSS2.1', 'colors.html#propdef-background', 'background')}}
- {{Spec2('CSS2.1')}}
- Pas de modification significative.
-
-
-
-{{SpecName('CSS1', '#background', 'background')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/background/index.md b/files/fr/web/css/background/index.md
new file mode 100644
index 0000000000..a404e63da6
--- /dev/null
+++ b/files/fr/web/css/background/index.md
@@ -0,0 +1,156 @@
+---
+title: background
+slug: Web/CSS/background
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/background
+---
+background est une propriété raccourcie qui permet de définir les différentes valeurs des propriétés liées à la gestion des arrière-plans d'un élément (couleur, image, origine, taille, répétition, etc.).background, les valeurs fournies sont appliquées et pour les valeurs absentes, la propriété réinitialisera les propriétés détaillées avec leurs valeurs initiales.Syntaxe
+
+/* On utilise une couleur <background-color> */
+background: green;
+
+/* Ici, une <bg-image> avec <repeat-style> */
+background: url("test.jpg") repeat-y;
+
+/* Là <box> et <background-color> */
+background: border-box red;
+
+/* Ici on utilise une seule image, centrée */
+/* et remise à l'échelle */
+background: no-repeat center/80% url("../img/image.png");
+
+
+background permet de définir une ou plusieurs couches d'arrière-plan, séparées par des virgules. Chacune des couches peut être définie avec :
+
+
+
+
+ <attachment><bg-image><position><bg-size><repeat-style><bg-size> qui peut uniquement être utilisée directement après une valeur <position> suivie d'une barre oblique (par exemple "center/80%")<box> présente zéro, une voire deux fois. Si elle n'est présente qu'une fois, cette valeur sera utilisée pour définir {{cssxref("background-origin")}} et {{cssxref("background-clip")}}. Si elle est présente à deux reprises, la première occurrence sera utilisée pour définir {{cssxref("background-origin")}} et la seconde définira {{cssxref("background-clip")}}.<background-color> qui peut uniquement être incluse pour la dernière couche qui est définie.Valeurs
+
+
+
+
+<attachment><box><background-color><bg-image><position><repeat-style><bg-size>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<p class="banniere">
+ Dessine-moi une étoile<br/>
+ Qui brille<br/>
+ Dans le ciel.
+</p>
+<p class="attention">Voici un paragraphe !<p>
+
+CSS
+
+.attention {
+ background: pink;
+}
+
+.banniere {
+ background: url("https://mdn.mozillademos.org/files/11983/starsolid.gif") #99f repeat-y fixed;
+}
+
+
+Résultat
+
+Accessibilité
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-background', 'background')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ La propriété raccourcie a été étendue pour gérer plusieurs arrière-plans et également gérer les propriétés {{cssxref("background-size")}}, {{cssxref("background-origin")}} et {{cssxref("background-clip")}}.
+
+
+ {{SpecName('CSS2.1', 'colors.html#propdef-background', 'background')}}
+ {{Spec2('CSS2.1')}}
+ Pas de modification significative.
+
+
+
+{{SpecName('CSS1', '#background', 'background')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/basic-shape/index.html b/files/fr/web/css/basic-shape/index.html
deleted file mode 100644
index 0205f6ff16..0000000000
--- a/files/fr/web/css/basic-shape/index.html
+++ /dev/null
@@ -1,188 +0,0 @@
----
-title: <basic-shape> permet de définir une forme simple en utilisant des fonctions et est notamment utilisé pour les propriétés {{cssxref("clip-path")}}, {{cssxref("shape-outside")}} ou {{cssxref("offset-path")}}.Syntaxe
-
-<basic-shape>. L'origine du repère utilisé se situe dans le coin en haut à gauche de la boîte de référence avec un axe des abscisses allant vers la droite et un axe des ordonnées allant vers le bas. Toutes les longueurs exprimées en pourcentages sont calculées en fonction des dimensions de la boîte de référence.<basic-shape> sont créées via une notation fonctionnelle (pour analyser la syntaxe, se référer à cette page explicative).
-
-
-inset()inset( <shape-arg>{1,4} [round <border-radius>]? )
-
- <border-radius> permet de définir des coins arrondis pour le rectangle incrusté en utilisant la même syntaxe que pour la propriété raccourcie {{cssxref("border-radius")}}.polygon()polygon( [<fill-rule>,]? [<shape-arg> <shape-arg>]# )
-
- <fill-rule> représente la règle de remplissage utilisée pour déterminer l'intérieur du polygone. Les valeurs possibles sont nonzero et evenodd. La valeur par défaut pour cet argument est nonzero.circle()circle( [<shape-radius>]? [at <position>]? )
-
- <shape-radius> représente le rayon du cercle. Les valeurs négatives ne sont pas autorisées et les valeurs exprimées en pourcentages seront calculées de la façon suivante en fonction de la hauteur et de la largeur de la boîte de référence sqrt(largeur^2+hauteur^2)/sqrt(2).center.ellipse()ellipse( [<shape-radius>{2}]? [at <position>]? )
-
- <shape-radius> représentent les demi-axes horizontaux (rx) et verticaux (ry) de l'ellipse. Les valeurs négatives ne sont pas autorisées. Les valeurs exprimées en pourcentages sont calculées : en fonction de la hauteur de la boîte de référence pour le demi-axe vertical, en fonction de la largeur de la boîte de référence pour le demi-axe horizontal.center.path()
-
- path( [<fill-rule>,]? <string>)<fill-rule> représente la règle de remplissage utilisée pour déterminer l'intérieur du chemin. Les valeurs possibles sont nonzero et evenodd. La valeur par défaut est nonzero.<string> est une chaîne de caractères, entre quotes, représentant un chemin SVG.<shape-arg> = <length> | <percentage>
-<shape-radius> = <length> | <percentage> | closest-side | farthest-side
-
-closest-side utilise la distance entre le centre de la forme et le côté le plus proche de la boîte de la référence. Pour les cercles, cela au côté le plus proche dans les deux axes. Pour les ellipses, cela correspond au côté le plus proche dans l'axe du rayon de l'ellipse.farthest-side utilise la distance entre le centre de la forme et le côté le plus éloigné de la boîte de référence.Les valeurs calculées des formes simples
-
-<basic-shape> sont calculées comme indiqué, avec ces exceptions :
-
-
-circle() ou ellipse() est calculée comme une paire de distances indiquant les décalages (horizontaux puis verticaux) depuis l'origine en haut à gauche. Chaque décalage est indiqué comme une combinaison d'une longueur absolue et d'un pourcentage.inset(), une valeur {{cssxref("border-radius")}} est calculée comme une liste développée de de huit valeurs {{cssxref("length")}} ou de huit pourcentages.L'interpolation des formes simples
-
-
-
-
-ellipse() ou circle(), qu'aucun des rayons n'utilise les mots-clés closest-side ou farthest-side, on aura une interpolation entre chaque valeur.inset(), on aura une interpolation entre chaque valeur.polygon(), que les deux polygones possèdent le même nombre de sommets et utilisent la même règle fill-rule, l'interpolation sera appliquée entre chaque valeur.path(), que les deux chemins possèdent le même nombre de composantes, dans le même ordre et qu'elles sont de même type, les données sont interpolées entre chaque chemin comme des nombres réels.Exemples
-
-Exemple simple
-
-CSS
-
-.clipped {
- clip-path: circle(15px at 20px 20px); // bugs 1247229 / 1075457 pour Firefox
-}
-
-HTML
-
-<img class="clipped" src="https://pixabay.com/static/uploads/photo/2016/01/17/04/29/rain-drops-1144448_960_720.jpg" alt="Rain Drops">
-
-
-Résultat
-
-Polygone animé
-
-HTML
-
-<div></div>
-
-CSS
-
-div {
- width: 300px;
- height: 300px;
- background: red;
- clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
- animation: 5s poly infinite alternate ease-in-out;
- margin: 1em auto;
- display: block;
-}
-
-@keyframes poly {
- from {
- clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
- }
-
- to {
- clip-path: polygon(44% 26%, 58% 38%, 58% 38%, 44% 81%, 44% 81%, 25% 49%);
- }
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS Shapes', '#basic-shape-functions', '<basic-shape>')}}
- {{Spec2('CSS Shapes')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/basic-shape/index.md b/files/fr/web/css/basic-shape/index.md
new file mode 100644
index 0000000000..0205f6ff16
--- /dev/null
+++ b/files/fr/web/css/basic-shape/index.md
@@ -0,0 +1,188 @@
+---
+title: <basic-shape> permet de définir une forme simple en utilisant des fonctions et est notamment utilisé pour les propriétés {{cssxref("clip-path")}}, {{cssxref("shape-outside")}} ou {{cssxref("offset-path")}}.Syntaxe
+
+<basic-shape>. L'origine du repère utilisé se situe dans le coin en haut à gauche de la boîte de référence avec un axe des abscisses allant vers la droite et un axe des ordonnées allant vers le bas. Toutes les longueurs exprimées en pourcentages sont calculées en fonction des dimensions de la boîte de référence.<basic-shape> sont créées via une notation fonctionnelle (pour analyser la syntaxe, se référer à cette page explicative).
+
+
+inset()inset( <shape-arg>{1,4} [round <border-radius>]? )
+
+ <border-radius> permet de définir des coins arrondis pour le rectangle incrusté en utilisant la même syntaxe que pour la propriété raccourcie {{cssxref("border-radius")}}.polygon()polygon( [<fill-rule>,]? [<shape-arg> <shape-arg>]# )
+
+ <fill-rule> représente la règle de remplissage utilisée pour déterminer l'intérieur du polygone. Les valeurs possibles sont nonzero et evenodd. La valeur par défaut pour cet argument est nonzero.circle()circle( [<shape-radius>]? [at <position>]? )
+
+ <shape-radius> représente le rayon du cercle. Les valeurs négatives ne sont pas autorisées et les valeurs exprimées en pourcentages seront calculées de la façon suivante en fonction de la hauteur et de la largeur de la boîte de référence sqrt(largeur^2+hauteur^2)/sqrt(2).center.ellipse()ellipse( [<shape-radius>{2}]? [at <position>]? )
+
+ <shape-radius> représentent les demi-axes horizontaux (rx) et verticaux (ry) de l'ellipse. Les valeurs négatives ne sont pas autorisées. Les valeurs exprimées en pourcentages sont calculées : en fonction de la hauteur de la boîte de référence pour le demi-axe vertical, en fonction de la largeur de la boîte de référence pour le demi-axe horizontal.center.path()
+
+ path( [<fill-rule>,]? <string>)<fill-rule> représente la règle de remplissage utilisée pour déterminer l'intérieur du chemin. Les valeurs possibles sont nonzero et evenodd. La valeur par défaut est nonzero.<string> est une chaîne de caractères, entre quotes, représentant un chemin SVG.<shape-arg> = <length> | <percentage>
+<shape-radius> = <length> | <percentage> | closest-side | farthest-side
+
+closest-side utilise la distance entre le centre de la forme et le côté le plus proche de la boîte de la référence. Pour les cercles, cela au côté le plus proche dans les deux axes. Pour les ellipses, cela correspond au côté le plus proche dans l'axe du rayon de l'ellipse.farthest-side utilise la distance entre le centre de la forme et le côté le plus éloigné de la boîte de référence.Les valeurs calculées des formes simples
+
+<basic-shape> sont calculées comme indiqué, avec ces exceptions :
+
+
+circle() ou ellipse() est calculée comme une paire de distances indiquant les décalages (horizontaux puis verticaux) depuis l'origine en haut à gauche. Chaque décalage est indiqué comme une combinaison d'une longueur absolue et d'un pourcentage.inset(), une valeur {{cssxref("border-radius")}} est calculée comme une liste développée de de huit valeurs {{cssxref("length")}} ou de huit pourcentages.L'interpolation des formes simples
+
+
+
+
+ellipse() ou circle(), qu'aucun des rayons n'utilise les mots-clés closest-side ou farthest-side, on aura une interpolation entre chaque valeur.inset(), on aura une interpolation entre chaque valeur.polygon(), que les deux polygones possèdent le même nombre de sommets et utilisent la même règle fill-rule, l'interpolation sera appliquée entre chaque valeur.path(), que les deux chemins possèdent le même nombre de composantes, dans le même ordre et qu'elles sont de même type, les données sont interpolées entre chaque chemin comme des nombres réels.Exemples
+
+Exemple simple
+
+CSS
+
+.clipped {
+ clip-path: circle(15px at 20px 20px); // bugs 1247229 / 1075457 pour Firefox
+}
+
+HTML
+
+<img class="clipped" src="https://pixabay.com/static/uploads/photo/2016/01/17/04/29/rain-drops-1144448_960_720.jpg" alt="Rain Drops">
+
+
+Résultat
+
+Polygone animé
+
+HTML
+
+<div></div>
+
+CSS
+
+div {
+ width: 300px;
+ height: 300px;
+ background: red;
+ clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
+ animation: 5s poly infinite alternate ease-in-out;
+ margin: 1em auto;
+ display: block;
+}
+
+@keyframes poly {
+ from {
+ clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
+ }
+
+ to {
+ clip-path: polygon(44% 26%, 58% 38%, 58% 38%, 44% 81%, 44% 81%, 25% 49%);
+ }
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS Shapes', '#basic-shape-functions', '<basic-shape>')}}
+ {{Spec2('CSS Shapes')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/blend-mode/index.html b/files/fr/web/css/blend-mode/index.html
deleted file mode 100644
index cd83ad75cd..0000000000
--- a/files/fr/web/css/blend-mode/index.html
+++ /dev/null
@@ -1,355 +0,0 @@
----
-title: <blend-mode> est un ensemble de mots-clés qui permettent de décrire les différents modes de fusion (blend modes). Ce type de valeur est utilisé pour les propriétés {{cssxref("background-blend-mode")}} et {{cssxref("mix-blend-mode")}}.Syntaxe
-
-<blend-mode> s'écrit avec l'un des mots-clés suivants.Valeurs possibles
-
-
-
-
-
-normalmultiply
- Si une des couches est noire, le résultat obtenu sera une image noire. Si une des couches est blanche, cela ne modifiera pas l'autre image. On obtient ainsi un effet semblable à la superposition de deux transparents.screenoverlaymultiply si l'arrière-plan est plus sombre ou de screen si elle est plus claire. On a un effet semblable à hard-light avec les couches interverties.
- darkenlightencolor-dodge
- Un premier-plan noir n'entraînera aucun changement.color-burnhard-lightmultiply si le premier plan est plus sombre ou de screen si la couleur de premier-plan est plus claire. L'effet obtenu est équivalent à overlay avec les deux couches interverties.soft-lighthard-light, mais est plus douce.differenceexclusiondifference avec moins de contraste. Comme pour difference, une couche noire n'aura aucun effet et une couche blanche inversera l'autre couche.huesaturationcolorluminosityExemples
-
-normal
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: normal;
-}
-
-multiply
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: multiply;
-}
-
-screen
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: screen;
-}
-
-overlay
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: overlay;
-}
-
-darken
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: darken;
-}
-
-lighten
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: lighten;
-}
-
-color-dodge
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: color-dodge;
-}
-
-color-burn
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: color-burn;
-}
-
-hard-light
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: hard-light;
-}
-
-soft-light
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: soft-light;
-}
-
-difference
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: difference;
-}
-
-exclusion
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: exclusion;
-}
-
-hue
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: hue;
-}
-
-saturation
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: saturation;
-}
-
-color
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: color;
-}
-
-luminosity
-
-
-
- #div {
- width: 300px;
- height: 300px;
- background: url('br.png'),
- url('tr.png');
- background-blend-mode: luminosity;
-}
-
-L'interpolation des modes de fusion
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('Compositing', '#ltblendmodegt', '<blend-mode>')}}
- {{Spec2('Compositing')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/blend-mode/index.md b/files/fr/web/css/blend-mode/index.md
new file mode 100644
index 0000000000..cd83ad75cd
--- /dev/null
+++ b/files/fr/web/css/blend-mode/index.md
@@ -0,0 +1,355 @@
+---
+title:
-
- <blend-mode> est un ensemble de mots-clés qui permettent de décrire les différents modes de fusion (blend modes). Ce type de valeur est utilisé pour les propriétés {{cssxref("background-blend-mode")}} et {{cssxref("mix-blend-mode")}}.Syntaxe
+
+<blend-mode> s'écrit avec l'un des mots-clés suivants.Valeurs possibles
+
+
+
+
+
+normalmultiply
+ Si une des couches est noire, le résultat obtenu sera une image noire. Si une des couches est blanche, cela ne modifiera pas l'autre image. On obtient ainsi un effet semblable à la superposition de deux transparents.screenoverlaymultiply si l'arrière-plan est plus sombre ou de screen si elle est plus claire. On a un effet semblable à hard-light avec les couches interverties.
+ darkenlightencolor-dodge
+ Un premier-plan noir n'entraînera aucun changement.color-burnhard-lightmultiply si le premier plan est plus sombre ou de screen si la couleur de premier-plan est plus claire. L'effet obtenu est équivalent à overlay avec les deux couches interverties.soft-lighthard-light, mais est plus douce.differenceexclusiondifference avec moins de contraste. Comme pour difference, une couche noire n'aura aucun effet et une couche blanche inversera l'autre couche.huesaturationcolorluminosityExemples
+
+normal
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: normal;
+}
+
+multiply
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: multiply;
+}
+
+screen
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: screen;
+}
+
+overlay
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: overlay;
+}
+
+darken
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: darken;
+}
+
+lighten
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: lighten;
+}
+
+color-dodge
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: color-dodge;
+}
+
+color-burn
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: color-burn;
+}
+
+hard-light
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: hard-light;
+}
+
+soft-light
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: soft-light;
+}
+
+difference
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: difference;
+}
+
+exclusion
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: exclusion;
+}
+
+hue
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: hue;
+}
+
+saturation
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: saturation;
+}
+
+color
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: color;
+}
+
+luminosity
+
+
+
+ #div {
+ width: 300px;
+ height: 300px;
+ background: url('br.png'),
+ url('tr.png');
+ background-blend-mode: luminosity;
+}
+
+L'interpolation des modes de fusion
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('Compositing', '#ltblendmodegt', '<blend-mode>')}}
+ {{Spec2('Compositing')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/block-size/index.html b/files/fr/web/css/block-size/index.html
deleted file mode 100644
index 4ed59048b2..0000000000
--- a/files/fr/web/css/block-size/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: block-size
-slug: Web/CSS/block-size
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/block-size
----
-
+
+ block-size est une propriété logique qui permet de définir la taille de l'élément dans la direction orthogonale au sens de lecture. Selon la valeur de la propriété {{cssxref("writing-mode")}}, elle correspondra à la propriété physique {{cssxref("width")}} ou {{cssxref("height")}}.block-size fera référence à la largeur de l'élément et sinon, elle fera référence à sa hauteur.Syntaxe
-
-/* Valeurs de longueur */
-/* Type <length> */
-block-size: 300px;
-block-size: 25em;
-
-/* Valeurs proportionnelles */
-/* Type <percentage> */
-block-size: 75%;
-
-/* Valeurs avec un mot-clé */
-block-size: 25em border-box;
-block-size: 75% content-box;
-block-size: max-content;
-block-size: min-content;
-block-size: available;
-block-size: fit-content;
-block-size: auto;
-
-/* Valeurs globales */
-block-size: inherit;
-block-size: initial;
-block-size: unset;
-
-
-Valeurs
-
-block-size peut prendre les mêmes valeurs que {{cssxref("width")}} et {{cssxref("height")}}.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.exemple {
- writing-mode: vertical-rl;
- background-color: yellow;
- block-size: 200px;
-}
-
-HTML
-
-<p class="exemple">Texte d'exemple</p>
-
-
-Résultat
-
-Spécification
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#logical-dimension-properties", "block-size")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/block-size/index.md b/files/fr/web/css/block-size/index.md
new file mode 100644
index 0000000000..4ed59048b2
--- /dev/null
+++ b/files/fr/web/css/block-size/index.md
@@ -0,0 +1,105 @@
+---
+title: block-size
+slug: Web/CSS/block-size
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/block-size
+---
+block-size est une propriété logique qui permet de définir la taille de l'élément dans la direction orthogonale au sens de lecture. Selon la valeur de la propriété {{cssxref("writing-mode")}}, elle correspondra à la propriété physique {{cssxref("width")}} ou {{cssxref("height")}}.block-size fera référence à la largeur de l'élément et sinon, elle fera référence à sa hauteur.Syntaxe
+
+/* Valeurs de longueur */
+/* Type <length> */
+block-size: 300px;
+block-size: 25em;
+
+/* Valeurs proportionnelles */
+/* Type <percentage> */
+block-size: 75%;
+
+/* Valeurs avec un mot-clé */
+block-size: 25em border-box;
+block-size: 75% content-box;
+block-size: max-content;
+block-size: min-content;
+block-size: available;
+block-size: fit-content;
+block-size: auto;
+
+/* Valeurs globales */
+block-size: inherit;
+block-size: initial;
+block-size: unset;
+
+
+Valeurs
+
+block-size peut prendre les mêmes valeurs que {{cssxref("width")}} et {{cssxref("height")}}.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.exemple {
+ writing-mode: vertical-rl;
+ background-color: yellow;
+ block-size: 200px;
+}
+
+HTML
+
+<p class="exemple">Texte d'exemple</p>
+
+
+Résultat
+
+Spécification
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#logical-dimension-properties", "block-size")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-color/index.html b/files/fr/web/css/border-block-color/index.html
deleted file mode 100644
index d014382130..0000000000
--- a/files/fr/web/css/border-block-color/index.html
+++ /dev/null
@@ -1,100 +0,0 @@
----
-title: border-block-color
-slug: Web/CSS/border-block-color
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-block-color
----
-border-block-color définit la couleur de la bordure d'un élément sur les côtés de l'axe de bloc. Cette propriété correspondra à différentes propriétés physiques pour les couleurs de la bordure selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété logique peut correspondre à {{cssxref("border-top-color")}} et {{cssxref("border-bottom-color")}} ou à {{cssxref("border-right-color")}} et {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.border-block-color: yellow;
-border-block-color: #F5F6F7;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- border: 10px solid blue;
- border-block-color: red;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-color", "border-block-color")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-color/index.md b/files/fr/web/css/border-block-color/index.md
new file mode 100644
index 0000000000..d014382130
--- /dev/null
+++ b/files/fr/web/css/border-block-color/index.md
@@ -0,0 +1,100 @@
+---
+title: border-block-color
+slug: Web/CSS/border-block-color
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-block-color
+---
+
-
- border-block-color définit la couleur de la bordure d'un élément sur les côtés de l'axe de bloc. Cette propriété correspondra à différentes propriétés physiques pour les couleurs de la bordure selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété logique peut correspondre à {{cssxref("border-top-color")}} et {{cssxref("border-bottom-color")}} ou à {{cssxref("border-right-color")}} et {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.border-block-color: yellow;
+border-block-color: #F5F6F7;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ border: 10px solid blue;
+ border-block-color: red;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-color", "border-block-color")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-end-color/index.html b/files/fr/web/css/border-block-end-color/index.html
deleted file mode 100644
index 0837a30800..0000000000
--- a/files/fr/web/css/border-block-end-color/index.html
+++ /dev/null
@@ -1,113 +0,0 @@
----
-title: border-block-end-color
-slug: Web/CSS/border-block-end-color
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-block-end-color
----
-
+
+ border-block-end-color définit la couleur de la bordure pour le côté de la fin de l'élément orienté orthogonalement à l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-border-block-end-color: red;
-border-block-end-color: #fffff;
-border-block-end-color: rgb(200, 0, 0);
-
-border-block-end-color: unset;
-border-block-end-color: initial;
-border-block-end-color: inherit;
-
-
-Valeurs
-
-
-
-
-<'border-color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 10px solid blue;
- border-block-end-color: red;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-end-color", "border-block-end-color")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-end-color/index.md b/files/fr/web/css/border-block-end-color/index.md
new file mode 100644
index 0000000000..0837a30800
--- /dev/null
+++ b/files/fr/web/css/border-block-end-color/index.md
@@ -0,0 +1,113 @@
+---
+title: border-block-end-color
+slug: Web/CSS/border-block-end-color
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-block-end-color
+---
+
-
- border-block-end-color définit la couleur de la bordure pour le côté de la fin de l'élément orienté orthogonalement à l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+border-block-end-color: red;
+border-block-end-color: #fffff;
+border-block-end-color: rgb(200, 0, 0);
+
+border-block-end-color: unset;
+border-block-end-color: initial;
+border-block-end-color: inherit;
+
+
+Valeurs
+
+
+
+
+<'border-color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 10px solid blue;
+ border-block-end-color: red;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-end-color", "border-block-end-color")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-end-style/index.html b/files/fr/web/css/border-block-end-style/index.html
deleted file mode 100644
index 2f381a74bc..0000000000
--- a/files/fr/web/css/border-block-end-style/index.html
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: border-block-end-style
-slug: Web/CSS/border-block-end-style
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-block-end-style
----
-
+
+ border-block-end-style définit le style de la bordure utilisé pour le côté de la fin de l'élément dans l'axe orthogonal au sens de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-border-block-end-style: dashed;
-border-block-end-style: dotted;
-border-block-end-style: groove;
-
-Valeurs
-
-
-
-
-<'border-style'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 5px solid blue;
- border-block-end-style: dashed;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-end-style", "border-block-end-style")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-end-style/index.md b/files/fr/web/css/border-block-end-style/index.md
new file mode 100644
index 0000000000..2f381a74bc
--- /dev/null
+++ b/files/fr/web/css/border-block-end-style/index.md
@@ -0,0 +1,106 @@
+---
+title: border-block-end-style
+slug: Web/CSS/border-block-end-style
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-block-end-style
+---
+
-
- border-block-end-style définit le style de la bordure utilisé pour le côté de la fin de l'élément dans l'axe orthogonal au sens de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+border-block-end-style: dashed;
+border-block-end-style: dotted;
+border-block-end-style: groove;
+
+Valeurs
+
+
+
+
+<'border-style'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 5px solid blue;
+ border-block-end-style: dashed;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-end-style", "border-block-end-style")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-end-width/index.html b/files/fr/web/css/border-block-end-width/index.html
deleted file mode 100644
index a6cd3ee9ea..0000000000
--- a/files/fr/web/css/border-block-end-width/index.html
+++ /dev/null
@@ -1,102 +0,0 @@
----
-title: border-block-end-width
-slug: Web/CSS/border-block-end-width
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-block-end-width
----
-
+
+ border-block-end-width définit la largeur de la bordure pour le côté de bloc de la fin « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
-
-/* Valeur de longueur */
-/* Type <length> */
-border-block-end-width: 5px;
-border-block-end-width: thick;
-
-
-Valeurs
-
-
-
-
-<'border-width'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 1px solid blue;
- border-block-end-width: 5px;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-end-width", "border-block-end-width")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-end-width/index.md b/files/fr/web/css/border-block-end-width/index.md
new file mode 100644
index 0000000000..a6cd3ee9ea
--- /dev/null
+++ b/files/fr/web/css/border-block-end-width/index.md
@@ -0,0 +1,102 @@
+---
+title: border-block-end-width
+slug: Web/CSS/border-block-end-width
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-block-end-width
+---
+
-
- border-block-end-width définit la largeur de la bordure pour le côté de bloc de la fin « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
+
+/* Valeur de longueur */
+/* Type <length> */
+border-block-end-width: 5px;
+border-block-end-width: thick;
+
+
+Valeurs
+
+
+
+
+<'border-width'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 1px solid blue;
+ border-block-end-width: 5px;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-end-width", "border-block-end-width")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-end/index.html b/files/fr/web/css/border-block-end/index.html
deleted file mode 100644
index 4ec15731fe..0000000000
--- a/files/fr/web/css/border-block-end/index.html
+++ /dev/null
@@ -1,114 +0,0 @@
----
-title: border-block-end
-slug: Web/CSS/border-block-end
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-block-end
----
-
+
+ border-block-end est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant à la fin de l'élément dans l'axe orthogonal au sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-block-end-width")}}, {{cssxref("border-block-end-style")}} et {{cssxref("border-block-end-color")}}.
-
-
-Syntaxe
-
-border-block-end: 1px;
-border-block-end: 2px dotted;
-border-block-end: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<'border-width'><'border-style'><'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-rl;
- border-block-end: 5px dashed blue;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-end", "border-block-end")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-end/index.md b/files/fr/web/css/border-block-end/index.md
new file mode 100644
index 0000000000..4ec15731fe
--- /dev/null
+++ b/files/fr/web/css/border-block-end/index.md
@@ -0,0 +1,114 @@
+---
+title: border-block-end
+slug: Web/CSS/border-block-end
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-block-end
+---
+
-
- border-block-end est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant à la fin de l'élément dans l'axe orthogonal au sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-block-end-width")}}, {{cssxref("border-block-end-style")}} et {{cssxref("border-block-end-color")}}.
+
+
+Syntaxe
+
+border-block-end: 1px;
+border-block-end: 2px dotted;
+border-block-end: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<'border-width'><'border-style'><'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-rl;
+ border-block-end: 5px dashed blue;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-end", "border-block-end")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-start-color/index.html b/files/fr/web/css/border-block-start-color/index.html
deleted file mode 100644
index 95208d2f9b..0000000000
--- a/files/fr/web/css/border-block-start-color/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: border-block-start-color
-slug: Web/CSS/border-block-start-color
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-block-start-color
----
-
+
+ border-block-start-color définit la couleur de la bordure pour le côté du début de l'élément orienté orthogonalement à l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-border-block-start-color: red;
-border-block-start-color: #fffff;
-border-block-start-color: rgb(200, 0, 0);
-
-border-block-start-color: unset;
-border-block-start-color: initial;
-border-block-start-color: inherit;
-
-
-Valeurs
-
-
-
-
-<'border-color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 10px solid blue;
- border-block-start-color: red;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-start-color", "border-block-start-color")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-start-color/index.md b/files/fr/web/css/border-block-start-color/index.md
new file mode 100644
index 0000000000..95208d2f9b
--- /dev/null
+++ b/files/fr/web/css/border-block-start-color/index.md
@@ -0,0 +1,112 @@
+---
+title: border-block-start-color
+slug: Web/CSS/border-block-start-color
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-block-start-color
+---
+
-
- border-block-start-color définit la couleur de la bordure pour le côté du début de l'élément orienté orthogonalement à l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+border-block-start-color: red;
+border-block-start-color: #fffff;
+border-block-start-color: rgb(200, 0, 0);
+
+border-block-start-color: unset;
+border-block-start-color: initial;
+border-block-start-color: inherit;
+
+
+Valeurs
+
+
+
+
+<'border-color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 10px solid blue;
+ border-block-start-color: red;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-start-color", "border-block-start-color")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-start-style/index.html b/files/fr/web/css/border-block-start-style/index.html
deleted file mode 100644
index a6060e2c1d..0000000000
--- a/files/fr/web/css/border-block-start-style/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: border-block-start-style
-slug: Web/CSS/border-block-start-style
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-block-start-style
----
-
+
+ border-block-start-style définit le style de la bordure utilisé pour le côté du début de l'élément dans l'axe orthogonal au sens de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-/* border-block-start-style: style */
-border-block-start-style: dashed;
-border-block-start-style: dotted;
-border-block-start-style: groove;
-
-Valeurs
-
-
-
-
-<'border-style'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 5px solid blue;
- border-block-start-style: dashed;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-start-style", "border-block-start-style")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-start-style/index.md b/files/fr/web/css/border-block-start-style/index.md
new file mode 100644
index 0000000000..a6060e2c1d
--- /dev/null
+++ b/files/fr/web/css/border-block-start-style/index.md
@@ -0,0 +1,107 @@
+---
+title: border-block-start-style
+slug: Web/CSS/border-block-start-style
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-block-start-style
+---
+
-
- border-block-start-style définit le style de la bordure utilisé pour le côté du début de l'élément dans l'axe orthogonal au sens de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+/* border-block-start-style: style */
+border-block-start-style: dashed;
+border-block-start-style: dotted;
+border-block-start-style: groove;
+
+Valeurs
+
+
+
+
+<'border-style'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 5px solid blue;
+ border-block-start-style: dashed;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-start-style", "border-block-start-style")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-start-width/index.html b/files/fr/web/css/border-block-start-width/index.html
deleted file mode 100644
index 4e9e0f6139..0000000000
--- a/files/fr/web/css/border-block-start-width/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: border-block-start-width
-slug: Web/CSS/border-block-start-width
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-block-start-width
----
-
+
+ border-block-start-width définit la largeur de la bordure pour le côté de bloc du début « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
-
-/* Valeur de longueur */
-/* Type <length> */
-border-block-start-width: 5px;
-border-block-start-width: thick;
-
-
-Valeurs
-
-
-
-
-<'border-width'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 1px solid blue;
- border-block-start-width: 5px;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-start-width", "border-block-start-width")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-start-width/index.md b/files/fr/web/css/border-block-start-width/index.md
new file mode 100644
index 0000000000..4e9e0f6139
--- /dev/null
+++ b/files/fr/web/css/border-block-start-width/index.md
@@ -0,0 +1,103 @@
+---
+title: border-block-start-width
+slug: Web/CSS/border-block-start-width
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-block-start-width
+---
+
-
- border-block-start-width définit la largeur de la bordure pour le côté de bloc du début « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
+
+/* Valeur de longueur */
+/* Type <length> */
+border-block-start-width: 5px;
+border-block-start-width: thick;
+
+
+Valeurs
+
+
+
+
+<'border-width'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 1px solid blue;
+ border-block-start-width: 5px;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-start-width", "border-block-start-width")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-start/index.html b/files/fr/web/css/border-block-start/index.html
deleted file mode 100644
index 44fa752755..0000000000
--- a/files/fr/web/css/border-block-start/index.html
+++ /dev/null
@@ -1,114 +0,0 @@
----
-title: border-block-start
-slug: Web/CSS/border-block-start
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-block-start
----
-
+
+ border-block-start est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant au début de l'élément dans l'axe orthogonal au sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-block-start-width")}}, {{cssxref("border-block-start-style")}} et {{cssxref("border-block-start-color")}}.
-
-
-Syntaxe
-
-border-block-start: 1px;
-border-block-start: 2px dotted;
-border-block-start: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<'border-width'><'border-style'><'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-rl;
- border-block-start: 5px dashed blue;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-start", "border-block-start")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-start/index.md b/files/fr/web/css/border-block-start/index.md
new file mode 100644
index 0000000000..44fa752755
--- /dev/null
+++ b/files/fr/web/css/border-block-start/index.md
@@ -0,0 +1,114 @@
+---
+title: border-block-start
+slug: Web/CSS/border-block-start
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-block-start
+---
+
-
- border-block-start est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant au début de l'élément dans l'axe orthogonal au sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-block-start-width")}}, {{cssxref("border-block-start-style")}} et {{cssxref("border-block-start-color")}}.
+
+
+Syntaxe
+
+border-block-start: 1px;
+border-block-start: 2px dotted;
+border-block-start: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<'border-width'><'border-style'><'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-rl;
+ border-block-start: 5px dashed blue;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-start", "border-block-start")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-style/index.html b/files/fr/web/css/border-block-style/index.html
deleted file mode 100644
index 996bd6b92f..0000000000
--- a/files/fr/web/css/border-block-style/index.html
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: border-block-style
-slug: Web/CSS/border-block-style
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-block-style
----
-
+
+ border-block-style permet de définir le style pour la bordure sur les côtés d'un élément qui correspondent à l'axe de bloc. Cette propriété logique correspond à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-style")}} et {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} et {{cssxref("border-right-style")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-style'> */
-border-block-style: dashed;
-border-block-style: dotted;
-border-block-style: groove;
-
-
-Syntaxe
-
-Valeur
-
-
-
-
-<'border-style'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- border: 5px solid blue;
- border-block-style: dashed;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Texte exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-style", "border-block-style")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-style/index.md b/files/fr/web/css/border-block-style/index.md
new file mode 100644
index 0000000000..996bd6b92f
--- /dev/null
+++ b/files/fr/web/css/border-block-style/index.md
@@ -0,0 +1,101 @@
+---
+title: border-block-style
+slug: Web/CSS/border-block-style
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-block-style
+---
+
-
- border-block-style permet de définir le style pour la bordure sur les côtés d'un élément qui correspondent à l'axe de bloc. Cette propriété logique correspond à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-style")}} et {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} et {{cssxref("border-right-style")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-style'> */
+border-block-style: dashed;
+border-block-style: dotted;
+border-block-style: groove;
+
+
+Syntaxe
+
+Valeur
+
+
+
+
+<'border-style'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ border: 5px solid blue;
+ border-block-style: dashed;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Texte exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-style", "border-block-style")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block-width/index.html b/files/fr/web/css/border-block-width/index.html
deleted file mode 100644
index 356fb06bf4..0000000000
--- a/files/fr/web/css/border-block-width/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: border-block-width
-slug: Web/CSS/border-block-width
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-block-width
----
-
+
+ border-block-width définit la largeur de la bordure sur les côtés d'un élément sur les côtés de l'axe de bloc. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-width")}} et {{cssxref("border-bottom-width")}} ou à {{cssxref("border-left-width")}} et {{cssxref("border-right-width")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-width'> */
-border-block-width: 5px 10px;
-border-block-width: 5px;
-border-block-width: thick;
-
-
-Syntaxe
-
-Valeur
-
-
-
-
-<'border-width'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- border: 1px solid blue;
- border-block-width: 5px 10px;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-width", "border-block-width")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block-width/index.md b/files/fr/web/css/border-block-width/index.md
new file mode 100644
index 0000000000..356fb06bf4
--- /dev/null
+++ b/files/fr/web/css/border-block-width/index.md
@@ -0,0 +1,94 @@
+---
+title: border-block-width
+slug: Web/CSS/border-block-width
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-block-width
+---
+border-block-width définit la largeur de la bordure sur les côtés d'un élément sur les côtés de l'axe de bloc. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-width")}} et {{cssxref("border-bottom-width")}} ou à {{cssxref("border-left-width")}} et {{cssxref("border-right-width")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-width'> */
+border-block-width: 5px 10px;
+border-block-width: 5px;
+border-block-width: thick;
+
+
+Syntaxe
+
+Valeur
+
+
+
+
+<'border-width'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ border: 1px solid blue;
+ border-block-width: 5px 10px;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-width", "border-block-width")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-block/index.html b/files/fr/web/css/border-block/index.html
deleted file mode 100644
index 5a7eaf7dc2..0000000000
--- a/files/fr/web/css/border-block/index.html
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: border-block
-slug: Web/CSS/border-block
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-block
----
-border-block est une propriété raccourcie qui permet de paramétrer les différentes propriétés logiques relatives à la bordure sur l'axe en bloc.border-block: 1px;
-border-block: 2px dotted;
-border-block: medium dashed blue;
-
-
-border-block peut être utilisée afin de définir une ou plusieurs propriétés parmi {{cssxref("border-block-width")}}, {{cssxref("border-block-style")}} et {{cssxref("border-block-color")}}. La bordure est donc paramétrée de la même façon pour le début et la fin de l'axe de bloc. Les propriétés physiques correspondantes dépendront du mode d'écriture, de la direction et de l'orientation du texte. Autrement dit, cette propriété peut correspondre à {{cssxref("border-top")}} et {{cssxref("border-bottom")}} ou à {{cssxref("border-right")}} et {{cssxref("border-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
-
-Valeurs
-
-border-block peut être utilisée avec une ou plusieurs de ces valeurs, quel que soit l'ordre.
-
-
-<'border-width'><'border-style'><'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exempleTexte {
- writing-mode: vertical-rl;
- border-block: 5px dashed blue;
-}
-
-HTML
-
-<div>
- <p class="exempleTexte">Texte exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block", "border-block")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-block/index.md b/files/fr/web/css/border-block/index.md
new file mode 100644
index 0000000000..5a7eaf7dc2
--- /dev/null
+++ b/files/fr/web/css/border-block/index.md
@@ -0,0 +1,109 @@
+---
+title: border-block
+slug: Web/CSS/border-block
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-block
+---
+
-
- border-block est une propriété raccourcie qui permet de paramétrer les différentes propriétés logiques relatives à la bordure sur l'axe en bloc.border-block: 1px;
+border-block: 2px dotted;
+border-block: medium dashed blue;
+
+
+border-block peut être utilisée afin de définir une ou plusieurs propriétés parmi {{cssxref("border-block-width")}}, {{cssxref("border-block-style")}} et {{cssxref("border-block-color")}}. La bordure est donc paramétrée de la même façon pour le début et la fin de l'axe de bloc. Les propriétés physiques correspondantes dépendront du mode d'écriture, de la direction et de l'orientation du texte. Autrement dit, cette propriété peut correspondre à {{cssxref("border-top")}} et {{cssxref("border-bottom")}} ou à {{cssxref("border-right")}} et {{cssxref("border-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
+
+Valeurs
+
+border-block peut être utilisée avec une ou plusieurs de ces valeurs, quel que soit l'ordre.
+
+
+<'border-width'><'border-style'><'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exempleTexte {
+ writing-mode: vertical-rl;
+ border-block: 5px dashed blue;
+}
+
+HTML
+
+<div>
+ <p class="exempleTexte">Texte exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block", "border-block")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-bottom-color/index.html b/files/fr/web/css/border-bottom-color/index.html
deleted file mode 100644
index a1c9a1bf02..0000000000
--- a/files/fr/web/css/border-bottom-color/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: border-bottom-color
-slug: Web/CSS/border-bottom-color
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-bottom-color
----
-
+
+ border-bottom-color permet de définir la couleur utilisée pour la bordure basse d'un élément.Syntaxe
-
-/* Valeurs de type <color> */
-border-bottom-color: red;
-border-bottom-color: rgb(255, 128, 0);
-border-bottom-color: hsla(100%, 50%, 25%, 0.75);
-border-bottom-color: #ffbb00;
-border-bottom-color: currentColor;
-border-bottom-color: transparent;
-
-/* Valeurs globales */
-border-bottom-color: inherit;
-border-bottom-color: initial;
-border-bottom-color: unset;
-
-
-Valeurs
-
-
-
-
-color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.maboite {
- border: solid 0.3em gold;
- border-bottom-color: red;
- width: auto;
-}
-
-.texterouge {
- color: red;
-}
-
-HTML
-
-<div class="maboite">
- <p>Une boîte avec une bordure autour.
- Notez le côté de la boîte qui est
- <span class="texterouge">rouge</span>.</p>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-bottom-color', 'border-bottom-color')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative, la valeur
- transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
-
-
-{{SpecName('CSS2.1', 'box.html#propdef-border-bottom-color', 'border-bottom-color')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-bottom-color/index.md b/files/fr/web/css/border-bottom-color/index.md
new file mode 100644
index 0000000000..a1c9a1bf02
--- /dev/null
+++ b/files/fr/web/css/border-bottom-color/index.md
@@ -0,0 +1,124 @@
+---
+title: border-bottom-color
+slug: Web/CSS/border-bottom-color
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-bottom-color
+---
+
-
-
-
-
-
- border-bottom-color permet de définir la couleur utilisée pour la bordure basse d'un élément.Syntaxe
+
+/* Valeurs de type <color> */
+border-bottom-color: red;
+border-bottom-color: rgb(255, 128, 0);
+border-bottom-color: hsla(100%, 50%, 25%, 0.75);
+border-bottom-color: #ffbb00;
+border-bottom-color: currentColor;
+border-bottom-color: transparent;
+
+/* Valeurs globales */
+border-bottom-color: inherit;
+border-bottom-color: initial;
+border-bottom-color: unset;
+
+
+Valeurs
+
+
+
+
+color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.maboite {
+ border: solid 0.3em gold;
+ border-bottom-color: red;
+ width: auto;
+}
+
+.texterouge {
+ color: red;
+}
+
+HTML
+
+<div class="maboite">
+ <p>Une boîte avec une bordure autour.
+ Notez le côté de la boîte qui est
+ <span class="texterouge">rouge</span>.</p>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-bottom-color', 'border-bottom-color')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative, la valeur
+ transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
+
+
+{{SpecName('CSS2.1', 'box.html#propdef-border-bottom-color', 'border-bottom-color')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-bottom-left-radius/index.html b/files/fr/web/css/border-bottom-left-radius/index.html
deleted file mode 100644
index be45e9ff52..0000000000
--- a/files/fr/web/css/border-bottom-left-radius/index.html
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: border-bottom-left-radius
-slug: Web/CSS/border-bottom-left-radius
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-bottom-left-radius
----
-
+
+
+
+
+
+ border-bottom-left-radius définit le rayon de courbure de la bordure pour le coin en bas à gauche de la boîte.border-bottom-left-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
-
-/* Le coin est un quart de cercle */
-/* La valeur indique le rayon de courbure */
-border-bottom-left-radius: 3px;
-
-/* Valeurs avec un pourcentage */
-border-bottom-left-radius: 20%;
-
-/* Le coin est un quart d'ellipse */
-/* La première valeur indique le demi-axe */
-/* horizontal et la seconde le demi-axe */
-/* vertical */
-border-bottom-left-radius: 0.5em 1em;
-
-border-bottom-left-radius: inherit;
-
-
-
-
-
-<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
-
- <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
-
-
-
-
-<length-percentage>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: lightgreen;
- border: solid 1px black;
- width: 100px;
- height: 130px;
-}
-
-.arc_cercle {
- border-bottom-left-radius: 40px 40px;
-}
-
-.arc_ellipse {
- border-bottom-left-radius: 40px 20px;
-}
-
-.pourcentage {
- border-bottom-left-radius: 40%;
-}
-
-.rognage {
- border: black 10px double;
- border-bottom-left-radius: 40%;
- background-color: rgb(250,20,70);
- background-clip: content-box; // essayez margin-box...
-}
-
-
-HTML
-
- <div class="arc_cercle"></div>
- <div class="arc_ellipse"></div>
- <div class="pourcentage"></div>
- <div class="rognage"></div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#border-bottom-left-radius', 'border-bottom-left-radius')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-bottom-left-radius/index.md b/files/fr/web/css/border-bottom-left-radius/index.md
new file mode 100644
index 0000000000..be45e9ff52
--- /dev/null
+++ b/files/fr/web/css/border-bottom-left-radius/index.md
@@ -0,0 +1,141 @@
+---
+title: border-bottom-left-radius
+slug: Web/CSS/border-bottom-left-radius
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-bottom-left-radius
+---
+
-
- border-bottom-left-radius définit le rayon de courbure de la bordure pour le coin en bas à gauche de la boîte.border-bottom-left-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
+
+/* Le coin est un quart de cercle */
+/* La valeur indique le rayon de courbure */
+border-bottom-left-radius: 3px;
+
+/* Valeurs avec un pourcentage */
+border-bottom-left-radius: 20%;
+
+/* Le coin est un quart d'ellipse */
+/* La première valeur indique le demi-axe */
+/* horizontal et la seconde le demi-axe */
+/* vertical */
+border-bottom-left-radius: 0.5em 1em;
+
+border-bottom-left-radius: inherit;
+
+
+
+
+
+<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
+
+ <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
+
+
+
+
+<length-percentage>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: lightgreen;
+ border: solid 1px black;
+ width: 100px;
+ height: 130px;
+}
+
+.arc_cercle {
+ border-bottom-left-radius: 40px 40px;
+}
+
+.arc_ellipse {
+ border-bottom-left-radius: 40px 20px;
+}
+
+.pourcentage {
+ border-bottom-left-radius: 40%;
+}
+
+.rognage {
+ border: black 10px double;
+ border-bottom-left-radius: 40%;
+ background-color: rgb(250,20,70);
+ background-clip: content-box; // essayez margin-box...
+}
+
+
+HTML
+
+ <div class="arc_cercle"></div>
+ <div class="arc_ellipse"></div>
+ <div class="pourcentage"></div>
+ <div class="rognage"></div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#border-bottom-left-radius', 'border-bottom-left-radius')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-bottom-right-radius/index.html b/files/fr/web/css/border-bottom-right-radius/index.html
deleted file mode 100644
index 9a9fb45657..0000000000
--- a/files/fr/web/css/border-bottom-right-radius/index.html
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: border-bottom-right-radius
-slug: Web/CSS/border-bottom-right-radius
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-bottom-right-radius
----
-
+
+ border-bottom-right-radius définit le rayon de courbure de la bordure pour le coin en bas à droite de la boîte. L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.border-bottom-right-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
-
-/* Le coin est un quart de cercle */
-/* La valeur indique le rayon de courbure */
-border-bottom-right-radius: 3px;
-
-/* Valeur avec un pourcentage */
-border-bottom-right-radius: 20%;
-
-/* Le coin est un quart d'ellipse */
-/* La première valeur indique le demi-axe */
-/* horizontal et la seconde le demi-axe */
-/* vertical */
-border-bottom-right-radius: 0.5em 1em;
-
-border-bottom-right-radius: inherit;
-
-
-
-
-
-<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
-
- <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
-
-
-
-
-<length-percentage>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: lightgreen;
- border: solid 1px black;
- width: 100px;
- height: 130px;
-}
-
-.arc_cercle {
- border-bottom-right-radius: 40px 40px;
-}
-
-.arc_ellipse {
- border-bottom-right-radius: 40px 20px;
-}
-
-.pourcentage {
- border-bottom-right-radius: 40%;
-}
-
-.rognage {
- border: black 10px double;
- border-bottom-right-radius: 40%;
- background-color: rgb(250,20,70);
- background-clip: content-box; // essayez margin-box...
-}
-
-
-HTML
-
- <div class="arc_cercle"></div>
- <div class="arc_ellipse"></div>
- <div class="pourcentage"></div>
- <div class="rognage"></div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#border-bottom-right-radius', 'border-bottom-right-radius')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-bottom-right-radius/index.md b/files/fr/web/css/border-bottom-right-radius/index.md
new file mode 100644
index 0000000000..9a9fb45657
--- /dev/null
+++ b/files/fr/web/css/border-bottom-right-radius/index.md
@@ -0,0 +1,141 @@
+---
+title: border-bottom-right-radius
+slug: Web/CSS/border-bottom-right-radius
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-bottom-right-radius
+---
+
-
- border-bottom-right-radius définit le rayon de courbure de la bordure pour le coin en bas à droite de la boîte. L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.border-bottom-right-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
+
+/* Le coin est un quart de cercle */
+/* La valeur indique le rayon de courbure */
+border-bottom-right-radius: 3px;
+
+/* Valeur avec un pourcentage */
+border-bottom-right-radius: 20%;
+
+/* Le coin est un quart d'ellipse */
+/* La première valeur indique le demi-axe */
+/* horizontal et la seconde le demi-axe */
+/* vertical */
+border-bottom-right-radius: 0.5em 1em;
+
+border-bottom-right-radius: inherit;
+
+
+
+
+
+<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
+
+ <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
+
+
+
+
+<length-percentage>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: lightgreen;
+ border: solid 1px black;
+ width: 100px;
+ height: 130px;
+}
+
+.arc_cercle {
+ border-bottom-right-radius: 40px 40px;
+}
+
+.arc_ellipse {
+ border-bottom-right-radius: 40px 20px;
+}
+
+.pourcentage {
+ border-bottom-right-radius: 40%;
+}
+
+.rognage {
+ border: black 10px double;
+ border-bottom-right-radius: 40%;
+ background-color: rgb(250,20,70);
+ background-clip: content-box; // essayez margin-box...
+}
+
+
+HTML
+
+ <div class="arc_cercle"></div>
+ <div class="arc_ellipse"></div>
+ <div class="pourcentage"></div>
+ <div class="rognage"></div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#border-bottom-right-radius', 'border-bottom-right-radius')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-bottom-style/index.html b/files/fr/web/css/border-bottom-style/index.html
deleted file mode 100644
index 82a22dc543..0000000000
--- a/files/fr/web/css/border-bottom-style/index.html
+++ /dev/null
@@ -1,196 +0,0 @@
----
-title: border-bottom-style
-slug: Web/CSS/border-bottom-style
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-bottom-style
----
-
+
+ border-bottom-style définit le style de ligne utilisé pour mettre en forme la bordure en bas d'une boîte.Syntaxe
-
-/* Valeurs avec un mot-clé */
-border-bottom-style: none;
-border-bottom-style: hidden;
-border-bottom-style: dotted;
-border-bottom-style: dashed;
-border-bottom-style: solid;
-border-bottom-style: double;
-border-bottom-style: groove;
-border-bottom-style: ridge;
-border-bottom-style: inset;
-border-bottom-style: outset;
-
-/* Valeurs globales */
-border-bottom-style: inherit;
-border-bottom-style: initial;
-border-bottom-style: unset;
-
-
-Valeurs
-
-
-
-
-<br-style>
-
-
-
-
-
- noneL'effet obtenu est le même qu'avec
- hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-bottom-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
-
-
- hiddenL'effet obtenu est le même qu'avec
- none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-bottom-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
-
-
- dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-bottom-width")}}.
-
-
-
- dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
-
-
-
- solidAffiche une ligne droite continue.
-
-
-
- doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-bottom-width")}}.
-
-
-
- grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
- ridge.
-
-
- ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
- groove.
-
-
- insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
- outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
-
-
-
- outset
-
- inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-/* On applique un style sur le tableau */
-table {
- border-width: 2px;
- background-color: #52E385;
-}
-tr, td {
- padding: 3px;
-}
-
-/* Des exemples pour border-bottom-style */
-.b1 {border-bottom-style:none;}
-.b2 {border-bottom-style:hidden;}
-.b3 {border-bottom-style:dotted;}
-.b4 {border-bottom-style:dashed;}
-.b5 {border-bottom-style:solid;}
-.b6 {border-bottom-style:double;}
-.b7 {border-bottom-style:groove;}
-.b8 {border-bottom-style:ridge;}
-.b9 {border-bottom-style:inset;}
-.b10 {border-bottom-style:outset;}
-
-HTML
-
-<table>
- <tr>
- <td class="b1">none</td>
- <td class="b2">hidden</td>
- <td class="b3">petits points</td>
- <td class="b4">tirets</td>
- </tr>
- <tr>
- <td class="b5">solid</td>
- <td class="b6">double</td>
- <td class="b7">groove</td>
- <td class="b8">ridge</td>
- </tr>
- <tr>
- <td class="b9">inset</td>
- <td class="b10">outset</td>
- </tr>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-bottom-style')}}
- {{Spec2('CSS3 Backgrounds')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-bottom-style')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-bottom-style/index.md b/files/fr/web/css/border-bottom-style/index.md
new file mode 100644
index 0000000000..82a22dc543
--- /dev/null
+++ b/files/fr/web/css/border-bottom-style/index.md
@@ -0,0 +1,196 @@
+---
+title: border-bottom-style
+slug: Web/CSS/border-bottom-style
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-bottom-style
+---
+
-
-
-
- border-bottom-style définit le style de ligne utilisé pour mettre en forme la bordure en bas d'une boîte.Syntaxe
+
+/* Valeurs avec un mot-clé */
+border-bottom-style: none;
+border-bottom-style: hidden;
+border-bottom-style: dotted;
+border-bottom-style: dashed;
+border-bottom-style: solid;
+border-bottom-style: double;
+border-bottom-style: groove;
+border-bottom-style: ridge;
+border-bottom-style: inset;
+border-bottom-style: outset;
+
+/* Valeurs globales */
+border-bottom-style: inherit;
+border-bottom-style: initial;
+border-bottom-style: unset;
+
+
+Valeurs
+
+
+
+
+<br-style>
+
+
+
+
+
+ noneL'effet obtenu est le même qu'avec
+ hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-bottom-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
+
+
+ hiddenL'effet obtenu est le même qu'avec
+ none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-bottom-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
+
+
+ dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-bottom-width")}}.
+
+
+
+ dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
+
+
+
+ solidAffiche une ligne droite continue.
+
+
+
+ doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-bottom-width")}}.
+
+
+
+ grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
+ ridge.
+
+
+ ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
+ groove.
+
+
+ insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
+ outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
+
+
+
+ outset
+
+ inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+/* On applique un style sur le tableau */
+table {
+ border-width: 2px;
+ background-color: #52E385;
+}
+tr, td {
+ padding: 3px;
+}
+
+/* Des exemples pour border-bottom-style */
+.b1 {border-bottom-style:none;}
+.b2 {border-bottom-style:hidden;}
+.b3 {border-bottom-style:dotted;}
+.b4 {border-bottom-style:dashed;}
+.b5 {border-bottom-style:solid;}
+.b6 {border-bottom-style:double;}
+.b7 {border-bottom-style:groove;}
+.b8 {border-bottom-style:ridge;}
+.b9 {border-bottom-style:inset;}
+.b10 {border-bottom-style:outset;}
+
+HTML
+
+<table>
+ <tr>
+ <td class="b1">none</td>
+ <td class="b2">hidden</td>
+ <td class="b3">petits points</td>
+ <td class="b4">tirets</td>
+ </tr>
+ <tr>
+ <td class="b5">solid</td>
+ <td class="b6">double</td>
+ <td class="b7">groove</td>
+ <td class="b8">ridge</td>
+ </tr>
+ <tr>
+ <td class="b9">inset</td>
+ <td class="b10">outset</td>
+ </tr>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-bottom-style')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-bottom-style')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-bottom-width/index.html b/files/fr/web/css/border-bottom-width/index.html
deleted file mode 100644
index 62e85b5adb..0000000000
--- a/files/fr/web/css/border-bottom-width/index.html
+++ /dev/null
@@ -1,139 +0,0 @@
----
-title: border-bottom-width
-slug: Web/CSS/border-bottom-width
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-bottom-width
----
-
+
+
+
+ border-bottom-width définit l'épaisseur de la bordure pour le côté bas d'un élément.Syntaxe
-
-/* Une valeur de longueur */
-/* Type <length> */
-border-bottom-width: 10em;
-border-bottom-width: 3vmax;
-border-bottom-width: 6px;
-
-/* Valeurs avec un mot-clé */
-border-bottom-width: thin;
-border-bottom-width: medium;
-border-bottom-width: thick;
-
-/* Valeurs globales */
-border-bottom-width: inherit;
-border-bottom-width: initial;
-border-bottom-width: unset;
-
-
-Valeurs
-
-
-
-
-<line-width>
-
- La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.element1{
- border-bottom: thick solid red;
-}
-.element2{
- border-bottom: medium solid orange;
-}
-.element3{
- border-bottom: thin solid green;
-}
-
-
-HTML
-
-<p class="element1">
- Une bordure épaisse rouge.
-</p>
-
-<p class="element2">
- Une bordure moyenne orange.
-</p>
-
-<p class="element3">
- Et une bordure fine verte.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-bottom-width')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative.
-
-
- {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-bottom-width')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
-
-
-
-{{SpecName('CSS1', '#border-left-width', 'border-bottom-width')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-bottom-width/index.md b/files/fr/web/css/border-bottom-width/index.md
new file mode 100644
index 0000000000..62e85b5adb
--- /dev/null
+++ b/files/fr/web/css/border-bottom-width/index.md
@@ -0,0 +1,139 @@
+---
+title: border-bottom-width
+slug: Web/CSS/border-bottom-width
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-bottom-width
+---
+
-
-
-
- border-bottom-width définit l'épaisseur de la bordure pour le côté bas d'un élément.Syntaxe
+
+/* Une valeur de longueur */
+/* Type <length> */
+border-bottom-width: 10em;
+border-bottom-width: 3vmax;
+border-bottom-width: 6px;
+
+/* Valeurs avec un mot-clé */
+border-bottom-width: thin;
+border-bottom-width: medium;
+border-bottom-width: thick;
+
+/* Valeurs globales */
+border-bottom-width: inherit;
+border-bottom-width: initial;
+border-bottom-width: unset;
+
+
+Valeurs
+
+
+
+
+<line-width>
+
+ La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.element1{
+ border-bottom: thick solid red;
+}
+.element2{
+ border-bottom: medium solid orange;
+}
+.element3{
+ border-bottom: thin solid green;
+}
+
+
+HTML
+
+<p class="element1">
+ Une bordure épaisse rouge.
+</p>
+
+<p class="element2">
+ Une bordure moyenne orange.
+</p>
+
+<p class="element3">
+ Et une bordure fine verte.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-bottom-width')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative.
+
+
+ {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-bottom-width')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+
+
+
+{{SpecName('CSS1', '#border-left-width', 'border-bottom-width')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-bottom/index.html b/files/fr/web/css/border-bottom/index.html
deleted file mode 100644
index 40903908a8..0000000000
--- a/files/fr/web/css/border-bottom/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: border-bottom
-slug: Web/CSS/border-bottom
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-bottom
----
-
+
+
+
+ border-bottom est une propriété raccourcie qui définit la bordure du côté bas d'un élément.
-
-
-border-bottom définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi : border-bottom-style: dotted;
- border-bottom: thick green;
-
-
- border-bottom-style: dotted;
- border-bottom: none thick green;
-
-
-border-bottom est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
-
-border-bottom: 1px;
-border-bottom: 2px dotted;
-border-bottom: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<br-width> <br-style> <color> Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.exemple {
- border-bottom: 3px dotted orange;
-}
-
-HTML
-
-<p class="exemple">
- En passant elle prit sur un rayon un pot
- de confiture portant cette étiquette,
- « MARMELADE D’ORANGES. »
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-bottom', 'border-bottom')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-bottom-color")}} s'applique.
-
-
- {{SpecName('CSS2.1', 'box.html#propdef-border-bottom', 'border-bottom')}}
- {{Spec2('CSS2.1')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS1', '#border-bottom', 'border-bottom')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-border-bottom est une propriété raccourcie qui définit la bordure du côté bas d'un élément.
+
+
+border-bottom définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi : border-bottom-style: dotted;
+ border-bottom: thick green;
+
+
+ border-bottom-style: dotted;
+ border-bottom: none thick green;
+
+
+border-bottom est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
+
+border-bottom: 1px;
+border-bottom: 2px dotted;
+border-bottom: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<br-width> <br-style> <color> Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.exemple {
+ border-bottom: 3px dotted orange;
+}
+
+HTML
+
+<p class="exemple">
+ En passant elle prit sur un rayon un pot
+ de confiture portant cette étiquette,
+ « MARMELADE D’ORANGES. »
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-bottom', 'border-bottom')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-bottom-color")}} s'applique.
+
+
+ {{SpecName('CSS2.1', 'box.html#propdef-border-bottom', 'border-bottom')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS1', '#border-bottom', 'border-bottom')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+border-collapse détermine si les bordures d'un tableau sont séparées ou fusionnées. Quand elles sont séparées, chaque cellule du tableau a ses propres bordures, distinctes. Quand elles sont fusionnées, les bordures des cellules sont partagées.inset et outset de {{cssxref("border-style")}} se comportent respectivement comme groove et ridge.Syntaxe
-
-/* Valeurs avec un mot-clé */
-border-collapse: collapse;
-border-collapse: separate;
-
-/* Valeurs globales */
-border-collapse: inherit;
-border-collapse: initial;
-border-collapse: unset;
-
-
-border-collapse est définie avec un seul mot-clé parmi ceux définis ci-après.Valeurs
-
-
-
-
-collapseseparateSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.collapse {
- border-collapse: collapse;
-}
-.separate {
- border-collapse: separate;
-}
-table {
- display: inline-table;
- margin: 1em;
- border: dashed 6px;
- border-width: 6px;
-}
-table th, table td {
- border: solid 3px;
-}
-.fx { border-color: orange blue; }
-.gk { border-color: black red; }
-.ie { border-color: blue gold; }
-.tr { border-color: aqua; }
-.sa { border-color: silver blue; }
-.wk { border-color: gold blue; }
-.ch { border-color: red yellow green blue; }
-.bk { border-color: navy blue teal aqua; }
-.op { border-color: red; }
-
-HTML
-
-<table class="separate">
- <caption><code>border-collapse: separate</code></caption>
- <tbody>
- <tr><th>Navigateur</th> <th>Moteur de rendu</th>
- </tr>
- <tr><td class="fx">Firefox</td> <td class="gk">Gecko</td>
- </tr>
- <tr><td class="ie">Internet Explorer</td> <td class="tr">Trident</td>
- </tr>
- <tr><td class="sa">Safari</td> <td class="wk">Webkit</td>
- </tr>
- <tr><td class="ch">Chrome</td> <td class="bk">Blink</td>
- </tr>
- <tr><td class="op">Opera</td> <td class="bk">Blink</td>
- </tr>
- </tbody>
-</table>
-<table class="collapse">
- <caption><code>border-collapse: collapse</code></caption>
- <tbody>
- <tr><th>Navigateur</th> <th>Moteur de rendu</th>
- </tr>
- <tr><td class="fx">Firefox</td> <td class="gk">Gecko</td>
- </tr>
- <tr><td class="ie">Internet Explorer</td> <td class="tr">Trident</td>
- </tr>
- <tr><td class="sa">Safari</td> <td class="wk">Webkit</td>
- </tr>
- <tr><td class="ch">Chrome</td> <td class="bk">Blink</td>
- </tr>
- <tr><td class="op">Opera</td> <td class="bk">Blink</td>
- </tr>
- </tbody>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS2.1', 'tables.html#borders', 'border-collapse')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-collapse/index.md b/files/fr/web/css/border-collapse/index.md
new file mode 100644
index 0000000000..1751aa7ddf
--- /dev/null
+++ b/files/fr/web/css/border-collapse/index.md
@@ -0,0 +1,148 @@
+---
+title: border-collapse
+slug: Web/CSS/border-collapse
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-collapse
+---
+border-collapse.border-collapse détermine si les bordures d'un tableau sont séparées ou fusionnées. Quand elles sont séparées, chaque cellule du tableau a ses propres bordures, distinctes. Quand elles sont fusionnées, les bordures des cellules sont partagées.inset et outset de {{cssxref("border-style")}} se comportent respectivement comme groove et ridge.Syntaxe
+
+/* Valeurs avec un mot-clé */
+border-collapse: collapse;
+border-collapse: separate;
+
+/* Valeurs globales */
+border-collapse: inherit;
+border-collapse: initial;
+border-collapse: unset;
+
+
+border-collapse est définie avec un seul mot-clé parmi ceux définis ci-après.Valeurs
+
+
+
+
+collapseseparateSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.collapse {
+ border-collapse: collapse;
+}
+.separate {
+ border-collapse: separate;
+}
+table {
+ display: inline-table;
+ margin: 1em;
+ border: dashed 6px;
+ border-width: 6px;
+}
+table th, table td {
+ border: solid 3px;
+}
+.fx { border-color: orange blue; }
+.gk { border-color: black red; }
+.ie { border-color: blue gold; }
+.tr { border-color: aqua; }
+.sa { border-color: silver blue; }
+.wk { border-color: gold blue; }
+.ch { border-color: red yellow green blue; }
+.bk { border-color: navy blue teal aqua; }
+.op { border-color: red; }
+
+HTML
+
+<table class="separate">
+ <caption><code>border-collapse: separate</code></caption>
+ <tbody>
+ <tr><th>Navigateur</th> <th>Moteur de rendu</th>
+ </tr>
+ <tr><td class="fx">Firefox</td> <td class="gk">Gecko</td>
+ </tr>
+ <tr><td class="ie">Internet Explorer</td> <td class="tr">Trident</td>
+ </tr>
+ <tr><td class="sa">Safari</td> <td class="wk">Webkit</td>
+ </tr>
+ <tr><td class="ch">Chrome</td> <td class="bk">Blink</td>
+ </tr>
+ <tr><td class="op">Opera</td> <td class="bk">Blink</td>
+ </tr>
+ </tbody>
+</table>
+<table class="collapse">
+ <caption><code>border-collapse: collapse</code></caption>
+ <tbody>
+ <tr><th>Navigateur</th> <th>Moteur de rendu</th>
+ </tr>
+ <tr><td class="fx">Firefox</td> <td class="gk">Gecko</td>
+ </tr>
+ <tr><td class="ie">Internet Explorer</td> <td class="tr">Trident</td>
+ </tr>
+ <tr><td class="sa">Safari</td> <td class="wk">Webkit</td>
+ </tr>
+ <tr><td class="ch">Chrome</td> <td class="bk">Blink</td>
+ </tr>
+ <tr><td class="op">Opera</td> <td class="bk">Blink</td>
+ </tr>
+ </tbody>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS2.1', 'tables.html#borders', 'border-collapse')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-color/index.html b/files/fr/web/css/border-color/index.html
deleted file mode 100644
index 34c8a624c4..0000000000
--- a/files/fr/web/css/border-color/index.html
+++ /dev/null
@@ -1,194 +0,0 @@
----
-title: border-color
-slug: Web/CSS/border-color
-tags:
- - CSS
- - Propriété
- - Propriété raccourcie
- - Reference
-translation_of: Web/CSS/border-color
----
-border-collapse.border-color est une propriété raccourcie qui permet de définir la couleur de la bordure sur les quatre côtés de la boîte de bordure d'un élément.Syntaxe
-
-/* border-color : Une valeur */
-/* Une valeur pour les quatre côtés */
-border-color: red;
-
-/* border-color : Deux valeurs */
-/* Première valeur : côtés horizontaux */
-/* Seconde valeur : côtés verticaux */
-border-color: red #f015ca;
-
-/* border-color : Trois valeurs */
-/* Première valeur : côté haut */
-/* Deuxième valeur : côtés verticaux */
-/* Troisième valeur : côté bas */
-border-color: red yellow green;
-
-/* border-color : Quatre valeurs */
-/* Première valeur : côté haut */
-/* Deuxième valeur : côté droit */
-/* Troisième valeur : côté bas */
-/* Quatrième valeur : côté gauche */
-border-color: red yellow green blue;
-
-/* Valeurs globales */
-border-color: inherit;
-
-
-Valeurs
-
-
-
-
-<color>inheritSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-#unevaleur {
- border-color: red;
-}
-
-#horzvert {
- border-color: gold red;
-}
-
-#hauthoribas {
- border-color: red cyan gold;
-}
-
-#hdbg {
- border-color: red cyan black gold;
-}
-
-/* Set width and style for all divs */
-div {
- border: solid 0.3em;
- width: auto;
- margin: 0.5em;
- padding: 0.5em;
-}
-
-ul {
- margin: 0;
- list-style: none;
-}
-
-HTML
-
-<div id="unevaleur">
- <p><code>border-color: red;</code> équivalent à</p>
- <ul><li><code>border-top-color: red;</code></li>
- <li><code>border-right-color: red;</code></li>
- <li><code>border-bottom-color: red;</code></li>
- <li><code>border-left-color: red;</code></li>
- </ul>
-</div>
-<div id="horzvert">
- <p><code>border-color: gold red;</code> équivalent à</p>
- <ul><li><code>border-top-color: gold;</code></li>
- <li><code>border-right-color: red;</code></li>
- <li><code>border-bottom-color: gold;</code></li>
- <li><code>border-left-color: red;</code></li>
- </ul>
-</div>
-<div id="hauthoribas">
- <p><code>border-color: red cyan gold;</code> équivalent à</p>
- <ul><li><code>border-top-color: red;</code></li>
- <li><code>border-right-color: cyan;</code></li>
- <li><code>border-bottom-color: gold;</code></li>
- <li><code>border-left-color: cyan;</code></li>
- </ul>
-</div>
-<div id="hdbg">
- <p><code>border-color: red cyan black gold;</code> équivalent à</p>
- <ul><li><code>border-top-color: red;</code></li>
- <li><code>border-right-color: cyan;</code></li>
- <li><code>border-bottom-color: black;</code></li>
- <li><code>border-left-color: gold;</code></li>
- </ul>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName("CSS Logical Properties", "#logical-shorthand-keyword")}}
- {{Spec2("CSS Logical Properties")}}
- Ajout du mot-clé
- logical.
-
- {{SpecName("CSS3 Backgrounds", "#border-color", "border-color")}}
- {{Spec2('CSS3 Backgrounds')}}
- Le mot-clé
- transparent a été retiré pour être ajouté au type {{cssxref("<color>")}}.
-
- {{SpecName("CSS2.1", "box.html#border-color-properties", "border-color")}}
- {{Spec2('CSS2.1')}}
- Cette propriété est désormais une propriété raccourcie.
-
-
-
-{{SpecName("CSS1", "#border-color", "border-color")}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-color/index.md b/files/fr/web/css/border-color/index.md
new file mode 100644
index 0000000000..34c8a624c4
--- /dev/null
+++ b/files/fr/web/css/border-color/index.md
@@ -0,0 +1,194 @@
+---
+title: border-color
+slug: Web/CSS/border-color
+tags:
+ - CSS
+ - Propriété
+ - Propriété raccourcie
+ - Reference
+translation_of: Web/CSS/border-color
+---
+
-
-
-
- border-color est une propriété raccourcie qui permet de définir la couleur de la bordure sur les quatre côtés de la boîte de bordure d'un élément.Syntaxe
+
+/* border-color : Une valeur */
+/* Une valeur pour les quatre côtés */
+border-color: red;
+
+/* border-color : Deux valeurs */
+/* Première valeur : côtés horizontaux */
+/* Seconde valeur : côtés verticaux */
+border-color: red #f015ca;
+
+/* border-color : Trois valeurs */
+/* Première valeur : côté haut */
+/* Deuxième valeur : côtés verticaux */
+/* Troisième valeur : côté bas */
+border-color: red yellow green;
+
+/* border-color : Quatre valeurs */
+/* Première valeur : côté haut */
+/* Deuxième valeur : côté droit */
+/* Troisième valeur : côté bas */
+/* Quatrième valeur : côté gauche */
+border-color: red yellow green blue;
+
+/* Valeurs globales */
+border-color: inherit;
+
+
+Valeurs
+
+
+
+
+<color>inheritSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+#unevaleur {
+ border-color: red;
+}
+
+#horzvert {
+ border-color: gold red;
+}
+
+#hauthoribas {
+ border-color: red cyan gold;
+}
+
+#hdbg {
+ border-color: red cyan black gold;
+}
+
+/* Set width and style for all divs */
+div {
+ border: solid 0.3em;
+ width: auto;
+ margin: 0.5em;
+ padding: 0.5em;
+}
+
+ul {
+ margin: 0;
+ list-style: none;
+}
+
+HTML
+
+<div id="unevaleur">
+ <p><code>border-color: red;</code> équivalent à</p>
+ <ul><li><code>border-top-color: red;</code></li>
+ <li><code>border-right-color: red;</code></li>
+ <li><code>border-bottom-color: red;</code></li>
+ <li><code>border-left-color: red;</code></li>
+ </ul>
+</div>
+<div id="horzvert">
+ <p><code>border-color: gold red;</code> équivalent à</p>
+ <ul><li><code>border-top-color: gold;</code></li>
+ <li><code>border-right-color: red;</code></li>
+ <li><code>border-bottom-color: gold;</code></li>
+ <li><code>border-left-color: red;</code></li>
+ </ul>
+</div>
+<div id="hauthoribas">
+ <p><code>border-color: red cyan gold;</code> équivalent à</p>
+ <ul><li><code>border-top-color: red;</code></li>
+ <li><code>border-right-color: cyan;</code></li>
+ <li><code>border-bottom-color: gold;</code></li>
+ <li><code>border-left-color: cyan;</code></li>
+ </ul>
+</div>
+<div id="hdbg">
+ <p><code>border-color: red cyan black gold;</code> équivalent à</p>
+ <ul><li><code>border-top-color: red;</code></li>
+ <li><code>border-right-color: cyan;</code></li>
+ <li><code>border-bottom-color: black;</code></li>
+ <li><code>border-left-color: gold;</code></li>
+ </ul>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName("CSS Logical Properties", "#logical-shorthand-keyword")}}
+ {{Spec2("CSS Logical Properties")}}
+ Ajout du mot-clé
+ logical.
+
+ {{SpecName("CSS3 Backgrounds", "#border-color", "border-color")}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Le mot-clé
+ transparent a été retiré pour être ajouté au type {{cssxref("<color>")}}.
+
+ {{SpecName("CSS2.1", "box.html#border-color-properties", "border-color")}}
+ {{Spec2('CSS2.1')}}
+ Cette propriété est désormais une propriété raccourcie.
+
+
+
+{{SpecName("CSS1", "#border-color", "border-color")}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-end-end-radius/index.html b/files/fr/web/css/border-end-end-radius/index.html
deleted file mode 100644
index 6a36727480..0000000000
--- a/files/fr/web/css/border-end-end-radius/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: border-end-end-radius
-slug: Web/CSS/border-end-end-radius
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-end-end-radius
----
-
+
+
+
+ border-end-end-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
-/* Type <length> */
-/* Avec une valeur, le coin sera circulaire */
-border-end-end-radius: 10px;
-border-end-end-radius: 1em;
-
-/* Avec deux valeurs, le coin sera une ellipse */
-border-end-end-radius: 1em 2em;
-
-/* Valeurs globales */
-border-end-end-radius: inherit;
-border-end-end-radius: initial;
-border-end-end-radius: unset;
-
-
-horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-bottom-right-radius")}}.Syntaxe
-
-Valeurs
-
-
-
-
-<length-percentage>Syntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: rebeccapurple;
- width: 120px;
- height: 120px;
- border-end-end-radius: 10px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- padding: 10px;
- background-color: #fff;
- border-end-end-radius: 10px;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-end-end-radius", "border-end-end-radius")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-end-end-radius/index.md b/files/fr/web/css/border-end-end-radius/index.md
new file mode 100644
index 0000000000..6a36727480
--- /dev/null
+++ b/files/fr/web/css/border-end-end-radius/index.md
@@ -0,0 +1,105 @@
+---
+title: border-end-end-radius
+slug: Web/CSS/border-end-end-radius
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-end-end-radius
+---
+border-end-end-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
+/* Type <length> */
+/* Avec une valeur, le coin sera circulaire */
+border-end-end-radius: 10px;
+border-end-end-radius: 1em;
+
+/* Avec deux valeurs, le coin sera une ellipse */
+border-end-end-radius: 1em 2em;
+
+/* Valeurs globales */
+border-end-end-radius: inherit;
+border-end-end-radius: initial;
+border-end-end-radius: unset;
+
+
+horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-bottom-right-radius")}}.Syntaxe
+
+Valeurs
+
+
+
+
+<length-percentage>Syntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: rebeccapurple;
+ width: 120px;
+ height: 120px;
+ border-end-end-radius: 10px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ padding: 10px;
+ background-color: #fff;
+ border-end-end-radius: 10px;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-end-end-radius", "border-end-end-radius")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-end-start-radius/index.html b/files/fr/web/css/border-end-start-radius/index.html
deleted file mode 100644
index 23164848c4..0000000000
--- a/files/fr/web/css/border-end-start-radius/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: border-end-start-radius
-slug: Web/CSS/border-end-start-radius
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-end-start-radius
----
-border-end-start-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
-/* Type <length> */
-/* Avec une valeur, le coin sera circulaire */
-border-end-start-radius: 10px;
-border-end-start-radius: 1em;
-
-/* Avec deux valeurs, le coin sera une ellipse */
-border-end-start-radius: 1em 2em;
-
-/* Valeurs globales */
-border-end-start-radius: inherit;
-border-end-start-radius: initial;
-border-end-start-radius: unset;
-
-
-horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-top-right-radius")}}.Syntaxe
-
-Valeurs
-
-
-
-
-<length-percentage>Syntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: rebeccapurple;
- width: 120px;
- height: 120px;
- border-end-start-radius: 10px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- padding: 10px;
- background-color: #fff;
- border-end-start-radius: 10px;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-end-start-radius", "border-end-start-radius")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-end-start-radius/index.md b/files/fr/web/css/border-end-start-radius/index.md
new file mode 100644
index 0000000000..23164848c4
--- /dev/null
+++ b/files/fr/web/css/border-end-start-radius/index.md
@@ -0,0 +1,105 @@
+---
+title: border-end-start-radius
+slug: Web/CSS/border-end-start-radius
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-end-start-radius
+---
+border-end-start-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
+/* Type <length> */
+/* Avec une valeur, le coin sera circulaire */
+border-end-start-radius: 10px;
+border-end-start-radius: 1em;
+
+/* Avec deux valeurs, le coin sera une ellipse */
+border-end-start-radius: 1em 2em;
+
+/* Valeurs globales */
+border-end-start-radius: inherit;
+border-end-start-radius: initial;
+border-end-start-radius: unset;
+
+
+horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-top-right-radius")}}.Syntaxe
+
+Valeurs
+
+
+
+
+<length-percentage>Syntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: rebeccapurple;
+ width: 120px;
+ height: 120px;
+ border-end-start-radius: 10px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ padding: 10px;
+ background-color: #fff;
+ border-end-start-radius: 10px;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-end-start-radius", "border-end-start-radius")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-image-outset/index.html b/files/fr/web/css/border-image-outset/index.html
deleted file mode 100644
index 72861fff31..0000000000
--- a/files/fr/web/css/border-image-outset/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: border-image-outset
-slug: Web/CSS/border-image-outset
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-image-outset
----
-border-image-outset définit la distance avec laquelle la bordure est déplacée par rapport à la boîte de bordure.Syntaxe
-
-/* border-image-outset : */
-/* Une même valeur pour les quatre côtés */
-border-image-outset: 1.5;
-
-/* border-image-outset : */
-/* Première valeur : côtés verticaux */
-/* Seconde valeur : côtés horizontaux */
-border-image-outset: 1 1.2;
-
-/* border-image-outset : */
-/* Première valeur : côté haut */
-/* Deuxième valeur : côtés horizontaux */
-/* Troisième valeur : côté bas */
-border-image-outset: 30px 2 45px;
-
-/* border-image-outset : */
-/* Première valeur : côté haut */
-/* Deuxième valeur : côté droit */
-/* Troisième valeur : côté bas */
-/* Quatrième valeur : côté gauche */
-border-image-outset: 7px 12px 14px 5px;
-
-/* Valeurs globales */
-border-image-outset: inherit;
-border-image-outset: initial;
-border-image-outset: unset;
-
-
-Valeurs
-
-
-
-
-<length><number>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- border-image-source: url("https://mdn.mozillademos.org/files/10470/border.png");
- border-image-slice: 30;
- border-image-width: 20px;
- border-image-repeat: round;
- border-image-outset: 10px;
- padding: 40px;
-}
-
-HTML
-
-<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
- eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
- At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
- no sea takimata sanctus est Lorem ipsum dolor sit amet.
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-image-outset', 'border-image-outset')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-border-image-outset définit la distance avec laquelle la bordure est déplacée par rapport à la boîte de bordure.Syntaxe
+
+/* border-image-outset : */
+/* Une même valeur pour les quatre côtés */
+border-image-outset: 1.5;
+
+/* border-image-outset : */
+/* Première valeur : côtés verticaux */
+/* Seconde valeur : côtés horizontaux */
+border-image-outset: 1 1.2;
+
+/* border-image-outset : */
+/* Première valeur : côté haut */
+/* Deuxième valeur : côtés horizontaux */
+/* Troisième valeur : côté bas */
+border-image-outset: 30px 2 45px;
+
+/* border-image-outset : */
+/* Première valeur : côté haut */
+/* Deuxième valeur : côté droit */
+/* Troisième valeur : côté bas */
+/* Quatrième valeur : côté gauche */
+border-image-outset: 7px 12px 14px 5px;
+
+/* Valeurs globales */
+border-image-outset: inherit;
+border-image-outset: initial;
+border-image-outset: unset;
+
+
+Valeurs
+
+
+
+
+<length><number>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ border-image-source: url("https://mdn.mozillademos.org/files/10470/border.png");
+ border-image-slice: 30;
+ border-image-width: 20px;
+ border-image-repeat: round;
+ border-image-outset: 10px;
+ padding: 40px;
+}
+
+HTML
+
+<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+ At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+ no sea takimata sanctus est Lorem ipsum dolor sit amet.
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-image-outset', 'border-image-outset')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+border-image-repeat définit la façon dont les zones de l'image de bordure sont utilisée pour s'étendre sur chacun des côtés de la bordure. Cette propriété est multi-valuée : une valeur indiquera le comportement pour tous les côtés et deux valeurs indiqueront respectivement le comportement pour les côtés horizontaux et verticaux.Syntaxe
-
-/* border-image-repeat */
-/* Une valeur : s'applique à tous les côtés */
-border-image-repeat: stretch;
-
-/* border-image-repeat
-/* Première valeur : côtés horizontaux */
-/* Deuxième valeur : côtés verticaux */
-border-image-repeat: round stretch;
-
-/* Valeurs globales */
-border-image-repeat: inherit;
-border-image-repeat: initial;
-border-image-repeat: unset;
-
-
-Valeurs
-
-
-
-
-stretchrepeatroundspaceSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- border-image-source: url("https://mdn.mozillademos.org/files/10470/border.png");
- border-image-slice: 30;
- border-image-width: 20px;
- border-image-repeat: round;
- padding: 40px;
-}
-
-HTML
-
-<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
- eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
- At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
- no sea takimata sanctus est Lorem ipsum dolor sit amet.
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-image-repeat', 'border-image-repeat')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/border-image-repeat/index.md b/files/fr/web/css/border-image-repeat/index.md
new file mode 100644
index 0000000000..73277c07d4
--- /dev/null
+++ b/files/fr/web/css/border-image-repeat/index.md
@@ -0,0 +1,104 @@
+---
+title: border-image-repeat
+slug: Web/CSS/border-image-repeat
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-image-repeat
+---
+border-image-repeat définit la façon dont les zones de l'image de bordure sont utilisée pour s'étendre sur chacun des côtés de la bordure. Cette propriété est multi-valuée : une valeur indiquera le comportement pour tous les côtés et deux valeurs indiqueront respectivement le comportement pour les côtés horizontaux et verticaux.Syntaxe
+
+/* border-image-repeat */
+/* Une valeur : s'applique à tous les côtés */
+border-image-repeat: stretch;
+
+/* border-image-repeat
+/* Première valeur : côtés horizontaux */
+/* Deuxième valeur : côtés verticaux */
+border-image-repeat: round stretch;
+
+/* Valeurs globales */
+border-image-repeat: inherit;
+border-image-repeat: initial;
+border-image-repeat: unset;
+
+
+Valeurs
+
+
+
+
+stretchrepeatroundspaceSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ border-image-source: url("https://mdn.mozillademos.org/files/10470/border.png");
+ border-image-slice: 30;
+ border-image-width: 20px;
+ border-image-repeat: round;
+ padding: 40px;
+}
+
+HTML
+
+<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+ At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+ no sea takimata sanctus est Lorem ipsum dolor sit amet.
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-image-repeat', 'border-image-repeat')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/border-image-slice/index.html b/files/fr/web/css/border-image-slice/index.html
deleted file mode 100644
index ab1572f57c..0000000000
--- a/files/fr/web/css/border-image-slice/index.html
+++ /dev/null
@@ -1,128 +0,0 @@
----
-title: border-image-slice
-slug: Web/CSS/border-image-slice
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-image-slice
----
-border-image-slice permet de découper l'image fournie via la propriété {{cssxref("border-image-source")}} en 9 régions : quatre pour les coins, quatre pour les côtés et une pour le milieu. Ces régions sont définies à l'aide de quatre valeurs mesurées depuis les bords vers l'intérieur de l'image.
fill. Ce mot-clé peut être utilisé à n'importe quelle position dans la déclaration (avant, après ou entre les autres valeurs).Syntaxe
-
-/* border-image-slice : */
-/* Une valeur qui s'applique aux quatre côtés */
-border-image-slice: 30%;
-
-/* border-image-slice : */
-/* Première valeur : côtés verticaux */
-/* Deuxième valeur : côtés horizontaux */
-border-image-slice: 10% 30%;
-
-/* border-image-slice : */
-/* Première valeur : côté haut */
-/* Deuxième valeur : côtés horizontaux */
-/* Troisième valeur : côté bas */
-border-image-slice: 30 30% 45;
-
-/* border-image-slice : */
-/* Première valeur : côté haut */
-/* Deuxième valeur : côté droit */
-/* Troisième valeur : côté bas */
-/* Quatrième valeur : côté gauche */
-border-image-slice: 7 12 14 5;
-
-/* border-image-slice: … fill */
-/* Le mot-clé fill peut être intercalé */
-/* à n'importe quel endroit */
-border-image-slice: 10% fill 7 12;
-
-/* Valeurs globales */
-border-image-slice: inherit;
-border-image-slice: initial;
-border-image-slice: unset;
-
-
-Valeurs
-
-
-
-
-slice100%. Il est préférable d'utiliser des pourcentages pour les images vectorielles.fillSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- border-image-source: url("https://mdn.mozillademos.org/files/10470/border.png");
- border-image-slice: 30;
- border-image-width: 20px;
- border-image-repeat: round;
- padding: 40px;
-}
-
-HTML
-
-<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
- eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
- At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
- no sea takimata sanctus est Lorem ipsum dolor sit amet.
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-image-slice', 'border-image-slice')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
diff --git a/files/fr/web/css/border-image-slice/index.md b/files/fr/web/css/border-image-slice/index.md
new file mode 100644
index 0000000000..ab1572f57c
--- /dev/null
+++ b/files/fr/web/css/border-image-slice/index.md
@@ -0,0 +1,128 @@
+---
+title: border-image-slice
+slug: Web/CSS/border-image-slice
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-image-slice
+---
+border-image-slice permet de découper l'image fournie via la propriété {{cssxref("border-image-source")}} en 9 régions : quatre pour les coins, quatre pour les côtés et une pour le milieu. Ces régions sont définies à l'aide de quatre valeurs mesurées depuis les bords vers l'intérieur de l'image.
fill. Ce mot-clé peut être utilisé à n'importe quelle position dans la déclaration (avant, après ou entre les autres valeurs).Syntaxe
+
+/* border-image-slice : */
+/* Une valeur qui s'applique aux quatre côtés */
+border-image-slice: 30%;
+
+/* border-image-slice : */
+/* Première valeur : côtés verticaux */
+/* Deuxième valeur : côtés horizontaux */
+border-image-slice: 10% 30%;
+
+/* border-image-slice : */
+/* Première valeur : côté haut */
+/* Deuxième valeur : côtés horizontaux */
+/* Troisième valeur : côté bas */
+border-image-slice: 30 30% 45;
+
+/* border-image-slice : */
+/* Première valeur : côté haut */
+/* Deuxième valeur : côté droit */
+/* Troisième valeur : côté bas */
+/* Quatrième valeur : côté gauche */
+border-image-slice: 7 12 14 5;
+
+/* border-image-slice: … fill */
+/* Le mot-clé fill peut être intercalé */
+/* à n'importe quel endroit */
+border-image-slice: 10% fill 7 12;
+
+/* Valeurs globales */
+border-image-slice: inherit;
+border-image-slice: initial;
+border-image-slice: unset;
+
+
+Valeurs
+
+
+
+
+slice100%. Il est préférable d'utiliser des pourcentages pour les images vectorielles.fillSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ border-image-source: url("https://mdn.mozillademos.org/files/10470/border.png");
+ border-image-slice: 30;
+ border-image-width: 20px;
+ border-image-repeat: round;
+ padding: 40px;
+}
+
+HTML
+
+<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+ At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+ no sea takimata sanctus est Lorem ipsum dolor sit amet.
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-image-slice', 'border-image-slice')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
diff --git a/files/fr/web/css/border-image-source/index.html b/files/fr/web/css/border-image-source/index.html
deleted file mode 100644
index f030f45974..0000000000
--- a/files/fr/web/css/border-image-source/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: border-image-source
-slug: Web/CSS/border-image-source
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-image-source
----
-border-image-source définit l'image (type {{cssxref("<image>")}}) qu'on souhaite utiliser pour mettre en forme la bordure. Si la valeur de cette propriété vaut none, ce sera la mise en forme définie par la propriété {{cssxref("border-style")}} qui sera utilisée.Syntaxe
-
-/* Valeur avec un mot-clé */
-/* Ici, pas de border-image, */
-/* on utilise border-style */
-border-image-source: none;
-
-/* Valeur de type <image> */
-border-image-source: url(image.jpg);
-border-image-source: linear-gradient(to top, red, yellow);
-
-/* Valeurs globales */
-border-image-source: inherit;
-border-image-source: initial;
-border-image-source: unset;
-
-
-Valeurs
-
-
-
-
-none<image>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-image-source', 'border-image-source')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-image-source/index.md b/files/fr/web/css/border-image-source/index.md
new file mode 100644
index 0000000000..f030f45974
--- /dev/null
+++ b/files/fr/web/css/border-image-source/index.md
@@ -0,0 +1,85 @@
+---
+title: border-image-source
+slug: Web/CSS/border-image-source
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-image-source
+---
+border-image-source définit l'image (type {{cssxref("<image>")}}) qu'on souhaite utiliser pour mettre en forme la bordure. Si la valeur de cette propriété vaut none, ce sera la mise en forme définie par la propriété {{cssxref("border-style")}} qui sera utilisée.Syntaxe
+
+/* Valeur avec un mot-clé */
+/* Ici, pas de border-image, */
+/* on utilise border-style */
+border-image-source: none;
+
+/* Valeur de type <image> */
+border-image-source: url(image.jpg);
+border-image-source: linear-gradient(to top, red, yellow);
+
+/* Valeurs globales */
+border-image-source: inherit;
+border-image-source: initial;
+border-image-source: unset;
+
+
+Valeurs
+
+
+
+
+none<image>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-image-source', 'border-image-source')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-image-width/index.html b/files/fr/web/css/border-image-width/index.html
deleted file mode 100644
index f334914cde..0000000000
--- a/files/fr/web/css/border-image-width/index.html
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: border-image-width
-slug: Web/CSS/border-image-width
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-image-width
----
-border-image-width définit la largeur de la bordure imagée.border-image-width est supérieur à {{cssxref("border-width")}}, la bordure imagée s'étendra au-delà du padding voire du contenu.Syntaxe
-
-/* Valeur avec un mot-clé */
-border-image-width: auto;
-
-/* Longueur */
-/* Type <length> */
-border-image-width: 1rem;
-
-/* Valeur proportionnelle */
-/* Type <percentage> */
-border-image-width: 25%;
-
-/* Valeur numérique */
-/* Type <number> */
-border-image-width: 3;
-
-/* épaisseur verticale | horizontale */
-border-image-width: 2em 3em;
-
-/* haut | côtés horizontaux | bas */
-border-image-width: 5% 15% 10%;
-
-/* haut | droit | bas | gauche */
-border-image-width: 5% 2em 10% auto;
-
-/* Valeurs globales */
-border-image-width: inherit;
-border-image-width: initial;
-border-image-width: unset;
-
-
-border-image-width est définie avec une, deux, trois ou quatre valeurs parmi celles de la liste qui suit.
-
-
-Valeurs
-
-
-
-
-<length-percentage>px) ou relative (ex. rem). Les pourcentages sont relatifs à la largeur de la boîte de bordure. Les valeurs négatives sont considérées invalides.<number>autoborder-width qui sera utilisée à la place.inheritSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-p {
- border: 20px solid;
- border-image: url("https://mdn.mozillademos.org/files/10470/border.png") 30 round;
- border-image-width: 16px;
- padding: 40px;
-}
-
-HTML
-
-<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
- eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
- At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
- no sea takimata sanctus est Lorem ipsum dolor sit amet.
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-image-width', 'border-image-width')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-border-image-width définit la largeur de la bordure imagée.border-image-width est supérieur à {{cssxref("border-width")}}, la bordure imagée s'étendra au-delà du padding voire du contenu.Syntaxe
+
+/* Valeur avec un mot-clé */
+border-image-width: auto;
+
+/* Longueur */
+/* Type <length> */
+border-image-width: 1rem;
+
+/* Valeur proportionnelle */
+/* Type <percentage> */
+border-image-width: 25%;
+
+/* Valeur numérique */
+/* Type <number> */
+border-image-width: 3;
+
+/* épaisseur verticale | horizontale */
+border-image-width: 2em 3em;
+
+/* haut | côtés horizontaux | bas */
+border-image-width: 5% 15% 10%;
+
+/* haut | droit | bas | gauche */
+border-image-width: 5% 2em 10% auto;
+
+/* Valeurs globales */
+border-image-width: inherit;
+border-image-width: initial;
+border-image-width: unset;
+
+
+border-image-width est définie avec une, deux, trois ou quatre valeurs parmi celles de la liste qui suit.
+
+
+Valeurs
+
+
+
+
+<length-percentage>px) ou relative (ex. rem). Les pourcentages sont relatifs à la largeur de la boîte de bordure. Les valeurs négatives sont considérées invalides.<number>autoborder-width qui sera utilisée à la place.inheritSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+p {
+ border: 20px solid;
+ border-image: url("https://mdn.mozillademos.org/files/10470/border.png") 30 round;
+ border-image-width: 16px;
+ padding: 40px;
+}
+
+HTML
+
+<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
+ At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
+ no sea takimata sanctus est Lorem ipsum dolor sit amet.
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-image-width', 'border-image-width')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+border-image dessine une image sur la bordure d'un élément. C'est une propriété raccourcie qui permet de définir {{cssxref("border-image-source")}}, {{cssxref("border-image-width")}}, {{cssxref("border-image-repeat")}}, {{cssxref("border-image-slice")}}, {{cssxref("border-image-outset")}}.border-image sera utilisée plutôt que le style défini via la propriété {{cssxref("border-style")}}. Selon la spécification, border-style doit être présente si border-image est utilisée.none (via border-image-source ou via la propriété raccourcie border-image), ce sera le style indiqué par {{cssxref("border-style")}} qui sera utilisé.Syntaxe
-
-/* source | slice */
-border-image: linear-gradient(red, blue) 27;
-
-/* source | slice | repeat */
-border-image: url("/images/border.png") 27 space;
-
-/* source | slice | width */
-border-image: linear-gradient(red, blue) 27 / 35px;
-
-/* source | slice | width | outset | repeat */
-border-image: url("/images/border.png") 27 23 / 50px 30px / 1rem round space;
-
-
-border-image peut être définie avec une à cinq valeurs parmi celles définies ci-après.none ou si l'image ne peut pas être affichée, c'est le {{cssxref("border-style")}} correspondant qui sera affiché.Valeurs
-
-
-
-
-border-image-sourceborder-image-sliceborder-image-widthborder-image-outsetborder-image-repeatSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-Utiliser une image matricielle étirée
-
-CSS
-
-#bitmap {
- border: 30px solid transparent;
- padding: 20px;
- border-image: url("https://mdn.mozillademos.org/files/4127/border.png") 30;
-}
-
-
-HTML
-
-<div id="bitmap">
- L'image est étirée pour remplir l'espace.
-</div>
-
-
-Résultat
-
-Utiliser un dégradé
-
-CSS
-
-#gradient {
- border: 30px solid;
- border-image: linear-gradient(red, yellow) 10;
- padding: 20px;
-}
-
-
-HTML
-
-<div id="gradient">
- L'image formée par le gradient est étirée pour remplir la zone.
-</div>
-
-
-Résultat
-
-Accessibilité
-
-
-
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-image', 'border-image')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-image/index.md b/files/fr/web/css/border-image/index.md
new file mode 100644
index 0000000000..d945857f9f
--- /dev/null
+++ b/files/fr/web/css/border-image/index.md
@@ -0,0 +1,162 @@
+---
+title: border-image
+slug: Web/CSS/border-image
+tags:
+ - CSS
+ - Propriété
+ - Propriété raccourcie
+ - Reference
+translation_of: Web/CSS/border-image
+---
+
-
- border-image dessine une image sur la bordure d'un élément. C'est une propriété raccourcie qui permet de définir {{cssxref("border-image-source")}}, {{cssxref("border-image-width")}}, {{cssxref("border-image-repeat")}}, {{cssxref("border-image-slice")}}, {{cssxref("border-image-outset")}}.border-image sera utilisée plutôt que le style défini via la propriété {{cssxref("border-style")}}. Selon la spécification, border-style doit être présente si border-image est utilisée.none (via border-image-source ou via la propriété raccourcie border-image), ce sera le style indiqué par {{cssxref("border-style")}} qui sera utilisé.Syntaxe
+
+/* source | slice */
+border-image: linear-gradient(red, blue) 27;
+
+/* source | slice | repeat */
+border-image: url("/images/border.png") 27 space;
+
+/* source | slice | width */
+border-image: linear-gradient(red, blue) 27 / 35px;
+
+/* source | slice | width | outset | repeat */
+border-image: url("/images/border.png") 27 23 / 50px 30px / 1rem round space;
+
+
+border-image peut être définie avec une à cinq valeurs parmi celles définies ci-après.none ou si l'image ne peut pas être affichée, c'est le {{cssxref("border-style")}} correspondant qui sera affiché.Valeurs
+
+
+
+
+border-image-sourceborder-image-sliceborder-image-widthborder-image-outsetborder-image-repeatSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+Utiliser une image matricielle étirée
+
+CSS
+
+#bitmap {
+ border: 30px solid transparent;
+ padding: 20px;
+ border-image: url("https://mdn.mozillademos.org/files/4127/border.png") 30;
+}
+
+
+HTML
+
+<div id="bitmap">
+ L'image est étirée pour remplir l'espace.
+</div>
+
+
+Résultat
+
+Utiliser un dégradé
+
+CSS
+
+#gradient {
+ border: 30px solid;
+ border-image: linear-gradient(red, yellow) 10;
+ padding: 20px;
+}
+
+
+HTML
+
+<div id="gradient">
+ L'image formée par le gradient est étirée pour remplir la zone.
+</div>
+
+
+Résultat
+
+Accessibilité
+
+
+
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-image', 'border-image')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-color/index.html b/files/fr/web/css/border-inline-color/index.html
deleted file mode 100644
index b8cd8d95e2..0000000000
--- a/files/fr/web/css/border-inline-color/index.html
+++ /dev/null
@@ -1,100 +0,0 @@
----
-title: border-inline-color
-slug: Web/CSS/border-inline-color
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-inline-color
----
-
+
+ border-inline-color définit la couleur de la bordure d'un élément sur les côtés de l'axe en ligne. Cette propriété correspondra à différentes propriétés physiques pour les couleurs de la bordure selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété logique peut correspondre à {{cssxref("border-top-color")}} et {{cssxref("border-bottom-color")}} ou à {{cssxref("border-right-color")}} et {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.border-inline-color: yellow;
-border-inline-color: #F5F6F7;
-
-
-Syntaxe
-
-Valeurs
-
-
-
-
-<'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- border: 10px solid blue;
- border-inline-color: red;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-color", "border-inline-color")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-color/index.md b/files/fr/web/css/border-inline-color/index.md
new file mode 100644
index 0000000000..b8cd8d95e2
--- /dev/null
+++ b/files/fr/web/css/border-inline-color/index.md
@@ -0,0 +1,100 @@
+---
+title: border-inline-color
+slug: Web/CSS/border-inline-color
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-inline-color
+---
+
-
- border-inline-color définit la couleur de la bordure d'un élément sur les côtés de l'axe en ligne. Cette propriété correspondra à différentes propriétés physiques pour les couleurs de la bordure selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété logique peut correspondre à {{cssxref("border-top-color")}} et {{cssxref("border-bottom-color")}} ou à {{cssxref("border-right-color")}} et {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.border-inline-color: yellow;
+border-inline-color: #F5F6F7;
+
+
+Syntaxe
+
+Valeurs
+
+
+
+
+<'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ border: 10px solid blue;
+ border-inline-color: red;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-color", "border-inline-color")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-end-color/index.html b/files/fr/web/css/border-inline-end-color/index.html
deleted file mode 100644
index bc4b34cade..0000000000
--- a/files/fr/web/css/border-inline-end-color/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: border-inline-end-color
-slug: Web/CSS/border-inline-end-color
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-inline-end-color
----
-
+
+ border-inline-end-color définit la couleur de la bordure pour le côté de la fin de l'élément orienté dans l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-border-inline-end-color: red;
-border-inline-end-color: #fffff;
-border-inline-end-color: rgb(200, 0, 0);
-
-border-inline-end-color: unset;
-border-inline-end-color: initial;
-border-inline-end-color: inherit;
-
-
-Valeurs
-
-
-
-
-<'border-color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 10px solid blue;
- border-inline-end-color: red;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-end-color", "border-inline-end-color")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-end-color/index.md b/files/fr/web/css/border-inline-end-color/index.md
new file mode 100644
index 0000000000..bc4b34cade
--- /dev/null
+++ b/files/fr/web/css/border-inline-end-color/index.md
@@ -0,0 +1,111 @@
+---
+title: border-inline-end-color
+slug: Web/CSS/border-inline-end-color
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-inline-end-color
+---
+
-
- border-inline-end-color définit la couleur de la bordure pour le côté de la fin de l'élément orienté dans l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+border-inline-end-color: red;
+border-inline-end-color: #fffff;
+border-inline-end-color: rgb(200, 0, 0);
+
+border-inline-end-color: unset;
+border-inline-end-color: initial;
+border-inline-end-color: inherit;
+
+
+Valeurs
+
+
+
+
+<'border-color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 10px solid blue;
+ border-inline-end-color: red;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-end-color", "border-inline-end-color")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-end-style/index.html b/files/fr/web/css/border-inline-end-style/index.html
deleted file mode 100644
index 7fa9597e99..0000000000
--- a/files/fr/web/css/border-inline-end-style/index.html
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: border-inline-end-style
-slug: Web/CSS/border-inline-end-style
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-inline-end-style
----
-
+
+ border-inline-end-style définit le style de la bordure utilisé pour le côté de la fin de l'élément dans l'axe de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-border-inline-end-style: dashed;
-border-inline-end-style: dotted;
-border-inline-end-style: groove;
-
-Valeurs
-
-
-
-
-<'border-style'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 5px solid blue;
- border-inline-end-style: dashed;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-end-style", "border-inline-end-style")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-end-style/index.md b/files/fr/web/css/border-inline-end-style/index.md
new file mode 100644
index 0000000000..7fa9597e99
--- /dev/null
+++ b/files/fr/web/css/border-inline-end-style/index.md
@@ -0,0 +1,106 @@
+---
+title: border-inline-end-style
+slug: Web/CSS/border-inline-end-style
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-inline-end-style
+---
+
-
- border-inline-end-style définit le style de la bordure utilisé pour le côté de la fin de l'élément dans l'axe de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+border-inline-end-style: dashed;
+border-inline-end-style: dotted;
+border-inline-end-style: groove;
+
+Valeurs
+
+
+
+
+<'border-style'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 5px solid blue;
+ border-inline-end-style: dashed;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-end-style", "border-inline-end-style")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-end-width/index.html b/files/fr/web/css/border-inline-end-width/index.html
deleted file mode 100644
index 1c01412029..0000000000
--- a/files/fr/web/css/border-inline-end-width/index.html
+++ /dev/null
@@ -1,102 +0,0 @@
----
-title: border-inline-end-width
-slug: Web/CSS/border-inline-end-width
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-inline-end-width
----
-
+
+ border-inline-end-width définit la largeur de la bordure pour le côté de la fin « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
-
-/* Valeur de longueur */
-/* Type <length> */
-border-inline-end-width: 5px;
-border-inline-end-width: thick;
-
-
-Valeurs
-
-
-
-
-<'border-width'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 1px solid blue;
- border-inline-end-width: 5px;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-end-width", "border-inline-end-width")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-end-width/index.md b/files/fr/web/css/border-inline-end-width/index.md
new file mode 100644
index 0000000000..1c01412029
--- /dev/null
+++ b/files/fr/web/css/border-inline-end-width/index.md
@@ -0,0 +1,102 @@
+---
+title: border-inline-end-width
+slug: Web/CSS/border-inline-end-width
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-inline-end-width
+---
+
-
- border-inline-end-width définit la largeur de la bordure pour le côté de la fin « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
+
+/* Valeur de longueur */
+/* Type <length> */
+border-inline-end-width: 5px;
+border-inline-end-width: thick;
+
+
+Valeurs
+
+
+
+
+<'border-width'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 1px solid blue;
+ border-inline-end-width: 5px;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-end-width", "border-inline-end-width")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-end/index.html b/files/fr/web/css/border-inline-end/index.html
deleted file mode 100644
index 860957487a..0000000000
--- a/files/fr/web/css/border-inline-end/index.html
+++ /dev/null
@@ -1,114 +0,0 @@
----
-title: border-inline-end
-slug: Web/CSS/border-inline-end
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-inline-end
----
-
+
+ border-inline-end est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant à la fin de l'élément dans le sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-inline-end-width")}}, {{cssxref("border-inline-end-style")}} et {{cssxref("border-inline-end-color")}}.
-
-
-Syntaxe
-
-border-inline-end: 1px;
-border-inline-end: 2px dotted;
-border-inline-end: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<'border-width'><'border-style'><'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-rl;
- border-inline-end: 5px dashed blue;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-end", "border-inline-end")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-end/index.md b/files/fr/web/css/border-inline-end/index.md
new file mode 100644
index 0000000000..860957487a
--- /dev/null
+++ b/files/fr/web/css/border-inline-end/index.md
@@ -0,0 +1,114 @@
+---
+title: border-inline-end
+slug: Web/CSS/border-inline-end
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-inline-end
+---
+
-
- border-inline-end est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant à la fin de l'élément dans le sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-inline-end-width")}}, {{cssxref("border-inline-end-style")}} et {{cssxref("border-inline-end-color")}}.
+
+
+Syntaxe
+
+border-inline-end: 1px;
+border-inline-end: 2px dotted;
+border-inline-end: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<'border-width'><'border-style'><'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-rl;
+ border-inline-end: 5px dashed blue;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-end", "border-inline-end")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-start-color/index.html b/files/fr/web/css/border-inline-start-color/index.html
deleted file mode 100644
index f2b6520344..0000000000
--- a/files/fr/web/css/border-inline-start-color/index.html
+++ /dev/null
@@ -1,108 +0,0 @@
----
-title: border-inline-start-color
-slug: Web/CSS/border-inline-start-color
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-inline-start-color
----
-
+
+ border-inline-start-color définit la couleur de la bordure pour le côté du début de l'élément orienté dans l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-border-inline-start-color: red;
-border-inline-start-color: #fffff;
-border-inline-start-color: rgb(200, 0, 0);
-
-
-Valeurs
-
-
-
-
-<'border-color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 10px solid blue;
- border-inline-start-color: red;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-start-color", "border-inline-start-color")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-start-color/index.md b/files/fr/web/css/border-inline-start-color/index.md
new file mode 100644
index 0000000000..f2b6520344
--- /dev/null
+++ b/files/fr/web/css/border-inline-start-color/index.md
@@ -0,0 +1,108 @@
+---
+title: border-inline-start-color
+slug: Web/CSS/border-inline-start-color
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-inline-start-color
+---
+
-
- border-inline-start-color définit la couleur de la bordure pour le côté du début de l'élément orienté dans l'axe de lecture. Elle correspond à une propriété physique selon le mode d'écriture de l'élément, sa directionnalité et l'orientation du texte. Autrement dit, elle correspond à l'une des propriétés {{cssxref("border-top-color")}}, {{cssxref("border-right-color")}}, {{cssxref("border-bottom-color")}} ou {{cssxref("border-left-color")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+border-inline-start-color: red;
+border-inline-start-color: #fffff;
+border-inline-start-color: rgb(200, 0, 0);
+
+
+Valeurs
+
+
+
+
+<'border-color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 10px solid blue;
+ border-inline-start-color: red;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-start-color", "border-inline-start-color")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-start-style/index.html b/files/fr/web/css/border-inline-start-style/index.html
deleted file mode 100644
index 84313d9460..0000000000
--- a/files/fr/web/css/border-inline-start-style/index.html
+++ /dev/null
@@ -1,108 +0,0 @@
----
-title: border-inline-start-style
-slug: Web/CSS/border-inline-start-style
-tags:
- - CSS
- - Experimental
- - Propriété
- - Reference
-translation_of: Web/CSS/border-inline-start-style
----
-
+
+ border-inline-start-style définit le style de la bordure utilisé pour le côté du début de l'élément dans l'axe de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
-
-
-Syntaxe
-
-/* Valeur avec un mot-clé */
-border-inline-start-style: dashed;
-border-inline-start-style: dotted;
-border-inline-start-style: groove;
-
-
-Valeurs
-
-
-
-
-<'border-style'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 5px solid blue;
- border-inline-start-style: dashed;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-start-style", "border-inline-start-style")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-start-style/index.md b/files/fr/web/css/border-inline-start-style/index.md
new file mode 100644
index 0000000000..84313d9460
--- /dev/null
+++ b/files/fr/web/css/border-inline-start-style/index.md
@@ -0,0 +1,108 @@
+---
+title: border-inline-start-style
+slug: Web/CSS/border-inline-start-style
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-inline-start-style
+---
+
-
- border-inline-start-style définit le style de la bordure utilisé pour le côté du début de l'élément dans l'axe de lecture. Cette propriété logique correspondra à une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à {{cssxref("border-top-style")}}, {{cssxref("border-right-style")}}, {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} selon les valeurs de {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
+
+
+Syntaxe
+
+/* Valeur avec un mot-clé */
+border-inline-start-style: dashed;
+border-inline-start-style: dotted;
+border-inline-start-style: groove;
+
+
+Valeurs
+
+
+
+
+<'border-style'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 5px solid blue;
+ border-inline-start-style: dashed;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-start-style", "border-inline-start-style")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-start-width/index.html b/files/fr/web/css/border-inline-start-width/index.html
deleted file mode 100644
index a530bc3c6e..0000000000
--- a/files/fr/web/css/border-inline-start-width/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: border-inline-start-width
-slug: Web/CSS/border-inline-start-width
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-inline-start-width
----
-
+
+ border-inline-start-width définit la largeur de la bordure pour le côté du début « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
-
-/* Valeur de longueur */
-/* Type <length> */
-border-inline-start-width: 5px;
-border-inline-start-width: thick;
-
-
-Valeurs
-
-
-
-
-<'border-width'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- border: 1px solid blue;
- border-inline-start-width: 5px;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-start-width", "border-inline-start-width")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-start-width/index.md b/files/fr/web/css/border-inline-start-width/index.md
new file mode 100644
index 0000000000..a530bc3c6e
--- /dev/null
+++ b/files/fr/web/css/border-inline-start-width/index.md
@@ -0,0 +1,103 @@
+---
+title: border-inline-start-width
+slug: Web/CSS/border-inline-start-width
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-inline-start-width
+---
+
-
- border-inline-start-width définit la largeur de la bordure pour le côté du début « logique » de l'élément. Cette propriété logique correspond à l'une des propriétés physiques équivalentes en fonction du mode d'écriture, de la directionnalité et de l'orientation du texte. Autrement dit, elle correspondra à {{cssxref("border-top-width")}}, {{cssxref("border-right-width")}}, {{cssxref("border-bottom-width")}} ou a {{cssxref("border-left-width")}} selon les valeurs des propriétés pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
+
+/* Valeur de longueur */
+/* Type <length> */
+border-inline-start-width: 5px;
+border-inline-start-width: thick;
+
+
+Valeurs
+
+
+
+
+<'border-width'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ border: 1px solid blue;
+ border-inline-start-width: 5px;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-start-width", "border-inline-start-width")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-start/index.html b/files/fr/web/css/border-inline-start/index.html
deleted file mode 100644
index 1e57c3f268..0000000000
--- a/files/fr/web/css/border-inline-start/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: border-inline-start
-slug: Web/CSS/border-inline-start
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-inline-start
----
-
+
+ border-inline-start est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant au début de l'élément dans le sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-inline-start-width")}}, {{cssxref("border-inline-start-style")}} et {{cssxref("border-inline-start-color")}}.
-
-
-Syntaxe
-
-border-inline-start: 1px;
-border-inline-start: 2px dotted;
-border-inline-start: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<'border-width'><'border-style'><'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-rl;
- border-inline-start: 5px dashed blue;
-}
-
-HTML
-
-<div>
- <p class="exemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-start", "border-inline-start")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-start/index.md b/files/fr/web/css/border-inline-start/index.md
new file mode 100644
index 0000000000..1e57c3f268
--- /dev/null
+++ b/files/fr/web/css/border-inline-start/index.md
@@ -0,0 +1,115 @@
+---
+title: border-inline-start
+slug: Web/CSS/border-inline-start
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-inline-start
+---
+
-
- border-inline-start est une propriété raccourcie qui permet de définir la bordure d'un élément pour le côté correspondant au début de l'élément dans le sens de lecture. Elle peut être utilisée pour définir les valeurs de {{cssxref("border-inline-start-width")}}, {{cssxref("border-inline-start-style")}} et {{cssxref("border-inline-start-color")}}.
+
+
+Syntaxe
+
+border-inline-start: 1px;
+border-inline-start: 2px dotted;
+border-inline-start: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<'border-width'><'border-style'><'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-rl;
+ border-inline-start: 5px dashed blue;
+}
+
+HTML
+
+<div>
+ <p class="exemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-start", "border-inline-start")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-style/index.html b/files/fr/web/css/border-inline-style/index.html
deleted file mode 100644
index 76e63f490d..0000000000
--- a/files/fr/web/css/border-inline-style/index.html
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: border-inline-style
-slug: Web/CSS/border-inline-style
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-inline-style
----
-
+
+ border-inline-style permet de définir le style pour la bordure sur les côtés d'un élément qui correspondent à l'axe en ligne. Cette propriété logique correspond à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-style")}} et {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} et {{cssxref("border-right-style")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-style'> */
-border-inline-style: dashed;
-border-inline-style: dotted;
-border-inline-style: groove;
-
-
-Syntaxe
-
-Valeur
-
-
-
-
-<'border-style'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- border: 5px solid blue;
- border-inline-style: dashed;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Texte exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline-style", "border-inline-style")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-style/index.md b/files/fr/web/css/border-inline-style/index.md
new file mode 100644
index 0000000000..76e63f490d
--- /dev/null
+++ b/files/fr/web/css/border-inline-style/index.md
@@ -0,0 +1,101 @@
+---
+title: border-inline-style
+slug: Web/CSS/border-inline-style
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-inline-style
+---
+
-
- border-inline-style permet de définir le style pour la bordure sur les côtés d'un élément qui correspondent à l'axe en ligne. Cette propriété logique correspond à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-style")}} et {{cssxref("border-bottom-style")}} ou à {{cssxref("border-left-style")}} et {{cssxref("border-right-style")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-style'> */
+border-inline-style: dashed;
+border-inline-style: dotted;
+border-inline-style: groove;
+
+
+Syntaxe
+
+Valeur
+
+
+
+
+<'border-style'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ border: 5px solid blue;
+ border-inline-style: dashed;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Texte exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline-style", "border-inline-style")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline-width/index.html b/files/fr/web/css/border-inline-width/index.html
deleted file mode 100644
index 36cc04cc58..0000000000
--- a/files/fr/web/css/border-inline-width/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: border-inline-width
-slug: Web/CSS/border-inline-width
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-inline-width
----
-
+
+ border-inline-width définit la largeur de la bordure sur les côtés d'un élément sur les côtés de l'axe en ligne. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-width")}} et {{cssxref("border-bottom-width")}} ou à {{cssxref("border-left-width")}} et {{cssxref("border-right-width")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-width'> */
-border-inline-width: 5px 10px;
-border-inline-width: 5px;
-border-inline-width: thick;
-
-
-Syntaxe
-
-Valeur
-
-
-
-
-<'border-width'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- border: 1px solid blue;
- border-inline-width: 5px 10px;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Texte d'exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-block-width", "border-block-width")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline-width/index.md b/files/fr/web/css/border-inline-width/index.md
new file mode 100644
index 0000000000..36cc04cc58
--- /dev/null
+++ b/files/fr/web/css/border-inline-width/index.md
@@ -0,0 +1,94 @@
+---
+title: border-inline-width
+slug: Web/CSS/border-inline-width
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-inline-width
+---
+border-inline-width définit la largeur de la bordure sur les côtés d'un élément sur les côtés de l'axe en ligne. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture, la direction et l'orientation du texte. Autrement dit, cette propriété correspond à {{cssxref("border-top-width")}} et {{cssxref("border-bottom-width")}} ou à {{cssxref("border-left-width")}} et {{cssxref("border-right-width")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de type <'border-width'> */
+border-inline-width: 5px 10px;
+border-inline-width: 5px;
+border-inline-width: thick;
+
+
+Syntaxe
+
+Valeur
+
+
+
+
+<'border-width'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ border: 1px solid blue;
+ border-inline-width: 5px 10px;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Texte d'exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-block-width", "border-block-width")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-inline/index.html b/files/fr/web/css/border-inline/index.html
deleted file mode 100644
index fee3624b6f..0000000000
--- a/files/fr/web/css/border-inline/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: border-inline
-slug: Web/CSS/border-inline
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-inline
----
-border-inline est une propriété raccourcie qui permet de paramétrer les différentes propriétés logiques relatives à la bordure sur l'axe en ligne.border-inline: 1px;
-border-inline: 2px dotted;
-border-inline: medium dashed blue;
-
-
-border-inline peut être utilisée afin de définir une ou plusieurs propriétés parmi {{cssxref("border-inline-width")}}, {{cssxref("border-inline-style")}} et {{cssxref("border-inline-color")}}. La bordure est donc paramétrée de la même façon pour le début et la fin de l'axe de en ligne. Les propriétés physiques correspondantes dépendront du mode d'écriture, de la direction et de l'orientation du texte. Autrement dit, cette propriété peut correspondre à {{cssxref("border-top")}} et {{cssxref("border-bottom")}} ou à {{cssxref("border-right")}} et {{cssxref("border-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
-
-Valeurs
-
-border-inline peut être utilisée avec une ou plusieurs de ces valeurs, quel que soit l'ordre.
-
-
-<'border-width'><'border-style'><'color'>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exempleTexte {
- writing-mode: vertical-rl;
- border-inline: 5px dashed blue;
-}
-
-HTML
-
-<div>
- <p class="exempleTexte">Texte exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-inline", "border-inline")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-inline/index.md b/files/fr/web/css/border-inline/index.md
new file mode 100644
index 0000000000..fee3624b6f
--- /dev/null
+++ b/files/fr/web/css/border-inline/index.md
@@ -0,0 +1,111 @@
+---
+title: border-inline
+slug: Web/CSS/border-inline
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-inline
+---
+
-
- border-inline est une propriété raccourcie qui permet de paramétrer les différentes propriétés logiques relatives à la bordure sur l'axe en ligne.border-inline: 1px;
+border-inline: 2px dotted;
+border-inline: medium dashed blue;
+
+
+border-inline peut être utilisée afin de définir une ou plusieurs propriétés parmi {{cssxref("border-inline-width")}}, {{cssxref("border-inline-style")}} et {{cssxref("border-inline-color")}}. La bordure est donc paramétrée de la même façon pour le début et la fin de l'axe de en ligne. Les propriétés physiques correspondantes dépendront du mode d'écriture, de la direction et de l'orientation du texte. Autrement dit, cette propriété peut correspondre à {{cssxref("border-top")}} et {{cssxref("border-bottom")}} ou à {{cssxref("border-right")}} et {{cssxref("border-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.Syntaxe
+
+Valeurs
+
+border-inline peut être utilisée avec une ou plusieurs de ces valeurs, quel que soit l'ordre.
+
+
+<'border-width'><'border-style'><'color'>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exempleTexte {
+ writing-mode: vertical-rl;
+ border-inline: 5px dashed blue;
+}
+
+HTML
+
+<div>
+ <p class="exempleTexte">Texte exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-inline", "border-inline")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-left-color/index.html b/files/fr/web/css/border-left-color/index.html
deleted file mode 100644
index d19f3c7ad2..0000000000
--- a/files/fr/web/css/border-left-color/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: border-left-color
-slug: Web/CSS/border-left-color
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-left-color
----
-
+
+ border-left-color permet de définir la couleur utilisée pour la bordure gauche d'un élément.Syntaxe
-
-/* Valeurs de type <color> */
-border-left-color: red;
-border-left-color: rgb(255, 128, 0);
-border-left-color: hsla(100%, 50%, 25%, 0.75);
-border-left-color: #ffbb00;
-border-left-color: currentColor;
-border-left-color: transparent;
-
-/* Valeurs globales */
-border-left-color: inherit;
-border-left-color: initial;
-border-left-color: unset;
-
-
-Valeurs
-
-
-
-
-color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.maboite {
- border: solid 0.3em gold;
- border-left-color: red;
- width: auto;
-}
-
-.texterouge {
- color: red;
-}
-
-HTML
-
-<div class="maboite">
- <p>Une boîte avec une bordure autour.
- Notez le côté de la boîte qui est
- <span class="texterouge">rouge</span>.</p>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-color', 'border-color')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative, la valeur
- transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
-
-
-{{SpecName('CSS2.1', 'box.html#border-color-properties', 'border-left-color')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-left-color/index.md b/files/fr/web/css/border-left-color/index.md
new file mode 100644
index 0000000000..d19f3c7ad2
--- /dev/null
+++ b/files/fr/web/css/border-left-color/index.md
@@ -0,0 +1,124 @@
+---
+title: border-left-color
+slug: Web/CSS/border-left-color
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-left-color
+---
+
-
-
-
-
-
- border-left-color permet de définir la couleur utilisée pour la bordure gauche d'un élément.Syntaxe
+
+/* Valeurs de type <color> */
+border-left-color: red;
+border-left-color: rgb(255, 128, 0);
+border-left-color: hsla(100%, 50%, 25%, 0.75);
+border-left-color: #ffbb00;
+border-left-color: currentColor;
+border-left-color: transparent;
+
+/* Valeurs globales */
+border-left-color: inherit;
+border-left-color: initial;
+border-left-color: unset;
+
+
+Valeurs
+
+
+
+
+color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.maboite {
+ border: solid 0.3em gold;
+ border-left-color: red;
+ width: auto;
+}
+
+.texterouge {
+ color: red;
+}
+
+HTML
+
+<div class="maboite">
+ <p>Une boîte avec une bordure autour.
+ Notez le côté de la boîte qui est
+ <span class="texterouge">rouge</span>.</p>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-color', 'border-color')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative, la valeur
+ transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
+
+
+{{SpecName('CSS2.1', 'box.html#border-color-properties', 'border-left-color')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-left-style/index.html b/files/fr/web/css/border-left-style/index.html
deleted file mode 100644
index 3bb7d560f3..0000000000
--- a/files/fr/web/css/border-left-style/index.html
+++ /dev/null
@@ -1,196 +0,0 @@
----
-title: border-left-style
-slug: Web/CSS/border-left-style
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-left-style
----
-
+
+
+
+
+
+ border-left-style définit le style de ligne utilisé pour mettre en forme la bordure sur le côté gauche d'une boîte.Syntaxe
-
-/* Valeurs avec un mot-clé */
-border-left-style: none;
-border-left-style: hidden;
-border-left-style: dotted;
-border-left-style: dashed;
-border-left-style: solid;
-border-left-style: double;
-border-left-style: groove;
-border-left-style: ridge;
-border-left-style: inset;
-border-left-style: outset;
-
-/* Valeurs globales */
-border-left-style: inherit;
-border-left-style: initial;
-border-left-style: unset;
-
-
-Valeurs
-
-
-
-
-<br-style>
-
-
-
-
-
- noneL'effet obtenu est le même qu'avec
- hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-left-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
-
-
- hiddenL'effet obtenu est le même qu'avec
- none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-left-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
-
-
- dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-left-width")}}.
-
-
-
- dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
-
-
-
- solidAffiche une ligne droite continue.
-
-
-
- doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-left-width")}}.
-
-
-
- grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
- ridge.
-
-
- ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
- groove.
-
-
- insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
- outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
-
-
-
- outset
-
- inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-/* On applique un style sur le tableau */
-table {
- border-width: 2px;
- background-color: #52E385;
-}
-tr, td {
- padding: 3px;
-}
-
-/* Des exemples pour border-left-style */
-.b1 {border-left-style:none;}
-.b2 {border-left-style:hidden;}
-.b3 {border-left-style:dotted;}
-.b4 {border-left-style:dashed;}
-.b5 {border-left-style:solid;}
-.b6 {border-left-style:double;}
-.b7 {border-left-style:groove;}
-.b8 {border-left-style:ridge;}
-.b9 {border-left-style:inset;}
-.b10 {border-left-style:outset;}
-
-HTML
-
-<table>
- <tr>
- <td class="b1">none</td>
- <td class="b2">hidden</td>
- <td class="b3">petits points</td>
- <td class="b4">tirets</td>
- </tr>
- <tr>
- <td class="b5">solid</td>
- <td class="b6">double</td>
- <td class="b7">groove</td>
- <td class="b8">ridge</td>
- </tr>
- <tr>
- <td class="b9">inset</td>
- <td class="b10">outset</td>
- </tr>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-left-style')}}
- {{Spec2('CSS3 Backgrounds')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-left-style')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-left-style/index.md b/files/fr/web/css/border-left-style/index.md
new file mode 100644
index 0000000000..3bb7d560f3
--- /dev/null
+++ b/files/fr/web/css/border-left-style/index.md
@@ -0,0 +1,196 @@
+---
+title: border-left-style
+slug: Web/CSS/border-left-style
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-left-style
+---
+
-
-
-
- border-left-style définit le style de ligne utilisé pour mettre en forme la bordure sur le côté gauche d'une boîte.Syntaxe
+
+/* Valeurs avec un mot-clé */
+border-left-style: none;
+border-left-style: hidden;
+border-left-style: dotted;
+border-left-style: dashed;
+border-left-style: solid;
+border-left-style: double;
+border-left-style: groove;
+border-left-style: ridge;
+border-left-style: inset;
+border-left-style: outset;
+
+/* Valeurs globales */
+border-left-style: inherit;
+border-left-style: initial;
+border-left-style: unset;
+
+
+Valeurs
+
+
+
+
+<br-style>
+
+
+
+
+
+ noneL'effet obtenu est le même qu'avec
+ hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-left-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
+
+
+ hiddenL'effet obtenu est le même qu'avec
+ none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-left-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
+
+
+ dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-left-width")}}.
+
+
+
+ dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
+
+
+
+ solidAffiche une ligne droite continue.
+
+
+
+ doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-left-width")}}.
+
+
+
+ grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
+ ridge.
+
+
+ ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
+ groove.
+
+
+ insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
+ outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
+
+
+
+ outset
+
+ inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+/* On applique un style sur le tableau */
+table {
+ border-width: 2px;
+ background-color: #52E385;
+}
+tr, td {
+ padding: 3px;
+}
+
+/* Des exemples pour border-left-style */
+.b1 {border-left-style:none;}
+.b2 {border-left-style:hidden;}
+.b3 {border-left-style:dotted;}
+.b4 {border-left-style:dashed;}
+.b5 {border-left-style:solid;}
+.b6 {border-left-style:double;}
+.b7 {border-left-style:groove;}
+.b8 {border-left-style:ridge;}
+.b9 {border-left-style:inset;}
+.b10 {border-left-style:outset;}
+
+HTML
+
+<table>
+ <tr>
+ <td class="b1">none</td>
+ <td class="b2">hidden</td>
+ <td class="b3">petits points</td>
+ <td class="b4">tirets</td>
+ </tr>
+ <tr>
+ <td class="b5">solid</td>
+ <td class="b6">double</td>
+ <td class="b7">groove</td>
+ <td class="b8">ridge</td>
+ </tr>
+ <tr>
+ <td class="b9">inset</td>
+ <td class="b10">outset</td>
+ </tr>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-left-style')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-left-style')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-left-width/index.html b/files/fr/web/css/border-left-width/index.html
deleted file mode 100644
index 5c218977d1..0000000000
--- a/files/fr/web/css/border-left-width/index.html
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: border-left-width
-slug: Web/CSS/border-left-width
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-left-width
----
-
+
+
+
+ border-left-width définit l'épaisseur de la bordure pour le côté gauche d'un élément.Syntaxe
-
-/* Une valeur de longueur */
-/* Type <length> */
-border-left-width: 10em;
-border-left-width: 3vmax;
-border-left-width: 6px;
-
-/* Valeurs avec un mot-clé */
-border-left-width: thin;
-border-left-width: medium;
-border-left-width: thick;
-
-/* Valeurs globales */
-border-left-width: inherit;
-border-left-width: initial;
-border-left-width: unset;
-
-
-Valeurs
-
-
-
-
-<br-width>
-
- La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.element1{
- border-left-width: thick;
- border-left-style: solid;
- border-left-color: red;
-}
-.element2{
- border-left-width: medium;
- border-left-style: solid;
- border-left-color: orange;
-}
-.element3{
- border-left-width: thin;
- border-left-style: solid;
- border-left-color: green;
-}
-
-
-HTML
-
-<p class="element1">
- Une bordure épaisse rouge.
-</p>
-
-<p class="element2">
- Une bordure moyenne orange.
-</p>
-
-<p class="element3">
- Et une bordure fine verte.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-left-width')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative.
-
-
- {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-left-width')}}
- {{Spec2('CSS2.1')}}
- Pas de modification significative.
-
-
-
-{{SpecName('CSS1', '#border-left-width', 'border-left-width')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-left-width/index.md b/files/fr/web/css/border-left-width/index.md
new file mode 100644
index 0000000000..5c218977d1
--- /dev/null
+++ b/files/fr/web/css/border-left-width/index.md
@@ -0,0 +1,145 @@
+---
+title: border-left-width
+slug: Web/CSS/border-left-width
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-left-width
+---
+
-
-
-
- border-left-width définit l'épaisseur de la bordure pour le côté gauche d'un élément.Syntaxe
+
+/* Une valeur de longueur */
+/* Type <length> */
+border-left-width: 10em;
+border-left-width: 3vmax;
+border-left-width: 6px;
+
+/* Valeurs avec un mot-clé */
+border-left-width: thin;
+border-left-width: medium;
+border-left-width: thick;
+
+/* Valeurs globales */
+border-left-width: inherit;
+border-left-width: initial;
+border-left-width: unset;
+
+
+Valeurs
+
+
+
+
+<br-width>
+
+ La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.element1{
+ border-left-width: thick;
+ border-left-style: solid;
+ border-left-color: red;
+}
+.element2{
+ border-left-width: medium;
+ border-left-style: solid;
+ border-left-color: orange;
+}
+.element3{
+ border-left-width: thin;
+ border-left-style: solid;
+ border-left-color: green;
+}
+
+
+HTML
+
+<p class="element1">
+ Une bordure épaisse rouge.
+</p>
+
+<p class="element2">
+ Une bordure moyenne orange.
+</p>
+
+<p class="element3">
+ Et une bordure fine verte.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-left-width')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative.
+
+
+ {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-left-width')}}
+ {{Spec2('CSS2.1')}}
+ Pas de modification significative.
+
+
+
+{{SpecName('CSS1', '#border-left-width', 'border-left-width')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-left/index.html b/files/fr/web/css/border-left/index.html
deleted file mode 100644
index bd60bc0f95..0000000000
--- a/files/fr/web/css/border-left/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: border-left
-slug: Web/CSS/border-left
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-left
----
-
+
+
+
+ border-left est une propriété raccourcie qui permet de définir la bordure gauche d'un élément
-
-
-border-left définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi : border-left-style: dotted;
- border-left: thick green;
-
-
- border-left-style: dotted;
- border-left: none thick green;
-
-
-border-left est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
-
-border-left: 1px;
-border-left: 2px dotted;
-border-left: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<br-width> <br-style> <color> Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.exemple {
- border-left: 3px dotted orange;
-}
-
-HTML
-
-<p class="exemple">
- En passant elle prit sur un rayon un pot
- de confiture portant cette étiquette,
- « MARMELADE D’ORANGES. »
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-left', 'border-left')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-left-color")}} s'applique.
-
-
- {{SpecName('CSS2.1', 'box.html#propdef-border-left', 'border-left')}}
- {{Spec2('CSS2.1')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS1', '#border-left', 'border-left')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-border-left est une propriété raccourcie qui permet de définir la bordure gauche d'un élément
+
+
+border-left définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi : border-left-style: dotted;
+ border-left: thick green;
+
+
+ border-left-style: dotted;
+ border-left: none thick green;
+
+
+border-left est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
+
+border-left: 1px;
+border-left: 2px dotted;
+border-left: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<br-width> <br-style> <color> Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.exemple {
+ border-left: 3px dotted orange;
+}
+
+HTML
+
+<p class="exemple">
+ En passant elle prit sur un rayon un pot
+ de confiture portant cette étiquette,
+ « MARMELADE D’ORANGES. »
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-left', 'border-left')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-left-color")}} s'applique.
+
+
+ {{SpecName('CSS2.1', 'box.html#propdef-border-left', 'border-left')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS1', '#border-left', 'border-left')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+border-radius permet de définir des coins arrondis pour la bordure d'un élément. La courbure de chaque coin est définie avec un ou deux rayons de courbures qui permettent de définir un arc de cercle ou un arc d'ellipse.
-
-
-border-radius ne s'applique pas aux tableaux lorsque {{cssxref("border-collapse")}} vaut collapse.border-radius:0 0 inherit inherit pour surcharger les définitions existantes). Si on souhaite avoir un comportement de ce type, on devra utiliser les propriétés détaillées.Syntaxe
-
-/* Quand on utilise un seul rayon, on peut avoir jusqu'à quatre valeurs */
-/* On utilise le même rayon pour les quatre angles */
-border-radius: 10px;
-
-/* 1. coin en haut à gauche et en bas à droite */
-/* 2. puis coin en haut à droite et en bas à gauche */
-border-radius: 10px 5%;
-
-/* 1. coin en haut à gauche */
-/* 2. coin en haut à droite et en bas à gauche */
-/* 3. coin en bas à droite */
-border-radius: 2px 4px 2px;
-
-/* 1. coin en haut à gauche */
-/* 2. coin en haut à droite */
-/* 3. coin en bas à droite */
-/* 4. coin en bas à gauche */
-border-radius: 1px 0 3px 4px;
-
-/* En utilisant deux rayons, on peut avoir jusqu'à quatre valeurs */
-/* On sépare les rayons horizontaux des verticaux par une barre oblique */
-/* rayons horizontaux (cf. ci-avant) / rayon vertical pour tous les angles */
-border-radius: 10px 5% / 20px;
-
-/* rayons horizontaux puis / puis rayons verticaux */
-/* 1. coin en haut à gauche et en bas à droite */
-/* 2. puis coin en haut à droite et en bas à gauche */
-border-radius: 10px 5% / 20px 30px;
-
-/* rayons horizontaux puis / puis rayons verticaux */
-/* 1. coin en haut à gauche */
-/* 2. coin en haut à droite et en bas à gauche */
-/* 3. coin en bas à droite */
-border-radius: 10px 5px 2em / 20px 25px 30%;
-
-/* rayons horizontaux puis / puis rayons verticaux */
-/* 1. coin en haut à gauche */
-/* 2. coin en haut à droite */
-/* 3. coin en bas à droite */
-/* 4. coin en bas à gauche */
-border-radius: 10px 5% / 20px 25em 30px 35em;
-
-/* Valeurs globales */
-border-radius: inherit;
-border-radius: initial;
-border-radius: unset;
-
-
-border-radius peut être définie avec :
-
-
-<length>) ou de pourcentages (<percentage>). Ces valeurs sont utilisées pour désigner un rayon de courbure pour chaque angle.Valeurs
-
-
-
-
-
-
-
- Une seule valeur
-
- 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon à utiliser pour chaque coin lorsqu'on utilise une seule valeur dans la déclaration.
-
-
- Deux valeurs (coin en haut à gauche et en bas à droite)
-
- 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à gauche et le coin en bas à droite de la boîte de bordure lorsqu'on utilise deux valeurs dans la déclaration.
-
-
- Coin en haut à droite et en bas à gauche (syntaxe à deux et trois valeurs)
-
- 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à droite et le coin en bas à gauche de la boîte de bordure lorsqu'on utilise deux ou trois valeurs dans la déclaration.
-
-
- Coin en haut à gauche
-
- 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à gauche de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec trois ou quatre valeurs.
-
-
- Coin en haut à droite
-
- 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à droite de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec quatre valeurs.
-
-
- Coin en bas à droite
-
- 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en bas à droite de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec trois ou quatre valeurs.
-
-
-
-Coin en bas à gauche
-
- 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en bas à gauche de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec quatre valeurs.
-
-
-
-<length><percentage>border-radius: 1em/5em;
-
-/* est équivalent à */
-
-border-top-left-radius: 1em 5em;
-border-top-right-radius: 1em 5em;
-border-bottom-right-radius: 1em 5em;
-border-bottom-left-radius: 1em 5em;
-
-
-border-radius: 4px 3px 6px / 2px 4px;
-
-/* est équivalent à : */
-
-border-top-left-radius: 4px 2px;
-border-top-right-radius: 3px 4px;
-border-bottom-right-radius: 6px 2px;
-border-bottom-left-radius: 3px 4px;
-
-
-Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- height: 100px;
- width: 200px;
- border-style: solid;
- border-color: black;
- background-color: palegreen;
-}
-
-.arrondi_droit {
- border-radius: 10px 40px 40px 10px;
-}
-
-.ellipse {
- border-radius: 50%;
-}
-
-.pointille {
- border: dotted;
- border-width: 10px 4px;
- border-radius: 10px 40px;
-}
-
-.tirets {
- border: dashed;
- border-width: 2px 4px;
- border-radius: 40px;
-
-}
-
-.slash {
- border-radius: 13em/3em;
-}
-
-
-HTML
-
-<div class="arrondi_droit"></div>
-
-<div class="ellipse"></div>
-
-<div class="tirets"></div>
-
-<div class="pointille"></div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#border-radius', 'border-radius')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-radius/index.md b/files/fr/web/css/border-radius/index.md
new file mode 100644
index 0000000000..540cf83bc4
--- /dev/null
+++ b/files/fr/web/css/border-radius/index.md
@@ -0,0 +1,254 @@
+---
+title: border-radius
+slug: Web/CSS/border-radius
+tags:
+ - CSS
+ - Propriété
+ - Reference
+ - Web
+translation_of: Web/CSS/border-radius
+---
+
-
- border-radius permet de définir des coins arrondis pour la bordure d'un élément. La courbure de chaque coin est définie avec un ou deux rayons de courbures qui permettent de définir un arc de cercle ou un arc d'ellipse.
+
+
+border-radius ne s'applique pas aux tableaux lorsque {{cssxref("border-collapse")}} vaut collapse.border-radius:0 0 inherit inherit pour surcharger les définitions existantes). Si on souhaite avoir un comportement de ce type, on devra utiliser les propriétés détaillées.Syntaxe
+
+/* Quand on utilise un seul rayon, on peut avoir jusqu'à quatre valeurs */
+/* On utilise le même rayon pour les quatre angles */
+border-radius: 10px;
+
+/* 1. coin en haut à gauche et en bas à droite */
+/* 2. puis coin en haut à droite et en bas à gauche */
+border-radius: 10px 5%;
+
+/* 1. coin en haut à gauche */
+/* 2. coin en haut à droite et en bas à gauche */
+/* 3. coin en bas à droite */
+border-radius: 2px 4px 2px;
+
+/* 1. coin en haut à gauche */
+/* 2. coin en haut à droite */
+/* 3. coin en bas à droite */
+/* 4. coin en bas à gauche */
+border-radius: 1px 0 3px 4px;
+
+/* En utilisant deux rayons, on peut avoir jusqu'à quatre valeurs */
+/* On sépare les rayons horizontaux des verticaux par une barre oblique */
+/* rayons horizontaux (cf. ci-avant) / rayon vertical pour tous les angles */
+border-radius: 10px 5% / 20px;
+
+/* rayons horizontaux puis / puis rayons verticaux */
+/* 1. coin en haut à gauche et en bas à droite */
+/* 2. puis coin en haut à droite et en bas à gauche */
+border-radius: 10px 5% / 20px 30px;
+
+/* rayons horizontaux puis / puis rayons verticaux */
+/* 1. coin en haut à gauche */
+/* 2. coin en haut à droite et en bas à gauche */
+/* 3. coin en bas à droite */
+border-radius: 10px 5px 2em / 20px 25px 30%;
+
+/* rayons horizontaux puis / puis rayons verticaux */
+/* 1. coin en haut à gauche */
+/* 2. coin en haut à droite */
+/* 3. coin en bas à droite */
+/* 4. coin en bas à gauche */
+border-radius: 10px 5% / 20px 25em 30px 35em;
+
+/* Valeurs globales */
+border-radius: inherit;
+border-radius: initial;
+border-radius: unset;
+
+
+border-radius peut être définie avec :
+
+
+<length>) ou de pourcentages (<percentage>). Ces valeurs sont utilisées pour désigner un rayon de courbure pour chaque angle.Valeurs
+
+
+
+
+
+
+
+ Une seule valeur
+
+ 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon à utiliser pour chaque coin lorsqu'on utilise une seule valeur dans la déclaration.
+
+
+ Deux valeurs (coin en haut à gauche et en bas à droite)
+
+ 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à gauche et le coin en bas à droite de la boîte de bordure lorsqu'on utilise deux valeurs dans la déclaration.
+
+
+ Coin en haut à droite et en bas à gauche (syntaxe à deux et trois valeurs)
+
+ 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à droite et le coin en bas à gauche de la boîte de bordure lorsqu'on utilise deux ou trois valeurs dans la déclaration.
+
+
+ Coin en haut à gauche
+
+ 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à gauche de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec trois ou quatre valeurs.
+
+
+ Coin en haut à droite
+
+ 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en haut à droite de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec quatre valeurs.
+
+
+ Coin en bas à droite
+
+ 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en bas à droite de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec trois ou quatre valeurs.
+
+
+
+Coin en bas à gauche
+
+ 
Une valeur de longueur (type {{cssxref("<length>")}}) ou un pourcentage (type {{cssxref("<percentage>")}}) qui indique le rayon de courbure à utiliser pour le coin en bas à gauche de l'élément. Cette valeur est utilisée lorsqu'on utilise la syntaxe avec quatre valeurs.
+
+
+
+<length><percentage>border-radius: 1em/5em;
+
+/* est équivalent à */
+
+border-top-left-radius: 1em 5em;
+border-top-right-radius: 1em 5em;
+border-bottom-right-radius: 1em 5em;
+border-bottom-left-radius: 1em 5em;
+
+
+border-radius: 4px 3px 6px / 2px 4px;
+
+/* est équivalent à : */
+
+border-top-left-radius: 4px 2px;
+border-top-right-radius: 3px 4px;
+border-bottom-right-radius: 6px 2px;
+border-bottom-left-radius: 3px 4px;
+
+
+Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ height: 100px;
+ width: 200px;
+ border-style: solid;
+ border-color: black;
+ background-color: palegreen;
+}
+
+.arrondi_droit {
+ border-radius: 10px 40px 40px 10px;
+}
+
+.ellipse {
+ border-radius: 50%;
+}
+
+.pointille {
+ border: dotted;
+ border-width: 10px 4px;
+ border-radius: 10px 40px;
+}
+
+.tirets {
+ border: dashed;
+ border-width: 2px 4px;
+ border-radius: 40px;
+
+}
+
+.slash {
+ border-radius: 13em/3em;
+}
+
+
+HTML
+
+<div class="arrondi_droit"></div>
+
+<div class="ellipse"></div>
+
+<div class="tirets"></div>
+
+<div class="pointille"></div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#border-radius', 'border-radius')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-right-color/index.html b/files/fr/web/css/border-right-color/index.html
deleted file mode 100644
index 7ec0703a27..0000000000
--- a/files/fr/web/css/border-right-color/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: border-right-color
-slug: Web/CSS/border-right-color
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-right-color
----
-
+
+ border-right-color définit la couleur utilisée pour la bordure droite d'un élément. Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-right")}}.Syntaxe
-
-/* Valeurs de type <color> */
-border-right-color: red;
-border-right-color: rgb(255, 128, 0);
-border-right-color: hsla(100%, 50%, 25%, 0.75);
-border-right-color: #ffbb00;
-border-right-color: currentColor;
-border-right-color: transparent;
-
-/* Valeurs globales */
-border-right-color: inherit;
-border-right-color: initial;
-border-right-color: unset;
-
-
-Valeurs
-
-
-
-
-color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.maboite {
- border: solid 0.3em gold;
- border-right-color: red;
- width: auto;
-}
-
-.texterouge {
- color: red;
-}
-
-HTML
-
-<div class="maboite">
- <p>Une boîte avec une bordure autour.
- Notez le côté de la boîte qui est
- <span class="texterouge">rouge</span>.</p>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-right-color', 'border-right-color')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative, la valeur
- transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
-
-
-{{SpecName('CSS2.1', 'box.html#propdef-border-right-color', 'border-right-color')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-right-color/index.md b/files/fr/web/css/border-right-color/index.md
new file mode 100644
index 0000000000..7ec0703a27
--- /dev/null
+++ b/files/fr/web/css/border-right-color/index.md
@@ -0,0 +1,122 @@
+---
+title: border-right-color
+slug: Web/CSS/border-right-color
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-right-color
+---
+
-
-
-
-
-
- border-right-color définit la couleur utilisée pour la bordure droite d'un élément. Pour avoir une formulation plus concise, on pourra utiliser les propriétés raccourcies {{cssxref("border-color")}} et/ou {{cssxref("border-right")}}.Syntaxe
+
+/* Valeurs de type <color> */
+border-right-color: red;
+border-right-color: rgb(255, 128, 0);
+border-right-color: hsla(100%, 50%, 25%, 0.75);
+border-right-color: #ffbb00;
+border-right-color: currentColor;
+border-right-color: transparent;
+
+/* Valeurs globales */
+border-right-color: inherit;
+border-right-color: initial;
+border-right-color: unset;
+
+
+Valeurs
+
+
+
+
+color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.maboite {
+ border: solid 0.3em gold;
+ border-right-color: red;
+ width: auto;
+}
+
+.texterouge {
+ color: red;
+}
+
+HTML
+
+<div class="maboite">
+ <p>Une boîte avec une bordure autour.
+ Notez le côté de la boîte qui est
+ <span class="texterouge">rouge</span>.</p>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-right-color', 'border-right-color')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative, la valeur
+ transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
+
+
+{{SpecName('CSS2.1', 'box.html#propdef-border-right-color', 'border-right-color')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-right-style/index.html b/files/fr/web/css/border-right-style/index.html
deleted file mode 100644
index 13e84b546f..0000000000
--- a/files/fr/web/css/border-right-style/index.html
+++ /dev/null
@@ -1,198 +0,0 @@
----
-title: border-right-style
-slug: Web/CSS/border-right-style
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-right-style
----
-
+
+
+
+
+
+ border-right-style définit le style de ligne utilisé pour mettre en forme la bordure sur le côté droit d'une boîte.Syntaxe
-
-/* Valeurs avec un mot-clé */
-border-right-style: none;
-border-right-style: hidden;
-border-right-style: dotted;
-border-right-style: dashed;
-border-right-style: solid;
-border-right-style: double;
-border-right-style: groove;
-border-right-style: ridge;
-border-right-style: inset;
-border-right-style: outset;
-
-/* Valeurs globales */
-border-right-style: inherit;
-border-right-style: initial;
-border-right-style: unset;
-
-
-Valeurs
-
-
-
-
-<br-style>
-
-
-
-
-
- noneL'effet obtenu est le même qu'avec
- hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-right-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
-
-
- hiddenL'effet obtenu est le même qu'avec
- none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-right-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
-
-
- dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-right-width")}}.
-
-
-
- dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
-
-
-
- solidAffiche une ligne droite continue.
-
-
-
- doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-right-width")}}.
-
-
-
- grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
- ridge.
-
-
- ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
- groove.
-
-
- insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
- outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
-
-
-
- outset
-
- inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.inheritSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-/* On applique un style sur le tableau */
-table {
- border-width: 2px;
- background-color: #52E385;
-}
-tr, td {
- padding: 3px;
-}
-
-/* Des exemples pour border-right-style */
-.b1 {border-right-style:none;}
-.b2 {border-right-style:hidden;}
-.b3 {border-right-style:dotted;}
-.b4 {border-right-style:dashed;}
-.b5 {border-right-style:solid;}
-.b6 {border-right-style:double;}
-.b7 {border-right-style:groove;}
-.b8 {border-right-style:ridge;}
-.b9 {border-right-style:inset;}
-.b10 {border-right-style:outset;}
-
-HTML
-
-<table>
- <tr>
- <td class="b1">none</td>
- <td class="b2">hidden</td>
- <td class="b3">petits points</td>
- <td class="b4">tirets</td>
- </tr>
- <tr>
- <td class="b5">solid</td>
- <td class="b6">double</td>
- <td class="b7">groove</td>
- <td class="b8">ridge</td>
- </tr>
- <tr>
- <td class="b9">inset</td>
- <td class="b10">outset</td>
- </tr>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-right-style')}}
- {{Spec2('CSS3 Backgrounds')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-right-style')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-right-style/index.md b/files/fr/web/css/border-right-style/index.md
new file mode 100644
index 0000000000..13e84b546f
--- /dev/null
+++ b/files/fr/web/css/border-right-style/index.md
@@ -0,0 +1,198 @@
+---
+title: border-right-style
+slug: Web/CSS/border-right-style
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-right-style
+---
+
-
-
-
- border-right-style définit le style de ligne utilisé pour mettre en forme la bordure sur le côté droit d'une boîte.Syntaxe
+
+/* Valeurs avec un mot-clé */
+border-right-style: none;
+border-right-style: hidden;
+border-right-style: dotted;
+border-right-style: dashed;
+border-right-style: solid;
+border-right-style: double;
+border-right-style: groove;
+border-right-style: ridge;
+border-right-style: inset;
+border-right-style: outset;
+
+/* Valeurs globales */
+border-right-style: inherit;
+border-right-style: initial;
+border-right-style: unset;
+
+
+Valeurs
+
+
+
+
+<br-style>
+
+
+
+
+
+ noneL'effet obtenu est le même qu'avec
+ hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-right-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
+
+
+ hiddenL'effet obtenu est le même qu'avec
+ none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-right-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
+
+
+ dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-right-width")}}.
+
+
+
+ dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
+
+
+
+ solidAffiche une ligne droite continue.
+
+
+
+ doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-right-width")}}.
+
+
+
+ grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
+ ridge.
+
+
+ ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
+ groove.
+
+
+ insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
+ outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
+
+
+
+ outset
+
+ inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.inheritSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+/* On applique un style sur le tableau */
+table {
+ border-width: 2px;
+ background-color: #52E385;
+}
+tr, td {
+ padding: 3px;
+}
+
+/* Des exemples pour border-right-style */
+.b1 {border-right-style:none;}
+.b2 {border-right-style:hidden;}
+.b3 {border-right-style:dotted;}
+.b4 {border-right-style:dashed;}
+.b5 {border-right-style:solid;}
+.b6 {border-right-style:double;}
+.b7 {border-right-style:groove;}
+.b8 {border-right-style:ridge;}
+.b9 {border-right-style:inset;}
+.b10 {border-right-style:outset;}
+
+HTML
+
+<table>
+ <tr>
+ <td class="b1">none</td>
+ <td class="b2">hidden</td>
+ <td class="b3">petits points</td>
+ <td class="b4">tirets</td>
+ </tr>
+ <tr>
+ <td class="b5">solid</td>
+ <td class="b6">double</td>
+ <td class="b7">groove</td>
+ <td class="b8">ridge</td>
+ </tr>
+ <tr>
+ <td class="b9">inset</td>
+ <td class="b10">outset</td>
+ </tr>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-right-style')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-right-style')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-right-width/index.html b/files/fr/web/css/border-right-width/index.html
deleted file mode 100644
index f2233827aa..0000000000
--- a/files/fr/web/css/border-right-width/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: border-right-width
-slug: Web/CSS/border-right-width
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-right-width
----
-
+
+
+
+ border-right-width définit l'épaisseur de la bordure pour le côté droit d'une boîte.Syntaxe
-
-/* Valeurs avec un mot-clé */
-border-right-width: thin;
-border-right-width: medium;
-border-right-width: thick;
-
-/* Valeurs de longueurs */
-/* Type <length> */
-border-right-width: 10em;
-border-right-width: 3vmax;
-border-right-width: 6px;
-
-/* Valeurs globales */
-border-right-width: inherit;
-border-right-width: initial;
-border-right-width: unset;
-
-Valeurs
-
-
-
-
-<br-width>
-
- La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.element1{
- border-right: thick solid red;
-}
-.element2{
- border-right: medium solid orange;
-}
-.element3{
- border-right: thin solid green;
-}
-
-
-HTML
-
-<p class="element1">
- Une bordure épaisse rouge.
-</p>
-
-<p class="element2">
- Une bordure moyenne orange.
-</p>
-
-<p class="element3">
- Et une bordure fine verte.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-right-width')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative.
-
-
- {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-right-width')}}
- {{Spec2('CSS2.1')}}
- Pas de modification significative.
-
-
-
-{{SpecName('CSS1', '#border-right-width', 'border-right-width')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-right-width/index.md b/files/fr/web/css/border-right-width/index.md
new file mode 100644
index 0000000000..f2233827aa
--- /dev/null
+++ b/files/fr/web/css/border-right-width/index.md
@@ -0,0 +1,138 @@
+---
+title: border-right-width
+slug: Web/CSS/border-right-width
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-right-width
+---
+
-
-
-
- border-right-width définit l'épaisseur de la bordure pour le côté droit d'une boîte.Syntaxe
+
+/* Valeurs avec un mot-clé */
+border-right-width: thin;
+border-right-width: medium;
+border-right-width: thick;
+
+/* Valeurs de longueurs */
+/* Type <length> */
+border-right-width: 10em;
+border-right-width: 3vmax;
+border-right-width: 6px;
+
+/* Valeurs globales */
+border-right-width: inherit;
+border-right-width: initial;
+border-right-width: unset;
+
+Valeurs
+
+
+
+
+<br-width>
+
+ La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.element1{
+ border-right: thick solid red;
+}
+.element2{
+ border-right: medium solid orange;
+}
+.element3{
+ border-right: thin solid green;
+}
+
+
+HTML
+
+<p class="element1">
+ Une bordure épaisse rouge.
+</p>
+
+<p class="element2">
+ Une bordure moyenne orange.
+</p>
+
+<p class="element3">
+ Et une bordure fine verte.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-right-width')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative.
+
+
+ {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-right-width')}}
+ {{Spec2('CSS2.1')}}
+ Pas de modification significative.
+
+
+
+{{SpecName('CSS1', '#border-right-width', 'border-right-width')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-right/index.html b/files/fr/web/css/border-right/index.html
deleted file mode 100644
index 9c33a5c287..0000000000
--- a/files/fr/web/css/border-right/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: border-right
-slug: Web/CSS/border-right
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-right
----
-
+
+
+
+ border-right est une propriété raccourcie qui permet de décrire la bordure droite d'un élément.
-
-
-border-right définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi : border-right-style: dotted;
- border-right: thick green;
-
-
- border-right-style: dotted;
- border-right: none thick green;
-
-
-border-right est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
-
-border-right: 1px;
-border-right: 2px dotted;
-border-right: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<br-width> <br-style> <color> Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.exemple {
- border-right: 3px dotted orange;
-}
-
-HTML
-
-<p class="exemple">
- En passant elle prit sur un rayon un pot
- de confiture portant cette étiquette,
- « MARMELADE D’ORANGES. »
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-right', 'border-right')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-right-color")}} s'applique.
-
-
- {{SpecName('CSS2.1', 'box.html#propdef-border-right', 'border-right')}}
- {{Spec2('CSS2.1')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS1', '#border-right', 'border-right')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-border-right est une propriété raccourcie qui permet de décrire la bordure droite d'un élément.
+
+
+border-right définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi : border-right-style: dotted;
+ border-right: thick green;
+
+
+ border-right-style: dotted;
+ border-right: none thick green;
+
+
+border-right est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
+
+border-right: 1px;
+border-right: 2px dotted;
+border-right: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<br-width> <br-style> <color> Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.exemple {
+ border-right: 3px dotted orange;
+}
+
+HTML
+
+<p class="exemple">
+ En passant elle prit sur un rayon un pot
+ de confiture portant cette étiquette,
+ « MARMELADE D’ORANGES. »
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-right', 'border-right')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-right-color")}} s'applique.
+
+
+ {{SpecName('CSS2.1', 'box.html#propdef-border-right', 'border-right')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS1', '#border-right', 'border-right')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+border-spacing définit la distance qu'il y a entre les bordures de cellules adjacentes d'un tableau (uniquement lorsque {{cssxref("border-collapse")}} vaut separate). Cette propriété est équivalente à l'attribut HTML déprécié {{htmlattrxref("cellspacing","table")}} mais une deuxième valeur peut être utilisée afin d'obtenir un espacement vertical différent de l'espacement horizontal.border-spacing est également utilisée le long du bord extérieur du tableau, où la distance entre la bordure du tableau et les cellules dans la première/dernière colonne ou ligne est la somme du border-spacing approprié (horizontal ou vertical) et du {{cssxref("padding")}} correspondant (top, right, bottom ou left).border-spacing équivaut à l'attribut déprécié cellspacing de l'élément <table>, sauf qu'il possède une seconde valeur optionnelle qui peut être utilisée pour définir différents espacements horizontaux et verticaux.Syntaxe
-
-/* Une valeur de longueur */
-/* Type <length> */
-border-spacing: 2px;
-
-/* La première valeur indique */
-/* l'espacement horizontal et */
-/* la seconde le vertical. */
-border-spacing: 1cm 2em;
-
-/* Valeurs globales */
-border-spacing: inherit;
-border-spacing: initial;
-border-spacing: unset;
-
-
-border-spacing peut être définie avec une ou deux valeurs :
-
-
-Valeurs
-
-
-
-
-lengthSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-table {
- border-collapse: separate;
- border: 1px solid #000;
-}
-
-td {
- border: 1px solid #000;
- padding: 5px;
-}
-
-.unevaleur {
- border-spacing: 5px;
-}
-
-.deuxvaleurs {
- border-spacing: 5px 10px;
-}
-
-HTML
-
-<table class="unevaleur">
- <tr>
- <td>Ces cellules</td>
- <td>sont séparées par 5px</td>
- <td>tout autour.</td>
- </tr>
-</table>
-<br />
-<table class="deuxvaleurs">
- <tr>
- <td>Ces cellules</td>
- <td>sont séparées par 5px d'écart horizontal</td>
- <td>et 10px d'écart vertical.</td>
- </tr>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS2.1', 'tables.html#separated-borders', 'border-spacing')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir auss
-
-
-
diff --git a/files/fr/web/css/border-spacing/index.md b/files/fr/web/css/border-spacing/index.md
new file mode 100644
index 0000000000..f6e0d18643
--- /dev/null
+++ b/files/fr/web/css/border-spacing/index.md
@@ -0,0 +1,133 @@
+---
+title: border-spacing
+slug: Web/CSS/border-spacing
+tags:
+ - CSS
+ - Propriété
+ - Reference
+ - Tableaux CSS
+translation_of: Web/CSS/border-spacing
+---
+border-spacing définit la distance qu'il y a entre les bordures de cellules adjacentes d'un tableau (uniquement lorsque {{cssxref("border-collapse")}} vaut separate). Cette propriété est équivalente à l'attribut HTML déprécié {{htmlattrxref("cellspacing","table")}} mais une deuxième valeur peut être utilisée afin d'obtenir un espacement vertical différent de l'espacement horizontal.border-spacing est également utilisée le long du bord extérieur du tableau, où la distance entre la bordure du tableau et les cellules dans la première/dernière colonne ou ligne est la somme du border-spacing approprié (horizontal ou vertical) et du {{cssxref("padding")}} correspondant (top, right, bottom ou left).border-spacing équivaut à l'attribut déprécié cellspacing de l'élément <table>, sauf qu'il possède une seconde valeur optionnelle qui peut être utilisée pour définir différents espacements horizontaux et verticaux.Syntaxe
+
+/* Une valeur de longueur */
+/* Type <length> */
+border-spacing: 2px;
+
+/* La première valeur indique */
+/* l'espacement horizontal et */
+/* la seconde le vertical. */
+border-spacing: 1cm 2em;
+
+/* Valeurs globales */
+border-spacing: inherit;
+border-spacing: initial;
+border-spacing: unset;
+
+
+border-spacing peut être définie avec une ou deux valeurs :
+
+
+Valeurs
+
+
+
+
+lengthSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+table {
+ border-collapse: separate;
+ border: 1px solid #000;
+}
+
+td {
+ border: 1px solid #000;
+ padding: 5px;
+}
+
+.unevaleur {
+ border-spacing: 5px;
+}
+
+.deuxvaleurs {
+ border-spacing: 5px 10px;
+}
+
+HTML
+
+<table class="unevaleur">
+ <tr>
+ <td>Ces cellules</td>
+ <td>sont séparées par 5px</td>
+ <td>tout autour.</td>
+ </tr>
+</table>
+<br />
+<table class="deuxvaleurs">
+ <tr>
+ <td>Ces cellules</td>
+ <td>sont séparées par 5px d'écart horizontal</td>
+ <td>et 10px d'écart vertical.</td>
+ </tr>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS2.1', 'tables.html#separated-borders', 'border-spacing')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir auss
+
+
+
diff --git a/files/fr/web/css/border-start-end-radius/index.html b/files/fr/web/css/border-start-end-radius/index.html
deleted file mode 100644
index 4c658bcdc7..0000000000
--- a/files/fr/web/css/border-start-end-radius/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: border-start-end-radius
-slug: Web/CSS/border-start-end-radius
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-start-end-radius
----
-border-start-end-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
-/* Type <length> */
-/* Avec une valeur, le coin sera circulaire */
-border-start-end-radius: 10px;
-border-start-end-radius: 1em;
-
-/* Avec deux valeurs, le coin sera une ellipse */
-border-start-end-radius: 1em 2em;
-
-/* Valeurs globales */
-border-start-end-radius: inherit;
-border-start-end-radius: initial;
-border-start-end-radius: unset;
-
-
-horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-bottom-left-radius")}}.Syntaxe
-
-Valeurs
-
-
-
-
-<length-percentage>Syntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: rebeccapurple;
- width: 120px;
- height: 120px;
- border-start-end-radius: 10px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- padding: 10px;
- background-color: #fff;
- border-start-end-radius: 10px;
-}
-
-HTML
-
-<div>
- <p class="texteExemple">Exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-start-end-radius", "border-start-end-radius")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-start-end-radius/index.md b/files/fr/web/css/border-start-end-radius/index.md
new file mode 100644
index 0000000000..4c658bcdc7
--- /dev/null
+++ b/files/fr/web/css/border-start-end-radius/index.md
@@ -0,0 +1,105 @@
+---
+title: border-start-end-radius
+slug: Web/CSS/border-start-end-radius
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-start-end-radius
+---
+border-start-end-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
+/* Type <length> */
+/* Avec une valeur, le coin sera circulaire */
+border-start-end-radius: 10px;
+border-start-end-radius: 1em;
+
+/* Avec deux valeurs, le coin sera une ellipse */
+border-start-end-radius: 1em 2em;
+
+/* Valeurs globales */
+border-start-end-radius: inherit;
+border-start-end-radius: initial;
+border-start-end-radius: unset;
+
+
+horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-bottom-left-radius")}}.Syntaxe
+
+Valeurs
+
+
+
+
+<length-percentage>Syntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: rebeccapurple;
+ width: 120px;
+ height: 120px;
+ border-start-end-radius: 10px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ padding: 10px;
+ background-color: #fff;
+ border-start-end-radius: 10px;
+}
+
+HTML
+
+<div>
+ <p class="texteExemple">Exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-start-end-radius", "border-start-end-radius")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-start-start-radius/index.html b/files/fr/web/css/border-start-start-radius/index.html
deleted file mode 100644
index 83c242af2a..0000000000
--- a/files/fr/web/css/border-start-start-radius/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: border-start-start-radius
-slug: Web/CSS/border-start-start-radius
-tags:
- - CSS
- - Experimental
- - Propriété
- - Propriété logique
- - Reference
-translation_of: Web/CSS/border-start-start-radius
----
-border-start-start-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
-/* Type <length> */
-/* Avec une valeur, le coin sera circulaire */
-border-start-start-radius: 10px;
-border-start-start-radius: 1em;
-
-/* Avec deux valeurs, le coin sera une ellipse */
-border-start-start-radius: 1em 2em;
-
-/* Valeurs globales */
-border-start-start-radius: inherit;
-border-start-start-radius: initial;
-border-start-start-radius: unset;
-
-
-horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-top-left-radius")}}.Syntaxe
-
-Valeurs
-
-
-
-
-<length-percentage>Syntaxe formelle
-
-{{CSSSyntax}}
-
-Exemples
-
-CSS
-
-div {
-background-color: rebeccapurple;
-width: 120px;
-height: 120px;
- border-start-start-radius: 10px;
-}
-
-.texteExemple {
-writing-mode: vertical-rl;
-padding: 10px;
-background-color: #fff;
- border-start-start-radius: 10px;
-}
-
-HTML
-
-<div>
-<p class="texteExemple">Exemple</p>
-</div>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName("CSS Logical Properties", "#propdef-border-start-start-radius", "border-start-start-radius")}}
- {{Spec2("CSS Logical Properties")}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-start-start-radius/index.md b/files/fr/web/css/border-start-start-radius/index.md
new file mode 100644
index 0000000000..83c242af2a
--- /dev/null
+++ b/files/fr/web/css/border-start-start-radius/index.md
@@ -0,0 +1,105 @@
+---
+title: border-start-start-radius
+slug: Web/CSS/border-start-start-radius
+tags:
+ - CSS
+ - Experimental
+ - Propriété
+ - Propriété logique
+ - Reference
+translation_of: Web/CSS/border-start-start-radius
+---
+border-start-start-radius définit le rayon de courbure de la bordure pour un angle d'un élément. Cette propriété logique correspond à une propriété physique de rayon de bordure selon la directionalité du texte et le mode d'écriture. Autrement dit, cette propriété concerne un angle différent selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}./* Valeurs de longueur */
+/* Type <length> */
+/* Avec une valeur, le coin sera circulaire */
+border-start-start-radius: 10px;
+border-start-start-radius: 1em;
+
+/* Avec deux valeurs, le coin sera une ellipse */
+border-start-start-radius: 1em 2em;
+
+/* Valeurs globales */
+border-start-start-radius: inherit;
+border-start-start-radius: initial;
+border-start-start-radius: unset;
+
+
+horizontal-tb, cette propriété logique correspondra à la propriété physique {{CSSxRef("border-top-left-radius")}}.Syntaxe
+
+Valeurs
+
+
+
+
+<length-percentage>Syntaxe formelle
+
+{{CSSSyntax}}
+
+Exemples
+
+CSS
+
+div {
+background-color: rebeccapurple;
+width: 120px;
+height: 120px;
+ border-start-start-radius: 10px;
+}
+
+.texteExemple {
+writing-mode: vertical-rl;
+padding: 10px;
+background-color: #fff;
+ border-start-start-radius: 10px;
+}
+
+HTML
+
+<div>
+<p class="texteExemple">Exemple</p>
+</div>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName("CSS Logical Properties", "#propdef-border-start-start-radius", "border-start-start-radius")}}
+ {{Spec2("CSS Logical Properties")}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-style/index.html b/files/fr/web/css/border-style/index.html
deleted file mode 100644
index 1ddbc35fff..0000000000
--- a/files/fr/web/css/border-style/index.html
+++ /dev/null
@@ -1,218 +0,0 @@
----
-title: border-style
-slug: Web/CSS/border-style
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-style
----
-border-style est une propriété raccourcie qui permet de définir le style des lignes utilisées pour les bordures des quatre côtés de la boîte d'un élément./* Valeurs avec un mot-clé */
-border-style: none;
-border-style: hidden;
-border-style: dotted;
-border-style: dashed;
-border-style: solid;
-border-style: double;
-border-style: groove;
-border-style: ridge;
-border-style: inset;
-border-style: outset;
-
-/* côtés horizontaux | côtés verticaux */
-border-style: dotted solid;
-
-/* haut | côtés verticaux | bas */
-border-style: hidden double dashed;
-
-/* haut | droite | bas | gauche */
-border-style: none solid dotted dashed;
-
-/* Valeurs globales */
-border-style: inherit;
-border-style: initial;
-border-style: unset;
-
-
-border-style est none. Cela signifie que si on modifie {{cssxref("border-width")}} et {{cssxref("border-color")}}, on ne verra pas la bordure tant que cette propriété n'est pas différente de none ou de hidden.border-style peut être définie avec une, deux, trois ou quatre valeurs :
-
-
-Valeurs
-
-
-
-
-<line-style>
-
-
-
-
-
- none
-
- L'effet obtenu est le même qu'avec
- hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
-
-
- hiddenL'effet obtenu est le même qu'avec
- none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
-
-
- dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-width")}}.
-
-
-
- dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
-
-
-
- solidAffiche une ligne droite continue.
-
-
-
- doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}}.
-
-
-
- grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
- ridge.
-
-
- ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
- groove.
-
-
- insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
- outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
-
-
-
- outset
-
- inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-/* On définit la mise en forme */
-/* du tableau. */
-table {
- border-width: 3px;
- background-color: #52E396;
-}
-tr, td {
- padding: 2px;
-}
-
-/* voici des classes pour les exemples */
-.b1 {border-style:none;}
-.b2 {border-style:hidden;}
-.b3 {border-style:dotted;}
-.b4 {border-style:dashed;}
-.b5 {border-style:solid;}
-.b6 {border-style:double;}
-.b7 {border-style:groove;}
-.b8 {border-style:ridge;}
-.b9 {border-style:inset;}
-.b10 {border-style:outset;}
-
-HTML
-
-<table>
- <tr>
- <td class="b1">none</td>
- <td class="b2">hidden</td>
- <td class="b3">dotted</td>
- <td class="b4">dashed</td>
- </tr>
- <tr>
- <td class="b5">solid</td>
- <td class="b6">double</td>
- <td class="b7">groove</td>
- <td class="b8">ridge</td>
- </tr>
- <tr>
- <td class="b9">inset</td>
- <td class="b10">outset</td>
- </tr>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-style', 'border-style')}}
- {{Spec2('CSS3 Backgrounds')}}
- Aucune modification.
-
-
- {{SpecName('CSS2.1', 'box.html#propdef-border-style', 'border-style')}}
- {{Spec2('CSS2.1')}}
- Ajout du mot-clé
- hidden.
-
-
-{{SpecName('CSS1', '#border-style', 'border-style')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-style/index.md b/files/fr/web/css/border-style/index.md
new file mode 100644
index 0000000000..1ddbc35fff
--- /dev/null
+++ b/files/fr/web/css/border-style/index.md
@@ -0,0 +1,218 @@
+---
+title: border-style
+slug: Web/CSS/border-style
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-style
+---
+
-
- border-style est une propriété raccourcie qui permet de définir le style des lignes utilisées pour les bordures des quatre côtés de la boîte d'un élément./* Valeurs avec un mot-clé */
+border-style: none;
+border-style: hidden;
+border-style: dotted;
+border-style: dashed;
+border-style: solid;
+border-style: double;
+border-style: groove;
+border-style: ridge;
+border-style: inset;
+border-style: outset;
+
+/* côtés horizontaux | côtés verticaux */
+border-style: dotted solid;
+
+/* haut | côtés verticaux | bas */
+border-style: hidden double dashed;
+
+/* haut | droite | bas | gauche */
+border-style: none solid dotted dashed;
+
+/* Valeurs globales */
+border-style: inherit;
+border-style: initial;
+border-style: unset;
+
+
+border-style est none. Cela signifie que si on modifie {{cssxref("border-width")}} et {{cssxref("border-color")}}, on ne verra pas la bordure tant que cette propriété n'est pas différente de none ou de hidden.border-style peut être définie avec une, deux, trois ou quatre valeurs :
+
+
+Valeurs
+
+
+
+
+<line-style>
+
+
+
+
+
+ none
+
+ L'effet obtenu est le même qu'avec
+ hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
+
+
+ hiddenL'effet obtenu est le même qu'avec
+ none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
+
+
+ dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-width")}}.
+
+
+
+ dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
+
+
+
+ solidAffiche une ligne droite continue.
+
+
+
+ doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}}.
+
+
+
+ grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
+ ridge.
+
+
+ ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
+ groove.
+
+
+ insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
+ outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
+
+
+
+ outset
+
+ inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+/* On définit la mise en forme */
+/* du tableau. */
+table {
+ border-width: 3px;
+ background-color: #52E396;
+}
+tr, td {
+ padding: 2px;
+}
+
+/* voici des classes pour les exemples */
+.b1 {border-style:none;}
+.b2 {border-style:hidden;}
+.b3 {border-style:dotted;}
+.b4 {border-style:dashed;}
+.b5 {border-style:solid;}
+.b6 {border-style:double;}
+.b7 {border-style:groove;}
+.b8 {border-style:ridge;}
+.b9 {border-style:inset;}
+.b10 {border-style:outset;}
+
+HTML
+
+<table>
+ <tr>
+ <td class="b1">none</td>
+ <td class="b2">hidden</td>
+ <td class="b3">dotted</td>
+ <td class="b4">dashed</td>
+ </tr>
+ <tr>
+ <td class="b5">solid</td>
+ <td class="b6">double</td>
+ <td class="b7">groove</td>
+ <td class="b8">ridge</td>
+ </tr>
+ <tr>
+ <td class="b9">inset</td>
+ <td class="b10">outset</td>
+ </tr>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-style', 'border-style')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Aucune modification.
+
+
+ {{SpecName('CSS2.1', 'box.html#propdef-border-style', 'border-style')}}
+ {{Spec2('CSS2.1')}}
+ Ajout du mot-clé
+ hidden.
+
+
+{{SpecName('CSS1', '#border-style', 'border-style')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-top-color/index.html b/files/fr/web/css/border-top-color/index.html
deleted file mode 100644
index 4abdfc1493..0000000000
--- a/files/fr/web/css/border-top-color/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: border-top-color
-slug: Web/CSS/border-top-color
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-top-color
----
-
+
+ border-top-color définit la couleur utilisée pour la bordure haute d'un élément.Syntaxe
-
-/* Valeurs de type <color> */
-border-top-color: red;
-border-top-color: #ffbb00;
-border-top-color: rgb(255, 0, 0);
-border-top-color: hsla(100%, 50%, 25%, 0.75);
-border-top-color: currentColor;
-border-top-color: transparent;
-
-/* Valeurs globales */
-border-top-color: inherit;
-border-top-color: initial;
-border-top-color: unset;
-
-
-Valeurs
-
-
-
-
-<color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.maboite {
- border: solid 0.3em gold;
- border-top-color: red;
- width: auto;
-}
-
-.texterouge {
- color: red;
-}
-
-HTML
-
-<div class="maboite">
- <p>Une boîte avec une bordure autour.
- Notez le côté de la boîte qui est
- <span class="texterouge">rouge</span>.</p>
-</div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-top-color', 'border-top-color')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative, la valeur
- transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
-
-
-{{SpecName('CSS2.1', 'box.html#propdef-border-top-color', 'border-top-color')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-top-color/index.md b/files/fr/web/css/border-top-color/index.md
new file mode 100644
index 0000000000..4abdfc1493
--- /dev/null
+++ b/files/fr/web/css/border-top-color/index.md
@@ -0,0 +1,124 @@
+---
+title: border-top-color
+slug: Web/CSS/border-top-color
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-top-color
+---
+
-
-
-
-
-
- border-top-color définit la couleur utilisée pour la bordure haute d'un élément.Syntaxe
+
+/* Valeurs de type <color> */
+border-top-color: red;
+border-top-color: #ffbb00;
+border-top-color: rgb(255, 0, 0);
+border-top-color: hsla(100%, 50%, 25%, 0.75);
+border-top-color: currentColor;
+border-top-color: transparent;
+
+/* Valeurs globales */
+border-top-color: inherit;
+border-top-color: initial;
+border-top-color: unset;
+
+
+Valeurs
+
+
+
+
+<color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.maboite {
+ border: solid 0.3em gold;
+ border-top-color: red;
+ width: auto;
+}
+
+.texterouge {
+ color: red;
+}
+
+HTML
+
+<div class="maboite">
+ <p>Une boîte avec une bordure autour.
+ Notez le côté de la boîte qui est
+ <span class="texterouge">rouge</span>.</p>
+</div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-top-color', 'border-top-color')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative, la valeur
+ transparent a été supprimée car elle fait désormais partie du type {{cssxref("<color>")}} qui a été étendu.
+
+
+{{SpecName('CSS2.1', 'box.html#propdef-border-top-color', 'border-top-color')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-top-left-radius/index.html b/files/fr/web/css/border-top-left-radius/index.html
deleted file mode 100644
index 0c34d5e94d..0000000000
--- a/files/fr/web/css/border-top-left-radius/index.html
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: border-top-left-radius
-slug: Web/CSS/border-top-left-radius
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-top-left-radius
----
-
+
+
+
+
+
+ border-top-left-radius définit le rayon de courbure de la bordure pour le coin en haut à gauche de la boîte. L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}.border-top-left-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
-
-/* Le coin est un quart de cercle */
-/* La valeur indique le rayon de courbure */
-border-top-left-radius: 3px;
-
-/* Le coin est un quart d'ellipse */
-/* La première valeur indique le demi-axe */
-/* horizontal et la seconde le demi-axe */
-/* vertical */
-border-top-left-radius: 0.5em 1em;
-
-border-top-left-radius: inherit;
-
-
-
-
-
-<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
-
- <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
-
-
-
-
-<length-percentage>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: lightgreen;
- border: solid 1px black;
- width: 100px;
- height: 130px;
-}
-
-.arc_cercle {
- border-top-left-radius: 40px 40px;
-}
-
-.arc_ellipse {
- border-top-left-radius: 40px 20px;
-}
-
-.pourcentage {
- border-top-left-radius: 40%;
-}
-
-.rognage {
- border: black 10px double;
- border-top-left-radius: 40%;
- background-color: rgb(250,20,70);
- background-clip: content-box; // essayez margin-box...
-}
-
-
-HTML
-
- <div class="arc_cercle"></div>
- <div class="arc_ellipse"></div>
- <div class="pourcentage"></div>
- <div class="rognage"></div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-radius', 'border-top-left-radius')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-top-left-radius/index.md b/files/fr/web/css/border-top-left-radius/index.md
new file mode 100644
index 0000000000..0c34d5e94d
--- /dev/null
+++ b/files/fr/web/css/border-top-left-radius/index.md
@@ -0,0 +1,136 @@
+---
+title: border-top-left-radius
+slug: Web/CSS/border-top-left-radius
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-top-left-radius
+---
+
-
- border-top-left-radius définit le rayon de courbure de la bordure pour le coin en haut à gauche de la boîte. L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.Un arrière-plan (que ce soit une couleur ou une image) sera rogné selon la bordure même si celle-ci est arrondie. L'endroit du rognage est défini selon la valeur de {{cssxref("background-clip")}}.border-top-left-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
+
+/* Le coin est un quart de cercle */
+/* La valeur indique le rayon de courbure */
+border-top-left-radius: 3px;
+
+/* Le coin est un quart d'ellipse */
+/* La première valeur indique le demi-axe */
+/* horizontal et la seconde le demi-axe */
+/* vertical */
+border-top-left-radius: 0.5em 1em;
+
+border-top-left-radius: inherit;
+
+
+
+
+
+<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
+
+ <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
+
+
+
+
+<length-percentage>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: lightgreen;
+ border: solid 1px black;
+ width: 100px;
+ height: 130px;
+}
+
+.arc_cercle {
+ border-top-left-radius: 40px 40px;
+}
+
+.arc_ellipse {
+ border-top-left-radius: 40px 20px;
+}
+
+.pourcentage {
+ border-top-left-radius: 40%;
+}
+
+.rognage {
+ border: black 10px double;
+ border-top-left-radius: 40%;
+ background-color: rgb(250,20,70);
+ background-clip: content-box; // essayez margin-box...
+}
+
+
+HTML
+
+ <div class="arc_cercle"></div>
+ <div class="arc_ellipse"></div>
+ <div class="pourcentage"></div>
+ <div class="rognage"></div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-radius', 'border-top-left-radius')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-top-right-radius/index.html b/files/fr/web/css/border-top-right-radius/index.html
deleted file mode 100644
index 51c7324d0f..0000000000
--- a/files/fr/web/css/border-top-right-radius/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: border-top-right-radius
-slug: Web/CSS/border-top-right-radius
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-top-right-radius
----
-
+
+ border-top-right-radius définit le rayon de courbure de la bordure pour le coin en haut à droite de la boîte. L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.border-top-radius-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
-
-/* Le coin est un quart de cercle */
-/* La valeur indique le rayon de courbure */
-border-top-right-radius: 3px;
-
-/* Le coin est un quart d'ellipse */
-/* La première valeur indique le demi-axe */
-/* horizontal et la seconde le demi-axe */
-/* vertical */
-border-top-right-radius: 0.5em 1em;
-
-border-top-right-radius: inherit;
-
-
-
-
-
-<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
-
- <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
-
-
-
-
-<length-percentage>.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-div {
- background-color: lightgreen;
- border: solid 1px black;
- width: 100px;
- height: 130px;
-}
-
-.arc_cercle {
- border-top-right-radius: 40px 40px;
-}
-
-.arc_ellipse {
- border-top-right-radius: 40px 20px;
-}
-
-.pourcentage {
- border-top-right-radius: 40%;
-}
-
-.rognage {
- border: black 10px double;
- border-top-right-radius: 40%;
- background-color: rgb(250,20,70);
- background-clip: content-box; // essayez margin-box...
-}
-
-
-HTML
-
- <div class="arc_cercle"></div>
- <div class="arc_ellipse"></div>
- <div class="pourcentage"></div>
- <div class="rognage"></div>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
-
-{{SpecName('CSS3 Backgrounds', '#the-border-radius', 'border-top-right-radius')}}
- {{Spec2('CSS3 Backgrounds')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-top-right-radius/index.md b/files/fr/web/css/border-top-right-radius/index.md
new file mode 100644
index 0000000000..51c7324d0f
--- /dev/null
+++ b/files/fr/web/css/border-top-right-radius/index.md
@@ -0,0 +1,138 @@
+---
+title: border-top-right-radius
+slug: Web/CSS/border-top-right-radius
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-top-right-radius
+---
+
-
- border-top-right-radius définit le rayon de courbure de la bordure pour le coin en haut à droite de la boîte. L'arrondi peut être un fragment de cercle ou d'ellipse. Si une des valeurs vaut 0, aucun arrondi n'a lieu et le coin est un angle droit.border-top-radius-radius, cela aura pour effet de réinitialiser la valeur avec la valeur initiale de la propriété raccourcie.Syntaxe
+
+/* Le coin est un quart de cercle */
+/* La valeur indique le rayon de courbure */
+border-top-right-radius: 3px;
+
+/* Le coin est un quart d'ellipse */
+/* La première valeur indique le demi-axe */
+/* horizontal et la seconde le demi-axe */
+/* vertical */
+border-top-right-radius: 0.5em 1em;
+
+border-top-right-radius: inherit;
+
+
+
+
+
+<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure pour ce coin
+
+ <length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe horizontal de l'ellipse pour ce coin<length>) ou un pourcentage (<percentage>) qui indique le rayon de courbure de l'axe vertical de l'ellipse pour ce coinValeurs
+
+
+
+
+<length-percentage>.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+div {
+ background-color: lightgreen;
+ border: solid 1px black;
+ width: 100px;
+ height: 130px;
+}
+
+.arc_cercle {
+ border-top-right-radius: 40px 40px;
+}
+
+.arc_ellipse {
+ border-top-right-radius: 40px 20px;
+}
+
+.pourcentage {
+ border-top-right-radius: 40%;
+}
+
+.rognage {
+ border: black 10px double;
+ border-top-right-radius: 40%;
+ background-color: rgb(250,20,70);
+ background-clip: content-box; // essayez margin-box...
+}
+
+
+HTML
+
+ <div class="arc_cercle"></div>
+ <div class="arc_ellipse"></div>
+ <div class="pourcentage"></div>
+ <div class="rognage"></div>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+
+{{SpecName('CSS3 Backgrounds', '#the-border-radius', 'border-top-right-radius')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-top-style/index.html b/files/fr/web/css/border-top-style/index.html
deleted file mode 100644
index aa175464ec..0000000000
--- a/files/fr/web/css/border-top-style/index.html
+++ /dev/null
@@ -1,198 +0,0 @@
----
-title: border-top-style
-slug: Web/CSS/border-top-style
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-top-style
----
-
+
+ border-top-style définit le style de ligne utilisé pour mettre en forme la bordure en haut d'une boîte.Syntaxe
-
-/* Valeurs avec un mot-clé */
-border-top-style: none;
-border-top-style: hidden;
-border-top-style: dotted;
-border-top-style: dashed;
-border-top-style: solid;
-border-top-style: double;
-border-top-style: groove;
-border-top-style: ridge;
-border-top-style: inset;
-border-top-style: outset;
-
-/* Valeurs globales */
-border-top-style: inherit;
-border-top-style: inherit;
-border-top-style: inherit;
-
-
-Valeurs
-
-
-
-
-<br-style>
-
-
-
-
-
- noneL'effet obtenu est le même qu'avec
- hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-top-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
-
-
- hiddenL'effet obtenu est le même qu'avec
- none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-top-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
-
-
- dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-top-width")}}.
-
-
-
- dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
-
-
-
- solidAffiche une ligne droite continue.
-
-
-
- doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-top-width")}}.
-
-
-
- grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
- ridge.
-
-
- ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
- groove.
-
-
- insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
- outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
-
-
-
- outset
-
- inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.inheritSyntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-/* On applique un style sur le tableau */
-table {
- border-width: 2px;
- background-color: #52E385;
-}
-tr, td {
- padding: 3px;
-}
-
-/* Des exemples pour border-top-style */
-.b1 {border-top-style:none;}
-.b2 {border-top-style:hidden;}
-.b3 {border-top-style:dotted;}
-.b4 {border-top-style:dashed;}
-.b5 {border-top-style:solid;}
-.b6 {border-top-style:double;}
-.b7 {border-top-style:groove;}
-.b8 {border-top-style:ridge;}
-.b9 {border-top-style:inset;}
-.b10 {border-top-style:outset;}
-
-HTML
-
-<table>
- <tr>
- <td class="b1">none</td>
- <td class="b2">hidden</td>
- <td class="b3">petits points</td>
- <td class="b4">tirets</td>
- </tr>
- <tr>
- <td class="b5">solid</td>
- <td class="b6">double</td>
- <td class="b7">groove</td>
- <td class="b8">ridge</td>
- </tr>
- <tr>
- <td class="b9">inset</td>
- <td class="b10">outset</td>
- </tr>
-</table>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-top-style')}}
- {{Spec2('CSS3 Backgrounds')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-top-style')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-top-style/index.md b/files/fr/web/css/border-top-style/index.md
new file mode 100644
index 0000000000..aa175464ec
--- /dev/null
+++ b/files/fr/web/css/border-top-style/index.md
@@ -0,0 +1,198 @@
+---
+title: border-top-style
+slug: Web/CSS/border-top-style
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-top-style
+---
+
-
-
-
- border-top-style définit le style de ligne utilisé pour mettre en forme la bordure en haut d'une boîte.Syntaxe
+
+/* Valeurs avec un mot-clé */
+border-top-style: none;
+border-top-style: hidden;
+border-top-style: dotted;
+border-top-style: dashed;
+border-top-style: solid;
+border-top-style: double;
+border-top-style: groove;
+border-top-style: ridge;
+border-top-style: inset;
+border-top-style: outset;
+
+/* Valeurs globales */
+border-top-style: inherit;
+border-top-style: inherit;
+border-top-style: inherit;
+
+
+Valeurs
+
+
+
+
+<br-style>
+
+
+
+
+
+ noneL'effet obtenu est le même qu'avec
+ hidden : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-top-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, none a la priorité la plus basse donc si une autre bordure est définie et fusionne avec celle-ci, elle sera affichée.
+
+
+ hiddenL'effet obtenu est le même qu'avec
+ none : aucune bordure n'est affichée. Dans ce cas, sauf si une image d'arrière-plan est définie, la valeur calculée de {{cssxref("border-top-width")}} sera 0, même si cette dernière indique une autre valeur. Lorsqu'utilisée sur une cellule d'un tableau avec la fusion des bordures, hidden a la plus haute priorité et donc si une autre bordure est définie et fusionne avec celle-ci, aucune ne sera affichée.
+
+
+ dottedAffiche une série de points ronds. L'espace entre ces points n'est pas défini par la spécification et est donc laissé à l'implémentation. Le rayon des points correspond à la moitié de {{cssxref("border-top-width")}}.
+
+
+
+ dashedAffiche une série de tirets. La taille de ces tirets n'est pas définie par la spécification et est laissée à l'implémentation.
+
+
+
+ solidAffiche une ligne droite continue.
+
+
+
+ doubleDeux lignes droites sont affichées dont la somme des épaisseurs correspond à la valeur fournie par {{cssxref("border-width")}} ou {{cssxref("border-top-width")}}.
+
+
+
+ grooveLa bordure crée un effet 3D donnant l'impression qu'elle a été gravée dans le document. On obtient un effet opposé à
+ ridge.
+
+
+ ridgeLa bordure crée un effet 3D donnant l'impression que la bordure ressort du document. L'effet obtenu est opposé à celui obtenu avec
+ groove.
+
+
+ insetLa bordure crée un effet 3D qui donne l'impression que la boîte est renfoncée dans le document (l'effet obtenu est opposé à celui obtenu avec
+ outset). Lorsqu'elle est appliquée sur une cellule de tableau et que {{cssxref("border-collapse")}} vaut collapsed, cette valeur se comporte comme groove.
+
+
+
+ outset
+
+ inset). Lorsqu'elle est utilisé sur une cellule de tableau avec {{cssxref("border-collapse")}} qui vaut collapsed, cette valeur se comporte comme ridge.inheritSyntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+/* On applique un style sur le tableau */
+table {
+ border-width: 2px;
+ background-color: #52E385;
+}
+tr, td {
+ padding: 3px;
+}
+
+/* Des exemples pour border-top-style */
+.b1 {border-top-style:none;}
+.b2 {border-top-style:hidden;}
+.b3 {border-top-style:dotted;}
+.b4 {border-top-style:dashed;}
+.b5 {border-top-style:solid;}
+.b6 {border-top-style:double;}
+.b7 {border-top-style:groove;}
+.b8 {border-top-style:ridge;}
+.b9 {border-top-style:inset;}
+.b10 {border-top-style:outset;}
+
+HTML
+
+<table>
+ <tr>
+ <td class="b1">none</td>
+ <td class="b2">hidden</td>
+ <td class="b3">petits points</td>
+ <td class="b4">tirets</td>
+ </tr>
+ <tr>
+ <td class="b5">solid</td>
+ <td class="b6">double</td>
+ <td class="b7">groove</td>
+ <td class="b8">ridge</td>
+ </tr>
+ <tr>
+ <td class="b9">inset</td>
+ <td class="b10">outset</td>
+ </tr>
+</table>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-style', 'border-top-style')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS2.1', 'box.html#border-style-properties', 'border-top-style')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-top-width/index.html b/files/fr/web/css/border-top-width/index.html
deleted file mode 100644
index e96b5ef89f..0000000000
--- a/files/fr/web/css/border-top-width/index.html
+++ /dev/null
@@ -1,134 +0,0 @@
----
-title: border-top-width
-slug: Web/CSS/border-top-width
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-top-width
----
-
+
+
+
+ border-top-width définit l'épaisseur de la bordure pour le côté haut d'une boîte.Syntaxe
-
-/* Une valeur de longueur */
-/* Type <length> */
-border-top-width: 10em;
-border-top-width: 3vmax;
-border-top-width: 6px;
-
-/* Valeurs avec un mot-clé */
-border-top-width: thin;
-border-top-width: medium;
-border-top-width: thick;
-
-/* Valeurs globales */
-border-top-width: inherit;
-border-top-width: initial;
-border-top-width: unset;
-
-
-Valeurs
-
-
-
-
-<line-width>
-
- La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.element1{
- border-top: thick solid red;
-}
-.element2{
- border-top: medium solid orange;
-}
-.element3{
- border-top: thin solid green;
-}
-
-
-HTML
-
-<p class="element1">
- Une bordure épaisse rouge.
-</p>
-
-<p class="element2">
- Une bordure moyenne orange.
-</p>
-
-<p class="element3">
- Et une bordure fine verte.
-</p>
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-top-width')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification significative.
-
-
-
-{{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-top-width')}}
- {{Spec2('CSS2.1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-top-width/index.md b/files/fr/web/css/border-top-width/index.md
new file mode 100644
index 0000000000..e96b5ef89f
--- /dev/null
+++ b/files/fr/web/css/border-top-width/index.md
@@ -0,0 +1,134 @@
+---
+title: border-top-width
+slug: Web/CSS/border-top-width
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-top-width
+---
+
-
-
-
- border-top-width définit l'épaisseur de la bordure pour le côté haut d'une boîte.Syntaxe
+
+/* Une valeur de longueur */
+/* Type <length> */
+border-top-width: 10em;
+border-top-width: 3vmax;
+border-top-width: 6px;
+
+/* Valeurs avec un mot-clé */
+border-top-width: thin;
+border-top-width: medium;
+border-top-width: thick;
+
+/* Valeurs globales */
+border-top-width: inherit;
+border-top-width: initial;
+border-top-width: unset;
+
+
+Valeurs
+
+
+
+
+<line-width>
+
+ La spécification ne précise pas de façon exacte l'épaisseur correspondant à chacun de ces mots-clés (c'est donc à chaque implémentation de choisir). La spécification requiert toutefois que l'inégalité suivante soit respectée thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que ces valeurs soient constantes pour un même document.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.element1{
+ border-top: thick solid red;
+}
+.element2{
+ border-top: medium solid orange;
+}
+.element3{
+ border-top: thin solid green;
+}
+
+
+HTML
+
+<p class="element1">
+ Une bordure épaisse rouge.
+</p>
+
+<p class="element2">
+ Une bordure moyenne orange.
+</p>
+
+<p class="element3">
+ Et une bordure fine verte.
+</p>
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-top-width')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification significative.
+
+
+
+{{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-top-width')}}
+ {{Spec2('CSS2.1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border-top/index.html b/files/fr/web/css/border-top/index.html
deleted file mode 100644
index 4b9d59fe82..0000000000
--- a/files/fr/web/css/border-top/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: border-top
-slug: Web/CSS/border-top
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border-top
----
-
+
+
+
+ border-top est une propriété raccourcie qui permet de paramétrer la bordure haute d'un élément.
-
-
-border-top définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi :border-top-style: dotted;
-border-top: thick green;
-
-
-border-top-style: dotted;
-border-top: none thick green;
-
-
-border-top est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
-
-border-top: 1px;
-border-top: 2px dotted;
-border-top: medium dashed green;
-
-
-Valeurs
-
-
-
-
-<br-width> <br-style> <color> Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.exemple {
- border-top: 3px dotted orange;
-}
-
-HTML
-
-<p class="exemple">
- En passant elle prit sur un rayon un pot
- de confiture portant cette étiquette,
- « MARMELADE D’ORANGES. »
-</p>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#border-top', 'border-top')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-top-color")}} s'applique.
-
-
- {{SpecName('CSS2.1', 'box.html#propdef-border-top', 'border-top')}}
- {{Spec2('CSS2.1')}}
- Aucune modification significative.
-
-
-
-{{SpecName('CSS1', '#border-top', 'border-top')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-border-top est une propriété raccourcie qui permet de paramétrer la bordure haute d'un élément.
+
+
+border-top définit toujours les valeurs de toutes les propriétés qu'elle peut définir, même si celles-ci ne sont pas indiquées. Pour les valeurs qui ne sont pas indiquées, on prendra les valeurs par défaut. Ainsi :border-top-style: dotted;
+border-top: thick green;
+
+
+border-top-style: dotted;
+border-top: none thick green;
+
+
+border-top est ignorée.none, si on ne définit pas le style de la bordure, on aura la valeur par défaut, c'est-à-dire qu'on aura aucune bordure.Syntaxe
+
+border-top: 1px;
+border-top: 2px dotted;
+border-top: medium dashed green;
+
+
+Valeurs
+
+
+
+
+<br-width> <br-style> <color> Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.exemple {
+ border-top: 3px dotted orange;
+}
+
+HTML
+
+<p class="exemple">
+ En passant elle prit sur un rayon un pot
+ de confiture portant cette étiquette,
+ « MARMELADE D’ORANGES. »
+</p>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#border-top', 'border-top')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification directe bien que la modification de valeurs pour {{cssxref("border-top-color")}} s'applique.
+
+
+ {{SpecName('CSS2.1', 'box.html#propdef-border-top', 'border-top')}}
+ {{Spec2('CSS2.1')}}
+ Aucune modification significative.
+
+
+
+{{SpecName('CSS1', '#border-top', 'border-top')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+border-width est une propriété raccourcie qui définit la largeur de la bordure d'un élément.
-
-
-Syntaxe
-
-/* Valeurs avec un mot-clé */
-border-width: thin;
-border-width: medium;
-border-width: thick;
-
-/* Une largeur pour chaque côté */
-/* Valeur de type <length> */
-border-width: 5px;
-
-/* largeur verticale puis horizontale */
-border-width: 2px 1.5em;
-
-/* haut | largeur horizontale | bas */
-border-width: 1px 2em 1.5cm;
-
-/* haut | droite | bas | gauche */
-border-width: 1px 2em 0 4rem;
-
-/* Valeurs globales */
-border-width: inherit;
-border-width: initial;
-border-width: unset;
-
-
-border-width peut être définie avec une, deux, trois ou quatre valeurs.
-
-
-Valeurs
-
-
-
-
-<line-width>
-
- La spécification ne définit pas précisément l'épaisseur correspondante à chacun de ces mots-clés, les rendant dépendants de l'implémentation. Toutefois, la spécification indique que l'épaisseur doit suivre la relation d'inégalité suivante : thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que les valeurs pour chaque mot-clé doivent être constantes pour un même document.Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-HTML
-
-<p id="unevaleur">
- Une valeur : la bordure fait 6px sur les 4 côtés.
-</p>
-
-<p id="deuxvaleurs">
- Deux valeurs différentes : elle fait 2px en haut
- et en bas et elle mesure 10px pour les bords droit
- et gauche.
-</p>
-
-<p id="troisvaleurs">
- Trois valeurs différentes : 0.3em pour le haut,
- 9px pour le bas et zéro pour la droite et la
- gauche.
-</p>
-
-<p id="quatrevaleurs">
- Quatre valeurs différentes : "thin" pour le haut,
- "medium" pour la droite, "thick" pour le bas
- et 1em pour la gauche.
-</p>
-
-CSS
-
-#unevaleur {
- border: ridge #ccc;
- border-width: 6px;
-}
-
-#deuxvaleurs {
- border: solid red;
- border-width: 2px 10px;
-}
-
-#troisvaleurs {
- border: dotted orange;
- border-width: 0.3em 0 9px;
-}
-
-#quatrevaleurs {
- border: solid lightgreen;
- border-width: thin medium thick 1em;
-}
-
-p {
- width: auto;
- margin: 0.25em;
- padding: 0.25em;
-}
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-width')}}
- {{Spec2('CSS3 Backgrounds')}}
- Pas de modification directe. La modification du type de données {{cssxref("<length>")}} impacte cette propriété.
-
-
- {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-width')}}
- {{Spec2('CSS2.1')}}
- Ajout de la contrainte indiquant que la signification des valeurs doit être constante au sein d'un document.
-
-
-
-{{SpecName('CSS1', '#border-width', 'border-width')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border-width/index.md b/files/fr/web/css/border-width/index.md
new file mode 100644
index 0000000000..f41d3cb8a7
--- /dev/null
+++ b/files/fr/web/css/border-width/index.md
@@ -0,0 +1,192 @@
+---
+title: border-width
+slug: Web/CSS/border-width
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border-width
+---
+
-
-
-
- border-width est une propriété raccourcie qui définit la largeur de la bordure d'un élément.
+
+
+Syntaxe
+
+/* Valeurs avec un mot-clé */
+border-width: thin;
+border-width: medium;
+border-width: thick;
+
+/* Une largeur pour chaque côté */
+/* Valeur de type <length> */
+border-width: 5px;
+
+/* largeur verticale puis horizontale */
+border-width: 2px 1.5em;
+
+/* haut | largeur horizontale | bas */
+border-width: 1px 2em 1.5cm;
+
+/* haut | droite | bas | gauche */
+border-width: 1px 2em 0 4rem;
+
+/* Valeurs globales */
+border-width: inherit;
+border-width: initial;
+border-width: unset;
+
+
+border-width peut être définie avec une, deux, trois ou quatre valeurs.
+
+
+Valeurs
+
+
+
+
+<line-width>
+
+ La spécification ne définit pas précisément l'épaisseur correspondante à chacun de ces mots-clés, les rendant dépendants de l'implémentation. Toutefois, la spécification indique que l'épaisseur doit suivre la relation d'inégalité suivante : thin (fin)medium (intermédiaire)thick (épais)thin ≤ medium ≤ thick et que les valeurs pour chaque mot-clé doivent être constantes pour un même document.Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+HTML
+
+<p id="unevaleur">
+ Une valeur : la bordure fait 6px sur les 4 côtés.
+</p>
+
+<p id="deuxvaleurs">
+ Deux valeurs différentes : elle fait 2px en haut
+ et en bas et elle mesure 10px pour les bords droit
+ et gauche.
+</p>
+
+<p id="troisvaleurs">
+ Trois valeurs différentes : 0.3em pour le haut,
+ 9px pour le bas et zéro pour la droite et la
+ gauche.
+</p>
+
+<p id="quatrevaleurs">
+ Quatre valeurs différentes : "thin" pour le haut,
+ "medium" pour la droite, "thick" pour le bas
+ et 1em pour la gauche.
+</p>
+
+CSS
+
+#unevaleur {
+ border: ridge #ccc;
+ border-width: 6px;
+}
+
+#deuxvaleurs {
+ border: solid red;
+ border-width: 2px 10px;
+}
+
+#troisvaleurs {
+ border: dotted orange;
+ border-width: 0.3em 0 9px;
+}
+
+#quatrevaleurs {
+ border: solid lightgreen;
+ border-width: thin medium thick 1em;
+}
+
+p {
+ width: auto;
+ margin: 0.25em;
+ padding: 0.25em;
+}
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-width', 'border-width')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ Pas de modification directe. La modification du type de données {{cssxref("<length>")}} impacte cette propriété.
+
+
+ {{SpecName('CSS2.1', 'box.html#border-width-properties', 'border-width')}}
+ {{Spec2('CSS2.1')}}
+ Ajout de la contrainte indiquant que la signification des valeurs doit être constante au sein d'un document.
+
+
+
+{{SpecName('CSS1', '#border-width', 'border-width')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/border/index.html b/files/fr/web/css/border/index.html
deleted file mode 100644
index 1c1edbdede..0000000000
--- a/files/fr/web/css/border/index.html
+++ /dev/null
@@ -1,144 +0,0 @@
----
-title: border
-slug: Web/CSS/border
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/border
----
-
+
+
+
+ border est une propriété raccourcie qui permet de définir les propriétés liées à la bordure. border peut être utilisée pour définir les valeurs de {{cssxref("border-width")}}, {{cssxref("border-style")}} et {{cssxref("border-color")}}.none). Ainsi, border peut être utilisée pour réinitialiser n'importe quelle propriété liée à la bordure définie plus haut dans la cascade.border) n'accepte qu'une seule valeur pour chaque propriété détaillée. Le résultat obtenu sera donc homogène sur les quatre côtés.Différences entre les bordures et les contours (outlines)
-
-
-
-
-Syntaxe
-
-/* style */
-border: solid;
-
-/* largeur | style */
-border: 2px dotted;
-
-/* style | couleur */
-border: outset #f33;
-
-/* largeur | style | couleur */
-border: medium dashed green;
-
-/* Valeurs globales */
-border: inherit;
-border: initial;
-border: unset;
-
-
-border peut être définie grâce à une ou plusieurs valeurs <line-width>, <line-style> ou <color>.none.Valeurs
-
-
-
-
-<line-width>medium).<line-style>none).<color>Syntaxe formelle
-
-{{csssyntax}}
-
-Exemples
-
-CSS
-
-.brd {
- border: 1px solid black;
-}
-style {
- border: 1px dashed black;
- display:block;
-}
-
-HTML
-
-<div class="brd">Oh des bordures</div>
-<p>
- N'hésitez pas à éditer le CSS qui suit pour voir
- l'effet des valeurs.
-</p>
-<style contenteditable>
- .brd {
- border: 1px solid black;
- }
-</style>
-
-
-Résultat
-
-Spécifications
-
-
-
-
-
-
-
-
-
- Spécification
- État
- Commentaires
-
-
- {{SpecName('CSS3 Backgrounds', '#the-border-shorthands', 'border')}}
- {{Spec2('CSS3 Backgrounds')}}
- La prise en charge du mot-clé
- transparent est retirée car celui-ci est désormais intégré au type {{cssxref("<color>")}}. En pratique, cela n'a pas d'impact. Bien que {{cssxref("border-image")}} ne puisse être définie via border, cette dernière la réinitialise quand même avec sa valeur initiale (none).
-
- {{SpecName('CSS2.1', 'box.html#border-shorthand-properties', 'border')}}
- {{Spec2('CSS2.1')}}
- Le mot-clé
- inherit peut être utilisé et transparent est considéré comme une couleur valide.
-
-
-{{SpecName('CSS1', '#border', 'border')}}
- {{Spec2('CSS1')}}
- Définition initiale.
- Compatibilité des navigateurs
-
-Voir aussi
-
-
-
diff --git a/files/fr/web/css/border/index.md b/files/fr/web/css/border/index.md
new file mode 100644
index 0000000000..1c1edbdede
--- /dev/null
+++ b/files/fr/web/css/border/index.md
@@ -0,0 +1,144 @@
+---
+title: border
+slug: Web/CSS/border
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/border
+---
+border est une propriété raccourcie qui permet de définir les propriétés liées à la bordure. border peut être utilisée pour définir les valeurs de {{cssxref("border-width")}}, {{cssxref("border-style")}} et {{cssxref("border-color")}}.none). Ainsi, border peut être utilisée pour réinitialiser n'importe quelle propriété liée à la bordure définie plus haut dans la cascade.border) n'accepte qu'une seule valeur pour chaque propriété détaillée. Le résultat obtenu sera donc homogène sur les quatre côtés.Différences entre les bordures et les contours (outlines)
+
+
+
+
+Syntaxe
+
+/* style */
+border: solid;
+
+/* largeur | style */
+border: 2px dotted;
+
+/* style | couleur */
+border: outset #f33;
+
+/* largeur | style | couleur */
+border: medium dashed green;
+
+/* Valeurs globales */
+border: inherit;
+border: initial;
+border: unset;
+
+
+border peut être définie grâce à une ou plusieurs valeurs <line-width>, <line-style> ou <color>.none.Valeurs
+
+
+
+
+<line-width>medium).<line-style>none).<color>Syntaxe formelle
+
+{{csssyntax}}
+
+Exemples
+
+CSS
+
+.brd {
+ border: 1px solid black;
+}
+style {
+ border: 1px dashed black;
+ display:block;
+}
+
+HTML
+
+<div class="brd">Oh des bordures</div>
+<p>
+ N'hésitez pas à éditer le CSS qui suit pour voir
+ l'effet des valeurs.
+</p>
+<style contenteditable>
+ .brd {
+ border: 1px solid black;
+ }
+</style>
+
+
+Résultat
+
+Spécifications
+
+
+
+
+
+
+
+
+
+ Spécification
+ État
+ Commentaires
+
+
+ {{SpecName('CSS3 Backgrounds', '#the-border-shorthands', 'border')}}
+ {{Spec2('CSS3 Backgrounds')}}
+ La prise en charge du mot-clé
+ transparent est retirée car celui-ci est désormais intégré au type {{cssxref("<color>")}}. En pratique, cela n'a pas d'impact. Bien que {{cssxref("border-image")}} ne puisse être définie via border, cette dernière la réinitialise quand même avec sa valeur initiale (none).
+
+ {{SpecName('CSS2.1', 'box.html#border-shorthand-properties', 'border')}}
+ {{Spec2('CSS2.1')}}
+ Le mot-clé
+ inherit peut être utilisé et transparent est considéré comme une couleur valide.
+
+
+{{SpecName('CSS1', '#border', 'border')}}
+ {{Spec2('CSS1')}}
+ Définition initiale.
+ Compatibilité des navigateurs
+
+Voir aussi
+
+
+
diff --git a/files/fr/web/css/bottom/index.html b/files/fr/web/css/bottom/index.html
deleted file mode 100644
index b1b5d78f15..0000000000
--- a/files/fr/web/css/bottom/index.html
+++ /dev/null
@@ -1,162 +0,0 @@
----
-title: bottom
-slug: Web/CSS/bottom
-tags:
- - CSS
- - Propriété
- - Reference
-translation_of: Web/CSS/bottom
----
-bottom contribue à la définition de l'emplacement vertical des éléments positionnés. Elle n'a aucun effet pour les éléments non-positionnés.absolute ou fixed, la propriété bottom définit la distance entre le bord bas de la marge de l'élément et le bord bas du bloc qui contient l'élément.
Pour les éléments positionnés de façon relative, c'est-à-dire ceux dont la valeur de propriété {{cssxref("position")}} est relative, la propriété bottom définit la distance dont le bord bas de l'élément est déplacé au-dessus de sa position normale.
Pour les éléments adhérents, c'est-à-dire ceux dont la valeur de la propriété {{cssxref("position")}} est sticky
Lorsque les propriétés {{cssxref("top")}} et bottom sont définies et que {{cssxref("height")}} n'est pas définie ou vaut auto ou 100%, les distances indiquées par {{cssxref("top")}} et bottom sont respectées. Dans les autres cas, si {{cssxref("height")}} est contrainte, la propriété {{cssxref("top")}} prendra le pas sur la propriété bottom qui sera alors ignorée.
/* Valeurs de longueur */ -/* Type <length> */ -bottom: 3px; -bottom: 2.4em; - -/* Valeurs proportionnelles à la hauteur */ -/* du bloc englobant */ -/* Type <percentages> */ -bottom: 10%; - -/* Valeurs avec un mot-clé */ -bottom: auto; - -/* Valeurs globales */ -bottom: inherit; -bottom: initial; -bottom: unset; -- -
<length><percentage>autoheight: auto est traitée comme une hauteur basée sur la taille du contenuauto, l'élément n'est pas déplacé verticalement.inheritauto.Dans l'exemple qui suit, on illustre la différence de comportement de la propriété bottom lorsque {{cssxref("position")}} vaut absolute ou lorsqu'elle vaut fixed. When the regular text becomes taller than the viewable portion of the page (that is, the browser window's viewport), blocks positioned with position:absolute scroll with the page, while blocks positioned with position:fixed don't.
p {
- font-size:30px;
- line-height:3em;
-}
-
-div.pos {
- width:49%;
- text-align:center;
- border:2px solid #00f;
-}
-
-div#abs {
- position:absolute;
- bottom:0;
- left:0;
-}
-
-div#fix {
- position:fixed;
- bottom:0;
- right:0;
-}
-
-<p> - Voici <br>un<br>grand<br>grand,<br>grand, - <br>grand,<br>grand,<br>grand<br>contenu. -</p> - -<div id="fix" class="pos"> - <p>Fixe</p> -</div> - -<div id="abs" class="pos"> - <p>Absolu</p> -</div>- -
{{EmbedLiveSample("Exemples","300","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS2.1', 'visuren.html#choose-position', 'bottom')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'bottom')}} | -{{Spec2('CSS3 Transitions')}} | -bottom peut désormais être animée. |
-
| {{SpecName('CSS3 Positioning', '#propdef-bottom', 'bottom')}} | -{{Spec2('CSS3 Positioning')}} | -Décrit le comportement pour le positionnement adhérent (sticky). | -
{{cssinfo}}
- -{{Compat("css.properties.bottom")}}
- -La propriété bottom contribue à la définition de l'emplacement vertical des éléments positionnés. Elle n'a aucun effet pour les éléments non-positionnés.
absolute ou fixed, la propriété bottom définit la distance entre le bord bas de la marge de l'élément et le bord bas du bloc qui contient l'élément.
+
+Pour les éléments positionnés de façon relative, c'est-à-dire ceux dont la valeur de propriété {{cssxref("position")}} est relative, la propriété bottom définit la distance dont le bord bas de l'élément est déplacé au-dessus de sa position normale.
Pour les éléments adhérents, c'est-à-dire ceux dont la valeur de la propriété {{cssxref("position")}} est sticky
Lorsque les propriétés {{cssxref("top")}} et bottom sont définies et que {{cssxref("height")}} n'est pas définie ou vaut auto ou 100%, les distances indiquées par {{cssxref("top")}} et bottom sont respectées. Dans les autres cas, si {{cssxref("height")}} est contrainte, la propriété {{cssxref("top")}} prendra le pas sur la propriété bottom qui sera alors ignorée.
/* Valeurs de longueur */ +/* Type <length> */ +bottom: 3px; +bottom: 2.4em; + +/* Valeurs proportionnelles à la hauteur */ +/* du bloc englobant */ +/* Type <percentages> */ +bottom: 10%; + +/* Valeurs avec un mot-clé */ +bottom: auto; + +/* Valeurs globales */ +bottom: inherit; +bottom: initial; +bottom: unset; ++ +
<length><percentage>autoheight: auto est traitée comme une hauteur basée sur la taille du contenuauto, l'élément n'est pas déplacé verticalement.inheritauto.Dans l'exemple qui suit, on illustre la différence de comportement de la propriété bottom lorsque {{cssxref("position")}} vaut absolute ou lorsqu'elle vaut fixed. When the regular text becomes taller than the viewable portion of the page (that is, the browser window's viewport), blocks positioned with position:absolute scroll with the page, while blocks positioned with position:fixed don't.
p {
+ font-size:30px;
+ line-height:3em;
+}
+
+div.pos {
+ width:49%;
+ text-align:center;
+ border:2px solid #00f;
+}
+
+div#abs {
+ position:absolute;
+ bottom:0;
+ left:0;
+}
+
+div#fix {
+ position:fixed;
+ bottom:0;
+ right:0;
+}
+
+<p> + Voici <br>un<br>grand<br>grand,<br>grand, + <br>grand,<br>grand,<br>grand<br>contenu. +</p> + +<div id="fix" class="pos"> + <p>Fixe</p> +</div> + +<div id="abs" class="pos"> + <p>Absolu</p> +</div>+ +
{{EmbedLiveSample("Exemples","300","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS2.1', 'visuren.html#choose-position', 'bottom')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'bottom')}} | +{{Spec2('CSS3 Transitions')}} | +bottom peut désormais être animée. |
+
| {{SpecName('CSS3 Positioning', '#propdef-bottom', 'bottom')}} | +{{Spec2('CSS3 Positioning')}} | +Décrit le comportement pour le positionnement adhérent (sticky). | +
{{cssinfo}}
+ +{{Compat("css.properties.bottom")}}
+ +La propriété CSS box-align définit comment un élément aligne son contenu par rapport à l'axe orthogonal à la disposition. L'effet obtenu ne sera visible que s'il y a de l'espace supplémentaire dans la boîte flexible. Voir la page Flexbox pour plus d'informations.
/* Valeurs avec un mot-clé */ -box-align: start; -box-align: center; -box-align: end; -box-align: baseline; -box-align: stretch; - -/* Valeurs globales */ -box-lines: inherit; -box-lines: initial; -box-lines: unset; -- -
La direction de l'élément dépend de son orientation.
- -La propriété box-align est paramétrée grâce à l'un des mots-clés suivants.
startcenterendbaselinestretchdiv.exemple {
- display: box;
- display: -moz-box; /* Mozilla */
- display: -webkit-box; /* WebKit */
-
- /* La boîte est plus grande que ses
- éléments afin que box-pack ait
- un effet */
- height: 400px;
-
- /* La boîte est plus large que ses
- éléments afin que box-align ait
- un effet */
- width: 300px;
-
- /* Les éléments fils seront orientés
- verticalement */
- box-orient: vertical;
- -moz-box-orient: vertical; /* Mozilla */
- -webkit-box-orient: vertical; /* WebKit */
-
- /* On centre les éléments horizontalement */
- box-align: center;
- -moz-box-align: center; /* Mozilla */
- -webkit-box-align: center; /* WebKit */
-
- /* On les regroupe vers le bas */
- box-pack: end;
- -moz-box-pack: end; /* Mozilla */
- -webkit-box-pack: end; /* WebKit */
-}
-
-div.exemple > p {
- /* On réduit les éléments fils pour que
- box-align ait un impact. */
- width: 200px;
-}
-
-<div class="exemple"> - <p>Je serai deuxième en partant du bas, centré horizontalement.</p> - <p>Je serai en bas de div.exemple, centré horizontalement.</p> -</div>- -
{{EmbedLiveSample("Exemples","500","500")}}
- -Le bord de la boîte qui est indiqué par start dépend de l'orientation de la boîte : si celle-ci est orientée horizontalement, ce sera le côté haut, si elle est orientée verticalement, ce sera le côté bas. Le côté désigné par end est le côté opposé à start.
Si l'alignement est défini via l'attribut HTML align, la déclaration sera alors ignorée.
{{cssinfo}}
- -{{Compat("css.properties.box-align")}}
- -La propriété CSS box-align définit comment un élément aligne son contenu par rapport à l'axe orthogonal à la disposition. L'effet obtenu ne sera visible que s'il y a de l'espace supplémentaire dans la boîte flexible. Voir la page Flexbox pour plus d'informations.
/* Valeurs avec un mot-clé */ +box-align: start; +box-align: center; +box-align: end; +box-align: baseline; +box-align: stretch; + +/* Valeurs globales */ +box-lines: inherit; +box-lines: initial; +box-lines: unset; ++ +
La direction de l'élément dépend de son orientation.
+ +La propriété box-align est paramétrée grâce à l'un des mots-clés suivants.
startcenterendbaselinestretchdiv.exemple {
+ display: box;
+ display: -moz-box; /* Mozilla */
+ display: -webkit-box; /* WebKit */
+
+ /* La boîte est plus grande que ses
+ éléments afin que box-pack ait
+ un effet */
+ height: 400px;
+
+ /* La boîte est plus large que ses
+ éléments afin que box-align ait
+ un effet */
+ width: 300px;
+
+ /* Les éléments fils seront orientés
+ verticalement */
+ box-orient: vertical;
+ -moz-box-orient: vertical; /* Mozilla */
+ -webkit-box-orient: vertical; /* WebKit */
+
+ /* On centre les éléments horizontalement */
+ box-align: center;
+ -moz-box-align: center; /* Mozilla */
+ -webkit-box-align: center; /* WebKit */
+
+ /* On les regroupe vers le bas */
+ box-pack: end;
+ -moz-box-pack: end; /* Mozilla */
+ -webkit-box-pack: end; /* WebKit */
+}
+
+div.exemple > p {
+ /* On réduit les éléments fils pour que
+ box-align ait un impact. */
+ width: 200px;
+}
+
+<div class="exemple"> + <p>Je serai deuxième en partant du bas, centré horizontalement.</p> + <p>Je serai en bas de div.exemple, centré horizontalement.</p> +</div>+ +
{{EmbedLiveSample("Exemples","500","500")}}
+ +Le bord de la boîte qui est indiqué par start dépend de l'orientation de la boîte : si celle-ci est orientée horizontalement, ce sera le côté haut, si elle est orientée verticalement, ce sera le côté bas. Le côté désigné par end est le côté opposé à start.
Si l'alignement est défini via l'attribut HTML align, la déclaration sera alors ignorée.
{{cssinfo}}
+ +{{Compat("css.properties.box-align")}}
+ +La propriété box-decoration-break définit la façon dont les propriétés {{cssxref("background")}}, {{cssxref("padding")}}, {{cssxref("border")}}, {{cssxref("border-image")}}, {{cssxref("box-shadow")}}, {{cssxref("margin")}} et {{cssxref("clip")}} sont appliquées sur un élément lorsque la boîte de celui-ci est fragmentée. La fragmentation apparaît lorsqu'une boîte en ligne s'étend sur plusieurs lignes ou lorsqu'un bloc s'étend sur plus d'une colonne lorsque qu'il est dans conteneur disposé en colonne ou lorsqu'un bloc déclenche un saut de page sur un média imprimé. Chaque « morceau » de l'élément est alors appelé un fragment.
/* Valeurs avec un mot-clé */ -box-decoration-break: slice; -box-decoration-break: clone; - -/* Valeurs globales */ -box-decoration-break: initial; -box-decoration-break: inherit; -box-decoration-break: unset; -- -
La propriété box-decoration-break est définie avec l'un des mots-clés définis ci-après.
cloneno-repeat pourra être présente à plusieurs reprises).sliceslice (valeur initiale).exemple {
- background: linear-gradient(to bottom right, yellow, green);
- box-shadow: 8px 8px 10px 0px deeppink, -5px -5px 5px 0px blue, 5px 5px 15px 0px yellow;
- padding: 0em 1em;
- border-radius: 16px;
- border-style: solid;
- margin-left: 10px;
- font: 24px sans-serif;
- line-height: 2;
-}
-
-<span class="exemple">The<br>quick<br>orange fox</span>- -
{{EmbedLiveSample("Avec_slice_(valeur_initiale)","200","200")}}
- -
clone.exemple {
- background: linear-gradient(to bottom right, yellow, green);
- box-shadow: 8px 8px 10px 0px deeppink, -5px -5px 5px 0px blue, 5px 5px 15px 0px yellow;
- padding: 0em 1em;
- border-radius: 16px;
- border-style: solid;
- margin-left: 10px;
- font: 24px sans-serif;
- line-height: 2;
-
- -webkit-box-decoration-break: clone;
- -o-box-decoration-break: clone;
- box-decoration-break: clone;
-}
-
-<span class="exemple">The<br>quick<br>orange fox</span>- -
{{EmbedLiveSample("Avec_clone","200","200")}}
- -
Voici ce qu'on pourra obtenir de façon analogue avec un élément de bloc sans fragmentation:
- -
En décomposant le bloc sur trois colonnes, normalement (slice), on aura :

Si on applique box-decoration-break:clone, voici le résultat :

| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-decoration', 'box-decoration-break')}} | -{{Spec2('CSS3 Fragmentation')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.box-decoration-break")}}
- -La propriété box-decoration-break définit la façon dont les propriétés {{cssxref("background")}}, {{cssxref("padding")}}, {{cssxref("border")}}, {{cssxref("border-image")}}, {{cssxref("box-shadow")}}, {{cssxref("margin")}} et {{cssxref("clip")}} sont appliquées sur un élément lorsque la boîte de celui-ci est fragmentée. La fragmentation apparaît lorsqu'une boîte en ligne s'étend sur plusieurs lignes ou lorsqu'un bloc s'étend sur plus d'une colonne lorsque qu'il est dans conteneur disposé en colonne ou lorsqu'un bloc déclenche un saut de page sur un média imprimé. Chaque « morceau » de l'élément est alors appelé un fragment.
/* Valeurs avec un mot-clé */ +box-decoration-break: slice; +box-decoration-break: clone; + +/* Valeurs globales */ +box-decoration-break: initial; +box-decoration-break: inherit; +box-decoration-break: unset; ++ +
La propriété box-decoration-break est définie avec l'un des mots-clés définis ci-après.
cloneno-repeat pourra être présente à plusieurs reprises).sliceslice (valeur initiale).exemple {
+ background: linear-gradient(to bottom right, yellow, green);
+ box-shadow: 8px 8px 10px 0px deeppink, -5px -5px 5px 0px blue, 5px 5px 15px 0px yellow;
+ padding: 0em 1em;
+ border-radius: 16px;
+ border-style: solid;
+ margin-left: 10px;
+ font: 24px sans-serif;
+ line-height: 2;
+}
+
+<span class="exemple">The<br>quick<br>orange fox</span>+ +
{{EmbedLiveSample("Avec_slice_(valeur_initiale)","200","200")}}
+ +
clone.exemple {
+ background: linear-gradient(to bottom right, yellow, green);
+ box-shadow: 8px 8px 10px 0px deeppink, -5px -5px 5px 0px blue, 5px 5px 15px 0px yellow;
+ padding: 0em 1em;
+ border-radius: 16px;
+ border-style: solid;
+ margin-left: 10px;
+ font: 24px sans-serif;
+ line-height: 2;
+
+ -webkit-box-decoration-break: clone;
+ -o-box-decoration-break: clone;
+ box-decoration-break: clone;
+}
+
+<span class="exemple">The<br>quick<br>orange fox</span>+ +
{{EmbedLiveSample("Avec_clone","200","200")}}
+ +
Voici ce qu'on pourra obtenir de façon analogue avec un élément de bloc sans fragmentation:
+ +
En décomposant le bloc sur trois colonnes, normalement (slice), on aura :

Si on applique box-decoration-break:clone, voici le résultat :

| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-decoration', 'box-decoration-break')}} | +{{Spec2('CSS3 Fragmentation')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.box-decoration-break")}}
+ +Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version. La propriété -moz-box-direction ne peut être utilisée que dans des composants XUL tandis que la propriété box-direction a été remplacée par la propriété standard flex-direction. Voir la page Flexbox pour plus d'informations sur ce qui doit être utilisé à la place.
La propriété box-direction définit si une boîte doit organiser son contenu dans la direction normale (de haut en bas ou de gauche à droite). Pour plus de détails sur les propriétés des éléments flexibles, voir la page Flexbox.
/* Valeurs avec un mot-clé */ -box-direction: normal; -box-direction: reverse; - -/* Valeurs globales */ -box-direction: inherit; -box-direction: initial; -box-direction: unset; -- -
normalreverse.exemple {
- /* du bas vers le haut */
- -moz-box-direction: reverse; /* Mozilla */
- -webkit-box-direction: reverse; /* WebKit */
- box-direction: reverse;
-}
-
-
-Si la direction de l'élément est définie grâce à l'attribut dir, la déclaration est ignorée.
{{cssinfo}}
- -{{Compat("css.properties.box-direction")}}
- -Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version. La propriété -moz-box-direction ne peut être utilisée que dans des composants XUL tandis que la propriété box-direction a été remplacée par la propriété standard flex-direction. Voir la page Flexbox pour plus d'informations sur ce qui doit être utilisé à la place.
La propriété box-direction définit si une boîte doit organiser son contenu dans la direction normale (de haut en bas ou de gauche à droite). Pour plus de détails sur les propriétés des éléments flexibles, voir la page Flexbox.
/* Valeurs avec un mot-clé */ +box-direction: normal; +box-direction: reverse; + +/* Valeurs globales */ +box-direction: inherit; +box-direction: initial; +box-direction: unset; ++ +
normalreverse.exemple {
+ /* du bas vers le haut */
+ -moz-box-direction: reverse; /* Mozilla */
+ -webkit-box-direction: reverse; /* WebKit */
+ box-direction: reverse;
+}
+
+
+Si la direction de l'élément est définie grâce à l'attribut dir, la déclaration est ignorée.
{{cssinfo}}
+ +{{Compat("css.properties.box-direction")}}
+ +Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
-Voir la page Flexbox pour plus d'informations.
- -La propriété box-flex-group permet d'affecter un élément fils de la boîte flexible à un groupe. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
/* Un entier désignant le groupe */ -/* Type <integer> */ -box-flex-group: 1; -box-flex-group: 5; - -/* Valeurs globales */ -box-flex-group: inherit; -box-flex-group: initial; -box-flex-group: unset; -- -
Les éléments flexibles sont affectés à des groupes. Le premier groupe sera désigné par l'indice 1 et les groupes suivants par 2, 3, et ainsi de suite. Lorsque l'espace restant dans la boîte est réparti, le moteur prend d'abord en compte les éléments du premier groupe et répartit l'espace entre les différents éléments de ce groupe selon leurs flexibilités relatives. Une fois l'espace augmenté au maximum, le moteur passe au groupe qui suit en utilisant l'espace restant et ainsi de suite. Si, une fois l'ensemble des groupes traités, il y a encore de l'espace, celui-ci est réparti grâce à la propriété {{cssxref("box-pack")}}.
- -Si la boîte dépasse une fois que l'espace pour l'élément fils a été calculé, l'espace est alors retiré (chaque groupe est examiné dans l'ordre et l'espace est retiré selon la flexibilité de chaque élément). Les éléments ne sont pas réduits en deçà de leurs largeurs minimales.
- -Cette propriété est définie avec un entier positif.
- -{{cssinfo}}
- -Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
+Voir la page Flexbox pour plus d'informations.
+ +La propriété box-flex-group permet d'affecter un élément fils de la boîte flexible à un groupe. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
/* Un entier désignant le groupe */ +/* Type <integer> */ +box-flex-group: 1; +box-flex-group: 5; + +/* Valeurs globales */ +box-flex-group: inherit; +box-flex-group: initial; +box-flex-group: unset; ++ +
Les éléments flexibles sont affectés à des groupes. Le premier groupe sera désigné par l'indice 1 et les groupes suivants par 2, 3, et ainsi de suite. Lorsque l'espace restant dans la boîte est réparti, le moteur prend d'abord en compte les éléments du premier groupe et répartit l'espace entre les différents éléments de ce groupe selon leurs flexibilités relatives. Une fois l'espace augmenté au maximum, le moteur passe au groupe qui suit en utilisant l'espace restant et ainsi de suite. Si, une fois l'ensemble des groupes traités, il y a encore de l'espace, celui-ci est réparti grâce à la propriété {{cssxref("box-pack")}}.
+ +Si la boîte dépasse une fois que l'espace pour l'élément fils a été calculé, l'espace est alors retiré (chaque groupe est examiné dans l'ordre et l'espace est retiré selon la flexibilité de chaque élément). Les éléments ne sont pas réduits en deçà de leurs largeurs minimales.
+ +Cette propriété est définie avec un entier positif.
+ +{{cssinfo}}
+ +Attention : Cette propriété est utilisée pour contrôler certaines parties du modèle de boîtes XUL. Elle ne correspond ni à l'ancienne version de la spécification pour box-flex ni au comportement de -webkit-box-flex. Voir la page Flexbox pour plus d'informations sur ce qui doit être utilisé à la place.
Les propriétés -moz-box-flex et -webkit-box-flex définissent la façon dont une boîte -moz-box ou -webkit-box s'étend pour remplir la boîte englobante, dans la direction indiquée par la disposition de la boîte. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
/* Valeurs numériques */ -/* Type <number> */ --moz-box-flex: 0; --moz-box-flex: 2; --moz-box-flex: 3.5; --webkit-box-flex: 0; --webkit-box-flex: 2; --webkit-box-flex: 3.5; - -/* Valeurs globales */ --moz-box-flex: inherit; --moz-box-flex: initial; --moz-box-flex: unset; --webkit-box-flex: inherit; --webkit-box-flex: initial; --webkit-box-flex: unset; -- -
<number>div.exemple {
- display: -moz-box;
- display: -webkit-box;
- border: 1px solid black;
- width: 100%;
-}
-
-div.exemple > p:nth-child(1) {
- -moz-box-flex: 1; /* Mozilla */
- -webkit-box-flex: 1; /* WebKit */
- border: 1px solid black;
-}
-
-div.exemple > p:nth-child(2) {
- -moz-box-flex: 0; /* Mozilla */
- -webkit-box-flex: 0; /* WebKit */
- border: 1px solid black;
-}
-
-<div class="exemple"> - <p>Je m'étends sur l'espace.</p> - <p>Je ne me dilate pas.</p> -</div> -- -
{{EmbedLiveSample("Exemples","200","200")}}
- -La boîte englobante distribue l'espace supplémentaire en fonction de la valeur de flex de chaque élément. Les éléments pour lesquels ce coefficient est nul ne s'agrandiront pas. Si un seul élément possède un coefficient non nul, celui-ci occupera l'espace supplémentaires.
Les éléments qui possèdent le même coefficient grandiront de la même façon.
- -Si la valeur de cette propriété est définie via l'attribut XUL flex, la déclaration est ignorée. Afin que les éléments XUL d'une même boîte aient la même taille, on utilisera l'attribut equalsize avec la valeur always. Il n'existe pas de propriété CSS correspondante.
Cette propriété n'est pas une propriété standard. Une ancienne version de la spécification CSS3 pour les boîtes flexibles définissait une propriété box-flex mais ce brouillon a depuis été remplacé.
{{cssinfo}}
- -Attention : Cette propriété est utilisée pour contrôler certaines parties du modèle de boîtes XUL. Elle ne correspond ni à l'ancienne version de la spécification pour box-flex ni au comportement de -webkit-box-flex. Voir la page Flexbox pour plus d'informations sur ce qui doit être utilisé à la place.
Les propriétés -moz-box-flex et -webkit-box-flex définissent la façon dont une boîte -moz-box ou -webkit-box s'étend pour remplir la boîte englobante, dans la direction indiquée par la disposition de la boîte. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
/* Valeurs numériques */ +/* Type <number> */ +-moz-box-flex: 0; +-moz-box-flex: 2; +-moz-box-flex: 3.5; +-webkit-box-flex: 0; +-webkit-box-flex: 2; +-webkit-box-flex: 3.5; + +/* Valeurs globales */ +-moz-box-flex: inherit; +-moz-box-flex: initial; +-moz-box-flex: unset; +-webkit-box-flex: inherit; +-webkit-box-flex: initial; +-webkit-box-flex: unset; ++ +
<number>div.exemple {
+ display: -moz-box;
+ display: -webkit-box;
+ border: 1px solid black;
+ width: 100%;
+}
+
+div.exemple > p:nth-child(1) {
+ -moz-box-flex: 1; /* Mozilla */
+ -webkit-box-flex: 1; /* WebKit */
+ border: 1px solid black;
+}
+
+div.exemple > p:nth-child(2) {
+ -moz-box-flex: 0; /* Mozilla */
+ -webkit-box-flex: 0; /* WebKit */
+ border: 1px solid black;
+}
+
+<div class="exemple"> + <p>Je m'étends sur l'espace.</p> + <p>Je ne me dilate pas.</p> +</div> ++ +
{{EmbedLiveSample("Exemples","200","200")}}
+ +La boîte englobante distribue l'espace supplémentaire en fonction de la valeur de flex de chaque élément. Les éléments pour lesquels ce coefficient est nul ne s'agrandiront pas. Si un seul élément possède un coefficient non nul, celui-ci occupera l'espace supplémentaires.
Les éléments qui possèdent le même coefficient grandiront de la même façon.
+ +Si la valeur de cette propriété est définie via l'attribut XUL flex, la déclaration est ignorée. Afin que les éléments XUL d'une même boîte aient la même taille, on utilisera l'attribut equalsize avec la valeur always. Il n'existe pas de propriété CSS correspondante.
Cette propriété n'est pas une propriété standard. Une ancienne version de la spécification CSS3 pour les boîtes flexibles définissait une propriété box-flex mais ce brouillon a depuis été remplacé.
{{cssinfo}}
+ +Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
-Voir la page Flexbox pour plus d'informations.
- -La propriété box-lines détermine si la boîte se compose d'une ou plusieurs rangées (des lignes pour les boîtes orientées horizontalement et des colonnes pour les boîtes orientées verticalement). Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
/* Valeurs avec un mot-clé */ -box-lines: single; -box-lines: multiple; - -/* Valeurs globales */ -box-lines: inherit; -box-lines: initial; -box-lines: unset; -- -
Par défaut, une boîte horizontale organisera ses éléments sur une seule ligne et une boîte verticale les organisera sur une seule colonne. On peut modifier ce comportement en utilisant box-lines. La valeur par défaut est single (ce qui correspond au cas expliqué avant) et les éléments qui ne peuvent être contenus dans cette ligne ou cette colonne dépasseront.
Si, au contraire, on utilise la valeur multiple, la boîte pourra s'étendre sur plusieurs rangées (des lignes ou des colonnes) afin de contenir ses différents éléments fils. La boîte utilisera alors le moins de lignes ou de colonnes possibles et réduira les éléments à leur taille minimale si nécessaire.
Si les éléments fils d'une boîte horizontale ne rentrent pas dans une ligne après avoir été réduits à leur taille minimale, ils sont déplacés sur une nouvelle ligne jusqu'à ce que rien ne dépasse de la ligne précédente. Le procédé est répété autant de fois que nécessaire. Si une ligne contient un seul élément et que celui-ci est trop grand, ce dernier restera sur cette ligne et dépassera en dehors de la boîte. Les nouvelles lignes sont créées en dessous des premières lorsque la direction de la boîte est normal, dans le sens inverse (reverse) elles seront empilées les unes au dessus des autres. La hauteur d'une ligne sera égale à la plus grande hauteur des éléments portés sur cette ligne. Aucun espace ne sera ajouté entre les lignes en dehors des marges décrites par les plus grands éléments. Lors du calcul de la hauteur, les éléments avec une marge dont la valeur calculée est auto seront traités comme si la marge était nulle (0).
On aura un fonctionnement analogue avec une disposition verticale.
- -Une fois que le nombre de rangées a été calculé, les éléments pour lesquels {{cssxref("box-flex")}} a une valeur calculée différentes de 0 seront étirés afin de remplir les espaces restants sur les lignes. Ces étirements sont calculés de façon indépendante selon chaque ligne (notamment pour {{cssxref("box-flex")}} et {{cssxref("box-flex-group")}}). Il en va de même pour le regroupement des éléments sur une ligne avec la propriété {{cssxref("box-pack")}}.
Cette propriété est définie grâce à l'un des mots-clés suivants.
- -singlemultiple{{cssinfo}}
- -Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
+Voir la page Flexbox pour plus d'informations.
+ +La propriété box-lines détermine si la boîte se compose d'une ou plusieurs rangées (des lignes pour les boîtes orientées horizontalement et des colonnes pour les boîtes orientées verticalement). Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
/* Valeurs avec un mot-clé */ +box-lines: single; +box-lines: multiple; + +/* Valeurs globales */ +box-lines: inherit; +box-lines: initial; +box-lines: unset; ++ +
Par défaut, une boîte horizontale organisera ses éléments sur une seule ligne et une boîte verticale les organisera sur une seule colonne. On peut modifier ce comportement en utilisant box-lines. La valeur par défaut est single (ce qui correspond au cas expliqué avant) et les éléments qui ne peuvent être contenus dans cette ligne ou cette colonne dépasseront.
Si, au contraire, on utilise la valeur multiple, la boîte pourra s'étendre sur plusieurs rangées (des lignes ou des colonnes) afin de contenir ses différents éléments fils. La boîte utilisera alors le moins de lignes ou de colonnes possibles et réduira les éléments à leur taille minimale si nécessaire.
Si les éléments fils d'une boîte horizontale ne rentrent pas dans une ligne après avoir été réduits à leur taille minimale, ils sont déplacés sur une nouvelle ligne jusqu'à ce que rien ne dépasse de la ligne précédente. Le procédé est répété autant de fois que nécessaire. Si une ligne contient un seul élément et que celui-ci est trop grand, ce dernier restera sur cette ligne et dépassera en dehors de la boîte. Les nouvelles lignes sont créées en dessous des premières lorsque la direction de la boîte est normal, dans le sens inverse (reverse) elles seront empilées les unes au dessus des autres. La hauteur d'une ligne sera égale à la plus grande hauteur des éléments portés sur cette ligne. Aucun espace ne sera ajouté entre les lignes en dehors des marges décrites par les plus grands éléments. Lors du calcul de la hauteur, les éléments avec une marge dont la valeur calculée est auto seront traités comme si la marge était nulle (0).
On aura un fonctionnement analogue avec une disposition verticale.
+ +Une fois que le nombre de rangées a été calculé, les éléments pour lesquels {{cssxref("box-flex")}} a une valeur calculée différentes de 0 seront étirés afin de remplir les espaces restants sur les lignes. Ces étirements sont calculés de façon indépendante selon chaque ligne (notamment pour {{cssxref("box-flex")}} et {{cssxref("box-flex-group")}}). Il en va de même pour le regroupement des éléments sur une ligne avec la propriété {{cssxref("box-pack")}}.
Cette propriété est définie grâce à l'un des mots-clés suivants.
+ +singlemultiple{{cssinfo}}
+ +Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
-La propriété box-ordinal-group permet d'affecter les éléments fils d'une boîtes flexible à un groupe numéroté. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
Voir la page Flexbox pour plus d'informations.
- -/* Un entier indiquant le groupe */ -/* Type <integer> */ -box-ordinal-group: 1; -box-ordinal-group: 5; - -/* Global values */ -box-ordinal-group: inherit; -box-ordinal-group: initial; -box-ordinal-group: unset; -- -
Les groupes ordinaux peuvent être utilisés avec la propriété {{cssxref("box-direction")}} afin de contrôler l'ordre dans lequel les éléments fils apparaissent dans la boîte. Lorsque la valeur calculée de box-direction est normal, une boîte affichera ses éléments en commençant par le groupe dont l'ordre est le plus faible et les disposera de gauche à droite pour les boîtes horizontales et du haut vers le bas pour les boîtes verticales. Les éléments dont l'ordre est égal seront disposés dans l'ordre dans lequel ils apparaissent. Lorsque la direction est inversée, les ordres sont gérés de la même façon, les éléments apparaîtront dans l'ordre inverse.
Cette propriété se définit avec un entier positif.
- -{{cssinfo}}
- -{{Compat("css.properties.box-ordinal-group")}}
- -Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
+La propriété box-ordinal-group permet d'affecter les éléments fils d'une boîtes flexible à un groupe numéroté. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
Voir la page Flexbox pour plus d'informations.
+ +/* Un entier indiquant le groupe */ +/* Type <integer> */ +box-ordinal-group: 1; +box-ordinal-group: 5; + +/* Global values */ +box-ordinal-group: inherit; +box-ordinal-group: initial; +box-ordinal-group: unset; ++ +
Les groupes ordinaux peuvent être utilisés avec la propriété {{cssxref("box-direction")}} afin de contrôler l'ordre dans lequel les éléments fils apparaissent dans la boîte. Lorsque la valeur calculée de box-direction est normal, une boîte affichera ses éléments en commençant par le groupe dont l'ordre est le plus faible et les disposera de gauche à droite pour les boîtes horizontales et du haut vers le bas pour les boîtes verticales. Les éléments dont l'ordre est égal seront disposés dans l'ordre dans lequel ils apparaissent. Lorsque la direction est inversée, les ordres sont gérés de la même façon, les éléments apparaîtront dans l'ordre inverse.
Cette propriété se définit avec un entier positif.
+ +{{cssinfo}}
+ +{{Compat("css.properties.box-ordinal-group")}}
+ +Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
-La propriété CSS box-orient définit si un élément organise son contenu horizontalement ou verticalement.
Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
- -/* Valeurs avec un mot-clé */ -box-orient: horizontal; -box-orient: vertical; -box-orient: inline-axis; -box-orient: block-axis; - -/* Valeurs globales */ -box-orient: inherit; -box-orient: initial; -box-orient: unset; -- -
Ainsi, les éléments XUL {{XULElem("box")}} et {{XULElem("hbox")}} disposent leurs contenus horizontalement par défaut alors que {{XULElem("vbox")}} organise son contenu de façon verticale par défaut.
- -Les éléments HTML disposent leurs contenus selon l'axe inline par défaut. Cette propriété CSS ne s'applique qu'aux éléments HTML pour lesquels la propriété {{cssxref("display")}} vaut {{cssxref("box")}} ou {{cssxref("inline-box")}}.
- -horizontalverticalinline-axis (HTML)block-axis (HTML)Les axes inline et block dépendent du mode d'écriture (pour l'anglais, ils correspondront, respectivement, à horizontal et vertical.
div.exemple {
- display: -moz-box; /* Mozilla */
- display: -webkit-box; /* WebKit */
- display: box; /* On utilise les boîtes */
-
- -moz-box-orient: horizontal; /* Mozilla */
- -webkit-box-orient: horizontal; /* WebKit */
- box-orient: horizontal; /* spécifié */
-}
-
-<div class="exemple"> - <p>Je serai à gauche de mon voisin.</p> - <p>Et moi à droite de mon voisin.</p> -</div>- -
On aura les deux paragraphes situés côte à côte.
- -{{EmbedLiveSample("Exemples")}}
- -Pour les éléments XUL, si l'orientation est définie avec l'attribut {{XULAttr("orient")}} cette propriété est ignorée.
- -{{cssinfo}}
- -{{Compat("css.properties.box-orient")}}
- -Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
+La propriété CSS box-orient définit si un élément organise son contenu horizontalement ou verticalement.
Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles.
+ +/* Valeurs avec un mot-clé */ +box-orient: horizontal; +box-orient: vertical; +box-orient: inline-axis; +box-orient: block-axis; + +/* Valeurs globales */ +box-orient: inherit; +box-orient: initial; +box-orient: unset; ++ +
Ainsi, les éléments XUL {{XULElem("box")}} et {{XULElem("hbox")}} disposent leurs contenus horizontalement par défaut alors que {{XULElem("vbox")}} organise son contenu de façon verticale par défaut.
+ +Les éléments HTML disposent leurs contenus selon l'axe inline par défaut. Cette propriété CSS ne s'applique qu'aux éléments HTML pour lesquels la propriété {{cssxref("display")}} vaut {{cssxref("box")}} ou {{cssxref("inline-box")}}.
+ +horizontalverticalinline-axis (HTML)block-axis (HTML)Les axes inline et block dépendent du mode d'écriture (pour l'anglais, ils correspondront, respectivement, à horizontal et vertical.
div.exemple {
+ display: -moz-box; /* Mozilla */
+ display: -webkit-box; /* WebKit */
+ display: box; /* On utilise les boîtes */
+
+ -moz-box-orient: horizontal; /* Mozilla */
+ -webkit-box-orient: horizontal; /* WebKit */
+ box-orient: horizontal; /* spécifié */
+}
+
+<div class="exemple"> + <p>Je serai à gauche de mon voisin.</p> + <p>Et moi à droite de mon voisin.</p> +</div>+ +
On aura les deux paragraphes situés côte à côte.
+ +{{EmbedLiveSample("Exemples")}}
+ +Pour les éléments XUL, si l'orientation est définie avec l'attribut {{XULAttr("orient")}} cette propriété est ignorée.
+ +{{cssinfo}}
+ +{{Compat("css.properties.box-orient")}}
+ +Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
--moz-box-pack et -webkit-box-pack définissent la façon dont une boîte -moz-box ou -webkit-box groupe son contenu dans la direction de la disposition. L'effet de cette propriété n'est visible que s'il reste de l'espace supplémentaire dans la boîte. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles./* Valeurs avec un mot-clé */ -box-pack: start; -box-pack: center; -box-pack: end; -box-pack: justify; - -/* Valeurs globales */ -box-pack: inherit; -box-pack: initial; -box-pack: unset; -- -
Voir la page Flexbox pour plus d'informations.
- -La direction de la disposition dépend de l'orientation de l'élément : horizontale ou verticale.
- -Cette propriété se définit grâce à l'un des mots-clés définis ci-après.
- -startcenterendjustifystart.div.exemple {
- border-style: solid;
-
- display: -moz-box; /* Mozilla */
- display: -webkit-box; /* WebKit */
-
- /* On rend la boîte plus grande que son
- contenu pour avoir de l'espace pour box-pack */
- height: 300px;
- /* On rend la boîte suffisament large pour que
- contenu soit centré horizontalemen */
- width: 300px;
-
- /* On oriente les éléments fils verticalement */
- -moz-box-orient: vertical; /* Mozilla */
- -webkit-box-orient: vertical; /* WebKit */
-
- /* On aligne les fils sur le centre horizontal */
- -moz-box-align: center; /* Mozilla */
- -webkit-box-align: center; /* WebKit */
-
- /* On groupe les éléments fils en bas de la boîte */
- -moz-box-pack: end; /* Mozilla */
- -webkit-box-pack: end; /* WebKit */
-}
-
-div.exemple p {
- /* On réduit les éléments fils, pour
- qu'il y ait de la place pour box-align */
- width: 200px;
-}
-
-
-<div class="exemple"> - <p>Je serai 2nd en partant du bas de div.exemple, centré horizontalement.</p> - <p>Je serai tout en bas de div.exemple, centré horizontalement.</p> -</div> -- -
{{EmbedLiveSample('Exemples', 310, 310)}}
- -Le « début » et la « fin » de la boîte dépendent de l'orientation et de la direction de la boîte. Voici le tableau indiquant le début de la boîte en fonction de l'orientation et de la direction :
- -| - | Normal | -Inverse | -
|---|---|---|
| Horizontal | -gauche | -droit | -
| Vertical | -hau | -bas | -
Si le regroupement utilise l'attribut pack de l'élément, le style est ignoré.
Cette propriété n'est pas standard mais une propriété semblable est apparue avec les brouillons de spécification pour les boîtes flexibles CSS3 et a été remplacée dans les versions suivantes de la spécification.
- -{{cssinfo}}
- -Attention : Cette propriété fait partie de la première version du standard pour les boîtes flexibles (flexbox) et sera remplacée dans une prochaine version.
+-moz-box-pack et -webkit-box-pack définissent la façon dont une boîte -moz-box ou -webkit-box groupe son contenu dans la direction de la disposition. L'effet de cette propriété n'est visible que s'il reste de l'espace supplémentaire dans la boîte. Pour plus de détails, se référer à la page Flexbox qui décrit les différentes propriétés des boîtes flexibles./* Valeurs avec un mot-clé */ +box-pack: start; +box-pack: center; +box-pack: end; +box-pack: justify; + +/* Valeurs globales */ +box-pack: inherit; +box-pack: initial; +box-pack: unset; ++ +
Voir la page Flexbox pour plus d'informations.
+ +La direction de la disposition dépend de l'orientation de l'élément : horizontale ou verticale.
+ +Cette propriété se définit grâce à l'un des mots-clés définis ci-après.
+ +startcenterendjustifystart.div.exemple {
+ border-style: solid;
+
+ display: -moz-box; /* Mozilla */
+ display: -webkit-box; /* WebKit */
+
+ /* On rend la boîte plus grande que son
+ contenu pour avoir de l'espace pour box-pack */
+ height: 300px;
+ /* On rend la boîte suffisament large pour que
+ contenu soit centré horizontalemen */
+ width: 300px;
+
+ /* On oriente les éléments fils verticalement */
+ -moz-box-orient: vertical; /* Mozilla */
+ -webkit-box-orient: vertical; /* WebKit */
+
+ /* On aligne les fils sur le centre horizontal */
+ -moz-box-align: center; /* Mozilla */
+ -webkit-box-align: center; /* WebKit */
+
+ /* On groupe les éléments fils en bas de la boîte */
+ -moz-box-pack: end; /* Mozilla */
+ -webkit-box-pack: end; /* WebKit */
+}
+
+div.exemple p {
+ /* On réduit les éléments fils, pour
+ qu'il y ait de la place pour box-align */
+ width: 200px;
+}
+
+
+<div class="exemple"> + <p>Je serai 2nd en partant du bas de div.exemple, centré horizontalement.</p> + <p>Je serai tout en bas de div.exemple, centré horizontalement.</p> +</div> ++ +
{{EmbedLiveSample('Exemples', 310, 310)}}
+ +Le « début » et la « fin » de la boîte dépendent de l'orientation et de la direction de la boîte. Voici le tableau indiquant le début de la boîte en fonction de l'orientation et de la direction :
+ +| + | Normal | +Inverse | +
|---|---|---|
| Horizontal | +gauche | +droit | +
| Vertical | +hau | +bas | +
Si le regroupement utilise l'attribut pack de l'élément, le style est ignoré.
Cette propriété n'est pas standard mais une propriété semblable est apparue avec les brouillons de spécification pour les boîtes flexibles CSS3 et a été remplacée dans les versions suivantes de la spécification.
+ +{{cssinfo}}
+ +La propriété CSS box-shadow ajoute des ombres à la boîte d'un élément via une liste d'ombres séparées par des virgules. Une boîte d'ombre est définie avec des décalages horizontal et vertical par rapport à l'élément, avec des rayons de flou et d'étalement et avec une couleur.
Le générateur de box-shadow est un outil interactif qui permet de générer des valeurs pour box-shadow.
/* offset-x | offset-y | color */ -box-shadow: 60px -16px teal; - -/* offset-x | offset-y | blur-radius | color */ -box-shadow: 10px 5px 5px black; - -/* offset-x | offset-y | blur-radius | spread-radius | color */ -box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); - -/* inset | offset-x | offset-y | color */ -box-shadow: inset 5em 1em gold; - -/* Une liste d'ombres, séparées par des virgules */ -box-shadow: 3px 3px red, -1em 0 0.4em olive; - -/* Mots-clés globaux */ -box-shadow: inherit; -box-shadow: initial; -box-shadow: unset; -- -
La propriété box-shadow peut être définie grâce :
<offset-x> et <offset-y><blur-radius><spread-radius>.inset<color>) optionnelle.insetinset modifie l'ombre afin qu'elle soit tournée vers l'intérieur du cadre (comme si le contenu était enfoncé dans la boîte). Les ombres tournées vers l'intérieur sont dessinées à l'intérieur de la bordure (même les transparentes), au-dessus de l'arrière-plan mais sous le contenu.<offset-x> <offset-y><offset-x> définit la distance horizontale du décalage et les valeurs négatives placeront l'ombre à gauche de l'élément. <offset-y> définit la distance verticale et les distances négatives placent l'ombre au-dessus de l'élément (cf. {{cssxref("<length>")}} pour les différentes unités possibles).0, l'ombre est placée derrière l'élément (et peut générer un effet de flou si <blur-radius> et/ou <spread-radius> est utilisé).<blur-radius>0 (le côté de l'ombre est rectiligne).<spread-radius>0 (l'ombre aura la même taille que l'élément).<color>Chaque ombre de la liste (none sera traitée comme une liste de longueur nulle) est interpolée via la couleur, le décalage horizontal et vertical, le rayon de flou et l'étalement (lorsque c'est pertinent). Pour chaque ombre, si les deux ombres sont ou ne sont pas inset, l'ombre interpolée doit respecter cette valeur. Si l'une des ombres a inset et l'autre non, la liste d'ombres ne peut pas être interpolée. Si les listes d'ombres ont des longueurs différentes, la liste la plus courte sera complétée à la fin avec des ombres dont la couleur est transparent, toutes les longueurs valent 0 et inset pour que la valeur corresponde à la plus longue liste.
p {
- height: 5em;
- width: 300px;
- background-color: rgba(128,128,128,0.1);
-}
-.ombre_droite_haut {
- box-shadow: 60px -16px teal; /* la valeur négative décale vers le haut */
-}
-
-.ombre_interieure {
- box-shadow: inset 5em 1em gold;
- /* le mot-clé inset renverse l'ombre à l'intérieur */
-}
-
-.ombres_multiples_diffuses {
- box-shadow: inset 0 0 1em gold, 0 0 2em red;
- /* deux ombres dans la liste et des rayons de flou pour chacune */
-}
-
-<p class="ombre_droite_haut">Déportée dans l'autre sens</p> - -<p class="ombre_interieure">L'ombre est dans le contenu !</p> - -<p class="ombres_multiples_diffuses">Du rouge dehors et du doré dedans</p> -- -
{{EmbedLiveSample("Exemples","400","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Backgrounds', '#box-shadow', 'box-shadow')}} | -{{Spec2('CSS3 Backgrounds')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.box-shadow")}}
- -box-shadow (en anglais)La propriété CSS box-shadow ajoute des ombres à la boîte d'un élément via une liste d'ombres séparées par des virgules. Une boîte d'ombre est définie avec des décalages horizontal et vertical par rapport à l'élément, avec des rayons de flou et d'étalement et avec une couleur.
Le générateur de box-shadow est un outil interactif qui permet de générer des valeurs pour box-shadow.
/* offset-x | offset-y | color */ +box-shadow: 60px -16px teal; + +/* offset-x | offset-y | blur-radius | color */ +box-shadow: 10px 5px 5px black; + +/* offset-x | offset-y | blur-radius | spread-radius | color */ +box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); + +/* inset | offset-x | offset-y | color */ +box-shadow: inset 5em 1em gold; + +/* Une liste d'ombres, séparées par des virgules */ +box-shadow: 3px 3px red, -1em 0 0.4em olive; + +/* Mots-clés globaux */ +box-shadow: inherit; +box-shadow: initial; +box-shadow: unset; ++ +
La propriété box-shadow peut être définie grâce :
<offset-x> et <offset-y><blur-radius><spread-radius>.inset<color>) optionnelle.insetinset modifie l'ombre afin qu'elle soit tournée vers l'intérieur du cadre (comme si le contenu était enfoncé dans la boîte). Les ombres tournées vers l'intérieur sont dessinées à l'intérieur de la bordure (même les transparentes), au-dessus de l'arrière-plan mais sous le contenu.<offset-x> <offset-y><offset-x> définit la distance horizontale du décalage et les valeurs négatives placeront l'ombre à gauche de l'élément. <offset-y> définit la distance verticale et les distances négatives placent l'ombre au-dessus de l'élément (cf. {{cssxref("<length>")}} pour les différentes unités possibles).0, l'ombre est placée derrière l'élément (et peut générer un effet de flou si <blur-radius> et/ou <spread-radius> est utilisé).<blur-radius>0 (le côté de l'ombre est rectiligne).<spread-radius>0 (l'ombre aura la même taille que l'élément).<color>Chaque ombre de la liste (none sera traitée comme une liste de longueur nulle) est interpolée via la couleur, le décalage horizontal et vertical, le rayon de flou et l'étalement (lorsque c'est pertinent). Pour chaque ombre, si les deux ombres sont ou ne sont pas inset, l'ombre interpolée doit respecter cette valeur. Si l'une des ombres a inset et l'autre non, la liste d'ombres ne peut pas être interpolée. Si les listes d'ombres ont des longueurs différentes, la liste la plus courte sera complétée à la fin avec des ombres dont la couleur est transparent, toutes les longueurs valent 0 et inset pour que la valeur corresponde à la plus longue liste.
p {
+ height: 5em;
+ width: 300px;
+ background-color: rgba(128,128,128,0.1);
+}
+.ombre_droite_haut {
+ box-shadow: 60px -16px teal; /* la valeur négative décale vers le haut */
+}
+
+.ombre_interieure {
+ box-shadow: inset 5em 1em gold;
+ /* le mot-clé inset renverse l'ombre à l'intérieur */
+}
+
+.ombres_multiples_diffuses {
+ box-shadow: inset 0 0 1em gold, 0 0 2em red;
+ /* deux ombres dans la liste et des rayons de flou pour chacune */
+}
+
+<p class="ombre_droite_haut">Déportée dans l'autre sens</p> + +<p class="ombre_interieure">L'ombre est dans le contenu !</p> + +<p class="ombres_multiples_diffuses">Du rouge dehors et du doré dedans</p> ++ +
{{EmbedLiveSample("Exemples","400","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Backgrounds', '#box-shadow', 'box-shadow')}} | +{{Spec2('CSS3 Backgrounds')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.box-shadow")}}
+ +box-shadow (en anglais)La propriété CSS box-sizing définit la façon dont la hauteur et la largeur totale d'un élément est calculée (avec le modèle de boîte CSS).
En CSS, la largeur et la hauteur affectées à un élément s'appliquent par défaut à la boîte de contenu (content box) de l'élément. Si l'élément possède une bordure (border) ou du remplissage (padding), celui-ci est ajouté à la largeur et/ou à la hauteur de la boîte affichée à l'écran. Cela signifie qu'il faut ajuster les valeurs de hauteur et de largeur afin qu'elles permettent d'ajouter n'importe quelle bordure ou n'importe quel remplissage qui serait ajouté par la suite.
- -La propriété box-sizing peut être utilisée afin d'ajuster ce comportement :
content-box est la valeur par défaut et correspond au comportement par défaut décrit ci-avant. Si on définit un élément avec une largeur de 100 pixels, la boîte de contenu de cet élément mesurera 100 pixels de large et la largeur de la bordure et/ou du remplissage sera alors ajoutée pour constituer la largeur finalement affichée.border-box indique au navigateur de prendre en compte la bordure et le remplissage dans la valeur définie pour la largeur et la hauteur. Autrement dit, si on définit un élément avec une largeur de 100 pixels, ces 100 pixels inclueront la bordure et le remplissage éventuellement ajoutés et c'est le contenu de la boîte qui sera compressé pour absorber cette largeur supplémentaire. Cela permet généralement de simplifier le dimensionnement des éléments.Note : Il est souvent utile de définir box-sizing à border-box aux éléments de mise en page. Cela facilite grandement la gestion de la taille des éléments et élimine généralement un certain nombre d'écueils que vous pouvez rencontrer lors de la mise en page de votre contenu. D'autre part, lors de l'utilisation de la position: relative ou position: absolute, l'utilisation de box-sizing: content-box permet aux valeurs de positionnement d'être relatives au contenu, et indépendantes des changements de taille des bordures et de la taille de la marge interne, ce qui est parfois souhaitable.
/* Valeurs avec un mot-clé */ -box-sizing: content-box; -box-sizing: border-box; - -/* Valeurs globales */ -box-sizing: inherit; -box-sizing: initial; -box-sizing: unset; -- -
La propriété box-sizing peut être définie avec l'un des mots-clés suivants.
content-box.box {width: 350px; border:10px solid black;} fournira une boîte dont la largeur vaut 370px.border-boxborder-box pour faire disparaître l'élément. Les dimensions de l'élément sont calculées comme la somme de la bordure, du remplissage (padding) et du contenu.Note : La valeur padding-box a été dépréciée.
div {
- width: 160px;
- height: 80px;
- padding: 20px;
- border: 8px solid red;
- background: yellow;
-}
-
-.content-box {
- box-sizing: content-box;
- /* Largeur totale : 160px + (2 * 20px) + (2 * 8px) = 216px
- Hauteur totale : 80px + (2 * 20px) + (2 * 8px) = 136px
- Largeur de la boîte de contenu : 160px
- Hauteur de la boîte de contenu : 80px */
-}
-
-.border-box {
- box-sizing: border-box;
- /* Largeur totale : 160px
- Hauteur totale : 80px
- Largeur de la boîte de contenu : 160px - (2 * 20px) - (2 * 8px) = 104px
- Hauteur de la boîte de contenu : 80px - (2 * 20px) - (2 * 8px) = 24px */
-}
-
-<div class="content-box">Content box</div> -<br> -<div class="border-box">Border box</div>- -
{{EmbedLiveSample("Exemples","auto","200")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#box-sizing', 'box-sizing')}} | -{{Spec2('CSS3 Basic UI')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.box-sizing")}}
- -La propriété CSS box-sizing définit la façon dont la hauteur et la largeur totale d'un élément est calculée (avec le modèle de boîte CSS).
En CSS, la largeur et la hauteur affectées à un élément s'appliquent par défaut à la boîte de contenu (content box) de l'élément. Si l'élément possède une bordure (border) ou du remplissage (padding), celui-ci est ajouté à la largeur et/ou à la hauteur de la boîte affichée à l'écran. Cela signifie qu'il faut ajuster les valeurs de hauteur et de largeur afin qu'elles permettent d'ajouter n'importe quelle bordure ou n'importe quel remplissage qui serait ajouté par la suite.
+ +La propriété box-sizing peut être utilisée afin d'ajuster ce comportement :
content-box est la valeur par défaut et correspond au comportement par défaut décrit ci-avant. Si on définit un élément avec une largeur de 100 pixels, la boîte de contenu de cet élément mesurera 100 pixels de large et la largeur de la bordure et/ou du remplissage sera alors ajoutée pour constituer la largeur finalement affichée.border-box indique au navigateur de prendre en compte la bordure et le remplissage dans la valeur définie pour la largeur et la hauteur. Autrement dit, si on définit un élément avec une largeur de 100 pixels, ces 100 pixels inclueront la bordure et le remplissage éventuellement ajoutés et c'est le contenu de la boîte qui sera compressé pour absorber cette largeur supplémentaire. Cela permet généralement de simplifier le dimensionnement des éléments.Note : Il est souvent utile de définir box-sizing à border-box aux éléments de mise en page. Cela facilite grandement la gestion de la taille des éléments et élimine généralement un certain nombre d'écueils que vous pouvez rencontrer lors de la mise en page de votre contenu. D'autre part, lors de l'utilisation de la position: relative ou position: absolute, l'utilisation de box-sizing: content-box permet aux valeurs de positionnement d'être relatives au contenu, et indépendantes des changements de taille des bordures et de la taille de la marge interne, ce qui est parfois souhaitable.
/* Valeurs avec un mot-clé */ +box-sizing: content-box; +box-sizing: border-box; + +/* Valeurs globales */ +box-sizing: inherit; +box-sizing: initial; +box-sizing: unset; ++ +
La propriété box-sizing peut être définie avec l'un des mots-clés suivants.
content-box.box {width: 350px; border:10px solid black;} fournira une boîte dont la largeur vaut 370px.border-boxborder-box pour faire disparaître l'élément. Les dimensions de l'élément sont calculées comme la somme de la bordure, du remplissage (padding) et du contenu.Note : La valeur padding-box a été dépréciée.
div {
+ width: 160px;
+ height: 80px;
+ padding: 20px;
+ border: 8px solid red;
+ background: yellow;
+}
+
+.content-box {
+ box-sizing: content-box;
+ /* Largeur totale : 160px + (2 * 20px) + (2 * 8px) = 216px
+ Hauteur totale : 80px + (2 * 20px) + (2 * 8px) = 136px
+ Largeur de la boîte de contenu : 160px
+ Hauteur de la boîte de contenu : 80px */
+}
+
+.border-box {
+ box-sizing: border-box;
+ /* Largeur totale : 160px
+ Hauteur totale : 80px
+ Largeur de la boîte de contenu : 160px - (2 * 20px) - (2 * 8px) = 104px
+ Hauteur de la boîte de contenu : 80px - (2 * 20px) - (2 * 8px) = 24px */
+}
+
+<div class="content-box">Content box</div> +<br> +<div class="border-box">Border box</div>+ +
{{EmbedLiveSample("Exemples","auto","200")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#box-sizing', 'box-sizing')}} | +{{Spec2('CSS3 Basic UI')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.box-sizing")}}
+ +La propriété CSS break-after définit la façon dont la page, la colonne ou la région se fragmente après la boîte générée. S'il n'y a aucune boîte générée, la propriété est ignorée.
/* Valeurs génériques */ -break-after: auto; -break-after: avoid; -break-after: always; -break-after: all; - -/* Valeurs de rupture liées aux pages */ -break-after: avoid-page; -break-after: page; -break-after: always; -break-after: left; -break-after: right; -break-after: recto; -break-after: verso; - -/* Valeurs de rupture liées aux colonnes */ -break-after: avoid-column; -break-after: column; - -/* Valeurs de rupture liées aux régions */ -break-after: avoid-region; -break-after: region; - -/* Valeurs globales */ -break-after: inherit; -break-after: initial; -break-after: unset; -- -
Chaque point de rupture éventuel (c'est-à-dire chaque frontière d'élément) est influencé par trois propriétés : la valeur de {{cssxref("break-after")}} de l'élément précédent, la valeur de {{cssxref("break-before")}} de l'élément suivant et la valeur de break-inside de l'élément englobant.
Pour déterminer si on a une rupture, on applique les règles suivantes :
- -always, left, right, page, column ou region), cette valeur l'emporte. Si plusieurs valeurs décrivent une rupture forcée, c'est celle de l'élément qui apparaît le plus tard dans le flux qui est prise en compte (autrement dit, {{cssxref("break-before")}} l'emporte sur {{cssxref("break-after")}} qui l'emporte sur {{cssxref("break-inside")}}).avoid, avoid-page, avoid-region, avoid-column), aucune rupture ne sera appliquée à cet endroit.Une fois que les ruptures forcées ont été appliquées, le moteur peut ajouter des ruptures « douces » sauf aux endroits où les propriétés empêchent les ruptures.
- -autoalways{{experimental_inline}}all{{experimental_inline}}avoidleftrightpagecolumnregion {{experimental_inline}}recto {{experimental_inline}}verso {{experimental_inline}}avoid-pageavoid-columnavoid-region {{experimental_inline}}page-break-afterPour des raisons de compatibilité, la propriété historique {{cssxref("page-break-after")}} devrait être traitée par les navigateurs comme un alias de break-after. Cela permet de s'assurer que les sites qui utilisaient page-break-after continuent de fonctionner. Voici un sous-ensemble des valeurs avec leurs alias :
page-break-after |
- break-after |
-
|---|---|
auto |
- auto |
-
left |
- left |
-
right |
- right |
-
avoid |
- avoid |
-
always |
- page |
-
Note : La valeur always de page-break-* a été implémenté par les navigateurs comme une rupture de page et pas comme une rupture de colonne. C'est pourquoi l'alias correspondant à cette valeur est page et pas always.
.exemple {
- -webkit-column-count: 4;
- -moz-column-count: 4;
- column-count: 4;
-}
-
-p {
- break-after: avoid-column;
- /* Pour Firefox : */
- page-break-after: avoid;
- /* Pour WebKit : */
- -webkit-column-break-after: avoid;
-}
-
-
-<div class="exemple"> - <p>« Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. »</p> - <p>« Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. »</p> -</div>- -
{{EmbedLiveSample("Exemples","400","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-after', 'break-after')}} | -{{Spec2('CSS3 Fragmentation')}} | -Ajouts des mots-clés recto et verso. Le type de média pour cette propriété est passé de paged à visual. L'algorithme de rupture est précisé afin de gérer les différents types de rupture. |
-
| {{SpecName('CSS3 Regions', '#region-flow-break', 'break-after')}} | -{{Spec2('CSS3 Regions')}} | -La spécification étend la propriété pour gérer les sauts de région. Les mots-clés avoid-region et region sont ajoutés. |
-
| {{SpecName('CSS3 Multicol', '#break-after', 'break-after')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. La spécification étend la propriété {{cssxref("page-break-after")}} de CSS 2.1 afin de gérer les sauts de page ou de colonne. | -
{{cssinfo}}
- -{{Compat("css.properties.break-after.multicol_context")}}
- -{{Compat("css.properties.break-after.paged_context")}}
diff --git a/files/fr/web/css/break-after/index.md b/files/fr/web/css/break-after/index.md new file mode 100644 index 0000000000..4ed535eaf6 --- /dev/null +++ b/files/fr/web/css/break-after/index.md @@ -0,0 +1,209 @@ +--- +title: break-after +slug: Web/CSS/break-after +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/break-after +--- +La propriété CSS break-after définit la façon dont la page, la colonne ou la région se fragmente après la boîte générée. S'il n'y a aucune boîte générée, la propriété est ignorée.
/* Valeurs génériques */ +break-after: auto; +break-after: avoid; +break-after: always; +break-after: all; + +/* Valeurs de rupture liées aux pages */ +break-after: avoid-page; +break-after: page; +break-after: always; +break-after: left; +break-after: right; +break-after: recto; +break-after: verso; + +/* Valeurs de rupture liées aux colonnes */ +break-after: avoid-column; +break-after: column; + +/* Valeurs de rupture liées aux régions */ +break-after: avoid-region; +break-after: region; + +/* Valeurs globales */ +break-after: inherit; +break-after: initial; +break-after: unset; ++ +
Chaque point de rupture éventuel (c'est-à-dire chaque frontière d'élément) est influencé par trois propriétés : la valeur de {{cssxref("break-after")}} de l'élément précédent, la valeur de {{cssxref("break-before")}} de l'élément suivant et la valeur de break-inside de l'élément englobant.
Pour déterminer si on a une rupture, on applique les règles suivantes :
+ +always, left, right, page, column ou region), cette valeur l'emporte. Si plusieurs valeurs décrivent une rupture forcée, c'est celle de l'élément qui apparaît le plus tard dans le flux qui est prise en compte (autrement dit, {{cssxref("break-before")}} l'emporte sur {{cssxref("break-after")}} qui l'emporte sur {{cssxref("break-inside")}}).avoid, avoid-page, avoid-region, avoid-column), aucune rupture ne sera appliquée à cet endroit.Une fois que les ruptures forcées ont été appliquées, le moteur peut ajouter des ruptures « douces » sauf aux endroits où les propriétés empêchent les ruptures.
+ +autoalways{{experimental_inline}}all{{experimental_inline}}avoidleftrightpagecolumnregion {{experimental_inline}}recto {{experimental_inline}}verso {{experimental_inline}}avoid-pageavoid-columnavoid-region {{experimental_inline}}page-break-afterPour des raisons de compatibilité, la propriété historique {{cssxref("page-break-after")}} devrait être traitée par les navigateurs comme un alias de break-after. Cela permet de s'assurer que les sites qui utilisaient page-break-after continuent de fonctionner. Voici un sous-ensemble des valeurs avec leurs alias :
page-break-after |
+ break-after |
+
|---|---|
auto |
+ auto |
+
left |
+ left |
+
right |
+ right |
+
avoid |
+ avoid |
+
always |
+ page |
+
Note : La valeur always de page-break-* a été implémenté par les navigateurs comme une rupture de page et pas comme une rupture de colonne. C'est pourquoi l'alias correspondant à cette valeur est page et pas always.
.exemple {
+ -webkit-column-count: 4;
+ -moz-column-count: 4;
+ column-count: 4;
+}
+
+p {
+ break-after: avoid-column;
+ /* Pour Firefox : */
+ page-break-after: avoid;
+ /* Pour WebKit : */
+ -webkit-column-break-after: avoid;
+}
+
+
+<div class="exemple"> + <p>« Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. »</p> + <p>« Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. »</p> +</div>+ +
{{EmbedLiveSample("Exemples","400","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-after', 'break-after')}} | +{{Spec2('CSS3 Fragmentation')}} | +Ajouts des mots-clés recto et verso. Le type de média pour cette propriété est passé de paged à visual. L'algorithme de rupture est précisé afin de gérer les différents types de rupture. |
+
| {{SpecName('CSS3 Regions', '#region-flow-break', 'break-after')}} | +{{Spec2('CSS3 Regions')}} | +La spécification étend la propriété pour gérer les sauts de région. Les mots-clés avoid-region et region sont ajoutés. |
+
| {{SpecName('CSS3 Multicol', '#break-after', 'break-after')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. La spécification étend la propriété {{cssxref("page-break-after")}} de CSS 2.1 afin de gérer les sauts de page ou de colonne. | +
{{cssinfo}}
+ +{{Compat("css.properties.break-after.multicol_context")}}
+ +{{Compat("css.properties.break-after.paged_context")}}
diff --git a/files/fr/web/css/break-before/index.html b/files/fr/web/css/break-before/index.html deleted file mode 100644 index 7ea0446d08..0000000000 --- a/files/fr/web/css/break-before/index.html +++ /dev/null @@ -1,227 +0,0 @@ ---- -title: break-before -slug: Web/CSS/break-before -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/break-before ---- -La propriété break-before décrit la façon dont la page, la colonne ou la région se fragmente avant la boîte générée. S'il n'y a aucune boîte générée, la propriété est ignorée.
/* Valeurs de rupture génériques */ -break-before: auto; -break-before: avoid; -break-before: always; -break-before: all; - -/* Valeurs de rupture pour les pages */ -break-before: avoid-page; -break-before: page: -break-before: left; -break-before: right; -break-before: recto; -break-before: verso; - -/* Valeurs de rupture pour les colonnes */ -break-before: avoid-column; -break-before: column; - -/* Valeurs de rupture pour les régions */ -break-before: avoid-region; -break-before: region; - -/* Valeurs globales */ -break-before: inherit; -break-before: initial; -break-before: unset; -- -
Chaque point de rupture éventuel (c'est-à-dire chaque frontière d'élément) est influencé par trois propriétés : la valeur de {{cssxref("break-after")}} de l'élément précédent, la valeur de {{cssxref("break-before")}} de l'élément suivant et la valeur de break-inside de l'élément englobant.
Pour déterminer si on a une rupture, on applique les règles suivantes :
- -always, left, right, page, column ou region), cette valeur l'emporte. Si plusieurs valeurs décrivent une rupture forcée, c'est celle de l'élément qui apparaît le plus tard dans le flux qui est prise en compte (autrement dit, {{cssxref("break-before")}} l'emporte sur {{cssxref("break-after")}} qui l'emporte sur {{cssxref("break-inside")}}).avoid, avoid-page, avoid-region, avoid-column), aucune rupture ne sera appliquée à cet endroit.Une fois que les ruptures forcées ont été appliquées, le moteur peut ajouter des ruptures « douces » sauf aux endroits où les propriétés empêchent les ruptures.
- -La propriété break-before se paramètre avec un des mots-clés définis ci-après.
autoall{{experimental_inline}}always{{experimental_inline}}avoidavoid-pagepageleftrecto {{experimental_inline}}rightverso{{experimental_inline}}avoid-columncolumnregion{{experimental_inline}}avoid-region{{experimental_inline}}Pour des raisons de compatibilité, la propriété historique {{cssxref("page-break-before")}} devrait être considérée par les navigateurs comme un synonyme de break-before. Cela permet aux sites utilisant page-break-before de continuer à fonctionner comme précédemment. Voici un sous-ensemble des valeurs avec leurs alias :
page-break-before |
- break-before |
-
|---|---|
auto |
- auto |
-
left |
- left |
-
right |
- right |
-
avoid |
- avoid |
-
always |
- page |
-
Note : La valeur always pour page-break-before a été implémentée par les navigateurs comme une rupture de page et non comme une rupture de colonne. C'est pourquoi l'alias ici utilisé est page et non always.
.exemple {
- -webkit-column-count: 4;
- -moz-column-count: 4;
- column-count: 4;
-}
-
-p {
- break-before: avoid-column;
- /* Pour Firefox : */
- page-break-before: avoid;
- /* Pour WebKit : */
- -webkit-column-break-before: avoid;
-}
-
-
-<div class="exemple"> - <p>« Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. »</p> - <p>« Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. »</p> -</div>- -
{{EmbedLiveSample("Exemples","400","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-between', 'break-before')}} | -{{Spec2('CSS3 Fragmentation')}} | -Ajouts des mots-clés recto et verso. Le type de média pour cette propriété est passé de paged à visual. L'algorithme de rupture est précisé afin de gérer les différents types de rupture. |
-
| {{SpecName('CSS3 Regions', '#region-flow-break', 'break-before')}} | -{{Spec2('CSS3 Regions')}} | -La spécification étend la propriété pour gérer les sauts de région. Les mots-clés avoid-region et region sont ajoutés. |
-
| {{SpecName('CSS3 Multicol', '#break-before-break-after-break-inside', 'break-before')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. La spécification étend la propriété {{cssxref("page-break-before")}} de CSS 2.1 afin de gérer les sauts de page ou de colonne. | -
{{cssinfo}}
- -{{Compat("css.properties.break-before.multicol_context")}}
- -{{Compat("css.properties.break-before.paged_context")}}
diff --git a/files/fr/web/css/break-before/index.md b/files/fr/web/css/break-before/index.md new file mode 100644 index 0000000000..7ea0446d08 --- /dev/null +++ b/files/fr/web/css/break-before/index.md @@ -0,0 +1,227 @@ +--- +title: break-before +slug: Web/CSS/break-before +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/break-before +--- +La propriété break-before décrit la façon dont la page, la colonne ou la région se fragmente avant la boîte générée. S'il n'y a aucune boîte générée, la propriété est ignorée.
/* Valeurs de rupture génériques */ +break-before: auto; +break-before: avoid; +break-before: always; +break-before: all; + +/* Valeurs de rupture pour les pages */ +break-before: avoid-page; +break-before: page: +break-before: left; +break-before: right; +break-before: recto; +break-before: verso; + +/* Valeurs de rupture pour les colonnes */ +break-before: avoid-column; +break-before: column; + +/* Valeurs de rupture pour les régions */ +break-before: avoid-region; +break-before: region; + +/* Valeurs globales */ +break-before: inherit; +break-before: initial; +break-before: unset; ++ +
Chaque point de rupture éventuel (c'est-à-dire chaque frontière d'élément) est influencé par trois propriétés : la valeur de {{cssxref("break-after")}} de l'élément précédent, la valeur de {{cssxref("break-before")}} de l'élément suivant et la valeur de break-inside de l'élément englobant.
Pour déterminer si on a une rupture, on applique les règles suivantes :
+ +always, left, right, page, column ou region), cette valeur l'emporte. Si plusieurs valeurs décrivent une rupture forcée, c'est celle de l'élément qui apparaît le plus tard dans le flux qui est prise en compte (autrement dit, {{cssxref("break-before")}} l'emporte sur {{cssxref("break-after")}} qui l'emporte sur {{cssxref("break-inside")}}).avoid, avoid-page, avoid-region, avoid-column), aucune rupture ne sera appliquée à cet endroit.Une fois que les ruptures forcées ont été appliquées, le moteur peut ajouter des ruptures « douces » sauf aux endroits où les propriétés empêchent les ruptures.
+ +La propriété break-before se paramètre avec un des mots-clés définis ci-après.
autoall{{experimental_inline}}always{{experimental_inline}}avoidavoid-pagepageleftrecto {{experimental_inline}}rightverso{{experimental_inline}}avoid-columncolumnregion{{experimental_inline}}avoid-region{{experimental_inline}}Pour des raisons de compatibilité, la propriété historique {{cssxref("page-break-before")}} devrait être considérée par les navigateurs comme un synonyme de break-before. Cela permet aux sites utilisant page-break-before de continuer à fonctionner comme précédemment. Voici un sous-ensemble des valeurs avec leurs alias :
page-break-before |
+ break-before |
+
|---|---|
auto |
+ auto |
+
left |
+ left |
+
right |
+ right |
+
avoid |
+ avoid |
+
always |
+ page |
+
Note : La valeur always pour page-break-before a été implémentée par les navigateurs comme une rupture de page et non comme une rupture de colonne. C'est pourquoi l'alias ici utilisé est page et non always.
.exemple {
+ -webkit-column-count: 4;
+ -moz-column-count: 4;
+ column-count: 4;
+}
+
+p {
+ break-before: avoid-column;
+ /* Pour Firefox : */
+ page-break-before: avoid;
+ /* Pour WebKit : */
+ -webkit-column-break-before: avoid;
+}
+
+
+<div class="exemple"> + <p>« Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. »</p> + <p>« Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. »</p> +</div>+ +
{{EmbedLiveSample("Exemples","400","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-between', 'break-before')}} | +{{Spec2('CSS3 Fragmentation')}} | +Ajouts des mots-clés recto et verso. Le type de média pour cette propriété est passé de paged à visual. L'algorithme de rupture est précisé afin de gérer les différents types de rupture. |
+
| {{SpecName('CSS3 Regions', '#region-flow-break', 'break-before')}} | +{{Spec2('CSS3 Regions')}} | +La spécification étend la propriété pour gérer les sauts de région. Les mots-clés avoid-region et region sont ajoutés. |
+
| {{SpecName('CSS3 Multicol', '#break-before-break-after-break-inside', 'break-before')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. La spécification étend la propriété {{cssxref("page-break-before")}} de CSS 2.1 afin de gérer les sauts de page ou de colonne. | +
{{cssinfo}}
+ +{{Compat("css.properties.break-before.multicol_context")}}
+ +{{Compat("css.properties.break-before.paged_context")}}
diff --git a/files/fr/web/css/break-inside/index.html b/files/fr/web/css/break-inside/index.html deleted file mode 100644 index 4a0ca31b30..0000000000 --- a/files/fr/web/css/break-inside/index.html +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: break-inside -slug: Web/CSS/break-inside -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/break-inside ---- -La propriété CSS break-inside définit comment la page, la colonne ou la région se fragmente au sein de la boîte générée. S'il n'y a aucune boîte générée, la propriété est ignorée.
/* Valeurs avec un mot-clé */ -break-inside: auto; -break-inside: avoid; -break-inside: avoid-page; -break-inside: avoid-column; -break-inside: avoid-region; - -/* Valeurs globales */ -break-inside: inherit; -break-inside: initial; -break-inside: unset; -- -
Chaque point de rupture éventuel (c'est-à-dire chaque frontière d'élément) est influencé par trois propriétés : la valeur de {{cssxref("break-after")}} de l'élément précédent, la valeur de {{cssxref("break-before")}} de l'élément suivant et la valeur de break-inside de l'élément englobant.
Pour déterminer si on a une rupture, on applique les règles suivantes :
- -always, left, right, page, column ou region), cette valeur l'emporte. Si plusieurs valeurs décrivent une rupture forcée, c'est celle de l'élément qui apparaît le plus tard dans le flux qui est prise en compte (autrement dit, {{cssxref("break-before")}} l'emporte sur {{cssxref("break-after")}} qui l'emporte sur break-inside).avoid, avoid-page, avoid-region ou avoid-column), aucune rupture ne sera appliquée à cet endroit.Une fois que les ruptures forcées ont été appliquées, le moteur peut ajouter des ruptures « douces » sauf aux endroits où les propriétés empêchent les ruptures.
- -La propriété break-inside se définit avec un mot-clé parmi ceux de la liste ci-après.
autoavoidavoid-pageavoid-columnavoid-region {{experimental_inline}}page-break-insidePour des raisons de compatibilité, la propriété historique {{cssxref("page-break-inside")}} devrait être traitée par les navigateurs comme break-inside. De cette façon, cela permet aux sites qui utilisaient page-break-inside de continuer à fonctionner. Voici un sous-ensemble de valeurs avec leurs alias :
page-break-inside |
- break-inside |
-
|---|---|
auto |
- auto |
-
avoid |
- avoid |
-
.exemple {
- -webkit-column-count: 4;
- -moz-column-count: 4;
- column-count: 4;
-}
-
-p {
- break-inside: avoid-column;
- /* Pour Firefox : */
- page-break-inside: avoid;
- /* Pour WebKit : */
- -webkit-column-break-inside: avoid;
-}
-
-
-<div class="exemple"> - <p>« Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. »</p> - <p>« Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. »</p> -</div>- -
{{EmbedLiveSample("Exemples","400","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-within', 'break-inside')}} | -{{Spec2('CSS3 Fragmentation')}} | -Aucune modification. | -
| {{SpecName('CSS3 Regions', '#region-flow-break', 'break-inside')}} | -{{Spec2('CSS3 Regions')}} | -Ajout de la gestion des ruptures de région. | -
| {{SpecName('CSS3 Multicol', '#break-before-break-after-break-inside', 'break-inside')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.break-inside", 4)}}
- -Avant Firefox 65, l'ancienne propriété {{cssxref("page-break-inside")}} fonctionnait dans Firefox en empêchant les ruptures de colonnes et de pages. On utilisera les deux propriétés afin d'obtenir une rétrocompatibilité avec ces versions.
- -Pour les anciens navigateurs basés sur WebKit, on peut utiliser la propriété préfixée -webkit-column-break-inside afin de contrôler les ruptures de colonne.
La propriété CSS break-inside définit comment la page, la colonne ou la région se fragmente au sein de la boîte générée. S'il n'y a aucune boîte générée, la propriété est ignorée.
/* Valeurs avec un mot-clé */ +break-inside: auto; +break-inside: avoid; +break-inside: avoid-page; +break-inside: avoid-column; +break-inside: avoid-region; + +/* Valeurs globales */ +break-inside: inherit; +break-inside: initial; +break-inside: unset; ++ +
Chaque point de rupture éventuel (c'est-à-dire chaque frontière d'élément) est influencé par trois propriétés : la valeur de {{cssxref("break-after")}} de l'élément précédent, la valeur de {{cssxref("break-before")}} de l'élément suivant et la valeur de break-inside de l'élément englobant.
Pour déterminer si on a une rupture, on applique les règles suivantes :
+ +always, left, right, page, column ou region), cette valeur l'emporte. Si plusieurs valeurs décrivent une rupture forcée, c'est celle de l'élément qui apparaît le plus tard dans le flux qui est prise en compte (autrement dit, {{cssxref("break-before")}} l'emporte sur {{cssxref("break-after")}} qui l'emporte sur break-inside).avoid, avoid-page, avoid-region ou avoid-column), aucune rupture ne sera appliquée à cet endroit.Une fois que les ruptures forcées ont été appliquées, le moteur peut ajouter des ruptures « douces » sauf aux endroits où les propriétés empêchent les ruptures.
+ +La propriété break-inside se définit avec un mot-clé parmi ceux de la liste ci-après.
autoavoidavoid-pageavoid-columnavoid-region {{experimental_inline}}page-break-insidePour des raisons de compatibilité, la propriété historique {{cssxref("page-break-inside")}} devrait être traitée par les navigateurs comme break-inside. De cette façon, cela permet aux sites qui utilisaient page-break-inside de continuer à fonctionner. Voici un sous-ensemble de valeurs avec leurs alias :
page-break-inside |
+ break-inside |
+
|---|---|
auto |
+ auto |
+
avoid |
+ avoid |
+
.exemple {
+ -webkit-column-count: 4;
+ -moz-column-count: 4;
+ column-count: 4;
+}
+
+p {
+ break-inside: avoid-column;
+ /* Pour Firefox : */
+ page-break-inside: avoid;
+ /* Pour WebKit : */
+ -webkit-column-break-inside: avoid;
+}
+
+
+<div class="exemple"> + <p>« Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. »</p> + <p>« Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. »</p> +</div>+ +
{{EmbedLiveSample("Exemples","400","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#break-within', 'break-inside')}} | +{{Spec2('CSS3 Fragmentation')}} | +Aucune modification. | +
| {{SpecName('CSS3 Regions', '#region-flow-break', 'break-inside')}} | +{{Spec2('CSS3 Regions')}} | +Ajout de la gestion des ruptures de région. | +
| {{SpecName('CSS3 Multicol', '#break-before-break-after-break-inside', 'break-inside')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.break-inside", 4)}}
+ +Avant Firefox 65, l'ancienne propriété {{cssxref("page-break-inside")}} fonctionnait dans Firefox en empêchant les ruptures de colonnes et de pages. On utilisera les deux propriétés afin d'obtenir une rétrocompatibilité avec ces versions.
+ +Pour les anciens navigateurs basés sur WebKit, on peut utiliser la propriété préfixée -webkit-column-break-inside afin de contrôler les ruptures de colonne.
La fonction calc() peut être utilisée à n'importe quel endroit où une {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<number>")}}, {{cssxref("<percentage>")}} ou {{cssxref("<integer>")}} est nécessaire. Grâce à calc(), il est possible de réaliser des calculs pour déterminer la valeur d'une propriété CSS.
/* property: calc(expression) */ -width: calc(100% - 80px); -- -
Il est aussi possible d'utiliser calc() dans une autre fonction calc() et ainsi d'imbriquer les fonctions les unes dans les autres.
Une fonction qui prend comme seul argument une expression mathématique et dont le résultat est utilisé comme valeur de retour. L'expression peut être n'importe quelle expression combinant les différents opérateurs suivants, en respectant l'ordre de priorité des opérateurs :
- -+-*/L'opérande dans l'expression peut utiliser n'importe quelle syntaxe de longueur. Vous pouvez utiliser des unités différentes pour chacune des valeurs si vous le souhaitez. Vous pouvez aussi utiliser les parenthèses pour définir l'ordre des opérations.
- -+ et - doivent toujours être entouré d'espaces. Par exemple l'opérande de calc(50% -8px) sera interprété comme une valeur en pourcentage suivie d'une longueur négative, l'expression est invalide. L'opérande de calc(50% - 8px) est une valeur en pourcentage suivie d'un signe moins et d'une longueur. Et ainsi, calc(8px + -50%) est interprété comme une longueur suivi d'un signe plus et d'un pourcentage négatif.* et / ne nécessitent pas d'espaces, mais les ajouter pour conserver la cohérence est recommandé.auto qui avait été utilisé.calc(), auquel cas, les appels « internes » sont considérés comme des parenthèses.calc() rend le positionnement des objets facile en définissant une marge. Dans cet exemple, le CSS crée une bannière qui s'étend sur toute la fenêtre, avec un espace de 40 pixels entre chaque bout de la bannière et les bords de la fenêtre :
.banniere {
- position: absolute;
- left: 40px;
- width: calc(100% - 80px);
- border: solid black 1px;
- box-shadow: 1px 2px;
- background-color: yellow;
- padding: 6px;
- text-align: center;
- box-sizing: border-box;
-}
-
-
-<div class="banniere">C'est une bannière !</div>- -
{{EmbedLiveSample("Positionner_un_objet_sur_l’écran_avec_une_marge", '100%', '60')}}
- -Un autre cas d'utilisation de calc() est d'aider à s'assurer que les champs d'un formulaire s'adaptent à l'espace disponible, sans s'étendre au-delà de la bordure du conteneur, tout en conservant une marge appropriée.
Regardons un peu le CSS :
- -input {
- padding: 2px;
- display: block;
- width: calc(100% - 1em);
-}
-
-#boiteformulaire {
- width: calc(100%/6);
- border: 1px solid black;
- padding: 4px;
-}
-
-
-Dans ce cas, le formulaire est lui-même défini pour utiliser un sixième de la taille disponible de la fenêtre. Ensuite, pour s'assurer que les champs gardent une taille appropriée, nous utilisons calc() pour définir qu'ils doivent être de la largeur de leur conteneur moins 1em. Enfin, le HTML suivant utilise le CSS défini :
<form> - <div id="boiteformulaire"> - <label>Tapez quelque chose :</label> - <input type="text"> - </div> -</form> -- -
{{EmbedLiveSample("Dimensionner_automatiquement_les_champs_d’un_formulaire_pour_s’ajuster_au_conteneur", '100%', '80')}}
- -calc() grâce aux variables CSSPrenons la feuille de style suivante :
- -.toto {
- --largeurA: 100px;
- --largeurB: calc(var(--largeurA) / 2);
- --largeurC: calc(var(--largeurB) / 2);
- width: var(--largeurC);
-}
-
-Une fois que toutes les variables sont développées, largeurC aura la valeur calc( calc( 100px / 2) / 2) et sera ensuite affectée à la propriété {{cssxref("width")}} des éléments de la classe toto. Tous les calc() imbriqués, quel que soit leur nombre, seront convertis en parenthèses, la valeur sera donc calculée comme calc( ( 100px / 2) / 2) (soit 25px). En résumé, utiliser des calc() imbriqués revient à utiliser des parenthèses.
Lorsque vous utilisez calc() pour définir la taille d'un texte, assurez-vous d'inclure une unité de longueur relative. Par exemple :
h1 {
- font-size: calc(1.5rem + 3vw);
-}
-
-De cette façon, la taille du texte s'adaptera si le lecteur zoome/dézoome.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Values', '#calc-notation', 'calc()')}} | -{{Spec2('CSS3 Values')}} | -Définition initiale. | -
{{Compat("css.types.calc")}}
- -La fonction calc() peut être utilisée à n'importe quel endroit où une {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<number>")}}, {{cssxref("<percentage>")}} ou {{cssxref("<integer>")}} est nécessaire. Grâce à calc(), il est possible de réaliser des calculs pour déterminer la valeur d'une propriété CSS.
/* property: calc(expression) */ +width: calc(100% - 80px); ++ +
Il est aussi possible d'utiliser calc() dans une autre fonction calc() et ainsi d'imbriquer les fonctions les unes dans les autres.
Une fonction qui prend comme seul argument une expression mathématique et dont le résultat est utilisé comme valeur de retour. L'expression peut être n'importe quelle expression combinant les différents opérateurs suivants, en respectant l'ordre de priorité des opérateurs :
+ ++-*/L'opérande dans l'expression peut utiliser n'importe quelle syntaxe de longueur. Vous pouvez utiliser des unités différentes pour chacune des valeurs si vous le souhaitez. Vous pouvez aussi utiliser les parenthèses pour définir l'ordre des opérations.
+ ++ et - doivent toujours être entouré d'espaces. Par exemple l'opérande de calc(50% -8px) sera interprété comme une valeur en pourcentage suivie d'une longueur négative, l'expression est invalide. L'opérande de calc(50% - 8px) est une valeur en pourcentage suivie d'un signe moins et d'une longueur. Et ainsi, calc(8px + -50%) est interprété comme une longueur suivi d'un signe plus et d'un pourcentage négatif.* et / ne nécessitent pas d'espaces, mais les ajouter pour conserver la cohérence est recommandé.auto qui avait été utilisé.calc(), auquel cas, les appels « internes » sont considérés comme des parenthèses.calc() rend le positionnement des objets facile en définissant une marge. Dans cet exemple, le CSS crée une bannière qui s'étend sur toute la fenêtre, avec un espace de 40 pixels entre chaque bout de la bannière et les bords de la fenêtre :
.banniere {
+ position: absolute;
+ left: 40px;
+ width: calc(100% - 80px);
+ border: solid black 1px;
+ box-shadow: 1px 2px;
+ background-color: yellow;
+ padding: 6px;
+ text-align: center;
+ box-sizing: border-box;
+}
+
+
+<div class="banniere">C'est une bannière !</div>+ +
{{EmbedLiveSample("Positionner_un_objet_sur_l’écran_avec_une_marge", '100%', '60')}}
+ +Un autre cas d'utilisation de calc() est d'aider à s'assurer que les champs d'un formulaire s'adaptent à l'espace disponible, sans s'étendre au-delà de la bordure du conteneur, tout en conservant une marge appropriée.
Regardons un peu le CSS :
+ +input {
+ padding: 2px;
+ display: block;
+ width: calc(100% - 1em);
+}
+
+#boiteformulaire {
+ width: calc(100%/6);
+ border: 1px solid black;
+ padding: 4px;
+}
+
+
+Dans ce cas, le formulaire est lui-même défini pour utiliser un sixième de la taille disponible de la fenêtre. Ensuite, pour s'assurer que les champs gardent une taille appropriée, nous utilisons calc() pour définir qu'ils doivent être de la largeur de leur conteneur moins 1em. Enfin, le HTML suivant utilise le CSS défini :
<form> + <div id="boiteformulaire"> + <label>Tapez quelque chose :</label> + <input type="text"> + </div> +</form> ++ +
{{EmbedLiveSample("Dimensionner_automatiquement_les_champs_d’un_formulaire_pour_s’ajuster_au_conteneur", '100%', '80')}}
+ +calc() grâce aux variables CSSPrenons la feuille de style suivante :
+ +.toto {
+ --largeurA: 100px;
+ --largeurB: calc(var(--largeurA) / 2);
+ --largeurC: calc(var(--largeurB) / 2);
+ width: var(--largeurC);
+}
+
+Une fois que toutes les variables sont développées, largeurC aura la valeur calc( calc( 100px / 2) / 2) et sera ensuite affectée à la propriété {{cssxref("width")}} des éléments de la classe toto. Tous les calc() imbriqués, quel que soit leur nombre, seront convertis en parenthèses, la valeur sera donc calculée comme calc( ( 100px / 2) / 2) (soit 25px). En résumé, utiliser des calc() imbriqués revient à utiliser des parenthèses.
Lorsque vous utilisez calc() pour définir la taille d'un texte, assurez-vous d'inclure une unité de longueur relative. Par exemple :
h1 {
+ font-size: calc(1.5rem + 3vw);
+}
+
+De cette façon, la taille du texte s'adaptera si le lecteur zoome/dézoome.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Values', '#calc-notation', 'calc()')}} | +{{Spec2('CSS3 Values')}} | +Définition initiale. | +
{{Compat("css.types.calc")}}
+ +La propriété caption-side permet de choisir l'emplacement de la légende d'un tableau (représentée par l'élément {{HTMLElement("caption")}} du tableau). Les valeurs sont relatives au mode d'écriture (cf. {{cssxref("writing-mode")}}) du tableau.
/* Valeurs avec un mot-clé */ -/* Valeurs directionnelles */ -caption-side: top; -caption-side: bottom; - -/* Valeurs non-standards */ -caption-side: left; -caption-side: right; -caption-side: top-outside; -caption-side: bottom-outside; - - -/* Valeur globales */ -caption-side: inherit; -caption-side: initial; -caption-side: unset; -- -
topbottomleft {{non-standard_inline}}right {{non-standard_inline}}top-outside {{non-standard_inline}}top, réintroduit avec cette valeur dans une future spécification.")}}bottom-outside {{non-standard_inline}}bottom, réintroduit avec cette valeur dans une future spécification.")}}caption {
- caption-side: bottom;
-}
-
-
-<table> - <caption>Une légende</caption> - <tr> - <td>Des données d'un tableau</td> - <td>Pfiou encore des données</td> - </tr> -</table>- -
{{EmbedLiveSample("Exemples","300","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties', '#caption-side', 'caption-side')}} | -{{Spec2('CSS Logical Properties')}} | -Les valeurs top et bottom sont désormais définies comme relatives à la valeur de writing-mode. |
-
| {{SpecName('CSS2.1', 'tables.html#caption-position', 'caption-side')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.caption-side")}}
diff --git a/files/fr/web/css/caption-side/index.md b/files/fr/web/css/caption-side/index.md new file mode 100644 index 0000000000..46b1691fd8 --- /dev/null +++ b/files/fr/web/css/caption-side/index.md @@ -0,0 +1,112 @@ +--- +title: caption-side +slug: Web/CSS/caption-side +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/caption-side +--- +La propriété caption-side permet de choisir l'emplacement de la légende d'un tableau (représentée par l'élément {{HTMLElement("caption")}} du tableau). Les valeurs sont relatives au mode d'écriture (cf. {{cssxref("writing-mode")}}) du tableau.
/* Valeurs avec un mot-clé */ +/* Valeurs directionnelles */ +caption-side: top; +caption-side: bottom; + +/* Valeurs non-standards */ +caption-side: left; +caption-side: right; +caption-side: top-outside; +caption-side: bottom-outside; + + +/* Valeur globales */ +caption-side: inherit; +caption-side: initial; +caption-side: unset; ++ +
topbottomleft {{non-standard_inline}}right {{non-standard_inline}}top-outside {{non-standard_inline}}top, réintroduit avec cette valeur dans une future spécification.")}}bottom-outside {{non-standard_inline}}bottom, réintroduit avec cette valeur dans une future spécification.")}}caption {
+ caption-side: bottom;
+}
+
+
+<table> + <caption>Une légende</caption> + <tr> + <td>Des données d'un tableau</td> + <td>Pfiou encore des données</td> + </tr> +</table>+ +
{{EmbedLiveSample("Exemples","300","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties', '#caption-side', 'caption-side')}} | +{{Spec2('CSS Logical Properties')}} | +Les valeurs top et bottom sont désormais définies comme relatives à la valeur de writing-mode. |
+
| {{SpecName('CSS2.1', 'tables.html#caption-position', 'caption-side')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.caption-side")}}
diff --git a/files/fr/web/css/caret-color/index.html b/files/fr/web/css/caret-color/index.html deleted file mode 100644 index ef1f0eb278..0000000000 --- a/files/fr/web/css/caret-color/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: caret-color -slug: Web/CSS/caret-color -tags: - - CSS - - Propriété - - Reference - - Web -translation_of: Web/CSS/caret-color ---- -La propriété CSS caret-color définit la couleur du curseur visible à l'endroit où l'utilisateur peut ajouter du texte ou un autre contenu dans l'élément lorsqu'il saisit au clavier ou qu'il édite les informations.
Note : Les agents utilisateurs peuvent considérer que d'autres objets doivent être impactés par cette propriété : par exemple le curseur de navigation, qui ressemble au curseur de saisie et qui peut être déplacé sur un texte non-éditable. En revanche, bien que l'icône du curseur de la souris puisse ressembler à un curseur de saisie lorsque {{cssxref("cursor")}} vaut auto ou text ou vertical-text, celle-ci n'est pas modifiée par cette propriété. Pour certains navigateurs qui ne prennent pas en charge cette propriété, la couleur du curseur de saisie n'est pas associée à la couleur de la police.
/* Valeur avec un mot-clé */ -caret-color: auto; -caret-color: transparent; -color: currentColor; - -/* Valeurs de couleur */ -/* Type <color> */ -caret-color: red; -caret-color: #5729e9; -caret-color: rgb(0, 200, 0); -caret-color: hsla(228, 4%, 24%, 0.8);- -
autocurrentcolor mais peut ajuster la couleur du curseur afin d'améliorer la visibilité et le contraste avec le contenu environnant (l'arrière-plan, les ombres, etc.).
- Note : Bien que l'agent utilisateur puisse utiliser currentcolor pour la valeur auto, cette dernière ne sera pas interpolée lors des animations/transitions (à la différence de la valeur currentcolor).
#exemple {
- caret-color: red;
-}
-
-<input id="exemple" />- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 UI", "#propdef-caret-color", "caret-color")}} | -{{Spec2("CSS3 UI")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.caret-color")}}
- -La propriété CSS caret-color définit la couleur du curseur visible à l'endroit où l'utilisateur peut ajouter du texte ou un autre contenu dans l'élément lorsqu'il saisit au clavier ou qu'il édite les informations.
Note : Les agents utilisateurs peuvent considérer que d'autres objets doivent être impactés par cette propriété : par exemple le curseur de navigation, qui ressemble au curseur de saisie et qui peut être déplacé sur un texte non-éditable. En revanche, bien que l'icône du curseur de la souris puisse ressembler à un curseur de saisie lorsque {{cssxref("cursor")}} vaut auto ou text ou vertical-text, celle-ci n'est pas modifiée par cette propriété. Pour certains navigateurs qui ne prennent pas en charge cette propriété, la couleur du curseur de saisie n'est pas associée à la couleur de la police.
/* Valeur avec un mot-clé */ +caret-color: auto; +caret-color: transparent; +color: currentColor; + +/* Valeurs de couleur */ +/* Type <color> */ +caret-color: red; +caret-color: #5729e9; +caret-color: rgb(0, 200, 0); +caret-color: hsla(228, 4%, 24%, 0.8);+ +
autocurrentcolor mais peut ajuster la couleur du curseur afin d'améliorer la visibilité et le contraste avec le contenu environnant (l'arrière-plan, les ombres, etc.).
+ Note : Bien que l'agent utilisateur puisse utiliser currentcolor pour la valeur auto, cette dernière ne sera pas interpolée lors des animations/transitions (à la différence de la valeur currentcolor).
#exemple {
+ caret-color: red;
+}
+
+<input id="exemple" />+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 UI", "#propdef-caret-color", "caret-color")}} | +{{Spec2("CSS3 UI")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.caret-color")}}
+ +Le combinateur > sépare deux sélecteurs et cible seulement les éléments correspondant au second sélecteur qui sont des enfants directs des éléments ciblés par le premier sélecteur.
/* Les éléments <li> qui sont des enfant d'un */
-/* <ul class="mon-truc"> */
-ul.mon-truc>li {
- margin: 2em;
-}
-
-En comparaison, lorsque deux sélecteurs sont combinés à l'aide du sélecteur descendant, l'expression formée par la combinaison des deux sélecteurs cible les éléments correspondant au second sélecteur qui ont un parent de n'importe quel niveau qui correspond au premier sélecteur, quelque soit le nombre de « sauts » dans le DOM.
- -selecteur1 > selecteur2 { déclarations CSS }
-
-
-span {
- background-color: white;
-}
-
-div > span {
- background-color: blue;
-}
-
-
-<div> - <span>Premier span du div. - <span>Deuxième span, dans un span dans un div.</span> - </span> -</div> -<span>Troisième span, en dehors de tout div.</span> -- -
{{EmbedLiveSample("Exemples", "100%", 100)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Selectors', '#child-combinators', 'child combinator')}} | -{{Spec2('CSS4 Selectors')}} | -- |
| {{SpecName('CSS3 Selectors', '#child-combinators', 'child combinators')}} | -{{Spec2('CSS3 Selectors')}} | -Aucune modification. | -
| {{SpecName('CSS2.1', 'selector.html#child-selectors', 'child selectors')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{Compat("css.selectors.child")}}
- -Le combinateur > sépare deux sélecteurs et cible seulement les éléments correspondant au second sélecteur qui sont des enfants directs des éléments ciblés par le premier sélecteur.
/* Les éléments <li> qui sont des enfant d'un */
+/* <ul class="mon-truc"> */
+ul.mon-truc>li {
+ margin: 2em;
+}
+
+En comparaison, lorsque deux sélecteurs sont combinés à l'aide du sélecteur descendant, l'expression formée par la combinaison des deux sélecteurs cible les éléments correspondant au second sélecteur qui ont un parent de n'importe quel niveau qui correspond au premier sélecteur, quelque soit le nombre de « sauts » dans le DOM.
+ +selecteur1 > selecteur2 { déclarations CSS }
+
+
+span {
+ background-color: white;
+}
+
+div > span {
+ background-color: blue;
+}
+
+
+<div> + <span>Premier span du div. + <span>Deuxième span, dans un span dans un div.</span> + </span> +</div> +<span>Troisième span, en dehors de tout div.</span> ++ +
{{EmbedLiveSample("Exemples", "100%", 100)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Selectors', '#child-combinators', 'child combinator')}} | +{{Spec2('CSS4 Selectors')}} | ++ |
| {{SpecName('CSS3 Selectors', '#child-combinators', 'child combinators')}} | +{{Spec2('CSS3 Selectors')}} | +Aucune modification. | +
| {{SpecName('CSS2.1', 'selector.html#child-selectors', 'child selectors')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{Compat("css.selectors.child")}}
+ +La fonction CSS clamp() permet de ramener (d'écrêter) une valeur entre deux bornes inférieure et supérieure. Cette fonction utilise trois paramètres : une valeur minimale, la valeur à tester et une valeur maximale. La fonction clamp() peut être utilisée à tout endroit où une valeur de type {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<percentage>")}}, {{cssxref("<number>")}} ou {{cssxref("<integer>")}} peut être utilisée.
Note : l'expression clamp(MIN, VAL, MAX) sera résolue comme max(MIN, min(VAL, MAX))).
width: clamp(10px, 4em, 80px); -- -
Dans l'exemple précédent, la largeur fera au plus 80 pixels et au moins 10 pixels mais mesurera 4em de large si un em mesure entre 2.5 et 20px.
- -Prenons comme hypothèse qu'un em mesure 16px de large :
- -width: clamp(10px, 4em, 80px); -/* avec 1em = 16px, on a 4em = 16px * 4 = 64px */ -width: clamp(10px, 64px, 80px); -/* clamp(MIN, VAL, MAX) est résolue comme max(MIN, min(VAL, MAX))) */ -width: max(10px, min(64px, 80px)) -width: max(10px, 64px); -width: 64px; -- -
La fonction clamp() utilise trois expressions séparées par des virgules comme paramètres. Ces paramètres sont, dans l'ordre, la valeur minimale, la valeur préférée et la valeur maximale.
La valeur minimale est la borne inférieure des valeurs autorisées. C'est cette valeur qui sera utilisée si la valeur préférée lui est inférieure.
- -La valeur préférée correspond à la valeur qui sera utilisée si elle est supérieure à la borne inférieure et inférieure à la borne supérieure.
- -La valeur maximale est la borne supérieure des valeurs autorisées. C'est cette valeur qui sera utilisée si la valeur préférée lui est supérieure.
- -Les expressions passées en paramètres peuvent utiliser des fonctions mathématiques (voir {{CSSxRef("calc")}} pour plus d'informationsn), des valeurs littérales ou d'autres expressions ( {{CSSxRef("attr", "attr()")}} par exemple) tant que le résultat de cette expression est évalué avec un type valide. Il est aussi possible d'utiliser des expressions mathématiques sans calc() et il est également possible d'ajouter des parenthèses pour prioriser correctement les opérations imbriquées.
Il est possible d'utiliser différentes unités pour chacune des valeurs des expressions.
- -auto si le tableau suit une disposition automatique ou fixée.max() et min() dans les expressions et d'utiliser les opérateurs mathématiques d'addition, soustraction, multiplication, division sans nécessairement recourir à calc().Un autre cas d'utilisation est de permettre à une taille de police de caractères de varier sans être minuscule et illisible et sans non plus être énorme.
- -h1 {
- font-size: 2rem;
-}
-h1.responsive {
- font-size: clamp(32px, 2em, 2rem);
-}
-
-
-Ici on utilise l'unité rem pour fixer un maximum correspondant à deux fois la taille em de la racine.
<h1>Ce texte est toujours lisible mais sa taille ne change pas.</h1> -<h1 class="responsive">Ce texte est toujours lisible et s'adapte dans une certaine mesure.</h1> -- -
{{EmbedLiveSample("Indiquer_une_taille_de_police_minimale_et_maximale", '700', '300')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#calc-notation', 'clamp()')}} | -{{Spec2('CSS4 Values')}} | -- |
{{Compat("css.types.clamp")}}
- -La fonction CSS clamp() permet de ramener (d'écrêter) une valeur entre deux bornes inférieure et supérieure. Cette fonction utilise trois paramètres : une valeur minimale, la valeur à tester et une valeur maximale. La fonction clamp() peut être utilisée à tout endroit où une valeur de type {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<percentage>")}}, {{cssxref("<number>")}} ou {{cssxref("<integer>")}} peut être utilisée.
Note : l'expression clamp(MIN, VAL, MAX) sera résolue comme max(MIN, min(VAL, MAX))).
width: clamp(10px, 4em, 80px); ++ +
Dans l'exemple précédent, la largeur fera au plus 80 pixels et au moins 10 pixels mais mesurera 4em de large si un em mesure entre 2.5 et 20px.
+ +Prenons comme hypothèse qu'un em mesure 16px de large :
+ +width: clamp(10px, 4em, 80px); +/* avec 1em = 16px, on a 4em = 16px * 4 = 64px */ +width: clamp(10px, 64px, 80px); +/* clamp(MIN, VAL, MAX) est résolue comme max(MIN, min(VAL, MAX))) */ +width: max(10px, min(64px, 80px)) +width: max(10px, 64px); +width: 64px; ++ +
La fonction clamp() utilise trois expressions séparées par des virgules comme paramètres. Ces paramètres sont, dans l'ordre, la valeur minimale, la valeur préférée et la valeur maximale.
La valeur minimale est la borne inférieure des valeurs autorisées. C'est cette valeur qui sera utilisée si la valeur préférée lui est inférieure.
+ +La valeur préférée correspond à la valeur qui sera utilisée si elle est supérieure à la borne inférieure et inférieure à la borne supérieure.
+ +La valeur maximale est la borne supérieure des valeurs autorisées. C'est cette valeur qui sera utilisée si la valeur préférée lui est supérieure.
+ +Les expressions passées en paramètres peuvent utiliser des fonctions mathématiques (voir {{CSSxRef("calc")}} pour plus d'informationsn), des valeurs littérales ou d'autres expressions ( {{CSSxRef("attr", "attr()")}} par exemple) tant que le résultat de cette expression est évalué avec un type valide. Il est aussi possible d'utiliser des expressions mathématiques sans calc() et il est également possible d'ajouter des parenthèses pour prioriser correctement les opérations imbriquées.
Il est possible d'utiliser différentes unités pour chacune des valeurs des expressions.
+ +auto si le tableau suit une disposition automatique ou fixée.max() et min() dans les expressions et d'utiliser les opérateurs mathématiques d'addition, soustraction, multiplication, division sans nécessairement recourir à calc().Un autre cas d'utilisation est de permettre à une taille de police de caractères de varier sans être minuscule et illisible et sans non plus être énorme.
+ +h1 {
+ font-size: 2rem;
+}
+h1.responsive {
+ font-size: clamp(32px, 2em, 2rem);
+}
+
+
+Ici on utilise l'unité rem pour fixer un maximum correspondant à deux fois la taille em de la racine.
<h1>Ce texte est toujours lisible mais sa taille ne change pas.</h1> +<h1 class="responsive">Ce texte est toujours lisible et s'adapte dans une certaine mesure.</h1> ++ +
{{EmbedLiveSample("Indiquer_une_taille_de_police_minimale_et_maximale", '700', '300')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#calc-notation', 'clamp()')}} | +{{Spec2('CSS4 Values')}} | ++ |
{{Compat("css.types.clamp")}}
+ +Les sélecteurs de classe CSS permettent de cibler des éléments d'un document en fonction du contenu de l'attribut class de chaque élément.
/* Cible tous les éléments ayant la classe "spacious" */
-.spacious {
- margin: 2em;
-}
-
-/* Cible tous les éléments <li> ayant la classe "spacious" */
-li.spacious {
- margin: 2em;
-}
-
-/* Cible tous les éléments <li> ayant une classe qui */
-/* contient à la fois "spacious" et "elegant" */
-li.spacious.elegant {
- margin: 2em;
-}
-
-L'attribut {{htmlattrxref("class")}} est une liste de termes séparés par des espaces, il est nécessaire qu'un de ces termes corresponde exactement au nom utilisé dans le sélecteur pour que l'élément soit ciblé.
- -.nomdeclasse { déclarations CSS }
-
-Cela est exactement équivalent à l'utilisation du sélecteur d'attribut de la façon suivante :
- -[class~=nomdeclasse] { déclarations CSS }
-
-.classy {
- background-color: skyblue;
-}
-.toto {
- font-weight: bold;
-}
-
-
-<div class="classy">Voici un div avec du texte.</div> -<div class="toto classy truc">Les éléments peuvent avoir plusieurs classes, le sélecteur fonctionnera tout de même !</div> -<div>En voilà un autre.</div> -- -
{{EmbedLiveSample('Exemples')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Selectors', '#class-html', 'class selectors')}} | -{{Spec2('CSS4 Selectors')}} | -Aucune modification. | -
| {{SpecName('CSS3 Selectors', '#class-html', 'class selectors')}} | -{{Spec2('CSS3 Selectors')}} | -- |
| {{SpecName('CSS2.1', 'selector.html#class-html', 'child selectors')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1', '#class-as-selector', 'child selectors')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{Compat("css.selectors.class")}}
diff --git a/files/fr/web/css/class_selectors/index.md b/files/fr/web/css/class_selectors/index.md new file mode 100644 index 0000000000..1e65081811 --- /dev/null +++ b/files/fr/web/css/class_selectors/index.md @@ -0,0 +1,100 @@ +--- +title: Sélecteurs de classe +slug: Web/CSS/Class_selectors +tags: + - CSS + - Reference + - Sélecteur +translation_of: Web/CSS/Class_selectors +original_slug: Web/CSS/Sélecteurs_de_classe +--- +Les sélecteurs de classe CSS permettent de cibler des éléments d'un document en fonction du contenu de l'attribut class de chaque élément.
/* Cible tous les éléments ayant la classe "spacious" */
+.spacious {
+ margin: 2em;
+}
+
+/* Cible tous les éléments <li> ayant la classe "spacious" */
+li.spacious {
+ margin: 2em;
+}
+
+/* Cible tous les éléments <li> ayant une classe qui */
+/* contient à la fois "spacious" et "elegant" */
+li.spacious.elegant {
+ margin: 2em;
+}
+
+L'attribut {{htmlattrxref("class")}} est une liste de termes séparés par des espaces, il est nécessaire qu'un de ces termes corresponde exactement au nom utilisé dans le sélecteur pour que l'élément soit ciblé.
+ +.nomdeclasse { déclarations CSS }
+
+Cela est exactement équivalent à l'utilisation du sélecteur d'attribut de la façon suivante :
+ +[class~=nomdeclasse] { déclarations CSS }
+
+.classy {
+ background-color: skyblue;
+}
+.toto {
+ font-weight: bold;
+}
+
+
+<div class="classy">Voici un div avec du texte.</div> +<div class="toto classy truc">Les éléments peuvent avoir plusieurs classes, le sélecteur fonctionnera tout de même !</div> +<div>En voilà un autre.</div> ++ +
{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Selectors', '#class-html', 'class selectors')}} | +{{Spec2('CSS4 Selectors')}} | +Aucune modification. | +
| {{SpecName('CSS3 Selectors', '#class-html', 'class selectors')}} | +{{Spec2('CSS3 Selectors')}} | ++ |
| {{SpecName('CSS2.1', 'selector.html#class-html', 'child selectors')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1', '#class-as-selector', 'child selectors')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{Compat("css.selectors.class")}}
diff --git a/files/fr/web/css/clear/index.html b/files/fr/web/css/clear/index.html deleted file mode 100644 index 541ff870fa..0000000000 --- a/files/fr/web/css/clear/index.html +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: clear -slug: Web/CSS/clear -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/clear ---- -La propriété clear indique si un élément peut être situé à côté d'éléments flottants qui le précèdent ou s'il doit être déplacé vers le bas pour être en dessous de ces éléments. La propriété clear s'applique aux éléments flottants comme aux éléments non-flottants.
Lorsqu'elle est appliquée aux blocs non-flottants, elle déplace le bord de la bordure de l'élément sous le bord de la marge de tous les éléments flottants concernés. Il y aura fusion des marges (margin collapsing) verticales entre l'élément flottant et le bloc non-flottant mais pas entre les élément flottants.
- -Lorsqu'elle est appliquée aux éléments flottants, elle déplace le bord de la marge de l'élément sous le bord de la marge de tous les éléments flottants concernés. Cela impacte la position des éléments flottants suivants car ceux-ci ne peuvent pas être situés plus haut que les éléments flottants qui les précèdent.
- -Les éléments flottants qui sont dégagés sont les éléments flottants précédant l'élément ciblé, au sein de du même contexte de formatage.
- -Note : Si un élément ne contient que des éléments flottants, sa hauteur sera nulle. Si on souhaite redimensionner l'élément afin qu'il contienne tous les éléments flottants à l'intérieur, on peut faire flotter ce conteneur ou utiliser clear sur un pseudo-élément remplacé {{cssxref("::after")}}.
#conteneur::after {
- content: "";
- display: block;
- clear: both;
-}
-
-/* Valeurs avec mot-clé */ -clear: none; -clear: left; -clear: right; -clear: both; -clear: inline-start; -clear: inline-end; - -/* Valeurs globales */ -clear: inherit; -clear: initial; -clear: unset; -- -
noneleftrightbothinline-startinline-endclear: left<div class="wrapper"> - <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p> - <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p> - <p class="left">Ce paragraphe est dégagé à gauche.</p> -</div> -- -
.wrapper{
- border:1px solid black;
- padding:10px;
-}
-.left {
- border: 1px solid black;
- clear: left;
-}
-.black {
- float: left;
- margin: 0;
- background-color: black;
- color: #fff;
- width: 20%;
-}
-.red {
- float: left;
- margin: 0;
- background-color: red;
- width:20%;
-}
-p {
- width: 50%;
-}
-
-
-{{EmbedLiveSample('clear_left','100%','250')}}
- -clear: right<div class="wrapper"> - <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p> - <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p> - <p class="right">Ce paragraphe est dégagé à droite.</p> -</div> -- -
.wrapper{
- border:1px solid black;
- padding:10px;
-}
-.right {
- border: 1px solid black;
- clear: right;
-}
-.black {
- float: right;
- margin: 0;
- background-color: black;
- color: #fff;
- width:20%;
-}
-.red {
- float: right;
- margin: 0;
- background-color: red;
- width:20%;
-}
-p {
- width: 50%;
-}
-
-{{EmbedLiveSample('clear_right','100%','250')}}
- -clear: both<div class="wrapper"> - <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor. Fusce pulvinar lacus ac dui.</p> - <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p> - <p class="both">Ce paragraphe est dégagé de chaque côté.</p> -</div> -- -
.wrapper{
- border:1px solid black;
- padding:10px;
-}
-.both {
- border: 1px solid black;
- clear: both;
-}
-.black {
- float: left;
- margin: 0;
- background-color: black;
- color: #fff;
- width:20%;
-}
-.red {
- float: right;
- margin: 0;
- background-color: red;
- width:20%;
-}
-p {
- width: 45%;
-}
-
-{{EmbedLiveSample('clear_both','100%','300')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties', '#float-clear', 'float and clear')}} | -{{Spec2('CSS Logical Properties')}} | -Ajout des valeurs inline-start et inline-end |
-
| {{SpecName('CSS2.1', 'visuren.html#flow-control', 'clear')}} | -{{Spec2('CSS2.1')}} | -Pas de modification significative, clarification de certains détails. | -
| {{SpecName('CSS1', '#clear', 'clear')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.clear")}}
- -La propriété clear indique si un élément peut être situé à côté d'éléments flottants qui le précèdent ou s'il doit être déplacé vers le bas pour être en dessous de ces éléments. La propriété clear s'applique aux éléments flottants comme aux éléments non-flottants.
Lorsqu'elle est appliquée aux blocs non-flottants, elle déplace le bord de la bordure de l'élément sous le bord de la marge de tous les éléments flottants concernés. Il y aura fusion des marges (margin collapsing) verticales entre l'élément flottant et le bloc non-flottant mais pas entre les élément flottants.
+ +Lorsqu'elle est appliquée aux éléments flottants, elle déplace le bord de la marge de l'élément sous le bord de la marge de tous les éléments flottants concernés. Cela impacte la position des éléments flottants suivants car ceux-ci ne peuvent pas être situés plus haut que les éléments flottants qui les précèdent.
+ +Les éléments flottants qui sont dégagés sont les éléments flottants précédant l'élément ciblé, au sein de du même contexte de formatage.
+ +Note : Si un élément ne contient que des éléments flottants, sa hauteur sera nulle. Si on souhaite redimensionner l'élément afin qu'il contienne tous les éléments flottants à l'intérieur, on peut faire flotter ce conteneur ou utiliser clear sur un pseudo-élément remplacé {{cssxref("::after")}}.
#conteneur::after {
+ content: "";
+ display: block;
+ clear: both;
+}
+
+/* Valeurs avec mot-clé */ +clear: none; +clear: left; +clear: right; +clear: both; +clear: inline-start; +clear: inline-end; + +/* Valeurs globales */ +clear: inherit; +clear: initial; +clear: unset; ++ +
noneleftrightbothinline-startinline-endclear: left<div class="wrapper"> + <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p> + <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p> + <p class="left">Ce paragraphe est dégagé à gauche.</p> +</div> ++ +
.wrapper{
+ border:1px solid black;
+ padding:10px;
+}
+.left {
+ border: 1px solid black;
+ clear: left;
+}
+.black {
+ float: left;
+ margin: 0;
+ background-color: black;
+ color: #fff;
+ width: 20%;
+}
+.red {
+ float: left;
+ margin: 0;
+ background-color: red;
+ width:20%;
+}
+p {
+ width: 50%;
+}
+
+
+{{EmbedLiveSample('clear_left','100%','250')}}
+ +clear: right<div class="wrapper"> + <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p> + <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p> + <p class="right">Ce paragraphe est dégagé à droite.</p> +</div> ++ +
.wrapper{
+ border:1px solid black;
+ padding:10px;
+}
+.right {
+ border: 1px solid black;
+ clear: right;
+}
+.black {
+ float: right;
+ margin: 0;
+ background-color: black;
+ color: #fff;
+ width:20%;
+}
+.red {
+ float: right;
+ margin: 0;
+ background-color: red;
+ width:20%;
+}
+p {
+ width: 50%;
+}
+
+{{EmbedLiveSample('clear_right','100%','250')}}
+ +clear: both<div class="wrapper"> + <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor. Fusce pulvinar lacus ac dui.</p> + <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p> + <p class="both">Ce paragraphe est dégagé de chaque côté.</p> +</div> ++ +
.wrapper{
+ border:1px solid black;
+ padding:10px;
+}
+.both {
+ border: 1px solid black;
+ clear: both;
+}
+.black {
+ float: left;
+ margin: 0;
+ background-color: black;
+ color: #fff;
+ width:20%;
+}
+.red {
+ float: right;
+ margin: 0;
+ background-color: red;
+ width:20%;
+}
+p {
+ width: 45%;
+}
+
+{{EmbedLiveSample('clear_both','100%','300')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties', '#float-clear', 'float and clear')}} | +{{Spec2('CSS Logical Properties')}} | +Ajout des valeurs inline-start et inline-end |
+
| {{SpecName('CSS2.1', 'visuren.html#flow-control', 'clear')}} | +{{Spec2('CSS2.1')}} | +Pas de modification significative, clarification de certains détails. | +
| {{SpecName('CSS1', '#clear', 'clear')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.clear")}}
+ +La propriété clip-path empêche une portion d'un élément d'être affichée en définissant une région de rognage. Seule une zone spécifique de l'élément sera affichée. La zone de rognage est un chemin défini avec une URL faisant référence à un SVG externe ou en ligne ou grâce à une fonction de forme comme circle().
Note : La propriété clip-path remplace la propriété {{cssxref("clip")}} désormais dépréciée.
/* Valeurs avec un mot-clé */
-clip-path: none;
-
-/* Valeurs pointant vers une image */
-/* Type <clip-source> */
-clip-path: url(resources.svg#c1);
-
-/* Valeurs de boîte */
-clip-path: fill-box;
-clip-path: stroke-box;
-clip-path: view-box;
-clip-path: margin-box;
-clip-path: border-box;
-clip-path: padding-box;
-clip-path: content-box;
-
-/* Valeurs géométriques */
-/* avec une notation fonctionnelle */
-clip-path: inset(100px 50px);
-clip-path: circle(50px at 0 100px);
-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
-clip-path: path('M0.5,1 C0.5,1,0,0.7,0,0.3 A0.25,0.25,1,1,1,0.5,0.3 A0.25,0.25,1,1,1,1,0.3 C1,0.7,0.5,1,0.5,1 Z');
-
-/* Combinaison boîte & géométrie */
-clip-path: padding-box circle(50px at 0 100px);
-
-/* Valeurs globales */
-clip-path: inherit;
-clip-path: initial;
-clip-path: unset;
-
-
-La propriété clip-path est définie avec une ou plusieurs des valeurs listées ci-après.
url()inset(), circle(), ellipse(), polygon()<geometry-box> pour déterminer la taille et la position de la forme. Si aucune boîte de géométrie n'est indiquée, c'est la boîte de bordure (border-box) qui sera utilisée comme boîte de réference.<geometry-box><basic-shape>, elle définira la boîte de référence dans laquelle placer la forme. Si elle est utilisée seule, ce sont les bords de la boîte (ainsi que les éventuels coins arrondis définis avec {{cssxref("border-radius")}}) qui sont utilisés comme ligne de rognage. Cette composante peut prendre les valeurs suivante :
- fill-boxstroke-boxview-boxviewBox et les dimensions de la boîte de référence sont les valeurs de hauteur et de largeur de l'attribut viewBox.margin-boxborder-boxpadding-boxcontent-boxnoneNote : Si la valeur calculée est différente de none, cela entraînera la création d'un nouveau contexte d'empilement (de la même façon qu'{{cssxref("opacity")}} avec des valeurs différentes de 1).
html,body {
- height: 100%;
- box-sizing: border-box;
- background: #EEE;
-}
-
-.grid {
- width: 100%;
- height: 100%;
- display: flex;
- font: 1em monospace;
-}
-
-.row {
- display: flex;
- flex: 1 auto;
- flex-direction: row;
- flex-wrap: wrap;
-}
-
-.col {
- flex: 1 auto;
-}
-
-.cell {
- margin: .5em;
- padding: .5em;
- background-color: #FFF;
- overflow: hidden;
- text-align: center;
- flex: 1;
-}
-
-.note {
- background: #fff3d4;
- padding: 1em;
- margin: .5em .5em 0;
- font: .8em sans-serif;
- text-align: left;
- white-space: nowrap;
-}
-
-.note + .row .cell {
- margin-top: 0;
-}
-
-.container {
- display: inline-block;
- border: 1px dotted grey;
- position:relative;
-}
-
-.container:before {
- content: 'margin';
- position: absolute;
- top: 2px;
- left: 2px;
- font: italic .6em sans-serif;
-}
-
-.viewbox {
- box-shadow: 1rem 1rem 0 #EFEFEF inset, -1rem -1rem 0 #EFEFEF inset;
-}
-
-.container.viewbox:after {
- content: 'viewbox';
- position: absolute;
- left: 1.1rem;
- top: 1.1rem;
- font: italic .6em sans-serif;
-}
-
-.cell span {
- display: block;
- margin-bottom: .5em;
-}
-
-p {
- font-family: sans-serif;
- background: #000;
- color: pink;
- margin: 2em;
- padding: 3em 1em;
- border: 1em solid pink;
- width: 6em;
-}
-
-.none { clip-path: none; }
-.svg { clip-path: url(#myPath); }
-.svg2 { clip-path: path('M15,45 A30,30,0,0,1,75,45 A30,30,0,0,1,135,45 Q135,90,75,130 Q15,90,15,45 Z');}
-.shape1 { clip-path: circle(25%); }
-.shape2 { clip-path: circle(25% at 25% 25%); }
-.shape3 { clip-path: fill-box circle(25% at 25% 25%); }
-.shape4 { clip-path: stroke-box circle(25% at 25% 25%); }
-.shape5 { clip-path: view-box circle(25% at 25% 25%); }
-.shape6 { clip-path: margin-box circle(25% at 25% 25%); }
-.shape7 { clip-path: border-box circle(25% at 25% 25%); }
-.shape8 { clip-path: padding-box circle(25% at 25% 25%); }
-.shape9 { clip-path: content-box circle(25% at 25% 25%); }
-
-.defs {
- width: 0;
- height: 0;
- margin: 0;
-}
-
-pre { margin-bottom: 0; }
-
-svg {
- margin: 1em;
- font-family: sans-serif;
- width: 192px;
- height: 192px;
-}
-
-svg rect {
- stroke: pink;
- stroke-width: 16px;
-}
-
-svg text {
- fill: pink;
- text-anchor: middle;
-}
-
-svg text.em {
- font-style: italic;
-}
-
-{{EmbedLiveSample("Comparaison_entre_HTML_et_SVG", "100%", 800, "", "", "example-outcome-frame")}}
- -<img id="clipped" src="https://mdn.mozillademos.org/files/12668/MDN.svg"
- alt="MDN logo">
-<svg height="0" width="0">
- <defs>
- <clipPath id="cross">
- <rect y="110" x="137" width="90" height="90"/>
- <rect x="0" y="110" width="90" height="90"/>
- <rect x="137" y="0" width="90" height="90"/>
- <rect x="0" y="0" width="90" height="90"/>
- </clipPath>
- </defs>
-</svg>
-
-<select id="clipPath">
- <option value="none">none</option>
- <option value="circle(100px at 110px 100px)">circle</option>
- <option value="url(#cross)" selected>cross</option>
- <option value="inset(20px round 20px)">inset</option>
- <option value="path('M 0 200 L 0,110 A 110,90 0,0,1 240,100 L 200 340 z')">path</option>
-</select>
-
-
-#clipped {
- margin-bottom: 20px;
- clip-path: url(#cross);
-}
-
-
-
-
-{{EmbedLiveSample("Exemple_complet", 230, 250)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-clip-path", 'clip-path')}} | -{{Spec2('CSS Masks')}} | -Extension aux élément HTML. clip-path remplace la propriété {{cssxref("clip")}} désormais dépréciée. |
-
| {{SpecName('SVG1.1', 'masking.html#ClipPathProperty', 'clip-path')}} | -{{Spec2('SVG1.1')}} | -Définition initiale (s'applique uniquement aux éléments SVG) | -
{{cssinfo}}
- -{{Compat("css.properties.clip-path")}}
- -La propriété clip-path empêche une portion d'un élément d'être affichée en définissant une région de rognage. Seule une zone spécifique de l'élément sera affichée. La zone de rognage est un chemin défini avec une URL faisant référence à un SVG externe ou en ligne ou grâce à une fonction de forme comme circle().
Note : La propriété clip-path remplace la propriété {{cssxref("clip")}} désormais dépréciée.
/* Valeurs avec un mot-clé */
+clip-path: none;
+
+/* Valeurs pointant vers une image */
+/* Type <clip-source> */
+clip-path: url(resources.svg#c1);
+
+/* Valeurs de boîte */
+clip-path: fill-box;
+clip-path: stroke-box;
+clip-path: view-box;
+clip-path: margin-box;
+clip-path: border-box;
+clip-path: padding-box;
+clip-path: content-box;
+
+/* Valeurs géométriques */
+/* avec une notation fonctionnelle */
+clip-path: inset(100px 50px);
+clip-path: circle(50px at 0 100px);
+clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
+clip-path: path('M0.5,1 C0.5,1,0,0.7,0,0.3 A0.25,0.25,1,1,1,0.5,0.3 A0.25,0.25,1,1,1,1,0.3 C1,0.7,0.5,1,0.5,1 Z');
+
+/* Combinaison boîte & géométrie */
+clip-path: padding-box circle(50px at 0 100px);
+
+/* Valeurs globales */
+clip-path: inherit;
+clip-path: initial;
+clip-path: unset;
+
+
+La propriété clip-path est définie avec une ou plusieurs des valeurs listées ci-après.
url()inset(), circle(), ellipse(), polygon()<geometry-box> pour déterminer la taille et la position de la forme. Si aucune boîte de géométrie n'est indiquée, c'est la boîte de bordure (border-box) qui sera utilisée comme boîte de réference.<geometry-box><basic-shape>, elle définira la boîte de référence dans laquelle placer la forme. Si elle est utilisée seule, ce sont les bords de la boîte (ainsi que les éventuels coins arrondis définis avec {{cssxref("border-radius")}}) qui sont utilisés comme ligne de rognage. Cette composante peut prendre les valeurs suivante :
+ fill-boxstroke-boxview-boxviewBox et les dimensions de la boîte de référence sont les valeurs de hauteur et de largeur de l'attribut viewBox.margin-boxborder-boxpadding-boxcontent-boxnoneNote : Si la valeur calculée est différente de none, cela entraînera la création d'un nouveau contexte d'empilement (de la même façon qu'{{cssxref("opacity")}} avec des valeurs différentes de 1).
html,body {
+ height: 100%;
+ box-sizing: border-box;
+ background: #EEE;
+}
+
+.grid {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ font: 1em monospace;
+}
+
+.row {
+ display: flex;
+ flex: 1 auto;
+ flex-direction: row;
+ flex-wrap: wrap;
+}
+
+.col {
+ flex: 1 auto;
+}
+
+.cell {
+ margin: .5em;
+ padding: .5em;
+ background-color: #FFF;
+ overflow: hidden;
+ text-align: center;
+ flex: 1;
+}
+
+.note {
+ background: #fff3d4;
+ padding: 1em;
+ margin: .5em .5em 0;
+ font: .8em sans-serif;
+ text-align: left;
+ white-space: nowrap;
+}
+
+.note + .row .cell {
+ margin-top: 0;
+}
+
+.container {
+ display: inline-block;
+ border: 1px dotted grey;
+ position:relative;
+}
+
+.container:before {
+ content: 'margin';
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ font: italic .6em sans-serif;
+}
+
+.viewbox {
+ box-shadow: 1rem 1rem 0 #EFEFEF inset, -1rem -1rem 0 #EFEFEF inset;
+}
+
+.container.viewbox:after {
+ content: 'viewbox';
+ position: absolute;
+ left: 1.1rem;
+ top: 1.1rem;
+ font: italic .6em sans-serif;
+}
+
+.cell span {
+ display: block;
+ margin-bottom: .5em;
+}
+
+p {
+ font-family: sans-serif;
+ background: #000;
+ color: pink;
+ margin: 2em;
+ padding: 3em 1em;
+ border: 1em solid pink;
+ width: 6em;
+}
+
+.none { clip-path: none; }
+.svg { clip-path: url(#myPath); }
+.svg2 { clip-path: path('M15,45 A30,30,0,0,1,75,45 A30,30,0,0,1,135,45 Q135,90,75,130 Q15,90,15,45 Z');}
+.shape1 { clip-path: circle(25%); }
+.shape2 { clip-path: circle(25% at 25% 25%); }
+.shape3 { clip-path: fill-box circle(25% at 25% 25%); }
+.shape4 { clip-path: stroke-box circle(25% at 25% 25%); }
+.shape5 { clip-path: view-box circle(25% at 25% 25%); }
+.shape6 { clip-path: margin-box circle(25% at 25% 25%); }
+.shape7 { clip-path: border-box circle(25% at 25% 25%); }
+.shape8 { clip-path: padding-box circle(25% at 25% 25%); }
+.shape9 { clip-path: content-box circle(25% at 25% 25%); }
+
+.defs {
+ width: 0;
+ height: 0;
+ margin: 0;
+}
+
+pre { margin-bottom: 0; }
+
+svg {
+ margin: 1em;
+ font-family: sans-serif;
+ width: 192px;
+ height: 192px;
+}
+
+svg rect {
+ stroke: pink;
+ stroke-width: 16px;
+}
+
+svg text {
+ fill: pink;
+ text-anchor: middle;
+}
+
+svg text.em {
+ font-style: italic;
+}
+
+{{EmbedLiveSample("Comparaison_entre_HTML_et_SVG", "100%", 800, "", "", "example-outcome-frame")}}
+ +<img id="clipped" src="https://mdn.mozillademos.org/files/12668/MDN.svg"
+ alt="MDN logo">
+<svg height="0" width="0">
+ <defs>
+ <clipPath id="cross">
+ <rect y="110" x="137" width="90" height="90"/>
+ <rect x="0" y="110" width="90" height="90"/>
+ <rect x="137" y="0" width="90" height="90"/>
+ <rect x="0" y="0" width="90" height="90"/>
+ </clipPath>
+ </defs>
+</svg>
+
+<select id="clipPath">
+ <option value="none">none</option>
+ <option value="circle(100px at 110px 100px)">circle</option>
+ <option value="url(#cross)" selected>cross</option>
+ <option value="inset(20px round 20px)">inset</option>
+ <option value="path('M 0 200 L 0,110 A 110,90 0,0,1 240,100 L 200 340 z')">path</option>
+</select>
+
+
+#clipped {
+ margin-bottom: 20px;
+ clip-path: url(#cross);
+}
+
+
+
+
+{{EmbedLiveSample("Exemple_complet", 230, 250)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-clip-path", 'clip-path')}} | +{{Spec2('CSS Masks')}} | +Extension aux élément HTML. clip-path remplace la propriété {{cssxref("clip")}} désormais dépréciée. |
+
| {{SpecName('SVG1.1', 'masking.html#ClipPathProperty', 'clip-path')}} | +{{Spec2('SVG1.1')}} | +Définition initiale (s'applique uniquement aux éléments SVG) | +
{{cssinfo}}
+ +{{Compat("css.properties.clip-path")}}
+ +La propriété clip permet de définir la zone d'un élément qui est visible. La propriété clip s'applique uniquement aux éléments positionnés de façon absolue (autrement dit, ceux avec {{cssxref("position","position:absolute")}} ou {{cssxref("position","position:fixed")}}).
/* Valeur avec un mot-clé */ -clip: auto; - -/* Valeurs de forme */ -/* Type <shape> */ -clip: rect(1px 10em 3rem 2ch); -clip: rect(1px, 10em, 3rem, 2ch); - -/* Valeurs globales */ -clip: inherit; -clip: initial; -clip: unset; -- -
Attention : Cette propriété est dépréciée et ne doit plus être utilisée. La propriété {{cssxref("clip-path")}} peut être utilisée à la place.
-{{cssinfo}}
- -<shape>rect(<haut>, <droite>, <bas>, <gauche>) ou avec rect(<haut> <droite> <bas> <gauche>). <haut> et <bas> indiquent les décalages à partir du haut de la boîte de bordure, <gauche> et <droite> indiquent les décalages à partir du bord gauche de la boîte de bordure.<haut>, <droite>, <bas> et <gauche> peuvent avoir une valeur de longueur (type {{cssxref("<length>")}}) ou auto. Si un des côtés vaut auto, l'élément est rogné sur ce côté avec le bord intérieur de la boîte de bordure.autorect(auto, auto, auto, auto)..dotted-border {
- border: dotted;
- position: relative;
- width: 536px;
- height: 350px;
-}
-
-#top-left, #middle, #bottom-right {
- position: absolute;
- top: 0px;
-}
-
-#top-left {
- left: 360px;
- clip: rect(0px, 175px, 113px, 0px);
-}
-
-
-#middle {
- left: 280px;
- clip: rect(119px, 255px, 229px, 80px);
- /* standard syntax, unsupported by Internet Explorer 4-7 */
-}
-
-#bottom-right {
- left: 200px;
- clip: rect(235px 335px 345px 160px);
- /* non-standard syntax, but supported by all major browsers*/
-}
-
-<p class="dotted-border"> - <img src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Original graphic"> - <img id="top-left" src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Graphic clipped to upper left"> - <img id="middle" src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Graphic clipped towards middle"> - <img id="bottom-right" src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Graphic clipped to bottom right"> -</p>- -
{{EmbedLiveSample('Exemples', '689px', '410px')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Masks', '#clip-property', 'clip')}} | -{{Spec2('CSS Masks')}} | -Dépréciation de la propriété clip et proposition de {{cssxref("clip-path")}} comme remplacement. |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'clip')}} | -{{Spec2('CSS3 Transitions')}} | -clip peut être animée. |
-
| {{SpecName('CSS2.1', 'visufx.html#clipping', 'clip')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{Compat("css.properties.clip")}}
- -La propriété clip permet de définir la zone d'un élément qui est visible. La propriété clip s'applique uniquement aux éléments positionnés de façon absolue (autrement dit, ceux avec {{cssxref("position","position:absolute")}} ou {{cssxref("position","position:fixed")}}).
/* Valeur avec un mot-clé */ +clip: auto; + +/* Valeurs de forme */ +/* Type <shape> */ +clip: rect(1px 10em 3rem 2ch); +clip: rect(1px, 10em, 3rem, 2ch); + +/* Valeurs globales */ +clip: inherit; +clip: initial; +clip: unset; ++ +
Attention : Cette propriété est dépréciée et ne doit plus être utilisée. La propriété {{cssxref("clip-path")}} peut être utilisée à la place.
+{{cssinfo}}
+ +<shape>rect(<haut>, <droite>, <bas>, <gauche>) ou avec rect(<haut> <droite> <bas> <gauche>). <haut> et <bas> indiquent les décalages à partir du haut de la boîte de bordure, <gauche> et <droite> indiquent les décalages à partir du bord gauche de la boîte de bordure.<haut>, <droite>, <bas> et <gauche> peuvent avoir une valeur de longueur (type {{cssxref("<length>")}}) ou auto. Si un des côtés vaut auto, l'élément est rogné sur ce côté avec le bord intérieur de la boîte de bordure.autorect(auto, auto, auto, auto)..dotted-border {
+ border: dotted;
+ position: relative;
+ width: 536px;
+ height: 350px;
+}
+
+#top-left, #middle, #bottom-right {
+ position: absolute;
+ top: 0px;
+}
+
+#top-left {
+ left: 360px;
+ clip: rect(0px, 175px, 113px, 0px);
+}
+
+
+#middle {
+ left: 280px;
+ clip: rect(119px, 255px, 229px, 80px);
+ /* standard syntax, unsupported by Internet Explorer 4-7 */
+}
+
+#bottom-right {
+ left: 200px;
+ clip: rect(235px 335px 345px 160px);
+ /* non-standard syntax, but supported by all major browsers*/
+}
+
+<p class="dotted-border"> + <img src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Original graphic"> + <img id="top-left" src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Graphic clipped to upper left"> + <img id="middle" src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Graphic clipped towards middle"> + <img id="bottom-right" src="https://developer.mozilla.org/@api/deki/files/3613/=hut.jpg" title="Graphic clipped to bottom right"> +</p>+ +
{{EmbedLiveSample('Exemples', '689px', '410px')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Masks', '#clip-property', 'clip')}} | +{{Spec2('CSS Masks')}} | +Dépréciation de la propriété clip et proposition de {{cssxref("clip-path")}} comme remplacement. |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'clip')}} | +{{Spec2('CSS3 Transitions')}} | +clip peut être animée. |
+
| {{SpecName('CSS2.1', 'visufx.html#clipping', 'clip')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{Compat("css.properties.clip")}}
+ +La propriété CSS color-adjust contrôle la façon dont l'agent utilisateur peut optimiser l'apparence de l'élément sur l'appareil. Par défaut, le navigateur est autorisé à appliquer tous les ajustements qu'il estime nécessaires afin d'ajuster l'élément au mieux pour l'appareil utilisé.
Dans l'exemple précédent, le texte utilise la couleur ({{cssxref("color")}}), #411 qui est très sombre et qui peut donc être difficile à lire avec l'arrière-plan noir (black pour la propriété {{cssxref("background-color")}}). Selon le navigateur, sa configuration et l'appareil utilisé, le navigateur peut choisir de retirer l'arrière-plan noir ou de modifier la couleur du texte afin d'améliorer le contraste et la lisibilité.
color-adjust: economy; -color-adjust: exact;- -
La valeur de la propriété color-adjust peut être un de ces deux mots-clés.
economyexactPlusieurs raisons peuvent entraîner un agent utilisateur à modifier l'apparence finale par rapport à l'apparence indiquée via CSS :
- -Si l'agent utilisateur propose des options à l'utilisateur quant à l'affichage des couleurs et des images, celles-ci seront prioritaires sur color-adjust. Autrement dit, il n'est pas absolument certain que color-adjust ait un quelconque effet. Tout d'abord parce que l'utilisateur peut choisir d'outrepasser ces règles mais aussi parce qu'il revient à l'agent utilisateur de choisir comment gérer color-adjust dans chaque situation.
Dans cet exemple, une boîte utilise une image d'arrière-plan ({{cssxref("background-image")}}) ainsi qu'un dégradé linéaire ({{cssxref("linear-gradient()")}}) sur un arrière-plan noir afin d'avoir un dégradé bleu foncé derrière un texte rouge. Pour une raison quelconque, c'est l'apparence souhaitée quel que soit l'environnement (y compris du papier) et c'est donc color-adjust: exact qui est utilisé afin d'interdire au navigateur d'ajuster quoi que ce soit.
.ma-boite {
- background-color: black;
- background-image: linear-gradient(rgba(0, 0, 180, 0.5), rgba(70, 140, 220, 0.5));
- color: #900;
- width: 15rem;
- height: 6rem;
- text-align: center;
- font: 24px "Helvetica", sans-serif;
- display: flex;
- align-items: center;
- justify-content: center;
- color-adjust: exact;
-}
-
-
-<div class="ma-boite"> - <p>Il nous faut plus de contraste !</p> -</div>- -
{{EmbedLiveSample("Exemples", 640, 120)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Color Adjust', '#propdef-color-adjust', 'color-adjust')}} | -{{Spec2('CSS Color Adjust')}} | -Définition initiale. | -
{{Compat("css.properties.color-adjust")}}
- -La propriété CSS color-adjust contrôle la façon dont l'agent utilisateur peut optimiser l'apparence de l'élément sur l'appareil. Par défaut, le navigateur est autorisé à appliquer tous les ajustements qu'il estime nécessaires afin d'ajuster l'élément au mieux pour l'appareil utilisé.
Dans l'exemple précédent, le texte utilise la couleur ({{cssxref("color")}}), #411 qui est très sombre et qui peut donc être difficile à lire avec l'arrière-plan noir (black pour la propriété {{cssxref("background-color")}}). Selon le navigateur, sa configuration et l'appareil utilisé, le navigateur peut choisir de retirer l'arrière-plan noir ou de modifier la couleur du texte afin d'améliorer le contraste et la lisibilité.
color-adjust: economy; +color-adjust: exact;+ +
La valeur de la propriété color-adjust peut être un de ces deux mots-clés.
economyexactPlusieurs raisons peuvent entraîner un agent utilisateur à modifier l'apparence finale par rapport à l'apparence indiquée via CSS :
+ +Si l'agent utilisateur propose des options à l'utilisateur quant à l'affichage des couleurs et des images, celles-ci seront prioritaires sur color-adjust. Autrement dit, il n'est pas absolument certain que color-adjust ait un quelconque effet. Tout d'abord parce que l'utilisateur peut choisir d'outrepasser ces règles mais aussi parce qu'il revient à l'agent utilisateur de choisir comment gérer color-adjust dans chaque situation.
Dans cet exemple, une boîte utilise une image d'arrière-plan ({{cssxref("background-image")}}) ainsi qu'un dégradé linéaire ({{cssxref("linear-gradient()")}}) sur un arrière-plan noir afin d'avoir un dégradé bleu foncé derrière un texte rouge. Pour une raison quelconque, c'est l'apparence souhaitée quel que soit l'environnement (y compris du papier) et c'est donc color-adjust: exact qui est utilisé afin d'interdire au navigateur d'ajuster quoi que ce soit.
.ma-boite {
+ background-color: black;
+ background-image: linear-gradient(rgba(0, 0, 180, 0.5), rgba(70, 140, 220, 0.5));
+ color: #900;
+ width: 15rem;
+ height: 6rem;
+ text-align: center;
+ font: 24px "Helvetica", sans-serif;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color-adjust: exact;
+}
+
+
+<div class="ma-boite"> + <p>Il nous faut plus de contraste !</p> +</div>+ +
{{EmbedLiveSample("Exemples", 640, 120)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Color Adjust', '#propdef-color-adjust', 'color-adjust')}} | +{{Spec2('CSS Color Adjust')}} | +Définition initiale. | +
{{Compat("css.properties.color-adjust")}}
+ +La propriété CSS color-scheme permet d'indiquer les jeux de couleurs dans lesquels un élément peut être rendu sans risque.
Les jeux de couleurs communément utilisés par les systèmes d'exploitation sont light (clair) et dark (sombre), ou day mode (mode jour) et night mode (mode nuit). Lorsqu'un utilisateur sélectionne un de ces jeux de couleurs, le système d'exploitation fait des ajustements à l'interface utilisateur. Cela comprend les contrôles de formulaires, les barres de défilement et les valeurs utilisées par le système de couleurs CSS.
- -color-scheme: normal; -color-scheme: light; -color-scheme: dark; -color-scheme: light dark; - -/* Valeurs globales */ -color-scheme: inherit; -color-scheme: initial; -color-scheme: revert; -color-scheme: unset;- -
La valeur de la propriété color-scheme doit être un des mots-clés suivants.
normallightdark{{cssinfo}}
- -{{csssyntax}}
- -Pour activer la préférence de jeu de couleurs de l'utilisateur sur l'ensemble de la page, color-scheme peut être déclaré sur l'élément {{cssxref(":root")}}.
:root {
- color-scheme: light dark;
-}
-
-
-{{Specifications}}
- -{{Compat}}
- -La propriété CSS color-scheme permet d'indiquer les jeux de couleurs dans lesquels un élément peut être rendu sans risque.
Les jeux de couleurs communément utilisés par les systèmes d'exploitation sont light (clair) et dark (sombre), ou day mode (mode jour) et night mode (mode nuit). Lorsqu'un utilisateur sélectionne un de ces jeux de couleurs, le système d'exploitation fait des ajustements à l'interface utilisateur. Cela comprend les contrôles de formulaires, les barres de défilement et les valeurs utilisées par le système de couleurs CSS.
+ +color-scheme: normal; +color-scheme: light; +color-scheme: dark; +color-scheme: light dark; + +/* Valeurs globales */ +color-scheme: inherit; +color-scheme: initial; +color-scheme: revert; +color-scheme: unset;+ +
La valeur de la propriété color-scheme doit être un des mots-clés suivants.
normallightdark{{cssinfo}}
+ +{{csssyntax}}
+ +Pour activer la préférence de jeu de couleurs de l'utilisateur sur l'ensemble de la page, color-scheme peut être déclaré sur l'élément {{cssxref(":root")}}.
:root {
+ color-scheme: light dark;
+}
+
+
+{{Specifications}}
+ +{{Compat}}
+ +La propriété color définit la couleur de premier plan d'un élément texte et de ses éventuelles décorations. Elle définit également la valeur de {{cssxref("currentColor")}} qui peut être utilisée pour d'autres propriétés (par exemple comme valeur par défaut pour {{cssxref("border-color")}}).
La valeur de cette propriété doit être une couleur uniforme. Celle-ci peut contenir des informations de transparences à partir de CSS3 mais ce ne doit pas être un dégradé ({{cssxref("<gradient>")}}) car en CSS un dégradé est considéré comme une image (type {{cssxref("<image>")}}) et pas comme une couleur.
- -/* Valeurs avec un mot-clé */ -color: currentcolor; - -/* Valeurs avec un mot-clé pour une couleur nommée */ -color: red; -color: orange; -color: tan; -color: rebeccapurple; - -/* Valeurs hexadécimales <hex-color> */ -color: #090; -color: #009900; -color: #090a; -color: #009900aa; - -/* Valeurs utilisant la fonction <rgb()> */ -color: rgb(34, 12, 64, 0.6); -color: rgba(34, 12, 64, 0.6); -color: rgb(34 12 64 / 0.6); -color: rgba(34 12 64 / 0.3); -color: rgb(34.0 12 64 / 60%); -color: rgba(34.6 12 64 / 30%); - -/* Valeurs <hsl()> */ -color: hsl(30, 100%, 50%, 0.6); -color: hsla(30, 100%, 50%, 0.6); -color: hsl(30 100% 50% / 0.6); -color: hsla(30 100% 50% / 0.6); -color: hsl(30.0 100% 50% / 60%); -color: hsla(30.2 100% 50% / 60%); - - -/* Valeurs globales */ -color: inherit; -color: initial; -color: unset; -- -
La propriété color est définie grâce à une valeur de type {{cssxref("<color>")}}.
<color>.exemple {
- color: rgb(0, 0, 255);
- /* équivalent à
- color: blue;
- color: #0000ff;
- color: #00f;
- color: hsl(0, 100%, 50%); */
-}
-
-.confiture {
- color: orange;
- /* on pourrait aussi utiliser
- color: rgb(255, 128, 0); */
-}
-
-
-<p class="exemple"> - En passant elle prit sur un rayon un pot de - confiture portant cette étiquette, - <span class="confiture"> - « MARMELADE D’ORANGES. » - </span> - Mais, à son grand regret, le pot était vide : - elle n’osait le laisser tomber dans la crainte - de tuer quelqu’un ; aussi s’arrangea-t-elle de - manière à le déposer en passant dans une - des armoires. -</p>- -
{{EmbedLiveSample("Exemples")}}
- -Il est important de vérifier le contraste entre la couleur utilisée pour le texte et celle utilisée pour l'arrière-plan afin que les personnes ayant une vision faible ou lisant le document dans de mauvaises conditions puissent correctement lire le document.
- -Le ratio de contraste est déterminé en comparant la luminosité de la couleur du texte et celle de la couleur d'arrière-plan. Afin de respecter les règles d'accessibilité (WCAG), on doit avoir un ratio de 4.5:1 pour les textes « normaux » et un ratio de 3:1 pour les textes plus grands comme les titres (un texte est considéré comme « grand » s'il est en gras et qu'une lettre mesure plus de 18.66 px ou bien si une lettre mesure plus de 24 pixels).
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Colors', '#the-color-property', 'color')}} | -{{Spec2('CSS4 Colors')}} | -Ajout de la syntaxe sans virgule pour les fonctions rgb(), rgba(), hsl() et hsla() Une valeur alpha peut être utilisée dans rgb() et hsl(), rgba() et hsla() sont donc des synonymes (dépréciés) de ces fonctions. Ajout de la couleur rebeccapurple.- Ajout des valeurs hexadécimales sur 4 et 8 chiffres où le dernier chiffre indique la composante alpha. - Ajout des fonctions hwb(), device-cmyk() et color(). |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'color')}} | -{{Spec2('CSS3 Transitions')}} | -color peut désormais être animée. |
-
| {{SpecName('CSS3 Colors', '#color', 'color')}} | -{{Spec2('CSS3 Colors')}} | -Dépréciation des couleurs système. Ajout des couleurs SVG. Ajout des fonctions rgba(), hsl() et hsla(). |
-
| {{SpecName('CSS2.1', 'colors.html#colors', 'color')}} | -{{Spec2('CSS2.1')}} | -Ajout de la couleur orange et des couleurs système. |
-
| {{SpecName('CSS1', '#color', 'color')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{Compat("css.properties.color")}}
- -La propriété color définit la couleur de premier plan d'un élément texte et de ses éventuelles décorations. Elle définit également la valeur de {{cssxref("currentColor")}} qui peut être utilisée pour d'autres propriétés (par exemple comme valeur par défaut pour {{cssxref("border-color")}}).
La valeur de cette propriété doit être une couleur uniforme. Celle-ci peut contenir des informations de transparences à partir de CSS3 mais ce ne doit pas être un dégradé ({{cssxref("<gradient>")}}) car en CSS un dégradé est considéré comme une image (type {{cssxref("<image>")}}) et pas comme une couleur.
+ +/* Valeurs avec un mot-clé */ +color: currentcolor; + +/* Valeurs avec un mot-clé pour une couleur nommée */ +color: red; +color: orange; +color: tan; +color: rebeccapurple; + +/* Valeurs hexadécimales <hex-color> */ +color: #090; +color: #009900; +color: #090a; +color: #009900aa; + +/* Valeurs utilisant la fonction <rgb()> */ +color: rgb(34, 12, 64, 0.6); +color: rgba(34, 12, 64, 0.6); +color: rgb(34 12 64 / 0.6); +color: rgba(34 12 64 / 0.3); +color: rgb(34.0 12 64 / 60%); +color: rgba(34.6 12 64 / 30%); + +/* Valeurs <hsl()> */ +color: hsl(30, 100%, 50%, 0.6); +color: hsla(30, 100%, 50%, 0.6); +color: hsl(30 100% 50% / 0.6); +color: hsla(30 100% 50% / 0.6); +color: hsl(30.0 100% 50% / 60%); +color: hsla(30.2 100% 50% / 60%); + + +/* Valeurs globales */ +color: inherit; +color: initial; +color: unset; ++ +
La propriété color est définie grâce à une valeur de type {{cssxref("<color>")}}.
<color>.exemple {
+ color: rgb(0, 0, 255);
+ /* équivalent à
+ color: blue;
+ color: #0000ff;
+ color: #00f;
+ color: hsl(0, 100%, 50%); */
+}
+
+.confiture {
+ color: orange;
+ /* on pourrait aussi utiliser
+ color: rgb(255, 128, 0); */
+}
+
+
+<p class="exemple"> + En passant elle prit sur un rayon un pot de + confiture portant cette étiquette, + <span class="confiture"> + « MARMELADE D’ORANGES. » + </span> + Mais, à son grand regret, le pot était vide : + elle n’osait le laisser tomber dans la crainte + de tuer quelqu’un ; aussi s’arrangea-t-elle de + manière à le déposer en passant dans une + des armoires. +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +Il est important de vérifier le contraste entre la couleur utilisée pour le texte et celle utilisée pour l'arrière-plan afin que les personnes ayant une vision faible ou lisant le document dans de mauvaises conditions puissent correctement lire le document.
+ +Le ratio de contraste est déterminé en comparant la luminosité de la couleur du texte et celle de la couleur d'arrière-plan. Afin de respecter les règles d'accessibilité (WCAG), on doit avoir un ratio de 4.5:1 pour les textes « normaux » et un ratio de 3:1 pour les textes plus grands comme les titres (un texte est considéré comme « grand » s'il est en gras et qu'une lettre mesure plus de 18.66 px ou bien si une lettre mesure plus de 24 pixels).
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Colors', '#the-color-property', 'color')}} | +{{Spec2('CSS4 Colors')}} | +Ajout de la syntaxe sans virgule pour les fonctions rgb(), rgba(), hsl() et hsla() Une valeur alpha peut être utilisée dans rgb() et hsl(), rgba() et hsla() sont donc des synonymes (dépréciés) de ces fonctions. Ajout de la couleur rebeccapurple.+ Ajout des valeurs hexadécimales sur 4 et 8 chiffres où le dernier chiffre indique la composante alpha. + Ajout des fonctions hwb(), device-cmyk() et color(). |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'color')}} | +{{Spec2('CSS3 Transitions')}} | +color peut désormais être animée. |
+
| {{SpecName('CSS3 Colors', '#color', 'color')}} | +{{Spec2('CSS3 Colors')}} | +Dépréciation des couleurs système. Ajout des couleurs SVG. Ajout des fonctions rgba(), hsl() et hsla(). |
+
| {{SpecName('CSS2.1', 'colors.html#colors', 'color')}} | +{{Spec2('CSS2.1')}} | +Ajout de la couleur orange et des couleurs système. |
+
| {{SpecName('CSS1', '#color', 'color')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{Compat("css.properties.color")}}
+ +Le type de données CSS <color> permet de représenter des couleurs dans l'espace de couleurs sRGB. Une couleur pourra être décrite de trois façons :
blue ou transparent par exemple)rgb() et rgba())hsl() et hsla())En plus de la couleur exprimée dans l'espace RGB, une valeur <color> contient également un canal alpha qui décrit la transparence de l'image et donc la façon dont cette image se compose avec son arrière-plan.
Note : Cet article décrit le type de donnée CSS <color> en détails. Si vous souhaitez en savoir plus sur l'utilisation des couleurs en HTML, n'hésitez pas à lire Appliquer des couleurs à des éléments HTML grâce à CSS.
Note : Bien que les valeurs des couleurs CSS soient définies précisément, elles pourront s'afficher différemment sur différents appareils. La plupart des appareils ne sont pas calibrés et certains navigateurs ne prennent pas en charge le profil de couleurs de l'appareil. Sans ces éléments, le rendu des couleurs peut varier.
-Il existe plusieurs méthodes pour décrire une valeur <color>.
Les mots-clés sont des identifiants insensibles à la casse qui représentent une couleur donnée. Par exemple, le mot-clé red représentera la couleur rouge, blue le bleu, brown le marron, etc. La liste des valeurs autorisées a fortement évolué au cours des différentes versions de la spécification :
orange.rebeccapurple en l'honneur d'Eric Meyer.Voici quelques inconvénients liés aux mots-clés :
- -aqua / cyanfuchsia / magentadarkgray / darkgreydarkslategray / darkslategreydimgray / dimgreylightgray / lightgreylightslategray / lightslategreygray / greyslategray / slategrey| Spécification | -Couleur | -Mot-clé | -Valeurs exprimées en hexadécimal RGB | -Exemple « live » dans le navigateur | -
|---|---|---|---|---|
| {{SpecName("CSS1")}} | -- | black |
- #000000 |
- - |
| - | silver |
- #c0c0c0 |
- - | |
| - | gray |
- #808080 |
- - | |
| - | white |
- #ffffff |
- - | |
| - | maroon |
- #800000 |
- - | |
| - | red |
- #ff0000 |
- - | |
| - | purple |
- #800080 |
- - | |
| - | fuchsia |
- #ff00ff |
- - | |
| - | green |
- #008000 |
- - | |
| - | lime |
- #00ff00 |
- - | |
| - | olive |
- #808000 |
- - | |
| - | yellow |
- #ffff00 |
- - | |
| - | navy |
- #000080 |
- - | |
| - | blue |
- #0000ff |
- - | |
| - | teal |
- #008080 |
- - | |
| - | aqua |
- #00ffff |
- - | |
| {{SpecName("CSS2.1")}} | -- | orange |
- #ffa500 |
- - |
| {{SpecName("CSS3 Colors")}} | -- | aliceblue |
- #f0f8ff |
- - |
| - | antiquewhite |
- #faebd7 |
- - | |
| - | aquamarine |
- #7fffd4 |
- - | |
| - | azure |
- #f0ffff |
- - | |
| - | beige |
- #f5f5dc |
- - | |
| - | bisque |
- #ffe4c4 |
- - | |
| - | blanchedalmond |
- #ffebcd |
- - | |
| - | blueviolet |
- #8a2be2 |
- - | |
| - | brown |
- #a52a2a |
- - | |
| - | burlywood |
- #deb887 |
- - | |
| - | cadetblue |
- #5f9ea0 |
- - | |
| - | chartreuse |
- #7fff00 |
- - | |
| - | chocolate |
- #d2691e |
- - | |
| - | coral |
- #ff7f50 |
- - | |
| - | cornflowerblue |
- #6495ed |
- - | |
| - | cornsilk |
- #fff8dc |
- - | |
| - | crimson |
- #dc143c |
- - | |
| - | cyan (synonyme de aqua) |
- #00ffff |
- - | |
| - | darkblue |
- #00008b |
- - | |
| - | darkcyan |
- #008b8b |
- - | |
| - | darkgoldenrod |
- #b8860b |
- - | |
| - | darkgray |
- #a9a9a9 |
- - | |
| - | darkgreen |
- #006400 |
- - | |
| - | darkgrey |
- #a9a9a9 |
- - | |
| - | darkkhaki |
- #bdb76b |
- - | |
| - | darkmagenta |
- #8b008b |
- - | |
| - | darkolivegreen |
- #556b2f |
- - | |
| - | darkorange |
- #ff8c00 |
- - | |
| - | darkorchid |
- #9932cc |
- - | |
| - | darkred |
- #8b0000 |
- - | |
| - | darksalmon |
- #e9967a |
- - | |
| - | darkseagreen |
- #8fbc8f |
- - | |
| - | darkslateblue |
- #483d8b |
- - | |
| - | darkslategray |
- #2f4f4f |
- - | |
| - | darkslategrey |
- #2f4f4f |
- - | |
| - | darkturquoise |
- #00ced1 |
- - | |
| - | darkviolet |
- #9400d3 |
- - | |
| - | deeppink |
- #ff1493 |
- - | |
| - | deepskyblue |
- #00bfff |
- - | |
| - | dimgray |
- #696969 |
- - | |
| - | dimgrey |
- #696969 |
- - | |
| - | dodgerblue |
- #1e90ff |
- - | |
| - | firebrick |
- #b22222 |
- - | |
| - | floralwhite |
- #fffaf0 |
- - | |
| - | forestgreen |
- #228b22 |
- - | |
| - | gainsboro |
- #dcdcdc |
- - | |
| - | ghostwhite |
- #f8f8ff |
- - | |
| - | gold |
- #ffd700 |
- - | |
| - | goldenrod |
- #daa520 |
- - | |
| - | greenyellow |
- #adff2f |
- - | |
| - | grey |
- #808080 |
- - | |
| - | honeydew |
- #f0fff0 |
- - | |
| - | hotpink |
- #ff69b4 |
- - | |
| - | indianred |
- #cd5c5c |
- - | |
| - | indigo |
- #4b0082 |
- - | |
| - | ivory |
- #fffff0 |
- - | |
| - | khaki |
- #f0e68c |
- - | |
| - | lavender |
- #e6e6fa |
- - | |
| - | lavenderblush |
- #fff0f5 |
- - | |
| - | lawngreen |
- #7cfc00 |
- - | |
| - | lemonchiffon |
- #fffacd |
- - | |
| - | lightblue |
- #add8e6 |
- - | |
| - | lightcoral |
- #f08080 |
- - | |
| - | lightcyan |
- #e0ffff |
- - | |
| - | lightgoldenrodyellow |
- #fafad2 |
- - | |
| - | lightgray |
- #d3d3d3 |
- - | |
| - | lightgreen |
- #90ee90 |
- - | |
| - | lightgrey |
- #d3d3d3 |
- - | |
| - | lightpink |
- #ffb6c1 |
- - | |
| - | lightsalmon |
- #ffa07a |
- - | |
| - | lightseagreen |
- #20b2aa |
- - | |
| - | lightskyblue |
- #87cefa |
- - | |
| - | lightslategray |
- #778899 |
- - | |
| - | lightslategrey |
- #778899 |
- - | |
| - | lightsteelblue |
- #b0c4de |
- - | |
| - | lightyellow |
- #ffffe0 |
- - | |
| - | limegreen |
- #32cd32 |
- - | |
| - | linen |
- #faf0e6 |
- - | |
| - | magenta (synonyme de fuchsia) |
- #ff00ff |
- - | |
| - | mediumaquamarine |
- #66cdaa |
- - | |
| - | mediumblue |
- #0000cd |
- - | |
| - | mediumorchid |
- #ba55d3 |
- - | |
| - | mediumpurple |
- #9370db |
- - | |
| - | mediumseagreen |
- #3cb371 |
- - | |
| - | mediumslateblue |
- #7b68ee |
- - | |
| - | mediumspringgreen |
- #00fa9a |
- - | |
| - | mediumturquoise |
- #48d1cc |
- - | |
| - | mediumvioletred |
- #c71585 |
- - | |
| - | midnightblue |
- #191970 |
- - | |
| - | mintcream |
- #f5fffa |
- - | |
| - | mistyrose |
- #ffe4e1 |
- - | |
| - | moccasin |
- #ffe4b5 |
- - | |
| - | navajowhite |
- #ffdead |
- - | |
| - | oldlace |
- #fdf5e6 |
- - | |
| - | olivedrab |
- #6b8e23 |
- - | |
| - | orangered |
- #ff4500 |
- - | |
| - | orchid |
- #da70d6 |
- - | |
| - | palegoldenrod |
- #eee8aa |
- - | |
| - | palegreen |
- #98fb98 |
- - | |
| - | paleturquoise |
- #afeeee |
- - | |
| - | palevioletred |
- #db7093 |
- - | |
| - | papayawhip |
- #ffefd5 |
- - | |
| - | peachpuff |
- #ffdab9 |
- - | |
| - | peru |
- #cd853f |
- - | |
| - | pink |
- #ffc0cb |
- - | |
| - | plum |
- #dda0dd |
- - | |
| - | powderblue |
- #b0e0e6 |
- - | |
| - | rosybrown |
- #bc8f8f |
- - | |
| - | royalblue |
- #4169e1 |
- - | |
| - | saddlebrown |
- #8b4513 |
- - | |
| - | salmon |
- #fa8072 |
- - | |
| - | sandybrown |
- #f4a460 |
- - | |
| - | seagreen |
- #2e8b57 |
- - | |
| - | seashell |
- #fff5ee |
- - | |
| - | sienna |
- #a0522d |
- - | |
| - | skyblue |
- #87ceeb |
- - | |
| - | slateblue |
- #6a5acd |
- - | |
| - | slategray |
- #708090 |
- - | |
| - | slategrey |
- #708090 |
- - | |
| - | snow |
- #fffafa |
- - | |
| - | springgreen |
- #00ff7f |
- - | |
| - | steelblue |
- #4682b4 |
- - | |
| - | tan |
- #d2b48c |
- - | |
| - | thistle |
- #d8bfd8 |
- - | |
| - | tomato |
- #ff6347 |
- - | |
| - | turquoise |
- #40e0d0 |
- - | |
| - | violet |
- #ee82ee |
- - | |
| - | wheat |
- #f5deb3 |
- - | |
| - | whitesmoke |
- #f5f5f5 |
- - | |
| - | yellowgreen |
- #9acd32 |
- - | |
| {{SpecName("CSS4 Colors")}} | -- | rebeccapurple |
- #663399 |
- - |
La couleur rebeccapurple est équivalente à la couleur #639. Pour mieux comprendre pourquoi elle a été ajoutée, vous pouvez lire ce billet Codepen par Trezy « Honorer un grand homme » (en anglais).
transparenttransparent est un mot-clé qui représente une couleur totalement transparente (autrement dit, la couleur qui sera vue sera la couleur située en arrière-plan). D'un point de vue technique, il s'agit d'un noir pur avec un canal alpha minimal : rgba(0,0,0,0).
Note : Attention lorsqu'on utilise ce mot-clé pour un dégradé (cf.{{cssxref("gradient")}}, la spécification W3C indique que transparent devrait être calculé dans l'espace de couleurs avec pré-multiplication des alpha. Cependant, les anciens navigateurs peuvent traiter ce noir avec une valeur alpha de 0.
Note : Historiquement, le mot-clé transparent n'était pas une valeur de type <color> pour la spécification CSS de niveau 2 (première révision). C'était un mot-clé qui pouvait être utilisé comme valeur pour les propriétés {{cssxref("background")}} et {{cssxref("border")}}. Il a été ajouté afin de pouvoir surcharger l'héritage de couleurs opaques. Avec l'ajout de la gestion de l'opacité via les canaux alpha, transparent a été redéfini comme une couleur avec la spécification CSS de niveau 3 sur les couleurs, ce qui permet de l'utiliser à n'importe quel endroit où une valeur <color> est nécessaire (la propriété {{cssxref("color")}} par exemple).
currentColorLe mot-clé currentColor représente la valeur calculée de la propriété {{cssxref("color")}} pour l'élément. Il permet aux propriétés de couleur d'hériter de la valeur de l'élément parent même si, par défaut, celles-ci n'utilisent pas l'héritage.
Il peut également être utilisé sur des propriétés qui héritent de la valeur calculée de la propriété {{cssxref("color")}} de l'élément. Cela sera alors équivalent au mot-clé {{cssxref("inherit")}}.
- -Si currentColor est utilisée comme valeur pour la propriété color, sa valeur est déterminée à partir de la valeur héritée pour la propriété color.
La couleur de la ligne prend la couleur héritée depuis son élément parent.
- -<div style="color:darkred"> - La couleur de ce texte est bleu. - <div style="background:currentColor; height:1px"></div> - Un peu de texte. -</div> -- -
{{EmbedLiveSample('Exemple_live_n°1')}}
- -<div style="color:blue; border-bottom: 1px dashed currentColor;"> - La couleur de ce texte est bleu : - <div style="background:currentColor; height:1px"></div> - Un peu de texte. -</div>- -
{{EmbedLiveSample('Exemple_live_n°2')}}
-Les couleurs peuvent être définies selon le modèles rouge-vert-bleu-alpha (RGB avec une composante alpha, optionnelle, pour gérer la transparence.
- -Les couleurs RGB peuvent être exprimées avec une notation hexadécimale (préfixée avec #) ou avec des notations fonctionnelles (rgb() ou rgba()).
Note : Dans la spécification du module CSS Color de niveau 4, rgba() a été définie comme une fonction historique dont la grammaire et le comportement est le même que rgb(). C'est donc un synonyme. À partir de cette spécification, les deux peuvent accepter les mêmes paramètres.
#RRGGBB[AA]# » suivi par huit caractères hexadécimaux (0-9, A-F), les deux premiers déterminent la composante rouge, les deux suivants la composante verte puis la composante bleue et enfin les deux derniers, optionnels, déterminent la composante alpha.#RGB[A]# » suivi par quatre caractères hexadécimaux (0-9, A-F), le premier chiffre représente la composante rouge, le deuxième la composante verte, le troisième la composante bleue et le quatrième, optionnel, la composante alpha.rgb(R, G, B[, A]) ou rgba(R, G, B, A)rgb()). Le quatrième argument définira la force de l'opacité : 1 pour une opacité complète et 0 pour une transparence totale. Les arguments peuvent être des nombres ({{cssxref("<number>")}}) ou des pourcentages ({{cssxref("<percentage>")}}) (ex. rgb(1e2, .5e1, .5e0, +.25e2%)).rgb(R G B[ / A]) ou rgba(R G B / A)/* Ces exemples définissent tous la même couleur */ -#f03 -#F03 -#ff0033 -#FF0033 -rgb(255,0,51) -rgb(255, 0, 51) -rgb(255, 0, 51.0) -rgb(100%,0%,20%) -rgb(100%, 0%, 20%) -- -rgb(100%, 0, 20%)/* Erreur : on ne peut pas mélanger les nombres et les pourcentages */ -
/* Notation hexadécimale */ -#f030 /* 0% opacité - rouge */ -#F03F /* 100% opacité - rouge */ -#ff003300 /* 0% opacité - rouge */ -#FF003388 /* 50% opacité - rouge */ - -/* Notation fonctionnelle */ -rgba(255,0,0,0.1) /* 10% opacité - rouge */ -rgba(255,0,0,0.4) /* 40% opacité - rouge */ -rgba(255,0,0,0.7) /* 70% opacité - rouge */ -rgba(255,0,0, 1) /* 100% opacité - rouge */ - -/* Notation fonctionnelle avec des nombres décimaux */ -rgba(255, 0, 153.6, 1) -rgba(1e2, .5e1, .5e0, +.25e2%) - -/* Notation avec un espace */ -rgba(255 0 0 / 0.4) /* 40% opacité - rouge */ -rgba(255 0 0 / 40%) /* 40% opacité - rouge */- -
Les couleurs peuvent également être définies selon le modèle HSL (pour Hue-Saturation-Lightness qui signifie teinte-saturation-clarté).
- -HSL est considéré comme plus intuitif que RGB car on peut ajuster les couleurs au fur et à mesure ou créer des palettes de couleurs plus simplement (par exemple en conservant la même teinte et en faisant varier la saturation et/ou la clarté).
- -Pour HSL, les couleurs peuvent être exprimées via les notations fonctionnelles hsl() ou hsla().
Note : Dans la spécification du module CSS Color de niveau 4, hsla() a été définie comme une fonction historique dont la grammaire et le comportement est le même que hsl(). C'est donc un synonyme. À partir de cette spécification, les deux peuvent accepter les mêmes paramètres.
hsl(H, S, L,[, A]) ou hsla(H, S, L, A)La valeur H correspond à la teinte (hue) et est représentée comme un angle {{cssxref("<angle>")}} sur le cercle des couleurs. Lorsque la valeur est écrite sans unité, elle est considérée comme une valeur exprimée en degré. Par définition, le rouge correspond à 0 et 360 et les autres couleurs évoluent sur le cercle. Vert correspond à 120 et bleu à 240. La valeur se comporte comme un angle et « tournera en boucle » avec une même mesure de couleur qui peut avoir différentes valeurs (par exemple -120 sera équivalent à 240 et 480 sera équivalent à 120).
- -La valeur S correspond à la saturation (saturation) et la valeur L correspond à la clarté (lightness), ces deux valeurs sont représentées par des pourcentages. Pour la saturation, avec 100% l'image sera complètement saturée et avec 0%, l'image sera en nuances de gris. Pour la clarté, 100% correspondra à du blanc et 0% à du noir. 50% agira comme une clarté « normale ».
La valeur A (canal alpha) peut être un nombre (type {{cssxref("<number>")}} entre 0 et 1 ou un pourcentage (type {{cssxref("<percentage>")}} (la valeur 100% correspond alors à la valeur numérique 1 : opacité complète).
hsl(H S L[ / A]) ou hsla(H S L / A)Le module CSS Colors Level 4 ajoute la prise en charge de la notation fonctionnelle avec les espaces comme séparateur.
-hsl(0, 100%,50%) /* red */ -hsl(30, 100%,50%) -hsl(60, 100%,50%) -hsl(90, 100%,50%) -hsl(120,100%,50%) /* green */ -hsl(150,100%,50%) -hsl(180,100%,50%) -hsl(210,100%,50%) -hsl(240,100%,50%) /* blue */ -hsl(270,100%,50%) -hsl(300,100%,50%) -hsl(330,100%,50%) -hsl(360,100%,50%) /* red */ - -hsl(120,100%,25%) /* dark green */ -hsl(120,100%,50%) /* green */ -hsl(120,100%,75%) /* light green */ - -hsl(120,100%,50%) /* green */ -hsl(120, 67%,50%) -hsl(120, 33%,50%) -hsl(120, 0%,50%) - -hsl(120, 60%,70%) /* pastel green */ - -/* syntaxe avec les espaces */ -hsl(120 60% 70%) /* pastel green */ - -/* Valeur d'angle */ -/* on peut également utiliser les unités */ -/* rad, grad, turn */ -hsl(120deg 60% 70%) /* pastel green */ - -/* Valeur alpha optionnelle */ -hsl(240,100%,50%,0.05) /* 5% opaque blue */ -hsl(240,100%,50%,5%) /* 5% opaque blue with percentage value for alpha */ -hsl(240 100% 50% / 0.05) /* 5% opaque blue */ -hsl(240 100% 50% / 5%) /* 5% opaque blue with percentage value for alpha */ -- -
hsla(240,100%,50%,0.05) /* 5% opaque blue */ -hsla(240,100%,50%, 0.4) /* 40% opaque blue */ -hsla(240,100%,50%, 0.7) /* 70% opaque blue */ -hsla(240,100%,50%, 1) /* full opaque blue */ - -/* syntaxe avec un espace */ -hsla(240 100% 50% / 0.05)/* 5% opaque blue */ - -/* valeur en pourcentage pour l'alpha */ -hsla(240 100% 50% / 5%)/* 5% opaque blue */ - -/* valeur d'angle pour la teinte */ -/* les unités rad, grad et turn*/ -/* sont également acceptées */ -hsla(240deg 100% 50% / 5%)/* 5% opaque blue */ -hsla(240deg,100%,50%, 0.4) /* 40% opaque blue */- -
Tous les systèmes ne prennent pas en charges toutes les couleurs système. Cet usage est déprécié pour les pages web publiques (cf. ci-après le tableau des spécifications).
- -CaptionText comme couleur de premier-plan.ButtonText comme couleur de premier-plan.ButtonFace ou ThreeDFace comme couleur d'arrière-plan.ActiveCaption comme couleur d'arrière-plan.HighlightText comme couleur de premier-plan.Highlight comme couleur d'arrière-plan.InactiveCaptionText comme couleur de premier-plan.InactiveCaption comme couleur d'arrière-plan.InfoText comme couleur de premier-plan.InfoBackground comme couleur d'arrière-plan.MenuText ou -moz-MenuBarText comme couleur de premier-plan.Menu comme couleur d'arrière-plan.ButtonText comme couleur de premier-plan.WindowText en premier plan.Window en arrière-plan.ThreeDFace ou ButtonFace lorsque le pointeur n'est pas sur le bouton). Devrait être utilisée avec -moz-ButtonHoverText comme couleur de premier-plan.-moz-ButtonHoverFace comme couleur d'arrière-plan.-moz-CellHighlightText comme couleur de premier-plan. Voir aussi -moz-html-CellHighlight.-moz-CellHighlight comme couleur d'arrière-plan. Voir aussi -moz-html-CellHighlightText.-moz-ComboboxText comme couleurs de premier-plan. Pour les versions antérieures à 1.9.2, on utilisera -moz-Field à la place.-moz-Combobox comme couleur d'arrière-plan. Pour les versions antérieures à 1.9.2, on utilisera -moz-FieldText à la place.-moz-DialogText comme couleur de premier-plan.-moz-Dialog comme couleur d'arrière-plan.-moz-FieldText comme couleur de premier-plan. Pour les versions de Gecko avant 1.9, on utilisera -moz-Field. Voir aussi -moz-OddTreeRow.-moz-FieldText comme couleur de premier-plan.-moz-Field, -moz-EvenTreeRow, ou -moz-OddTreeRow comme couleur d'arrière-plan.-moz-html-CellHighlightText comme couleur de premier-plan. Avant Gecko 1.9, on utilisera -moz-CellHighlight.-moz-html-CellHighlight comme couleur d'arrière-plan. Avant Gecko 1.9, on utilisera -moz-CellHighlightText.Couleurs d'accentuation.
Highlight. Devrait être utilisée avec -moz-MenuHoverText ou -moz-MenuBarHoverText comme couleur de premier-plan.HighlightText. Devrait être utilisée avec -moz-MenuHover comme couleur d'arrière-plan.MenuText. Devrait être utilisée avec Menu comme couleur d'arrière-plan.-moz-MenuHoverText. Devrait être utilisée avec -moz-MenuHover comme couleur d'arrière-plan.-moz-FieldText comme couleur de premier-plan. Pour les versions de Gecko avant 1.9, on utilisera -moz-Field. Voir aussi -moz-EvenTreeRow.{{cssxref("appearance")}}: -moz-win-communications-toolbox;.{{cssxref("appearance")}}: -moz-win-media-toolbox.Les valeurs de type <color> peuvent être interpolées afin de créer des animations ou des dégradés (type <gradient>). Dans ce cas, elles sont interpolées via chacune de leurs composantes rouge, verte, bleue et chacune de ces coordonnées est gérée comme un nombre réel flottant. L'interpolation des couleurs est appliquée dans l'espace de couleurs alpha sRGBA prémultiplié afin d'empêcher des tons de gris d'apparaître. Pour les animations, la vitesse de l'interpolation est définie selon la fonction de temporisation associée à l'animation.
La recommandation du W3C : WCAG 2.0 conseille vivement aux auteurs de ne pas utiliser la couleur comme le seul moyen de transmettre une information, une action ou un résultat. Certains utilisateurs peuvent rencontrer des difficultés à distinguer les couleurs. Bien entendu, cette recommandation ne vise pas à interdire l'utilisation des couleurs, elle indique simplement que ce ne doit pas être le seul moyen de fournir une information (voir l'article sur Ies couleurs et le contraste pour plus d'informations).
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Colors', '#colorunits', '<color>')}} | -{{Spec2('CSS4 Colors')}} | -Ajout de la couleur rebeccapurple, de la notation hexadécimale sur quatre chiffres (#RGBA) et sur huit chiffres (#RRGGBBAA). rgba() et hsla() sont désormais synonymes de rgb() et hsl(), les paramètres des fonctions peuvent être séparés par des espaces plutôt que ds virgules, les valeurs de transparence (alpha) peuvent être exprimées en pourcentages et les valeurs de teinte avec un angle. |
-
| {{SpecName('CSS3 Colors', '#colorunits', '<color>')}} | -{{Spec2('CSS3 Colors')}} | -Les couleurs système sont désormais dépréciée. Les couleurs SVG sont ajoutées ainsi que les notations fonctionnelles rgba(), hsl(), hsla(). |
-
| {{SpecName('CSS2.1', 'syndata.html#value-def-color', '<color>')}} | -{{Spec2('CSS2.1')}} | -Ajout de la couleur orange et des couleurs système. |
-
| {{SpecName('CSS1', '#color-units', '<color>')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{Compat("css.properties.color")}}
- -Le type de données CSS <color> permet de représenter des couleurs dans l'espace de couleurs sRGB. Une couleur pourra être décrite de trois façons :
blue ou transparent par exemple)rgb() et rgba())hsl() et hsla())En plus de la couleur exprimée dans l'espace RGB, une valeur <color> contient également un canal alpha qui décrit la transparence de l'image et donc la façon dont cette image se compose avec son arrière-plan.
Note : Cet article décrit le type de donnée CSS <color> en détails. Si vous souhaitez en savoir plus sur l'utilisation des couleurs en HTML, n'hésitez pas à lire Appliquer des couleurs à des éléments HTML grâce à CSS.
Note : Bien que les valeurs des couleurs CSS soient définies précisément, elles pourront s'afficher différemment sur différents appareils. La plupart des appareils ne sont pas calibrés et certains navigateurs ne prennent pas en charge le profil de couleurs de l'appareil. Sans ces éléments, le rendu des couleurs peut varier.
+Il existe plusieurs méthodes pour décrire une valeur <color>.
Les mots-clés sont des identifiants insensibles à la casse qui représentent une couleur donnée. Par exemple, le mot-clé red représentera la couleur rouge, blue le bleu, brown le marron, etc. La liste des valeurs autorisées a fortement évolué au cours des différentes versions de la spécification :
orange.rebeccapurple en l'honneur d'Eric Meyer.Voici quelques inconvénients liés aux mots-clés :
+ +aqua / cyanfuchsia / magentadarkgray / darkgreydarkslategray / darkslategreydimgray / dimgreylightgray / lightgreylightslategray / lightslategreygray / greyslategray / slategrey| Spécification | +Couleur | +Mot-clé | +Valeurs exprimées en hexadécimal RGB | +Exemple « live » dans le navigateur | +
|---|---|---|---|---|
| {{SpecName("CSS1")}} | ++ | black |
+ #000000 |
+ + |
| + | silver |
+ #c0c0c0 |
+ + | |
| + | gray |
+ #808080 |
+ + | |
| + | white |
+ #ffffff |
+ + | |
| + | maroon |
+ #800000 |
+ + | |
| + | red |
+ #ff0000 |
+ + | |
| + | purple |
+ #800080 |
+ + | |
| + | fuchsia |
+ #ff00ff |
+ + | |
| + | green |
+ #008000 |
+ + | |
| + | lime |
+ #00ff00 |
+ + | |
| + | olive |
+ #808000 |
+ + | |
| + | yellow |
+ #ffff00 |
+ + | |
| + | navy |
+ #000080 |
+ + | |
| + | blue |
+ #0000ff |
+ + | |
| + | teal |
+ #008080 |
+ + | |
| + | aqua |
+ #00ffff |
+ + | |
| {{SpecName("CSS2.1")}} | ++ | orange |
+ #ffa500 |
+ + |
| {{SpecName("CSS3 Colors")}} | ++ | aliceblue |
+ #f0f8ff |
+ + |
| + | antiquewhite |
+ #faebd7 |
+ + | |
| + | aquamarine |
+ #7fffd4 |
+ + | |
| + | azure |
+ #f0ffff |
+ + | |
| + | beige |
+ #f5f5dc |
+ + | |
| + | bisque |
+ #ffe4c4 |
+ + | |
| + | blanchedalmond |
+ #ffebcd |
+ + | |
| + | blueviolet |
+ #8a2be2 |
+ + | |
| + | brown |
+ #a52a2a |
+ + | |
| + | burlywood |
+ #deb887 |
+ + | |
| + | cadetblue |
+ #5f9ea0 |
+ + | |
| + | chartreuse |
+ #7fff00 |
+ + | |
| + | chocolate |
+ #d2691e |
+ + | |
| + | coral |
+ #ff7f50 |
+ + | |
| + | cornflowerblue |
+ #6495ed |
+ + | |
| + | cornsilk |
+ #fff8dc |
+ + | |
| + | crimson |
+ #dc143c |
+ + | |
| + | cyan (synonyme de aqua) |
+ #00ffff |
+ + | |
| + | darkblue |
+ #00008b |
+ + | |
| + | darkcyan |
+ #008b8b |
+ + | |
| + | darkgoldenrod |
+ #b8860b |
+ + | |
| + | darkgray |
+ #a9a9a9 |
+ + | |
| + | darkgreen |
+ #006400 |
+ + | |
| + | darkgrey |
+ #a9a9a9 |
+ + | |
| + | darkkhaki |
+ #bdb76b |
+ + | |
| + | darkmagenta |
+ #8b008b |
+ + | |
| + | darkolivegreen |
+ #556b2f |
+ + | |
| + | darkorange |
+ #ff8c00 |
+ + | |
| + | darkorchid |
+ #9932cc |
+ + | |
| + | darkred |
+ #8b0000 |
+ + | |
| + | darksalmon |
+ #e9967a |
+ + | |
| + | darkseagreen |
+ #8fbc8f |
+ + | |
| + | darkslateblue |
+ #483d8b |
+ + | |
| + | darkslategray |
+ #2f4f4f |
+ + | |
| + | darkslategrey |
+ #2f4f4f |
+ + | |
| + | darkturquoise |
+ #00ced1 |
+ + | |
| + | darkviolet |
+ #9400d3 |
+ + | |
| + | deeppink |
+ #ff1493 |
+ + | |
| + | deepskyblue |
+ #00bfff |
+ + | |
| + | dimgray |
+ #696969 |
+ + | |
| + | dimgrey |
+ #696969 |
+ + | |
| + | dodgerblue |
+ #1e90ff |
+ + | |
| + | firebrick |
+ #b22222 |
+ + | |
| + | floralwhite |
+ #fffaf0 |
+ + | |
| + | forestgreen |
+ #228b22 |
+ + | |
| + | gainsboro |
+ #dcdcdc |
+ + | |
| + | ghostwhite |
+ #f8f8ff |
+ + | |
| + | gold |
+ #ffd700 |
+ + | |
| + | goldenrod |
+ #daa520 |
+ + | |
| + | greenyellow |
+ #adff2f |
+ + | |
| + | grey |
+ #808080 |
+ + | |
| + | honeydew |
+ #f0fff0 |
+ + | |
| + | hotpink |
+ #ff69b4 |
+ + | |
| + | indianred |
+ #cd5c5c |
+ + | |
| + | indigo |
+ #4b0082 |
+ + | |
| + | ivory |
+ #fffff0 |
+ + | |
| + | khaki |
+ #f0e68c |
+ + | |
| + | lavender |
+ #e6e6fa |
+ + | |
| + | lavenderblush |
+ #fff0f5 |
+ + | |
| + | lawngreen |
+ #7cfc00 |
+ + | |
| + | lemonchiffon |
+ #fffacd |
+ + | |
| + | lightblue |
+ #add8e6 |
+ + | |
| + | lightcoral |
+ #f08080 |
+ + | |
| + | lightcyan |
+ #e0ffff |
+ + | |
| + | lightgoldenrodyellow |
+ #fafad2 |
+ + | |
| + | lightgray |
+ #d3d3d3 |
+ + | |
| + | lightgreen |
+ #90ee90 |
+ + | |
| + | lightgrey |
+ #d3d3d3 |
+ + | |
| + | lightpink |
+ #ffb6c1 |
+ + | |
| + | lightsalmon |
+ #ffa07a |
+ + | |
| + | lightseagreen |
+ #20b2aa |
+ + | |
| + | lightskyblue |
+ #87cefa |
+ + | |
| + | lightslategray |
+ #778899 |
+ + | |
| + | lightslategrey |
+ #778899 |
+ + | |
| + | lightsteelblue |
+ #b0c4de |
+ + | |
| + | lightyellow |
+ #ffffe0 |
+ + | |
| + | limegreen |
+ #32cd32 |
+ + | |
| + | linen |
+ #faf0e6 |
+ + | |
| + | magenta (synonyme de fuchsia) |
+ #ff00ff |
+ + | |
| + | mediumaquamarine |
+ #66cdaa |
+ + | |
| + | mediumblue |
+ #0000cd |
+ + | |
| + | mediumorchid |
+ #ba55d3 |
+ + | |
| + | mediumpurple |
+ #9370db |
+ + | |
| + | mediumseagreen |
+ #3cb371 |
+ + | |
| + | mediumslateblue |
+ #7b68ee |
+ + | |
| + | mediumspringgreen |
+ #00fa9a |
+ + | |
| + | mediumturquoise |
+ #48d1cc |
+ + | |
| + | mediumvioletred |
+ #c71585 |
+ + | |
| + | midnightblue |
+ #191970 |
+ + | |
| + | mintcream |
+ #f5fffa |
+ + | |
| + | mistyrose |
+ #ffe4e1 |
+ + | |
| + | moccasin |
+ #ffe4b5 |
+ + | |
| + | navajowhite |
+ #ffdead |
+ + | |
| + | oldlace |
+ #fdf5e6 |
+ + | |
| + | olivedrab |
+ #6b8e23 |
+ + | |
| + | orangered |
+ #ff4500 |
+ + | |
| + | orchid |
+ #da70d6 |
+ + | |
| + | palegoldenrod |
+ #eee8aa |
+ + | |
| + | palegreen |
+ #98fb98 |
+ + | |
| + | paleturquoise |
+ #afeeee |
+ + | |
| + | palevioletred |
+ #db7093 |
+ + | |
| + | papayawhip |
+ #ffefd5 |
+ + | |
| + | peachpuff |
+ #ffdab9 |
+ + | |
| + | peru |
+ #cd853f |
+ + | |
| + | pink |
+ #ffc0cb |
+ + | |
| + | plum |
+ #dda0dd |
+ + | |
| + | powderblue |
+ #b0e0e6 |
+ + | |
| + | rosybrown |
+ #bc8f8f |
+ + | |
| + | royalblue |
+ #4169e1 |
+ + | |
| + | saddlebrown |
+ #8b4513 |
+ + | |
| + | salmon |
+ #fa8072 |
+ + | |
| + | sandybrown |
+ #f4a460 |
+ + | |
| + | seagreen |
+ #2e8b57 |
+ + | |
| + | seashell |
+ #fff5ee |
+ + | |
| + | sienna |
+ #a0522d |
+ + | |
| + | skyblue |
+ #87ceeb |
+ + | |
| + | slateblue |
+ #6a5acd |
+ + | |
| + | slategray |
+ #708090 |
+ + | |
| + | slategrey |
+ #708090 |
+ + | |
| + | snow |
+ #fffafa |
+ + | |
| + | springgreen |
+ #00ff7f |
+ + | |
| + | steelblue |
+ #4682b4 |
+ + | |
| + | tan |
+ #d2b48c |
+ + | |
| + | thistle |
+ #d8bfd8 |
+ + | |
| + | tomato |
+ #ff6347 |
+ + | |
| + | turquoise |
+ #40e0d0 |
+ + | |
| + | violet |
+ #ee82ee |
+ + | |
| + | wheat |
+ #f5deb3 |
+ + | |
| + | whitesmoke |
+ #f5f5f5 |
+ + | |
| + | yellowgreen |
+ #9acd32 |
+ + | |
| {{SpecName("CSS4 Colors")}} | ++ | rebeccapurple |
+ #663399 |
+ + |
La couleur rebeccapurple est équivalente à la couleur #639. Pour mieux comprendre pourquoi elle a été ajoutée, vous pouvez lire ce billet Codepen par Trezy « Honorer un grand homme » (en anglais).
transparenttransparent est un mot-clé qui représente une couleur totalement transparente (autrement dit, la couleur qui sera vue sera la couleur située en arrière-plan). D'un point de vue technique, il s'agit d'un noir pur avec un canal alpha minimal : rgba(0,0,0,0).
Note : Attention lorsqu'on utilise ce mot-clé pour un dégradé (cf.{{cssxref("gradient")}}, la spécification W3C indique que transparent devrait être calculé dans l'espace de couleurs avec pré-multiplication des alpha. Cependant, les anciens navigateurs peuvent traiter ce noir avec une valeur alpha de 0.
Note : Historiquement, le mot-clé transparent n'était pas une valeur de type <color> pour la spécification CSS de niveau 2 (première révision). C'était un mot-clé qui pouvait être utilisé comme valeur pour les propriétés {{cssxref("background")}} et {{cssxref("border")}}. Il a été ajouté afin de pouvoir surcharger l'héritage de couleurs opaques. Avec l'ajout de la gestion de l'opacité via les canaux alpha, transparent a été redéfini comme une couleur avec la spécification CSS de niveau 3 sur les couleurs, ce qui permet de l'utiliser à n'importe quel endroit où une valeur <color> est nécessaire (la propriété {{cssxref("color")}} par exemple).
currentColorLe mot-clé currentColor représente la valeur calculée de la propriété {{cssxref("color")}} pour l'élément. Il permet aux propriétés de couleur d'hériter de la valeur de l'élément parent même si, par défaut, celles-ci n'utilisent pas l'héritage.
Il peut également être utilisé sur des propriétés qui héritent de la valeur calculée de la propriété {{cssxref("color")}} de l'élément. Cela sera alors équivalent au mot-clé {{cssxref("inherit")}}.
+ +Si currentColor est utilisée comme valeur pour la propriété color, sa valeur est déterminée à partir de la valeur héritée pour la propriété color.
La couleur de la ligne prend la couleur héritée depuis son élément parent.
+ +<div style="color:darkred"> + La couleur de ce texte est bleu. + <div style="background:currentColor; height:1px"></div> + Un peu de texte. +</div> ++ +
{{EmbedLiveSample('Exemple_live_n°1')}}
+ +<div style="color:blue; border-bottom: 1px dashed currentColor;"> + La couleur de ce texte est bleu : + <div style="background:currentColor; height:1px"></div> + Un peu de texte. +</div>+ +
{{EmbedLiveSample('Exemple_live_n°2')}}
+Les couleurs peuvent être définies selon le modèles rouge-vert-bleu-alpha (RGB avec une composante alpha, optionnelle, pour gérer la transparence.
+ +Les couleurs RGB peuvent être exprimées avec une notation hexadécimale (préfixée avec #) ou avec des notations fonctionnelles (rgb() ou rgba()).
Note : Dans la spécification du module CSS Color de niveau 4, rgba() a été définie comme une fonction historique dont la grammaire et le comportement est le même que rgb(). C'est donc un synonyme. À partir de cette spécification, les deux peuvent accepter les mêmes paramètres.
#RRGGBB[AA]# » suivi par huit caractères hexadécimaux (0-9, A-F), les deux premiers déterminent la composante rouge, les deux suivants la composante verte puis la composante bleue et enfin les deux derniers, optionnels, déterminent la composante alpha.#RGB[A]# » suivi par quatre caractères hexadécimaux (0-9, A-F), le premier chiffre représente la composante rouge, le deuxième la composante verte, le troisième la composante bleue et le quatrième, optionnel, la composante alpha.rgb(R, G, B[, A]) ou rgba(R, G, B, A)rgb()). Le quatrième argument définira la force de l'opacité : 1 pour une opacité complète et 0 pour une transparence totale. Les arguments peuvent être des nombres ({{cssxref("<number>")}}) ou des pourcentages ({{cssxref("<percentage>")}}) (ex. rgb(1e2, .5e1, .5e0, +.25e2%)).rgb(R G B[ / A]) ou rgba(R G B / A)/* Ces exemples définissent tous la même couleur */ +#f03 +#F03 +#ff0033 +#FF0033 +rgb(255,0,51) +rgb(255, 0, 51) +rgb(255, 0, 51.0) +rgb(100%,0%,20%) +rgb(100%, 0%, 20%) ++ +rgb(100%, 0, 20%)/* Erreur : on ne peut pas mélanger les nombres et les pourcentages */ +
/* Notation hexadécimale */ +#f030 /* 0% opacité - rouge */ +#F03F /* 100% opacité - rouge */ +#ff003300 /* 0% opacité - rouge */ +#FF003388 /* 50% opacité - rouge */ + +/* Notation fonctionnelle */ +rgba(255,0,0,0.1) /* 10% opacité - rouge */ +rgba(255,0,0,0.4) /* 40% opacité - rouge */ +rgba(255,0,0,0.7) /* 70% opacité - rouge */ +rgba(255,0,0, 1) /* 100% opacité - rouge */ + +/* Notation fonctionnelle avec des nombres décimaux */ +rgba(255, 0, 153.6, 1) +rgba(1e2, .5e1, .5e0, +.25e2%) + +/* Notation avec un espace */ +rgba(255 0 0 / 0.4) /* 40% opacité - rouge */ +rgba(255 0 0 / 40%) /* 40% opacité - rouge */+ +
Les couleurs peuvent également être définies selon le modèle HSL (pour Hue-Saturation-Lightness qui signifie teinte-saturation-clarté).
+ +HSL est considéré comme plus intuitif que RGB car on peut ajuster les couleurs au fur et à mesure ou créer des palettes de couleurs plus simplement (par exemple en conservant la même teinte et en faisant varier la saturation et/ou la clarté).
+ +Pour HSL, les couleurs peuvent être exprimées via les notations fonctionnelles hsl() ou hsla().
Note : Dans la spécification du module CSS Color de niveau 4, hsla() a été définie comme une fonction historique dont la grammaire et le comportement est le même que hsl(). C'est donc un synonyme. À partir de cette spécification, les deux peuvent accepter les mêmes paramètres.
hsl(H, S, L,[, A]) ou hsla(H, S, L, A)La valeur H correspond à la teinte (hue) et est représentée comme un angle {{cssxref("<angle>")}} sur le cercle des couleurs. Lorsque la valeur est écrite sans unité, elle est considérée comme une valeur exprimée en degré. Par définition, le rouge correspond à 0 et 360 et les autres couleurs évoluent sur le cercle. Vert correspond à 120 et bleu à 240. La valeur se comporte comme un angle et « tournera en boucle » avec une même mesure de couleur qui peut avoir différentes valeurs (par exemple -120 sera équivalent à 240 et 480 sera équivalent à 120).
+ +La valeur S correspond à la saturation (saturation) et la valeur L correspond à la clarté (lightness), ces deux valeurs sont représentées par des pourcentages. Pour la saturation, avec 100% l'image sera complètement saturée et avec 0%, l'image sera en nuances de gris. Pour la clarté, 100% correspondra à du blanc et 0% à du noir. 50% agira comme une clarté « normale ».
La valeur A (canal alpha) peut être un nombre (type {{cssxref("<number>")}} entre 0 et 1 ou un pourcentage (type {{cssxref("<percentage>")}} (la valeur 100% correspond alors à la valeur numérique 1 : opacité complète).
hsl(H S L[ / A]) ou hsla(H S L / A)Le module CSS Colors Level 4 ajoute la prise en charge de la notation fonctionnelle avec les espaces comme séparateur.
+hsl(0, 100%,50%) /* red */ +hsl(30, 100%,50%) +hsl(60, 100%,50%) +hsl(90, 100%,50%) +hsl(120,100%,50%) /* green */ +hsl(150,100%,50%) +hsl(180,100%,50%) +hsl(210,100%,50%) +hsl(240,100%,50%) /* blue */ +hsl(270,100%,50%) +hsl(300,100%,50%) +hsl(330,100%,50%) +hsl(360,100%,50%) /* red */ + +hsl(120,100%,25%) /* dark green */ +hsl(120,100%,50%) /* green */ +hsl(120,100%,75%) /* light green */ + +hsl(120,100%,50%) /* green */ +hsl(120, 67%,50%) +hsl(120, 33%,50%) +hsl(120, 0%,50%) + +hsl(120, 60%,70%) /* pastel green */ + +/* syntaxe avec les espaces */ +hsl(120 60% 70%) /* pastel green */ + +/* Valeur d'angle */ +/* on peut également utiliser les unités */ +/* rad, grad, turn */ +hsl(120deg 60% 70%) /* pastel green */ + +/* Valeur alpha optionnelle */ +hsl(240,100%,50%,0.05) /* 5% opaque blue */ +hsl(240,100%,50%,5%) /* 5% opaque blue with percentage value for alpha */ +hsl(240 100% 50% / 0.05) /* 5% opaque blue */ +hsl(240 100% 50% / 5%) /* 5% opaque blue with percentage value for alpha */ ++ +
hsla(240,100%,50%,0.05) /* 5% opaque blue */ +hsla(240,100%,50%, 0.4) /* 40% opaque blue */ +hsla(240,100%,50%, 0.7) /* 70% opaque blue */ +hsla(240,100%,50%, 1) /* full opaque blue */ + +/* syntaxe avec un espace */ +hsla(240 100% 50% / 0.05)/* 5% opaque blue */ + +/* valeur en pourcentage pour l'alpha */ +hsla(240 100% 50% / 5%)/* 5% opaque blue */ + +/* valeur d'angle pour la teinte */ +/* les unités rad, grad et turn*/ +/* sont également acceptées */ +hsla(240deg 100% 50% / 5%)/* 5% opaque blue */ +hsla(240deg,100%,50%, 0.4) /* 40% opaque blue */+ +
Tous les systèmes ne prennent pas en charges toutes les couleurs système. Cet usage est déprécié pour les pages web publiques (cf. ci-après le tableau des spécifications).
+ +CaptionText comme couleur de premier-plan.ButtonText comme couleur de premier-plan.ButtonFace ou ThreeDFace comme couleur d'arrière-plan.ActiveCaption comme couleur d'arrière-plan.HighlightText comme couleur de premier-plan.Highlight comme couleur d'arrière-plan.InactiveCaptionText comme couleur de premier-plan.InactiveCaption comme couleur d'arrière-plan.InfoText comme couleur de premier-plan.InfoBackground comme couleur d'arrière-plan.MenuText ou -moz-MenuBarText comme couleur de premier-plan.Menu comme couleur d'arrière-plan.ButtonText comme couleur de premier-plan.WindowText en premier plan.Window en arrière-plan.ThreeDFace ou ButtonFace lorsque le pointeur n'est pas sur le bouton). Devrait être utilisée avec -moz-ButtonHoverText comme couleur de premier-plan.-moz-ButtonHoverFace comme couleur d'arrière-plan.-moz-CellHighlightText comme couleur de premier-plan. Voir aussi -moz-html-CellHighlight.-moz-CellHighlight comme couleur d'arrière-plan. Voir aussi -moz-html-CellHighlightText.-moz-ComboboxText comme couleurs de premier-plan. Pour les versions antérieures à 1.9.2, on utilisera -moz-Field à la place.-moz-Combobox comme couleur d'arrière-plan. Pour les versions antérieures à 1.9.2, on utilisera -moz-FieldText à la place.-moz-DialogText comme couleur de premier-plan.-moz-Dialog comme couleur d'arrière-plan.-moz-FieldText comme couleur de premier-plan. Pour les versions de Gecko avant 1.9, on utilisera -moz-Field. Voir aussi -moz-OddTreeRow.-moz-FieldText comme couleur de premier-plan.-moz-Field, -moz-EvenTreeRow, ou -moz-OddTreeRow comme couleur d'arrière-plan.-moz-html-CellHighlightText comme couleur de premier-plan. Avant Gecko 1.9, on utilisera -moz-CellHighlight.-moz-html-CellHighlight comme couleur d'arrière-plan. Avant Gecko 1.9, on utilisera -moz-CellHighlightText.Couleurs d'accentuation.
Highlight. Devrait être utilisée avec -moz-MenuHoverText ou -moz-MenuBarHoverText comme couleur de premier-plan.HighlightText. Devrait être utilisée avec -moz-MenuHover comme couleur d'arrière-plan.MenuText. Devrait être utilisée avec Menu comme couleur d'arrière-plan.-moz-MenuHoverText. Devrait être utilisée avec -moz-MenuHover comme couleur d'arrière-plan.-moz-FieldText comme couleur de premier-plan. Pour les versions de Gecko avant 1.9, on utilisera -moz-Field. Voir aussi -moz-EvenTreeRow.{{cssxref("appearance")}}: -moz-win-communications-toolbox;.{{cssxref("appearance")}}: -moz-win-media-toolbox.Les valeurs de type <color> peuvent être interpolées afin de créer des animations ou des dégradés (type <gradient>). Dans ce cas, elles sont interpolées via chacune de leurs composantes rouge, verte, bleue et chacune de ces coordonnées est gérée comme un nombre réel flottant. L'interpolation des couleurs est appliquée dans l'espace de couleurs alpha sRGBA prémultiplié afin d'empêcher des tons de gris d'apparaître. Pour les animations, la vitesse de l'interpolation est définie selon la fonction de temporisation associée à l'animation.
La recommandation du W3C : WCAG 2.0 conseille vivement aux auteurs de ne pas utiliser la couleur comme le seul moyen de transmettre une information, une action ou un résultat. Certains utilisateurs peuvent rencontrer des difficultés à distinguer les couleurs. Bien entendu, cette recommandation ne vise pas à interdire l'utilisation des couleurs, elle indique simplement que ce ne doit pas être le seul moyen de fournir une information (voir l'article sur Ies couleurs et le contraste pour plus d'informations).
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Colors', '#colorunits', '<color>')}} | +{{Spec2('CSS4 Colors')}} | +Ajout de la couleur rebeccapurple, de la notation hexadécimale sur quatre chiffres (#RGBA) et sur huit chiffres (#RRGGBBAA). rgba() et hsla() sont désormais synonymes de rgb() et hsl(), les paramètres des fonctions peuvent être séparés par des espaces plutôt que ds virgules, les valeurs de transparence (alpha) peuvent être exprimées en pourcentages et les valeurs de teinte avec un angle. |
+
| {{SpecName('CSS3 Colors', '#colorunits', '<color>')}} | +{{Spec2('CSS3 Colors')}} | +Les couleurs système sont désormais dépréciée. Les couleurs SVG sont ajoutées ainsi que les notations fonctionnelles rgba(), hsl(), hsla(). |
+
| {{SpecName('CSS2.1', 'syndata.html#value-def-color', '<color>')}} | +{{Spec2('CSS2.1')}} | +Ajout de la couleur orange et des couleurs système. |
+
| {{SpecName('CSS1', '#color-units', '<color>')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{Compat("css.properties.color")}}
+ +La propriété column-count décrit le nombre de colonnes d'un élément lorsqu'on utilise une disposition en colonnes.
/* Valeurs avec un mot-clé */ -column-count: auto; - -/* Valeurs numériques */ -/* Type <number> */ -column-count: 3; - -/* Valeurs globales */ -column-count: inherit; -column-count: initial; -column-count: unset; -- -
auto<number>auto, cette propriété indique simplement le nombre maximal de colonnes autorisé..exemple {
- border: 10px solid #000000;
- column-count:3;
-}
-
-<p class="exemple"> - « Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. » - « Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. » -</p>- -
{{EmbedLiveSample("Exemples","800","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#cc', 'column-count')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-count")}}
- -La propriété column-count décrit le nombre de colonnes d'un élément lorsqu'on utilise une disposition en colonnes.
/* Valeurs avec un mot-clé */ +column-count: auto; + +/* Valeurs numériques */ +/* Type <number> */ +column-count: 3; + +/* Valeurs globales */ +column-count: inherit; +column-count: initial; +column-count: unset; ++ +
auto<number>auto, cette propriété indique simplement le nombre maximal de colonnes autorisé..exemple {
+ border: 10px solid #000000;
+ column-count:3;
+}
+
+<p class="exemple"> + « Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. » + « Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. » +</p>+ +
{{EmbedLiveSample("Exemples","800","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#cc', 'column-count')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-count")}}
+ +La propriété column-fill permet de contrôler la façon dont le contenu est réparti entre les colonnes. Le contenu peut être équilibré (afin de prendre la même hauteur sur toutes les colonnes) ou être réparti de façon automatique (avec auto) et remplir l'espace nécessaire.
/* Valeurs avec un mot-clé */ -column-fill: auto; -column-fill: balance; -column-fill: balance-all; - -/* Valeurs globales */ -column-fill: inherit; -column-fill: initial; -column-fill: unset; -- -
Cette propriété est définie grâce à l'un des mots-clés définis ci-après.
- -autobalancebalance-all.exemple {
- border: 10px solid #000000;
- column-count:3;
- column-fill: balance;
-}
-
-<p class="exemple"> - « Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. » - « Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. » -</p>- -
{{EmbedLiveSample("Exemples","800","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#cf', 'column-fill')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-fill")}}
diff --git a/files/fr/web/css/column-fill/index.md b/files/fr/web/css/column-fill/index.md new file mode 100644 index 0000000000..9d27ef3d0e --- /dev/null +++ b/files/fr/web/css/column-fill/index.md @@ -0,0 +1,98 @@ +--- +title: column-fill +slug: Web/CSS/column-fill +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/column-fill +--- +La propriété column-fill permet de contrôler la façon dont le contenu est réparti entre les colonnes. Le contenu peut être équilibré (afin de prendre la même hauteur sur toutes les colonnes) ou être réparti de façon automatique (avec auto) et remplir l'espace nécessaire.
/* Valeurs avec un mot-clé */ +column-fill: auto; +column-fill: balance; +column-fill: balance-all; + +/* Valeurs globales */ +column-fill: inherit; +column-fill: initial; +column-fill: unset; ++ +
Cette propriété est définie grâce à l'un des mots-clés définis ci-après.
+ +autobalancebalance-all.exemple {
+ border: 10px solid #000000;
+ column-count:3;
+ column-fill: balance;
+}
+
+<p class="exemple"> + « Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. » + « Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. » +</p>+ +
{{EmbedLiveSample("Exemples","800","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#cf', 'column-fill')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-fill")}}
diff --git a/files/fr/web/css/column-gap/index.html b/files/fr/web/css/column-gap/index.html deleted file mode 100644 index d59b181788..0000000000 --- a/files/fr/web/css/column-gap/index.html +++ /dev/null @@ -1,200 +0,0 @@ ---- -title: column-gap -slug: Web/CSS/column-gap -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/column-gap ---- -La propriété column-gap permet de définir l'espace entre les colonnes d'un élément.
La propriété column-gap était initialement définie dans le module de spécification Multi-column Layout (disposition en colonnes). Cette définition a depuis été élargie afin de pouvoir être utilisée dans les différents modes de disposition et fait désormais partie du module de spécification Box Alignment. Cette propriété peut être utilisée pour les dispositions en colonnes, les dispositions flexibles ou les disposition en grille.
Note : Le module de spécification CSS Grid Layout définissait initialement la propriété grid-column-gap. Cette version préfixée a été remplacée par column-gap. Toutefois, à des fins de compatibilité envers les navigateurs qui ne prendraient pas en charge cette évolution, mieux vaut utiliser les deux versions (voir l'exemple interactif ci-avant).
/* Valeur avec un mot-clé */ -column-gap: normal; - -/* Valeurs de longueur */ -/* Type <length> */ -column-gap: 3px; -column-gap: 2.5em; - -/* Valeurs de pourcentage */ -/* Type <percentage> */ -column-gap: 3%; - -/* Valeurs globales */ -column-gap: inherit; -column-gap: initial; -column-gap: unset; -- -
normal1em, sinon elle correspond à 0.<length><percentage>{{SeeCompatTable}}
- -<div id="flexbox"> - <div></div> - <div></div> - <div></div> -</div>- -
#flexbox {
- display: flex;
- height: 100px;
- column-gap: 20px;
-}
-
-#flexbox > div {
- border: 1opx solid green;
- background-color: lime;
- flex: auto;
-}
-
-{{EmbedLiveSample("Disposition_flexible","auto","120px")}}
- -<p class="content-box"> - Un texte sur plusieurs colonnes avec une gouttière - de 40px paramétrée grâce à la propriété `column-gap`. - C'est plutôt pas mal comme effet non ? -</p> -- -
.content-box {
- column-count: 3;
- column-gap: 40px;
-}
-
-
-{{EmbedLiveSample("Disposition_en_colonnes", "auto", "120px")}}
- -<div id="grid"> - <div></div> - <div></div> - <div></div> -</div>- -
#grid {
- display: grid;
- height: 100px;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: 100px;
- column-gap: 20px;
-}
-
-#grid > div {
- background-color: lime;
-}
-
-
-
-
-{{EmbedLiveSample("Disposition_en_grille", "auto", "120px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#column-row-gap", "column-gap")}} | -{{Spec2("CSS3 Box Alignment")}} | -Applique cette propriété aux grilles et aux boîtes flexibles (flexbox). | -
| {{SpecName("CSS3 Grid", "#gutters", "column-gap")}} | -{{Spec2("CSS3 Grid")}} | -Définition de l'impact de cette propriété sur les dispositions en grille. | -
| {{SpecName("CSS3 Multicol", "#column-gap", "column-gap")}} | -{{Spec2("CSS3 Multicol")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-gap.flex_context")}}
- -{{Compat("css.properties.column-gap.grid_context")}}
- -{{Compat("css.properties.column-gap.multicol_context")}}
- -La propriété column-gap permet de définir l'espace entre les colonnes d'un élément.
La propriété column-gap était initialement définie dans le module de spécification Multi-column Layout (disposition en colonnes). Cette définition a depuis été élargie afin de pouvoir être utilisée dans les différents modes de disposition et fait désormais partie du module de spécification Box Alignment. Cette propriété peut être utilisée pour les dispositions en colonnes, les dispositions flexibles ou les disposition en grille.
Note : Le module de spécification CSS Grid Layout définissait initialement la propriété grid-column-gap. Cette version préfixée a été remplacée par column-gap. Toutefois, à des fins de compatibilité envers les navigateurs qui ne prendraient pas en charge cette évolution, mieux vaut utiliser les deux versions (voir l'exemple interactif ci-avant).
/* Valeur avec un mot-clé */ +column-gap: normal; + +/* Valeurs de longueur */ +/* Type <length> */ +column-gap: 3px; +column-gap: 2.5em; + +/* Valeurs de pourcentage */ +/* Type <percentage> */ +column-gap: 3%; + +/* Valeurs globales */ +column-gap: inherit; +column-gap: initial; +column-gap: unset; ++ +
normal1em, sinon elle correspond à 0.<length><percentage>{{SeeCompatTable}}
+ +<div id="flexbox"> + <div></div> + <div></div> + <div></div> +</div>+ +
#flexbox {
+ display: flex;
+ height: 100px;
+ column-gap: 20px;
+}
+
+#flexbox > div {
+ border: 1opx solid green;
+ background-color: lime;
+ flex: auto;
+}
+
+{{EmbedLiveSample("Disposition_flexible","auto","120px")}}
+ +<p class="content-box"> + Un texte sur plusieurs colonnes avec une gouttière + de 40px paramétrée grâce à la propriété `column-gap`. + C'est plutôt pas mal comme effet non ? +</p> ++ +
.content-box {
+ column-count: 3;
+ column-gap: 40px;
+}
+
+
+{{EmbedLiveSample("Disposition_en_colonnes", "auto", "120px")}}
+ +<div id="grid"> + <div></div> + <div></div> + <div></div> +</div>+ +
#grid {
+ display: grid;
+ height: 100px;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: 100px;
+ column-gap: 20px;
+}
+
+#grid > div {
+ background-color: lime;
+}
+
+
+
+
+{{EmbedLiveSample("Disposition_en_grille", "auto", "120px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#column-row-gap", "column-gap")}} | +{{Spec2("CSS3 Box Alignment")}} | +Applique cette propriété aux grilles et aux boîtes flexibles (flexbox). | +
| {{SpecName("CSS3 Grid", "#gutters", "column-gap")}} | +{{Spec2("CSS3 Grid")}} | +Définition de l'impact de cette propriété sur les dispositions en grille. | +
| {{SpecName("CSS3 Multicol", "#column-gap", "column-gap")}} | +{{Spec2("CSS3 Multicol")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-gap.flex_context")}}
+ +{{Compat("css.properties.column-gap.grid_context")}}
+ +{{Compat("css.properties.column-gap.multicol_context")}}
+ +La propriété column-rule-color permet de définir la couleur de la ligne tracée entre les colonnes lorsqu'on utilise une disposition en colonnes.
/* Valeurs de couleur */ -/* Type <color> */ -column-rule-color: red; -column-rule-color: rgb(192, 56, 78); -column-rule-color: transparent; -column-rule-color: hsla(0, 100%, 50%, 0.6); - -/* Valeurs globales */ -column-rule-color: inherit; -column-rule-color: initial; -column-rule-color: unset; -- -
<color>.exemple {
- border: 10px solid #000000;
-
- columns:3;
- column-rule-width: thick;
- column-rule-color: blue;
- column-rule-style: solid;
-}
-
-<p class=exemple> - « Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. » - « Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. » -</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#crc', 'column-rule-color')}} | -{{Spec2('CSS3 Multicol')}} | -- |
{{cssinfo}}
- -{{Compat("css.properties.column-rule-color")}}
- -La propriété column-rule-color permet de définir la couleur de la ligne tracée entre les colonnes lorsqu'on utilise une disposition en colonnes.
/* Valeurs de couleur */ +/* Type <color> */ +column-rule-color: red; +column-rule-color: rgb(192, 56, 78); +column-rule-color: transparent; +column-rule-color: hsla(0, 100%, 50%, 0.6); + +/* Valeurs globales */ +column-rule-color: inherit; +column-rule-color: initial; +column-rule-color: unset; ++ +
<color>.exemple {
+ border: 10px solid #000000;
+
+ columns:3;
+ column-rule-width: thick;
+ column-rule-color: blue;
+ column-rule-style: solid;
+}
+
+<p class=exemple> + « Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. » + « Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. » +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#crc', 'column-rule-color')}} | +{{Spec2('CSS3 Multicol')}} | ++ |
{{cssinfo}}
+ +{{Compat("css.properties.column-rule-color")}}
+ +La propriété column-rule-style permet de définir le style de la ligne tracée entre plusieurs colonnes lorsqu'on utilise une disposition en colonnes.
/* Valeurs avec un mot-clé */ -column-rule-style: none; -column-rule-style: hidden; -column-rule-style: dotted; -column-rule-style: dashed; -column-rule-style: solid; -column-rule-style: double; -column-rule-style: groove; -column-rule-style: ridge; -column-rule-style: inset; -column-rule-style: outset; - -/* Valeurs globales */ -column-rule-style: inherit; -column-rule-style: initial; -column-rule-style: unset; -- -
La propriété column-rule-style avec une valeur unique de type <br-style>.
<br-style> .exemple {
- border: 10px solid #000000;
-
- columns:3;
- column-rule-width: thick;
- column-rule-color: blue;
- column-rule-style: dashed;
-}
-
-<p class=exemple> - « Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. » - « Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. » -</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#crs', 'column-rule-style')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-rule-style")}}
diff --git a/files/fr/web/css/column-rule-style/index.md b/files/fr/web/css/column-rule-style/index.md new file mode 100644 index 0000000000..70bab31e69 --- /dev/null +++ b/files/fr/web/css/column-rule-style/index.md @@ -0,0 +1,104 @@ +--- +title: column-rule-style +slug: Web/CSS/column-rule-style +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/column-rule-style +--- +La propriété column-rule-style permet de définir le style de la ligne tracée entre plusieurs colonnes lorsqu'on utilise une disposition en colonnes.
/* Valeurs avec un mot-clé */ +column-rule-style: none; +column-rule-style: hidden; +column-rule-style: dotted; +column-rule-style: dashed; +column-rule-style: solid; +column-rule-style: double; +column-rule-style: groove; +column-rule-style: ridge; +column-rule-style: inset; +column-rule-style: outset; + +/* Valeurs globales */ +column-rule-style: inherit; +column-rule-style: initial; +column-rule-style: unset; ++ +
La propriété column-rule-style avec une valeur unique de type <br-style>.
<br-style> .exemple {
+ border: 10px solid #000000;
+
+ columns:3;
+ column-rule-width: thick;
+ column-rule-color: blue;
+ column-rule-style: dashed;
+}
+
+<p class=exemple> + « Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. » + « Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. » +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#crs', 'column-rule-style')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-rule-style")}}
diff --git a/files/fr/web/css/column-rule-width/index.html b/files/fr/web/css/column-rule-width/index.html deleted file mode 100644 index 27b3b4397a..0000000000 --- a/files/fr/web/css/column-rule-width/index.html +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: column-rule-width -slug: Web/CSS/column-rule-width -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/column-rule-width ---- -La propriété column-rule-width permet de définir la largeur du trait tracé entre les colonnes lorsqu'on utilise une disposition en colonnes.
/* Valeurs avec un mot-clé */ -column-rule-width: thin; -column-rule-width: medium; -column-rule-width: thick; - -/* Valeurs de longueurs */ -/* Type <length> */ -column-rule-width: 1px; -column-rule-width: 2.5em; - -/* Valeurs globales */ -column-rule-width: inherit; -column-rule-width: initial; -column-rule-width: unset; -- -
La propriété column-rule-width est définie grâce à une valeur de type <br-width>.
<br-width>thin, medium ou thick qui décrit l'épaisseur du trait séparant deux colonnes. C'est le type de valeur qui sera également utilisé pour la propriété {{cssxref("border-width")}}..exemple {
- border: 10px solid #000000;
- columns:3;
- column-rule-width: thick;
- column-rule-color: blue;
- column-rule-style: dashed;
-}
-
-<p class=exemple> - « Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. » - « Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. » -</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#crw', 'column-rule-width')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-rule-width")}}
diff --git a/files/fr/web/css/column-rule-width/index.md b/files/fr/web/css/column-rule-width/index.md new file mode 100644 index 0000000000..27b3b4397a --- /dev/null +++ b/files/fr/web/css/column-rule-width/index.md @@ -0,0 +1,101 @@ +--- +title: column-rule-width +slug: Web/CSS/column-rule-width +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/column-rule-width +--- +La propriété column-rule-width permet de définir la largeur du trait tracé entre les colonnes lorsqu'on utilise une disposition en colonnes.
/* Valeurs avec un mot-clé */ +column-rule-width: thin; +column-rule-width: medium; +column-rule-width: thick; + +/* Valeurs de longueurs */ +/* Type <length> */ +column-rule-width: 1px; +column-rule-width: 2.5em; + +/* Valeurs globales */ +column-rule-width: inherit; +column-rule-width: initial; +column-rule-width: unset; ++ +
La propriété column-rule-width est définie grâce à une valeur de type <br-width>.
<br-width>thin, medium ou thick qui décrit l'épaisseur du trait séparant deux colonnes. C'est le type de valeur qui sera également utilisé pour la propriété {{cssxref("border-width")}}..exemple {
+ border: 10px solid #000000;
+ columns:3;
+ column-rule-width: thick;
+ column-rule-color: blue;
+ column-rule-style: dashed;
+}
+
+<p class=exemple> + « Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. » + « Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. » +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#crw', 'column-rule-width')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-rule-width")}}
diff --git a/files/fr/web/css/column-rule/index.html b/files/fr/web/css/column-rule/index.html deleted file mode 100644 index 9ac19f4c6f..0000000000 --- a/files/fr/web/css/column-rule/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: column-rule -slug: Web/CSS/column-rule -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/column-rule ---- -Lorsqu'on utilise une disposition sur plusieurs colonnes, la propriété raccourcie column-rule permet de définir l'affichage d'une ligne droite (aussi appelée « règle ») entre chaque colonne.
Cette propriété est une propriété raccourcie qui permet de définir {{cssxref("column-rule-width")}}, {{cssxref("column-rule-style")}} et {{cssxref("column-rule-color")}} (plutôt que d'avoir à les définir une par une, ce qui est plus laborieux).
- -Note : Cette propriété étant une propriété raccourcie, elle surcharge toutes les déclarations avec les propriétés individuelles écrites avant au sein d'une même règle.
-/* Syntaxe avec des mots-clés */ -column-rule: dotted; -column-rule: solid blue; -column-rule: solid 8px; -column-rule: thick inset blue; - -/* Valeurs globales */ -column-rule: inherit; -column-rule: initial; -column-rule: unset; -- -
Cette propriété peut être définie avec une, deux ou trois valeurs telles que définies ci-après, dans n'importe quel ordre.
- -<'column-rule-width'>thin, medium ou thick. Pour plus de détails, voir {{cssxref("border-width")}}.<'column-rule-style'><'column-rule-color'><div id="col_rul"> - <p> column one </p> - <p> column two </p> - <p> column three </p> -</div> -- -
#col_rul{
- padding: 0.3em;
- background: gold;
- border: groove 2px gold;
- column-rule: inset 2px gold;
- column-count: 3;
-}
-
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#column-rule', 'column-rule')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-rule")}}
diff --git a/files/fr/web/css/column-rule/index.md b/files/fr/web/css/column-rule/index.md new file mode 100644 index 0000000000..9ac19f4c6f --- /dev/null +++ b/files/fr/web/css/column-rule/index.md @@ -0,0 +1,102 @@ +--- +title: column-rule +slug: Web/CSS/column-rule +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/column-rule +--- +Lorsqu'on utilise une disposition sur plusieurs colonnes, la propriété raccourcie column-rule permet de définir l'affichage d'une ligne droite (aussi appelée « règle ») entre chaque colonne.
Cette propriété est une propriété raccourcie qui permet de définir {{cssxref("column-rule-width")}}, {{cssxref("column-rule-style")}} et {{cssxref("column-rule-color")}} (plutôt que d'avoir à les définir une par une, ce qui est plus laborieux).
+ +Note : Cette propriété étant une propriété raccourcie, elle surcharge toutes les déclarations avec les propriétés individuelles écrites avant au sein d'une même règle.
+/* Syntaxe avec des mots-clés */ +column-rule: dotted; +column-rule: solid blue; +column-rule: solid 8px; +column-rule: thick inset blue; + +/* Valeurs globales */ +column-rule: inherit; +column-rule: initial; +column-rule: unset; ++ +
Cette propriété peut être définie avec une, deux ou trois valeurs telles que définies ci-après, dans n'importe quel ordre.
+ +<'column-rule-width'>thin, medium ou thick. Pour plus de détails, voir {{cssxref("border-width")}}.<'column-rule-style'><'column-rule-color'><div id="col_rul"> + <p> column one </p> + <p> column two </p> + <p> column three </p> +</div> ++ +
#col_rul{
+ padding: 0.3em;
+ background: gold;
+ border: groove 2px gold;
+ column-rule: inset 2px gold;
+ column-count: 3;
+}
+
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#column-rule', 'column-rule')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-rule")}}
diff --git a/files/fr/web/css/column-span/index.html b/files/fr/web/css/column-span/index.html deleted file mode 100644 index ab7508ea5b..0000000000 --- a/files/fr/web/css/column-span/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: column-span -slug: Web/CSS/column-span -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/column-span ---- -La propriété column-span permet à un élément de s'étendre sur toutes les colonnes lorsque la valeur de cette propriété est all. Un élément qui s'étend sur plus d'une colonne est appelé un élément étendu (spanning element).
/* Valeurs avec un mot-clé */ -column-span: none; -column-span: all; - -/* Valeurs globales */ -column-span: inherit; -column-span: initial; -column-span: unset; -- -
noneall.exemple {
- border: 10px solid #000000;
- columns:3;
-}
-
-h2 {
- column-span: all;
-}
-
-<div class=exemple> - « Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. » - <h2> La suite</h2> - « Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. » -</div>- -
{{EmbedLiveSample("Exemples","auto",120)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#column-span', 'column-span')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-span")}}
diff --git a/files/fr/web/css/column-span/index.md b/files/fr/web/css/column-span/index.md new file mode 100644 index 0000000000..ab7508ea5b --- /dev/null +++ b/files/fr/web/css/column-span/index.md @@ -0,0 +1,97 @@ +--- +title: column-span +slug: Web/CSS/column-span +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/column-span +--- +La propriété column-span permet à un élément de s'étendre sur toutes les colonnes lorsque la valeur de cette propriété est all. Un élément qui s'étend sur plus d'une colonne est appelé un élément étendu (spanning element).
/* Valeurs avec un mot-clé */ +column-span: none; +column-span: all; + +/* Valeurs globales */ +column-span: inherit; +column-span: initial; +column-span: unset; ++ +
noneall.exemple {
+ border: 10px solid #000000;
+ columns:3;
+}
+
+h2 {
+ column-span: all;
+}
+
+<div class=exemple> + « Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. » + <h2> La suite</h2> + « Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. » +</div>+ +
{{EmbedLiveSample("Exemples","auto",120)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#column-span', 'column-span')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-span")}}
diff --git a/files/fr/web/css/column-width/index.html b/files/fr/web/css/column-width/index.html deleted file mode 100644 index ebc538bee6..0000000000 --- a/files/fr/web/css/column-width/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: column-width -slug: Web/CSS/column-width -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/column-width ---- -La propriété column-width définit une largeur de colonne idéale lorsqu'on utilise une disposition en colonnes. Aussi, on aura le plus de colonnes possible et pour lesquelles aucune n'est moins large que column-width. La colonne réelle peut être plus petite que cette taille si son conteneur est moins large que cette valeur.
Ainsi, si on a une colonne large de 300px avec un écart de 0px, on pourrait placer une seule colonne sur 599px mais avoir deux colonnes avec 600px. Ce réglage permet donc d'obtenir des effets qui s'adaptent aux différentes tailles d'écrans. Manipulée avec la propriété {{cssxref("column-count")}} qui a la précédence, il est nécessaire de définir toutes les valeurs de longueur pour avoir une largeur de colonne CSS exacte. Pour du texte horizontal, ces propriétés sont {{cssxref('width')}}, {{cssxref('column-width')}}, {{cssxref('column-gap')}} et {{cssxref('column-rule-width')}}.
- -/* Valeur avec un mot-clé */ -column-width: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -column-width: 60px; -column-width: 15.5em; -column-width: 3.3vw; - -/* Valeurs globales */ -column-width: inherit; -column-width: initial; -column-width: unset; -- -
<length>auto.content-box {
- border: 10px solid #0ff;
-
- -webkit-column-width: 100px;
- -moz-column-width: 100px;
- column-width: 100px;
-}
-
-<div class="content-box"> - Lorem ipsum dolor sit amet, consectetuer adipiscing elit, - sed diam nonummy nibh euismod tincidunt ut laoreet dolore - magna aliquam erat volutpat. Ut wisi enim ad minim veniam, - quis nostrud exerci tation ullamcorper suscipit lobortis - nisl ut aliquip ex ea commodo consequat. -</div>- -
{{EmbedLiveSample('Exemples', '300px', '200px')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Writing Modes', '#auto-multicol', 'column-width')}} | -{{Spec2('CSS4 Writing Modes')}} | -Ajoutes des tailles intrinsèques grâce aux mots-clés min-content, max-content, fill-available et fit-content. |
-
| {{SpecName('CSS3 Multicol', '#cw', 'column-width')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.column-width")}}
- -La propriété column-width définit une largeur de colonne idéale lorsqu'on utilise une disposition en colonnes. Aussi, on aura le plus de colonnes possible et pour lesquelles aucune n'est moins large que column-width. La colonne réelle peut être plus petite que cette taille si son conteneur est moins large que cette valeur.
Ainsi, si on a une colonne large de 300px avec un écart de 0px, on pourrait placer une seule colonne sur 599px mais avoir deux colonnes avec 600px. Ce réglage permet donc d'obtenir des effets qui s'adaptent aux différentes tailles d'écrans. Manipulée avec la propriété {{cssxref("column-count")}} qui a la précédence, il est nécessaire de définir toutes les valeurs de longueur pour avoir une largeur de colonne CSS exacte. Pour du texte horizontal, ces propriétés sont {{cssxref('width')}}, {{cssxref('column-width')}}, {{cssxref('column-gap')}} et {{cssxref('column-rule-width')}}.
+ +/* Valeur avec un mot-clé */ +column-width: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +column-width: 60px; +column-width: 15.5em; +column-width: 3.3vw; + +/* Valeurs globales */ +column-width: inherit; +column-width: initial; +column-width: unset; ++ +
<length>auto.content-box {
+ border: 10px solid #0ff;
+
+ -webkit-column-width: 100px;
+ -moz-column-width: 100px;
+ column-width: 100px;
+}
+
+<div class="content-box"> + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, + sed diam nonummy nibh euismod tincidunt ut laoreet dolore + magna aliquam erat volutpat. Ut wisi enim ad minim veniam, + quis nostrud exerci tation ullamcorper suscipit lobortis + nisl ut aliquip ex ea commodo consequat. +</div>+ +
{{EmbedLiveSample('Exemples', '300px', '200px')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Writing Modes', '#auto-multicol', 'column-width')}} | +{{Spec2('CSS4 Writing Modes')}} | +Ajoutes des tailles intrinsèques grâce aux mots-clés min-content, max-content, fill-available et fit-content. |
+
| {{SpecName('CSS3 Multicol', '#cw', 'column-width')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.column-width")}}
+ +Le combinateur de colonne (||) est placé entre deux sélecteurs CSS. Les éléments ciblés sont ceux ciblés par le deuxième sélecteur et qui appartiennent à un élément en colonne qui correspond au premier sélecteur.
/* Les cellules de tableaux qui appartiennent */
-/* à la colonne "selected" */
-col.selected || td {
- background: gray;
-}
-
-
-column-selector || cell-selector {
- /* propriétés pour le style */
-}
-
-
-<table border="1"> - <colgroup> - <col span="2"/> - <col class="selected"/> - </colgroup> - <tbody> - <tr> - <td>A - <td>B - <td>C - </tr> - <tr> - <td colspan="2">D</td> - <td>E</td> - </tr> - <tr> - <td>F</td> - <td colspan="2">G</td> - </tr> - </tbody> -</table>- -
col.selected || td {
- background: gray;
- color: white;
- font-weight: bold;
-}
-
-{{EmbedLiveSample("Exemples", "100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Selectors", "#the-column-combinator", "column combinator")}} | -{{Spec2("CSS4 Selectors")}} | -Définition initiale. | -
{{Compat("javascript.builtins.Array.sort")}}
- -Le combinateur de colonne (||) est placé entre deux sélecteurs CSS. Les éléments ciblés sont ceux ciblés par le deuxième sélecteur et qui appartiennent à un élément en colonne qui correspond au premier sélecteur.
/* Les cellules de tableaux qui appartiennent */
+/* à la colonne "selected" */
+col.selected || td {
+ background: gray;
+}
+
+
+column-selector || cell-selector {
+ /* propriétés pour le style */
+}
+
+
+<table border="1"> + <colgroup> + <col span="2"/> + <col class="selected"/> + </colgroup> + <tbody> + <tr> + <td>A + <td>B + <td>C + </tr> + <tr> + <td colspan="2">D</td> + <td>E</td> + </tr> + <tr> + <td>F</td> + <td colspan="2">G</td> + </tr> + </tbody> +</table>+ +
col.selected || td {
+ background: gray;
+ color: white;
+ font-weight: bold;
+}
+
+{{EmbedLiveSample("Exemples", "100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Selectors", "#the-column-combinator", "column combinator")}} | +{{Spec2("CSS4 Selectors")}} | +Définition initiale. | +
{{Compat("javascript.builtins.Array.sort")}}
+ +La propriété columns est une propriété raccourcie permettant de définir les deux propriétés {{cssxref('column-width')}} (qui définit la largeur des colonnes) et {{cssxref("column-count")}} (qui définit le nombre de colonnes) en même temps.
Comme pour toute propriété raccourcie, toute propriété détaillée qui n'est pas définie se voit réinitialisée à sa valeur par défaut (surchargeant ainsi les éventuelles règles déclarées avant).
- -/* Largeur */ -columns: 18em; - -/* Nombre de colonnes */ -columns: 1; -columns: auto; - -/* Combinaison d'une largeur et d'un nombre */ -columns: 1 auto; -columns: auto 12em; -columns: auto auto; - - -/* Valeurs globales */ -columns: inherit; -columns: initial; -columns: unset; -- -
La propriété columns se définit avec un ou deux valeurs parmi celles décrites ci-après. L'ordre de ces valeurs n'a pas d'importance.
<'column-width'><'column-count'>.exemple {
- margin: 0;
- height: 90px;
- border: 3px solid black;
- columns: 3;
-}
-
-<p class=exemple> - « Mais alors, » pensa Alice, « ne serai-je donc - jamais plus vieille que je ne le suis maintenant ? - D’un côté cela aura ses avantages, ne jamais être - une vieille femme. Mais alors avoir toujours des - leçons à apprendre ! Oh, je n’aimerais pas cela du - tout. » - « Oh ! Alice, petite folle, » se répondit-elle. - « Comment pourriez-vous apprendre des leçons ici ? - Il y a à peine de la place pour vous, et il n’y en - a pas du tout pour vos livres de leçons. » -</p>- -
{{EmbedLiveSample("Exemples",300,120)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol', '#columns', 'columns')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.columns")}}
diff --git a/files/fr/web/css/columns/index.md b/files/fr/web/css/columns/index.md new file mode 100644 index 0000000000..f13537bfe4 --- /dev/null +++ b/files/fr/web/css/columns/index.md @@ -0,0 +1,108 @@ +--- +title: columns +slug: Web/CSS/columns +tags: + - CSS + - Propriété + - Propriété raccourcie + - Reference +translation_of: Web/CSS/columns +--- +La propriété columns est une propriété raccourcie permettant de définir les deux propriétés {{cssxref('column-width')}} (qui définit la largeur des colonnes) et {{cssxref("column-count")}} (qui définit le nombre de colonnes) en même temps.
Comme pour toute propriété raccourcie, toute propriété détaillée qui n'est pas définie se voit réinitialisée à sa valeur par défaut (surchargeant ainsi les éventuelles règles déclarées avant).
+ +/* Largeur */ +columns: 18em; + +/* Nombre de colonnes */ +columns: 1; +columns: auto; + +/* Combinaison d'une largeur et d'un nombre */ +columns: 1 auto; +columns: auto 12em; +columns: auto auto; + + +/* Valeurs globales */ +columns: inherit; +columns: initial; +columns: unset; ++ +
La propriété columns se définit avec un ou deux valeurs parmi celles décrites ci-après. L'ordre de ces valeurs n'a pas d'importance.
<'column-width'><'column-count'>.exemple {
+ margin: 0;
+ height: 90px;
+ border: 3px solid black;
+ columns: 3;
+}
+
+<p class=exemple> + « Mais alors, » pensa Alice, « ne serai-je donc + jamais plus vieille que je ne le suis maintenant ? + D’un côté cela aura ses avantages, ne jamais être + une vieille femme. Mais alors avoir toujours des + leçons à apprendre ! Oh, je n’aimerais pas cela du + tout. » + « Oh ! Alice, petite folle, » se répondit-elle. + « Comment pourriez-vous apprendre des leçons ici ? + Il y a à peine de la place pour vous, et il n’y en + a pas du tout pour vos livres de leçons. » +</p>+ +
{{EmbedLiveSample("Exemples",300,120)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol', '#columns', 'columns')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.columns")}}
diff --git a/files/fr/web/css/comments/index.html b/files/fr/web/css/comments/index.html deleted file mode 100644 index 1176e56c99..0000000000 --- a/files/fr/web/css/comments/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Commentaires -slug: Web/CSS/Comments -tags: - - CSS - - Débutant - - Reference -translation_of: Web/CSS/Comments ---- -Les commentaires sont utilisés afin d'ajouter des notes explicatives ou pour empêcher le navigateur d'interpréter certaines parties de la feuille de style. Les commentaires n'ont donc aucun impact sur la disposition d'un document.
- -On peut utiliser des commentaires à chaque endroit où un blanc est autorisé.
- -/* Commentaire */ -- -
/* Commentaire sur une ligne */
-
-/*
-Commentaire
-sur plusieurs
-lignes
-*/
-
-
-/* Le commentaire qui suit permet
- de désactiver une règle */
-/*
-span {
- color: blue;
- font-size: 1.5em;
-}
-*/
-
-
-La syntaxe des commentaires avec /* */ est utilisée pour étaler un commentaire sur une ou plusieurs lignes. On ne peut pas utiliser d'autres moyens pour les commentaires dans une feuille de style externe. Lorsqu'on utilise l'élément {{HTMLElement("style")}}, on peut utiliser les commentaires HTML <!-- --> pour masquer du CSS sur des navigateurs plus anciens mais cela n'est pas une méthode recommandée.
À l'instar des autres langages de programmation programmation qui utilisent /* */ pour les commentaires, il est impossible de les imbriquer. Autrement dit, la première apparition de */ suivant un /*, ferme le commentaire.
Les commentaires sont utilisés afin d'ajouter des notes explicatives ou pour empêcher le navigateur d'interpréter certaines parties de la feuille de style. Les commentaires n'ont donc aucun impact sur la disposition d'un document.
+ +On peut utiliser des commentaires à chaque endroit où un blanc est autorisé.
+ +/* Commentaire */ ++ +
/* Commentaire sur une ligne */
+
+/*
+Commentaire
+sur plusieurs
+lignes
+*/
+
+
+/* Le commentaire qui suit permet
+ de désactiver une règle */
+/*
+span {
+ color: blue;
+ font-size: 1.5em;
+}
+*/
+
+
+La syntaxe des commentaires avec /* */ est utilisée pour étaler un commentaire sur une ou plusieurs lignes. On ne peut pas utiliser d'autres moyens pour les commentaires dans une feuille de style externe. Lorsqu'on utilise l'élément {{HTMLElement("style")}}, on peut utiliser les commentaires HTML <!-- --> pour masquer du CSS sur des navigateurs plus anciens mais cela n'est pas une méthode recommandée.
À l'instar des autres langages de programmation programmation qui utilisent /* */ pour les commentaires, il est impossible de les imbriquer. Autrement dit, la première apparition de */ suivant un /*, ferme le commentaire.
Compositing and Blending (Composition et fusion) est un module de la spécification CSS qui définit la façon dont les formes de différents éléments sont combinés afin de former une seule image.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("Compositing")}} | -{{Spec2("Compositing")}} | -Définition initiale. | -
background-blend-mode{{Compat("css.properties.background-blend-mode")}}
- -isolation{{Compat("css.properties.isolation")}}
- -mix-blend-mode{{Compat("css.properties.mix-blend-mode")}}
diff --git a/files/fr/web/css/compositing_and_blending/index.md b/files/fr/web/css/compositing_and_blending/index.md new file mode 100644 index 0000000000..721ca17ac9 --- /dev/null +++ b/files/fr/web/css/compositing_and_blending/index.md @@ -0,0 +1,63 @@ +--- +title: Compositing and Blending +slug: Web/CSS/Compositing_and_Blending +tags: + - Aperçu + - CSS + - Compositing and Blending + - Overview + - Reference +translation_of: Web/CSS/Compositing_and_Blending +--- +Compositing and Blending (Composition et fusion) est un module de la spécification CSS qui définit la façon dont les formes de différents éléments sont combinés afin de former une seule image.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("Compositing")}} | +{{Spec2("Compositing")}} | +Définition initiale. | +
background-blend-mode{{Compat("css.properties.background-blend-mode")}}
+ +isolation{{Compat("css.properties.isolation")}}
+ +mix-blend-mode{{Compat("css.properties.mix-blend-mode")}}
diff --git a/files/fr/web/css/computed_value/index.html b/files/fr/web/css/computed_value/index.html deleted file mode 100644 index 606b16f92c..0000000000 --- a/files/fr/web/css/computed_value/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Valeur calculée -slug: Web/CSS/computed_value -tags: - - CSS - - Reference -translation_of: Web/CSS/computed_value -original_slug: Web/CSS/Valeur_calculée ---- -La valeur calculée d'une propriété CSS est calculée à partir de la valeur définie :
- -Les calculs utilisés pour obtenir la valeur calculée correspondent généralement à la conversion des valeurs relatives (exprimées dans des unités relatives comme em ou en pourcentages) en valeur absolue. Ainsi, si un élément possède les valeurs spécifiées suivantes font-size: 16px et padding-top: 2em. La valeur calculée de la propriété padding-top sera 32px (on double la taille de la police).
Cependant, pour certaines propriétés (celles où les pourcentages sont relatifs à quelque chose lié à la disposition comme width, margin-right, text-indent, et top), les valeurs spécifiées exprimées en pourcentages deviennent des valeurs calculées exprimées en pourcentages. De plus, les nombres sans unité utilisés pour la propriété line-height sont également utilisés comme valeurs calculées. Ces valeurs relatives sont résolues en valeurs absolues lorsqu'on détermine les valeurs utilisées.
Le principal intérêt de la valeur calculée (en dehors de la gestion du passage de la valeur spécifiée à la valeur utilisée) est l'héritage, notamment grâce au mot-clé {{cssxref("inherit")}}.
- -Note : La méthode du DOM {{domxref("Window.getComputedStyle", "getComputedStyle()")}} renvoie la valeur résolue qui correspond à la valeur calculée ou à la valeur utilisée selon la propriété.
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS2.2", "cascade.html#computed-value", "computed-value")}} | -{{Spec2("CSS2.2")}} | -- |
| {{SpecName("CSS2.1", "cascade.html#computed-value", "computed value")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
La valeur calculée d'une propriété CSS est calculée à partir de la valeur définie :
+ +Les calculs utilisés pour obtenir la valeur calculée correspondent généralement à la conversion des valeurs relatives (exprimées dans des unités relatives comme em ou en pourcentages) en valeur absolue. Ainsi, si un élément possède les valeurs spécifiées suivantes font-size: 16px et padding-top: 2em. La valeur calculée de la propriété padding-top sera 32px (on double la taille de la police).
Cependant, pour certaines propriétés (celles où les pourcentages sont relatifs à quelque chose lié à la disposition comme width, margin-right, text-indent, et top), les valeurs spécifiées exprimées en pourcentages deviennent des valeurs calculées exprimées en pourcentages. De plus, les nombres sans unité utilisés pour la propriété line-height sont également utilisés comme valeurs calculées. Ces valeurs relatives sont résolues en valeurs absolues lorsqu'on détermine les valeurs utilisées.
Le principal intérêt de la valeur calculée (en dehors de la gestion du passage de la valeur spécifiée à la valeur utilisée) est l'héritage, notamment grâce au mot-clé {{cssxref("inherit")}}.
+ +Note : La méthode du DOM {{domxref("Window.getComputedStyle", "getComputedStyle()")}} renvoie la valeur résolue qui correspond à la valeur calculée ou à la valeur utilisée selon la propriété.
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS2.2", "cascade.html#computed-value", "computed-value")}} | +{{Spec2("CSS2.2")}} | ++ |
| {{SpecName("CSS2.1", "cascade.html#computed-value", "computed value")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
La propriété CSS contain permet d'indiquer qu'un élément, ainsi que son contenu, sont, autant que possible, indépendants du reste de l'arbre du document. Cela permet au navigateur de recalculer la disposition, la mise en forme, la taille, les peintures ou toute combinaison de ces éléments pour une zone donnée du DOM plutôt que pour la page complète.
/* Valeurs avec un mot-clé */ -contain: none; -contain: strict; -contain: content; -contain: size; -contain: layout; -contain: style; -contain: paint; - -/* Valeurs globales */ -contain: inherit; -contain: initial; -contain: unset; -- -
Cette propriété s'avère utile pour les pages qui contiennent de nombreux composants indépendants et permet de limiter la portée des règles sur le reste de la page.
- -Note : Lorsqu'elle est appliquée avec une valeur paint, strict ou content, cette propriété crée :
fixed)nonestrictstyle sont appliquées. Cela correspond à contain: size layout paint.contentsize et style, sont appliquées à l'élément. Cela est équivalent à contain: layout paint.sizelayoutstylepaint| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Containment')}} | -{{Spec2('CSS Containment')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.contain")}}
- -La propriété CSS contain permet d'indiquer qu'un élément, ainsi que son contenu, sont, autant que possible, indépendants du reste de l'arbre du document. Cela permet au navigateur de recalculer la disposition, la mise en forme, la taille, les peintures ou toute combinaison de ces éléments pour une zone donnée du DOM plutôt que pour la page complète.
/* Valeurs avec un mot-clé */ +contain: none; +contain: strict; +contain: content; +contain: size; +contain: layout; +contain: style; +contain: paint; + +/* Valeurs globales */ +contain: inherit; +contain: initial; +contain: unset; ++ +
Cette propriété s'avère utile pour les pages qui contiennent de nombreux composants indépendants et permet de limiter la portée des règles sur le reste de la page.
+ +Note : Lorsqu'elle est appliquée avec une valeur paint, strict ou content, cette propriété crée :
fixed)nonestrictstyle sont appliquées. Cela correspond à contain: size layout paint.contentsize et style, sont appliquées à l'élément. Cela est équivalent à contain: layout paint.sizelayoutstylepaint| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Containment')}} | +{{Spec2('CSS Containment')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.contain")}}
+ +Le bloc englobant (containing block) affecte souvent la taille et la position d'un élément. La plupart du temps, le bloc englobant est la zone de contenu de l'ancêtre de bloc le plus proche mais cette règle n'est pas absolue. Dans cet article, nous verrons les différents facteurs qui participent à la définition du bloc englobant.
- -Lorsqu'un agent utilisateur (un navigateur web par exemple) dispose un document, il génère une boîte pour chaque élément du document. Chaque boîte est divisée en quatre zones :
- -
Note : Voir cet article pour découvrir le modèle de boîtes en CSS.
-On pourrait penser que le bloc englobant d'un élément est toujours la zone de contenu de son élément parent. Toutefois, ce n'est pas toujours le cas. Voyons donc les facteurs qui déterminent ce bloc englobant.
- -Avant d'aller plus loin, voyons l'impact du bloc englobant sur un élément.
- -Les dimensions et la position d'un élément sont souvent dépendants du bloc englobant. Les valeurs en pourcentages appliquées à des propriétés comme {{cssxref("width")}}, {{cssxref("height")}}, {{cssxref("padding")}}, {{cssxref("margin")}} sont calculées relativement à la taille du bloc englobant. Il en va de même pour les propriétés de décalage des éléments positionnés de façon absolue (c'est-à-dire avec {{cssxref("position")}} qui vaut absolute ou fixed).
Le bloc englobant est entièrement déterminé par la valeur de la propriété {{cssxref("position")}} pour l'élément :
- -position vaut static, relative ou sticky, le bloc englobant est constitué par le bord de la boîte de contenu de l'ancêtre le plus proche qui est un conteneur de bloc (c'est-à-dire qui est un élément avec display qui vaut inline-block, block ou list-item) ou qui crée un contexte de formatage (tel qu'un conteneur de tableau, un conteneur flexible, un conteneur de grille ou le conteneur du bloc même).position vaut absolute, le bloc englobant est constitué par le bord de la boîte de remplissage (padding) de l'ancêtre le plus proche dont la valeur de position est différente de static (fixed, absolute, relative ou sticky).position vaut fixed, le bloc englobant est formé par le {{glossary("viewport")}} (ou la page dans le cas des média paginés).position vaut absolute ou fixed, le bloc englobant peut également être constitué par le bord de la boîte de remplissage le plus proche qui a :
- nonetransform ou perspectivenone ou une propriété will-change différente of filter (ne fonctionne que pour Firefox).paint.Note : Le bloc englobant contenant l'élément racine ({{HTMLElement("html")}}) est situé dans un rectangle appelé bloc englobant initial. Ce dernier a les dimensions de la zone d'affichage (viewport) ou de la page (pour les média paginés).
-Comme mentionné ci-avant, lorsque certaines propriétés ont une valeur en pourcentage, la valeur calculée dépend du bloc contenant l'élément. Les propriétés qui fonctionnent de cette manière sont les propriétés box model et offset :
- -width) du bloc englobant.Le code HTML utilisé pour les exemples suivants sera :
- -<body> - <section> - <p>Et voici un paragraphe !</p> - </section> -</body> -- -
Dans cet exemple, le paragraphe est positionné de façon statique et son bloc englobant est la zone de contenu de {{HTMLElement("section")}} car cet élément est l'ancêtre le plus proche qui est un conteneur de bloc.
- - - -body {
- background: beige;
-}
-
-section {
- display: block;
- width: 400px;
- height: 160px;
- background: lightgray;
-}
-
-p {
- width: 50%; /* == 400px * .5 = 200px */
- height: 25%; /* == 160px * .25 = 40px */
- margin: 5%; /* == 400px * .05 = 20px */
- padding: 5%; /* == 400px * .05 = 20px */
- background: cyan;
-}
-
-
-{{EmbedLiveSample('Premier_exemple','100%','300')}}
- -Dans cet exemple, le bloc englobant est formé par l'élément {{HTMLElement("body")}} car <section> n'est pas un conteneur de bloc en raison de display: inline et il ne crée pas de contexte de formatage.
<body> - <section> - <p>Et voici un paragraphe !</p> - </section> -</body> -- -
body {
- background: beige;
-}
-
-section {
- display: inline;
- background: lightgray;
-}
-
-p {
- width: 50%; /* == half the body's width */
- height: 200px; /* Note: a percentage would be 0 */
- background: cyan;
-}
-
-
-{{EmbedLiveSample('Deuxième_exemple','100%','300')}}
- -Ici, le bloc englobant du paragraphe est <section> car la propriété position de ce dernier vaut absolute. Les valeurs exprimées en pourcentages et associées au paragraphe sont relatives à la zone de remplissage du bloc englobant (ce ne serait pas le cas si la propriété {{cssxref("box-sizing")}} du bloc englobant valait border-box).
body {
- background: beige;
-}
-
-section {
- position: absolute;
- left: 30px;
- top: 30px;
- width: 400px;
- height: 160px;
- padding: 30px 20px;
- background: lightgray;
-}
-
-p {
- position: absolute;
- width: 50%; /* == (400px + 20px + 20px) * .5 = 220px */
- height: 25%; /* == (160px + 30px + 30px) * .25 = 55px */
- margin: 5%; /* == (400px + 20px + 20px) * .05 = 22px */
- padding: 5%; /* == (400px + 20px + 20px) * .05 = 22px */
- background: cyan;
-}
-
-
-{{EmbedLiveSample('Troisième_exemple','100%','300')}}
- -Dans cet exemple, la propriété position du paragraphe vaut fixed. Le bloc englobant est donc le bloc englobant initial (c'est-à-dire le viewport pour les écrans). Aussi, les dimensions du paragraphe changent selon la taille de la fenêtre du navigateur.
body {
- background: beige;
-}
-
-section {
- width: 400px;
- height: 480px;
- margin: 30px;
- padding: 15px;
- background: lightgray;
-}
-
-p {
- position: fixed;
- width: 50%; /* == (50vw - (width of vertical scrollbar)) */
- height: 50%; /* == (50vh - (height of horizontal scrollbar)) */
- margin: 5%; /* == (5vw - (width of vertical scrollbar)) */
- padding: 5%; /* == (5vw - (width of vertical scrollbar)) */
- background: cyan;
-}
-
-
-{{EmbedLiveSample('Quatrième_exemple','100%','300')}}
- -Dans cet exemple, la propriété position du paragraphe vaut absolute. Son bloc englobant est donc <section> car c'est l'ancêtre le plus proche dont la propriété {{cssxref("transform")}} ne vaut pas none.
body {
- background: beige;
-}
-
-section {
- transform: rotate(0deg);
- width: 400px;
- height: 160px;
- background: lightgray;
-}
-
-p {
- position: absolute;
- left: 80px;
- top: 30px;
- width: 50%; /* == 200px */
- height: 25%; /* == 40px */
- margin: 5%; /* == 20px */
- padding: 5%; /* == 20px */
- background: cyan;
-}
-
-
-{{EmbedLiveSample('Cinquième_exemple','100%','300')}}
- -Le bloc englobant (containing block) affecte souvent la taille et la position d'un élément. La plupart du temps, le bloc englobant est la zone de contenu de l'ancêtre de bloc le plus proche mais cette règle n'est pas absolue. Dans cet article, nous verrons les différents facteurs qui participent à la définition du bloc englobant.
+ +Lorsqu'un agent utilisateur (un navigateur web par exemple) dispose un document, il génère une boîte pour chaque élément du document. Chaque boîte est divisée en quatre zones :
+ +
Note : Voir cet article pour découvrir le modèle de boîtes en CSS.
+On pourrait penser que le bloc englobant d'un élément est toujours la zone de contenu de son élément parent. Toutefois, ce n'est pas toujours le cas. Voyons donc les facteurs qui déterminent ce bloc englobant.
+ +Avant d'aller plus loin, voyons l'impact du bloc englobant sur un élément.
+ +Les dimensions et la position d'un élément sont souvent dépendants du bloc englobant. Les valeurs en pourcentages appliquées à des propriétés comme {{cssxref("width")}}, {{cssxref("height")}}, {{cssxref("padding")}}, {{cssxref("margin")}} sont calculées relativement à la taille du bloc englobant. Il en va de même pour les propriétés de décalage des éléments positionnés de façon absolue (c'est-à-dire avec {{cssxref("position")}} qui vaut absolute ou fixed).
Le bloc englobant est entièrement déterminé par la valeur de la propriété {{cssxref("position")}} pour l'élément :
+ +position vaut static, relative ou sticky, le bloc englobant est constitué par le bord de la boîte de contenu de l'ancêtre le plus proche qui est un conteneur de bloc (c'est-à-dire qui est un élément avec display qui vaut inline-block, block ou list-item) ou qui crée un contexte de formatage (tel qu'un conteneur de tableau, un conteneur flexible, un conteneur de grille ou le conteneur du bloc même).position vaut absolute, le bloc englobant est constitué par le bord de la boîte de remplissage (padding) de l'ancêtre le plus proche dont la valeur de position est différente de static (fixed, absolute, relative ou sticky).position vaut fixed, le bloc englobant est formé par le {{glossary("viewport")}} (ou la page dans le cas des média paginés).position vaut absolute ou fixed, le bloc englobant peut également être constitué par le bord de la boîte de remplissage le plus proche qui a :
+ nonetransform ou perspectivenone ou une propriété will-change différente of filter (ne fonctionne que pour Firefox).paint.Note : Le bloc englobant contenant l'élément racine ({{HTMLElement("html")}}) est situé dans un rectangle appelé bloc englobant initial. Ce dernier a les dimensions de la zone d'affichage (viewport) ou de la page (pour les média paginés).
+Comme mentionné ci-avant, lorsque certaines propriétés ont une valeur en pourcentage, la valeur calculée dépend du bloc contenant l'élément. Les propriétés qui fonctionnent de cette manière sont les propriétés box model et offset :
+ +width) du bloc englobant.Le code HTML utilisé pour les exemples suivants sera :
+ +<body> + <section> + <p>Et voici un paragraphe !</p> + </section> +</body> ++ +
Dans cet exemple, le paragraphe est positionné de façon statique et son bloc englobant est la zone de contenu de {{HTMLElement("section")}} car cet élément est l'ancêtre le plus proche qui est un conteneur de bloc.
+ + + +body {
+ background: beige;
+}
+
+section {
+ display: block;
+ width: 400px;
+ height: 160px;
+ background: lightgray;
+}
+
+p {
+ width: 50%; /* == 400px * .5 = 200px */
+ height: 25%; /* == 160px * .25 = 40px */
+ margin: 5%; /* == 400px * .05 = 20px */
+ padding: 5%; /* == 400px * .05 = 20px */
+ background: cyan;
+}
+
+
+{{EmbedLiveSample('Premier_exemple','100%','300')}}
+ +Dans cet exemple, le bloc englobant est formé par l'élément {{HTMLElement("body")}} car <section> n'est pas un conteneur de bloc en raison de display: inline et il ne crée pas de contexte de formatage.
<body> + <section> + <p>Et voici un paragraphe !</p> + </section> +</body> ++ +
body {
+ background: beige;
+}
+
+section {
+ display: inline;
+ background: lightgray;
+}
+
+p {
+ width: 50%; /* == half the body's width */
+ height: 200px; /* Note: a percentage would be 0 */
+ background: cyan;
+}
+
+
+{{EmbedLiveSample('Deuxième_exemple','100%','300')}}
+ +Ici, le bloc englobant du paragraphe est <section> car la propriété position de ce dernier vaut absolute. Les valeurs exprimées en pourcentages et associées au paragraphe sont relatives à la zone de remplissage du bloc englobant (ce ne serait pas le cas si la propriété {{cssxref("box-sizing")}} du bloc englobant valait border-box).
body {
+ background: beige;
+}
+
+section {
+ position: absolute;
+ left: 30px;
+ top: 30px;
+ width: 400px;
+ height: 160px;
+ padding: 30px 20px;
+ background: lightgray;
+}
+
+p {
+ position: absolute;
+ width: 50%; /* == (400px + 20px + 20px) * .5 = 220px */
+ height: 25%; /* == (160px + 30px + 30px) * .25 = 55px */
+ margin: 5%; /* == (400px + 20px + 20px) * .05 = 22px */
+ padding: 5%; /* == (400px + 20px + 20px) * .05 = 22px */
+ background: cyan;
+}
+
+
+{{EmbedLiveSample('Troisième_exemple','100%','300')}}
+ +Dans cet exemple, la propriété position du paragraphe vaut fixed. Le bloc englobant est donc le bloc englobant initial (c'est-à-dire le viewport pour les écrans). Aussi, les dimensions du paragraphe changent selon la taille de la fenêtre du navigateur.
body {
+ background: beige;
+}
+
+section {
+ width: 400px;
+ height: 480px;
+ margin: 30px;
+ padding: 15px;
+ background: lightgray;
+}
+
+p {
+ position: fixed;
+ width: 50%; /* == (50vw - (width of vertical scrollbar)) */
+ height: 50%; /* == (50vh - (height of horizontal scrollbar)) */
+ margin: 5%; /* == (5vw - (width of vertical scrollbar)) */
+ padding: 5%; /* == (5vw - (width of vertical scrollbar)) */
+ background: cyan;
+}
+
+
+{{EmbedLiveSample('Quatrième_exemple','100%','300')}}
+ +Dans cet exemple, la propriété position du paragraphe vaut absolute. Son bloc englobant est donc <section> car c'est l'ancêtre le plus proche dont la propriété {{cssxref("transform")}} ne vaut pas none.
body {
+ background: beige;
+}
+
+section {
+ transform: rotate(0deg);
+ width: 400px;
+ height: 160px;
+ background: lightgray;
+}
+
+p {
+ position: absolute;
+ left: 80px;
+ top: 30px;
+ width: 50%; /* == 200px */
+ height: 25%; /* == 40px */
+ margin: 5%; /* == 20px */
+ padding: 5%; /* == 20px */
+ background: cyan;
+}
+
+
+{{EmbedLiveSample('Cinquième_exemple','100%','300')}}
+ +{{CSSRef}}
- -La propriété CSS content-visibility détermine si un élément affiche son contenu ou non, tout en forçant un solide jeu de restrictions permettant aux agents utilisateurs de potentiellement omettre de larges pans de la mise en page et du travail de rendu jusqu'au moment où le contenu doit être affiché. Fondamentalement, cela permet à l'agent utilisateur d'éviter le travail de rendu d'un élément (comprenant sa mise en page et sa peinture) tant qu'il n'y en a pas besoin — ce qui accélère la vitesse de chargement de la page initiale.
/* Valeurs avec un mot-clé */ -content-visibility: visible; -content-visibility: hidden; -content-visibility: auto; - -/* Valeurs globales */ -content-visibility: inherit; -content-visibility: initial; -content-visibility: revert; -content-visibility: unset; -- -
visiblehiddendisplay: none sur ces contenus.autohidden, le contenu évité doit toujours être disponible normalement pour les fonctionnalités de l'agent utilisateur telles que la recherche au sein de la page, la navigation par ordre de tabulation, etc., et il est possible de les sélectionner ou d'y placer le focus.{{cssinfo}}
- -Les titres et les autres contenus seront supprimés par content-visibility s'ils sont considérés comme s'affichant en dehors de l'écran. Cela signifie que les utilisateurs de lecteurs d'écrans pourraient perdre le bénéfice d'avoir une page complète disponible à des fins de vocalisation.
Pour plus d'informations, consultez l'article Content-visibility and Accessible Semantics (en anglais).
- -L'exemple suivant montre l'utilisation de la valeur auto pour éviter la peinture et le rendu des sections situées en dehors de l'écran. Cela aide à la fois le chargement et les interactions sur la page, car le contenu situé en dehors de la fenêtre d'affichage n'est pas rendu.
<style>
-section {
- content-visibility: auto;
- contain-intrinsic-size: 0 500px;
-}
-
-<section>...
-<section>...
-<section>...
-<section>...
-...
-
-
-L'exemple suivant montre qu'il est possible de gérer la visibilité à l'aide d'un script. La valeur ajoutée de l'utilisation de content-visibility: hidden par exemple à la place de display: none est que le contenu rendu masqué avec content-visibility préservera l'état de son rendu. Cela signifie que si le contenu est à nouveau affiché, il sera rendu plus rapidement qu'en modifiant la propriété display.
<style>
-.hidden {
- content-visibility: hidden;
- /* lorsqu'il est masqué, nous voulons que la taille de l'élément soit la même que si celui-ci avait un élément enfant de 0x500 pixels */
- contain-intrinsic-size: 0 500px;
-}
-.visible {
- content-visibility: visible;
- /* ceci est ajouté afin d'éviter tout décalage de mise en page lors de la bascule entre .hidden et .visible */
- contain: style layout paint;
-}
-
-<div class=hidden>...
-<div class=visible>...
-<div class=hidden>...
-<div class=hidden>...
-
-
-{{Specifications}}
- -{{Compat}}
- -{{CSSRef}}
+ +La propriété CSS content-visibility détermine si un élément affiche son contenu ou non, tout en forçant un solide jeu de restrictions permettant aux agents utilisateurs de potentiellement omettre de larges pans de la mise en page et du travail de rendu jusqu'au moment où le contenu doit être affiché. Fondamentalement, cela permet à l'agent utilisateur d'éviter le travail de rendu d'un élément (comprenant sa mise en page et sa peinture) tant qu'il n'y en a pas besoin — ce qui accélère la vitesse de chargement de la page initiale.
/* Valeurs avec un mot-clé */ +content-visibility: visible; +content-visibility: hidden; +content-visibility: auto; + +/* Valeurs globales */ +content-visibility: inherit; +content-visibility: initial; +content-visibility: revert; +content-visibility: unset; ++ +
visiblehiddendisplay: none sur ces contenus.autohidden, le contenu évité doit toujours être disponible normalement pour les fonctionnalités de l'agent utilisateur telles que la recherche au sein de la page, la navigation par ordre de tabulation, etc., et il est possible de les sélectionner ou d'y placer le focus.{{cssinfo}}
+ +Les titres et les autres contenus seront supprimés par content-visibility s'ils sont considérés comme s'affichant en dehors de l'écran. Cela signifie que les utilisateurs de lecteurs d'écrans pourraient perdre le bénéfice d'avoir une page complète disponible à des fins de vocalisation.
Pour plus d'informations, consultez l'article Content-visibility and Accessible Semantics (en anglais).
+ +L'exemple suivant montre l'utilisation de la valeur auto pour éviter la peinture et le rendu des sections situées en dehors de l'écran. Cela aide à la fois le chargement et les interactions sur la page, car le contenu situé en dehors de la fenêtre d'affichage n'est pas rendu.
<style>
+section {
+ content-visibility: auto;
+ contain-intrinsic-size: 0 500px;
+}
+
+<section>...
+<section>...
+<section>...
+<section>...
+...
+
+
+L'exemple suivant montre qu'il est possible de gérer la visibilité à l'aide d'un script. La valeur ajoutée de l'utilisation de content-visibility: hidden par exemple à la place de display: none est que le contenu rendu masqué avec content-visibility préservera l'état de son rendu. Cela signifie que si le contenu est à nouveau affiché, il sera rendu plus rapidement qu'en modifiant la propriété display.
<style>
+.hidden {
+ content-visibility: hidden;
+ /* lorsqu'il est masqué, nous voulons que la taille de l'élément soit la même que si celui-ci avait un élément enfant de 0x500 pixels */
+ contain-intrinsic-size: 0 500px;
+}
+.visible {
+ content-visibility: visible;
+ /* ceci est ajouté afin d'éviter tout décalage de mise en page lors de la bascule entre .hidden et .visible */
+ contain: style layout paint;
+}
+
+<div class=hidden>...
+<div class=visible>...
+<div class=hidden>...
+<div class=hidden>...
+
+
+{{Specifications}}
+ +{{Compat}}
+ +La propriété content est utilisée avec les pseudo-éléments {{cssxref("::before")}} et {{cssxref("::after")}} afin de générer le contenu d'un élément. Les objets insérés via la propriété content sont des éléments remplacés anonymes.
/* Des mots-clés qui ne peuvent pas être mélangés
- avec d'autres valeurs */
-content: normal;
-content: none;
-
-/* Valeurs pour une image */
-content: url("http://www.example.com/test.png");
-content: linear-gradient(#e66465, #9198e5);
-
-/* Une valeur <string>, les caractères non-latin */
-/* doivent être échappées par ex. \000A9 for © */
-content: 'prefix';
-
-/* Valeurs utilisant un compteur */
-content: counter(compteur_chapitre);
-content: counter(compteur_section, ".");
-
-/* attr() lie à la valeur de l'attribut HTML */
-content: attr(value string);
-
-/* Mots-clés dépendant de langue */
-/* ou de la position */
-content: open-quote;
-content: close-quote;
-content: no-open-quote;
-content: no-close-quote;
-
-/* Sauf avec normal et none, on peut utiliser */
-/* plusieurs valeurs de façon simultanée */
-content: open-quote chapter_counter;
-
-/* Valeurs globales */
-content: inherit;
-content: initial;
-content: unset;
-
-
-nonenormalnone pour les pseudo-éléments :before et :after.\000A9 représentera par exemple le symbole ©).counter() ou counters() (cf. {{cssxref("CSS_Lists_and_Counters/Using_CSS_counters")}})decimal par défaut). La seconde a également deux formes : counters(name, string) ou counters(name, string, style). Le texte généré est la valeur de tous les compteurs d'un nom donné dans ce pseudo-élément, depuis le moins profond jusqu'au plus profond séparés par la chaîne définie. Les compteurs sont formatés selon le style indiqué (decimal par défaut). Voir la section sur les compteurs automatiques et sur la numérotation pour plus d'informations.attr(X)open-quote | close-quoteno-open-quote | no-close-quote<h1>5</h1> -<p> Commençons par une citation de Sir Tim Berners-Lee, - <q cite="http://www.w3.org/People/Berners-Lee/FAQ.html#Internet"> - I was lucky enough to invent the Web at the time when the Internet already existed - and had for a decade and a half.</q> We must understand that there is nothing fundamentally wrong with building on the contributions of others. -</p> - -<h1>6</h1> -<p> Citons le manifeste Mozilla - <q cite="http://www.mozilla.org/about/manifesto/"> - Internet est une ressource publique mondiale qui doit demeurer ouverte et accessible. -</p>- -
q {
- color: #00008B;
- font-style: italic;
-}
-
-q::before { content: open-quote }
-q::after { content: close-quote }
-
-h1::before { content: "Chapitre "; }
-
-{{EmbedLiveSample('Titres_et_citations', 460, 100)}}
- -<a href="http://www.mozilla.org/fr/">Accueil</a>- -
a::before{
- content: url(https://mozorg.cdn.mozilla.net/media/img/favicon.ico) " MOZILLA: ";
- font: x-small Arial,freeSans,sans-serif;
- color: gray;
-}
-
-{{EmbedLiveSample('Ajouter_une_icône_avant_un_lien', 200, 60)}}
- -<h2>Top des ventes</h2> -<ol> - <li>Thriller politique</li> - <li class="nouveaute">Histoires effrayantes</li> - <li>Ma biographie</li> - <li class="nouveaute">Bit-lit</li> -</ol>- -
.nouveaute::after {
- content: " Nouveau !";
- color: red;
-}
-
-{{EmbedLiveSample('Utiliser_les_classes', 300, 200)}}
- -Dans cet exemple, on insère une image avant chaque lien et on ajoute son identifiant après.
- -<ul> - <li><a id="moz" href="https://www.mozilla.org/">Page d'accueil Mozilla</a></li> - <li><a id="mdn" href="https://developer.mozilla.org/">Mozilla Developer Network</a></li> -</ul>- -
a {
- text-decoration: none;
- border-bottom: 3px dotted navy;
-}
-
-a::after {
- content: " (" attr(id) ")";
-}
-
-#moz::before {
- content: url("https://mozorg.cdn.mozilla.net/media/img/favicon.ico");
-}
-
-#mdn::before {
- content: url("https://mozorg.cdn.mozilla.net/files/7691/mdn-favicon16.ico");
-}
-
-li {
- margin: 1em;
-}
-
-{{EmbedLiveSample("Utiliser_les_attributs_d’images_et_d’élément", '100%', 160)}}
- -Dans cet exemple, on remplace le contenu d'un élément avec une image. Il est possible de remplacer le contenu d'un élément avec une valeur de type {{cssxref("<url>")}} ou {{cssxref("<image>")}} . Le contenu ajouté avec ::before ou avec ::after ne sera plus généré car l'élément sera devenu un élément remplacé.
<div id="replaced">Mozilla</div> -- -
#replaced {
- content: url("https://mdn.mozillademos.org/files/12668/MDN.svg");
-}
-
-#replaced::after { /* Ceci ne sera pas affiché, */
- /* l'élément sera un élément remplacé */
- content: " (" attr(id) ")";
-}
-
-{{EmbedLiveSample('Remplacer_un_élément', '100%', 200)}}
- -Le contenu généré par CSS n'est pas inclus dans le DOM. Pour cette raison, il ne fait pas partie de l'arbre d'accessibilité et certaines technologies d'assistances ou certains navigateurs ne permettront pas d'annoncer ce contenu. Si ce contenu porte des informations essentielles à la compréhension de la page, il faut inclure ces informations de façon sémantique dans le document principal.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Content", "#content-property", "content")}} | -{{Spec2("CSS3 Content")}} | -- |
| {{SpecName('CSS2.1', 'generate.html#content', 'content')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.content")}}
- -La propriété content est utilisée avec les pseudo-éléments {{cssxref("::before")}} et {{cssxref("::after")}} afin de générer le contenu d'un élément. Les objets insérés via la propriété content sont des éléments remplacés anonymes.
/* Des mots-clés qui ne peuvent pas être mélangés
+ avec d'autres valeurs */
+content: normal;
+content: none;
+
+/* Valeurs pour une image */
+content: url("http://www.example.com/test.png");
+content: linear-gradient(#e66465, #9198e5);
+
+/* Une valeur <string>, les caractères non-latin */
+/* doivent être échappées par ex. \000A9 for © */
+content: 'prefix';
+
+/* Valeurs utilisant un compteur */
+content: counter(compteur_chapitre);
+content: counter(compteur_section, ".");
+
+/* attr() lie à la valeur de l'attribut HTML */
+content: attr(value string);
+
+/* Mots-clés dépendant de langue */
+/* ou de la position */
+content: open-quote;
+content: close-quote;
+content: no-open-quote;
+content: no-close-quote;
+
+/* Sauf avec normal et none, on peut utiliser */
+/* plusieurs valeurs de façon simultanée */
+content: open-quote chapter_counter;
+
+/* Valeurs globales */
+content: inherit;
+content: initial;
+content: unset;
+
+
+nonenormalnone pour les pseudo-éléments :before et :after.\000A9 représentera par exemple le symbole ©).counter() ou counters() (cf. {{cssxref("CSS_Lists_and_Counters/Using_CSS_counters")}})decimal par défaut). La seconde a également deux formes : counters(name, string) ou counters(name, string, style). Le texte généré est la valeur de tous les compteurs d'un nom donné dans ce pseudo-élément, depuis le moins profond jusqu'au plus profond séparés par la chaîne définie. Les compteurs sont formatés selon le style indiqué (decimal par défaut). Voir la section sur les compteurs automatiques et sur la numérotation pour plus d'informations.attr(X)open-quote | close-quoteno-open-quote | no-close-quote<h1>5</h1> +<p> Commençons par une citation de Sir Tim Berners-Lee, + <q cite="http://www.w3.org/People/Berners-Lee/FAQ.html#Internet"> + I was lucky enough to invent the Web at the time when the Internet already existed - and had for a decade and a half.</q> We must understand that there is nothing fundamentally wrong with building on the contributions of others. +</p> + +<h1>6</h1> +<p> Citons le manifeste Mozilla + <q cite="http://www.mozilla.org/about/manifesto/"> + Internet est une ressource publique mondiale qui doit demeurer ouverte et accessible. +</p>+ +
q {
+ color: #00008B;
+ font-style: italic;
+}
+
+q::before { content: open-quote }
+q::after { content: close-quote }
+
+h1::before { content: "Chapitre "; }
+
+{{EmbedLiveSample('Titres_et_citations', 460, 100)}}
+ +<a href="http://www.mozilla.org/fr/">Accueil</a>+ +
a::before{
+ content: url(https://mozorg.cdn.mozilla.net/media/img/favicon.ico) " MOZILLA: ";
+ font: x-small Arial,freeSans,sans-serif;
+ color: gray;
+}
+
+{{EmbedLiveSample('Ajouter_une_icône_avant_un_lien', 200, 60)}}
+ +<h2>Top des ventes</h2> +<ol> + <li>Thriller politique</li> + <li class="nouveaute">Histoires effrayantes</li> + <li>Ma biographie</li> + <li class="nouveaute">Bit-lit</li> +</ol>+ +
.nouveaute::after {
+ content: " Nouveau !";
+ color: red;
+}
+
+{{EmbedLiveSample('Utiliser_les_classes', 300, 200)}}
+ +Dans cet exemple, on insère une image avant chaque lien et on ajoute son identifiant après.
+ +<ul> + <li><a id="moz" href="https://www.mozilla.org/">Page d'accueil Mozilla</a></li> + <li><a id="mdn" href="https://developer.mozilla.org/">Mozilla Developer Network</a></li> +</ul>+ +
a {
+ text-decoration: none;
+ border-bottom: 3px dotted navy;
+}
+
+a::after {
+ content: " (" attr(id) ")";
+}
+
+#moz::before {
+ content: url("https://mozorg.cdn.mozilla.net/media/img/favicon.ico");
+}
+
+#mdn::before {
+ content: url("https://mozorg.cdn.mozilla.net/files/7691/mdn-favicon16.ico");
+}
+
+li {
+ margin: 1em;
+}
+
+{{EmbedLiveSample("Utiliser_les_attributs_d’images_et_d’élément", '100%', 160)}}
+ +Dans cet exemple, on remplace le contenu d'un élément avec une image. Il est possible de remplacer le contenu d'un élément avec une valeur de type {{cssxref("<url>")}} ou {{cssxref("<image>")}} . Le contenu ajouté avec ::before ou avec ::after ne sera plus généré car l'élément sera devenu un élément remplacé.
<div id="replaced">Mozilla</div> ++ +
#replaced {
+ content: url("https://mdn.mozillademos.org/files/12668/MDN.svg");
+}
+
+#replaced::after { /* Ceci ne sera pas affiché, */
+ /* l'élément sera un élément remplacé */
+ content: " (" attr(id) ")";
+}
+
+{{EmbedLiveSample('Remplacer_un_élément', '100%', 200)}}
+ +Le contenu généré par CSS n'est pas inclus dans le DOM. Pour cette raison, il ne fait pas partie de l'arbre d'accessibilité et certaines technologies d'assistances ou certains navigateurs ne permettront pas d'annoncer ce contenu. Si ce contenu porte des informations essentielles à la compréhension de la page, il faut inclure ces informations de façon sémantique dans le document principal.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Content", "#content-property", "content")}} | +{{Spec2("CSS3 Content")}} | ++ |
| {{SpecName('CSS2.1', 'generate.html#content', 'content')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.content")}}
+ +La fonction CSS counter() renvoie une chaîne de caractères qui représente la valeur courante du compteur nommé (dont le nom est passé en argument). Elle est généralement utilisée pour construire un pseudo-élément mais elle peut tout à fait être utilisée à n'importe quel endroit où une valeur {{cssxref("<string>")}} est attendue.
/* Usage simple */ -counter(nomcompteur); - -/* Modifier le type d'affichage du compteur */ -counter(nomcompteur, upper-roman)- -
Un compteur CSS n'a aucun effet visible en lui-même. C'est la fonction counter() (ainsi que counters()) qui permet d'utiliser la chaîne de caractère ou l'image résultante.
Note : La fonction counter() peut être utilisée avec n'importe quelle propriété CSS mais la prise en charge des propriétés autres que {{CSSxRef("content")}} reste expérimentale et la prise en charge du paramètre « type ou unité » est hétérogène.
Veillez à consulter le tableau de compatibilité des navigateurs avant d'utiliser ces fonctionnalités en production.
-none, unset, initial ou inherit.<counter-style>symbols(). Le nom d'un style de compteur peut indiquer un compteur alphabétique, numérique, symbolique ou encore utilisant un système de numération asiatique ou éthiopien ou un autre style de compteur prédéfini. Si cette valeur n'est pas fournie, le style par défaut est décimal.none<ol> - <li></li> - <li></li> - <li></li> -</ol>- -
ol {
- counter-reset: listCounter;
-}
-li {
- counter-increment: listCounter;
-}
-li::after {
- content: "[" counter(listCounter) "] == ["
- counter(listCounter, upper-roman) "]";
-}
-
-{{EmbedLiveSample("Comparaison_entre_compteur_par_défaut_et_chiffres_romains_majuscules", "100%", 150)}}
- -<ol> - <li></li> - <li></li> - <li></li> -</ol>- -
ol {
- counter-reset: count;
-}
-
-li {
- counter-increment: count;
-}
-
-li::after {
- content: "[" counter(count, decimal-leading-zero) "] == ["
- counter(count, lower-alpha) "]";
-}
-
-{{EmbedLiveSample("Comparaison_entre_compteur_décimal_avec_zéro_et_compteur_alphabétique_minuscule", "100%", 150)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Lists", "#counter-functions", "CSS Counters")}} | -{{Spec2("CSS3 Lists")}} | -Aucune modification. | -
| {{SpecName("CSS2.1", "generate.html#counters", "CSS Counters")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
{{Compat("css.types.counter")}}
- -counters()La fonction CSS counter() renvoie une chaîne de caractères qui représente la valeur courante du compteur nommé (dont le nom est passé en argument). Elle est généralement utilisée pour construire un pseudo-élément mais elle peut tout à fait être utilisée à n'importe quel endroit où une valeur {{cssxref("<string>")}} est attendue.
/* Usage simple */ +counter(nomcompteur); + +/* Modifier le type d'affichage du compteur */ +counter(nomcompteur, upper-roman)+ +
Un compteur CSS n'a aucun effet visible en lui-même. C'est la fonction counter() (ainsi que counters()) qui permet d'utiliser la chaîne de caractère ou l'image résultante.
Note : La fonction counter() peut être utilisée avec n'importe quelle propriété CSS mais la prise en charge des propriétés autres que {{CSSxRef("content")}} reste expérimentale et la prise en charge du paramètre « type ou unité » est hétérogène.
Veillez à consulter le tableau de compatibilité des navigateurs avant d'utiliser ces fonctionnalités en production.
+none, unset, initial ou inherit.<counter-style>symbols(). Le nom d'un style de compteur peut indiquer un compteur alphabétique, numérique, symbolique ou encore utilisant un système de numération asiatique ou éthiopien ou un autre style de compteur prédéfini. Si cette valeur n'est pas fournie, le style par défaut est décimal.none<ol> + <li></li> + <li></li> + <li></li> +</ol>+ +
ol {
+ counter-reset: listCounter;
+}
+li {
+ counter-increment: listCounter;
+}
+li::after {
+ content: "[" counter(listCounter) "] == ["
+ counter(listCounter, upper-roman) "]";
+}
+
+{{EmbedLiveSample("Comparaison_entre_compteur_par_défaut_et_chiffres_romains_majuscules", "100%", 150)}}
+ +<ol> + <li></li> + <li></li> + <li></li> +</ol>+ +
ol {
+ counter-reset: count;
+}
+
+li {
+ counter-increment: count;
+}
+
+li::after {
+ content: "[" counter(count, decimal-leading-zero) "] == ["
+ counter(count, lower-alpha) "]";
+}
+
+{{EmbedLiveSample("Comparaison_entre_compteur_décimal_avec_zéro_et_compteur_alphabétique_minuscule", "100%", 150)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Lists", "#counter-functions", "CSS Counters")}} | +{{Spec2("CSS3 Lists")}} | +Aucune modification. | +
| {{SpecName("CSS2.1", "generate.html#counters", "CSS Counters")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
{{Compat("css.types.counter")}}
+ +counters()La propriété counter-increment est utilisée afin d'augmenter la valeur d'un compteur CSS d'une valeur donnée.
Note : La valeur du compteur peut être réinitialisée avec une valeur arbitraire grâce à la propriété {{cssxref("counter-reset")}}.
-/* On incrémente 'mon-compteur' de 1 */ -counter-increment: mon-compteur; - -/* On réduit 'mon-compteur' de 1 */ -counter-increment: mon-compteur -1; - -/* On incrémente 'compteur1' de 1 et on décrémente 'compteur2' de 4 */ -counter-increment: compteur1 compteur2 -4; - -/* On n'incrémente/décremente rien */ -/* cela permet d'effacer les règles moins spécifiques */ -counter-increment: none; - -/* Valeurs globales */ -counter-increment: inherit; -counter-increment: initial; -counter-increment: unset; -- -
La propriété counter-increment peut être définie de deux façons :
nonea et z (sensible à la casse), de nombres compris entre 0 et 9, de tirets bas (_ ou underscores) et/ou de tirets. Le premier caractère qui n'est pas un tiret doit être une lettre. Il est également interdit d'utiliser deux tirets au début d'un identifiant. Enfin, un identifiant ne doit pas être none, unset, initial ou inherit quelque soit la combinaison de la casse.noneol {
- list-style-type: none;
- counter-reset: compteListe;
-}
-
-li::before {
- counter-increment: compteListe 2;
- content: counter(compteListe) " ";
-}
-
-
-<ol> - <li>Et de deux</li> - <li>Et de quatre</li> - <li>Et de six</li> -</ol> -- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Lists", "#propdef-counter-increment", "counter-increment")}} | -{{Spec2("CSS3 Lists")}} | -Aucune modification. | -
| {{SpecName("CSS2.1", "generate.html#propdef-counter-increment", "counter-increment")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.counter-increment")}}
- -La propriété counter-increment est utilisée afin d'augmenter la valeur d'un compteur CSS d'une valeur donnée.
Note : La valeur du compteur peut être réinitialisée avec une valeur arbitraire grâce à la propriété {{cssxref("counter-reset")}}.
+/* On incrémente 'mon-compteur' de 1 */ +counter-increment: mon-compteur; + +/* On réduit 'mon-compteur' de 1 */ +counter-increment: mon-compteur -1; + +/* On incrémente 'compteur1' de 1 et on décrémente 'compteur2' de 4 */ +counter-increment: compteur1 compteur2 -4; + +/* On n'incrémente/décremente rien */ +/* cela permet d'effacer les règles moins spécifiques */ +counter-increment: none; + +/* Valeurs globales */ +counter-increment: inherit; +counter-increment: initial; +counter-increment: unset; ++ +
La propriété counter-increment peut être définie de deux façons :
nonea et z (sensible à la casse), de nombres compris entre 0 et 9, de tirets bas (_ ou underscores) et/ou de tirets. Le premier caractère qui n'est pas un tiret doit être une lettre. Il est également interdit d'utiliser deux tirets au début d'un identifiant. Enfin, un identifiant ne doit pas être none, unset, initial ou inherit quelque soit la combinaison de la casse.noneol {
+ list-style-type: none;
+ counter-reset: compteListe;
+}
+
+li::before {
+ counter-increment: compteListe 2;
+ content: counter(compteListe) " ";
+}
+
+
+<ol> + <li>Et de deux</li> + <li>Et de quatre</li> + <li>Et de six</li> +</ol> ++ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Lists", "#propdef-counter-increment", "counter-increment")}} | +{{Spec2("CSS3 Lists")}} | +Aucune modification. | +
| {{SpecName("CSS2.1", "generate.html#propdef-counter-increment", "counter-increment")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.counter-increment")}}
+ +La propriété counter-reset permet de réinitialiser un compteur CSS avec une valeur donnée.
Note : Pour incrémenter ou décrémenter le compteur, on pourra utiliser la propriété CSS {{cssxref("counter-increment")}}.
-/* On réinitialise nom-compteur à 0 */ -counter-reset: nom-compteur; - -/* On réinitialise nom-compteur à -1 */ -counter-reset: nom-compteur -1; - -/* On initialise compteur1 à 1 et compteur2 à 4 */ -counter-reset: compteur1 1 compteur2 4; - -/* On annule toute réinitialisation qui aurait - pu être déclarée avec des règles moins spé- - cifiques */ -counter-reset: none; - -/* Valeurs globales */ -counter-reset: inherit; -counter-reset: initial; -counter-reset: unset; -- -
Cette propriété se définit grâce à :
- -<custom-ident>) qui représente le compteur, éventuellement suivi par un entier (<integer>). Cela peut être répété plusieurs fois avec un espace en tant que séparateur.none.a et z (sensible à la casse), de nombres compris entre 0 et 9, de tirets bas (_ ou underscores) et/ou de tirets. Le premier caractère qui n'est pas un tiret doit être une lettre. Il est également interdit d'utiliser deux tirets au début d'un identifiant. Enfin, un identifiant ne doit pas être none, unset, initial ou inherit quelque soit la combinaison de la casse.0.noneol {
- list-style-type: none;
- counter-reset: compteListe;
-}
-
-li::before {
- counter-increment: compteListe;
- content: counter(compteListe) " ";
-}
-
-.reinit {
- counter-reset: compteListe;
-}
-
-
-<ol> - <li>Et de un</li> - <li>Et de deux</li> - <li>Et de trois</li> - <li class="reinit">Et ça repart</li> - <li>Et de deux</li> -</ol> -- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Lists', '#counter-reset', 'counter-reset')}} | -{{Spec2('CSS3 Lists')}} | -Aucune modification. | -
| {{SpecName('CSS2.1', 'generate.html#propdef-counter-reset', 'counter-reset')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.counter-reset")}}
- -La propriété counter-reset permet de réinitialiser un compteur CSS avec une valeur donnée.
Note : Pour incrémenter ou décrémenter le compteur, on pourra utiliser la propriété CSS {{cssxref("counter-increment")}}.
+/* On réinitialise nom-compteur à 0 */ +counter-reset: nom-compteur; + +/* On réinitialise nom-compteur à -1 */ +counter-reset: nom-compteur -1; + +/* On initialise compteur1 à 1 et compteur2 à 4 */ +counter-reset: compteur1 1 compteur2 4; + +/* On annule toute réinitialisation qui aurait + pu être déclarée avec des règles moins spé- + cifiques */ +counter-reset: none; + +/* Valeurs globales */ +counter-reset: inherit; +counter-reset: initial; +counter-reset: unset; ++ +
Cette propriété se définit grâce à :
+ +<custom-ident>) qui représente le compteur, éventuellement suivi par un entier (<integer>). Cela peut être répété plusieurs fois avec un espace en tant que séparateur.none.a et z (sensible à la casse), de nombres compris entre 0 et 9, de tirets bas (_ ou underscores) et/ou de tirets. Le premier caractère qui n'est pas un tiret doit être une lettre. Il est également interdit d'utiliser deux tirets au début d'un identifiant. Enfin, un identifiant ne doit pas être none, unset, initial ou inherit quelque soit la combinaison de la casse.0.noneol {
+ list-style-type: none;
+ counter-reset: compteListe;
+}
+
+li::before {
+ counter-increment: compteListe;
+ content: counter(compteListe) " ";
+}
+
+.reinit {
+ counter-reset: compteListe;
+}
+
+
+<ol> + <li>Et de un</li> + <li>Et de deux</li> + <li>Et de trois</li> + <li class="reinit">Et ça repart</li> + <li>Et de deux</li> +</ol> ++ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Lists', '#counter-reset', 'counter-reset')}} | +{{Spec2('CSS3 Lists')}} | +Aucune modification. | +
| {{SpecName('CSS2.1', 'generate.html#propdef-counter-reset', 'counter-reset')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.counter-reset")}}
+ +La propriété CSS counter-set définit un compteur CSS avec une certaine valeur. Elle permet de manipuler les valeurs des compteurs existants et ne créera qu'un nouveau compteur que lorsqu'il n'existe pas de compteur avec le nom indiqué sur l'élément.
Note : La valeur d'un compteur peut être incrémentée ou décrémentée grâce à la propriété CSS {{cssxref("counter-increment")}}.
-/* Définir "mon-compteur" avec la valeur 0 */ -counter-set: mon-compteur; - -/* Définir "mon-compteur" avec la valeur -1 */ -counter-set: mon-compteur -1; - -/* Définir "compteur1" avec 1 et "compteur2" à 4 */ -counter-set: compteur1 1 compteur2 4; - -/* Réinitialiser les compteurs qui auraient été */ -/* définis avec des règles moins spécifiques */ -counter-set: none; - -/* Valeurs globales */ -counter-set: inherit; -counter-set: initial; -counter-set: unset; -- -
La propriété counter-set est définit avec l'une de ces deux valeurs :
<custom-ident> qui fournit le nom du compteur, éventuellement suivie d'un entier (<integer>). Il est possible de définir plusieurs compteurs à réinitialiser en séparant les valeurs grâce à un espace.none.0. S'il n'existe pas déjà de compteur avec le nom courant pour l'élément, l'élément créera un nouveau compteur avec ce nom et utilisera alors cette valeur.nonecounter-set d'une règle moins spécifique.h1 {
- counter-set: chapitre section 1 page;
- /* Les compteurs "chapitre" et "page" sont
- définis à 0, et le compteur "section"
- est défini à 1. */
-}
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Lists', '#counter-set', 'counter-set')}} | -{{Spec2('CSS3 Lists')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.counter-set")}}
- -La propriété CSS counter-set définit un compteur CSS avec une certaine valeur. Elle permet de manipuler les valeurs des compteurs existants et ne créera qu'un nouveau compteur que lorsqu'il n'existe pas de compteur avec le nom indiqué sur l'élément.
Note : La valeur d'un compteur peut être incrémentée ou décrémentée grâce à la propriété CSS {{cssxref("counter-increment")}}.
+/* Définir "mon-compteur" avec la valeur 0 */ +counter-set: mon-compteur; + +/* Définir "mon-compteur" avec la valeur -1 */ +counter-set: mon-compteur -1; + +/* Définir "compteur1" avec 1 et "compteur2" à 4 */ +counter-set: compteur1 1 compteur2 4; + +/* Réinitialiser les compteurs qui auraient été */ +/* définis avec des règles moins spécifiques */ +counter-set: none; + +/* Valeurs globales */ +counter-set: inherit; +counter-set: initial; +counter-set: unset; ++ +
La propriété counter-set est définit avec l'une de ces deux valeurs :
<custom-ident> qui fournit le nom du compteur, éventuellement suivie d'un entier (<integer>). Il est possible de définir plusieurs compteurs à réinitialiser en séparant les valeurs grâce à un espace.none.0. S'il n'existe pas déjà de compteur avec le nom courant pour l'élément, l'élément créera un nouveau compteur avec ce nom et utilisera alors cette valeur.nonecounter-set d'une règle moins spécifique.h1 {
+ counter-set: chapitre section 1 page;
+ /* Les compteurs "chapitre" et "page" sont
+ définis à 0, et le compteur "section"
+ est défini à 1. */
+}
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Lists', '#counter-set', 'counter-set')}} | +{{Spec2('CSS3 Lists')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.counter-set")}}
+ +La fonction CSS counters() permet d'obtenir des compteurs imbriqués en renvoyant la concaténation des chaînes de caractères des valeurs des compteurs passés en arguments. La fonction counters() peut s'utiliser sous deux formes :
counters(name, string)counters(name, string, style)Cette fonction est généralement utilisée sur des pseudo-éléments mais peut théoriquement être utilisée à tout endroit où une valeur <string> est attendue. Le texte généré est la concaténation des compteurs en commençant par les compteurs « parents » puis en ajoutant la valeurs des compteurs « fils ». Les compteurs sont affichés avec le style indiqué (par défaut, ce sera decimal).
/* Utilisation simple - style decimal par défaut */ -counters(countername, '-'); - -/* Changement du style d'affichage */ -counters(countername, '.', upper-roman)- -
Un compteur n'est pas visible en tant que tel. Les fonctions counters() et counter() doivent être utilisées pour créer du contenu.
Note : Bien que la fonction counters() puisse être utilisée avec n'importe quelle propriété CSS, la prise en charge des propriétés autres que {{CSSxRef("content")}} reste experimentale.
Avant d'utiliser cette fonctionnalité en production, référez vous au tableau de compatibilité ci-après.
-none, unset, initial ou inherit.<counter-style>list-style-type) ou une fonction symbols(). En absence de valeur, le style utilisé sera decimal.\000A9 représentera par exemple le symbole copyright (©).none<ol> - <li> - <ol> - <li></li> - <li></li> - <li></li> - </ol> - </li> - <li></li> - <li></li> - <li> - <ol> - <li></li> - <li> - <ol> - <li></li> - <li></li> - <li></li> - </ol> - </li> - </ol> - </li> -</ol>- -
ol {
- counter-reset: listCounter;
-}
-li {
- counter-increment: listCounter;
-}
-li::marker {
- content: counters(listCounter, '.', upper-roman) ') ';
-}
-li::before {
- content: counters(listCounter, ".") " == " counters(listCounter, ".", lower-roman) ;
-}
-
-{{EmbedLiveSample("Style_par_défaut_et_chiffres_romains", "100%", 150)}}
- -<ol> - <li> - <ol> - <li></li> - <li></li> - <li></li> - </ol> - </li> - <li></li> - <li></li> - <li> - <ol> - <li></li> - <li> - <ol> - <li></li> - <li></li> - <li></li> - </ol> - </li> - </ol> - </li> -</ol>- -
ol {
- counter-reset: count;
-}
-li {
- counter-increment: count;
-}
-li::marker {
- content: counters(count, '.', upper-alpha) ') ';
-}
-li::before {
- content: counters(count, ".", decimal-leading-zero) " == " counters(count, ".", lower-alpha);
-}
-
-{{EmbedLiveSample("Numérotation_décimale_(avec_zéro)_et_indices_alphabétiques", "100%", 150)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Lists", "#counter-functions", "CSS Counters")}} | -{{Spec2("CSS3 Lists")}} | -Aucune modification. | -
| {{SpecName("CSS2.1", "generate.html#counter-styles", "CSS Counters")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
{{Compat("css.types.counters")}}
- -counter()La fonction CSS counters() permet d'obtenir des compteurs imbriqués en renvoyant la concaténation des chaînes de caractères des valeurs des compteurs passés en arguments. La fonction counters() peut s'utiliser sous deux formes :
counters(name, string)counters(name, string, style)Cette fonction est généralement utilisée sur des pseudo-éléments mais peut théoriquement être utilisée à tout endroit où une valeur <string> est attendue. Le texte généré est la concaténation des compteurs en commençant par les compteurs « parents » puis en ajoutant la valeurs des compteurs « fils ». Les compteurs sont affichés avec le style indiqué (par défaut, ce sera decimal).
/* Utilisation simple - style decimal par défaut */ +counters(countername, '-'); + +/* Changement du style d'affichage */ +counters(countername, '.', upper-roman)+ +
Un compteur n'est pas visible en tant que tel. Les fonctions counters() et counter() doivent être utilisées pour créer du contenu.
Note : Bien que la fonction counters() puisse être utilisée avec n'importe quelle propriété CSS, la prise en charge des propriétés autres que {{CSSxRef("content")}} reste experimentale.
Avant d'utiliser cette fonctionnalité en production, référez vous au tableau de compatibilité ci-après.
+none, unset, initial ou inherit.<counter-style>list-style-type) ou une fonction symbols(). En absence de valeur, le style utilisé sera decimal.\000A9 représentera par exemple le symbole copyright (©).none<ol> + <li> + <ol> + <li></li> + <li></li> + <li></li> + </ol> + </li> + <li></li> + <li></li> + <li> + <ol> + <li></li> + <li> + <ol> + <li></li> + <li></li> + <li></li> + </ol> + </li> + </ol> + </li> +</ol>+ +
ol {
+ counter-reset: listCounter;
+}
+li {
+ counter-increment: listCounter;
+}
+li::marker {
+ content: counters(listCounter, '.', upper-roman) ') ';
+}
+li::before {
+ content: counters(listCounter, ".") " == " counters(listCounter, ".", lower-roman) ;
+}
+
+{{EmbedLiveSample("Style_par_défaut_et_chiffres_romains", "100%", 150)}}
+ +<ol> + <li> + <ol> + <li></li> + <li></li> + <li></li> + </ol> + </li> + <li></li> + <li></li> + <li> + <ol> + <li></li> + <li> + <ol> + <li></li> + <li></li> + <li></li> + </ol> + </li> + </ol> + </li> +</ol>+ +
ol {
+ counter-reset: count;
+}
+li {
+ counter-increment: count;
+}
+li::marker {
+ content: counters(count, '.', upper-alpha) ') ';
+}
+li::before {
+ content: counters(count, ".", decimal-leading-zero) " == " counters(count, ".", lower-alpha);
+}
+
+{{EmbedLiveSample("Numérotation_décimale_(avec_zéro)_et_indices_alphabétiques", "100%", 150)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Lists", "#counter-functions", "CSS Counters")}} | +{{Spec2("CSS3 Lists")}} | +Aucune modification. | +
| {{SpecName("CSS2.1", "generate.html#counter-styles", "CSS Counters")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
{{Compat("css.types.counters")}}
+ +counter()La fonction CSS cross-fade() peut être utilisée afin de fusionner deux ou plusieurs images avec une transparence donnée. On peut l'utiliser pour de nombreuses manipulations d'image : teinter une image avec une couleur donnée ou mettre en avant une zone de l'image en combinant celle-ci avec un dégradé radial.
Attention : À l'heure actuelle (janvier 2019), la syntaxe décrite par la spécification et les syntaxes implémentées sont différentes. Nous commencerons ici par définir la syntaxe telle que définie par la spécification puis celle utilisée au sein des implémentations actuelles.
-La fonction cross-fade() prend comme argument une liste d'images accompagnée d'un pourcentage qui définit la proportion de chaque image dans le « mélange » obtenu. La valeur en pourcentage ne doit pas être entourée de quotes, doit contenir le symbole « % » et être comprise entre 0% et 100%.
Cette fonction pourra être utilisée à tout endroit où une image (cf. {{cssxref("<image>")}}) CSS peut être utilisée.
- -Le pourcentage utilisé pour chaque image peut être considéré comme une valeur d'opacité. Un coefficient à 0% indiquera que l'image sera complètement transparente pour le mélange final tandis qu'un coefficient à 100% rendra l'image complètement opaque. Si un des pourcentages est absent, l'ensemble des pourcentages exprimés est sommé et la différence avec 100% est répartie également entre toutes les images qui n'ont pas de coefficient.
- -cross-fade(url(white.png) 0%, url(black.png) 100%); /* complètement noire */ -cross-fade(url(white.png) 25%, url(black.png) 75%); /* 25% blanche, 75% noire*/ -cross-fade(url(white.png) 50%, url(black.png) 50%); /* 50% blanche, 50% noire */ -cross-fade(url(white.png) 75%, url(black.png) 25%); /* 75% blanche, 25% noire */ -cross-fade(url(white.png) 100%, url(black.png) 0%); /* complètement blanche */ -cross-fade(url(green.png) 75%, url(red.png) 75%); /* image avec du rouge et vert à 75% */ -- -
Dans le cas le plus simple, seules deux images sont fusionnées. Dans ce cas, seul un coefficient est nécessaire (la seconde image recevra dans tous les cas le complément à 100% du premier coefficient). Ainsi, si on utilise 0% pour la première image, le mélange résultant correspondra à la deuxième image. Inversement, un coefficient de 100% pour la première image masquera complètement la seconde. Utiliser 50% permettra d'obtenir un mélange à proportions égales. Un coefficient de 75% montrera la première image à 75% et la seconde à 25%.
- -Les lignes précédentes peuvent ainsi s'écrire également :
- -cross-fade(url(white.png) 0%, url(black.png)); /* complètement noire */ -cross-fade(url(white.png) 25%, url(black.png)); /* 25% blanche, 75% noire*/ -cross-fade(url(white.png), url(black.png)); /* 50% blanche, 50% noire */ -cross-fade(url(white.png) 75%, url(black.png)); /* 75% blanche, 25% noire */ -cross-fade(url(white.png) 100%, url(black.png)); /* complètement blanche */ -cross-fade(url(green.png) 75%, url(red.png) 75%); /* image avec du rouge et vert à 75% */ -- -
Si aucun pourcentage n'est indiqué, toutes les images contribuent également (si on a deux images, chacune contribuera à 50%).
- -{{csssyntax}}
- -<div id="div"></div>- -
#div {
- width: 300px;
- height: 300px;
- background-image: cross-fade(
- 75% url('https://mdn.mozillademos.org/files/8543/br.png'),
- url('https://mdn.mozillademos.org/files/8545/tr.png'));
-}
-
-{{EmbedLiveSample("Exemples", "330", "330")}}
- -cross-fade( <image, <image>, <percentage> )- -
La spécification de la fonction cross-fade() permet d'avoir plusieurs images et d'associer un coefficient de transparence à chacune des images. Ce n'a pas toujours été le cas et la syntaxe originale, implémentée par certains navigateurs, ne permet d'avoir que deux images pour lesquelles la somme des coefficients doit être 100%. Cette syntaxe est prise en charge par Safari et préfixée avec -webkit- pour Chrome, Opera et les autres navigateurs basés sur Blink.
cross-fade(url(white.png), url(black.png), 0%); /* complètement noire */ -cross-fade(url(white.png), url(black.png), 25%); /* 25% blanche, 75% noire */ -cross-fade(url(white.png), url(black.png), 50%); /* 50% blanche, 50% noire */ -cross-fade(url(white.png), url(black.png), 75%); /* 75% blanche, 25% noire */ -cross-fade(url(white.png), url(black.png), 100%); /* complètement blanche */ -- -
Pour cette syntaxe, les deux images sont déclarées en premières et séparées par une virgule puis arrive le coefficient. Si la virgule ou si le caractère pourcent est absent, la propriété est considérée invalide. Le coefficient utilisé dans la syntaxe est attribué à la première image. La deuxième image utilisera donc un coefficient implicite qui est le complément à 100 du premier complément.
- -Dans les exemples associés à la syntaxe de la spécification, on avait un cas où la somme des coefficients valait 150% : ce cas ne serait pas possible avec la syntaxe implémentée actuellement. De même, on ne peut pas mélanger trois images (ou plus) avec cette syntaxe.
- -.crossfade {
- width: 300px;
- height: 300px;
- background-image: -webkit-cross-fade(
- url('https://mdn.mozillademos.org/files/8543/br.png'),
- url('https://mdn.mozillademos.org/files/8545/tr.png'),
- 75%);
- background-image: cross-fade(
- url('https://mdn.mozillademos.org/files/8543/br.png'),
- url('https://mdn.mozillademos.org/files/8545/tr.png'),
- 75%);
-}
-
-<div class="crossfade"></div>- -
{{EmbedLiveSample("Ancienne_syntaxe_(implémentations)", "330", "330")}}
- -Les outils d'assistance ne peuvent pas analyser les images d'arrière-plan. Si l'image contient des informations essentielles à la compréhension du document, mieux vaudra la décrire de façon sémantique dans le document afin que ce dernier soit correctement accessible. Lorsqu'on utilisera des images d'arrière-plan, on s'assurera que le contraste est suffisamment élevé par rapport au texte qui serait affiché par dessus.
- - - -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Images', '#cross-fade-function', 'cross-fade()')}} | -{{Spec2('CSS4 Images')}} | -Définition initiale. | -
La fonction CSS cross-fade() peut être utilisée afin de fusionner deux ou plusieurs images avec une transparence donnée. On peut l'utiliser pour de nombreuses manipulations d'image : teinter une image avec une couleur donnée ou mettre en avant une zone de l'image en combinant celle-ci avec un dégradé radial.
Attention : À l'heure actuelle (janvier 2019), la syntaxe décrite par la spécification et les syntaxes implémentées sont différentes. Nous commencerons ici par définir la syntaxe telle que définie par la spécification puis celle utilisée au sein des implémentations actuelles.
+La fonction cross-fade() prend comme argument une liste d'images accompagnée d'un pourcentage qui définit la proportion de chaque image dans le « mélange » obtenu. La valeur en pourcentage ne doit pas être entourée de quotes, doit contenir le symbole « % » et être comprise entre 0% et 100%.
Cette fonction pourra être utilisée à tout endroit où une image (cf. {{cssxref("<image>")}}) CSS peut être utilisée.
+ +Le pourcentage utilisé pour chaque image peut être considéré comme une valeur d'opacité. Un coefficient à 0% indiquera que l'image sera complètement transparente pour le mélange final tandis qu'un coefficient à 100% rendra l'image complètement opaque. Si un des pourcentages est absent, l'ensemble des pourcentages exprimés est sommé et la différence avec 100% est répartie également entre toutes les images qui n'ont pas de coefficient.
+ +cross-fade(url(white.png) 0%, url(black.png) 100%); /* complètement noire */ +cross-fade(url(white.png) 25%, url(black.png) 75%); /* 25% blanche, 75% noire*/ +cross-fade(url(white.png) 50%, url(black.png) 50%); /* 50% blanche, 50% noire */ +cross-fade(url(white.png) 75%, url(black.png) 25%); /* 75% blanche, 25% noire */ +cross-fade(url(white.png) 100%, url(black.png) 0%); /* complètement blanche */ +cross-fade(url(green.png) 75%, url(red.png) 75%); /* image avec du rouge et vert à 75% */ ++ +
Dans le cas le plus simple, seules deux images sont fusionnées. Dans ce cas, seul un coefficient est nécessaire (la seconde image recevra dans tous les cas le complément à 100% du premier coefficient). Ainsi, si on utilise 0% pour la première image, le mélange résultant correspondra à la deuxième image. Inversement, un coefficient de 100% pour la première image masquera complètement la seconde. Utiliser 50% permettra d'obtenir un mélange à proportions égales. Un coefficient de 75% montrera la première image à 75% et la seconde à 25%.
+ +Les lignes précédentes peuvent ainsi s'écrire également :
+ +cross-fade(url(white.png) 0%, url(black.png)); /* complètement noire */ +cross-fade(url(white.png) 25%, url(black.png)); /* 25% blanche, 75% noire*/ +cross-fade(url(white.png), url(black.png)); /* 50% blanche, 50% noire */ +cross-fade(url(white.png) 75%, url(black.png)); /* 75% blanche, 25% noire */ +cross-fade(url(white.png) 100%, url(black.png)); /* complètement blanche */ +cross-fade(url(green.png) 75%, url(red.png) 75%); /* image avec du rouge et vert à 75% */ ++ +
Si aucun pourcentage n'est indiqué, toutes les images contribuent également (si on a deux images, chacune contribuera à 50%).
+ +{{csssyntax}}
+ +<div id="div"></div>+ +
#div {
+ width: 300px;
+ height: 300px;
+ background-image: cross-fade(
+ 75% url('https://mdn.mozillademos.org/files/8543/br.png'),
+ url('https://mdn.mozillademos.org/files/8545/tr.png'));
+}
+
+{{EmbedLiveSample("Exemples", "330", "330")}}
+ +cross-fade( <image, <image>, <percentage> )+ +
La spécification de la fonction cross-fade() permet d'avoir plusieurs images et d'associer un coefficient de transparence à chacune des images. Ce n'a pas toujours été le cas et la syntaxe originale, implémentée par certains navigateurs, ne permet d'avoir que deux images pour lesquelles la somme des coefficients doit être 100%. Cette syntaxe est prise en charge par Safari et préfixée avec -webkit- pour Chrome, Opera et les autres navigateurs basés sur Blink.
cross-fade(url(white.png), url(black.png), 0%); /* complètement noire */ +cross-fade(url(white.png), url(black.png), 25%); /* 25% blanche, 75% noire */ +cross-fade(url(white.png), url(black.png), 50%); /* 50% blanche, 50% noire */ +cross-fade(url(white.png), url(black.png), 75%); /* 75% blanche, 25% noire */ +cross-fade(url(white.png), url(black.png), 100%); /* complètement blanche */ ++ +
Pour cette syntaxe, les deux images sont déclarées en premières et séparées par une virgule puis arrive le coefficient. Si la virgule ou si le caractère pourcent est absent, la propriété est considérée invalide. Le coefficient utilisé dans la syntaxe est attribué à la première image. La deuxième image utilisera donc un coefficient implicite qui est le complément à 100 du premier complément.
+ +Dans les exemples associés à la syntaxe de la spécification, on avait un cas où la somme des coefficients valait 150% : ce cas ne serait pas possible avec la syntaxe implémentée actuellement. De même, on ne peut pas mélanger trois images (ou plus) avec cette syntaxe.
+ +.crossfade {
+ width: 300px;
+ height: 300px;
+ background-image: -webkit-cross-fade(
+ url('https://mdn.mozillademos.org/files/8543/br.png'),
+ url('https://mdn.mozillademos.org/files/8545/tr.png'),
+ 75%);
+ background-image: cross-fade(
+ url('https://mdn.mozillademos.org/files/8543/br.png'),
+ url('https://mdn.mozillademos.org/files/8545/tr.png'),
+ 75%);
+}
+
+<div class="crossfade"></div>+ +
{{EmbedLiveSample("Ancienne_syntaxe_(implémentations)", "330", "330")}}
+ +Les outils d'assistance ne peuvent pas analyser les images d'arrière-plan. Si l'image contient des informations essentielles à la compréhension du document, mieux vaudra la décrire de façon sémantique dans le document afin que ce dernier soit correctement accessible. Lorsqu'on utilisera des images d'arrière-plan, on s'assurera que le contraste est suffisamment élevé par rapport au texte qui serait affiché par dessus.
+ + + +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Images', '#cross-fade-function', 'cross-fade()')}} | +{{Spec2('CSS4 Images')}} | +Définition initiale. | +
Certaines propriétés CSS peuvent être animées. Cela signifie que leur valeur change de façon graduelle grâce aux animations CSS ou aux transitions CSS.
- -Voici la liste des propriétés qui peuvent être animées :
- -{{CSSAnimatedProperties}}
diff --git a/files/fr/web/css/css_animated_properties/index.md b/files/fr/web/css/css_animated_properties/index.md new file mode 100644 index 0000000000..463b7f9669 --- /dev/null +++ b/files/fr/web/css/css_animated_properties/index.md @@ -0,0 +1,18 @@ +--- +title: Liste des propriétés CSS animées +slug: Web/CSS/CSS_animated_properties +tags: + - Animations + - CSS + - Reference + - Transitions +translation_of: Web/CSS/CSS_animated_properties +original_slug: Web/CSS/Liste_propriétés_CSS_animées +--- +Certaines propriétés CSS peuvent être animées. Cela signifie que leur valeur change de façon graduelle grâce aux animations CSS ou aux transitions CSS.
+ +Voici la liste des propriétés qui peuvent être animées :
+ +{{CSSAnimatedProperties}}
diff --git a/files/fr/web/css/css_animations/detecting_css_animation_support/index.html b/files/fr/web/css/css_animations/detecting_css_animation_support/index.html deleted file mode 100644 index 7f33e6daf9..0000000000 --- a/files/fr/web/css/css_animations/detecting_css_animation_support/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Détecter la prise en charge des animations CSS -slug: Web/CSS/CSS_Animations/Detecting_CSS_animation_support -tags: - - Avancé - - CSS - - Obsolete -translation_of: Web/CSS/CSS_Animations/Detecting_CSS_animation_support -original_slug: Web/CSS/Animations_CSS/Détecter_la_prise_en_charge_des_animations_CSS ---- -Attention : Les techniques décrites dans cet article sont obsolètes et peuvent être remplacées par l'utilisation de {{cssxref("@supports")}}.
-Avec les animations CSS, on peut ajouter des animations sur du contenu, uniquement en utilisant CSS. Toutefois, cette fonctionnalité n'est parfois pas disponible et on souhaiterait alors pouvoir gérer ce cas et appliquer un effet similaire avec JavaScript. Cet article, basé sur ce billet de Christian Heilmann, illustre une technique pour détecter la prise en charge des animations CSS.
- -Ce code JavaScript permet de vérifier que les animations CSS peuvent être utilisées dans le navigateur :
- -var animation = false,
- animationstring = 'animation',
- keyframeprefix = '',
- domPrefixes = 'Webkit Moz O ms Khtml'.split(' '),
- pfx = '',
- elem = document.createElement('div');
-
-if( elem.style.animationName !== undefined ) { animation = true; }
-
-if( animation === false ) {
- for( var i = 0; i < domPrefixes.length; i++ ) {
- if( elem.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) {
- pfx = domPrefixes[ i ];
- animationstring = pfx + 'Animation';
- keyframeprefix = '-' + pfx.toLowerCase() + '-';
- animation = true;
- break;
- }
- }
-}
-
-
-Pour commencer, on définit quelques variables et on part de l'hypothèse que les animations ne sont pas prises en charge en définissant animation avec false. On utilise la chaîne de caractères animationstring avec la valeur "animation" car celle-ci représentera le nom de la propriété qu'on souhaite définir. On crée également un tableau contenant les préfixes des différents navigateurs afin de pouvoir parcourir ces différents cas et qu'on utilisera avec la variable pfx qu'on définit pour le moment avec la chaîne vide.
Ensuite, on vérifie si la propriété CSS {{cssxref("animation-name")}} on est définie sur l'élément représenté par la variable elem. Cela signifie alors que le navigateur prend en charge les animations CSS sans préfixe.
Si le navigateur ne prend pas en charge la version sans préfixe et que animation vaut toujours false, on parcourt les différents préfixes des principaux navigateurs et on modifie le nom de AnimationName de la même façon.
Une fois que ce code a fini son exécution, la valeur de animation sera false si les animations ne sont pas prises en charge ou true si animation est le bon nom et que le préfixe est correct. Pour les préfixes, on fera attention à la variation entre le camelCase (ex. MozAnimation) et les tirets (-moz-x).
Maintenant qu'on sait que les animations CSS sont prises en charge, on peut appliquer des animations :
- -if( animation === false ) {
-
- // on utilise JavaScript en fallback
-
-} else {
- elem.style[ animationstring ] = 'rotate 1s linear infinite';
-
- var keyframes = '@' + keyframeprefix + 'keyframes rotate { '+
- 'from {' + keyframeprefix + 'transform:rotate( 0deg ) }'+
- 'to {' + keyframeprefix + 'transform:rotate( 360deg ) }'+
- '}';
-
- if( document.styleSheets && document.styleSheets.length ) {
-
- document.styleSheets[0].insertRule( keyframes, 0 );
-
- } else {
-
- var s = document.createElement( 'style' );
- s.innerHTML = keyframes;
- document.getElementsByTagName( 'head' )[ 0 ].appendChild( s );
-
- }
-
-}
-
-
-Ce code utilise la valeur d'animation : si c'est false, on utilise JavaScript pour recréer l'effet de l'animation. Sinon, on utilise JavaScript pour manipuler les animations CSS.
Pour définir la propriété d'animation, il suffit de mettre à jour la valeur dans la collection de style. Cependant, c'est un peu plus compliqué de gérer les étapes/keyframes car elles n'utilisent pas la syntaxe CSS traditionnelle.
- -Pour définir les étapes de l'animation avec JavaScript, il faut les écrire dans une chaîne de caractères CSS. On définit alors une variable keyframes qu'on construit avec le préfixe à utiliser. Une fois construite, cette variable contient la description complète des différentes étapes nécessaires à la description.
Ensuite, il faut ajouter les étapes au CSS de la page. Pour commencer, on regarde s'il n'y a pas déjà une feuille de style associée au document et si c'est le cas, on ajoute la description des étapes dans la feuille de style (cf. les lignes 13 et 15 du fragment de code ci-avant).
- -S'il n'y aucune feuille de style pré-existante, on crée un nouvel élément {{HTMLElement("style")}} et on remplit son contenu avec la valeur des étapes. Ensuite, on insère ce nouvel élément {{HTMLElement("style")}} dans l'élément {{HTMLElement("head")}} du document ce qui ajoute la nouvelle feuille de style au document.
- - - -Attention : Les techniques décrites dans cet article sont obsolètes et peuvent être remplacées par l'utilisation de {{cssxref("@supports")}}.
+Avec les animations CSS, on peut ajouter des animations sur du contenu, uniquement en utilisant CSS. Toutefois, cette fonctionnalité n'est parfois pas disponible et on souhaiterait alors pouvoir gérer ce cas et appliquer un effet similaire avec JavaScript. Cet article, basé sur ce billet de Christian Heilmann, illustre une technique pour détecter la prise en charge des animations CSS.
+ +Ce code JavaScript permet de vérifier que les animations CSS peuvent être utilisées dans le navigateur :
+ +var animation = false,
+ animationstring = 'animation',
+ keyframeprefix = '',
+ domPrefixes = 'Webkit Moz O ms Khtml'.split(' '),
+ pfx = '',
+ elem = document.createElement('div');
+
+if( elem.style.animationName !== undefined ) { animation = true; }
+
+if( animation === false ) {
+ for( var i = 0; i < domPrefixes.length; i++ ) {
+ if( elem.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) {
+ pfx = domPrefixes[ i ];
+ animationstring = pfx + 'Animation';
+ keyframeprefix = '-' + pfx.toLowerCase() + '-';
+ animation = true;
+ break;
+ }
+ }
+}
+
+
+Pour commencer, on définit quelques variables et on part de l'hypothèse que les animations ne sont pas prises en charge en définissant animation avec false. On utilise la chaîne de caractères animationstring avec la valeur "animation" car celle-ci représentera le nom de la propriété qu'on souhaite définir. On crée également un tableau contenant les préfixes des différents navigateurs afin de pouvoir parcourir ces différents cas et qu'on utilisera avec la variable pfx qu'on définit pour le moment avec la chaîne vide.
Ensuite, on vérifie si la propriété CSS {{cssxref("animation-name")}} on est définie sur l'élément représenté par la variable elem. Cela signifie alors que le navigateur prend en charge les animations CSS sans préfixe.
Si le navigateur ne prend pas en charge la version sans préfixe et que animation vaut toujours false, on parcourt les différents préfixes des principaux navigateurs et on modifie le nom de AnimationName de la même façon.
Une fois que ce code a fini son exécution, la valeur de animation sera false si les animations ne sont pas prises en charge ou true si animation est le bon nom et que le préfixe est correct. Pour les préfixes, on fera attention à la variation entre le camelCase (ex. MozAnimation) et les tirets (-moz-x).
Maintenant qu'on sait que les animations CSS sont prises en charge, on peut appliquer des animations :
+ +if( animation === false ) {
+
+ // on utilise JavaScript en fallback
+
+} else {
+ elem.style[ animationstring ] = 'rotate 1s linear infinite';
+
+ var keyframes = '@' + keyframeprefix + 'keyframes rotate { '+
+ 'from {' + keyframeprefix + 'transform:rotate( 0deg ) }'+
+ 'to {' + keyframeprefix + 'transform:rotate( 360deg ) }'+
+ '}';
+
+ if( document.styleSheets && document.styleSheets.length ) {
+
+ document.styleSheets[0].insertRule( keyframes, 0 );
+
+ } else {
+
+ var s = document.createElement( 'style' );
+ s.innerHTML = keyframes;
+ document.getElementsByTagName( 'head' )[ 0 ].appendChild( s );
+
+ }
+
+}
+
+
+Ce code utilise la valeur d'animation : si c'est false, on utilise JavaScript pour recréer l'effet de l'animation. Sinon, on utilise JavaScript pour manipuler les animations CSS.
Pour définir la propriété d'animation, il suffit de mettre à jour la valeur dans la collection de style. Cependant, c'est un peu plus compliqué de gérer les étapes/keyframes car elles n'utilisent pas la syntaxe CSS traditionnelle.
+ +Pour définir les étapes de l'animation avec JavaScript, il faut les écrire dans une chaîne de caractères CSS. On définit alors une variable keyframes qu'on construit avec le préfixe à utiliser. Une fois construite, cette variable contient la description complète des différentes étapes nécessaires à la description.
Ensuite, il faut ajouter les étapes au CSS de la page. Pour commencer, on regarde s'il n'y a pas déjà une feuille de style associée au document et si c'est le cas, on ajoute la description des étapes dans la feuille de style (cf. les lignes 13 et 15 du fragment de code ci-avant).
+ +S'il n'y aucune feuille de style pré-existante, on crée un nouvel élément {{HTMLElement("style")}} et on remplit son contenu avec la valeur des étapes. Ensuite, on insère ce nouvel élément {{HTMLElement("style")}} dans l'élément {{HTMLElement("head")}} du document ce qui ajoute la nouvelle feuille de style au document.
+ + + +Les animations CSS sont un module CSS qui définit la façon dont les valeurs des propriétés CSS peuvent être animées au fur et à mesure d'une période via des étapes intermédiaires (keyframes en anglais). Le comportement de ces animations séquencées peut être défini en termes de durée, de nombre de répétitions et de la façon dont elles sont répétées.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Animations')}} | -{{Spec2('CSS3 Animations')}} | -Définition initiale. | -
animation{{Compat("css.properties.animation")}}
- -Les animations CSS sont un module CSS qui définit la façon dont les valeurs des propriétés CSS peuvent être animées au fur et à mesure d'une période via des étapes intermédiaires (keyframes en anglais). Le comportement de ces animations séquencées peut être défini en termes de durée, de nombre de répétitions et de la façon dont elles sont répétées.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Animations')}} | +{{Spec2('CSS3 Animations')}} | +Définition initiale. | +
animation{{Compat("css.properties.animation")}}
+ +Les animations CSS permettent de réaliser réaliser des effets incroyables en mainpulant les éléments de vos documents et applications.. Cependant, il est parfois compliqué d'obtenir l'effet désiré. Dans cet article, on explorera différents conseils visant à simplifier la réalisation d'animations.
- -La spécifications des animations CSS ne permet pas de relancer une animation. Il n'existe pas de méthode resetAnimation() qui puisse être appelée sur les éléments et on ne peut pas utiliser la propriété {{cssxref("animation-play-state")}} pour la redéfinir sur "running". Pour obtenir cet effet qui permette de relancer une animation terminée, on utilisera cette astuce.
Tout d'abord, on définit l'animation avec des règles CSS (certaines règles superflues sont masquées ici à des fins de concision).
- - - -@keyframes colorchange {
- 0% { background: yellow }
- 100% { background: blue }
-}
-
-.box {
- width: 100px;
- height: 100px;
- border: 1px solid black;
-}
-
-.changing {
- animation: colorchange 2s;
-}
-
-On a deux classes qui sont définies. La classe box qui décrit l'apparence de la boîte, sans aucune information relative à l'animation. Les détails de l'animation sont inclus dans la classe changing qui indique que les {{cssxref("@keyframes")}} intitulées colorchange doivent être utilisées sur une période de deux secondes afin d'animer la boîte.
Si on n'utilise que ces règles, la boîte n'est pas animée lorsqu'elle s'affiche.
- -Voici le fragment de HTML où on utilise un élément {{HTMLElement("div")}} qu'on veut animer et un bouton pour lancer (ou relancer) l'animation.
- -<div class="box"> -</div> - -<div class="runButton" onclick="play()">Cliquer pour lancer l'animation</div>- -
Enfin, voyons le JavaScript qui sera utilisé. Cette technique repose principalement sur la fonction play() qui est appelée lorsque l'utilisateur clique sur le bouton.
function play() {
- document.querySelector(".box").className = "box";
- window.requestAnimationFrame(function(time) {
- window.requestAnimationFrame(function(time) {
- document.querySelector(".box").className = "box changing";
- });
- });
-}
-
-Cela paraît un peu étrange. Mais afin que l'animation soit lancée à nouveau, il faut : retirer l'effet d'animation, lancer le recalcul des styles dans le document pour que cette action soit enregistrée puis ajouter l'animation à nouveau sur l'élément.
- -Voici ce qui se produit lorsque la fonction play() est appelée :
box. Ce faisant, on retire toutes les autres classes qui s'appliquaient à la boîte, y compris la classe changing en charge de l'animation. Autrement dit, on retire l'effet d'animation. Toutefois, ces modifications de classes n'auront pas d'effet tant que les styles ne sont pas recalculés et qu'un rafraîchissement est réalisé pour appliquer ces modifications.requestAnimationFrame() ! Cette fois, la fonction de rappel est lancée avant le prochain rafraîchissement qui aura lieu après le recalcul des styles. Dans cette nouvelle fonction de rappel, on ajoute la classe changing à la boîte afin que l'animation soit lancée lors du rafraîchissement.Bien entendu, on ajoutera également un gestion d'événement au bouton pour que l'ensemble soit bien branché :
- -document.querySelector(".runButton").addEventListener("click", play, false);
-
-{{EmbedLiveSample('Relancer_une_animation', 320, 160)}}
- -Si on retire la propriété {{cssxref("animation-name")}} appliquée à un élément, l'animation s'arrêtera au prochain état défini. Si on souhaite plutôt que l'animation se termine et parvienne à un point d'arrêt, il faudra utiliser une autre approche. Voici quelques pistes :
- -animation-direction: alternate. Il faut une animation explicitement séquencée qui parcourt l'ensemble de l'animation en un cycle.animationiteration se déclenche.Ces pistes sont utilisées dans la démonstration suivante :
- -.slidein {
- animation-duration: 5s;
- animation-name: slidein;
- animation-iteration-count: infinite;
-}
-
-.stopped {
- animation-name: none;
-}
-
-@keyframes slidein {
- 0% {
- margin-left: 0%;
- }
- 50% {
- margin-left: 50%;
- }
- 100% {
- margin-left: 0%;
- }
-}
-
-
-<h1 id="watchme">Cliquer pour arrêter</h1> -- -
let watchme = document.getElementById('watchme')
-
-watchme.className = 'slidein'
-const listener = (e) => {
- watchme.className = 'slidein stopped'
-}
-watchme.addEventListener('click', () =>
- watchme.addEventListener('animationiteration', listener, false)
-)
-
-
-{{EmbedLiveSample("Arrêter_une_animation")}}
- - - -Les animations CSS permettent de réaliser réaliser des effets incroyables en mainpulant les éléments de vos documents et applications.. Cependant, il est parfois compliqué d'obtenir l'effet désiré. Dans cet article, on explorera différents conseils visant à simplifier la réalisation d'animations.
+ +La spécifications des animations CSS ne permet pas de relancer une animation. Il n'existe pas de méthode resetAnimation() qui puisse être appelée sur les éléments et on ne peut pas utiliser la propriété {{cssxref("animation-play-state")}} pour la redéfinir sur "running". Pour obtenir cet effet qui permette de relancer une animation terminée, on utilisera cette astuce.
Tout d'abord, on définit l'animation avec des règles CSS (certaines règles superflues sont masquées ici à des fins de concision).
+ + + +@keyframes colorchange {
+ 0% { background: yellow }
+ 100% { background: blue }
+}
+
+.box {
+ width: 100px;
+ height: 100px;
+ border: 1px solid black;
+}
+
+.changing {
+ animation: colorchange 2s;
+}
+
+On a deux classes qui sont définies. La classe box qui décrit l'apparence de la boîte, sans aucune information relative à l'animation. Les détails de l'animation sont inclus dans la classe changing qui indique que les {{cssxref("@keyframes")}} intitulées colorchange doivent être utilisées sur une période de deux secondes afin d'animer la boîte.
Si on n'utilise que ces règles, la boîte n'est pas animée lorsqu'elle s'affiche.
+ +Voici le fragment de HTML où on utilise un élément {{HTMLElement("div")}} qu'on veut animer et un bouton pour lancer (ou relancer) l'animation.
+ +<div class="box"> +</div> + +<div class="runButton" onclick="play()">Cliquer pour lancer l'animation</div>+ +
Enfin, voyons le JavaScript qui sera utilisé. Cette technique repose principalement sur la fonction play() qui est appelée lorsque l'utilisateur clique sur le bouton.
function play() {
+ document.querySelector(".box").className = "box";
+ window.requestAnimationFrame(function(time) {
+ window.requestAnimationFrame(function(time) {
+ document.querySelector(".box").className = "box changing";
+ });
+ });
+}
+
+Cela paraît un peu étrange. Mais afin que l'animation soit lancée à nouveau, il faut : retirer l'effet d'animation, lancer le recalcul des styles dans le document pour que cette action soit enregistrée puis ajouter l'animation à nouveau sur l'élément.
+ +Voici ce qui se produit lorsque la fonction play() est appelée :
box. Ce faisant, on retire toutes les autres classes qui s'appliquaient à la boîte, y compris la classe changing en charge de l'animation. Autrement dit, on retire l'effet d'animation. Toutefois, ces modifications de classes n'auront pas d'effet tant que les styles ne sont pas recalculés et qu'un rafraîchissement est réalisé pour appliquer ces modifications.requestAnimationFrame() ! Cette fois, la fonction de rappel est lancée avant le prochain rafraîchissement qui aura lieu après le recalcul des styles. Dans cette nouvelle fonction de rappel, on ajoute la classe changing à la boîte afin que l'animation soit lancée lors du rafraîchissement.Bien entendu, on ajoutera également un gestion d'événement au bouton pour que l'ensemble soit bien branché :
+ +document.querySelector(".runButton").addEventListener("click", play, false);
+
+{{EmbedLiveSample('Relancer_une_animation', 320, 160)}}
+ +Si on retire la propriété {{cssxref("animation-name")}} appliquée à un élément, l'animation s'arrêtera au prochain état défini. Si on souhaite plutôt que l'animation se termine et parvienne à un point d'arrêt, il faudra utiliser une autre approche. Voici quelques pistes :
+ +animation-direction: alternate. Il faut une animation explicitement séquencée qui parcourt l'ensemble de l'animation en un cycle.animationiteration se déclenche.Ces pistes sont utilisées dans la démonstration suivante :
+ +.slidein {
+ animation-duration: 5s;
+ animation-name: slidein;
+ animation-iteration-count: infinite;
+}
+
+.stopped {
+ animation-name: none;
+}
+
+@keyframes slidein {
+ 0% {
+ margin-left: 0%;
+ }
+ 50% {
+ margin-left: 50%;
+ }
+ 100% {
+ margin-left: 0%;
+ }
+}
+
+
+<h1 id="watchme">Cliquer pour arrêter</h1> ++ +
let watchme = document.getElementById('watchme')
+
+watchme.className = 'slidein'
+const listener = (e) => {
+ watchme.className = 'slidein stopped'
+}
+watchme.addEventListener('click', () =>
+ watchme.addEventListener('animationiteration', listener, false)
+)
+
+
+{{EmbedLiveSample("Arrêter_une_animation")}}
+ + + +Les animations CSS permettent de créer des transitions entre deux états de mise en forme. Une animation est décrite par deux choses : des propriétés propres à l'animation d'une part et un ensemble d'étapes (keyframes) qui indiquent l'état initial, final et éventuellement des états intermédiaires d'autre part.
- -Trois avantages permettent de distinguer les animations CSS des techniques d'animations utilisant JavaScript :
- -Pour créer une animation CSS, il faut utiliser la propriété raccourcie {{cssxref("animation")}} ou les propriétés détaillées correspondantes sur un ou plusieurs éléments. Cette propriété permet de configurer la durée, le minutage et d'autres détails à propos de l'animation. Attention, cela ne détermine pas l'apparence visuelle de l'animation. Celle-ci est définie en utilisant des règles CSS de mise en forme au sein de la règle @ {{cssxref("@keyframes")}} comme décrit ci-après.
- -Les propriétés détaillées rattachées à la propriété raccourcie {{cssxref("animation")}} sont :
- -infinite afin de répéter une animation infiniment.@keyframes)Une fois qu'on a définit les propriétés propres à l'animation, on doit définir la mise en forme qui évolue lors de cette animation. Pour cela on définit deux étapes ou plus grâce à la règle @ {{cssxref("@keyframes")}}. Chaque étape décrit la façon dont l'élément animé doit être affiché à un instant donné lors de l'animation.
- -La durée de l'animation est définie avant et la règle @keyframes utilise donc des valeurs exprimées en pourcentages (type CSS {{cssxref("percentage")}}) pour indiquer l'instant correspondant à cet état. 0% indique l'état initial de l'animation et 100% indique l'état final. Ces deux états étant très important, il existe deux alias pour les décrire : from et to. Ces états sont optionnels et si from/0% ou to/100% ne sont pas définis, le navigateur utilisera les valeurs calculées des différentes propriétés.
Il est également possible d'ajouter des étapes intermédiaires, entre l'état initial et l'état final de l'animation.
- -Note : Les exemples ci-après n'utilisent pas la version préfixée des propriétés liées aux animations. Il est possible que d'anciens navigateurs (antérieurs à 2017) aient besoin de ces préfixes pour fonctionner auquel cas l'exemple « live » ne fonctionnera pas.
-Dans cet exemple simple, on met en forme l'élément {{HTMLElement("p")}} afin que le texte passe de la droite vers la gauche de l'écran
- -On notera que les animations comme celle-ci peuvent agrandir la page qui sera alors plus grande que la fenêtre du navigateur. Pour éviter ce problème, on pourra placer l'élément animé dans un conteneur et utiliser {{cssxref("overflow")}}:hidden sur ce conteneur.
p {
- animation-duration: 3s;
- animation-name: slidein;
-}
-
-@keyframes slidein {
- from {
- margin-left: 100%;
- width: 300%;
- }
-
- to {
- margin-left: 0%;
- width: 100%;
- }
-}
-
-
-Dans cet exemple, on indique dans les propriétés de {{HTMLElement("p")}} que l'animation doit durer trois secondes entre le début et la fin (c'est le rôle de {{cssxref("animation-duration")}}) et que le nom utilisé par la règle @ {{cssxref("@keyframes")}} pour faire référence à cette animation sera slidein.
Ici, on ne souhaite illustrer que les animations mais on aurait très bien pu avoir d'autres règles « classiques » pour d'autres propriétés à déclarer sur l'élément.
- -Les étapes (keyframes) de l'animation sont définies via la règle @ {{cssxref("@keyframes")}}. Dans ce premier exemple, on a uniquement deux étapes. La première décrit l'état à 0% (on utilise l'alias from). Pour cet état initial, on veut que la marge gauche de l'élément soit à 100% (c'est-à-dire tout à droite de l'élément englobant) et que la largeur de l'élément soit de 300% (soit trois fois la largeur de l'élément englobant). Cela permet que le contenu soit dessiné hors de la fenêtre lors de l'état initial.
La seconde, et dernière, étape, se produit à 100% d'avancement (dans l'exemple, on utilise l'alias to). Pour cet état, la marge gauche vaut 0% et la largeur de l'élément vaut 100%. De cette façon le contenu finit sa course contre le borde gauche de la zone de contenu.
<p>The Caterpillar and Alice looked at each other for some time in silence: -at last the Caterpillar took the hookah out of its mouth, and addressed -her in a languid, sleepy voice.</p> -- -
Note : Pour observer l'animation, il peut être nécessaire de rafraîchir la page ou d'utiliser la vue CodePen/JSFiddle.
-{{EmbedLiveSample("Définir_les_étapes_composant_une_animation_(@keyframes)","100%","250")}}
- -Ajoutons une autre étape à partir de l'animation précédente. Ici, nous allons agrandir la taille de police utilisée lorsque l'élément arrive de la droite avant qu'elle ne réduise à nouveau pour revenir à la taille originale une fois arrivée la fin de l'animation. Pour cela, on ajoute une étape dans la règle @ @keyframes :
75% {
- font-size: 300%;
- margin-left: 25%;
- width: 150%;
-}
-
-
-
-
-
-
-Cette nouvelle étape indique au navigateur que, lorsqu'on atteint 75% d'avancement, il faut que la marge à gauche soit de 25% et que la largeur du paragraphe représente 150% de la largeur de l'élément englobant.
- -Note : Pour observer l'animation, il peut être nécessaire de rafraîchir la page ou d'utiliser la vue CodePen/JSFiddle.
-{{EmbedLiveSample("Ajouter_une_autre_étape","100%","250")}}
- -Pour que l'animation se répète, il suffit d'utiliser la propriété {{cssxref("animation-iteration-count")}} et d'indiquer le nombre de répétitions souhaitées. Ici, on utilise la valeur infinite pour que l'animation se répète à l'infini :
p {
- animation-duration: 3s;
- animation-name: slidein;
- animation-iteration-count: infinite;
-}
-
-
-
-
-
-
-{{EmbedLiveSample("Répéter_une_animation","100%","250")}}
- -On a donc une animation qui se répète mais on obtient un résultat étrange, l'animation redémarre à chaque fois depuis l'état initial. Si on veut que le texte parcourt l'écran de droite à gauche puis de gauche à droite, on pourra utiliser la propriété {{cssxref("animation-direction")}} avec la valeur alternate :
p {
- animation-duration: 3s;
- animation-name: slidein;
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-
-
-
-
-
-{{EmbedLiveSample("Obtenir_un_effet_aller-retour","100%","250")}}
- -animationLa propriété raccourcie {{cssxref("animation")}} permet d'économiser de l'espace. Par exemple, si on prend cette règle :
- -p {
- animation-duration: 3s;
- animation-name: slidein;
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-
-On peut la réécrire de façon plus concise :
- -p {
- animation: 3s infinite alternate slidein;
-}
-
-Note : Pour plus de détails, vous pouvez consulter la page de référence sur la propriété {{cssxref("animation")}}.
-Les propriétés CSS détaillées permettent d'utiliser plusieurs valeurs, séparées par des virgules. Cela permet de paramétrer plusieurs animations via une seule règle. Prenons quelques exemples.
- -Dans ce premier exemple, on a trois animations nommées différemment mais qui utilisent la même durée et le même nombre d'itération :
- -animation-name: fadeInOut, moveLeft300px, bounce; -animation-duration: 3s; -animation-iteration-count: 1;- -
Dans ce deuxième exemple, les trois propriétés ont cette fois des composantes distinctes, pour la durée et le nombre d'itération. Ici, par exemple fadeInOut a une durée de 2.5s et 2 itérations.
animation-name: fadeInOut, moveLeft300px, bounce; -animation-duration: 2.5s, 5s, 1s; -animation-iteration-count: 2, 1, 5;- -
Dans ce troisième cas, on a toujours trois animations mais uniquement deux durées et deux nombres d'itération. Lorsqu'il y a moins de valeurs que d'animations, on boucle sur les valeurs. Par exemple, avec le code qui suit, fadeInOut durera 2.5s, moveLeft300px durera 5s. On arrive à la fin de la liste des valeurs de durée et on reprend donc au début : bounce aura donc une durée de 2.5s. Le nombre d'itérations sera affecté de la même façon.
animation-name: fadeInOut, moveLeft300px, bounce; -animation-duration: 2.5s, 5s; -animation-iteration-count: 2, 1;- -
Il est possible d'obtenir des informations et un certain contrôle sur les animations en utilisant l'objet {{domxref("AnimationEvent")}}. Celui-ci peut être utilisé pour détecter quand les animations commencent, finissent et il peut déclencher une nouvelle itération. Chaque événement inclue l'instant auquel il s'est produit et le nom de l'animation qui a déclenché l'événement.
- -Dans la suite de cet article, nous allons modifier l'exemple précédent pour obtenir des informations supplémentaires sur chaque événement d'animation lorsqu'il se produit afin de mieux voir comment cela fonctionne.
- -On commence par rédiger le CSS pour l'animation. Ici, l'animation durera 3 secondes, sera intitulée slidein, se répètera trois fois et changera de direction pour faire des allers-retours. Dans la règle @ {{cssxref("@keyframes")}}, on manipule la largeur et la marge à gauche de l'élément afin que ce dernier traverse l'écran.
.slidein {
- animation-duration: 3s;
- animation-name: slidein;
- animation-iteration-count: 3;
- animation-direction: alternate;
-}
-
-@keyframes slidein {
- from {
- margin-left:100%;
- width:300%
- }
-
- to {
- margin-left:0%;
- width:100%;
- }
-}
-
-On utilisera JavaScript pour « écouter » les trois événements possibles. Le code qui suit permet de définir les gestionnaires d'événement (à utiliser une fois que le document a été chargé).
- -var element = document.getElementById("watchme");
-element.addEventListener("animationstart", listener, false);
-element.addEventListener("animationend", listener, false);
-element.addEventListener("animationiteration", listener, false);
-
-element.className = "slidein";
-
-
-Ce code est plutôt classique, n'hésitez pas à consulter la documentation de {{domxref("eventTarget.addEventListener()")}} si besoin. Pour finir, ce script attribut une classe sur slidein sur l'élément.
Quel est l'intérêt ? En fait, l'événement animationstart est déclenché dès que l'animation démarre et cela se produit alors avant l'exécution du script. Pour éviter cela, on démarre l'animation via le script en définissant la classe de l'élément à animer.
Les événements sont transmis à la fonction listener() décrite ici :
function listener(event) {
- var l = document.createElement("li");
- switch(event.type) {
- case "animationstart":
- l.innerHTML = "Début : durée écoulée : " + event.elapsedTime;
- break;
- case "animationend":
- l.innerHTML = "Fin : durée écoulée : " + event.elapsedTime;
- break;
- case "animationiteration":
- l.innerHTML = "Nouvelle boucle démarrée à : " + event.elapsedTime;
- break;
- }
- document.getElementById("output").appendChild(l);
-}
-
-
-Ce code consulte {{domxref("event.type")}} afin de déterminer l'événement qui s'est produit puis ajoute un élément {{HTMLElement("ul")}} au document pour alimenter un journal des événements.
- -Le résultat obtenu devrait ressembler à quelque chose comme :
- -On voit ici que les durées sont proches mais pas exactes. On voit également que, lors de la fin de l'animation, l'événement animationiteration n'est pas envoyé, seul animationend est déclenché.
Afin d'être tout à fait complet, voici le code HTML qui peut être utilisé et qui contint la liste dans laquelle on enregistrera les événements reçus :
- -<h1 id="watchme">Regardez-moi bouger</h1> -<p> - Un exemple d'animation CSS pour déplacer - un élément <code>H1</code> sur une page. -</p> -<p> - Voici les événements relatifs aux animations : -</p> -<ul id="output"> -</ul> -</body> -- -
{{EmbedLiveSample('Utiliser_les_événements_liés_aux_animations', '600', '300')}}
- -Les animations CSS permettent de créer des transitions entre deux états de mise en forme. Une animation est décrite par deux choses : des propriétés propres à l'animation d'une part et un ensemble d'étapes (keyframes) qui indiquent l'état initial, final et éventuellement des états intermédiaires d'autre part.
+ +Trois avantages permettent de distinguer les animations CSS des techniques d'animations utilisant JavaScript :
+ +Pour créer une animation CSS, il faut utiliser la propriété raccourcie {{cssxref("animation")}} ou les propriétés détaillées correspondantes sur un ou plusieurs éléments. Cette propriété permet de configurer la durée, le minutage et d'autres détails à propos de l'animation. Attention, cela ne détermine pas l'apparence visuelle de l'animation. Celle-ci est définie en utilisant des règles CSS de mise en forme au sein de la règle @ {{cssxref("@keyframes")}} comme décrit ci-après.
+ +Les propriétés détaillées rattachées à la propriété raccourcie {{cssxref("animation")}} sont :
+ +infinite afin de répéter une animation infiniment.@keyframes)Une fois qu'on a définit les propriétés propres à l'animation, on doit définir la mise en forme qui évolue lors de cette animation. Pour cela on définit deux étapes ou plus grâce à la règle @ {{cssxref("@keyframes")}}. Chaque étape décrit la façon dont l'élément animé doit être affiché à un instant donné lors de l'animation.
+ +La durée de l'animation est définie avant et la règle @keyframes utilise donc des valeurs exprimées en pourcentages (type CSS {{cssxref("percentage")}}) pour indiquer l'instant correspondant à cet état. 0% indique l'état initial de l'animation et 100% indique l'état final. Ces deux états étant très important, il existe deux alias pour les décrire : from et to. Ces états sont optionnels et si from/0% ou to/100% ne sont pas définis, le navigateur utilisera les valeurs calculées des différentes propriétés.
Il est également possible d'ajouter des étapes intermédiaires, entre l'état initial et l'état final de l'animation.
+ +Note : Les exemples ci-après n'utilisent pas la version préfixée des propriétés liées aux animations. Il est possible que d'anciens navigateurs (antérieurs à 2017) aient besoin de ces préfixes pour fonctionner auquel cas l'exemple « live » ne fonctionnera pas.
+Dans cet exemple simple, on met en forme l'élément {{HTMLElement("p")}} afin que le texte passe de la droite vers la gauche de l'écran
+ +On notera que les animations comme celle-ci peuvent agrandir la page qui sera alors plus grande que la fenêtre du navigateur. Pour éviter ce problème, on pourra placer l'élément animé dans un conteneur et utiliser {{cssxref("overflow")}}:hidden sur ce conteneur.
p {
+ animation-duration: 3s;
+ animation-name: slidein;
+}
+
+@keyframes slidein {
+ from {
+ margin-left: 100%;
+ width: 300%;
+ }
+
+ to {
+ margin-left: 0%;
+ width: 100%;
+ }
+}
+
+
+Dans cet exemple, on indique dans les propriétés de {{HTMLElement("p")}} que l'animation doit durer trois secondes entre le début et la fin (c'est le rôle de {{cssxref("animation-duration")}}) et que le nom utilisé par la règle @ {{cssxref("@keyframes")}} pour faire référence à cette animation sera slidein.
Ici, on ne souhaite illustrer que les animations mais on aurait très bien pu avoir d'autres règles « classiques » pour d'autres propriétés à déclarer sur l'élément.
+ +Les étapes (keyframes) de l'animation sont définies via la règle @ {{cssxref("@keyframes")}}. Dans ce premier exemple, on a uniquement deux étapes. La première décrit l'état à 0% (on utilise l'alias from). Pour cet état initial, on veut que la marge gauche de l'élément soit à 100% (c'est-à-dire tout à droite de l'élément englobant) et que la largeur de l'élément soit de 300% (soit trois fois la largeur de l'élément englobant). Cela permet que le contenu soit dessiné hors de la fenêtre lors de l'état initial.
La seconde, et dernière, étape, se produit à 100% d'avancement (dans l'exemple, on utilise l'alias to). Pour cet état, la marge gauche vaut 0% et la largeur de l'élément vaut 100%. De cette façon le contenu finit sa course contre le borde gauche de la zone de contenu.
<p>The Caterpillar and Alice looked at each other for some time in silence: +at last the Caterpillar took the hookah out of its mouth, and addressed +her in a languid, sleepy voice.</p> ++ +
Note : Pour observer l'animation, il peut être nécessaire de rafraîchir la page ou d'utiliser la vue CodePen/JSFiddle.
+{{EmbedLiveSample("Définir_les_étapes_composant_une_animation_(@keyframes)","100%","250")}}
+ +Ajoutons une autre étape à partir de l'animation précédente. Ici, nous allons agrandir la taille de police utilisée lorsque l'élément arrive de la droite avant qu'elle ne réduise à nouveau pour revenir à la taille originale une fois arrivée la fin de l'animation. Pour cela, on ajoute une étape dans la règle @ @keyframes :
75% {
+ font-size: 300%;
+ margin-left: 25%;
+ width: 150%;
+}
+
+
+
+
+
+
+Cette nouvelle étape indique au navigateur que, lorsqu'on atteint 75% d'avancement, il faut que la marge à gauche soit de 25% et que la largeur du paragraphe représente 150% de la largeur de l'élément englobant.
+ +Note : Pour observer l'animation, il peut être nécessaire de rafraîchir la page ou d'utiliser la vue CodePen/JSFiddle.
+{{EmbedLiveSample("Ajouter_une_autre_étape","100%","250")}}
+ +Pour que l'animation se répète, il suffit d'utiliser la propriété {{cssxref("animation-iteration-count")}} et d'indiquer le nombre de répétitions souhaitées. Ici, on utilise la valeur infinite pour que l'animation se répète à l'infini :
p {
+ animation-duration: 3s;
+ animation-name: slidein;
+ animation-iteration-count: infinite;
+}
+
+
+
+
+
+
+{{EmbedLiveSample("Répéter_une_animation","100%","250")}}
+ +On a donc une animation qui se répète mais on obtient un résultat étrange, l'animation redémarre à chaque fois depuis l'état initial. Si on veut que le texte parcourt l'écran de droite à gauche puis de gauche à droite, on pourra utiliser la propriété {{cssxref("animation-direction")}} avec la valeur alternate :
p {
+ animation-duration: 3s;
+ animation-name: slidein;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+
+
+
+
+
+{{EmbedLiveSample("Obtenir_un_effet_aller-retour","100%","250")}}
+ +animationLa propriété raccourcie {{cssxref("animation")}} permet d'économiser de l'espace. Par exemple, si on prend cette règle :
+ +p {
+ animation-duration: 3s;
+ animation-name: slidein;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+
+On peut la réécrire de façon plus concise :
+ +p {
+ animation: 3s infinite alternate slidein;
+}
+
+Note : Pour plus de détails, vous pouvez consulter la page de référence sur la propriété {{cssxref("animation")}}.
+Les propriétés CSS détaillées permettent d'utiliser plusieurs valeurs, séparées par des virgules. Cela permet de paramétrer plusieurs animations via une seule règle. Prenons quelques exemples.
+ +Dans ce premier exemple, on a trois animations nommées différemment mais qui utilisent la même durée et le même nombre d'itération :
+ +animation-name: fadeInOut, moveLeft300px, bounce; +animation-duration: 3s; +animation-iteration-count: 1;+ +
Dans ce deuxième exemple, les trois propriétés ont cette fois des composantes distinctes, pour la durée et le nombre d'itération. Ici, par exemple fadeInOut a une durée de 2.5s et 2 itérations.
animation-name: fadeInOut, moveLeft300px, bounce; +animation-duration: 2.5s, 5s, 1s; +animation-iteration-count: 2, 1, 5;+ +
Dans ce troisième cas, on a toujours trois animations mais uniquement deux durées et deux nombres d'itération. Lorsqu'il y a moins de valeurs que d'animations, on boucle sur les valeurs. Par exemple, avec le code qui suit, fadeInOut durera 2.5s, moveLeft300px durera 5s. On arrive à la fin de la liste des valeurs de durée et on reprend donc au début : bounce aura donc une durée de 2.5s. Le nombre d'itérations sera affecté de la même façon.
animation-name: fadeInOut, moveLeft300px, bounce; +animation-duration: 2.5s, 5s; +animation-iteration-count: 2, 1;+ +
Il est possible d'obtenir des informations et un certain contrôle sur les animations en utilisant l'objet {{domxref("AnimationEvent")}}. Celui-ci peut être utilisé pour détecter quand les animations commencent, finissent et il peut déclencher une nouvelle itération. Chaque événement inclue l'instant auquel il s'est produit et le nom de l'animation qui a déclenché l'événement.
+ +Dans la suite de cet article, nous allons modifier l'exemple précédent pour obtenir des informations supplémentaires sur chaque événement d'animation lorsqu'il se produit afin de mieux voir comment cela fonctionne.
+ +On commence par rédiger le CSS pour l'animation. Ici, l'animation durera 3 secondes, sera intitulée slidein, se répètera trois fois et changera de direction pour faire des allers-retours. Dans la règle @ {{cssxref("@keyframes")}}, on manipule la largeur et la marge à gauche de l'élément afin que ce dernier traverse l'écran.
.slidein {
+ animation-duration: 3s;
+ animation-name: slidein;
+ animation-iteration-count: 3;
+ animation-direction: alternate;
+}
+
+@keyframes slidein {
+ from {
+ margin-left:100%;
+ width:300%
+ }
+
+ to {
+ margin-left:0%;
+ width:100%;
+ }
+}
+
+On utilisera JavaScript pour « écouter » les trois événements possibles. Le code qui suit permet de définir les gestionnaires d'événement (à utiliser une fois que le document a été chargé).
+ +var element = document.getElementById("watchme");
+element.addEventListener("animationstart", listener, false);
+element.addEventListener("animationend", listener, false);
+element.addEventListener("animationiteration", listener, false);
+
+element.className = "slidein";
+
+
+Ce code est plutôt classique, n'hésitez pas à consulter la documentation de {{domxref("eventTarget.addEventListener()")}} si besoin. Pour finir, ce script attribut une classe sur slidein sur l'élément.
Quel est l'intérêt ? En fait, l'événement animationstart est déclenché dès que l'animation démarre et cela se produit alors avant l'exécution du script. Pour éviter cela, on démarre l'animation via le script en définissant la classe de l'élément à animer.
Les événements sont transmis à la fonction listener() décrite ici :
function listener(event) {
+ var l = document.createElement("li");
+ switch(event.type) {
+ case "animationstart":
+ l.innerHTML = "Début : durée écoulée : " + event.elapsedTime;
+ break;
+ case "animationend":
+ l.innerHTML = "Fin : durée écoulée : " + event.elapsedTime;
+ break;
+ case "animationiteration":
+ l.innerHTML = "Nouvelle boucle démarrée à : " + event.elapsedTime;
+ break;
+ }
+ document.getElementById("output").appendChild(l);
+}
+
+
+Ce code consulte {{domxref("event.type")}} afin de déterminer l'événement qui s'est produit puis ajoute un élément {{HTMLElement("ul")}} au document pour alimenter un journal des événements.
+ +Le résultat obtenu devrait ressembler à quelque chose comme :
+ +On voit ici que les durées sont proches mais pas exactes. On voit également que, lors de la fin de l'animation, l'événement animationiteration n'est pas envoyé, seul animationend est déclenché.
Afin d'être tout à fait complet, voici le code HTML qui peut être utilisé et qui contint la liste dans laquelle on enregistrera les événements reçus :
+ +<h1 id="watchme">Regardez-moi bouger</h1> +<p> + Un exemple d'animation CSS pour déplacer + un élément <code>H1</code> sur une page. +</p> +<p> + Voici les événements relatifs aux animations : +</p> +<ul id="output"> +</ul> +</body> ++ +
{{EmbedLiveSample('Utiliser_les_événements_liés_aux_animations', '600', '300')}}
+ +Cet outil peut être utilisé afin de générer des valeurs pour la propriété {{cssxref("border-image")}}.
- - - - - - - -{{EmbedLiveSample('Border_Image_Generator', '100%', '1270px')}}
diff --git a/files/fr/web/css/css_backgrounds_and_borders/border-image_generator/index.md b/files/fr/web/css/css_backgrounds_and_borders/border-image_generator/index.md new file mode 100644 index 0000000000..c598a24870 --- /dev/null +++ b/files/fr/web/css/css_backgrounds_and_borders/border-image_generator/index.md @@ -0,0 +1,2617 @@ +--- +title: Générateur de border-image +slug: Web/CSS/CSS_Backgrounds_and_Borders/Border-image_generator +tags: + - CSS + - Outil +translation_of: Web/CSS/CSS_Background_and_Borders/Border-image_generator +original_slug: Web/CSS/CSS_Background_and_Borders/Border-image_generator +--- +Cet outil peut être utilisé afin de générer des valeurs pour la propriété {{cssxref("border-image")}}.
+ + + + + + + +{{EmbedLiveSample('Border_Image_Generator', '100%', '1270px')}}
diff --git a/files/fr/web/css/css_backgrounds_and_borders/border-radius_generator/index.html b/files/fr/web/css/css_backgrounds_and_borders/border-radius_generator/index.html deleted file mode 100644 index 0cb8e25181..0000000000 --- a/files/fr/web/css/css_backgrounds_and_borders/border-radius_generator/index.html +++ /dev/null @@ -1,1593 +0,0 @@ ---- -title: Générateur de border-radius -slug: Web/CSS/CSS_Backgrounds_and_Borders/Border-radius_generator -tags: - - CSS - - Outil -translation_of: Web/CSS/CSS_Background_and_Borders/Border-radius_generator -original_slug: Web/CSS/CSS_Background_and_Borders/Border-radius_generator ---- -Cet outil peut être utilisé afin de générer du code pour la propriété {{cssxref("border-radius")}}.
- -{{EmbedLiveSample('border-radius-generator', '100%', '800px', '')}}
diff --git a/files/fr/web/css/css_backgrounds_and_borders/border-radius_generator/index.md b/files/fr/web/css/css_backgrounds_and_borders/border-radius_generator/index.md new file mode 100644 index 0000000000..0cb8e25181 --- /dev/null +++ b/files/fr/web/css/css_backgrounds_and_borders/border-radius_generator/index.md @@ -0,0 +1,1593 @@ +--- +title: Générateur de border-radius +slug: Web/CSS/CSS_Backgrounds_and_Borders/Border-radius_generator +tags: + - CSS + - Outil +translation_of: Web/CSS/CSS_Background_and_Borders/Border-radius_generator +original_slug: Web/CSS/CSS_Background_and_Borders/Border-radius_generator +--- +Cet outil peut être utilisé afin de générer du code pour la propriété {{cssxref("border-radius")}}.
+ +{{EmbedLiveSample('border-radius-generator', '100%', '800px', '')}}
diff --git a/files/fr/web/css/css_backgrounds_and_borders/box-shadow_generator/index.html b/files/fr/web/css/css_backgrounds_and_borders/box-shadow_generator/index.html deleted file mode 100644 index bc0470ae50..0000000000 --- a/files/fr/web/css/css_backgrounds_and_borders/box-shadow_generator/index.html +++ /dev/null @@ -1,2878 +0,0 @@ ---- -title: Générateur de box-shadow -slug: Web/CSS/CSS_Backgrounds_and_Borders/Box-shadow_generator -tags: - - CSS - - Outil -translation_of: Web/CSS/CSS_Background_and_Borders/Box-shadow_generator -original_slug: Web/CSS/CSS_Background_and_Borders/Box-shadow_generator ---- -Cet outil visuel permet de construire des effets d'ombre et de générer du code pour la propriété {{cssxref("box-shadow")}} qui pourra être ajouté à votre feuille de style.
- - - - - - - -Cet outil visuel permet de construire des effets d'ombre et de générer du code pour la propriété {{cssxref("box-shadow")}} qui pourra être ajouté à votre feuille de style.
+ + + + + + + +CSS Backgrounds and Borders est un module CSS qui permet de mettre en forme les bordures et arrière-plans des éléments. Les arrière-plans peuvent être dessinés avec une couleur ou une image, rognés, redimensionnés voire modifiés. Les bordures peuvent être décorées avec des lignes, des images, former des angles droits ou des angles courbes. Il est également possible de décorer les boîtes des éléments avec des ombres.
- -border-imageborder-radiusbox-shadow| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Backgrounds')}} | -{{Spec2('CSS3 Backgrounds')}} | -- |
| {{SpecName('CSS2.1', 'box.html')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1', '#border')}} | -{{Spec2('CSS1')}} | -- |
CSS Backgrounds and Borders est un module CSS qui permet de mettre en forme les bordures et arrière-plans des éléments. Les arrière-plans peuvent être dessinés avec une couleur ou une image, rognés, redimensionnés voire modifiés. Les bordures peuvent être décorées avec des lignes, des images, former des angles droits ou des angles courbes. Il est également possible de décorer les boîtes des éléments avec des ombres.
+ +border-imageborder-radiusbox-shadow| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Backgrounds')}} | +{{Spec2('CSS3 Backgrounds')}} | ++ |
| {{SpecName('CSS2.1', 'box.html')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1', '#border')}} | +{{Spec2('CSS1')}} | ++ |
La propriété CSS {{cssxref("background-size")}} permet d'ajuster la taille des images utilisées en arrière-plan et de remplacer le comportement par défaut qui consiste à créer un carrelage de l'image à sa pleine grandeur. Il est ainsi possible d'agrandir ou de rapetisser l'image.
- -Prenons une image de grande taille (par exemple l'ancien logo de Firefox en 2485x2340px). On souhaite la carreler en quatre copies de 300x300 px, comme dans l'image suivante.
- -
On peut utiliser la feuille de style CSS suivante pour obtenir l'effet voulu :
- -.square {
- width: 300px;
- height: 300px;
- background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
- border: solid 2px;
- text-shadow: white 0px 0px 2px;
- font-size: 16px;
- background-size: 150px;
-}
-
-
-On notera que, dans l'exemple précédent, une seule valeur avait été précisée pour {{cssxref("background-size")}} : 150 px. Dans ce cas, cette valeur est utilisée pour la largeur et la hauteur est alors fixée à auto.
Il est aussi possible de spécifier, respectivement, la largeur et la hauteur de l'image, comme dans l'exemple suivant, où la taille de l'image est imposée à 300x150 px.
- -background-size: 300px 150px; -- -
L'image suivante montre le résultat obtenu.
- -
On peut agrandir une image en arrière-plan. À l'image suivante, une favicône de 32x32 px est agrandie à 300x300 px.
- -![]()
.square2 {
- width: 300px;
- height: 300px;
- background-image: url(favicon.png);
- background-size: 300px;
- border: solid 2px;
- text-shadow: white 0px 0px 2px;
- font-size: 16px;
-}
-
-
-On remarque que la feuille de style utilisée est identique à la précédente, sauf en ce qui concerne le nom de l'image.
- -contain et coverEn plus de {{cssxref("<length>")}}, la propriété CSS {{cssxref("background-size")}} permet d'employer deux autres valeurs : contain et cover.
containLa valeur contain spécifie les dimensions de l'image d'arrière-plan de manière à ce que sa largeur et sa hauteur soient aussi grandes que possible, tout en conservant l'image à l'intérieur de son élément conteneur. Ainsi, l'image ne peut déborder de son élément conteneur.
Essayez de redimensionner la fenêtre de votre navigateur afin de voir la valeur contain en action (Votre navigateur doit supporter la mise à l'échelle d'images d'arrière-plan).
{{EmbedLiveSample("contain", "100%", "220")}}
- -<div class="bgSizeContain"> - <p>Redimensionnez la fenêtre de votre navigateur.</p> -</div>- -
.bgSizeContain {
- height: 200px;
- background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
- background-size: contain;
- border: 2px solid darkgray;
- color: #000; text-shadow: 1px 1px 0 #fff;
-}
-
-coverLa valeur cover assure que l'image d'arrière-plan soit aussi petite que possible, tout en maintenant ses dimensions plus grandes ou égales à la taille de l'élément conteneur. L'échelle entre la largeur et la hauteur est maintenue.
{{EmbedLiveSample("cover", "100%", "220")}}
- -Cet exemple utilise le document HTML et la feuille de style suivants :
- -<div class="bgSizeCover"> - <p>Redimensionnez la fenêtre de votre navigateur.</p> -</div>- -
.bgSizeCover {
- height: 200px;
- background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
- background-size: cover;
- border: 2px solid darkgray;
- color: #000; text-shadow: 1px 1px 0 #fff;
-
-
-La propriété CSS {{cssxref("background-size")}} permet d'ajuster la taille des images utilisées en arrière-plan et de remplacer le comportement par défaut qui consiste à créer un carrelage de l'image à sa pleine grandeur. Il est ainsi possible d'agrandir ou de rapetisser l'image.
+ +Prenons une image de grande taille (par exemple l'ancien logo de Firefox en 2485x2340px). On souhaite la carreler en quatre copies de 300x300 px, comme dans l'image suivante.
+ +
On peut utiliser la feuille de style CSS suivante pour obtenir l'effet voulu :
+ +.square {
+ width: 300px;
+ height: 300px;
+ background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
+ border: solid 2px;
+ text-shadow: white 0px 0px 2px;
+ font-size: 16px;
+ background-size: 150px;
+}
+
+
+On notera que, dans l'exemple précédent, une seule valeur avait été précisée pour {{cssxref("background-size")}} : 150 px. Dans ce cas, cette valeur est utilisée pour la largeur et la hauteur est alors fixée à auto.
Il est aussi possible de spécifier, respectivement, la largeur et la hauteur de l'image, comme dans l'exemple suivant, où la taille de l'image est imposée à 300x150 px.
+ +background-size: 300px 150px; ++ +
L'image suivante montre le résultat obtenu.
+ +
On peut agrandir une image en arrière-plan. À l'image suivante, une favicône de 32x32 px est agrandie à 300x300 px.
+ +![]()
.square2 {
+ width: 300px;
+ height: 300px;
+ background-image: url(favicon.png);
+ background-size: 300px;
+ border: solid 2px;
+ text-shadow: white 0px 0px 2px;
+ font-size: 16px;
+}
+
+
+On remarque que la feuille de style utilisée est identique à la précédente, sauf en ce qui concerne le nom de l'image.
+ +contain et coverEn plus de {{cssxref("<length>")}}, la propriété CSS {{cssxref("background-size")}} permet d'employer deux autres valeurs : contain et cover.
containLa valeur contain spécifie les dimensions de l'image d'arrière-plan de manière à ce que sa largeur et sa hauteur soient aussi grandes que possible, tout en conservant l'image à l'intérieur de son élément conteneur. Ainsi, l'image ne peut déborder de son élément conteneur.
Essayez de redimensionner la fenêtre de votre navigateur afin de voir la valeur contain en action (Votre navigateur doit supporter la mise à l'échelle d'images d'arrière-plan).
{{EmbedLiveSample("contain", "100%", "220")}}
+ +<div class="bgSizeContain"> + <p>Redimensionnez la fenêtre de votre navigateur.</p> +</div>+ +
.bgSizeContain {
+ height: 200px;
+ background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
+ background-size: contain;
+ border: 2px solid darkgray;
+ color: #000; text-shadow: 1px 1px 0 #fff;
+}
+
+coverLa valeur cover assure que l'image d'arrière-plan soit aussi petite que possible, tout en maintenant ses dimensions plus grandes ou égales à la taille de l'élément conteneur. L'échelle entre la largeur et la hauteur est maintenue.
{{EmbedLiveSample("cover", "100%", "220")}}
+ +Cet exemple utilise le document HTML et la feuille de style suivants :
+ +<div class="bgSizeCover"> + <p>Redimensionnez la fenêtre de votre navigateur.</p> +</div>+ +
.bgSizeCover {
+ height: 200px;
+ background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
+ background-size: cover;
+ border: 2px solid darkgray;
+ color: #000; text-shadow: 1px 1px 0 #fff;
+
+
+Avec CSS3, on peut appliquer plusieurs arrière-plans à des éléments. Ceux-ci seront empilés les uns sur les autres (le premier de la liste étant le plus « haut » dans la pile et le dernier étant le plus « bas ». Seul le dernier arrière-plan peut décrire une couleur.
- -Pour cela, il suffit simplement d'utiliser une liste de valeur avec {{cssxref("background")}} :
- -.maClasse {
- background: background1, background 2, ..., backgroundN;
-}
-
-
-Cela fonctionne aussi bien avec la propriété raccourcie {{cssxref("background")}} qu'avec les propriétés détaillées, exception faite de {{cssxref("background-color")}}. On peut donc utiliser une liste de valeurs, chacune pour un arrière-plan différent, pour les propriétés suivantes : {{cssxref("background")}}, {{cssxref("background-attachment")}}, {{cssxref("background-clip")}}, {{cssxref("background-image")}}, {{cssxref("background-origin")}}, {{cssxref("background-position")}}, {{cssxref("background-repeat")}}, {{cssxref("background-size")}}.
Dans cet exemple, on cumule trois arrière-plans : le logo de Firefox, un dégradé linéaire (cf. {{cssxref("linear-gradient")}}) et une image de bulles.
- -.exemple_multi_ar {
- width: 100%;
- height: 400px;
- background-image: url(https://mdn.mozillademos.org/files/11305/firefox.png), url(https://mdn.mozillademos.org/files/11307/bubbles.png), linear-gradient(to right, rgba(30, 75, 115, 1), rgba(255, 255, 255, 0));
- background-repeat: no-repeat, no-repeat, no-repeat;
- background-position: bottom right, left, right;
-}
-
-<div class="exemple_multi_ar"></div>- -
{{EmbedLiveSample('Exemple','100%','400')}}
- -Comme on peut le voir ici, le logo qui est le premier élément de la liste apparaît en dessus, il est suivi par le dégradé puis par les bulles. Chacune des propriétés ({{cssxref("background-repeat")}} et {{cssxref("background-position")}}) s'applique aux arrière-plans correspondant (la première valeur de la liste pour le premier arrière-plan, etc.).
- -Note : Si l'image n'apparaît pas sous CodePen, cliquez sur le bouton Tidy de la section CSS.
-Avec CSS3, on peut appliquer plusieurs arrière-plans à des éléments. Ceux-ci seront empilés les uns sur les autres (le premier de la liste étant le plus « haut » dans la pile et le dernier étant le plus « bas ». Seul le dernier arrière-plan peut décrire une couleur.
+ +Pour cela, il suffit simplement d'utiliser une liste de valeur avec {{cssxref("background")}} :
+ +.maClasse {
+ background: background1, background 2, ..., backgroundN;
+}
+
+
+Cela fonctionne aussi bien avec la propriété raccourcie {{cssxref("background")}} qu'avec les propriétés détaillées, exception faite de {{cssxref("background-color")}}. On peut donc utiliser une liste de valeurs, chacune pour un arrière-plan différent, pour les propriétés suivantes : {{cssxref("background")}}, {{cssxref("background-attachment")}}, {{cssxref("background-clip")}}, {{cssxref("background-image")}}, {{cssxref("background-origin")}}, {{cssxref("background-position")}}, {{cssxref("background-repeat")}}, {{cssxref("background-size")}}.
Dans cet exemple, on cumule trois arrière-plans : le logo de Firefox, un dégradé linéaire (cf. {{cssxref("linear-gradient")}}) et une image de bulles.
+ +.exemple_multi_ar {
+ width: 100%;
+ height: 400px;
+ background-image: url(https://mdn.mozillademos.org/files/11305/firefox.png), url(https://mdn.mozillademos.org/files/11307/bubbles.png), linear-gradient(to right, rgba(30, 75, 115, 1), rgba(255, 255, 255, 0));
+ background-repeat: no-repeat, no-repeat, no-repeat;
+ background-position: bottom right, left, right;
+}
+
+<div class="exemple_multi_ar"></div>+ +
{{EmbedLiveSample('Exemple','100%','400')}}
+ +Comme on peut le voir ici, le logo qui est le premier élément de la liste apparaît en dessus, il est suivi par le dégradé puis par les bulles. Chacune des propriétés ({{cssxref("background-repeat")}} et {{cssxref("background-position")}}) s'applique aux arrière-plans correspondant (la première valeur de la liste pour le premier arrière-plan, etc.).
+ +Note : Si l'image n'apparaît pas sous CodePen, cliquez sur le bouton Tidy de la section CSS.
+{{CSSRef}}
- -CSS Basic User Interface est un module de la spécification CSS qui décrit les fonctionnalités et le rendu associés aux fonctionnalités de l'interface utilisateur.
- -cursor| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Basic UI")}} | -{{Spec2("CSS4 Basic UI")}} | -- |
| {{SpecName("CSS3 Basic UI")}} | -{{Spec2("CSS3 Basic UI")}} | -- |
| {{SpecName("CSS2.1", "ui.html")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
{{CSSRef}}
+ +CSS Basic User Interface est un module de la spécification CSS qui décrit les fonctionnalités et le rendu associés aux fonctionnalités de l'interface utilisateur.
+ +cursor| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Basic UI")}} | +{{Spec2("CSS4 Basic UI")}} | ++ |
| {{SpecName("CSS3 Basic UI")}} | +{{Spec2("CSS3 Basic UI")}} | ++ |
| {{SpecName("CSS2.1", "ui.html")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
Gecko 1.8 ({{geckoRelease("1.8")}} prend en charge des valeurs d'URL pour manipuler la propriété {{cssxref("cursor")}}. Ceci permet de définir des images arbitraires comme curseurs de souris — n'importe quel format d'image géré par Gecko peut être utilisé.
- -La syntaxe de base (CSS 2.1) pour cette propriété est :
- -{{CSSxRef("cursor")}}: [ {{CSSxRef("<url>")}} , ]* {{CSSxRef("cursor", "<keyword>", "#Valeurs")}}
-
-Ceci signifie que zéro URL ou plus peuvent être définies en étant séparées par des virgules et doivent être suivies par un des mots-clés comme auto ou pointer.
On pourra ainsi utiliser :
- -cursor: url(toto.cur), url(http://www.exemple.org/truc.gif), auto; -- -
En utilisant cette règle, le moteur essaiera d'abord de charger toto.cur. Si ce fichier n'existe pas ou si, pour une autre raison, l'URL n'est pas valable, ce sera celle de truc.gif qui sera essayée. Si cette valeur ne peut pas être utilisée non plus, le curseur correspondant à la valeur auto sera utilisé.
Le support de la syntaxe CSS3 pour les valeurs du curseur a été ajoutée à partir de Firefox 1.5.
- -{{CSSxRef("cursor")}}: [ {{CSSxRef("<uri>")}} [ <x> <y> ]? , ]* {{CSSxRef("cursor", "<keyword>", "#Valeurs")}}
-
-
-Cette syntaxe permet d'indiquer les coordonnées des points chauds du curseur qui seront maintenues aux frontières de l'image du curseur. Si aucun n'est indiqué, les coordonnées du point chaud sont lus à partir du fichier lui-même (pour les fichier CUR et XBM) ou sont réglés au coin supérieur gauche de l'image. Un exemple de la syntaxe CSS3 est:
- -cursor: url(toto.png) 4 12, auto; -- -
Le premier nombre est la coordonnée x, le second numéro est la coordonnée y. L'exemple va régler le point chaud afin d'être le pixel (4,12) par rapport au (0,0) en haut à gauche.
- -Tous les formats d'image pris en charge par Gecko peuvent être utilisés : PNG, GIF, JPG, BMP, CUR, etc. Le format ANI n'est pas pris en charge et les images animées PNG ou GIF ne créeront pas de curseurs animés.
- -Note : À partir de Gecko 2.0 {{geckoRelease("2.0")}}, Gecko prend en charge les images SVG pour les curseurs. Mais les dimensions de l'image SVG doivent être explicites et non relative. Les instructions JavaScript ou CSS, les déclarations SMIL contenues dans l'image SVG sont ignorées. SVG ne peut donc pas être utilisé pour créer un curseur animé.
-Pour Gecko, la taille limite des curseurs est 128 pixels par 128 pixels. Les images plus grandes seront ignorées. Toutefois, certains systèmes d'exploitation sont limités à des images de 32 pixels par 32 pixels.
- -Les curseurs translucides ne sont pas pris en charge par Windows avant Windows XP.
- -Microsoft Internet Explorer 6.0 prend également en charge les valeurs URI pour la propriété cursor. Toutefois :
| Navigateur | -Version minimum | -Formats | -Coordonnées x-y | -
|---|---|---|---|
| Internet Explorer | -6.0 | -.cur | .ani |
- --- | -
| Firefox (Gecko), Windows et Linux | -1.5 (1.8) | -.cur | .png | .gif | .jpg |
- 1.5 (1.8) | -
| Firefox (Gecko) | -4.0 (2.0) | -.cur | .png | .gif | .jpg | .svg |
- (Gecko 2.0) | -
| Opera | ---- | ---- | ---- | -
| Safari (Webkit) | -3.0 (522-523) | -.cur | .png | .gif | .jpg |
- 3.0 (522-523) | -
OS X 10.5 pour la prise en charge des fichiers .cur |
- |||
Gecko 1.8 ({{geckoRelease("1.8")}} prend en charge des valeurs d'URL pour manipuler la propriété {{cssxref("cursor")}}. Ceci permet de définir des images arbitraires comme curseurs de souris — n'importe quel format d'image géré par Gecko peut être utilisé.
+ +La syntaxe de base (CSS 2.1) pour cette propriété est :
+ +{{CSSxRef("cursor")}}: [ {{CSSxRef("<url>")}} , ]* {{CSSxRef("cursor", "<keyword>", "#Valeurs")}}
+
+Ceci signifie que zéro URL ou plus peuvent être définies en étant séparées par des virgules et doivent être suivies par un des mots-clés comme auto ou pointer.
On pourra ainsi utiliser :
+ +cursor: url(toto.cur), url(http://www.exemple.org/truc.gif), auto; ++ +
En utilisant cette règle, le moteur essaiera d'abord de charger toto.cur. Si ce fichier n'existe pas ou si, pour une autre raison, l'URL n'est pas valable, ce sera celle de truc.gif qui sera essayée. Si cette valeur ne peut pas être utilisée non plus, le curseur correspondant à la valeur auto sera utilisé.
Le support de la syntaxe CSS3 pour les valeurs du curseur a été ajoutée à partir de Firefox 1.5.
+ +{{CSSxRef("cursor")}}: [ {{CSSxRef("<uri>")}} [ <x> <y> ]? , ]* {{CSSxRef("cursor", "<keyword>", "#Valeurs")}}
+
+
+Cette syntaxe permet d'indiquer les coordonnées des points chauds du curseur qui seront maintenues aux frontières de l'image du curseur. Si aucun n'est indiqué, les coordonnées du point chaud sont lus à partir du fichier lui-même (pour les fichier CUR et XBM) ou sont réglés au coin supérieur gauche de l'image. Un exemple de la syntaxe CSS3 est:
+ +cursor: url(toto.png) 4 12, auto; ++ +
Le premier nombre est la coordonnée x, le second numéro est la coordonnée y. L'exemple va régler le point chaud afin d'être le pixel (4,12) par rapport au (0,0) en haut à gauche.
+ +Tous les formats d'image pris en charge par Gecko peuvent être utilisés : PNG, GIF, JPG, BMP, CUR, etc. Le format ANI n'est pas pris en charge et les images animées PNG ou GIF ne créeront pas de curseurs animés.
+ +Note : À partir de Gecko 2.0 {{geckoRelease("2.0")}}, Gecko prend en charge les images SVG pour les curseurs. Mais les dimensions de l'image SVG doivent être explicites et non relative. Les instructions JavaScript ou CSS, les déclarations SMIL contenues dans l'image SVG sont ignorées. SVG ne peut donc pas être utilisé pour créer un curseur animé.
+Pour Gecko, la taille limite des curseurs est 128 pixels par 128 pixels. Les images plus grandes seront ignorées. Toutefois, certains systèmes d'exploitation sont limités à des images de 32 pixels par 32 pixels.
+ +Les curseurs translucides ne sont pas pris en charge par Windows avant Windows XP.
+ +Microsoft Internet Explorer 6.0 prend également en charge les valeurs URI pour la propriété cursor. Toutefois :
| Navigateur | +Version minimum | +Formats | +Coordonnées x-y | +
|---|---|---|---|
| Internet Explorer | +6.0 | +.cur | .ani |
+ --- | +
| Firefox (Gecko), Windows et Linux | +1.5 (1.8) | +.cur | .png | .gif | .jpg |
+ 1.5 (1.8) | +
| Firefox (Gecko) | +4.0 (2.0) | +.cur | .png | .gif | .jpg | .svg |
+ (Gecko 2.0) | +
| Opera | +--- | +--- | +--- | +
| Safari (Webkit) | +3.0 (522-523) | +.cur | .png | .gif | .jpg |
+ 3.0 (522-523) | +
OS X 10.5 pour la prise en charge des fichiers .cur |
+ |||
Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes dans une disposition en bloc, y compris pour les éléments flottants, les éléments positionnés et les tableaux. Cette page détaille les aspects spécifiques relatifs à l'alignement et à la disposition en bloc. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
- -Note : À l'heure où cet article est écrit (juin 2018), il n'y a pas de réelle prise en charge des propriétés d'alignement pour la disposition en bloc. Ce document détaille les intentions de la spécification dans un souci d'exhaustivité mais il est probable que des modifications soient apportées au fur et à mesure de l'évolution de la spécification et de l'implémentation par les navigateurs.
-align-content et justify-contentLa propriété {{cssxref("justify-content")}} ne s'applique pas aux conteneurs en bloc ou aux cellules de tableau.
- -La propriété {{cssxref("align-content")}} s'applique sur l'axe de bloc afin d'aligne les contenus de la boîte dans le conteneur. Si une méthode de distribution telle que space-between, space-around ou space-evenly est utilisée, c'est la méthode de recours qui sera utilisée car tout le contenu est considéré comme un seul sujet d'alignement.
justify-selfLa propriété {{cssxref("justify-self")}} est utilisée afin d'aligner un objet au sein de son bloc englobant selon l'axe en ligne.
- -Cette propriété ne s'applique pas aux éléments flottants ou aux cellules de tableau.
- -Le conteneur d'alignement correspond au bloc positionné en prenant en compte les valeurs de décalage top, left, bottom et right. Le mot-clé normal est considéré équivalent à stretch sauf si l'élément positionné est un élément remplacé, auquel cas il est équivalent à start.
align-selfLa propriété {{cssxref("align-self")}} ne s'applique pas aux boîtes de bloc (y compris pour les éléments flottants) car il y a plus d'un objet sur l'axe de bloc. Elle ne s'applique pas non plus aux cellules des tableaux.
- -Le conteneur d'alignement correspond au bloc positionné en prenant en compte les valeurs de décalage top, left, bottom et right. Le mot-clé normal est considéré équivalent à stretch sauf si l'élément positionné est un élément remplacé, auquel cas il est équivalent à start.
À l'heure actuelle, les navigateurs n'implémentent pas l'alignement des boîtes pour la disposition en bloc. Il faut donc, pour le moment, utiliser les méthodes existantes ou placer un élément dans un conteneur flexible afin de tirer parti des fonctionnalités d'alignement des boîtes flexibles.
- -Avant l'apparition des boîtes flexibles (flexbox), l'alignement horizontal était généralement obtenu avec des marges automatiques. En effet, {{cssxref("margin")}} avec auto absorbera tout l'espace disponible sur la dimension souhaité et avec une marge droite et une marge gauche automatiques, le bloc sera placé au centre :
.container {
- width: 20em;
- margin-left: auto;
- margin-right: auto;
-}
-
-
-Dans une disposition en tableau, il faut accéder à la propriété {{cssxref("vertical-align")}} afin d'aligner le contenu d'une cellule dans celle-ci.
- -Pour de nombreux scénarios, transformer le conteneur de bloc en élément flexible fournira les options d'alignement souhaitées. Dans l'exemple qui suit, on dispose d'un conteneur avec un seul élément et ce conteneur a été transformé en élément flexible afin d'utiliser les propriétés d'alignement.
- -{{EmbedGHLiveSample("css-examples/flexbox/alignment/intro.html", '100%', 700)}}
- -Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes dans une disposition en bloc, y compris pour les éléments flottants, les éléments positionnés et les tableaux. Cette page détaille les aspects spécifiques relatifs à l'alignement et à la disposition en bloc. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
+ +Note : À l'heure où cet article est écrit (juin 2018), il n'y a pas de réelle prise en charge des propriétés d'alignement pour la disposition en bloc. Ce document détaille les intentions de la spécification dans un souci d'exhaustivité mais il est probable que des modifications soient apportées au fur et à mesure de l'évolution de la spécification et de l'implémentation par les navigateurs.
+align-content et justify-contentLa propriété {{cssxref("justify-content")}} ne s'applique pas aux conteneurs en bloc ou aux cellules de tableau.
+ +La propriété {{cssxref("align-content")}} s'applique sur l'axe de bloc afin d'aligne les contenus de la boîte dans le conteneur. Si une méthode de distribution telle que space-between, space-around ou space-evenly est utilisée, c'est la méthode de recours qui sera utilisée car tout le contenu est considéré comme un seul sujet d'alignement.
justify-selfLa propriété {{cssxref("justify-self")}} est utilisée afin d'aligner un objet au sein de son bloc englobant selon l'axe en ligne.
+ +Cette propriété ne s'applique pas aux éléments flottants ou aux cellules de tableau.
+ +Le conteneur d'alignement correspond au bloc positionné en prenant en compte les valeurs de décalage top, left, bottom et right. Le mot-clé normal est considéré équivalent à stretch sauf si l'élément positionné est un élément remplacé, auquel cas il est équivalent à start.
align-selfLa propriété {{cssxref("align-self")}} ne s'applique pas aux boîtes de bloc (y compris pour les éléments flottants) car il y a plus d'un objet sur l'axe de bloc. Elle ne s'applique pas non plus aux cellules des tableaux.
+ +Le conteneur d'alignement correspond au bloc positionné en prenant en compte les valeurs de décalage top, left, bottom et right. Le mot-clé normal est considéré équivalent à stretch sauf si l'élément positionné est un élément remplacé, auquel cas il est équivalent à start.
À l'heure actuelle, les navigateurs n'implémentent pas l'alignement des boîtes pour la disposition en bloc. Il faut donc, pour le moment, utiliser les méthodes existantes ou placer un élément dans un conteneur flexible afin de tirer parti des fonctionnalités d'alignement des boîtes flexibles.
+ +Avant l'apparition des boîtes flexibles (flexbox), l'alignement horizontal était généralement obtenu avec des marges automatiques. En effet, {{cssxref("margin")}} avec auto absorbera tout l'espace disponible sur la dimension souhaité et avec une marge droite et une marge gauche automatiques, le bloc sera placé au centre :
.container {
+ width: 20em;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+
+Dans une disposition en tableau, il faut accéder à la propriété {{cssxref("vertical-align")}} afin d'aligner le contenu d'une cellule dans celle-ci.
+ +Pour de nombreux scénarios, transformer le conteneur de bloc en élément flexible fournira les options d'alignement souhaitées. Dans l'exemple qui suit, on dispose d'un conteneur avec un seul élément et ce conteneur a été transformé en élément flexible afin d'utiliser les propriétés d'alignement.
+ +{{EmbedGHLiveSample("css-examples/flexbox/alignment/intro.html", '100%', 700)}}
+ +Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes avec les boîtes flexibles (flexbox). Cette page détaille les aspects spécifiques relatifs à l'alignement et aux boîtes flexibles. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
- -Dans cet exemple, trois objets flexibles sont alignés sur l'axe principal avec {{cssxref("justify-content")}} et sur l'axe secondaire grâce à {{cssxref("align-items")}}. Le premier objet surcharge l'alignement fourni par align-itemsen utilisant center comme valeur pour la propriété {{cssxref("align-self")}}.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/flex-align-items.html", '100%', 500)}}
- -flex-directionLes boîtes flexibles respectent le mode d'écriture du document. Aussi, si on travaille sur un document en français et qu'on utilise {{cssxref("justify-content")}} avec flex-end, les éléments seront alignés à la fin du conteneur flexible. Si on utilise {{cssxref("flex-direction")}} avec la valeur row, cet alignement suivra la direction en ligne (celle selon laquelle le texte est écrit).
Toutefois, Flexbox permet de modifier l'axe principal en utilisant flex-direction avec la valeur column. Dans ce cas, justify-content alignera les objets selon la direction de bloc. Aussi, mieux vaut penser en termes d'axes principal (main axis) et d'axe secondaire (cross axis) lorsqu'on travaille sur des boîtes flexibles :
flex-direction et l'alignement sur cet axe s'effectue avec justify-contentalign-content, align-self/align-itemsjustify-self pour FlexboxSur l'axe principal et avec les boîtes flexibles, le contenu est considéré comme un seul groupe. La quantité d'espace nécessaire est calculée pour disposer les différents éléments et l'espace restant peut être réparti. La propriété justify-content contrôle la répartition de cet espace. Avec justify-content: flex-end, l'espace supplémentaire sera ajouté avant les éléments et avec justify-content: space-around, il sera placé de chaque côté.
Autrement dit, justify-self n'a pas de sens pour les boîtes flexibles car le contenu est considéré comme un seul « tenant » qui est déplacé.
Pour l'axe secondaire, align-self peut être pertinent car il peut y avoir un espace supplémentaire sur cet axe et selon lequel on peut déplacer un seul des éléments.
justify-self pourrait être utile lorsqu'on souhaite séparer un ensemble d'éléments flexibles pour créer un menu de navigation. Dans ce cas, on peut utiliser des marges automatiques avec auto. En effet, une marge avec cette valeur consommera tout l'espace disponible sur cette dimension. En définissant les marges gauche et droite avec auto, les deux côtés du bloc occuperont tout l'espace disponible et la boîte sera alors placée au centre.
En utilisant {{cssxref("margin")}} avec auto sur un élément d'un ensemble d'éléments flexibles alignés vers le début, on peut créer un tel effet. Dès qu'il n'y a plus d'espace disponible pour les marges automatiques, l'objet se comporte comme les autres objets flexibles et se réduit pour s'inscrire dans l'espace disponible.
{{EmbedGHLiveSample("css-examples/box-alignment/flexbox/auto-margins.html", '100%', 500)}}
- -gapSur l'axe principal, la propriété column-gap permettra de créer des gouttières de taille fixe de chaque côté de l'objet.
Sur l'axe secondaire, row-gap permettra d'espace les lignes adjacentes. Aussi, il faut que flex-wrap vaille wrap afin que row-gap ait un effet.
Note : À l'heure où ces lignes sont écrites, seul Firefox 63 prend en charge les propriétés gap pour les boîtes flexibles. En effet, le comportement de ces propriétés pour les dispositions flexibles est un ajout récent à la spécification.
Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes avec les boîtes flexibles (flexbox). Cette page détaille les aspects spécifiques relatifs à l'alignement et aux boîtes flexibles. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
+ +Dans cet exemple, trois objets flexibles sont alignés sur l'axe principal avec {{cssxref("justify-content")}} et sur l'axe secondaire grâce à {{cssxref("align-items")}}. Le premier objet surcharge l'alignement fourni par align-itemsen utilisant center comme valeur pour la propriété {{cssxref("align-self")}}.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/flex-align-items.html", '100%', 500)}}
+ +flex-directionLes boîtes flexibles respectent le mode d'écriture du document. Aussi, si on travaille sur un document en français et qu'on utilise {{cssxref("justify-content")}} avec flex-end, les éléments seront alignés à la fin du conteneur flexible. Si on utilise {{cssxref("flex-direction")}} avec la valeur row, cet alignement suivra la direction en ligne (celle selon laquelle le texte est écrit).
Toutefois, Flexbox permet de modifier l'axe principal en utilisant flex-direction avec la valeur column. Dans ce cas, justify-content alignera les objets selon la direction de bloc. Aussi, mieux vaut penser en termes d'axes principal (main axis) et d'axe secondaire (cross axis) lorsqu'on travaille sur des boîtes flexibles :
flex-direction et l'alignement sur cet axe s'effectue avec justify-contentalign-content, align-self/align-itemsjustify-self pour FlexboxSur l'axe principal et avec les boîtes flexibles, le contenu est considéré comme un seul groupe. La quantité d'espace nécessaire est calculée pour disposer les différents éléments et l'espace restant peut être réparti. La propriété justify-content contrôle la répartition de cet espace. Avec justify-content: flex-end, l'espace supplémentaire sera ajouté avant les éléments et avec justify-content: space-around, il sera placé de chaque côté.
Autrement dit, justify-self n'a pas de sens pour les boîtes flexibles car le contenu est considéré comme un seul « tenant » qui est déplacé.
Pour l'axe secondaire, align-self peut être pertinent car il peut y avoir un espace supplémentaire sur cet axe et selon lequel on peut déplacer un seul des éléments.
justify-self pourrait être utile lorsqu'on souhaite séparer un ensemble d'éléments flexibles pour créer un menu de navigation. Dans ce cas, on peut utiliser des marges automatiques avec auto. En effet, une marge avec cette valeur consommera tout l'espace disponible sur cette dimension. En définissant les marges gauche et droite avec auto, les deux côtés du bloc occuperont tout l'espace disponible et la boîte sera alors placée au centre.
En utilisant {{cssxref("margin")}} avec auto sur un élément d'un ensemble d'éléments flexibles alignés vers le début, on peut créer un tel effet. Dès qu'il n'y a plus d'espace disponible pour les marges automatiques, l'objet se comporte comme les autres objets flexibles et se réduit pour s'inscrire dans l'espace disponible.
{{EmbedGHLiveSample("css-examples/box-alignment/flexbox/auto-margins.html", '100%', 500)}}
+ +gapSur l'axe principal, la propriété column-gap permettra de créer des gouttières de taille fixe de chaque côté de l'objet.
Sur l'axe secondaire, row-gap permettra d'espace les lignes adjacentes. Aussi, il faut que flex-wrap vaille wrap afin que row-gap ait un effet.
Note : À l'heure où ces lignes sont écrites, seul Firefox 63 prend en charge les propriétés gap pour les boîtes flexibles. En effet, le comportement de ces propriétés pour les dispositions flexibles est un ajout récent à la spécification.
Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes avec les grilles CSS. Cette page détaille les aspects spécifiques relatifs à l'alignement et aux grilles. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
- -Dans l'exemple qui suit, on utilise une disposition en grille et le conteneur possède un espace restant après avoir disposé les pistes à largeur fixe le long de l'axe en ligne. L'espace restant est distribué grâce à la propriété justify-content. Le long de l'axe secondaire, les éléments sont alignés au sein de leurs zones avec la propriété align-items. Le premier objet surcharge la valeur fournie par align-items en utilisant align-self avec la valeur center.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/grid-align-items.html", '100%', 500)}}
- -La grille est une méthode de disposition sur deux dimensions.
- -L'axe en ligne correspond à l'axe selon lequel les mots d'une phrase sont écrits pour le mode d'écriture utilisé. Ainsi, pour une langue écrite horizontalement (comme le français ou l'arabe), l'axe en ligne sera horizontal. Pour les modes d'écriture verticaux, cet axe sera vertica.
- -
Pour aligner des éléments selon l'axe en ligne, on utilisera les propriétés commençant par justify- : {{cssxref("justify-content")}}, {{cssxref("justify-items")}} et {{cssxref("justify-self")}}.
L'axe de bloc est orthogonal à l'axe en ligne et évolue dans le sens où les blocs sont affichés sur la page (en français, par exemple, les blocs sont disposés de bas en haut).
- -Pour aligner des éléments sur l'axe de bloc, on utilisera les propriétés commençant par align- : {{cssxref("align-content")}}, {{cssxref("align-items")}} et {{cssxref("align-self")}}.

Ces propriétés permettent d'aligner individuellement chacun des éléments au sein de leur zone de grille. Les propriétés align-items et justify-items sont appliquées au conteneur de grille et définissent align-self et justify-self pour l'ensemble des sujets d'alignement. Cela signifie qu'on peut indiquer un alignement global au niveau du conteneur puis surcharger cette règle au cas par cas si besoin en utilisant align-self ou justify-self sur les éléments souhaités.
Les valeurs initiales pour align-self et justify-self sont stretch. Aussi, l'objet sera étiré sur toute la zone de grille qui lui est dédié. Une exception est apportée à cette règle lorsque l'élément possède des proportions intrinsèques (une image par exemple) ; dans ce cas, l'élément est aligné avec startsur les deux axes et l'élément n'est pas déformé.
Ces propriétés indiquent comment aligner les pistes de la grille lorsqu'il reste de l'espace à répartir. Ce scénario se produit uniquement si la somme des tailles des pistes est inférieure à la taille du conteneur de grille.
- -La spécification sur les grilles contenaient initialement les définitions des propriétés {{cssxref("row-gap")}}, {{cssxref("grid-column-gap")}} et {{cssxref("gap")}}. Les définitions de ces propriétés ont depuis été déplacées dans le module de spécification Box Alignment et ont respectivement été renommées en {{cssxref("row-gap")}}, {{cssxref("column-gap")}} et {{cssxref("gap")}}. Ainsi, elles peuvent être utilisées pour d'autres méthodes de disposition où les gouttières sont pertinentes.
- -À l'heure actuelle (juin 2018), seul Microsoft Edge prend en charge les versions non-préfixées pour ces propriétés. Il vaut donc mieux utiliser les deux versions (avec puis sans préfixe grid-) afin d'assurer une meilleure compatibilité.
Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes avec les grilles CSS. Cette page détaille les aspects spécifiques relatifs à l'alignement et aux grilles. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
+ +Dans l'exemple qui suit, on utilise une disposition en grille et le conteneur possède un espace restant après avoir disposé les pistes à largeur fixe le long de l'axe en ligne. L'espace restant est distribué grâce à la propriété justify-content. Le long de l'axe secondaire, les éléments sont alignés au sein de leurs zones avec la propriété align-items. Le premier objet surcharge la valeur fournie par align-items en utilisant align-self avec la valeur center.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/grid-align-items.html", '100%', 500)}}
+ +La grille est une méthode de disposition sur deux dimensions.
+ +L'axe en ligne correspond à l'axe selon lequel les mots d'une phrase sont écrits pour le mode d'écriture utilisé. Ainsi, pour une langue écrite horizontalement (comme le français ou l'arabe), l'axe en ligne sera horizontal. Pour les modes d'écriture verticaux, cet axe sera vertica.
+ +
Pour aligner des éléments selon l'axe en ligne, on utilisera les propriétés commençant par justify- : {{cssxref("justify-content")}}, {{cssxref("justify-items")}} et {{cssxref("justify-self")}}.
L'axe de bloc est orthogonal à l'axe en ligne et évolue dans le sens où les blocs sont affichés sur la page (en français, par exemple, les blocs sont disposés de bas en haut).
+ +Pour aligner des éléments sur l'axe de bloc, on utilisera les propriétés commençant par align- : {{cssxref("align-content")}}, {{cssxref("align-items")}} et {{cssxref("align-self")}}.

Ces propriétés permettent d'aligner individuellement chacun des éléments au sein de leur zone de grille. Les propriétés align-items et justify-items sont appliquées au conteneur de grille et définissent align-self et justify-self pour l'ensemble des sujets d'alignement. Cela signifie qu'on peut indiquer un alignement global au niveau du conteneur puis surcharger cette règle au cas par cas si besoin en utilisant align-self ou justify-self sur les éléments souhaités.
Les valeurs initiales pour align-self et justify-self sont stretch. Aussi, l'objet sera étiré sur toute la zone de grille qui lui est dédié. Une exception est apportée à cette règle lorsque l'élément possède des proportions intrinsèques (une image par exemple) ; dans ce cas, l'élément est aligné avec startsur les deux axes et l'élément n'est pas déformé.
Ces propriétés indiquent comment aligner les pistes de la grille lorsqu'il reste de l'espace à répartir. Ce scénario se produit uniquement si la somme des tailles des pistes est inférieure à la taille du conteneur de grille.
+ +La spécification sur les grilles contenaient initialement les définitions des propriétés {{cssxref("row-gap")}}, {{cssxref("grid-column-gap")}} et {{cssxref("gap")}}. Les définitions de ces propriétés ont depuis été déplacées dans le module de spécification Box Alignment et ont respectivement été renommées en {{cssxref("row-gap")}}, {{cssxref("column-gap")}} et {{cssxref("gap")}}. Ainsi, elles peuvent être utilisées pour d'autres méthodes de disposition où les gouttières sont pertinentes.
+ +À l'heure actuelle (juin 2018), seul Microsoft Edge prend en charge les versions non-préfixées pour ces propriétés. Il vaut donc mieux utiliser les deux versions (avec puis sans préfixe grid-) afin d'assurer une meilleure compatibilité.
Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes avec une disposition multi-colonnes. Cette page détaille les aspects spécifiques relatifs à l'alignement et au module Multi-Column Layout. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
- -Pour une disposition en colonne, le conteneur d'alignement est le conteneur de colonnes. Le sujet d'alignement correspond à la boîte de colonne. Les propriétés qui s'appliquent pour ce type de disposition sont détaillées ci-après.
- -Note : Le module de spécification de la disposition en colonnes (Multi-Column Layout) précède celui pour l'alignement des boîtes. Aussi, certaines des propriétés décrites ici, bien que spécifiées afin de fonctionner pour ce mode de disposition, peuvent ne pas encore être prises en charge par les navigateurs.
-align-content et justify-contentLa propriété {{cssxref("align-content")}} s'applique à l'axe de bloc et la propriété {{cssxref("justify-content")}} s'applique à l'axe en ligne. Tout espace ajouté entre les colonnes selon la distribution choisie sera ajouté entre les colonnes. Les gouttières pourront donc être plus larges que celles indiquées par la propriété {{cssxref("column-gap")}}.
- -Utiliser justify-content avec une valeur différente de normal ou stretch entraînera un dimensionnement des colonnes avec la valeur de {{cssxref("column-width")}}, définie sur le conteneur multi-colonnes. L'espace restant sera alors réparti selon la valeur de justify-content.
column-gapLa propriété {{cssxref("column-gap")}} a été définie dans des versions antérieures du module de spécification pour la disposition multi-colonne. Son rôle a été généralisé avec les autres propriétés d'espacement dans le module d'alignement des boîtes.
- -On notera que, si les autres modes de disposition utilisent une valeur initiale de 0 pour column-gap, la disposition multi-colonne utilise une valeur initiale de 1em.
Le module de spécification Box Alignment détaille le fonctionnement de l'alignement selon les différentes méthodes de disposition. Dans cet article, nous verrons comment fonctionne l'alignement des boîtes avec une disposition multi-colonnes. Cette page détaille les aspects spécifiques relatifs à l'alignement et au module Multi-Column Layout. Pour une description générale des fonctionnalités communes pour les différentes dispositions, voir la page principale sur cette spécification.
+ +Pour une disposition en colonne, le conteneur d'alignement est le conteneur de colonnes. Le sujet d'alignement correspond à la boîte de colonne. Les propriétés qui s'appliquent pour ce type de disposition sont détaillées ci-après.
+ +Note : Le module de spécification de la disposition en colonnes (Multi-Column Layout) précède celui pour l'alignement des boîtes. Aussi, certaines des propriétés décrites ici, bien que spécifiées afin de fonctionner pour ce mode de disposition, peuvent ne pas encore être prises en charge par les navigateurs.
+align-content et justify-contentLa propriété {{cssxref("align-content")}} s'applique à l'axe de bloc et la propriété {{cssxref("justify-content")}} s'applique à l'axe en ligne. Tout espace ajouté entre les colonnes selon la distribution choisie sera ajouté entre les colonnes. Les gouttières pourront donc être plus larges que celles indiquées par la propriété {{cssxref("column-gap")}}.
+ +Utiliser justify-content avec une valeur différente de normal ou stretch entraînera un dimensionnement des colonnes avec la valeur de {{cssxref("column-width")}}, définie sur le conteneur multi-colonnes. L'espace restant sera alors réparti selon la valeur de justify-content.
column-gapLa propriété {{cssxref("column-gap")}} a été définie dans des versions antérieures du module de spécification pour la disposition multi-colonne. Son rôle a été généralisé avec les autres propriétés d'espacement dans le module d'alignement des boîtes.
+ +On notera que, si les autres modes de disposition utilisent une valeur initiale de 0 pour column-gap, la disposition multi-colonne utilise une valeur initiale de 1em.
Le module de spécification CSS Box Alignment (alignement des boîtes en CSS) décrit les fonctionnalités relatives à l'alignement des boîtes pour les différents modes de disposition CSS : disposition en bloc, en tableau, disposition flexible et disposition en grille. L'objectif de ce module est d'obtenir des méthodes d'alignement cohérentes pour tout CSS. Dans ce guide, nous verrons les différents concepts utilisés par cette spécification.
- -Note : La documentation relative à chaque méthode de disposition explicitera comment le module d'alignement est appliqué pour cette méthode.
-Par le passé, CSS disposait de peu d'outils pour l'alignement. Le texte pouvait être aligné grâce à {{cssxref("text-align")}}, les blocs pouvaient être centrés avec des marges ({{cssxref("margin")}}) automatique et les tableaux ou éléments en affichage inline-block pouvaient tirer parti de {{cssxref("vertical-align")}}. Désormais, l'alignement du texte est couvert par les modules Inline Layout et CSS Text et, pour la première fois, avec le module Box Alignment, on dispose d'outils complets pour l'alignement vertical et horizontal.
- -Si vous connaissez déjà les boîtes flexibles (flexbox), vous reconnaitrez certaines propriétés faisant partie de la spécification de niveau 1 pour Flexbox. Toutefois, la spécification indique que la spécification Box Alignment est prioritaire car elle peut décrire certaines fonctionnalités supplémentaires.
- -Dans les exemples suivants, nous allons voir comment certaines des propriétés d'alignement peuvent être appliquées sur des dispositions en grille ou utilisant les boîtes flexibles.
- -Dans cet exemple avec une grille, on dispose d'un espace restant dans le conteneur après avoir placé les pistes de largeur fixe le long de l'axe en ligne (l'axe principal). L'espace est réparti grâce à la propriété {{cssxref("justify-content")}}. Sur l'axe de bloc (l'axe secondaire), l'alignement des éléments sur la grille est dicté par {{cssxref("align-items")}}. Le premier objet surcharge la règle fournie par align-items en utilisant {{cssxref("align-self")}} avec la valeur center.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/grid-align-items.html", '100%', 500)}}
- -Dans cet exemple, trois objets flexibles sont alignés le long de l'axe principal avec justify-content et selon l'axe secondaire avec align-items. Le premier objet surcharge la règle indiquée avec align-items grâce à la propriété align-self qui vaut ici center.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/flex-align-items.html", '100%', 500)}}
- -Ce module de spécification définit des termes relatifs à l'alignement afin de pouvoir se référer à ces concepts sans qu'ils soient particulièrement liés à l'implémentation particulière d'un mode de disposition. Ces concepts sont communs à l'ensemble des méthodes de disposition.
- -L'alignement est lié aux modes d'écriture et, lorsqu'on aligne un élément, on ne l'aligne pas selon des axes « physiques » (haut, droit, bas, gauche) mais selon le début ou la fin des dimensions utilisées par ce mode d'écriture. Cela permet de s'assurer que l'alignement fonctionne de la même façon, quel que soit le mode d'écriture utilisé par le document.
- -Lorsqu'on utilise les propriétés d'alignement, on aligne le contenu selon deux axes : l'axe en ligne (inline axis) et l'axe de bloc (block axis). L'axe en ligne correspond à l'axe selon lequel les mots sont écrits pour ce mode d'écriture. En français, par exemple, l'axe en ligne est un axe horizontal dirigé de la gauche vers la droite. L'axe de bloc est orthogonal à l'axe en ligne et suit la direction selon laquelle les blocs de texte sont disposés les uns à la suite des autres.
- -
Lorsqu'on aligne des objets le long de l'axe en ligne, on utilisera les propriétés qui commencent par justify-:
Lorsqu'on aligne des objets le long de l'axe de bloc, on utilisera les propriétés qui commencent par align-:
Flexbox ajoute un niveau de complexité car si {{cssxref("flex-direction")}} vaut row, ces règles sont vraies mais si flex-direction vaut column, elles sont inversées. Toutefois, lorsqu'on travaille avec les boîtes flexibles, il est préférable de penser en termes d'axe principal et d'axe secondaire plutôt qu'en termes d'axe en ligne et d'axe de bloc. Les propriétés justify- permettent toujours d'aligner selon l'axe principal et les propriétés align- d'aligner selon l'axe secondaire.
Le sujet de l'alignement est l'objet qu'on aligne. Pour justify-self ou align-self, ou lorsqu'on paramètre ces valeurs pour un group avec justify-items ou align-items, cela correspondra à la boîte de marge de l'élément sur lequel la propriété est appliqué. Les propriétés justify-content et align-content varient selon la méthode de disposition utilisée.
Le conteneur d'alignement est la boîte au sein de laquelle le sujet est aligné. Il s'agit généralement du bloc englobant du sujet de l'alignement. Un conteneur d'alignement peut contenir un ou plusieurs sujets.
- -Dans l'image qui suit, on voit un conteneur d'alignement qui contient deux sujets.
- -
Si l'alignement défini ne peut pas être respecté, on utilisera un alignement de recours (fallback alignment) qui déterminera comment gérer l'espace disponible. L'alignement de recours est défini spécifiquement pour chaque méthode de disposition.
- -Il existe trois types d'alignement définis par la spécification et qui fonctionnent avec des mots-clés.
- -Les valeurs suivantes permettent de réaliser un alignement en position et peuvent être utilisées comme valeurs pour justify-content, align-content ainsi que pour justify-self et align-self.
centerstartendself-startself-endflex-start (uniquement pour les boîtes flexibles)flex-end (uniquement pour les boîtes flexibles)leftrightEn dehors des valeurs physiques left et right qui sont relatives à la disposition physique de l'écran, les autres valeurs sont des valeurs logiques qui font référence au mode d'écriture du contenu.
Si on prendre l'exemple d'une disposition en grille : en français, utiliser justify-content avec start déplacera les éléments sur l'axe en ligne au début, ce qui correspondra, dans ce cas, à la gauche. Si on utilise cette même règle avec un document écrit en arabe, qui s'écrit de droite à gauche, la valeur start regroupera les éléments sur le côté droit de la page.
On voit ici que ces deux exemples utilisent justify-content: start mais que l'emplacement des sujets varie selon le mode d'écriture.

Les mots-clés pour l'alignement sur les lignes de bases permettent d'aligner les lignes de bases des boîtes parmi un groupe de sujets. Ces valeurs peuvent être utilisées avec justify-content, align-content ou avec justify-self et align-self.
baselinefirst baselinelast baselineL'alignement du contenu selon la ligne de base (c'est-à-dire avec justify-content ou align-content) fonctionne pour les méthodes de disposition qui organisent les objets en lignes. Les sujets sont alignés sur une ligne de base commune en ajoutant du remplissage (padding) à l'intérieur de chaque boîte si nécessaire.
L'alignement des éléments (self alignment) (c'est-à-dire avec justify-self ou align-self pour des sujets distincts ou avec justify-items et align-items pour des groupes) décale les boîtes afin de les aligner sur une ligne de base en ajoutant une marge à l'extérieur des boîtes.
Les mots-clés permettant de décrire un alignement distribué sont utilisés avec les propriétés align-content et justify-content. Ces mots-clés définissent ce qui se produit lorsqu'il reste de l'espace après que les sujets aient été affichés. Les valeurs correspondantes sont :
stretchspace-betweenspace-aroundspace-evenlyAinsi, si des objets flexibles sont alignés avec flex-start et qu'on travaille dans un mode d'écriture horizontal de gauche à droite et de haut en bas (comme le français) avec flex-direction qui vaut row, les sujets commenceront à gauche et l'espace disponible sera affiché à droite après que les sujets aient été placés.

Si on utilise justify-content: space-between sur le conteneur flexible, l'espace disponible sera alors réparti entre les objets.

Pour que ces mots-clés aient un effet, il est nécessaire qu'il reste de l'espace supplémentaire. S'il n'y a plus d'espace, aucune distribution ne pourra être effectuée.
- -Les mots-clés safe et unsafe permettent de définir le comportement obtenu lorsque le sujet d'alignement est plus grand que le conteneur. Le mot-clé safe alignera selon start si l'alignement indiqué provoque un dépassement, afin de réduire la « perte de données » visible en dehors du conteneur et sur laquelle l'utilisateur ne pourra pas avoir accès.
La valeur unsafe permet de respecter l'alignement indiqué, même si celui-ci provoque un dépassement entraînant une telle perte de données.
La spécification pour l'alignement des boîtes inclut également les propriétés gap, row-gap et column-gap. Ces propriétés permettent d'obtenir un espacement cohérents entre les objets d'une ligne ou d'une colonne pour tout mode de disposition organisant les objets de cette façon.
La propriété gap est une propriété raccourcie pour row-gap et column-gap et qui permet de définir ces deux propriétés en une seule règle.
Dans l'exemple suivant, on a une disposition en grille et on utilise la propriété raccourcie gap afin de définir un espace de 10px entre chaque piste de ligne et un espace de 2em entre chaque piste de colonne.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/grid-gap.html", '100%', 500)}}
- -Dans cet exemple, on utilise la propriété {{cssxref("gap")}} en plus de la propriété {{cssxref("gap")}}. Les propriétés d'espacement, initialement définies pour la disposition en grille, étaient préfixées par grid- et certains navigateurs ne prennent encore en charge que ces versions préfixées :
Ces versions préfixées seront maintenues comme des alias des propriétés non-préfixées. Toutefois, il est toujours possible de les dédoubler comme on le fait avec les propriétés préfixées des différents éditeurs : déclarer la propriété grid-gap puis gap avec la même valeur.
Attention, d'autres éléments peuvent rentrer en jeu et ajouter de l'espace (les mots-clés de distribution ou les marges sur les éléments par exemple).
- -Les propriétés d'alignement des boîtes CSS sont implémentées différemment selon le mode de disposition utilisé. Vous pouvez vous référer aux pages suivantes afin de connaître les détails de ces différences :
- -Le module de spécification CSS Box Alignment (alignement des boîtes en CSS) décrit les fonctionnalités relatives à l'alignement des boîtes pour les différents modes de disposition CSS : disposition en bloc, en tableau, disposition flexible et disposition en grille. L'objectif de ce module est d'obtenir des méthodes d'alignement cohérentes pour tout CSS. Dans ce guide, nous verrons les différents concepts utilisés par cette spécification.
+ +Note : La documentation relative à chaque méthode de disposition explicitera comment le module d'alignement est appliqué pour cette méthode.
+Par le passé, CSS disposait de peu d'outils pour l'alignement. Le texte pouvait être aligné grâce à {{cssxref("text-align")}}, les blocs pouvaient être centrés avec des marges ({{cssxref("margin")}}) automatique et les tableaux ou éléments en affichage inline-block pouvaient tirer parti de {{cssxref("vertical-align")}}. Désormais, l'alignement du texte est couvert par les modules Inline Layout et CSS Text et, pour la première fois, avec le module Box Alignment, on dispose d'outils complets pour l'alignement vertical et horizontal.
+ +Si vous connaissez déjà les boîtes flexibles (flexbox), vous reconnaitrez certaines propriétés faisant partie de la spécification de niveau 1 pour Flexbox. Toutefois, la spécification indique que la spécification Box Alignment est prioritaire car elle peut décrire certaines fonctionnalités supplémentaires.
+ +Dans les exemples suivants, nous allons voir comment certaines des propriétés d'alignement peuvent être appliquées sur des dispositions en grille ou utilisant les boîtes flexibles.
+ +Dans cet exemple avec une grille, on dispose d'un espace restant dans le conteneur après avoir placé les pistes de largeur fixe le long de l'axe en ligne (l'axe principal). L'espace est réparti grâce à la propriété {{cssxref("justify-content")}}. Sur l'axe de bloc (l'axe secondaire), l'alignement des éléments sur la grille est dicté par {{cssxref("align-items")}}. Le premier objet surcharge la règle fournie par align-items en utilisant {{cssxref("align-self")}} avec la valeur center.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/grid-align-items.html", '100%', 500)}}
+ +Dans cet exemple, trois objets flexibles sont alignés le long de l'axe principal avec justify-content et selon l'axe secondaire avec align-items. Le premier objet surcharge la règle indiquée avec align-items grâce à la propriété align-self qui vaut ici center.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/flex-align-items.html", '100%', 500)}}
+ +Ce module de spécification définit des termes relatifs à l'alignement afin de pouvoir se référer à ces concepts sans qu'ils soient particulièrement liés à l'implémentation particulière d'un mode de disposition. Ces concepts sont communs à l'ensemble des méthodes de disposition.
+ +L'alignement est lié aux modes d'écriture et, lorsqu'on aligne un élément, on ne l'aligne pas selon des axes « physiques » (haut, droit, bas, gauche) mais selon le début ou la fin des dimensions utilisées par ce mode d'écriture. Cela permet de s'assurer que l'alignement fonctionne de la même façon, quel que soit le mode d'écriture utilisé par le document.
+ +Lorsqu'on utilise les propriétés d'alignement, on aligne le contenu selon deux axes : l'axe en ligne (inline axis) et l'axe de bloc (block axis). L'axe en ligne correspond à l'axe selon lequel les mots sont écrits pour ce mode d'écriture. En français, par exemple, l'axe en ligne est un axe horizontal dirigé de la gauche vers la droite. L'axe de bloc est orthogonal à l'axe en ligne et suit la direction selon laquelle les blocs de texte sont disposés les uns à la suite des autres.
+ +
Lorsqu'on aligne des objets le long de l'axe en ligne, on utilisera les propriétés qui commencent par justify-:
Lorsqu'on aligne des objets le long de l'axe de bloc, on utilisera les propriétés qui commencent par align-:
Flexbox ajoute un niveau de complexité car si {{cssxref("flex-direction")}} vaut row, ces règles sont vraies mais si flex-direction vaut column, elles sont inversées. Toutefois, lorsqu'on travaille avec les boîtes flexibles, il est préférable de penser en termes d'axe principal et d'axe secondaire plutôt qu'en termes d'axe en ligne et d'axe de bloc. Les propriétés justify- permettent toujours d'aligner selon l'axe principal et les propriétés align- d'aligner selon l'axe secondaire.
Le sujet de l'alignement est l'objet qu'on aligne. Pour justify-self ou align-self, ou lorsqu'on paramètre ces valeurs pour un group avec justify-items ou align-items, cela correspondra à la boîte de marge de l'élément sur lequel la propriété est appliqué. Les propriétés justify-content et align-content varient selon la méthode de disposition utilisée.
Le conteneur d'alignement est la boîte au sein de laquelle le sujet est aligné. Il s'agit généralement du bloc englobant du sujet de l'alignement. Un conteneur d'alignement peut contenir un ou plusieurs sujets.
+ +Dans l'image qui suit, on voit un conteneur d'alignement qui contient deux sujets.
+ +
Si l'alignement défini ne peut pas être respecté, on utilisera un alignement de recours (fallback alignment) qui déterminera comment gérer l'espace disponible. L'alignement de recours est défini spécifiquement pour chaque méthode de disposition.
+ +Il existe trois types d'alignement définis par la spécification et qui fonctionnent avec des mots-clés.
+ +Les valeurs suivantes permettent de réaliser un alignement en position et peuvent être utilisées comme valeurs pour justify-content, align-content ainsi que pour justify-self et align-self.
centerstartendself-startself-endflex-start (uniquement pour les boîtes flexibles)flex-end (uniquement pour les boîtes flexibles)leftrightEn dehors des valeurs physiques left et right qui sont relatives à la disposition physique de l'écran, les autres valeurs sont des valeurs logiques qui font référence au mode d'écriture du contenu.
Si on prendre l'exemple d'une disposition en grille : en français, utiliser justify-content avec start déplacera les éléments sur l'axe en ligne au début, ce qui correspondra, dans ce cas, à la gauche. Si on utilise cette même règle avec un document écrit en arabe, qui s'écrit de droite à gauche, la valeur start regroupera les éléments sur le côté droit de la page.
On voit ici que ces deux exemples utilisent justify-content: start mais que l'emplacement des sujets varie selon le mode d'écriture.

Les mots-clés pour l'alignement sur les lignes de bases permettent d'aligner les lignes de bases des boîtes parmi un groupe de sujets. Ces valeurs peuvent être utilisées avec justify-content, align-content ou avec justify-self et align-self.
baselinefirst baselinelast baselineL'alignement du contenu selon la ligne de base (c'est-à-dire avec justify-content ou align-content) fonctionne pour les méthodes de disposition qui organisent les objets en lignes. Les sujets sont alignés sur une ligne de base commune en ajoutant du remplissage (padding) à l'intérieur de chaque boîte si nécessaire.
L'alignement des éléments (self alignment) (c'est-à-dire avec justify-self ou align-self pour des sujets distincts ou avec justify-items et align-items pour des groupes) décale les boîtes afin de les aligner sur une ligne de base en ajoutant une marge à l'extérieur des boîtes.
Les mots-clés permettant de décrire un alignement distribué sont utilisés avec les propriétés align-content et justify-content. Ces mots-clés définissent ce qui se produit lorsqu'il reste de l'espace après que les sujets aient été affichés. Les valeurs correspondantes sont :
stretchspace-betweenspace-aroundspace-evenlyAinsi, si des objets flexibles sont alignés avec flex-start et qu'on travaille dans un mode d'écriture horizontal de gauche à droite et de haut en bas (comme le français) avec flex-direction qui vaut row, les sujets commenceront à gauche et l'espace disponible sera affiché à droite après que les sujets aient été placés.

Si on utilise justify-content: space-between sur le conteneur flexible, l'espace disponible sera alors réparti entre les objets.

Pour que ces mots-clés aient un effet, il est nécessaire qu'il reste de l'espace supplémentaire. S'il n'y a plus d'espace, aucune distribution ne pourra être effectuée.
+ +Les mots-clés safe et unsafe permettent de définir le comportement obtenu lorsque le sujet d'alignement est plus grand que le conteneur. Le mot-clé safe alignera selon start si l'alignement indiqué provoque un dépassement, afin de réduire la « perte de données » visible en dehors du conteneur et sur laquelle l'utilisateur ne pourra pas avoir accès.
La valeur unsafe permet de respecter l'alignement indiqué, même si celui-ci provoque un dépassement entraînant une telle perte de données.
La spécification pour l'alignement des boîtes inclut également les propriétés gap, row-gap et column-gap. Ces propriétés permettent d'obtenir un espacement cohérents entre les objets d'une ligne ou d'une colonne pour tout mode de disposition organisant les objets de cette façon.
La propriété gap est une propriété raccourcie pour row-gap et column-gap et qui permet de définir ces deux propriétés en une seule règle.
Dans l'exemple suivant, on a une disposition en grille et on utilise la propriété raccourcie gap afin de définir un espace de 10px entre chaque piste de ligne et un espace de 2em entre chaque piste de colonne.
{{EmbedGHLiveSample("css-examples/box-alignment/overview/grid-gap.html", '100%', 500)}}
+ +Dans cet exemple, on utilise la propriété {{cssxref("gap")}} en plus de la propriété {{cssxref("gap")}}. Les propriétés d'espacement, initialement définies pour la disposition en grille, étaient préfixées par grid- et certains navigateurs ne prennent encore en charge que ces versions préfixées :
Ces versions préfixées seront maintenues comme des alias des propriétés non-préfixées. Toutefois, il est toujours possible de les dédoubler comme on le fait avec les propriétés préfixées des différents éditeurs : déclarer la propriété grid-gap puis gap avec la même valeur.
Attention, d'autres éléments peuvent rentrer en jeu et ajouter de l'espace (les mots-clés de distribution ou les marges sur les éléments par exemple).
+ +Les propriétés d'alignement des boîtes CSS sont implémentées différemment selon le mode de disposition utilisé. Vous pouvez vous référer aux pages suivantes afin de connaître les détails de ces différences :
+ +Le modèle de boîte CSS (Basic Box Model en anglais) est un module CSS qui définit les boîtes rectangulaires (y compris leurs zones de remplissage (padding) et de marges) qui sont générées pour disposer les éléments selon leur modèle de mise en forme visuelle.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box")}} | -{{Spec2("CSS3 Box")}} | -Added margin-trim |
-
| {{SpecName("CSS2.1", "box.html")}} | -{{Spec2("CSS2.1")}} | -- |
| {{SpecName("CSS1")}} | -{{Spec2("CSS1")}} | -Définition initiale. | -
Le modèle de boîte CSS (Basic Box Model en anglais) est un module CSS qui définit les boîtes rectangulaires (y compris leurs zones de remplissage (padding) et de marges) qui sont générées pour disposer les éléments selon leur modèle de mise en forme visuelle.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box")}} | +{{Spec2("CSS3 Box")}} | +Added margin-trim |
+
| {{SpecName("CSS2.1", "box.html")}} | +{{Spec2("CSS2.1")}} | ++ |
| {{SpecName("CSS1")}} | +{{Spec2("CSS1")}} | +Définition initiale. | +
La fusion des marges se produit si on a l'un de ces trois cas :
- -<p>La marge basse de ce paragraphe est fusionnée…</p> - <p>… avec la marge haute de celui-ci.</p> --
On peut avoir des cas de fusion plus complexes lorsque ces cas de figures sont combinés.
- -Ces règles s'appliquent également lorsque les marges sont égales à 0. Ainsi, la marge d'une descendant finit toujours en dehors de l'élément parent (selon la deuxième règle vue ci-avant) quelle que soit la marge de l'élément parent (nulle ou non).
- -Lorsqu'on manipule des marges négatives, la taille de la marge fusionnée est la somme de la marge positive la plus grande et de la marge négative la plus petite (celle dont la valeur est plus éloignée de 0).
- -Les marges des éléments flottants et positionnés de façon absolue ne sont jamais fusionnées.
- -<p>La marge basse de ce paragraphe est fusionnée…</p> -<p>… avec la marge haute de ce paragraphe. On a donc une marge - de <code>1.2rem</code> entre les deux.</p> - -<div>Cet élément contient deux paragraphes ! - <p>Celui-ci a une marge de <code>.4rem</code> par rapport au texte ci-dessus.</p> - <p>La marge basse de cet élément fusionne avec la marge basse - de l'élément parent. On a donc <code>2rem</code> de marge. -</p> -</div> - -<p>Bip bap bop.</p>- -
div {
- margin: 2rem 0;
- background: lavender;
-}
-
-p {
- margin: .4rem 0 1.2rem 0;
- background: yellow;
-}
-
-{{EmbedLiveSample('Exemples','100%',250)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS2.1", "box.html#collapsing-margins", "margin collapsing")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
La fusion des marges se produit si on a l'un de ces trois cas :
+ +<p>La marge basse de ce paragraphe est fusionnée…</p> + <p>… avec la marge haute de celui-ci.</p> ++
On peut avoir des cas de fusion plus complexes lorsque ces cas de figures sont combinés.
+ +Ces règles s'appliquent également lorsque les marges sont égales à 0. Ainsi, la marge d'une descendant finit toujours en dehors de l'élément parent (selon la deuxième règle vue ci-avant) quelle que soit la marge de l'élément parent (nulle ou non).
+ +Lorsqu'on manipule des marges négatives, la taille de la marge fusionnée est la somme de la marge positive la plus grande et de la marge négative la plus petite (celle dont la valeur est plus éloignée de 0).
+ +Les marges des éléments flottants et positionnés de façon absolue ne sont jamais fusionnées.
+ +<p>La marge basse de ce paragraphe est fusionnée…</p> +<p>… avec la marge haute de ce paragraphe. On a donc une marge + de <code>1.2rem</code> entre les deux.</p> + +<div>Cet élément contient deux paragraphes ! + <p>Celui-ci a une marge de <code>.4rem</code> par rapport au texte ci-dessus.</p> + <p>La marge basse de cet élément fusionne avec la marge basse + de l'élément parent. On a donc <code>2rem</code> de marge. +</p> +</div> + +<p>Bip bap bop.</p>+ +
div {
+ margin: 2rem 0;
+ background: lavender;
+}
+
+p {
+ margin: .4rem 0 1.2rem 0;
+ background: yellow;
+}
+
+{{EmbedLiveSample('Exemples','100%',250)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS2.1", "box.html#collapsing-margins", "margin collapsing")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
Les jeux de caractères pour CSS est un module CSS qui permet de définir le jeu de caractères utilisé dans les feuilles de style.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS2.1', 'syndata.html#x57', '@charset')}} | -{{Spec2('CSS2.1')}} | -Définition initiale | -
@charset{{Compat("css.at-rules.charset")}}
diff --git a/files/fr/web/css/css_charsets/index.md b/files/fr/web/css/css_charsets/index.md new file mode 100644 index 0000000000..07d2f1c593 --- /dev/null +++ b/files/fr/web/css/css_charsets/index.md @@ -0,0 +1,47 @@ +--- +title: Jeux de caractères CSS +slug: Web/CSS/CSS_Charsets +tags: + - Aperçu + - CSS + - CSS Charsets + - Reference +translation_of: Web/CSS/CSS_Charsets +original_slug: Web/CSS/Jeux_de_caractères_CSS +--- +Les jeux de caractères pour CSS est un module CSS qui permet de définir le jeu de caractères utilisé dans les feuilles de style.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS2.1', 'syndata.html#x57', '@charset')}} | +{{Spec2('CSS2.1')}} | +Définition initiale | +
@charset{{Compat("css.at-rules.charset")}}
diff --git a/files/fr/web/css/css_color/index.html b/files/fr/web/css/css_color/index.html deleted file mode 100644 index f07f716fe6..0000000000 --- a/files/fr/web/css/css_color/index.html +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: CSS Color -slug: Web/CSS/CSS_Color -tags: - - Aperçu - - CSS - - CSS Colors - - Couleurs - - Overview - - Reference -translation_of: Web/CSS/CSS_Color ---- -CSS Color est un module des spécifications CSS qui décrit la gestion des couleurs, les types de donnée associés, la fusion des couleurs et la gestion de l'opacitié. Ce module ne contient pas l'ensemble des propriétés CSS qui prennent une valeur de type {{cssxref("<color>")}}, toutefois, ces propriétés dépendent des notions et règles définies dans cette spécification.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Colors')}} | -{{Spec2('CSS4 Colors')}} | -- |
| {{SpecName('CSS3 Colors')}} | -{{Spec2('CSS3 Colors')}} | -- |
| {{SpecName('CSS2.1', 'colors.html')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
color property{{Compat("css.properties.color")}}
- -color-adjust property{{Compat("css.properties.color-adjust")}}
- -opacity property{{Compat("css.properties.opacity")}}
- -CSS Color est un module des spécifications CSS qui décrit la gestion des couleurs, les types de donnée associés, la fusion des couleurs et la gestion de l'opacitié. Ce module ne contient pas l'ensemble des propriétés CSS qui prennent une valeur de type {{cssxref("<color>")}}, toutefois, ces propriétés dépendent des notions et règles définies dans cette spécification.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Colors')}} | +{{Spec2('CSS4 Colors')}} | ++ |
| {{SpecName('CSS3 Colors')}} | +{{Spec2('CSS3 Colors')}} | ++ |
| {{SpecName('CSS2.1', 'colors.html')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
color property{{Compat("css.properties.color")}}
+ +color-adjust property{{Compat("css.properties.color-adjust")}}
+ +opacity property{{Compat("css.properties.opacity")}}
+ +La disposition sur plusieurs colonnes (« Multiple-column Layout » ou « multicol » en anglais) est un module de spécification pour organiser du contenu sur un ensemble de colonnes, à la façon des colonnes dans un journal imprimé. Dans ce guide, nous verrons comment fonctionne cette spécification et quelques cas d'exemples.
- -La disposition multi-colonnes se distinguent des autres dispositions CSS car elle fragmente le contenu, y compris les éléments descendants, en colonnes. Cela se produira de façon analogue en fragmentant sur des pages avec le module de spécification CSS Paged Media.
- -Les propriétés définies dans cette spécification sont :
- -En ajoutant column-count ou column-width à un élément, on le transforme en conteneur multi-colonnes. Les colonnes sont des boîtes anonymes et sont décrites comme des « boîtes de colonne » dans la spécification.
Afin de créer un conteneur multi-colonnes, il est nécessaire d'utiliser au moins une propriété column-* (column-count ou column-width).
column-countLa propriété column-count définit le nombre de colonnes sur lesquelles on veut afficher le contenu. Le navigateur affectera l'espace nécessaire à chaque boîte de colonne afin d'en créer le nombre indiqué.
Dans l'exemple qui suit, on utilise la propriété column-count afin de créer trois colonnes au sein de l'élément .container. Le contenu, y compris l'élément fils de .container est alors divisé en trois colonnes.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-count.html", '100%', 550)}}
- -Dans l'exemple qui précède, le contenu est intégré dans des paragraphes avec une mise en forme par défaut. Aussi, il y a une marge au dessus de chaque paragraphe. On peut voir comment cette marge décale la première ligne de texte vers le bas. Cela se produit car un conteneur multi-colonnes crée un nouveau contexte de formatage de bloc, ce qui signifie que les marges des éléments fils ne fusionnent pas avec les marges du conteneur.
- -column-widthLa propriété column-width est utilisé afin de définir la largeur optimale pour chaque boîte de colonne. Si on déclare une valeur pour column-width, le navigateur calculera combien de colonnes de cette taille peuvent être intégrées puis répartira l'espace supplémentaire équitablement entre les colonnes. Aussi mieux vaut-il voir column-width comme une largeur minimale plutôt que comme une largeur exacte, l'espace restant étant rajouté ensuite.
Il existe un seul cas où la boîte de colonne peut être plus petite que column-width : lorsqu'il n'y a qu'une seule colonne et que l'espace disponible est inférieur à column-width.
Dans l'exemple qui suit, on utilise la propriété column-width avec une valeur de 200px et on obtient donc autant de colonnes de 200 pixels que possible avec l'espace restant partagé équitablement entre les différentes colonnes.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-width.html", '100%', 550)}}
- -column-count et column-widthSi on définit les deux propriétés pour un conteneur multi-colonnes, column-count agira comme un maximum pour le nombre de colonnes. Le comportement décrit avant pour column-width aura bien lieu, jusqu'à ce que le nombre de colonnes décrit par column-count soit atteint. Ensuite, aucune autre colonne ne sera ajoutée et l'espace restant sera réparti entre les colonnes existantes (et ce même si l'espace restant permettrait de rajouter une ou plusieurs colonnes de largeur column-width).
Lorsqu'on utilise les deux propriétés ensemble, on peut obtenir un nombre de colonnes réel inférieur à la valeur fournie avec column-count.
Dans l'exemple suivant, on utilise column-width avec une valeur de 200px et column-count avec une valeur de 2. S'il y a de l'espace pour plus de deux colonnes, on aura uniquement deux colonnes. S'il n'y a pas assez d'espace pour deux colonnes de 200 pixels, il n'y en aura qu'une.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-count-width.html", '100%', 550)}}
- -columnsLa propriété raccourcie columns peut être utilisée afin de définir à la fois column-count et column-width. Si on utilise une unité de longueur, la valeur sera utilisée pour column-width, si on utilise un entier, la valeur sera utilisée pour column-count. Les deux peuvent être définies simultanément en étant séparées d'un espace.
Ce fragment de code CSS donnera donc le même résultat que pour le premier exemple où column-count vaut 3.
.container {
- columns: 3;
-}
-
-Ce fragment de code CSS donnera le même résultat que pour le deuxième exemple où column-width vaut 200px.
.container {
- columns: 200px;
-}
-
-Enfin, ce fragment de code CSS donnera le même résultat que le troisième exemple où les deux propriétés column-count et column-width sont définies.
.container {
- columns: 2 200px;
-}
-
-Dans ce guide, nous avons vu des cas d'utilisation simples avec une disposition multi-colonnes. Dans le prochain article, nous verrons comment mettre en forme chacune des colonnes.
diff --git a/files/fr/web/css/css_columns/basic_concepts_of_multicol/index.md b/files/fr/web/css/css_columns/basic_concepts_of_multicol/index.md new file mode 100644 index 0000000000..344caf8221 --- /dev/null +++ b/files/fr/web/css/css_columns/basic_concepts_of_multicol/index.md @@ -0,0 +1,93 @@ +--- +title: Concepts de base pour la disposition multi-colonnes +slug: Web/CSS/CSS_Columns/Basic_Concepts_of_Multicol +tags: + - CSS + - Guide +translation_of: Web/CSS/CSS_Columns/Basic_Concepts_of_Multicol +original_slug: Web/CSS/CSS_Columns/Concepts_base_multi-colonnes +--- +La disposition sur plusieurs colonnes (« Multiple-column Layout » ou « multicol » en anglais) est un module de spécification pour organiser du contenu sur un ensemble de colonnes, à la façon des colonnes dans un journal imprimé. Dans ce guide, nous verrons comment fonctionne cette spécification et quelques cas d'exemples.
+ +La disposition multi-colonnes se distinguent des autres dispositions CSS car elle fragmente le contenu, y compris les éléments descendants, en colonnes. Cela se produira de façon analogue en fragmentant sur des pages avec le module de spécification CSS Paged Media.
+ +Les propriétés définies dans cette spécification sont :
+ +En ajoutant column-count ou column-width à un élément, on le transforme en conteneur multi-colonnes. Les colonnes sont des boîtes anonymes et sont décrites comme des « boîtes de colonne » dans la spécification.
Afin de créer un conteneur multi-colonnes, il est nécessaire d'utiliser au moins une propriété column-* (column-count ou column-width).
column-countLa propriété column-count définit le nombre de colonnes sur lesquelles on veut afficher le contenu. Le navigateur affectera l'espace nécessaire à chaque boîte de colonne afin d'en créer le nombre indiqué.
Dans l'exemple qui suit, on utilise la propriété column-count afin de créer trois colonnes au sein de l'élément .container. Le contenu, y compris l'élément fils de .container est alors divisé en trois colonnes.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-count.html", '100%', 550)}}
+ +Dans l'exemple qui précède, le contenu est intégré dans des paragraphes avec une mise en forme par défaut. Aussi, il y a une marge au dessus de chaque paragraphe. On peut voir comment cette marge décale la première ligne de texte vers le bas. Cela se produit car un conteneur multi-colonnes crée un nouveau contexte de formatage de bloc, ce qui signifie que les marges des éléments fils ne fusionnent pas avec les marges du conteneur.
+ +column-widthLa propriété column-width est utilisé afin de définir la largeur optimale pour chaque boîte de colonne. Si on déclare une valeur pour column-width, le navigateur calculera combien de colonnes de cette taille peuvent être intégrées puis répartira l'espace supplémentaire équitablement entre les colonnes. Aussi mieux vaut-il voir column-width comme une largeur minimale plutôt que comme une largeur exacte, l'espace restant étant rajouté ensuite.
Il existe un seul cas où la boîte de colonne peut être plus petite que column-width : lorsqu'il n'y a qu'une seule colonne et que l'espace disponible est inférieur à column-width.
Dans l'exemple qui suit, on utilise la propriété column-width avec une valeur de 200px et on obtient donc autant de colonnes de 200 pixels que possible avec l'espace restant partagé équitablement entre les différentes colonnes.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-width.html", '100%', 550)}}
+ +column-count et column-widthSi on définit les deux propriétés pour un conteneur multi-colonnes, column-count agira comme un maximum pour le nombre de colonnes. Le comportement décrit avant pour column-width aura bien lieu, jusqu'à ce que le nombre de colonnes décrit par column-count soit atteint. Ensuite, aucune autre colonne ne sera ajoutée et l'espace restant sera réparti entre les colonnes existantes (et ce même si l'espace restant permettrait de rajouter une ou plusieurs colonnes de largeur column-width).
Lorsqu'on utilise les deux propriétés ensemble, on peut obtenir un nombre de colonnes réel inférieur à la valeur fournie avec column-count.
Dans l'exemple suivant, on utilise column-width avec une valeur de 200px et column-count avec une valeur de 2. S'il y a de l'espace pour plus de deux colonnes, on aura uniquement deux colonnes. S'il n'y a pas assez d'espace pour deux colonnes de 200 pixels, il n'y en aura qu'une.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-count-width.html", '100%', 550)}}
+ +columnsLa propriété raccourcie columns peut être utilisée afin de définir à la fois column-count et column-width. Si on utilise une unité de longueur, la valeur sera utilisée pour column-width, si on utilise un entier, la valeur sera utilisée pour column-count. Les deux peuvent être définies simultanément en étant séparées d'un espace.
Ce fragment de code CSS donnera donc le même résultat que pour le premier exemple où column-count vaut 3.
.container {
+ columns: 3;
+}
+
+Ce fragment de code CSS donnera le même résultat que pour le deuxième exemple où column-width vaut 200px.
.container {
+ columns: 200px;
+}
+
+Enfin, ce fragment de code CSS donnera le même résultat que le troisième exemple où les deux propriétés column-count et column-width sont définies.
.container {
+ columns: 2 200px;
+}
+
+Dans ce guide, nous avons vu des cas d'utilisation simples avec une disposition multi-colonnes. Dans le prochain article, nous verrons comment mettre en forme chacune des colonnes.
diff --git a/files/fr/web/css/css_columns/handling_content_breaks_in_multicol/index.html b/files/fr/web/css/css_columns/handling_content_breaks_in_multicol/index.html deleted file mode 100644 index fd6bd631ba..0000000000 --- a/files/fr/web/css/css_columns/handling_content_breaks_in_multicol/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Gérer la rupture du contenu entre les colonnes -slug: Web/CSS/CSS_Columns/Handling_content_breaks_in_multicol -tags: - - CSS - - Guide -translation_of: Web/CSS/CSS_Columns/Handling_content_breaks_in_multicol -original_slug: Web/CSS/CSS_Columns/Gérer_rupture_contenu_entre_colonnes ---- -Le contenu est coupé entre les colonnes d'une disposition multi-colonnes de la même façon qu'il est coupé entre chaque page d'un média paginé. Dans ces deux contextes, la façon dont on contrôle l'emplacement et la coupure se paramètre grâce aux propriétés décrites dans le module de spécification CSS Fragmentation. Dans ce guide, nous verrons comment fonctionne la fragmentation en multi-colonnes.
- -Le module de spécification CSS Fragmentation détaille la façon dont le contenu peut être coupé entre les conteneur de fragmentation. Pour une disposition multi-colonnes, le conteneur de fragmentation correspond à la boîte de colonne.
- -Le contenu d'une boîte de colonne peut être varié et une coupure peut être malvenue à certains endroits. On préfèrerait par exemple qu'une légende ne soit pas séparée de l'image entre une colonne et la suivante. Les propriétés relatives à la fragmentation permettent de contrôler certains aspects de ces coupures.
- -Voici plusieurs emplacements où on peut souhaiter contrôler les ruptures :
- -<figure>Pour contrôler la façon dont le contenu est coupé à l'intérieur d'une boîte, on pourra utiliser la propriété {{cssxref("break-inside")}}. Cette propriété peut prendre les valeurs suivantes :
- -autoavoidavoid-pageavoid-columnavoid-regionDans l'exemple qui suit, on a appliqué break-inside sur l'élément figure afin d'éviter que la légende soit séparée de l'image.
{{EmbedGHLiveSample("css-examples/multicol/fragmentation/break-inside.html", '100%', 800)}}
- -Les propriétés {{cssxref("break-before")}} et {{cssxref("break-after")}} contrôlent respectivement les ruptures avant et après les éléments. Dans une disposition multi-colonnes, ces propriétés peuvent être utilisées avec les valeurs suivantes :
- -autoavoidavoid-columncolumnAvec l'exemple suivant, on force une rupture avant chaque élément de titre h2.
{{EmbedGHLiveSample("css-examples/multicol/fragmentation/break-before.html", '100%', 800)}}
- -On peut aussi utiliser les propriétés {{cssxref("orphans")}} et {{cssxref("widows")}}. La propriété orphans contrôle le nombre de lignes qui restent à la fin d'un fragment et la propriété widows contrôle le nombre de lignes qui restent au début d'un fragment.
Les propriétés orphans et widows prennent un entier comme valeur et qui indique le nombre de lignes à avoir à la fin ou au début d'un fragment. On notera que ces propriétés ne fonctionnent qu'à l'intérieur d'un conteneur de bloc (un paragraphe par exemple). Si le bloc contient un nombre de lignes inférieur au nombre précisé pour la propriété, toutes les lignes resteront groupées ensemble.
Dans l'exemple ci-après, on utilise la propriété orphans pour contrôler le nombre de lignes conservées à la fin d'une colonne. Vous pouvez modifier la valeur afin de voir l'impact sur la rupture du contenu.
{{EmbedGHLiveSample("css-examples/multicol/fragmentation/orphans.html", '100%', 800)}}
- -Si on souhaite prévenir la rupture à de nombreux endroits, le navigateur sera quand même obligé de couper le contenu entre les colonnes. D'une certaine façon, ces propriétés agissent plutôt comme des suggestions envers le moteur que comme des ordres.
- -De plus, la prise en charge de ces propriétés n'est pas la plus homogène possible entre les navigateurs. Vous pouvez vous référer aux tableaux de compatibilité des pages de chaque propriété pour en savoir plus. Dans la plupart des cas, mieux vaudra encore laisser gérer le système plutôt que d'avoir trop de ruptures aux endroits indésirables.
diff --git a/files/fr/web/css/css_columns/handling_content_breaks_in_multicol/index.md b/files/fr/web/css/css_columns/handling_content_breaks_in_multicol/index.md new file mode 100644 index 0000000000..fd6bd631ba --- /dev/null +++ b/files/fr/web/css/css_columns/handling_content_breaks_in_multicol/index.md @@ -0,0 +1,73 @@ +--- +title: Gérer la rupture du contenu entre les colonnes +slug: Web/CSS/CSS_Columns/Handling_content_breaks_in_multicol +tags: + - CSS + - Guide +translation_of: Web/CSS/CSS_Columns/Handling_content_breaks_in_multicol +original_slug: Web/CSS/CSS_Columns/Gérer_rupture_contenu_entre_colonnes +--- +Le contenu est coupé entre les colonnes d'une disposition multi-colonnes de la même façon qu'il est coupé entre chaque page d'un média paginé. Dans ces deux contextes, la façon dont on contrôle l'emplacement et la coupure se paramètre grâce aux propriétés décrites dans le module de spécification CSS Fragmentation. Dans ce guide, nous verrons comment fonctionne la fragmentation en multi-colonnes.
+ +Le module de spécification CSS Fragmentation détaille la façon dont le contenu peut être coupé entre les conteneur de fragmentation. Pour une disposition multi-colonnes, le conteneur de fragmentation correspond à la boîte de colonne.
+ +Le contenu d'une boîte de colonne peut être varié et une coupure peut être malvenue à certains endroits. On préfèrerait par exemple qu'une légende ne soit pas séparée de l'image entre une colonne et la suivante. Les propriétés relatives à la fragmentation permettent de contrôler certains aspects de ces coupures.
+ +Voici plusieurs emplacements où on peut souhaiter contrôler les ruptures :
+ +<figure>Pour contrôler la façon dont le contenu est coupé à l'intérieur d'une boîte, on pourra utiliser la propriété {{cssxref("break-inside")}}. Cette propriété peut prendre les valeurs suivantes :
+ +autoavoidavoid-pageavoid-columnavoid-regionDans l'exemple qui suit, on a appliqué break-inside sur l'élément figure afin d'éviter que la légende soit séparée de l'image.
{{EmbedGHLiveSample("css-examples/multicol/fragmentation/break-inside.html", '100%', 800)}}
+ +Les propriétés {{cssxref("break-before")}} et {{cssxref("break-after")}} contrôlent respectivement les ruptures avant et après les éléments. Dans une disposition multi-colonnes, ces propriétés peuvent être utilisées avec les valeurs suivantes :
+ +autoavoidavoid-columncolumnAvec l'exemple suivant, on force une rupture avant chaque élément de titre h2.
{{EmbedGHLiveSample("css-examples/multicol/fragmentation/break-before.html", '100%', 800)}}
+ +On peut aussi utiliser les propriétés {{cssxref("orphans")}} et {{cssxref("widows")}}. La propriété orphans contrôle le nombre de lignes qui restent à la fin d'un fragment et la propriété widows contrôle le nombre de lignes qui restent au début d'un fragment.
Les propriétés orphans et widows prennent un entier comme valeur et qui indique le nombre de lignes à avoir à la fin ou au début d'un fragment. On notera que ces propriétés ne fonctionnent qu'à l'intérieur d'un conteneur de bloc (un paragraphe par exemple). Si le bloc contient un nombre de lignes inférieur au nombre précisé pour la propriété, toutes les lignes resteront groupées ensemble.
Dans l'exemple ci-après, on utilise la propriété orphans pour contrôler le nombre de lignes conservées à la fin d'une colonne. Vous pouvez modifier la valeur afin de voir l'impact sur la rupture du contenu.
{{EmbedGHLiveSample("css-examples/multicol/fragmentation/orphans.html", '100%', 800)}}
+ +Si on souhaite prévenir la rupture à de nombreux endroits, le navigateur sera quand même obligé de couper le contenu entre les colonnes. D'une certaine façon, ces propriétés agissent plutôt comme des suggestions envers le moteur que comme des ordres.
+ +De plus, la prise en charge de ces propriétés n'est pas la plus homogène possible entre les navigateurs. Vous pouvez vous référer aux tableaux de compatibilité des pages de chaque propriété pour en savoir plus. Dans la plupart des cas, mieux vaudra encore laisser gérer le système plutôt que d'avoir trop de ruptures aux endroits indésirables.
diff --git a/files/fr/web/css/css_columns/handling_overflow_in_multicol/index.html b/files/fr/web/css/css_columns/handling_overflow_in_multicol/index.html deleted file mode 100644 index e37d560b61..0000000000 --- a/files/fr/web/css/css_columns/handling_overflow_in_multicol/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Gestion du dépassement en multi-colonnes -slug: Web/CSS/CSS_Columns/Handling_Overflow_in_Multicol -tags: - - CSS - - Guide -translation_of: Web/CSS/CSS_Columns/Handling_Overflow_in_Multicol -original_slug: Web/CSS/CSS_Columns/Gestion_dépassement_multi-colonnes ---- -Dans ce guide, nous verrons comment gérer le dépassement avec une disposition multi-colonnes. Le dépassement peut avoir lieu pour chaque boîte de colonne ou lorsqu'il y a plus de contenu que de place dans le conteneur.
- -On peut avoir un dépassement lorsqu'un objet est plus grand que la taille de la boîte de la colonne. Cela peut notamment se produire lorsqu'on a une image dans une colonne et que la largeur de cette image est supérieure à la valeur de column-width ou à la largeur des colonnes selon le nombre indiqué avec column-count.
Dans cette situation, le contenu dépasse sur la prochaine colonne et n'est pas rogné à la boîte de la colonne. Voici un exemple qui suit et une illustration du résultat attendu (les navigateurs actuels pouvant afficher un résultat différent).
- -{{EmbedGHLiveSample("css-examples/multicol/overflow/image.html", '100%', 800)}}
- -
Si on veut une image qui se réduise à la boîte de la colonne, on pourra utiliser les solutions pour les images adaptatives et max-width: 100% pour y parvenir.
{{EmbedGHLiveSample("css-examples/multicol/overflow/image-max-width.html", '100%', 800)}}
- -La façon dont les colonnes dépassent dépend du contexte dans lequel le document est affiché : est-ce un média fragmenté (pour l'impression par exemple) ou un média continu (une page web par exemple) ?
- -Pour un média fragmenté, une fois qu'un fragment (ex. une page) est rempli de colonnes, les colonnes suivantes seront ajoutées sur le fragment suivant (ex. une nouvelle page) et ainsi de suite. Pour les médias continus, les colonnes dépasseront selon l'axe en ligne. Pour le Web, cela signifie qu'on aura une barre de défilement horizontal.
- -Dans l'exemple qui suit, on peut observer un tel dépassement. Le conteneur multi-colonnes possède une hauteur fixée et il y a plus de texte que d'espace nécessaire pour créer des colonnes. On a alors des colonnes créées en dehors du conteneur.
- -{{EmbedGHLiveSample("css-examples/multicol/overflow/overflow-inline.html", '100%', 800)}}
- -Note : On peut souhaiter qu'une future version de la spécification permette de préciser la direction selon laquelle les colonnes qui dépassent sont affichées et ainsi pouvoir dépasser dans la direction de bloc (et non uniquement selon l'axe en ligne).
-Lorsque les colonnes sont plus hautes que la zone d'affichage (viewport), par défaut, le lecteur devra faire défiler le contenu verticalement pour tout voir, dégradant ainsi l'ergonomie. Pour éviter ce problème, on peut n'appliquer les colonnes que lorsque la hauteur est suffisante.
- -Dans l'exemple qui suit, on utilise par exemple une requête média avec min-height pour vérifier la hauteur avant d'appliquer les propriétés relatives aux colonnes.
{{EmbedGHLiveSample("css-examples/multicol/overflow/min-height.html", '100%', 800)}}
- -Dans le dernier guide de cette série, nous verrons comment la disposition multi-colonnes interagit avec le module de spécification Fragmentation et nous permet de contrôler la façon dont le contenu est coupé entre les colonnes.
diff --git a/files/fr/web/css/css_columns/handling_overflow_in_multicol/index.md b/files/fr/web/css/css_columns/handling_overflow_in_multicol/index.md new file mode 100644 index 0000000000..e37d560b61 --- /dev/null +++ b/files/fr/web/css/css_columns/handling_overflow_in_multicol/index.md @@ -0,0 +1,50 @@ +--- +title: Gestion du dépassement en multi-colonnes +slug: Web/CSS/CSS_Columns/Handling_Overflow_in_Multicol +tags: + - CSS + - Guide +translation_of: Web/CSS/CSS_Columns/Handling_Overflow_in_Multicol +original_slug: Web/CSS/CSS_Columns/Gestion_dépassement_multi-colonnes +--- +Dans ce guide, nous verrons comment gérer le dépassement avec une disposition multi-colonnes. Le dépassement peut avoir lieu pour chaque boîte de colonne ou lorsqu'il y a plus de contenu que de place dans le conteneur.
+ +On peut avoir un dépassement lorsqu'un objet est plus grand que la taille de la boîte de la colonne. Cela peut notamment se produire lorsqu'on a une image dans une colonne et que la largeur de cette image est supérieure à la valeur de column-width ou à la largeur des colonnes selon le nombre indiqué avec column-count.
Dans cette situation, le contenu dépasse sur la prochaine colonne et n'est pas rogné à la boîte de la colonne. Voici un exemple qui suit et une illustration du résultat attendu (les navigateurs actuels pouvant afficher un résultat différent).
+ +{{EmbedGHLiveSample("css-examples/multicol/overflow/image.html", '100%', 800)}}
+ +
Si on veut une image qui se réduise à la boîte de la colonne, on pourra utiliser les solutions pour les images adaptatives et max-width: 100% pour y parvenir.
{{EmbedGHLiveSample("css-examples/multicol/overflow/image-max-width.html", '100%', 800)}}
+ +La façon dont les colonnes dépassent dépend du contexte dans lequel le document est affiché : est-ce un média fragmenté (pour l'impression par exemple) ou un média continu (une page web par exemple) ?
+ +Pour un média fragmenté, une fois qu'un fragment (ex. une page) est rempli de colonnes, les colonnes suivantes seront ajoutées sur le fragment suivant (ex. une nouvelle page) et ainsi de suite. Pour les médias continus, les colonnes dépasseront selon l'axe en ligne. Pour le Web, cela signifie qu'on aura une barre de défilement horizontal.
+ +Dans l'exemple qui suit, on peut observer un tel dépassement. Le conteneur multi-colonnes possède une hauteur fixée et il y a plus de texte que d'espace nécessaire pour créer des colonnes. On a alors des colonnes créées en dehors du conteneur.
+ +{{EmbedGHLiveSample("css-examples/multicol/overflow/overflow-inline.html", '100%', 800)}}
+ +Note : On peut souhaiter qu'une future version de la spécification permette de préciser la direction selon laquelle les colonnes qui dépassent sont affichées et ainsi pouvoir dépasser dans la direction de bloc (et non uniquement selon l'axe en ligne).
+Lorsque les colonnes sont plus hautes que la zone d'affichage (viewport), par défaut, le lecteur devra faire défiler le contenu verticalement pour tout voir, dégradant ainsi l'ergonomie. Pour éviter ce problème, on peut n'appliquer les colonnes que lorsque la hauteur est suffisante.
+ +Dans l'exemple qui suit, on utilise par exemple une requête média avec min-height pour vérifier la hauteur avant d'appliquer les propriétés relatives aux colonnes.
{{EmbedGHLiveSample("css-examples/multicol/overflow/min-height.html", '100%', 800)}}
+ +Dans le dernier guide de cette série, nous verrons comment la disposition multi-colonnes interagit avec le module de spécification Fragmentation et nous permet de contrôler la façon dont le contenu est coupé entre les colonnes.
diff --git a/files/fr/web/css/css_columns/index.html b/files/fr/web/css/css_columns/index.html deleted file mode 100644 index 80a7ed7f0a..0000000000 --- a/files/fr/web/css/css_columns/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Colonnes CSS -slug: Web/CSS/CSS_Columns -tags: - - Aperçu - - CSS - - CSS Multi-column Layout - - Reference -translation_of: Web/CSS/CSS_Columns ---- -Les colonnes CSS (CSS Multi-column Layout en anglais) forment un module CSS qui définit le comportement d'une disposition en colonnes, qui permet de décrire comment le contenu doit être réparti entre les colonnes et qui détaille comment sont gérées les espaces et les règles entre les colonnes.
- -Dans l'exemple qui suit, on applique la propriété {{cssxref("column-count")}} sur l'élément qui possède la classe container. La valeur de la propriété column-count est 3, et le contenu est donc arrangé entre trois colonnes de tailles égales.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-count.html", '100%', 550)}}
- -La disposition en colonnes est fortement liée aux média paginés pour lesquels chaque colonne devient un fragment (de la même façon qu'une page imprimée devient un fragment d'un document). Aussi, les propriétés désormais définies dans le module de spécification CSS Fragmentation sont nécessaires afin de contrôler la façon dont le contenu est scindé entre les colonnes.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Multicol')}} | -{{Spec2('CSS3 Multicol')}} | -Définition initiale. | -
Les autres modules liées aux dispositions possibles en CSS :
- - diff --git a/files/fr/web/css/css_columns/index.md b/files/fr/web/css/css_columns/index.md new file mode 100644 index 0000000000..80a7ed7f0a --- /dev/null +++ b/files/fr/web/css/css_columns/index.md @@ -0,0 +1,93 @@ +--- +title: Colonnes CSS +slug: Web/CSS/CSS_Columns +tags: + - Aperçu + - CSS + - CSS Multi-column Layout + - Reference +translation_of: Web/CSS/CSS_Columns +--- +Les colonnes CSS (CSS Multi-column Layout en anglais) forment un module CSS qui définit le comportement d'une disposition en colonnes, qui permet de décrire comment le contenu doit être réparti entre les colonnes et qui détaille comment sont gérées les espaces et les règles entre les colonnes.
+ +Dans l'exemple qui suit, on applique la propriété {{cssxref("column-count")}} sur l'élément qui possède la classe container. La valeur de la propriété column-count est 3, et le contenu est donc arrangé entre trois colonnes de tailles égales.
{{EmbedGHLiveSample("css-examples/multicol/basics/column-count.html", '100%', 550)}}
+ +La disposition en colonnes est fortement liée aux média paginés pour lesquels chaque colonne devient un fragment (de la même façon qu'une page imprimée devient un fragment d'un document). Aussi, les propriétés désormais définies dans le module de spécification CSS Fragmentation sont nécessaires afin de contrôler la façon dont le contenu est scindé entre les colonnes.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Multicol')}} | +{{Spec2('CSS3 Multicol')}} | +Définition initiale. | +
Les autres modules liées aux dispositions possibles en CSS :
+ + diff --git a/files/fr/web/css/css_columns/spanning_columns/index.html b/files/fr/web/css/css_columns/spanning_columns/index.html deleted file mode 100644 index 9aa5652293..0000000000 --- a/files/fr/web/css/css_columns/spanning_columns/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Répartir et équilibrer le contenu entre les colonnes -slug: Web/CSS/CSS_Columns/Spanning_Columns -tags: - - CSS - - Guide -translation_of: Web/CSS/CSS_Columns/Spanning_Columns -original_slug: Web/CSS/CSS_Columns/Répartir_entre_les_colonnes ---- -Dans ce guide, nous verrons comment répartir les éléments sur plusieurs colonnes et comment contrôler le remplissage des colonnes.
- -Note : Les fonctionnalités décrites dans cet article ne sont pas aussi bien prises en charge que celles décrites dans les deux articles précédents. Pour plus d'informations, nous vous invitons à vous référer aux tableaux de compatibilité à la fin des pages décrivant chacune des propriétés.
-Afin qu'un élément s'étende sur plusieurs colonnes, on peut utiliser la propriété {{cssxref("column-span")}} avec la valeur all. Ainsi, l'élément concerné s'étendra sur l'ensemble des colonnes.
N'importe quel élément descendant du conteneur multi-colonnes peut être étendu de cette façon, que ce soit un titre qui est un élément fils direct ou un titre contenu dans une section contenue dans le conteneur.
- -Dans l'exemple qui suit, on a column-span: all appliqué sur l'élément h2 qui s'étend ainsi sur toutes les colonnes.
{{EmbedGHLiveSample("css-examples/multicol/spanning/h2-span.html", '100%', 800)}}
- -Dans ce deuxième exemple, le titre est à l'intérieur de l'élément {{HTMLElement("article")}} mais le contenu est bien réparti comme voulu.
- -{{EmbedGHLiveSample("css-examples/multicol/spanning/nested-h2-span.html", '100%', 800)}}
- -Lorsqu'un élément est étendu, il brise le flux des colonnes et un nouvel ensemble de boîtes de colonnes sont créées. Ce n'est pas le contenu qui « reprend » sous l'élément étendu.
- -column-spanAvec la spécification de niveau 1, seules deux valeurs sont autorisées pour column-span : none qui est la valeur initiale et qui indique que l'élément ne s'étendra pas (il restera sur une colonne) et all qui indiquera que l'élément s'étendra sur l'ensemble des colonnes. Ainsi, on ne pourra pas étendre spécifiquement un élément sur deux ou trois colonnes.
Si l'élément qui s'étend est à l'intérieur d'un élément qui possède des marges, du remplissage et une bordure ou une couleur d'arrière-plan, on pourra avoir l'élément qui s'étend et qui recouvre le reste. Aussi, attention à bien gérer ce cas lorsqu'on étend un élément sur plusieurs colonnes.
- -{{EmbedGHLiveSample("css-examples/multicol/spanning/mpb-span.html", '100%', 800)}}
- -De plus, si un élément qui s'étend sur les colonnes se retrouve plus loin dans le contenu, on peut avoir un comportement hasardeux s'il n'y a pas assez de contenu après l'élément étendu pour créer d'autres colonnes. Aussi, mieux vaudra utiliser column-span avec précaution pour éviter ces effets indésirables.
Lorsque toutes les colonnes possèdent environ la même quantité de contenu, on parle d'un ensemble équilibré. On pourra jouer sur le remplissage et l'équilibrage des colonnes lorsque la quantité de contenu est inférieure à la quantité d'espace fournie, notamment lorsque le conteneur a une hauteur donnée.
- -La valeur initiale de la propriété {{cssxref("column-fill")}}, dans une disposition multi-colonnes, est balance. Cette valeur signifie que les colonnes doivent être aussi équilibrées que possible. Pour les contextes fragmentés tels que les médias paginés, seul le dernier fragment est équilibré. Cela signifie que c'est sur la dernière page du document que l'ensemble des colonnes sera équilibré.
La valeur balance-all permet quant à elle d'avoir des colonnes équilibrées sur l'ensemble des fragments (et pas uniquement sur le dernier).
Dans cet exemple, on a des colonnes qui contiennent une image et du texte qui sont équilibrées. L'image ne peut pas être divisée et est placée dans la première colonne puis les colonnes suivantes contiennent du texte sur la même hauteur que l'image.
- -{{EmbedGHLiveSample("css-examples/multicol/balancing/balance.html", '100%', 550)}}
- -auto est une autre valeur qui peut être utilisée avec column-fill. Avec cette valeur, plutôt que d'équilibrer les colonnes, celles-ci sont remplies les unes après les autres. Dans ce dernier exemple, on a modifié column-fill pour utiliser auto et les colonnes sont désormais remplies dans l'ordre en suivant la hauteur du conteneur multi-colonnes. On a ainsi quelques colonnes vides à la fin.
{{EmbedGHLiveSample("css-examples/multicol/balancing/auto.html", '100%', 550)}}
- -On notera que l'équilibrage des colonnes n'est pas pris en charge de façon homogène par les navigateurs. Aussi, si vous l'utilisez, vérifiez vos résultats dans les différents navigateurs pour contrôler l'effet obtenu. Vous pouvez aussi consulter les tableaux de compatibilité des navigateurs à la fin des pages de chacune des propriétés.
- -Dans le prochain guide, nous verrons comment gérer le dépassement au sein d'un conteneur multi-colonnes, à l'intérieur des colonnes et lorsqu'il y a plus de contenu que le conteneur peut en avoir.
diff --git a/files/fr/web/css/css_columns/spanning_columns/index.md b/files/fr/web/css/css_columns/spanning_columns/index.md new file mode 100644 index 0000000000..9aa5652293 --- /dev/null +++ b/files/fr/web/css/css_columns/spanning_columns/index.md @@ -0,0 +1,64 @@ +--- +title: Répartir et équilibrer le contenu entre les colonnes +slug: Web/CSS/CSS_Columns/Spanning_Columns +tags: + - CSS + - Guide +translation_of: Web/CSS/CSS_Columns/Spanning_Columns +original_slug: Web/CSS/CSS_Columns/Répartir_entre_les_colonnes +--- +Dans ce guide, nous verrons comment répartir les éléments sur plusieurs colonnes et comment contrôler le remplissage des colonnes.
+ +Note : Les fonctionnalités décrites dans cet article ne sont pas aussi bien prises en charge que celles décrites dans les deux articles précédents. Pour plus d'informations, nous vous invitons à vous référer aux tableaux de compatibilité à la fin des pages décrivant chacune des propriétés.
+Afin qu'un élément s'étende sur plusieurs colonnes, on peut utiliser la propriété {{cssxref("column-span")}} avec la valeur all. Ainsi, l'élément concerné s'étendra sur l'ensemble des colonnes.
N'importe quel élément descendant du conteneur multi-colonnes peut être étendu de cette façon, que ce soit un titre qui est un élément fils direct ou un titre contenu dans une section contenue dans le conteneur.
+ +Dans l'exemple qui suit, on a column-span: all appliqué sur l'élément h2 qui s'étend ainsi sur toutes les colonnes.
{{EmbedGHLiveSample("css-examples/multicol/spanning/h2-span.html", '100%', 800)}}
+ +Dans ce deuxième exemple, le titre est à l'intérieur de l'élément {{HTMLElement("article")}} mais le contenu est bien réparti comme voulu.
+ +{{EmbedGHLiveSample("css-examples/multicol/spanning/nested-h2-span.html", '100%', 800)}}
+ +Lorsqu'un élément est étendu, il brise le flux des colonnes et un nouvel ensemble de boîtes de colonnes sont créées. Ce n'est pas le contenu qui « reprend » sous l'élément étendu.
+ +column-spanAvec la spécification de niveau 1, seules deux valeurs sont autorisées pour column-span : none qui est la valeur initiale et qui indique que l'élément ne s'étendra pas (il restera sur une colonne) et all qui indiquera que l'élément s'étendra sur l'ensemble des colonnes. Ainsi, on ne pourra pas étendre spécifiquement un élément sur deux ou trois colonnes.
Si l'élément qui s'étend est à l'intérieur d'un élément qui possède des marges, du remplissage et une bordure ou une couleur d'arrière-plan, on pourra avoir l'élément qui s'étend et qui recouvre le reste. Aussi, attention à bien gérer ce cas lorsqu'on étend un élément sur plusieurs colonnes.
+ +{{EmbedGHLiveSample("css-examples/multicol/spanning/mpb-span.html", '100%', 800)}}
+ +De plus, si un élément qui s'étend sur les colonnes se retrouve plus loin dans le contenu, on peut avoir un comportement hasardeux s'il n'y a pas assez de contenu après l'élément étendu pour créer d'autres colonnes. Aussi, mieux vaudra utiliser column-span avec précaution pour éviter ces effets indésirables.
Lorsque toutes les colonnes possèdent environ la même quantité de contenu, on parle d'un ensemble équilibré. On pourra jouer sur le remplissage et l'équilibrage des colonnes lorsque la quantité de contenu est inférieure à la quantité d'espace fournie, notamment lorsque le conteneur a une hauteur donnée.
+ +La valeur initiale de la propriété {{cssxref("column-fill")}}, dans une disposition multi-colonnes, est balance. Cette valeur signifie que les colonnes doivent être aussi équilibrées que possible. Pour les contextes fragmentés tels que les médias paginés, seul le dernier fragment est équilibré. Cela signifie que c'est sur la dernière page du document que l'ensemble des colonnes sera équilibré.
La valeur balance-all permet quant à elle d'avoir des colonnes équilibrées sur l'ensemble des fragments (et pas uniquement sur le dernier).
Dans cet exemple, on a des colonnes qui contiennent une image et du texte qui sont équilibrées. L'image ne peut pas être divisée et est placée dans la première colonne puis les colonnes suivantes contiennent du texte sur la même hauteur que l'image.
+ +{{EmbedGHLiveSample("css-examples/multicol/balancing/balance.html", '100%', 550)}}
+ +auto est une autre valeur qui peut être utilisée avec column-fill. Avec cette valeur, plutôt que d'équilibrer les colonnes, celles-ci sont remplies les unes après les autres. Dans ce dernier exemple, on a modifié column-fill pour utiliser auto et les colonnes sont désormais remplies dans l'ordre en suivant la hauteur du conteneur multi-colonnes. On a ainsi quelques colonnes vides à la fin.
{{EmbedGHLiveSample("css-examples/multicol/balancing/auto.html", '100%', 550)}}
+ +On notera que l'équilibrage des colonnes n'est pas pris en charge de façon homogène par les navigateurs. Aussi, si vous l'utilisez, vérifiez vos résultats dans les différents navigateurs pour contrôler l'effet obtenu. Vous pouvez aussi consulter les tableaux de compatibilité des navigateurs à la fin des pages de chacune des propriétés.
+ +Dans le prochain guide, nous verrons comment gérer le dépassement au sein d'un conteneur multi-colonnes, à l'intérieur des colonnes et lorsqu'il y a plus de contenu que le conteneur peut en avoir.
diff --git a/files/fr/web/css/css_columns/styling_columns/index.html b/files/fr/web/css/css_columns/styling_columns/index.html deleted file mode 100644 index 58cf3879e6..0000000000 --- a/files/fr/web/css/css_columns/styling_columns/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Mettre en forme les colonnes -slug: Web/CSS/CSS_Columns/Styling_Columns -tags: - - CSS - - CSS Multi-column Layout - - Guide -translation_of: Web/CSS/CSS_Columns/Styling_Columns -original_slug: Web/CSS/CSS_Columns/Mettre_en_forme_les_colonnes ---- -Les boîtes de colonne créées au sein des conteneurs multi-colonnes sont des boîtes anonymes et leur mise en forme est donc limitée. Elle n'est toutefois pas inexistante. Dans ce guide nous verrons comment modifier l'espace entre les colonnes et comment mettre en forme une ligne entre les colonnes.
- -Malheureusement, ce n'est pas possible actuellement. Il est impossible de cibler les boîtes anonymes des colonnes de quelque façon que ce soit. On ne peut donc pas changer la couleur d'arrière-plan d'une colonne donnée ou agrandir une colonne plus qu'une autre. De futures versions du module de spécification permettront peut-être de réaliser cela un jour mais nous devons pour le moment nous cantonner à paramétrer l'espacement entre les colonnes et à mettre en forme les lignes séparatrices entre les colonnes.
- -column-gapL'espacement entre les colonnes est contrôlé par la propriété column-gap. Cette propriété était initialement définie dans le module de spécification Multi-column Layout mais est désormais définie dans le module de spécification Box Alignment (dont le but est d'unifier la gestion des espacements entre les boîtes, que ce soit pour les colonnes ou pour d'autres types de disposition telles que les grilles CSS).
Dans une disposition multi-colonne, la valeur initiale de la propriété column-gap est 1em. Cela signifie que les colonnes ne se touchent pas les unes les autres. Pour les autres méthodes de disposition, la valeur initiale de column-gap est 0. Le mot-clé normal est une valeur qui permet d'obtenir un écart de 1em.
Il est possible de modifier l'espacement en utilisant n'importe quelle unité de longueur pour column-gap. Dans l'exemple qui suit, on a ainsi paramétré column-gap avec la valeur 40px.
{{EmbedGHLiveSample("css-examples/multicol/styling/column-gap.html", '100%', 750)}}
- -Les valeurs autorisées pour column-gap sont de type <length-percentage>, cela signifie que les pourcentages sont également autorisés. Lorsque de telles valeurs sont utilisées, elles sont calculées relativement à la largeur du conteneur multi-colonnes.
column-ruleLa spécification définit les propriétés column-rule-width, column-rule-style and column-rule-color et fournit une propriété raccourcie column-rule. Ces propriétés fonctionnent de la même façon que les propriétés relatives à la bordure. Toute valeur valide pour border-style pourra être utilisée pour column-rule-style.
Ces propriétés sont appliquées à l'élément qui est le conteneur multi-colonnes. Aussi, toutes les colonnes disposeront du même délimiteur. Les lignes sont uniquement dessinées entre les colonnes et pas sur les bords extérieurs. Les lignes sont également uniquement dessinées entre les colonnes qui ont du contenu.
- -Dans le prochain exemple, on a ajouté une ligne en pointillée, épaisse de 5 pixels et dont la couleur est rebeccapurple, sans utiliser la propriété raccourcie.
{{EmbedGHLiveSample("css-examples/multicol/styling/column-rule.html", '100%', 550)}}
- -On notera que la ligne n'occupe pas d'espace supplémentaire. Autrement dit, une ligne plus épaisse ne « repoussera » pas les colonnes de part et d'autre. La ligne est superposée sur l'espace occupé par l'espacement entre les colonnes.
- -Dans le prochain exemple, on utilise une ligne très large de 40 pixels et un espacement qui mesure uniquement 10 pixels. On peut alors voir que la ligne est dessinée sous le contenu des colonnes. Pour avoir un espace de chaque côté de la ligne, il faut avoir un espacement supérieur à 40 pixels.
- -{{EmbedGHLiveSample("css-examples/multicol/styling/column-rule-wide.html", '100%', 550)}}
- -Voici comment mettre en forme les colonnes avec les contraintes actuelles. Dans le prochain guide, nous verrons comment propager les éléments du conteneur sur l'ensemble des colonnes.
diff --git a/files/fr/web/css/css_columns/styling_columns/index.md b/files/fr/web/css/css_columns/styling_columns/index.md new file mode 100644 index 0000000000..58cf3879e6 --- /dev/null +++ b/files/fr/web/css/css_columns/styling_columns/index.md @@ -0,0 +1,49 @@ +--- +title: Mettre en forme les colonnes +slug: Web/CSS/CSS_Columns/Styling_Columns +tags: + - CSS + - CSS Multi-column Layout + - Guide +translation_of: Web/CSS/CSS_Columns/Styling_Columns +original_slug: Web/CSS/CSS_Columns/Mettre_en_forme_les_colonnes +--- +Les boîtes de colonne créées au sein des conteneurs multi-colonnes sont des boîtes anonymes et leur mise en forme est donc limitée. Elle n'est toutefois pas inexistante. Dans ce guide nous verrons comment modifier l'espace entre les colonnes et comment mettre en forme une ligne entre les colonnes.
+ +Malheureusement, ce n'est pas possible actuellement. Il est impossible de cibler les boîtes anonymes des colonnes de quelque façon que ce soit. On ne peut donc pas changer la couleur d'arrière-plan d'une colonne donnée ou agrandir une colonne plus qu'une autre. De futures versions du module de spécification permettront peut-être de réaliser cela un jour mais nous devons pour le moment nous cantonner à paramétrer l'espacement entre les colonnes et à mettre en forme les lignes séparatrices entre les colonnes.
+ +column-gapL'espacement entre les colonnes est contrôlé par la propriété column-gap. Cette propriété était initialement définie dans le module de spécification Multi-column Layout mais est désormais définie dans le module de spécification Box Alignment (dont le but est d'unifier la gestion des espacements entre les boîtes, que ce soit pour les colonnes ou pour d'autres types de disposition telles que les grilles CSS).
Dans une disposition multi-colonne, la valeur initiale de la propriété column-gap est 1em. Cela signifie que les colonnes ne se touchent pas les unes les autres. Pour les autres méthodes de disposition, la valeur initiale de column-gap est 0. Le mot-clé normal est une valeur qui permet d'obtenir un écart de 1em.
Il est possible de modifier l'espacement en utilisant n'importe quelle unité de longueur pour column-gap. Dans l'exemple qui suit, on a ainsi paramétré column-gap avec la valeur 40px.
{{EmbedGHLiveSample("css-examples/multicol/styling/column-gap.html", '100%', 750)}}
+ +Les valeurs autorisées pour column-gap sont de type <length-percentage>, cela signifie que les pourcentages sont également autorisés. Lorsque de telles valeurs sont utilisées, elles sont calculées relativement à la largeur du conteneur multi-colonnes.
column-ruleLa spécification définit les propriétés column-rule-width, column-rule-style and column-rule-color et fournit une propriété raccourcie column-rule. Ces propriétés fonctionnent de la même façon que les propriétés relatives à la bordure. Toute valeur valide pour border-style pourra être utilisée pour column-rule-style.
Ces propriétés sont appliquées à l'élément qui est le conteneur multi-colonnes. Aussi, toutes les colonnes disposeront du même délimiteur. Les lignes sont uniquement dessinées entre les colonnes et pas sur les bords extérieurs. Les lignes sont également uniquement dessinées entre les colonnes qui ont du contenu.
+ +Dans le prochain exemple, on a ajouté une ligne en pointillée, épaisse de 5 pixels et dont la couleur est rebeccapurple, sans utiliser la propriété raccourcie.
{{EmbedGHLiveSample("css-examples/multicol/styling/column-rule.html", '100%', 550)}}
+ +On notera que la ligne n'occupe pas d'espace supplémentaire. Autrement dit, une ligne plus épaisse ne « repoussera » pas les colonnes de part et d'autre. La ligne est superposée sur l'espace occupé par l'espacement entre les colonnes.
+ +Dans le prochain exemple, on utilise une ligne très large de 40 pixels et un espacement qui mesure uniquement 10 pixels. On peut alors voir que la ligne est dessinée sous le contenu des colonnes. Pour avoir un espace de chaque côté de la ligne, il faut avoir un espacement supérieur à 40 pixels.
+ +{{EmbedGHLiveSample("css-examples/multicol/styling/column-rule-wide.html", '100%', 550)}}
+ +Voici comment mettre en forme les colonnes avec les contraintes actuelles. Dans le prochain guide, nous verrons comment propager les éléments du conteneur sur l'ensemble des colonnes.
diff --git a/files/fr/web/css/css_columns/using_multi-column_layouts/index.html b/files/fr/web/css/css_columns/using_multi-column_layouts/index.html deleted file mode 100644 index 4dd83dfefd..0000000000 --- a/files/fr/web/css/css_columns/using_multi-column_layouts/index.html +++ /dev/null @@ -1,187 +0,0 @@ ---- -title: Utiliser une disposition multi-colonnes -slug: Web/CSS/CSS_Columns/Using_multi-column_layouts -tags: - - Avancé - - CSS - - Guide -translation_of: Web/CSS/CSS_Columns/Using_multi-column_layouts -original_slug: Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes ---- -La disposition multi-colonnes étend le mode de disposition en bloc et permet de définir simplement plusieurs colonnes de texte. Lorsqu'on lit un texte, si les lignes sont trop longues, il faudra trop de temps aux yeux pour revenir au début de la ligne et passer à la ligne suivante : on perdra alors la ligne sur laquelle on était. Ainsi, pour utiliser efficacement l'espace fourni par un grand écran, on préfèrera utiliser des colonnes de largeur fixe, disposée côte à côte, à la façon d'un journal.
- -Deux propriétés CSS permettent de définir quand et comment les colonnes apparaissent : {{cssxref("column-count")}} et {{cssxref("column-width")}}.
- -On utilisera la propriété column-count pour définir le nombre de colonnes qu'on souhaite avoir.
column-count#col {
- column-count: 2;
-}
-
-
-<div id="col"> - <p> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, - sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. - </p> - <p> - Ut enim ad minim veniam, quis nostrud exercitation ullamco - laboris nisi ut aliquip ex ea commodo consequat. - </p> - <p> - Duis aute irure dolor in reprehenderit in voluptate velit - esse cillum dolore eu fugiat nulla pariatur. - </p> - <p> - Excepteur sint occaecat cupidatat non proident, sunt in - culpa qui officia deserunt mollit anim id est laborum. - </p> -</div> -- -
{{EmbedLiveSample('Utilisation_de_column-count','100%')}}
- -Si on utilise un navigateur qui permet d'utiliser ce module CSS, on aura un contenu affiché sur 2 colonnes.
- -La propriété column-width permet quant à elle de définir la largeur minimale d'une colonne. Si la propriété column-count n'est pas utilisée, le navigateur créera automatiquement autant de colonnes que le permet la largeur disponible.
column-width#wid {
- column-width: 100px;
-}
-
-
-
-<div id="wid"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, - sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation - ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit - esse cillum dolore eu fugiat nulla pariatur. Excepteur sint - occaecat cupidatat non proident, sunt in culpa qui officia - deserunt mollit anim id est laborum -</div> -- -
{{EmbedLiveSample('Utilisation_de_column-width','100%')}}
- -En utilisant une disposition multi-colonnes, le contenu est automatiquement réparti entre les colonnes.
- -columnsLa plupart du temps, on souhaitera utiliser l'une de ces deux propriétés ({{cssxref("column-count")}} ou {{cssxref("column-width")}}). Comme les valeurs de ces deux propriétés ne se « chevauchent » pas, on pourra utiliser la propriété raccourcie {{cssxref("columns")}} qui synthétisent ces deux propriétés.
- -Ainsi, la déclaration column-width:12em pourra être remplacée de la façon suivante :
#col_short {
- columns: 12em;
-}
-
-
-<div id="col_short"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, - sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation - ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit - esse cillum dolore eu fugiat nulla pariatur. Excepteur sint - occaecat cupidatat non proident, sunt in culpa qui officia - deserunt mollit anim id est laborum -</div> -- -
{{EmbedLiveSample('La_propriété_raccourcie_columns','100%')}}
- -De même, on pourra remplacer la déclaration column-count: 4 avec ce bloc :
#columns_4{
- columns: 4;
-}
-
-
-Enfin, pour synthétiser les instructions column-width:8em et column-count:12, on pourra utiliser les instructions suivantes :
#columns_12 {
- columns: 12 8em;
-}
-
-
-La spécification CSS pour ce module indique que la hauteur des colonnes doit être équilibrée. Autrement dit, le navigateur doit définir la hauteur des différentes colonnes afin que la hauteur du contenu dans chaque colonne soit environ égale.
- -Toutefois, dans certaines situations, on veut pouvoir définir la hauteur maximale des colonnes de façon explicite. Ainsi, lorsque la hauteur est contrainte, on peut utiliser les propriétés {{cssxref("height")}} ou {{cssxref("max-height")}} afin que chaque colonne mesure au plus la taille indiquée avant qu'une nouvelle colonne soit créée.
- -Entre chaque colonne, on aura un espace horizontal. La valeur recommandée (et souvent utilisée par défaut) est 1em. Cette taille peut être ajustée si nécessaire en utilisant la propriété {{cssxref("column-gap")}} sur le bloc découpé en colonnes.
column-gap#column_gap {
- column-count: 5;
- column-gap: 2em;
-}
-
-<div id="column_gap"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, - sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation - ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit - esse cillum dolore eu fugiat nulla pariatur. Excepteur sint - occaecat cupidatat non proident, sunt in culpa qui officia - deserunt mollit anim id est laborum -</div> -- -
{{EmbedLiveSample('Utilisation_de_column-gap','100%')}}
- -Les propriétés liées à la disposition multi-colonnes seront simplement ignorées par les navigateurs qui ne prennent pas en charge cette fonctionnalité. On peut donc simplement créer une disposition qui n'utilisera qu'une colonne pour les anciens navigateurs et qui tirera parti de cette fonctionnalité dans les navigateurs plus récents.
- -Les colonnes CSS permettent aux développeurs web de mieux utiliser l'espace disponible à l'écran. Avec un peu d'imagination et en connaissant cette fonctionnalité d'équilibrage vertical automatique, on peut trouver de nombreux usages pour cette fonctionnalité.
- -La disposition multi-colonnes étend le mode de disposition en bloc et permet de définir simplement plusieurs colonnes de texte. Lorsqu'on lit un texte, si les lignes sont trop longues, il faudra trop de temps aux yeux pour revenir au début de la ligne et passer à la ligne suivante : on perdra alors la ligne sur laquelle on était. Ainsi, pour utiliser efficacement l'espace fourni par un grand écran, on préfèrera utiliser des colonnes de largeur fixe, disposée côte à côte, à la façon d'un journal.
+ +Deux propriétés CSS permettent de définir quand et comment les colonnes apparaissent : {{cssxref("column-count")}} et {{cssxref("column-width")}}.
+ +On utilisera la propriété column-count pour définir le nombre de colonnes qu'on souhaite avoir.
column-count#col {
+ column-count: 2;
+}
+
+
+<div id="col"> + <p> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua. + </p> + <p> + Ut enim ad minim veniam, quis nostrud exercitation ullamco + laboris nisi ut aliquip ex ea commodo consequat. + </p> + <p> + Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. + </p> + <p> + Excepteur sint occaecat cupidatat non proident, sunt in + culpa qui officia deserunt mollit anim id est laborum. + </p> +</div> ++ +
{{EmbedLiveSample('Utilisation_de_column-count','100%')}}
+ +Si on utilise un navigateur qui permet d'utiliser ce module CSS, on aura un contenu affiché sur 2 colonnes.
+ +La propriété column-width permet quant à elle de définir la largeur minimale d'une colonne. Si la propriété column-count n'est pas utilisée, le navigateur créera automatiquement autant de colonnes que le permet la largeur disponible.
column-width#wid {
+ column-width: 100px;
+}
+
+
+
+<div id="wid"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint + occaecat cupidatat non proident, sunt in culpa qui officia + deserunt mollit anim id est laborum +</div> ++ +
{{EmbedLiveSample('Utilisation_de_column-width','100%')}}
+ +En utilisant une disposition multi-colonnes, le contenu est automatiquement réparti entre les colonnes.
+ +columnsLa plupart du temps, on souhaitera utiliser l'une de ces deux propriétés ({{cssxref("column-count")}} ou {{cssxref("column-width")}}). Comme les valeurs de ces deux propriétés ne se « chevauchent » pas, on pourra utiliser la propriété raccourcie {{cssxref("columns")}} qui synthétisent ces deux propriétés.
+ +Ainsi, la déclaration column-width:12em pourra être remplacée de la façon suivante :
#col_short {
+ columns: 12em;
+}
+
+
+<div id="col_short"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint + occaecat cupidatat non proident, sunt in culpa qui officia + deserunt mollit anim id est laborum +</div> ++ +
{{EmbedLiveSample('La_propriété_raccourcie_columns','100%')}}
+ +De même, on pourra remplacer la déclaration column-count: 4 avec ce bloc :
#columns_4{
+ columns: 4;
+}
+
+
+Enfin, pour synthétiser les instructions column-width:8em et column-count:12, on pourra utiliser les instructions suivantes :
#columns_12 {
+ columns: 12 8em;
+}
+
+
+La spécification CSS pour ce module indique que la hauteur des colonnes doit être équilibrée. Autrement dit, le navigateur doit définir la hauteur des différentes colonnes afin que la hauteur du contenu dans chaque colonne soit environ égale.
+ +Toutefois, dans certaines situations, on veut pouvoir définir la hauteur maximale des colonnes de façon explicite. Ainsi, lorsque la hauteur est contrainte, on peut utiliser les propriétés {{cssxref("height")}} ou {{cssxref("max-height")}} afin que chaque colonne mesure au plus la taille indiquée avant qu'une nouvelle colonne soit créée.
+ +Entre chaque colonne, on aura un espace horizontal. La valeur recommandée (et souvent utilisée par défaut) est 1em. Cette taille peut être ajustée si nécessaire en utilisant la propriété {{cssxref("column-gap")}} sur le bloc découpé en colonnes.
column-gap#column_gap {
+ column-count: 5;
+ column-gap: 2em;
+}
+
+<div id="column_gap"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint + occaecat cupidatat non proident, sunt in culpa qui officia + deserunt mollit anim id est laborum +</div> ++ +
{{EmbedLiveSample('Utilisation_de_column-gap','100%')}}
+ +Les propriétés liées à la disposition multi-colonnes seront simplement ignorées par les navigateurs qui ne prennent pas en charge cette fonctionnalité. On peut donc simplement créer une disposition qui n'utilisera qu'une colonne pour les anciens navigateurs et qui tirera parti de cette fonctionnalité dans les navigateurs plus récents.
+ +Les colonnes CSS permettent aux développeurs web de mieux utiliser l'espace disponible à l'écran. Avec un peu d'imagination et en connaissant cette fonctionnalité d'équilibrage vertical automatique, on peut trouver de nombreux usages pour cette fonctionnalité.
+ +CSS Conditional Rules (ou règles conditionnelles CSS) est un module CSS qui permet de définir un ensemble de règles qui ne s'appliqueront qu'en fonction des capacités du processeur ou du document auquel la feuille de styles est appliquée.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Conditional')}} | -{{Spec2('CSS3 Conditional')}} | -Définition initiale. | -
@document{{Compat("css.at-rules.document")}}
- -@import{{Compat("css.at-rules.import")}}
- -@media{{Compat("css.at-rules.media")}}
- -@supports{{Compat("css.at-rules.supports")}}
diff --git a/files/fr/web/css/css_conditional_rules/index.md b/files/fr/web/css/css_conditional_rules/index.md new file mode 100644 index 0000000000..70fad97d1c --- /dev/null +++ b/files/fr/web/css/css_conditional_rules/index.md @@ -0,0 +1,61 @@ +--- +title: CSS Conditional Rules +slug: Web/CSS/CSS_Conditional_Rules +tags: + - Aperçu + - CSS + - CSS Conditional Rules + - Reference +translation_of: Web/CSS/CSS_Conditional_Rules +--- +CSS Conditional Rules (ou règles conditionnelles CSS) est un module CSS qui permet de définir un ensemble de règles qui ne s'appliqueront qu'en fonction des capacités du processeur ou du document auquel la feuille de styles est appliquée.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Conditional')}} | +{{Spec2('CSS3 Conditional')}} | +Définition initiale. | +
@document{{Compat("css.at-rules.document")}}
+ +@import{{Compat("css.at-rules.import")}}
+ +@media{{Compat("css.at-rules.media")}}
+ +@supports{{Compat("css.at-rules.supports")}}
diff --git a/files/fr/web/css/css_conditional_rules/using_feature_queries/index.html b/files/fr/web/css/css_conditional_rules/using_feature_queries/index.html deleted file mode 100644 index 7adcf5b391..0000000000 --- a/files/fr/web/css/css_conditional_rules/using_feature_queries/index.html +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Utiliser les requêtes de fonctionnalité (feature queries) -slug: Web/CSS/CSS_Conditional_Rules/Using_Feature_Queries -tags: - - Amélioration progressive - - CSS - - Guide -translation_of: Web/CSS/CSS_Conditional_Rules/Using_Feature_Queries -original_slug: >- - Web/CSS/CSS_Conditional_Rules/Utiliser_requêtes_fonctionnalité_(feature_queries) ---- -Les requêtes de fonctionnalité (ou feature queries) sont créées à l'aide de la règle @supports et permettent aux développeurs web de tester la prise en charge d'une fonctionnalité donnée par le navigateur puis de fournir le code CSS qui sera appliqué selon le résultat de ce test. Dans ce guide, nous verrons comment gérer l'amélioration progressive grâce à l'aide des requêtes de fonctionnalité.
Les requêtes de fonctionnalité CSS s'inscrivent dans le module de spécification CSS Conditional Rules qui décrit également le fonctionnement de la règle @media. Vous pourrez ici voir que les requêtes de fonctionnalité fonctionnent de façon semblable aux requêtes de média. Pour les requêtes de média, on teste une caractéristique de l'environnement dans lequel la page web est affichée/exécutée tandis que pour les requêtes de fonctionnalité, on teste la prise en charge d'une fonctionnalité CSS dans le navigateur.
Une requête de fonctionnalité commence par une règle @supports, suivi du nom de la propriété et de la valeur qu'on souhaite tester. Il n'est pas possible de tester une propriété seule (ex. display) mais uniquement un couple nom/valeur :
@supports (propriété: valeur) {
- Règles CSS à appliquer
-}
-
-Si, par exemple, on souhaite vérifier qu'un navigateur prend en charge la propriété row-gap, on écrira la requête suivant. Dans la plupart des cas, peu importe la valeur utilisée avec cette propriété, on souhaite simplement la prise en charge de cette propriété et on peut donc utiliser n'importe quelle valeur valide pour ça.
{{EmbedGHLiveSample("css-examples/feature-queries/simple.html", '100%', 600)}}
- -La partie dédiée à la valeur de la propriété permet de tester les cas où une nouvelle valeur est spécifiée pour une propriété donnée. Le cas de display est particulièrement intéressant. Tous les navigateurs prennent en charge display (display: block faisait partie de CSS1) mais les valeurs display: flex et display: grid ont été ajoutées plus récemment. Les propriétés CSS peuvent parfois se voir doter de nouvelles valeurs et on peut alors tester leur prise en charge avec @supports.
Il est aussi possible de tester l'absence de prise en charge d'une fonctionnalité en ajoutant le mot-clé not :
@supports not (propriété: valeur) {
- Règles CSS à appliquer
-}
-
-Les règles CSS contenues dans la requête suivante seront uniquement appliquées lorsque le navigateur ne prend pas en charge row-gap.
{{EmbedGHLiveSample("css-examples/feature-queries/not.html", '100%', 600)}}
- -Si on souhaite tester la prise en charge de plusieurs fonctionnalités en même temps, on pourra les combiner avec le mot-clé and :
@supports (property1: value) and (property2: value) {
- CSS rules to apply
-}
-
-On peut, par exemple, vérifier que le navigateur prend en charge les formes (shapes) et grilles CSS grâce à une règle qui teste cette conjonction. La règle suivante renverra true uniquement si shape-outside: circle() et display: grid sont pris en charge par le navigateur.
{{EmbedGHLiveSample("css-examples/feature-queries/and.html", '100%', 600)}}
- -De la même façon, on peut utiliser le mot-clé or si on souhaite tester la prise en charge d'au moins une fonctionnalité :
@supports (property1: value) or (property2: value) {
- CSS rules to apply
-}
-
-Cela peut s'avérer particulièrement utile lorsqu'un préfixe est présent dans le nom d'une propriété (on peut alors tester la prise en charge de la propriété standard et des versions préfixées).
- -{{EmbedGHLiveSample("css-examples/feature-queries/or.html", '100%', 600)}}
- -Une règle @supports ne permet de vérifier qu'un navigateur peut interpréter une ou plusieurs paires de propriétés/valeurs. Si cette paire est comprise par le navigateur, celui-ci renverra une réponse positive. Une telle requête ne permet pas d'indiquer que la fonctionnalité est complètement prise en charge, sans bug…
De plus, de telles requêtes ne permettent pas de tester une implémentation partielle. Prenons l'exemple de la propriété gap, à l'heure actuelle (novembre 2019) : tous les navigateurs prennent en charge gap avec les grilles CSS et seul Firefox prend en charge gap avec les boîtes flexibles (flexbox). Si on teste la propriété gap car on souhaite l'utiliser avec les boîtes flexibles, on recevra une réponse positive bien que ce ne soit pas implémenté.
@supports pour l'amélioration progressive ?Les requêtes de fonctionnalité sont un outil précieux pour améliorer un site de façon progressive. Elles permettent de fournir une solution fonctionnelle pour tous les navigateurs et d'améliorer le résultat pour les navigateurs qui prennent en charge de nouvelles fonctionnalités.
- -Toutefois, il existe des navigateurs pour lesquels même les requêtes de fonctionnalité/@supports ne sont pas pris en charge. Ainsi, si on souhaite utiliser les grilles CSS (qui ne sont pas prises en charge par IE11), on ne peut pas tester leur prise en charge dans IE11 car ce dernier ne permet pas d'utiliser @supports. En pratique, cela ne devrait pas poser de problème : le code CSS principal est destiné aux navigateurs les plus anciens et on ajoute le CSS plus récent dans les requêtes de fonctionnalité.
Prenons un exemple plus construit.
- -Imaginons qu'on veuille créer une disposition avec trois boîtes qui se suivent sur une ligne. Idéalement, on voudrait utiliser les grilles CSS. Toutefois, on voudrait aussi une disposition qui fonctionne pour les navigateurs plus anciens avec des éléments flottants. Pour commencer, on crée la disposition flottante avec le code suivante (on a alors trois colonnes).
- -{{EmbedGHLiveSample("css-examples/feature-queries/step1.html", '100%', 900)}}
- -Lorsque les navigateurs ne comprennent pas une propriété ou une valeur CSS, ils l'ignorent. On peut donc améliorer progressivement notre disposition avec les grilles CSS. Les navigateurs qui ne prennent pas en charge les grilles ignoreront la valeur grid pour la propriété display. Une fois qu'un objet flottant devient un élément de grille, son caractère flottant est retiré (voir Prendre en charge les navigateurs plus anciens) et la grille écrase alors la version flottante.
Un problème persiste cependant. La propriété width, utilisée par les objets flottants pour afficher trois colonnes, est désormais interprétée par la grille comme étant la largeur de la piste pour la colonne (et pas la largeur du conteneur comme c'était le cas pour la disposition flottante).
{{EmbedGHLiveSample("css-examples/feature-queries/step2.html", '100%', 900)}}
- -Il faut une façon de retirer la largeur si display: grid est pris en charge. C'est là que les requêtes de fonctionnalité montrent leur force. On peut réinitialiser width avec la valeur auto si les grilles sont prises en charge.
{{EmbedGHLiveSample("css-examples/feature-queries/step3.html", '100%', 900)}}
- -Dans le scénario précédent, peu importe que IE11 ne prenne pas en charge les requêtes de fonctionnalité ou les grilles CSS : c'est la version flottante qui sera utilisée dans tous les cas où le navigateur ne prend pas en charge les grilles.
- -Une autre façon d'écrire cette solution consiste à grouper le code utilisant la grille dans une même requête de fonctionnalité.
- -{{EmbedGHLiveSample("css-examples/feature-queries/step4.html", '100%', 900)}}
- -De cette façon, on a un peu plus de code mais on peut alors tester le fonctionnement par défaut en changeant simplement le nom de la valeur. Dans l'exemple qui suit, vous pouvez ainsi alterner entre les deux solutions en changeant display: grid en display: grip (une valeur invalide et donc non prise en charge).
Les requêtes de fonctionnalité permettent d'utiliser des fonctionnalités récentes dans l'amélioration progressive de sites fonctionnels avec les anciens navigateurs. En destinant le code CSS aux navigateurs qui le prennent en charge, on ne risque pas d'interférences avec la disposition de base (comme nous avons pu le voir avec l'exemple précédent sur les grilles CSS).
- -Les requêtes de fonctionnalité (ou feature queries) sont créées à l'aide de la règle @supports et permettent aux développeurs web de tester la prise en charge d'une fonctionnalité donnée par le navigateur puis de fournir le code CSS qui sera appliqué selon le résultat de ce test. Dans ce guide, nous verrons comment gérer l'amélioration progressive grâce à l'aide des requêtes de fonctionnalité.
Les requêtes de fonctionnalité CSS s'inscrivent dans le module de spécification CSS Conditional Rules qui décrit également le fonctionnement de la règle @media. Vous pourrez ici voir que les requêtes de fonctionnalité fonctionnent de façon semblable aux requêtes de média. Pour les requêtes de média, on teste une caractéristique de l'environnement dans lequel la page web est affichée/exécutée tandis que pour les requêtes de fonctionnalité, on teste la prise en charge d'une fonctionnalité CSS dans le navigateur.
Une requête de fonctionnalité commence par une règle @supports, suivi du nom de la propriété et de la valeur qu'on souhaite tester. Il n'est pas possible de tester une propriété seule (ex. display) mais uniquement un couple nom/valeur :
@supports (propriété: valeur) {
+ Règles CSS à appliquer
+}
+
+Si, par exemple, on souhaite vérifier qu'un navigateur prend en charge la propriété row-gap, on écrira la requête suivant. Dans la plupart des cas, peu importe la valeur utilisée avec cette propriété, on souhaite simplement la prise en charge de cette propriété et on peut donc utiliser n'importe quelle valeur valide pour ça.
{{EmbedGHLiveSample("css-examples/feature-queries/simple.html", '100%', 600)}}
+ +La partie dédiée à la valeur de la propriété permet de tester les cas où une nouvelle valeur est spécifiée pour une propriété donnée. Le cas de display est particulièrement intéressant. Tous les navigateurs prennent en charge display (display: block faisait partie de CSS1) mais les valeurs display: flex et display: grid ont été ajoutées plus récemment. Les propriétés CSS peuvent parfois se voir doter de nouvelles valeurs et on peut alors tester leur prise en charge avec @supports.
Il est aussi possible de tester l'absence de prise en charge d'une fonctionnalité en ajoutant le mot-clé not :
@supports not (propriété: valeur) {
+ Règles CSS à appliquer
+}
+
+Les règles CSS contenues dans la requête suivante seront uniquement appliquées lorsque le navigateur ne prend pas en charge row-gap.
{{EmbedGHLiveSample("css-examples/feature-queries/not.html", '100%', 600)}}
+ +Si on souhaite tester la prise en charge de plusieurs fonctionnalités en même temps, on pourra les combiner avec le mot-clé and :
@supports (property1: value) and (property2: value) {
+ CSS rules to apply
+}
+
+On peut, par exemple, vérifier que le navigateur prend en charge les formes (shapes) et grilles CSS grâce à une règle qui teste cette conjonction. La règle suivante renverra true uniquement si shape-outside: circle() et display: grid sont pris en charge par le navigateur.
{{EmbedGHLiveSample("css-examples/feature-queries/and.html", '100%', 600)}}
+ +De la même façon, on peut utiliser le mot-clé or si on souhaite tester la prise en charge d'au moins une fonctionnalité :
@supports (property1: value) or (property2: value) {
+ CSS rules to apply
+}
+
+Cela peut s'avérer particulièrement utile lorsqu'un préfixe est présent dans le nom d'une propriété (on peut alors tester la prise en charge de la propriété standard et des versions préfixées).
+ +{{EmbedGHLiveSample("css-examples/feature-queries/or.html", '100%', 600)}}
+ +Une règle @supports ne permet de vérifier qu'un navigateur peut interpréter une ou plusieurs paires de propriétés/valeurs. Si cette paire est comprise par le navigateur, celui-ci renverra une réponse positive. Une telle requête ne permet pas d'indiquer que la fonctionnalité est complètement prise en charge, sans bug…
De plus, de telles requêtes ne permettent pas de tester une implémentation partielle. Prenons l'exemple de la propriété gap, à l'heure actuelle (novembre 2019) : tous les navigateurs prennent en charge gap avec les grilles CSS et seul Firefox prend en charge gap avec les boîtes flexibles (flexbox). Si on teste la propriété gap car on souhaite l'utiliser avec les boîtes flexibles, on recevra une réponse positive bien que ce ne soit pas implémenté.
@supports pour l'amélioration progressive ?Les requêtes de fonctionnalité sont un outil précieux pour améliorer un site de façon progressive. Elles permettent de fournir une solution fonctionnelle pour tous les navigateurs et d'améliorer le résultat pour les navigateurs qui prennent en charge de nouvelles fonctionnalités.
+ +Toutefois, il existe des navigateurs pour lesquels même les requêtes de fonctionnalité/@supports ne sont pas pris en charge. Ainsi, si on souhaite utiliser les grilles CSS (qui ne sont pas prises en charge par IE11), on ne peut pas tester leur prise en charge dans IE11 car ce dernier ne permet pas d'utiliser @supports. En pratique, cela ne devrait pas poser de problème : le code CSS principal est destiné aux navigateurs les plus anciens et on ajoute le CSS plus récent dans les requêtes de fonctionnalité.
Prenons un exemple plus construit.
+ +Imaginons qu'on veuille créer une disposition avec trois boîtes qui se suivent sur une ligne. Idéalement, on voudrait utiliser les grilles CSS. Toutefois, on voudrait aussi une disposition qui fonctionne pour les navigateurs plus anciens avec des éléments flottants. Pour commencer, on crée la disposition flottante avec le code suivante (on a alors trois colonnes).
+ +{{EmbedGHLiveSample("css-examples/feature-queries/step1.html", '100%', 900)}}
+ +Lorsque les navigateurs ne comprennent pas une propriété ou une valeur CSS, ils l'ignorent. On peut donc améliorer progressivement notre disposition avec les grilles CSS. Les navigateurs qui ne prennent pas en charge les grilles ignoreront la valeur grid pour la propriété display. Une fois qu'un objet flottant devient un élément de grille, son caractère flottant est retiré (voir Prendre en charge les navigateurs plus anciens) et la grille écrase alors la version flottante.
Un problème persiste cependant. La propriété width, utilisée par les objets flottants pour afficher trois colonnes, est désormais interprétée par la grille comme étant la largeur de la piste pour la colonne (et pas la largeur du conteneur comme c'était le cas pour la disposition flottante).
{{EmbedGHLiveSample("css-examples/feature-queries/step2.html", '100%', 900)}}
+ +Il faut une façon de retirer la largeur si display: grid est pris en charge. C'est là que les requêtes de fonctionnalité montrent leur force. On peut réinitialiser width avec la valeur auto si les grilles sont prises en charge.
{{EmbedGHLiveSample("css-examples/feature-queries/step3.html", '100%', 900)}}
+ +Dans le scénario précédent, peu importe que IE11 ne prenne pas en charge les requêtes de fonctionnalité ou les grilles CSS : c'est la version flottante qui sera utilisée dans tous les cas où le navigateur ne prend pas en charge les grilles.
+ +Une autre façon d'écrire cette solution consiste à grouper le code utilisant la grille dans une même requête de fonctionnalité.
+ +{{EmbedGHLiveSample("css-examples/feature-queries/step4.html", '100%', 900)}}
+ +De cette façon, on a un peu plus de code mais on peut alors tester le fonctionnement par défaut en changeant simplement le nom de la valeur. Dans l'exemple qui suit, vous pouvez ainsi alterner entre les deux solutions en changeant display: grid en display: grip (une valeur invalide et donc non prise en charge).
Les requêtes de fonctionnalité permettent d'utiliser des fonctionnalités récentes dans l'amélioration progressive de sites fonctionnels avec les anciens navigateurs. En destinant le code CSS aux navigateurs qui le prennent en charge, on ne risque pas d'interférences avec la disposition de base (comme nous avons pu le voir avec l'exemple précédent sur les grilles CSS).
+ +{{CSSRef}}
- L'objectif du module de spécification CSS Containment (pour Compartimentation CSS) consiste à améliorer les performances des pages web en permettant aux développeurs d'isoler un sous-ensemble de la page. Si le navigateur sait que cette partie est indépendante, le rendu peut être optimisé et les performances améliorées. Ce module de spécification définit une seule propriété CSS : {{cssxref("contain")}}. Dans cet article, nous verrons les objectifs principaux de cette spécification.
De nombreuses pages web disposent de plusieurs sections qui sont indépendantes les unes des autres. Voici une liste d'articles avec leurs titres et leurs contenus.
- -<h1>Mon blog</h1> -<article> - <h2>Titre d'un article sympa</h2> - <p>Un peu de contenu.</p> -</article> -<article> - <h2>Un autre titre pour un autre article</h2> - <p>Un peu plus de contenu ici.</p> -</article>- -
Pour chaque article, on applique la propriété {{cssxref("contain")}} avec la valeur content.
article {
- contain: content;
-}
-
-Chaque article est indépendant des autres articles de la page et on fournit contain: content afin d'indiquer cette indépendance au navigateur. Ce dernier peut alors prendre des décisions quant au rendu du contenu (par exemple, ne pas travailler sur le rendu d'articles qui ne sont pas sur la zone visible).
Si on fournit contain: content pour chaque <article>, lorsque de nouveaux éléments sont insérés, le navigateur comprendra qu'il n'est pas nécessaire de tout repeindre/redisposer à l'intérieur de l'arbre de l'élément. Toutefois, si <article> est mis en forme de telle façon que sa forme dépend de son contenu (ex. height: auto), le navigateur devra prendre en compte le redimensionnement.
La valeur content est une valeur synthétique pour contain: layout paint. Elle indique au navigateur que la disposition de l'élément est complètement séparée de celle du reste de la page et que tout ce qui concerne l'élément est peint à l'intérieur de son cadre et que rien ne peut dépasser.
Cette information est parfois connue voire évidente pour la ou les personnes qui construisent la page. Toutefois, les navigateurs ne peuvent pas simplement deviner cette intention et partir du principe que chaque article ne débordera pas. Cette propriété permet ainsi d'expliquer la situation au navigateur afin que celui-ci puisse en tirer parti et optimiser ce qu'il peut grâce à cette hypothèse.
- -Cette spécification ne définit qu'une seule propriété : {{cssxref("contain")}}. Les valeurs fournies à cette propriété indiquent le type de compartimentation qu'on souhaite appliquer à l'élément.
- -article {
- contain: layout;
-}
-
-La disposition porte normalement sur l'intégralité d'un document et si on déplace un élément, c'est tout le document qui doit être reconsidéré car tout peut avoir bougé. Avec contain: layout, on indique au navigateur qu'il est uniquement nécessaire de vérifier cet élément et son contenu : tout ce qu'il contient n'affecte pas le reste de la page et la boîte englobante crée un contexte de formatage indépendant.
De plus :
- -display:float) seront traitées indépendamment.absolute/fixed.article {
- contain: paint;
-}
-
-La compartimentation avec paint limite/rogne la boîte jusqu'à la limite de la zone de remplissage (padding) de la boîte principale. Autrement dit, il ne peut pas y avoir de chevauchement visible. On a également les mêmes règles qu'avec layout (voir ci-avant).
De plus, lorsque la boîte englobante est hors de l'écran, le navigateur n'a pas besoin de peindre ses éléments (car ceux-ci sont contenus dans cette boîte au sens géométrique).
- -article {
- contain: size;
-}
-
-La compartimentation du dimensionnement, utilisée seule, n'offre pas un grand intérêt quant aux performances. Cette valeur signifie que la taille des éléments fils ne doit pas affecter la taille de l'élément ciblé — sa taille est calculée comme si l'élément n'avait pas de fils.
- -Si on active contain: size, il faut alors définir la taille de l'élément sur lequel on l'applique. Sinon, dans la plupart des cas, l'élément aura des dimensions nulles.
article {
- contain: style;
-}
-
-Malgré son nom, cette valeur ne fournit pas un style compartimenté comme on pourrait l'avoir avec un Shadow DOM. Cette valeur sert principlament pour les compteurs CSS qui pourraient changer sur un élément et affecter le reste de l'arborescence.
- -En utilisant contain: style, on s'assure que les propriétés {{cssxref("counter-increment")}} et {{cssxref("counter-set")}} créent de nouveaux compteurs limités à ce sous-arbre.
Note : La valeur style est considérée comme « à risque » dans la spécification actuelle et pourrait ne pas être prise en charge partout (elle n'est actuellement pas prise en charge dans Firefox - novembre 2019).
La propriété contain possède deux valeurs spéciales :
contentstrictLa première (vue dans le premier exemple) est un synonyme pour la conjonction de layout et paint. La spécification décrit cette valeur comme pouvant « raisonnablement être appliquée largement de façon saine ». Elle n'applique pas la compartimentation pour le dimensionnement (size) donc on ne risque pas d'avoir une boîte avec une taille nulle en raison de la taille de ses enfants.
Pour obtenir la compartimentation la plus forte, on utilisera contain: strict qui est synonyme de contain: size layout paint voire on ajoutera ensuite la compartimentation du style pour les navigateurs qui la prennent en charge :
contain: strict; -contain: strict style;- -
{{CSSRef}}
+ L'objectif du module de spécification CSS Containment (pour Compartimentation CSS) consiste à améliorer les performances des pages web en permettant aux développeurs d'isoler un sous-ensemble de la page. Si le navigateur sait que cette partie est indépendante, le rendu peut être optimisé et les performances améliorées. Ce module de spécification définit une seule propriété CSS : {{cssxref("contain")}}. Dans cet article, nous verrons les objectifs principaux de cette spécification.
De nombreuses pages web disposent de plusieurs sections qui sont indépendantes les unes des autres. Voici une liste d'articles avec leurs titres et leurs contenus.
+ +<h1>Mon blog</h1> +<article> + <h2>Titre d'un article sympa</h2> + <p>Un peu de contenu.</p> +</article> +<article> + <h2>Un autre titre pour un autre article</h2> + <p>Un peu plus de contenu ici.</p> +</article>+ +
Pour chaque article, on applique la propriété {{cssxref("contain")}} avec la valeur content.
article {
+ contain: content;
+}
+
+Chaque article est indépendant des autres articles de la page et on fournit contain: content afin d'indiquer cette indépendance au navigateur. Ce dernier peut alors prendre des décisions quant au rendu du contenu (par exemple, ne pas travailler sur le rendu d'articles qui ne sont pas sur la zone visible).
Si on fournit contain: content pour chaque <article>, lorsque de nouveaux éléments sont insérés, le navigateur comprendra qu'il n'est pas nécessaire de tout repeindre/redisposer à l'intérieur de l'arbre de l'élément. Toutefois, si <article> est mis en forme de telle façon que sa forme dépend de son contenu (ex. height: auto), le navigateur devra prendre en compte le redimensionnement.
La valeur content est une valeur synthétique pour contain: layout paint. Elle indique au navigateur que la disposition de l'élément est complètement séparée de celle du reste de la page et que tout ce qui concerne l'élément est peint à l'intérieur de son cadre et que rien ne peut dépasser.
Cette information est parfois connue voire évidente pour la ou les personnes qui construisent la page. Toutefois, les navigateurs ne peuvent pas simplement deviner cette intention et partir du principe que chaque article ne débordera pas. Cette propriété permet ainsi d'expliquer la situation au navigateur afin que celui-ci puisse en tirer parti et optimiser ce qu'il peut grâce à cette hypothèse.
+ +Cette spécification ne définit qu'une seule propriété : {{cssxref("contain")}}. Les valeurs fournies à cette propriété indiquent le type de compartimentation qu'on souhaite appliquer à l'élément.
+ +article {
+ contain: layout;
+}
+
+La disposition porte normalement sur l'intégralité d'un document et si on déplace un élément, c'est tout le document qui doit être reconsidéré car tout peut avoir bougé. Avec contain: layout, on indique au navigateur qu'il est uniquement nécessaire de vérifier cet élément et son contenu : tout ce qu'il contient n'affecte pas le reste de la page et la boîte englobante crée un contexte de formatage indépendant.
De plus :
+ +display:float) seront traitées indépendamment.absolute/fixed.article {
+ contain: paint;
+}
+
+La compartimentation avec paint limite/rogne la boîte jusqu'à la limite de la zone de remplissage (padding) de la boîte principale. Autrement dit, il ne peut pas y avoir de chevauchement visible. On a également les mêmes règles qu'avec layout (voir ci-avant).
De plus, lorsque la boîte englobante est hors de l'écran, le navigateur n'a pas besoin de peindre ses éléments (car ceux-ci sont contenus dans cette boîte au sens géométrique).
+ +article {
+ contain: size;
+}
+
+La compartimentation du dimensionnement, utilisée seule, n'offre pas un grand intérêt quant aux performances. Cette valeur signifie que la taille des éléments fils ne doit pas affecter la taille de l'élément ciblé — sa taille est calculée comme si l'élément n'avait pas de fils.
+ +Si on active contain: size, il faut alors définir la taille de l'élément sur lequel on l'applique. Sinon, dans la plupart des cas, l'élément aura des dimensions nulles.
article {
+ contain: style;
+}
+
+Malgré son nom, cette valeur ne fournit pas un style compartimenté comme on pourrait l'avoir avec un Shadow DOM. Cette valeur sert principlament pour les compteurs CSS qui pourraient changer sur un élément et affecter le reste de l'arborescence.
+ +En utilisant contain: style, on s'assure que les propriétés {{cssxref("counter-increment")}} et {{cssxref("counter-set")}} créent de nouveaux compteurs limités à ce sous-arbre.
Note : La valeur style est considérée comme « à risque » dans la spécification actuelle et pourrait ne pas être prise en charge partout (elle n'est actuellement pas prise en charge dans Firefox - novembre 2019).
La propriété contain possède deux valeurs spéciales :
contentstrictLa première (vue dans le premier exemple) est un synonyme pour la conjonction de layout et paint. La spécification décrit cette valeur comme pouvant « raisonnablement être appliquée largement de façon saine ». Elle n'applique pas la compartimentation pour le dimensionnement (size) donc on ne risque pas d'avoir une boîte avec une taille nulle en raison de la taille de ses enfants.
Pour obtenir la compartimentation la plus forte, on utilisera contain: strict qui est synonyme de contain: size layout paint voire on ajoutera ensuite la compartimentation du style pour les navigateurs qui la prennent en charge :
contain: strict; +contain: strict style;+ +
CSS Counter Styles est un module CSS qui permet de définir ses propres styles pour les compteurs utilisés dans les listes numérotées.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Counter Styles')}} | -{{Spec2('CSS3 Counter Styles')}} | -Définition initiale. | -
@counter-style{{Compat("css.at-rules.counter-style")}}
- -counter-increment{{Compat("css.properties.counter-increment")}}
- -counter-reset{{Compat("css.properties.counter-reset")}}
diff --git a/files/fr/web/css/css_counter_styles/index.md b/files/fr/web/css/css_counter_styles/index.md new file mode 100644 index 0000000000..c09546d721 --- /dev/null +++ b/files/fr/web/css/css_counter_styles/index.md @@ -0,0 +1,80 @@ +--- +title: CSS Counter Styles +slug: Web/CSS/CSS_Counter_Styles +tags: + - Aperçu + - CSS + - CSS Counter Styles + - Reference +translation_of: Web/CSS/CSS_Counter_Styles +--- +CSS Counter Styles est un module CSS qui permet de définir ses propres styles pour les compteurs utilisés dans les listes numérotées.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Counter Styles')}} | +{{Spec2('CSS3 Counter Styles')}} | +Définition initiale. | +
@counter-style{{Compat("css.at-rules.counter-style")}}
+ +counter-increment{{Compat("css.properties.counter-increment")}}
+ +counter-reset{{Compat("css.properties.counter-reset")}}
diff --git a/files/fr/web/css/css_device_adaptation/index.html b/files/fr/web/css/css_device_adaptation/index.html deleted file mode 100644 index 7044575f90..0000000000 --- a/files/fr/web/css/css_device_adaptation/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: CSS Device Adaptation -slug: Web/CSS/CSS_Device_Adaptation -tags: - - CSS - - Reference -translation_of: Web/CSS/CSS_Device_Adaptation ---- -CSS Device Adapation est un module CSS qui permet de définir les dimensions, le facteur d'agrandissement et l'orientation de la zone d'affichage (viewport).
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Device")}} | -{{Spec2("CSS3 Device")}} | -Définition initiale. | -
@viewport{{Compat("css.at-rules.viewport")}}
diff --git a/files/fr/web/css/css_device_adaptation/index.md b/files/fr/web/css/css_device_adaptation/index.md new file mode 100644 index 0000000000..7044575f90 --- /dev/null +++ b/files/fr/web/css/css_device_adaptation/index.md @@ -0,0 +1,44 @@ +--- +title: CSS Device Adaptation +slug: Web/CSS/CSS_Device_Adaptation +tags: + - CSS + - Reference +translation_of: Web/CSS/CSS_Device_Adaptation +--- +CSS Device Adapation est un module CSS qui permet de définir les dimensions, le facteur d'agrandissement et l'orientation de la zone d'affichage (viewport).
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Device")}} | +{{Spec2("CSS3 Device")}} | +Définition initiale. | +
@viewport{{Compat("css.at-rules.viewport")}}
diff --git a/files/fr/web/css/css_display/index.html b/files/fr/web/css/css_display/index.html deleted file mode 100644 index 18278b09b9..0000000000 --- a/files/fr/web/css/css_display/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: CSS Display -slug: Web/CSS/CSS_Display -tags: - - Aperçu - - CSS - - CSS Display - - Reference -translation_of: Web/CSS/CSS_Display ---- -L'affichage CSS (CSS Display) est un module CSS qui définit la façon dont l'arbre des boîtes pour la mise en forme est généré à partir de l'arbre des éléments du document et qui définit les propriétés qui le contrôlent.
- -display: block, display: inline)display: flex)display: grid)| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Display', '#the-display-properties', 'display')}} | -{{Spec2('CSS3 Display')}} | -Ajout des valeurs run-in, flow, flow-root, contents et de la syntaxe avec plusieurs mots-clés. |
-
| {{SpecName('CSS2.1', 'visuren.html#display-prop', 'display')}} | -{{Spec2('CSS2.1')}} | -Ajout des valeurs pour les tableaux et ajout de inline-block. |
-
| {{SpecName('CSS1', '#display', 'display')}} | -{{Spec2('CSS1')}} | -Spécification initiale. Valeurs de base : none, block, inline et list-item. |
-
En plus du module de spécification CSS Display de niveau 3, d'autres modules de spécifications définissent le comportement à avoir selon les différentes valeurs de display.
{{Compat("css.properties.display", 10)}}
diff --git a/files/fr/web/css/css_display/index.md b/files/fr/web/css/css_display/index.md new file mode 100644 index 0000000000..18278b09b9 --- /dev/null +++ b/files/fr/web/css/css_display/index.md @@ -0,0 +1,109 @@ +--- +title: CSS Display +slug: Web/CSS/CSS_Display +tags: + - Aperçu + - CSS + - CSS Display + - Reference +translation_of: Web/CSS/CSS_Display +--- +L'affichage CSS (CSS Display) est un module CSS qui définit la façon dont l'arbre des boîtes pour la mise en forme est généré à partir de l'arbre des éléments du document et qui définit les propriétés qui le contrôlent.
+ +display: block, display: inline)display: flex)display: grid)| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Display', '#the-display-properties', 'display')}} | +{{Spec2('CSS3 Display')}} | +Ajout des valeurs run-in, flow, flow-root, contents et de la syntaxe avec plusieurs mots-clés. |
+
| {{SpecName('CSS2.1', 'visuren.html#display-prop', 'display')}} | +{{Spec2('CSS2.1')}} | +Ajout des valeurs pour les tableaux et ajout de inline-block. |
+
| {{SpecName('CSS1', '#display', 'display')}} | +{{Spec2('CSS1')}} | +Spécification initiale. Valeurs de base : none, block, inline et list-item. |
+
En plus du module de spécification CSS Display de niveau 3, d'autres modules de spécifications définissent le comportement à avoir selon les différentes valeurs de display.
{{Compat("css.properties.display", 10)}}
diff --git a/files/fr/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html b/files/fr/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html deleted file mode 100644 index 228aad4a9b..0000000000 --- a/files/fr/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html +++ /dev/null @@ -1,219 +0,0 @@ ---- -title: Aligner des éléments dans un conteneur flexible -slug: Web/CSS/css_flexible_box_layout/aligning_items_in_a_flex_container -tags: - - CSS - - Flex - - Guide - - Web - - flexbox -translation_of: Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container -original_slug: >- - Web/CSS/CSS_Flexible_Box_Layout/Aligner_des_éléments_dans_un_conteneur_flexible ---- -{{CSSRef}}
- -Une des raisons qui ont poussé à l'adoption des boîtes flexibles est la présence d'outils d'alignement enfin corrects pour le Web. On pouvait ainsi enfin centrer une boîte sur un axe vertical. Dans ce guide, nous verrons dans le détail comment fonctionnent les propriétés d'alignement et de justification relatives aux boîtes flexibles.
- -Afin de centrer notre boîte, nous allons utiliser la propriété align-items afin d'aligner l'objet sur l'axe secondaire (cross axis en anglais). Dans notre exemple, cet axe est l'axe de bloc et est orienté verticalement. La propriété justify-content est quant à elle utilisée pour aligner l'objet sur l'axe principal (main axis en anglais) (ici l'axe principal est l'axe en ligne qui s'étend horizontalement).

- -
Vous pouvez étudier le code de l'exemple suivant et modifier la taille du conteneur ou d'un élément imbriqué : l'élément imbriqué sera toujours centré.
- -{{EmbedGHLiveSample("css-examples/flexbox/alignment/intro.html", '100%', 700)}}
- -Voici les propriétés que nous étudierons dans ce guide :
- -Nous verrons également comment les marges automatiques peuvent être utilisées dans l'alignement des boîtes flexibles.
- -Note : Les propriétés d'alignement du module de spécification CSS Flexbox ont été placés dans leur propre spécification : CSS Box Alignment Level 3. Cette dernière remplacera à terme les propriétés définies dans le module Flexbox de niveau 1.
-Les propriétés align-items et align-self permettent de gérer l'alignement des éléments flexibles sur l'axe secondaire.
Prenons un exemple simple : nous ajoutons display: flex à un conteneur qui contient trois objets. Tous s'étirent afin d'être aussi grands que le plus grand des éléments car celui-ci définit la taille du conteneur sur l'axe secondaire. Si le conteneur flexible possède une hauteur définie, les objets qu'il contient s'étireront pour atteindre cette taille, quel que soit le contenu dont ils disposent.


Les éléments obtiennent la même hauteur à cause de la valeur initiale de align-items qui contrôle l'alignement sur l'axe secondaire. Cette valeur initiale est stretch (qui indique que les objets du conteneur doivent être étirés sur l'axe).
Voici les valeurs disponibles pour aligner les objets :
- -align-items: flex-startalign-items: flex-endalign-items: centeralign-items: stretchalign-items: baselineDans l'exemple qui suit, la valeur d'align-items est stretch. Vous pouvez essayer les autres valeurs afin de voir comment les objets s'alignent dans le conteneur.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-items.html", '100%', 520)}}
- -align-selfLa propriété align-items définit la valeur de la propriété align-self pour l'ensemble des objets flexibles. Cela signifie qu'on peut utiliser la propriété align-self de façon explicite, sur un élément donné, afin de préciser son alignement. La propriété align-self prend en charge les mêmes valeurs que align-items ainsi qu'un mot-clé auto qui reprendra la valeur définie sur le conteneur flexible.
Dans le prochain exemple, le conteneur flexible a align-items: flex-start, ce qui signifie que les éléments sont tous alignés au début de l'axe secondaire. On utilise le sélecteur first-child afin de cibler le premier élément fils pour lequel on indique align-self: stretch ; un autre élément a été sélectionné via la classe selected et est paramétré avec align-self: center. Vous pouvez modifier la valeur de align-items ou changer les valeurs d'align-self sur les éléments afin d'observer le fonctionnement.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-self.html", '100%', 650)}}
- -Jusqu'à présent, les exemples fonctionnaient avec flex-direction valant row et avec un langage dont les lignes progressent du haut vers le bas. Cela signifie que l'axe principal est une ligne horizontale et que l'axe secondaire est une ligne verticale dirigée vers le bas.

Si on passe flex-direction à column, align-items et align-self aligneront les éléments à gauche et à droite.

Vous pouvez manipuler cet exemple qui reprend le même code que l'exemple précédent avec la seule exception que flex-direction vaut ici column.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-self-column.html", '100%', 730)}}
- -align-contentJusqu'à présent, nous avons aligné les éléments ou un élément donné dans la zone définie par le conteneur flexible. Si on a un conteneur qui s'étend / se divise sur plusieurs lignes, on pourra utiliser la propriété align-content afin de contrôler la distribution de l'espace entre les lignes. La spécification décrit cela comme le groupement des lignes flexibles.
Afin qu'align-content puisse fonctionner, il faut un conteneur dont la hauteur est supérieure à celle qui est nécessaire à l'affichage des éléments. Le moteur applique alors les règles sur l'ensemble des éléments et régit l'utilisation de l'espace restant et l'alignement de l'ensemble dans cet espace.
La propriété align-content prend les valeurs suivantes :
align-content: flex-startalign-content: flex-endalign-content: centeralign-content: space-betweenalign-content: space-aroundalign-content: stretchalign-content: space-evenly (cette valeur n'est pas définie dans le module de spécification Flexbox)Dans l'exemple suivant, le conteneur flexible a une hauteur de 400 pixels, ce qui est supérieur à ce qui est nécessaire pour afficher le contenu. align-content vaut space-between ce qui signifie que l'espace disponible sera réparti entre les lignes flexibles dont la première commence en étant adjacente à la ligne de début et dont la dernière est adjacente à la ligne de fin de l'axe secondaire.
Vous pouvez modifier la valeur de align-content afin d'observer comment cette propriété fonctionne.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-content.html", '100%', 850)}}
- -Là encore, on peut passer avec flex-direction: column afin de voir comment les propriétés se comportent sur les colonnes. Là aussi, il faut suffisamment d'espace le long de l'axe secondaire afin qu'il y ait de l'espace libre à répartir.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-content-column.html", '100%', 860)}}
- -Note : La valeur space-evenly n'est pas définie dans la spécification relative aux boîtes flexibles et a été dernièrement ajoutée à la spécification sur l'alignement des boîtes. Cette valeur est donc moins prise en charge par les navigateurs que les autres mots-clés.
Vous pouvez consulter la documentation sur {{cssxref("align-content")}} pour en savoir plus, notamment sur la compatibilité des navigateurs.
- -Nous avons pu voir comment fonctionne l'alignement sur l'axe secondaire. Concentrons-nous désormais sur l'alignement relatif à l'axe principal. Ici, une seule propriété est disponible : justify-content. En effet, sur cet axe, les éléments sont gérés comme un seul groupe. Avec, justify-content on contrôle comment l'espace disponible est réparti s'il y a plus d'espace que nécessaire pour afficher les objets.
Dans l'exemple initial avec display: flex appliqué au conteneur, les éléments formaient une ligne qui commençait au début du conteneur. Cela provient de la valeur initiale de justify-content qui est flex-start. Avec cette valeur, tout l'espace disponible est placé à la fin, après les éléments.

La propriété justify-content prend en charge les mêmes valeurs que align-content.
justify-content: flex-startjustify-content: flex-endjustify-content: centerjustify-content: space-betweenjustify-content: space-aroundjustify-content: stretchjustify-content: space-evenly (ce mot-clé n'est pas défini dans la spécification CSS sur les boîtes flexibles)Dans le prochain exemple, justify-content vaut space-between. L'espace disponible après l'affichage des éléments est alors distribué entre les éléments et le premier élément est adjacent à la ligne de début et le dernier est adjacent à la ligne de fin.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content.html", '100%', 480)}}
- -Si l'axe principal suit la direction de bloc (orthogonale au sens d'écriture) car flex-direction est paramétré avec la valeur column, justify-content distribuera l'espace selon cet axe tant que l'espace du conteneur flexible est suffisant.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content-column.html", '100%', 880)}}
- -Rappelons ici qu'avec ces méthodes d'alignement, flex-start et flex-end respectent le mode d'écriture utilisé. Si on utilise justify-content avec la valeur start pour un contenu écrit en anglais (un mode d'écriture de la gauche vers la droite), les éléments commenceront à gauche du conteneur.

Mais si le contenu est écrit en arabe (un mode d'écriture de la droite vers la gauche), les éléments démarreront à la droite du conteneur.
- -
Dans l'exemple qui suit, on indique explicitement la valeur rtl pour la propriété display afin de forcer un mode d'écriture de droite à gauche. Vous pouvez retirer cette déclaration ou modifier la valeur de justify-content afin de voir comment les boîtes flexibles s'organisent lorsque le début de la ligne est à droite.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content-writing-mode.html", '100%', 440)}}
- -flex-directionLa ligne de début sera également modifiée si on change la valeur de la propriété flex-direction, par exemple en utilisant row-reverse à la place de row.
Dans le prochain exemple, on utilise flex-direction: row-reverse et justify-content: flex-end. Pour une langue écrite de gauche à droite, les éléments seront regroupés à gauche. Si vous modifiez les valeurs et passez de flex-direction: row-reverse à flex-direction: row. Vous verrez que les éléments sont désormais groupés à droite.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content-reverse.html", '100%', 440)}}
- -Si cela peut paraître déroutant, la règle principale à mémoriser est que, par défaut, si on ne change rien, les éléments flexibles sont organisés dans la direction naturelle de la langue dans laquelle le document est écrit. flex-start correspondra donc à la ligne de début depuis laquelle une phrase démarrerait.

On peut changer l'axe avec flex-direction: column. Dans ce cas, flex-start correspondra à l'emplacement du début du premier paragraphe d'un texte.

Si on utilise flex-direction avec une des valeurs inversée, les éléments seront organisés dans l'ordre inverse (à l'opposé de la disposition naturelle de la langue utilisée pour le document). flex-start correspondra alors à la « fin » usuelle d'une ligne de texte sur une disposition en ligne et au dernier paragraphe sur une disposition organisée sur un axe principal vertical.


Il n'existe pas de propriété justify-items ou justify-self qui permettent d'aligner un élément donné parmi le groupe d'éléments flexibles organisés sur l'axe principal. Toutefois, on peut obtenir un alignement individuel pour séparer un élément ou un groupe d'éléments grâce aux marges automatiques et aux boîtes flexibles.
Un motif fréquent est l'organisation d'une barre de navigation où certains éléments clés sont situés à droite alors qu'un groupe principal est présent à gauche. On pourrait alors penser qu'il s'agit d'un cas d'utilisation pour une propriété comme justify-self… Cependant, si on regarde l'image qui suit et qu'on était capable de modifier justify-self sur l'élément d, cela changerait également l'alignement de l'élément e qui suit, ce qui pourrait ou non être voulu.

Plutôt que cela, on peut cibler le quatrième élément et le séparer des trois premiers en utilisant margin-left: auto. Une marge automatique consommera tout l'espace disponible sur l'axe correspondant.
Dans l'exemple qui suit, on a plusieurs éléments flexibles organisés sur une ligne avec les valeurs de base pour les propriétés liées aux boîtes flexibles. La classe push possède la déclaration margin-left: auto. Vous pouvez observer l'effet obtenu en retirant cette classe ou en l'appliquant à un autre élément.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/auto-margins.html", '100%', 470)}}
- -Au début de cet article, nous avons vu que les propriétés d'alignement actuellement définies dans le module de spécification CSS de niveau 1 pour les boîtes flexibles étaient également définies dans le module de spécification de niveau 3 pour l'alignement des boîtes. Ce module pourrait voir l'apparition de nouvelles valeurs pour ces propriétés comme le montre d'ailleurs l'introduction de la valeur space-evenly pour les propriétés align-content et justify-content.
Le module de spécification sur l'alignement des boîtes inclut également d'autres méthodes pour créer des espaces entre les objets telles que les propriétés column-gap et row-gap décrites dans le module de grille CSS (CSS Grid). L'inclusion de ces propriétés dans le module d'alignement des boîtes signifie que nous pourrons plus tard les utiliser dans les dispositions avec les boîtes flexibles. Cela signifie qu'il ne sera plus nécessaire d'utiliser des marges afin d'espacer des éléments flexibles. Firefox 63 devrait implémenter les propriétés gap pour les dispositions flexibles.
Lorsque vous explorez les différentes méthodes d'alignement relatives aux boîtes flexibles, n'hésitez pas à étudier ce qui est disponible avec une disposition en grille (CSS Grid Layout). En effet, ces deux spécifications utilisent les propriétés d'alignement qui sont désormais détaillées dans la spécification sur l'alignement des boîtes. Vous pouvez en savoir plus sur le fonctionnement de ces propriétés sur une grille grâce à cet article. Une page récapitulative (en anglais) est également disponible pour comparer le fonctionnement de l'alignement par rapport à ces différentes spécifications : Box Alignment Cheatsheet.
- -{{CSSRef}}
+ +Une des raisons qui ont poussé à l'adoption des boîtes flexibles est la présence d'outils d'alignement enfin corrects pour le Web. On pouvait ainsi enfin centrer une boîte sur un axe vertical. Dans ce guide, nous verrons dans le détail comment fonctionnent les propriétés d'alignement et de justification relatives aux boîtes flexibles.
+ +Afin de centrer notre boîte, nous allons utiliser la propriété align-items afin d'aligner l'objet sur l'axe secondaire (cross axis en anglais). Dans notre exemple, cet axe est l'axe de bloc et est orienté verticalement. La propriété justify-content est quant à elle utilisée pour aligner l'objet sur l'axe principal (main axis en anglais) (ici l'axe principal est l'axe en ligne qui s'étend horizontalement).

+ +
Vous pouvez étudier le code de l'exemple suivant et modifier la taille du conteneur ou d'un élément imbriqué : l'élément imbriqué sera toujours centré.
+ +{{EmbedGHLiveSample("css-examples/flexbox/alignment/intro.html", '100%', 700)}}
+ +Voici les propriétés que nous étudierons dans ce guide :
+ +Nous verrons également comment les marges automatiques peuvent être utilisées dans l'alignement des boîtes flexibles.
+ +Note : Les propriétés d'alignement du module de spécification CSS Flexbox ont été placés dans leur propre spécification : CSS Box Alignment Level 3. Cette dernière remplacera à terme les propriétés définies dans le module Flexbox de niveau 1.
+Les propriétés align-items et align-self permettent de gérer l'alignement des éléments flexibles sur l'axe secondaire.
Prenons un exemple simple : nous ajoutons display: flex à un conteneur qui contient trois objets. Tous s'étirent afin d'être aussi grands que le plus grand des éléments car celui-ci définit la taille du conteneur sur l'axe secondaire. Si le conteneur flexible possède une hauteur définie, les objets qu'il contient s'étireront pour atteindre cette taille, quel que soit le contenu dont ils disposent.


Les éléments obtiennent la même hauteur à cause de la valeur initiale de align-items qui contrôle l'alignement sur l'axe secondaire. Cette valeur initiale est stretch (qui indique que les objets du conteneur doivent être étirés sur l'axe).
Voici les valeurs disponibles pour aligner les objets :
+ +align-items: flex-startalign-items: flex-endalign-items: centeralign-items: stretchalign-items: baselineDans l'exemple qui suit, la valeur d'align-items est stretch. Vous pouvez essayer les autres valeurs afin de voir comment les objets s'alignent dans le conteneur.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-items.html", '100%', 520)}}
+ +align-selfLa propriété align-items définit la valeur de la propriété align-self pour l'ensemble des objets flexibles. Cela signifie qu'on peut utiliser la propriété align-self de façon explicite, sur un élément donné, afin de préciser son alignement. La propriété align-self prend en charge les mêmes valeurs que align-items ainsi qu'un mot-clé auto qui reprendra la valeur définie sur le conteneur flexible.
Dans le prochain exemple, le conteneur flexible a align-items: flex-start, ce qui signifie que les éléments sont tous alignés au début de l'axe secondaire. On utilise le sélecteur first-child afin de cibler le premier élément fils pour lequel on indique align-self: stretch ; un autre élément a été sélectionné via la classe selected et est paramétré avec align-self: center. Vous pouvez modifier la valeur de align-items ou changer les valeurs d'align-self sur les éléments afin d'observer le fonctionnement.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-self.html", '100%', 650)}}
+ +Jusqu'à présent, les exemples fonctionnaient avec flex-direction valant row et avec un langage dont les lignes progressent du haut vers le bas. Cela signifie que l'axe principal est une ligne horizontale et que l'axe secondaire est une ligne verticale dirigée vers le bas.

Si on passe flex-direction à column, align-items et align-self aligneront les éléments à gauche et à droite.

Vous pouvez manipuler cet exemple qui reprend le même code que l'exemple précédent avec la seule exception que flex-direction vaut ici column.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-self-column.html", '100%', 730)}}
+ +align-contentJusqu'à présent, nous avons aligné les éléments ou un élément donné dans la zone définie par le conteneur flexible. Si on a un conteneur qui s'étend / se divise sur plusieurs lignes, on pourra utiliser la propriété align-content afin de contrôler la distribution de l'espace entre les lignes. La spécification décrit cela comme le groupement des lignes flexibles.
Afin qu'align-content puisse fonctionner, il faut un conteneur dont la hauteur est supérieure à celle qui est nécessaire à l'affichage des éléments. Le moteur applique alors les règles sur l'ensemble des éléments et régit l'utilisation de l'espace restant et l'alignement de l'ensemble dans cet espace.
La propriété align-content prend les valeurs suivantes :
align-content: flex-startalign-content: flex-endalign-content: centeralign-content: space-betweenalign-content: space-aroundalign-content: stretchalign-content: space-evenly (cette valeur n'est pas définie dans le module de spécification Flexbox)Dans l'exemple suivant, le conteneur flexible a une hauteur de 400 pixels, ce qui est supérieur à ce qui est nécessaire pour afficher le contenu. align-content vaut space-between ce qui signifie que l'espace disponible sera réparti entre les lignes flexibles dont la première commence en étant adjacente à la ligne de début et dont la dernière est adjacente à la ligne de fin de l'axe secondaire.
Vous pouvez modifier la valeur de align-content afin d'observer comment cette propriété fonctionne.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-content.html", '100%', 850)}}
+ +Là encore, on peut passer avec flex-direction: column afin de voir comment les propriétés se comportent sur les colonnes. Là aussi, il faut suffisamment d'espace le long de l'axe secondaire afin qu'il y ait de l'espace libre à répartir.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/align-content-column.html", '100%', 860)}}
+ +Note : La valeur space-evenly n'est pas définie dans la spécification relative aux boîtes flexibles et a été dernièrement ajoutée à la spécification sur l'alignement des boîtes. Cette valeur est donc moins prise en charge par les navigateurs que les autres mots-clés.
Vous pouvez consulter la documentation sur {{cssxref("align-content")}} pour en savoir plus, notamment sur la compatibilité des navigateurs.
+ +Nous avons pu voir comment fonctionne l'alignement sur l'axe secondaire. Concentrons-nous désormais sur l'alignement relatif à l'axe principal. Ici, une seule propriété est disponible : justify-content. En effet, sur cet axe, les éléments sont gérés comme un seul groupe. Avec, justify-content on contrôle comment l'espace disponible est réparti s'il y a plus d'espace que nécessaire pour afficher les objets.
Dans l'exemple initial avec display: flex appliqué au conteneur, les éléments formaient une ligne qui commençait au début du conteneur. Cela provient de la valeur initiale de justify-content qui est flex-start. Avec cette valeur, tout l'espace disponible est placé à la fin, après les éléments.

La propriété justify-content prend en charge les mêmes valeurs que align-content.
justify-content: flex-startjustify-content: flex-endjustify-content: centerjustify-content: space-betweenjustify-content: space-aroundjustify-content: stretchjustify-content: space-evenly (ce mot-clé n'est pas défini dans la spécification CSS sur les boîtes flexibles)Dans le prochain exemple, justify-content vaut space-between. L'espace disponible après l'affichage des éléments est alors distribué entre les éléments et le premier élément est adjacent à la ligne de début et le dernier est adjacent à la ligne de fin.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content.html", '100%', 480)}}
+ +Si l'axe principal suit la direction de bloc (orthogonale au sens d'écriture) car flex-direction est paramétré avec la valeur column, justify-content distribuera l'espace selon cet axe tant que l'espace du conteneur flexible est suffisant.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content-column.html", '100%', 880)}}
+ +Rappelons ici qu'avec ces méthodes d'alignement, flex-start et flex-end respectent le mode d'écriture utilisé. Si on utilise justify-content avec la valeur start pour un contenu écrit en anglais (un mode d'écriture de la gauche vers la droite), les éléments commenceront à gauche du conteneur.

Mais si le contenu est écrit en arabe (un mode d'écriture de la droite vers la gauche), les éléments démarreront à la droite du conteneur.
+ +
Dans l'exemple qui suit, on indique explicitement la valeur rtl pour la propriété display afin de forcer un mode d'écriture de droite à gauche. Vous pouvez retirer cette déclaration ou modifier la valeur de justify-content afin de voir comment les boîtes flexibles s'organisent lorsque le début de la ligne est à droite.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content-writing-mode.html", '100%', 440)}}
+ +flex-directionLa ligne de début sera également modifiée si on change la valeur de la propriété flex-direction, par exemple en utilisant row-reverse à la place de row.
Dans le prochain exemple, on utilise flex-direction: row-reverse et justify-content: flex-end. Pour une langue écrite de gauche à droite, les éléments seront regroupés à gauche. Si vous modifiez les valeurs et passez de flex-direction: row-reverse à flex-direction: row. Vous verrez que les éléments sont désormais groupés à droite.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/justify-content-reverse.html", '100%', 440)}}
+ +Si cela peut paraître déroutant, la règle principale à mémoriser est que, par défaut, si on ne change rien, les éléments flexibles sont organisés dans la direction naturelle de la langue dans laquelle le document est écrit. flex-start correspondra donc à la ligne de début depuis laquelle une phrase démarrerait.

On peut changer l'axe avec flex-direction: column. Dans ce cas, flex-start correspondra à l'emplacement du début du premier paragraphe d'un texte.

Si on utilise flex-direction avec une des valeurs inversée, les éléments seront organisés dans l'ordre inverse (à l'opposé de la disposition naturelle de la langue utilisée pour le document). flex-start correspondra alors à la « fin » usuelle d'une ligne de texte sur une disposition en ligne et au dernier paragraphe sur une disposition organisée sur un axe principal vertical.


Il n'existe pas de propriété justify-items ou justify-self qui permettent d'aligner un élément donné parmi le groupe d'éléments flexibles organisés sur l'axe principal. Toutefois, on peut obtenir un alignement individuel pour séparer un élément ou un groupe d'éléments grâce aux marges automatiques et aux boîtes flexibles.
Un motif fréquent est l'organisation d'une barre de navigation où certains éléments clés sont situés à droite alors qu'un groupe principal est présent à gauche. On pourrait alors penser qu'il s'agit d'un cas d'utilisation pour une propriété comme justify-self… Cependant, si on regarde l'image qui suit et qu'on était capable de modifier justify-self sur l'élément d, cela changerait également l'alignement de l'élément e qui suit, ce qui pourrait ou non être voulu.

Plutôt que cela, on peut cibler le quatrième élément et le séparer des trois premiers en utilisant margin-left: auto. Une marge automatique consommera tout l'espace disponible sur l'axe correspondant.
Dans l'exemple qui suit, on a plusieurs éléments flexibles organisés sur une ligne avec les valeurs de base pour les propriétés liées aux boîtes flexibles. La classe push possède la déclaration margin-left: auto. Vous pouvez observer l'effet obtenu en retirant cette classe ou en l'appliquant à un autre élément.
{{EmbedGHLiveSample("css-examples/flexbox/alignment/auto-margins.html", '100%', 470)}}
+ +Au début de cet article, nous avons vu que les propriétés d'alignement actuellement définies dans le module de spécification CSS de niveau 1 pour les boîtes flexibles étaient également définies dans le module de spécification de niveau 3 pour l'alignement des boîtes. Ce module pourrait voir l'apparition de nouvelles valeurs pour ces propriétés comme le montre d'ailleurs l'introduction de la valeur space-evenly pour les propriétés align-content et justify-content.
Le module de spécification sur l'alignement des boîtes inclut également d'autres méthodes pour créer des espaces entre les objets telles que les propriétés column-gap et row-gap décrites dans le module de grille CSS (CSS Grid). L'inclusion de ces propriétés dans le module d'alignement des boîtes signifie que nous pourrons plus tard les utiliser dans les dispositions avec les boîtes flexibles. Cela signifie qu'il ne sera plus nécessaire d'utiliser des marges afin d'espacer des éléments flexibles. Firefox 63 devrait implémenter les propriétés gap pour les dispositions flexibles.
Lorsque vous explorez les différentes méthodes d'alignement relatives aux boîtes flexibles, n'hésitez pas à étudier ce qui est disponible avec une disposition en grille (CSS Grid Layout). En effet, ces deux spécifications utilisent les propriétés d'alignement qui sont désormais détaillées dans la spécification sur l'alignement des boîtes. Vous pouvez en savoir plus sur le fonctionnement de ces propriétés sur une grille grâce à cet article. Une page récapitulative (en anglais) est également disponible pour comparer le fonctionnement de l'alignement par rapport à ces différentes spécifications : Box Alignment Cheatsheet.
+ +Voici un ensemble de mixins pour vous permettre de bidouiller avec les boîtes flexibles grâce au support natif des navigateurs actuels.
- -Dans ces mixins, on utilisera :
- -flex)Ces mixins ont été inspirés par : https://dev.opera.com/articles/view/advanced-cross-browser-flexbox/
- -Et les articles suivants ont été d'une aide précieuse :
- -Note : Actuellement, les mixins ne sont pas pris en charge nativement par les navigateurs. Il faut utiliser un pré-processeur CSS afin de tirer parti des techniques suivantes. Cependant, les pré-processeurs ne font que générer du code CSS valide et on pourra donc appliquer les techniques précédentes en utilisant du « pur » CSS si on le souhaite.
-En utilisant la valeur flex pour la propriété {{cssxref("display")}}, on génère une boîte pour un conteneur flexible de bloc. La valeur inline-flex permet quant à elle de générer un conteneur flexible en ligne (inline).
flex | inline-flex@mixin flexbox {
- display: -webkit-box;
- display: -moz-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-
-// Exemple d'utilisation
-%flexbox { @include flexbox; }
-
-@mixin inline-flex {
- display: -webkit-inline-box;
- display: -moz-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-
-%inline-flex { @include inline-flex; }
-
-La propriété {{cssxref("flex-direction")}} indique la façon dont les objets flexibles sont organisés dans le conteneur flexible en définissant la direction principale du conteneur. Autrement dit, elle détermine la direction selon laquelle les éléments flexibles sont disposés.
- -row (la valeur par défaut)| row-reverse | column | column-reverse@mixin flex-direction($value: row) {
- @if $value == row-reverse {
- -webkit-box-direction: reverse;
- -webkit-box-orient: horizontal;
- -moz-box-direction: reverse;
- -moz-box-orient: horizontal;
- } @else if $value == column {
- -webkit-box-direction: normal;
- -webkit-box-orient: vertical;
- -moz-box-direction: normal;
- -moz-box-orient: vertical;
- } @else if $value == column-reverse {
- -webkit-box-direction: reverse;
- -webkit-box-orient: vertical;
- -moz-box-direction: reverse;
- -moz-box-orient: vertical;
- } @else {
- -webkit-box-direction: normal;
- -webkit-box-orient: horizontal;
- -moz-box-direction: normal;
- -moz-box-orient: horizontal;
- }
- -webkit-flex-direction: $value;
- -ms-flex-direction: $value;
- flex-direction: $value;
-}
-
-// Version plus courte :
-@mixin flex-dir($args...) { @include flex-direction($args...); }
-
-flex-wrapLa propriété {{cssxref("flex-wrap")}} permet de contrôler si le conteneur flexible s'étend sur une ou sur un plusieurs lignes ainsi que la direction de l'axe secondaire (qui définit la direction dans laquelle les lignes sont « empilées »).
- -nowrap (la valeur par défaut)| wrap | wrap-reverse@mixin flex-wrap($value: nowrap) {
- // No Webkit/FF Box fallback.
- -webkit-flex-wrap: $value;
- @if $value == nowrap {
- -ms-flex-wrap: none;
- } @else {
- -ms-flex-wrap: $value;
- }
- flex-wrap: $value;
-}
-
-flex-flowLa propriété {{cssxref("flex-flow")}} est une propriété raccourcie pour définir flex-direction et flex-wrap qui permettent respectivement de définir l'axe principal et l'axe secondaire.
row (la valeur par défaut)| nowrap@mixin flex-flow($values: (row nowrap)) {
- // No Webkit/FF Box fallback.
- -webkit-flex-flow: $values;
- -ms-flex-flow: $values;
- flex-flow: $values;
-}
-
-orderLa propriété {{cssxref("order")}} contrôle l'ordre dans lequel les éléments apparaissent dans le conteneur flexible en les affectant à des groupes ordinaux.
- -@mixin order($int: 0) {
- -webkit-box-ordinal-group: $int + 1;
- -moz-box-ordinal-group: $int + 1;
- -webkit-order: $int;
- -ms-flex-order: $int;
- order: $int;
-}
-
-flex-growLa propriété {{cssxref("flex-grow")}} définit le facteur d'expansion flexible. Les nombres négatifs ne sont pas autorisés.
- -@mixin flex-grow($int: 1) {
- -webkit-box-flex: $int;
- -moz-box-flex: $int;
- -webkit-flex-grow: $int;
- -ms-flex: $int;
- flex-grow: $int;
-}
-
-flex-shrinkLa propriété {{cssxref("flex-shrink")}} permet de définir le facteur de réduction des éléments flexibles. Les nombres négatifs ne sont pas autorisés.
- -@mixin flex-shrink($int: 0) {
- -webkit-flex-shrink: $int;
- -moz-flex-shrink: $int;
- -ms-flex: $int;
- flex-shrink: $int;
-}
-
-flex-basisLa propriété {{cssxref("flex-basis")}} permet de définir la longueur de base à partir de laquelle s'étendre ou se réduire. Les longueurs négatives ne sont pas autorisées.
- -auto.@mixin flex-basis($value: auto) {
- -webkit-flex-basis: $value;
- flex-basis: $value;
-}
-
-flexLa propriété raccourcie {{cssxref("flex")}} permet de définir les composants d'une longueur flexible : le facteur d'expansion (flex-grow), le facteur de réduction (flex-shrink) et la longueur de base (flex-basis). Lorsqu'un élément est un élément flexible, c'est flex qui sera utilisée (plutôt que width ou height) afin de déterminer la taille de l'élément. Si l'élément n'est pas un objet flexible, flex n'aura aucun effet.
@mixin flex($fg: 1, $fs: 0, $fb: auto) {
-
- // Définir une variable pour l'utiliser
- // avec les propriétés box-flex
- $fg-boxflex: $fg;
-
- // Box-Flex ne prend qu'une valeur, on prend donc
- // la première valeur de la liste et on la renvoie.
- @if type-of($fg) == 'list' {
- $fg-boxflex: nth($fg, 1);
- }
-
- -webkit-box: $fg-boxflex;
- -moz-box: $fg-boxflex;
- -webkit-flex: $fg $fs $fb;
- -ms-flex: $fg $fs $fb;
- flex: $fg $fs $fb;
-}
-
-justify-contentLa propriété {{cssxref("justify-content")}} permet d'aligner les éléments flexibles le long de l'axe principal pour la ligne en cours dans le conteneur flexible. Cet alignement s'effectue après que les longueurs flexibles et les marges automatiques aient été résolues. Généralement, cela permet de distribuer l'espace restant entre les éléments d'une ligne qui ne sont pas flexibles ou qui ont atteint leur taille maximale. Cela contrôle également le comportement des éléments lorsqu'ils dépassent de la ligne.
- -Note : Les valeurs de la forme space-* ne sont pas prises en charge avec les anciennes syntaxes.
flex-start (la valeur par défaut)| flex-end | center | space-between | space-around@mixin justify-content($value: flex-start) {
- @if $value == flex-start {
- -webkit-box-pack: start;
- -moz-box-pack: start;
- -ms-flex-pack: start;
- } @else if $value == flex-end {
- -webkit-box-pack: end;
- -moz-box-pack: end;
- -ms-flex-pack: end;
- } @else if $value == space-between {
- -webkit-box-pack: justify;
- -moz-box-pack: justify;
- -ms-flex-pack: justify;
- } @else if $value == space-around {
- -ms-flex-pack: distribute;
- } @else {
- -webkit-box-pack: $value;
- -moz-box-pack: $value;
- -ms-flex-pack: $value;
- }
- -webkit-justify-content: $value;
- justify-content: $value;
-}
- // Version plus courte :
- @mixin flex-just($args...) { @include justify-content($args...); }
-
-align-itemsLes objets flexibles peuvent être alignés le long de l'axe secondaire (comme pour justify-content mais dans l'axe perpendiculaire). {{cssxref("align-items")}} définit l'alignement par défaut de tous les objets du conteneur flexible. align-self permet aux objets flexibles de surcharger cette valeur (pour les objets anonymes, align-self correspondra toujours à align-items).
flex-start | flex-end | center | baseline | stretch (la valeur par défaut)@mixin align-items($value: stretch) {
- @if $value == flex-start {
- -webkit-box-align: start;
- -moz-box-align: start;
- -ms-flex-align: start;
- } @else if $value == flex-end {
- -webkit-box-align: end;
- -moz-box-align: end;
- -ms-flex-align: end;
- } @else {
- -webkit-box-align: $value;
- -moz-box-align: $value;
- -ms-flex-align: $value;
- }
- -webkit-align-items: $value;
- align-items: $value;
-}
-
-align-selfauto (la valeur par défaut)| flex-start | flex-end | center | baseline | stretch@mixin align-self($value: auto) {
- // No Webkit Box Fallback.
- -webkit-align-self: $value;
- @if $value == flex-start {
- -ms-flex-item-align: start;
- } @else if $value == flex-end {
- -ms-flex-item-align: end;
- } @else {
- -ms-flex-item-align: $value;
- }
- align-self: $value;
-}
-
-align-contentLa propriété {{cssxref("align-content")}} permet d'aligner les lignes créées dans le conteneur flexible lorsqu'il reste de l'espace le long de l'axe secondaire. Cette propriété n'a aucun effet lorsqu'il n'y a qu'une seule ligne.
- -flex-start | flex-end | center | space-between | space-around | stretch (la valeur par défaut)@mixin align-content($value: stretch) {
- // No Webkit Box Fallback.
- -webkit-align-content: $value;
- @if $value == flex-start {
- -ms-flex-line-pack: start;
- } @else if $value == flex-end {
- -ms-flex-line-pack: end;
- } @else {
- -ms-flex-line-pack: $value;
- }
- align-content: $value;
-}
\ No newline at end of file
diff --git a/files/fr/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.md b/files/fr/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.md
new file mode 100644
index 0000000000..4583fc1934
--- /dev/null
+++ b/files/fr/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.md
@@ -0,0 +1,342 @@
+---
+title: Mises en page avancées avec les boîtes flexibles
+slug: Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox
+tags:
+ - CSS
+ - Reference
+ - flexbox
+translation_of: Web/CSS/CSS_Flexible_Box_Layout/Mixins
+original_slug: Web/CSS/CSS_Flexible_Box_Layout/Mixins
+---
+Voici un ensemble de mixins pour vous permettre de bidouiller avec les boîtes flexibles grâce au support natif des navigateurs actuels.
+ +Dans ces mixins, on utilisera :
+ +flex)Ces mixins ont été inspirés par : https://dev.opera.com/articles/view/advanced-cross-browser-flexbox/
+ +Et les articles suivants ont été d'une aide précieuse :
+ +Note : Actuellement, les mixins ne sont pas pris en charge nativement par les navigateurs. Il faut utiliser un pré-processeur CSS afin de tirer parti des techniques suivantes. Cependant, les pré-processeurs ne font que générer du code CSS valide et on pourra donc appliquer les techniques précédentes en utilisant du « pur » CSS si on le souhaite.
+En utilisant la valeur flex pour la propriété {{cssxref("display")}}, on génère une boîte pour un conteneur flexible de bloc. La valeur inline-flex permet quant à elle de générer un conteneur flexible en ligne (inline).
flex | inline-flex@mixin flexbox {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+}
+
+// Exemple d'utilisation
+%flexbox { @include flexbox; }
+
+@mixin inline-flex {
+ display: -webkit-inline-box;
+ display: -moz-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+}
+
+%inline-flex { @include inline-flex; }
+
+La propriété {{cssxref("flex-direction")}} indique la façon dont les objets flexibles sont organisés dans le conteneur flexible en définissant la direction principale du conteneur. Autrement dit, elle détermine la direction selon laquelle les éléments flexibles sont disposés.
+ +row (la valeur par défaut)| row-reverse | column | column-reverse@mixin flex-direction($value: row) {
+ @if $value == row-reverse {
+ -webkit-box-direction: reverse;
+ -webkit-box-orient: horizontal;
+ -moz-box-direction: reverse;
+ -moz-box-orient: horizontal;
+ } @else if $value == column {
+ -webkit-box-direction: normal;
+ -webkit-box-orient: vertical;
+ -moz-box-direction: normal;
+ -moz-box-orient: vertical;
+ } @else if $value == column-reverse {
+ -webkit-box-direction: reverse;
+ -webkit-box-orient: vertical;
+ -moz-box-direction: reverse;
+ -moz-box-orient: vertical;
+ } @else {
+ -webkit-box-direction: normal;
+ -webkit-box-orient: horizontal;
+ -moz-box-direction: normal;
+ -moz-box-orient: horizontal;
+ }
+ -webkit-flex-direction: $value;
+ -ms-flex-direction: $value;
+ flex-direction: $value;
+}
+
+// Version plus courte :
+@mixin flex-dir($args...) { @include flex-direction($args...); }
+
+flex-wrapLa propriété {{cssxref("flex-wrap")}} permet de contrôler si le conteneur flexible s'étend sur une ou sur un plusieurs lignes ainsi que la direction de l'axe secondaire (qui définit la direction dans laquelle les lignes sont « empilées »).
+ +nowrap (la valeur par défaut)| wrap | wrap-reverse@mixin flex-wrap($value: nowrap) {
+ // No Webkit/FF Box fallback.
+ -webkit-flex-wrap: $value;
+ @if $value == nowrap {
+ -ms-flex-wrap: none;
+ } @else {
+ -ms-flex-wrap: $value;
+ }
+ flex-wrap: $value;
+}
+
+flex-flowLa propriété {{cssxref("flex-flow")}} est une propriété raccourcie pour définir flex-direction et flex-wrap qui permettent respectivement de définir l'axe principal et l'axe secondaire.
row (la valeur par défaut)| nowrap@mixin flex-flow($values: (row nowrap)) {
+ // No Webkit/FF Box fallback.
+ -webkit-flex-flow: $values;
+ -ms-flex-flow: $values;
+ flex-flow: $values;
+}
+
+orderLa propriété {{cssxref("order")}} contrôle l'ordre dans lequel les éléments apparaissent dans le conteneur flexible en les affectant à des groupes ordinaux.
+ +@mixin order($int: 0) {
+ -webkit-box-ordinal-group: $int + 1;
+ -moz-box-ordinal-group: $int + 1;
+ -webkit-order: $int;
+ -ms-flex-order: $int;
+ order: $int;
+}
+
+flex-growLa propriété {{cssxref("flex-grow")}} définit le facteur d'expansion flexible. Les nombres négatifs ne sont pas autorisés.
+ +@mixin flex-grow($int: 1) {
+ -webkit-box-flex: $int;
+ -moz-box-flex: $int;
+ -webkit-flex-grow: $int;
+ -ms-flex: $int;
+ flex-grow: $int;
+}
+
+flex-shrinkLa propriété {{cssxref("flex-shrink")}} permet de définir le facteur de réduction des éléments flexibles. Les nombres négatifs ne sont pas autorisés.
+ +@mixin flex-shrink($int: 0) {
+ -webkit-flex-shrink: $int;
+ -moz-flex-shrink: $int;
+ -ms-flex: $int;
+ flex-shrink: $int;
+}
+
+flex-basisLa propriété {{cssxref("flex-basis")}} permet de définir la longueur de base à partir de laquelle s'étendre ou se réduire. Les longueurs négatives ne sont pas autorisées.
+ +auto.@mixin flex-basis($value: auto) {
+ -webkit-flex-basis: $value;
+ flex-basis: $value;
+}
+
+flexLa propriété raccourcie {{cssxref("flex")}} permet de définir les composants d'une longueur flexible : le facteur d'expansion (flex-grow), le facteur de réduction (flex-shrink) et la longueur de base (flex-basis). Lorsqu'un élément est un élément flexible, c'est flex qui sera utilisée (plutôt que width ou height) afin de déterminer la taille de l'élément. Si l'élément n'est pas un objet flexible, flex n'aura aucun effet.
@mixin flex($fg: 1, $fs: 0, $fb: auto) {
+
+ // Définir une variable pour l'utiliser
+ // avec les propriétés box-flex
+ $fg-boxflex: $fg;
+
+ // Box-Flex ne prend qu'une valeur, on prend donc
+ // la première valeur de la liste et on la renvoie.
+ @if type-of($fg) == 'list' {
+ $fg-boxflex: nth($fg, 1);
+ }
+
+ -webkit-box: $fg-boxflex;
+ -moz-box: $fg-boxflex;
+ -webkit-flex: $fg $fs $fb;
+ -ms-flex: $fg $fs $fb;
+ flex: $fg $fs $fb;
+}
+
+justify-contentLa propriété {{cssxref("justify-content")}} permet d'aligner les éléments flexibles le long de l'axe principal pour la ligne en cours dans le conteneur flexible. Cet alignement s'effectue après que les longueurs flexibles et les marges automatiques aient été résolues. Généralement, cela permet de distribuer l'espace restant entre les éléments d'une ligne qui ne sont pas flexibles ou qui ont atteint leur taille maximale. Cela contrôle également le comportement des éléments lorsqu'ils dépassent de la ligne.
+ +Note : Les valeurs de la forme space-* ne sont pas prises en charge avec les anciennes syntaxes.
flex-start (la valeur par défaut)| flex-end | center | space-between | space-around@mixin justify-content($value: flex-start) {
+ @if $value == flex-start {
+ -webkit-box-pack: start;
+ -moz-box-pack: start;
+ -ms-flex-pack: start;
+ } @else if $value == flex-end {
+ -webkit-box-pack: end;
+ -moz-box-pack: end;
+ -ms-flex-pack: end;
+ } @else if $value == space-between {
+ -webkit-box-pack: justify;
+ -moz-box-pack: justify;
+ -ms-flex-pack: justify;
+ } @else if $value == space-around {
+ -ms-flex-pack: distribute;
+ } @else {
+ -webkit-box-pack: $value;
+ -moz-box-pack: $value;
+ -ms-flex-pack: $value;
+ }
+ -webkit-justify-content: $value;
+ justify-content: $value;
+}
+ // Version plus courte :
+ @mixin flex-just($args...) { @include justify-content($args...); }
+
+align-itemsLes objets flexibles peuvent être alignés le long de l'axe secondaire (comme pour justify-content mais dans l'axe perpendiculaire). {{cssxref("align-items")}} définit l'alignement par défaut de tous les objets du conteneur flexible. align-self permet aux objets flexibles de surcharger cette valeur (pour les objets anonymes, align-self correspondra toujours à align-items).
flex-start | flex-end | center | baseline | stretch (la valeur par défaut)@mixin align-items($value: stretch) {
+ @if $value == flex-start {
+ -webkit-box-align: start;
+ -moz-box-align: start;
+ -ms-flex-align: start;
+ } @else if $value == flex-end {
+ -webkit-box-align: end;
+ -moz-box-align: end;
+ -ms-flex-align: end;
+ } @else {
+ -webkit-box-align: $value;
+ -moz-box-align: $value;
+ -ms-flex-align: $value;
+ }
+ -webkit-align-items: $value;
+ align-items: $value;
+}
+
+align-selfauto (la valeur par défaut)| flex-start | flex-end | center | baseline | stretch@mixin align-self($value: auto) {
+ // No Webkit Box Fallback.
+ -webkit-align-self: $value;
+ @if $value == flex-start {
+ -ms-flex-item-align: start;
+ } @else if $value == flex-end {
+ -ms-flex-item-align: end;
+ } @else {
+ -ms-flex-item-align: $value;
+ }
+ align-self: $value;
+}
+
+align-contentLa propriété {{cssxref("align-content")}} permet d'aligner les lignes créées dans le conteneur flexible lorsqu'il reste de l'espace le long de l'axe secondaire. Cette propriété n'a aucun effet lorsqu'il n'y a qu'une seule ligne.
+ +flex-start | flex-end | center | space-between | space-around | stretch (la valeur par défaut)@mixin align-content($value: stretch) {
+ // No Webkit Box Fallback.
+ -webkit-align-content: $value;
+ @if $value == flex-start {
+ -ms-flex-line-pack: start;
+ } @else if $value == flex-end {
+ -ms-flex-line-pack: end;
+ } @else {
+ -ms-flex-line-pack: $value;
+ }
+ align-content: $value;
+}
\ No newline at end of file
diff --git a/files/fr/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html b/files/fr/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html
deleted file mode 100644
index 5aac168f3d..0000000000
--- a/files/fr/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html
+++ /dev/null
@@ -1,236 +0,0 @@
----
-title: Les concepts de base pour flexbox
-slug: Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox
-tags:
- - Beginner
- - CSS
- - Débutant
- - Guide
- - flexbox
-translation_of: Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox
-original_slug: Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox
----
-Le module des boîtes flexibles, aussi appelé « flexbox », a été conçu comme un modèle de disposition unidimensionnel et comme une méthode permettant de distribuer l'espace entre des objets d'une interface ainsi que de les aligner. Dans cet article, nous verrons les fonctionnalités principales des flexbox que nous approfondirons ensuite dans d'autres articles.
- -Lorsqu'on décrit les boîtes flexibles comme une méthode de disposition unidimensionnelle, on indique en fait que les flexbox gèrent une seule dimension à la fois : une ligne ou une colonne. Ce modèle est à comparer au modèle bidimensionnel de la disposition en grille (CSS Grid) qui contrôle à la fois les colonnes et les lignes.
- -Lorsqu'on travaille avec les boîtes flexibles, deux axes interviennent : l'axe principal (main axis en anglais) et l'axe secondaire (cross axis en anglais). L'axe principal est défini par la propriété {{cssxref("flex-direction")}} et l'axe secondaire est l'axe qui lui est perpendiculaire. Tout ce que nous manipulons avec les boîtes flexibles fera référence à ces axes.
- -L'axe principal est défini par la propriété flex-direction qui peut prendre quatre valeurs :
rowrow-reversecolumncolumn-reverseSi on choisit la valeur row ou row-reverse, l'axe principal sera aligné avec la direction « en ligne » (inline direction) (c'est la direction logique qui suit le sens d'écriture du document).

Si on choisit la valeur column ou column-reverse, l'axe principal suivra la direction de bloc (block direction) et progressera le long de l'axe perpendiculaire au sens d'écriture.

L'axe secondaire est perpendiculaire à l'axe principal. Ainsi, si flex-direction vaut row ou row-reverse, l'axe secondaire suivra l'axe des colonnes.

Si l'axe principale est column ou column-reverse, l'axe secondaire suivra celui des lignes (horizontales).

Comprendre les liens entre les différents axes est crucial lorsqu'on commence à aligner/justifier des éléments flexibles sur un axe ou l'autre grâce aux fonctionnalités et propriétés des boîtes flexibles.
- -Une autre notion fondamentale est l'absence d'hypothèse sur le mode d'écriture du document. Pour les modèles de disposition précédents, CSS était fortement orienté vers les modes d'écritures de droite à gauche et de gauche à droite. Les modèles de disposition modernes permettent de gérer naturellement les différents modes d'écriture et ne reposent plus sur l'idée qu'une ligne de texte commencera en haut à gauche d'un document puis progressera vers la droite et que chaque nouvelle ligne apparaîtra sous la précédente.
- -Nous verrons plus tard les détails des relations entre les spécifications des boîtes flexibles et celles des modes d'écriture. Toutefois, décrivons ici pourquoi on ne parlera plus de gauche ou de droite et de bas ou de haut lorsque nous évoquerons la direction dans laquelle s'organisent les éléments flexibles.
- -Si flex-direction vaut row et que nous travaillons sur un document écrit en français, la ligne de début de l'axe principal sera située à gauche et la ligne de fin sera située à droite.

Si on travaille sur un document écrit dans une langue arabe, la ligne de début de l'axe principal sera à droite et la ligne de fin à gauche.
- -
Dans les deux cas, la ligne de début de l'axe secondaire est située en haut et la ligne de fin de cet axe est située en bas car ces deux langues sont écrites horizontalement.
- -Nous verrons qu'au fur et à mesure, il devient naturel de parler de début et de fin plutôt que de gauche et de droite. De plus, ce niveau d'abstraction sera utile pour comprendre d'autres méthodes de disposition comme les grilles CSS car il y est également utilisé.
- -La zone d'un document sujette au modèle de disposition flexbox est appelée un conteneur flexible. Pour créer un conteneur flexible, il faut que la valeur de la propriété {{cssxref("display")}} de cet élément soit flex ou inline-flex. Dès que c'est le cas, les éléments « enfants » directs deviennent des éléments flexibles (flex items). Comme pour les autres propriétés CSS, certaines valeurs initiales sont définies, aussi, lorsqu'on crée un conteneur flexible, tous les éléments flexibles se comporteront de la façon suivante :
flex-direction est row).auto.nowrap.Autrement dit, tous les éléments formeront une ligne en utilisant la taille de leur contenu. S'il y a plus d'éléments que le conteneur peut en contenir, ils ne formeront pas une nouvelle ligne mais dépasseront du conteneur. Si certains éléments sont plus grands (selon l'axe secondaire) que d'autres, tous les éléments s'étireront sur l'axe secondaire afin d'avoir la plus grande taille.
- -Vous pouvez étudier l'exemple qui suit pour voir le résultat obtenu. N'hésitez pa à éditer les éléments ou à en ajouter d'autres pour tester ce comportement initial.
- -{{EmbedGHLiveSample("css-examples/flexbox/basics/the-flex-container.html", '100%', 510)}}
- -flex-directionEn ajoutant la propriété {{cssxref("flex-direction")}} au conteneur flexible, on peut modifier la direction dans laquelle les éléments flexibles seront affichés. En utilisant flex-direction: row-reverse, les éléments seront affichés le long d'une ligne horizontale mais les lignes de début et de fin seront inversées.
Si on utilise column comme valeur de flex-direction, l'axe principal est modifié et les éléments sont affichés sur une colonne. Si on utilise column-reverse, les lignes de début et de fin seront également inversées.
Dans l'exemple suivant, on utilise flex-direction avec la valeur row-reverse. Vous pouvez utiliser d'autres valeurs — row, column et column-reverse — afin de voir le résultat produit.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-direction.html", '100%', 350)}}
- -flex-wrapBien que le modèle des boîtes flexibles soit organisé sur une dimension, il est possible d'organiser les éléments flexibles afin que ceux-ci s'étendent sur plusieurs lignes ou colonnes (plutôt que de dépasser). Lorsque c'est le cas, chaque nouvelle ligne ou colonne agit comme un nouveau conteneur flexible. La distribution de l'espace sur cette ligne/colonne ne tiendra pas compte des autres lignes/colonnes.
- -Pour obtenir ce « passage à la ligne », on ajoute la propriété {{cssxref("flex-wrap")}} avec la valeur wrap. Désormais, si les éléments sont trop grands pour tenir sur une seule ligne, ils passeront sur une autre ligne. L'exemple suivant illustre le résultat obtenu lorsque la somme des tailles des éléments dépasse celle du conteneur. Avec flex-wrap qui vaut wrap, les éléments passent à la ligne. Si on modifie la valeur avec nowrap (qui correspond à la valeur initiale), les éléments seront rétrécis pour tenir sur une ligne (car les valeurs initiales des boîtes flexibles permettent aux éléments d'être ainsi redimensionnés). Si on utilise nowrap et que les éléments ne peuvent pas être redimensionnés (ou pas suffisamment), cela causera un dépassement.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-wrap.html", '100%', 400)}}
- -Pour approfondir ces notions, vous pouvez consulter l'article Maîtriser le passage à la ligne des éléments flexibles.
- -flex-flowIl est possible de synthétiser les propriétés flex-direction et flex-wrap avec la propriété raccourcie {{cssxref("flex-flow")}}. La première valeur de cette propriété sera utilisée pour flex-direction et la seconde pour flex-wrap.
Dans l'exemple qui suit, vous pouvez changer les valeurs de flex-direction en utilisant row, row-reverse, column ou column-reverse pour la première et wrap ou nowrap pour la seconde.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-flow.html", '100%', 400)}}
- -Pour mieux contrôler les éléments flexibles, on peut les cibler directement avec trois propriétés :
- -Nous verrons ici un rapide aperçu de ces propriétés que nous approfondirons dans l'article Contrôler les proportions des éléments flexibles le long de l'axe principal.
- -Avant de revenir à ces propriétés, il nous faut définir le concept d'espace disponible. Lorsque nous modifierons l'une de ces propriétés, cela modifiera la façon dont l'espace disponible est distribué parmi les éléments. Ce concept est également important lorsqu'on aligne les éléments.
- -Prenons un conteneur de 500 pixels de large et qui contient trois éléments de 100 pixels de large. Il faut donc 300 pixels pour disposer ces éléments et il reste ainsi 200 pixels d'espace disponible. Si on ne modifie pas les valeurs initiales, l'espace disponible sera placé après le dernier élément.
- -
Si on préfère que les éléments s'étirent pour occuper l'espace restant, il nous faut une méthode pour distribuer cet espace parmi les éléments. C'est le rôle des propriétés flex- qui s'appliquent aux éléments.
flex-basisLa propriété flex-basis définit la taille de l'élément en termes d'espace occupé. La valeur initiale de cette propriété est auto — dans ce cas, le navigateur analyse si les éléments ont une taille. Dans l'exemple précédent, les éléments mesurent 100 pixels de large et c'est donc cette mesure qui est utilisée pour flex-basis.
Si les éléments n'ont pas de taille définie, c'est la taille du contenu qui est utilisée comme base. C'est pour ça que nous avons simplement déclaré display: flex sur l'élément parent afin de créer des éléments flexibles (qui prennent alors tout l'espace nécessaire à leur contenu).
flex-growLa propriété flex-grow est un entier positif qui, lorsqu'elle est définie, permet aux éléments flexibles de s'étendre à partir de la mesure de flex-basis. Ainsi, l'élément sera étiré et occupera l'espace disponible sur cet axe ou une part de cet espace si les autres éléments peuvent s'étendre également.
Si on utiliseflex-grow: 1 pour les différents éléments de l'exemple précédent, l'espace disponible sera alors partagé de façon égale entre les éléments qui seront alors étirés pour occuper l'ensemble du conteneur le long de l'axe principal.
La propriété flex-grow permet de répartir l'espace disponible en « parts ». Si, pour le premier élément, on indique flex-grow avec une valeur de 2 et, pour les autres éléments, flex-grow avec une valeur de 1, deux « parts » de l'espace disponible seront données au premier élément (il recevra donc 100 pixels parmi les 200 pixels restants) et une part sera fournie à chacun des autres éléments (soit 50 pixels chacun parmi les 200 pixels restants).
flex-shrinkLa propriété flex-grow permet de gérer la façon dont l'espace est ajouté sur l'axe principal. La propriété flex-shrink permet quant à elle de contrôler la façon dont l'espace est réduit. S'il n'y a pas suffisamment d'espace dans le conteneur pour disposer les éléments et que flex-shrink est un entier positif, l'élément peut alors devenir plus petit que la taille définie par flex-basis. De façon analogue à flex-grow, il est possible d'affecter différents coefficients aux différents éléments afin que ceux-ci rétrécissent plus fortement que d'autres. Plus la valeur de flex-shrink sera élevée, plus l'élément ciblé rétrécira (si les éléments voisins ont une valeur de flex-shrink plus faibles).
La taille minimale de l'élément sera prise en compte lors du rétrécissement. Cela signifie que flex-shrink peut être moins cohérent que flex-grow selon les cas aux limites. Nous verrons plus en détails comment cet algorithme fonctionne dans l'article Contrôler les proportions des éléments le long de l'axe principal.
Note : Les valeurs de flex-grow et flex-shrink sont des proportions. Autrement dit, si tous les éléments ont flex: 1 1 200px et qu'on souhaite qu'un d'eux grandissent deux fois plus, on utiliserait flex: 2 1 200px pour cet élément. Mais avoir flex: 10 1 200px d'une part et flex: 20 1 200px d'autre part fonctionnerait exactement de la même façon.
flex et les valeurs synthétiquesOn voit rarement flex-grow, flex-shrink et flex-basis utilisées individuellement mais plutôt combinées avec la propriété raccourcie {{cssxref("flex")}}. La propriété raccourcie flex permet de définir les valeurs de cette propriété dans cet ordre : flex-grow, flex-shrink, flex-basis.
L'exemple suit vous permet de tester différentes valeurs pour flex. La première valeur est flex-grow et un coefficient positif permettra à l'élément de grandir, la deuxième valeur est flex-shrink et un coefficient positif permettra de rétrécir l'élément s'il dépasse du conteneur sur l'axe principal. Enfin, la troisième valeur sert à flex-basis qui indique la taille de base à partir de laquelle l'élément sera étendu ou rétréci.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-properties.html", '100%', 400)}}
- -Cette propriété permet également d'utiliser des valeurs synthétiques qui couvrent la majorité des scénarios. Vous verrez souvent ces valeurs utilisées dans les tutoriels et, dans de nombreux cas, celles-ci suffiront :
- -flex: initialflex: autoflex: noneflex: <nombre-positif>Avec flex: initial, les éléments récupèrent les valeurs initiales pour les différentes propriétés du modèle de boîte flexible. Cette valeur permettra d'obtenir le même comportement que flex: 0 1 auto. Ici, flex-grow vaut 0 et les éléments ne s'agrandiront pas au-delà de la taille flex-basis. flex-shrink vaut 1 et les éléments pourront rétrécir si besoin plutôt que de dépasser du conteneur. flex-basis vaut auto et les éléments utiliseront donc la taille qui leur a été définie sur l'axe principale ou la taille déterminée à partir du contenu.
Avec flex: auto, on obtient le même comportement que flex: 1 1 auto, la seule différence avec flex:initial est que les éléments peuvent s'étirer si besoin.
Avec flex: none, les éléments ne seront pas flexibles. Cette valeur est synonyme de flex: 0 0 auto. Les éléments ne peuvent ni s'agrandir, ni se rétrécir mais seront disposés avec flex-basis: auto.
On voit aussi souvent des valeurs comme flex: 1 ou flex: 2, etc. Cela correspond à flex: 1 1 0. Les éléments peuvent s'agrandir ou bien rétrécir à partir d'une taille de base égale à 0.
Vous pouvez utiliser ces valeurs synthétiques dans l'exemple suivant :
- -{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-shorthands.html", '100%', 510)}}
- -Une fonctionnalité majeure des boîtes flexibles est de permettre l'alignement et la justification des éléments le long des axes principal et secondaire tout en distribuant l'espace entre les éléments flexibles.
- -align-itemsLa propriété {{cssxref("align-items")}} permet d'aligner les éléments le long de l'axe secondaire.
- -La valeur initiale de cette propriété est stretch, ce qui explique pourquoi, par défaut, les éléments flexibles sont étirés sur l'axe perpendiculaire afin d'avoir la même taille que l'élément le plus grand dans cet axe (qui définit la taille du conteneur sur cet axe).
On peut également utiliser la valeur flex-start afin que les éléments soient alignés sur la ligne de début de l'axe secondaire, la valeur flex-end afin que les éléments soient alignés sur la ligne de fin de l'axe secondaire ou bien center pour les aligner au centre. Vous pouvez utiliser les valeurs suivantes dans l'exemple (on a donné un hauteur fixe au conteneur afin de pouvoir observer la façon dont les éléments se déplacent à l'intérieur) :
stretchflex-startflex-endcenter{{EmbedGHLiveSample("css-examples/flexbox/basics/align-items.html", '100%', 520)}}
- -justify-contentLa propriété {{cssxref("justify-content")}} est utilisée afin d'aligner les éléments le long de l'axe principal dans la direction définie par flex-direction. La valeur initiale est flex-start qui place les éléments à partir de la ligne de début du conteneur sur l'axe principal. La valeur flex-end permet de les placer vers la fin et la valeur center permet de les centrer le long de l'axe principal.
On peut également utiliser la valeur space-between afin de répartir l'espace disponible de façon égale entre chaque élément. Si on souhaite que l'espace soit également réparti autour des éléments, y compris au début et à la fin, on pourra utiliser la valeur space-around (il y aura alors un demi espace à la fin et au début). Si on souhaite que l'espace soit également réparti et qu'il y ait un espace entier au début et à la fin, on utilisera la valeur space-evenly.
Vous pouvez essayer les valeurs suivantes dans l'exemple suivant :
- -flex-startflex-endcenterspace-aroundspace-betweenspace-evenly{{EmbedGHLiveSample("css-examples/flexbox/basics/justify-content.html", '100%', 380)}}
- -Dans l'article Aligner des éléments dans un conteneur flexible, nous verrons plus en détails comment ces propriétés fonctionnent. Ces premiers exemples permettent toutefois de comprendre comment utiliser ces propriétés sur une majorité de cas.
- -Avec cet article, vous devriez comprendre les différentes fonctionnalités et concepts relatifs aux flexbox. Dans le prochain article, nous verrons comment cette spécification s'articule avec les autres modules CSS.
diff --git a/files/fr/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.md b/files/fr/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.md new file mode 100644 index 0000000000..5aac168f3d --- /dev/null +++ b/files/fr/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.md @@ -0,0 +1,236 @@ +--- +title: Les concepts de base pour flexbox +slug: Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +tags: + - Beginner + - CSS + - Débutant + - Guide + - flexbox +translation_of: Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +original_slug: Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox +--- +Le module des boîtes flexibles, aussi appelé « flexbox », a été conçu comme un modèle de disposition unidimensionnel et comme une méthode permettant de distribuer l'espace entre des objets d'une interface ainsi que de les aligner. Dans cet article, nous verrons les fonctionnalités principales des flexbox que nous approfondirons ensuite dans d'autres articles.
+ +Lorsqu'on décrit les boîtes flexibles comme une méthode de disposition unidimensionnelle, on indique en fait que les flexbox gèrent une seule dimension à la fois : une ligne ou une colonne. Ce modèle est à comparer au modèle bidimensionnel de la disposition en grille (CSS Grid) qui contrôle à la fois les colonnes et les lignes.
+ +Lorsqu'on travaille avec les boîtes flexibles, deux axes interviennent : l'axe principal (main axis en anglais) et l'axe secondaire (cross axis en anglais). L'axe principal est défini par la propriété {{cssxref("flex-direction")}} et l'axe secondaire est l'axe qui lui est perpendiculaire. Tout ce que nous manipulons avec les boîtes flexibles fera référence à ces axes.
+ +L'axe principal est défini par la propriété flex-direction qui peut prendre quatre valeurs :
rowrow-reversecolumncolumn-reverseSi on choisit la valeur row ou row-reverse, l'axe principal sera aligné avec la direction « en ligne » (inline direction) (c'est la direction logique qui suit le sens d'écriture du document).

Si on choisit la valeur column ou column-reverse, l'axe principal suivra la direction de bloc (block direction) et progressera le long de l'axe perpendiculaire au sens d'écriture.

L'axe secondaire est perpendiculaire à l'axe principal. Ainsi, si flex-direction vaut row ou row-reverse, l'axe secondaire suivra l'axe des colonnes.

Si l'axe principale est column ou column-reverse, l'axe secondaire suivra celui des lignes (horizontales).

Comprendre les liens entre les différents axes est crucial lorsqu'on commence à aligner/justifier des éléments flexibles sur un axe ou l'autre grâce aux fonctionnalités et propriétés des boîtes flexibles.
+ +Une autre notion fondamentale est l'absence d'hypothèse sur le mode d'écriture du document. Pour les modèles de disposition précédents, CSS était fortement orienté vers les modes d'écritures de droite à gauche et de gauche à droite. Les modèles de disposition modernes permettent de gérer naturellement les différents modes d'écriture et ne reposent plus sur l'idée qu'une ligne de texte commencera en haut à gauche d'un document puis progressera vers la droite et que chaque nouvelle ligne apparaîtra sous la précédente.
+ +Nous verrons plus tard les détails des relations entre les spécifications des boîtes flexibles et celles des modes d'écriture. Toutefois, décrivons ici pourquoi on ne parlera plus de gauche ou de droite et de bas ou de haut lorsque nous évoquerons la direction dans laquelle s'organisent les éléments flexibles.
+ +Si flex-direction vaut row et que nous travaillons sur un document écrit en français, la ligne de début de l'axe principal sera située à gauche et la ligne de fin sera située à droite.

Si on travaille sur un document écrit dans une langue arabe, la ligne de début de l'axe principal sera à droite et la ligne de fin à gauche.
+ +
Dans les deux cas, la ligne de début de l'axe secondaire est située en haut et la ligne de fin de cet axe est située en bas car ces deux langues sont écrites horizontalement.
+ +Nous verrons qu'au fur et à mesure, il devient naturel de parler de début et de fin plutôt que de gauche et de droite. De plus, ce niveau d'abstraction sera utile pour comprendre d'autres méthodes de disposition comme les grilles CSS car il y est également utilisé.
+ +La zone d'un document sujette au modèle de disposition flexbox est appelée un conteneur flexible. Pour créer un conteneur flexible, il faut que la valeur de la propriété {{cssxref("display")}} de cet élément soit flex ou inline-flex. Dès que c'est le cas, les éléments « enfants » directs deviennent des éléments flexibles (flex items). Comme pour les autres propriétés CSS, certaines valeurs initiales sont définies, aussi, lorsqu'on crée un conteneur flexible, tous les éléments flexibles se comporteront de la façon suivante :
flex-direction est row).auto.nowrap.Autrement dit, tous les éléments formeront une ligne en utilisant la taille de leur contenu. S'il y a plus d'éléments que le conteneur peut en contenir, ils ne formeront pas une nouvelle ligne mais dépasseront du conteneur. Si certains éléments sont plus grands (selon l'axe secondaire) que d'autres, tous les éléments s'étireront sur l'axe secondaire afin d'avoir la plus grande taille.
+ +Vous pouvez étudier l'exemple qui suit pour voir le résultat obtenu. N'hésitez pa à éditer les éléments ou à en ajouter d'autres pour tester ce comportement initial.
+ +{{EmbedGHLiveSample("css-examples/flexbox/basics/the-flex-container.html", '100%', 510)}}
+ +flex-directionEn ajoutant la propriété {{cssxref("flex-direction")}} au conteneur flexible, on peut modifier la direction dans laquelle les éléments flexibles seront affichés. En utilisant flex-direction: row-reverse, les éléments seront affichés le long d'une ligne horizontale mais les lignes de début et de fin seront inversées.
Si on utilise column comme valeur de flex-direction, l'axe principal est modifié et les éléments sont affichés sur une colonne. Si on utilise column-reverse, les lignes de début et de fin seront également inversées.
Dans l'exemple suivant, on utilise flex-direction avec la valeur row-reverse. Vous pouvez utiliser d'autres valeurs — row, column et column-reverse — afin de voir le résultat produit.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-direction.html", '100%', 350)}}
+ +flex-wrapBien que le modèle des boîtes flexibles soit organisé sur une dimension, il est possible d'organiser les éléments flexibles afin que ceux-ci s'étendent sur plusieurs lignes ou colonnes (plutôt que de dépasser). Lorsque c'est le cas, chaque nouvelle ligne ou colonne agit comme un nouveau conteneur flexible. La distribution de l'espace sur cette ligne/colonne ne tiendra pas compte des autres lignes/colonnes.
+ +Pour obtenir ce « passage à la ligne », on ajoute la propriété {{cssxref("flex-wrap")}} avec la valeur wrap. Désormais, si les éléments sont trop grands pour tenir sur une seule ligne, ils passeront sur une autre ligne. L'exemple suivant illustre le résultat obtenu lorsque la somme des tailles des éléments dépasse celle du conteneur. Avec flex-wrap qui vaut wrap, les éléments passent à la ligne. Si on modifie la valeur avec nowrap (qui correspond à la valeur initiale), les éléments seront rétrécis pour tenir sur une ligne (car les valeurs initiales des boîtes flexibles permettent aux éléments d'être ainsi redimensionnés). Si on utilise nowrap et que les éléments ne peuvent pas être redimensionnés (ou pas suffisamment), cela causera un dépassement.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-wrap.html", '100%', 400)}}
+ +Pour approfondir ces notions, vous pouvez consulter l'article Maîtriser le passage à la ligne des éléments flexibles.
+ +flex-flowIl est possible de synthétiser les propriétés flex-direction et flex-wrap avec la propriété raccourcie {{cssxref("flex-flow")}}. La première valeur de cette propriété sera utilisée pour flex-direction et la seconde pour flex-wrap.
Dans l'exemple qui suit, vous pouvez changer les valeurs de flex-direction en utilisant row, row-reverse, column ou column-reverse pour la première et wrap ou nowrap pour la seconde.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-flow.html", '100%', 400)}}
+ +Pour mieux contrôler les éléments flexibles, on peut les cibler directement avec trois propriétés :
+ +Nous verrons ici un rapide aperçu de ces propriétés que nous approfondirons dans l'article Contrôler les proportions des éléments flexibles le long de l'axe principal.
+ +Avant de revenir à ces propriétés, il nous faut définir le concept d'espace disponible. Lorsque nous modifierons l'une de ces propriétés, cela modifiera la façon dont l'espace disponible est distribué parmi les éléments. Ce concept est également important lorsqu'on aligne les éléments.
+ +Prenons un conteneur de 500 pixels de large et qui contient trois éléments de 100 pixels de large. Il faut donc 300 pixels pour disposer ces éléments et il reste ainsi 200 pixels d'espace disponible. Si on ne modifie pas les valeurs initiales, l'espace disponible sera placé après le dernier élément.
+ +
Si on préfère que les éléments s'étirent pour occuper l'espace restant, il nous faut une méthode pour distribuer cet espace parmi les éléments. C'est le rôle des propriétés flex- qui s'appliquent aux éléments.
flex-basisLa propriété flex-basis définit la taille de l'élément en termes d'espace occupé. La valeur initiale de cette propriété est auto — dans ce cas, le navigateur analyse si les éléments ont une taille. Dans l'exemple précédent, les éléments mesurent 100 pixels de large et c'est donc cette mesure qui est utilisée pour flex-basis.
Si les éléments n'ont pas de taille définie, c'est la taille du contenu qui est utilisée comme base. C'est pour ça que nous avons simplement déclaré display: flex sur l'élément parent afin de créer des éléments flexibles (qui prennent alors tout l'espace nécessaire à leur contenu).
flex-growLa propriété flex-grow est un entier positif qui, lorsqu'elle est définie, permet aux éléments flexibles de s'étendre à partir de la mesure de flex-basis. Ainsi, l'élément sera étiré et occupera l'espace disponible sur cet axe ou une part de cet espace si les autres éléments peuvent s'étendre également.
Si on utiliseflex-grow: 1 pour les différents éléments de l'exemple précédent, l'espace disponible sera alors partagé de façon égale entre les éléments qui seront alors étirés pour occuper l'ensemble du conteneur le long de l'axe principal.
La propriété flex-grow permet de répartir l'espace disponible en « parts ». Si, pour le premier élément, on indique flex-grow avec une valeur de 2 et, pour les autres éléments, flex-grow avec une valeur de 1, deux « parts » de l'espace disponible seront données au premier élément (il recevra donc 100 pixels parmi les 200 pixels restants) et une part sera fournie à chacun des autres éléments (soit 50 pixels chacun parmi les 200 pixels restants).
flex-shrinkLa propriété flex-grow permet de gérer la façon dont l'espace est ajouté sur l'axe principal. La propriété flex-shrink permet quant à elle de contrôler la façon dont l'espace est réduit. S'il n'y a pas suffisamment d'espace dans le conteneur pour disposer les éléments et que flex-shrink est un entier positif, l'élément peut alors devenir plus petit que la taille définie par flex-basis. De façon analogue à flex-grow, il est possible d'affecter différents coefficients aux différents éléments afin que ceux-ci rétrécissent plus fortement que d'autres. Plus la valeur de flex-shrink sera élevée, plus l'élément ciblé rétrécira (si les éléments voisins ont une valeur de flex-shrink plus faibles).
La taille minimale de l'élément sera prise en compte lors du rétrécissement. Cela signifie que flex-shrink peut être moins cohérent que flex-grow selon les cas aux limites. Nous verrons plus en détails comment cet algorithme fonctionne dans l'article Contrôler les proportions des éléments le long de l'axe principal.
Note : Les valeurs de flex-grow et flex-shrink sont des proportions. Autrement dit, si tous les éléments ont flex: 1 1 200px et qu'on souhaite qu'un d'eux grandissent deux fois plus, on utiliserait flex: 2 1 200px pour cet élément. Mais avoir flex: 10 1 200px d'une part et flex: 20 1 200px d'autre part fonctionnerait exactement de la même façon.
flex et les valeurs synthétiquesOn voit rarement flex-grow, flex-shrink et flex-basis utilisées individuellement mais plutôt combinées avec la propriété raccourcie {{cssxref("flex")}}. La propriété raccourcie flex permet de définir les valeurs de cette propriété dans cet ordre : flex-grow, flex-shrink, flex-basis.
L'exemple suit vous permet de tester différentes valeurs pour flex. La première valeur est flex-grow et un coefficient positif permettra à l'élément de grandir, la deuxième valeur est flex-shrink et un coefficient positif permettra de rétrécir l'élément s'il dépasse du conteneur sur l'axe principal. Enfin, la troisième valeur sert à flex-basis qui indique la taille de base à partir de laquelle l'élément sera étendu ou rétréci.
{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-properties.html", '100%', 400)}}
+ +Cette propriété permet également d'utiliser des valeurs synthétiques qui couvrent la majorité des scénarios. Vous verrez souvent ces valeurs utilisées dans les tutoriels et, dans de nombreux cas, celles-ci suffiront :
+ +flex: initialflex: autoflex: noneflex: <nombre-positif>Avec flex: initial, les éléments récupèrent les valeurs initiales pour les différentes propriétés du modèle de boîte flexible. Cette valeur permettra d'obtenir le même comportement que flex: 0 1 auto. Ici, flex-grow vaut 0 et les éléments ne s'agrandiront pas au-delà de la taille flex-basis. flex-shrink vaut 1 et les éléments pourront rétrécir si besoin plutôt que de dépasser du conteneur. flex-basis vaut auto et les éléments utiliseront donc la taille qui leur a été définie sur l'axe principale ou la taille déterminée à partir du contenu.
Avec flex: auto, on obtient le même comportement que flex: 1 1 auto, la seule différence avec flex:initial est que les éléments peuvent s'étirer si besoin.
Avec flex: none, les éléments ne seront pas flexibles. Cette valeur est synonyme de flex: 0 0 auto. Les éléments ne peuvent ni s'agrandir, ni se rétrécir mais seront disposés avec flex-basis: auto.
On voit aussi souvent des valeurs comme flex: 1 ou flex: 2, etc. Cela correspond à flex: 1 1 0. Les éléments peuvent s'agrandir ou bien rétrécir à partir d'une taille de base égale à 0.
Vous pouvez utiliser ces valeurs synthétiques dans l'exemple suivant :
+ +{{EmbedGHLiveSample("css-examples/flexbox/basics/flex-shorthands.html", '100%', 510)}}
+ +Une fonctionnalité majeure des boîtes flexibles est de permettre l'alignement et la justification des éléments le long des axes principal et secondaire tout en distribuant l'espace entre les éléments flexibles.
+ +align-itemsLa propriété {{cssxref("align-items")}} permet d'aligner les éléments le long de l'axe secondaire.
+ +La valeur initiale de cette propriété est stretch, ce qui explique pourquoi, par défaut, les éléments flexibles sont étirés sur l'axe perpendiculaire afin d'avoir la même taille que l'élément le plus grand dans cet axe (qui définit la taille du conteneur sur cet axe).
On peut également utiliser la valeur flex-start afin que les éléments soient alignés sur la ligne de début de l'axe secondaire, la valeur flex-end afin que les éléments soient alignés sur la ligne de fin de l'axe secondaire ou bien center pour les aligner au centre. Vous pouvez utiliser les valeurs suivantes dans l'exemple (on a donné un hauteur fixe au conteneur afin de pouvoir observer la façon dont les éléments se déplacent à l'intérieur) :
stretchflex-startflex-endcenter{{EmbedGHLiveSample("css-examples/flexbox/basics/align-items.html", '100%', 520)}}
+ +justify-contentLa propriété {{cssxref("justify-content")}} est utilisée afin d'aligner les éléments le long de l'axe principal dans la direction définie par flex-direction. La valeur initiale est flex-start qui place les éléments à partir de la ligne de début du conteneur sur l'axe principal. La valeur flex-end permet de les placer vers la fin et la valeur center permet de les centrer le long de l'axe principal.
On peut également utiliser la valeur space-between afin de répartir l'espace disponible de façon égale entre chaque élément. Si on souhaite que l'espace soit également réparti autour des éléments, y compris au début et à la fin, on pourra utiliser la valeur space-around (il y aura alors un demi espace à la fin et au début). Si on souhaite que l'espace soit également réparti et qu'il y ait un espace entier au début et à la fin, on utilisera la valeur space-evenly.
Vous pouvez essayer les valeurs suivantes dans l'exemple suivant :
+ +flex-startflex-endcenterspace-aroundspace-betweenspace-evenly{{EmbedGHLiveSample("css-examples/flexbox/basics/justify-content.html", '100%', 380)}}
+ +Dans l'article Aligner des éléments dans un conteneur flexible, nous verrons plus en détails comment ces propriétés fonctionnent. Ces premiers exemples permettent toutefois de comprendre comment utiliser ces propriétés sur une majorité de cas.
+ +Avec cet article, vous devriez comprendre les différentes fonctionnalités et concepts relatifs aux flexbox. Dans le prochain article, nous verrons comment cette spécification s'articule avec les autres modules CSS.
diff --git a/files/fr/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.html b/files/fr/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.html deleted file mode 100644 index c2d689cf0e..0000000000 --- a/files/fr/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.html +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: Contrôler les proportions des boîtes flexibles le long de l'axe principal -slug: >- - Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax -tags: - - Boîtes flexibles - - CSS - - Flex - - Guide - - Intermediate - - flexbox -translation_of: >- - Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax -original_slug: >- - Web/CSS/CSS_Flexible_Box_Layout/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal ---- -Dans ce guide, nous verrons les trois propriétés appliquées aux éléments flexibles qui permettent de contrôler leurs tailles et flexibilités le long de l'axe principal : {{cssxref("flex-grow")}}, {{cssxref("flex-shrink")}} et {{cssxref("flex-basis")}}. Comprendre le fonctionnement de ces propriétés est primordial pour maîtriser les boîtes flexibles.
- -Ces trois propriétés contrôlent différents aspects relatifs à la flexibilité des éléments :
- -flex-grow : quelle proportion de l'espace libre peut-on allouer en supplément à cet élément ?flex-shrink : quelle proportion de l'espace peut être retirée à cet élément ?flex-basis : quelle est la taille de l'élément avant tout agrandissement/réduction ?Ces propriétés sont généralement définies via la propriété raccourcie {{cssxref("flex")}}. Le code suivant définira flex-grow avec la valeur 2, flex-shrink avec la valeur 1 et flex-basis avec la valeur auto.
.item {
- flex: 2 1 auto;
-}
-
-
-Dans l'article sur les concepts de base relatifs aux boîtes flexibles, nous avons pu introduire ces propriétés. Ici, nous les étudierons en profondeur afin de comprendre comment le navigateur les interprète.
- -Avant de rentrer dans le détail des propriétés, définissons certains concepts clés qui interviennent lorsqu'on travaille sur les proportions le long de l'axe principal. Ces concepts se basent sur la taille naturelle des éléments flexibles (avant tout redimensionnement) et sur la notion d'espace libre.
- -Afin de connaître l'espace disponible pour l'organisation des éléments flexibles, le navigateur doit connaître la taille de l'élément. Comment faire lorsque les éléments ne sont pas dimensionnés avec une largeur ou une hauteur exprimée dans une unité de longueur absolue ?
- -CSS permet d'utiliser les valeurs {{cssxref('width','min-content','#min-content')}} et {{cssxref('width','max-content','#max-content')}} — ces mots-clés sont définis dans la spécification CSS pour le dimensionnement intrinsèque et extrinsèque et ces valeurs peuvent être utilisées comme unité de longueurs.
- -Dans l'exemple qui suit, on a deux paragraphes qui contiennent chacun une chaîne de caractères. La largeur du premier paragraphe est min-content. Si le navigateur utilisé prend en charge ce mot-clé, on peut voir que le texte passe à la ligne dès que c'est possible, sans dépasser de la boîte. Autrement dit, la longueur min-content correspond à la taille du plus grand mot du paragraphe.
Dans le second paragraphe, on utilise la valeur max-content et on voit le résultat opposé. Le texte prend autant de place que possible et aucun saut à la ligne supplémentaire n'est introduit. Le texte dépasserait de la boîte si le conteneur était trop étroit.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/min-max-content.html", '100%', 750)}}
- -Si votre navigateur ne prend pas en charge ces mots-clés, les paragraphes seront affichés normalement. La capture d'écran qui suit illustre le résultat obtenu avec un navigateur compatible :
- -
Pour la suite de cet article, gardez à l'esprit l'impact de min-content et max-content lorsque nous verrons les propriétés flex-grow et flex-shrink.
Pour étudier ces propriétés, nous devons définir le concept d'espace libre positif et négatif. Lorsqu'un conteneur flexible possède un espace libre positif, il dispose de plus d'espace qu'il n'est nécessaire pour afficher les éléments flexibles qu'il contient. Si on a, par exemple, un conteneur dont la largeur mesure 500 pixels, la propriété {{cssxref("flex-direction")}} qui vaut row et trois éléments qui mesurent chacun 100 pixels, il reste alors 200 pixels d'espace libre positif qui pourrait être réparti entre les éléments si on le souhaitait.

L'espace libre négatif est l'espace supplémentaire qui aurait été nécessaire pour contenir tous les éléments à l'intérieur du conteneur flexible. Si on dispose d'un conteneur dont la largeur mesure 500 pixels et trois éléments flexibles dont chacun mesure 200, l'espace total occupé mesure 600 pixels et on a donc 100 pixels d'espace libre négatif. Cet espace pourrait être retiré des éléments afin qu'ils soient contenus dans le conteneur.
- -
C'est cette distribution de l'espace libre qu'il est nécessaire de comprendre afin d'étudier les différentes propriétés relatives aux propriétés flexibles.
- -Les exemples étudiés par la suite utilisent la propriété {{cssxref("flex-direction")}} avec la valeur row, ce sera donc leur largeur qui sera leur dimension principale. Vous pouvez modifier les exemples afin d'utiliser flex-direction: column (dans ce cas, l'axe principal sera celui des colonnes et la dimension principale sera la hauteur).
flex-basisLa propriété {{cssxref("flex-basis")}} définit la taille initiale de l'élément flexible avant la répartition de l'espace. La valeur initiale de cette propriété est auto. Si flex-basis vaut auto, le navigateur vérifie si la taille de l'élément est définie de façon absolue et utilise cette valeur pour flex-basis (par exemple si on indique dans la feuille de style que l'élément mesure 200 pixels, c'est cette mesure qui sera utilisée comme valeur pour flex-basis pour cet élément).
Si la taille initiale de l'élément n'est pas définie de façon absolue, auto correspondra à la taille déterminée automatique. C'est là qu'on comprend mieux l'utilité de min- et max-content, car la boîte flexible utilisera max-content comme valeur pour flex-basis. Dans l'exemple suivant, nous verrons comment en tirer parti.
Dans cet exemple, on crée un ensemble de boîtes inflexibles avec la valeur 0 pour flex-grow et flex-shrink. On peut voir comment le premier objet, ayant une largeur explicite de 150 pixels, occupe une flex-basis de 150px tandis que les deux autres objets qui n'ont pas de largeur sont dimensionnés en fonction de la largeur de leur contenu.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-basis.html", '100%', 500)}}
- -En plus du mot-clé auto, on peut également utiliser le mot-clé content comme valeur pour flex-basis. Ainsi, flex-basis sera calculée en fonction de la taille du contenu, même s'il y a une largeur explicitement définie sur l'objet. Ce mot-clé est plus récent et est moins largement pris en charge. Toutefois, on peut obtenir le même effet en utilisant le mot-clé auto et en s'assurant que l'objet n'a pas de largeur définie, ainsi, le dimensionnement automatique sera effectué en fonction du contenu.
Si on souhaite que la boîte flexible ignore complètement la taille du contenu lors de la répartition de l'espace, on pourra utiliser flex-basis avec la valeur 0. En résumé, cela revient à indiquer que tout l'espace est disponible et peut être réparti proportionnellement. Nous verrons des exemples utilisant cette valeur lorsque nous étudierons flex-grow.
flex-growLa propriété {{cssxref("flex-grow")}} définit le coefficient d'agrandissement flexible, qui détermine la façon dont l'objet flexible grandira par rapport aux autres objets flexibles du même conteneur lorsque l'espace libre sera distribué.
- -Si tous les objets possèdent la même valeur pour le coefficient flex-grow, l'espace sera réparti également entre chacun. Dans ce cas, on utilisera généralement la valeur 1. Ceci étant dit, on pourrait tout aussi bien utiliser la valeur 88, 100 ou 1.2 — ce coefficient est un simple ratio. Si le coefficient est le même pour tous les objets et qu'il reste de l'espace libre dans le conteneur, cet espace sera réparti équitablement.
flex-grow et flex-basisLes choses se compliquent lorsque flex-grow et flex-basis interagissent. Prenons un exemple où trois objets flexibles ont chacun des contenus de longueurs différentes et auxquels on applique la règle suivante :
flex: 1 1 auto;
Dans ce cas, flex-basis vaut auto et les objets n'ont pas de largeur explicite définie : ils sont donc dimensionnés automatiquement. Cela signifie que la boîte flexible utilisera la taille max-content des éléments. Après avoir disposé les objets, il reste de l'espace libre dans le conteneur flexible (ce qui correspond à la zone hachurée de la figure suivante) :

On utilise ici une valeur flex-basis égale à la taille du contenu, l'espace disponible qui peut être distribué est donc égal à la taille du conteneur (ici sa largeur) moins la taille des éléments. Cet espace est partagé équitablement entre les différents objets. Ainsi, l'objet le plus grand finira avec une taille plus grande, car sa taille de départ est plus importante bien que la même quantité d'espace restant ait été affectée aux autres objets :

Si on souhaite obtenir trois objets de la même taille alors qu'ils ont des tailles initiales différentes, on pourra utiliser :
- -flex: 1 1 0;
Ici, on indique que, lors de la phase de répartition de l'espace, la taille des objets vaut 0 — tout l'espace peut être utilisé. Or, les trois objets ayant tous le même coefficient flex-grow, ils récupèrent chacun la même quantité d'espace. On obtient donc trois objets flexibles de même largeur.
Vous pouvez modifier le coefficient flex-grow pour le passer de 1 à 0 dans l'exemple qui suit pour observer la façon dont les objets se comportent :
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-grow.html", '100%', 520)}}
- -flex-grow aux élémentsNotre compréhension du fonctionnement de flex-grow avec flex-basis nous permet de mieux contrôler chacun des éléments en leur affectant différents coefficients flex-grow. Si on conserve la valeur 0 pour flex-basis afin que tout l'espace soit distribué, on pourra affecter différentes valeurs de flex-grow afin qu'ils grandissent différemment. Dans l'exemple qui suit, on utilise les valeurs suivantes :
1 pour le premier élément1 pour le deuxième élément2 pour le troisièmeOn utilise flex-basis avec la valeur 0 ce qui signifie que l'espace disponible est réparti de la façon suivante. On additionne les différents facteurs flex-grow puis on divise l'espace libre du conteneur par cette somme (dans notre exemple, elle vaut 4). Ensuite, on répartit l'espace en fonction des différents coefficients individuels : le premier objet récupère une part d'espace, le deuxième en récupère également une et le dernier récupère deux parts. Autrement dit, le troisième objet sera deux fois plus grand que le premier et le deuxième objet.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-grow-ratios.html", '100%', 520)}}
- -Rappelons qu'on peut utiliser n'importe quelle valeur positive pour ces facteurs. C'est le rapport entre ces différents facteurs qui importe. Vous pouvez aussi bien utiliser des nombres entiers ou des nombres décimaux. Pour tester cela, vous pouvez changer les coefficients précédents afin de plutôt utiliser respectivement .25, .25 et .50 — vous obtiendrez alors le même résultat.
flex-shrinkLa propriété {{cssxref("flex-shrink")}} définit le coefficient de rétrécissement flexible qui détermine la façon dont l'objet flexible se réduit relatviement aux autres objets du conteneur flexible lorsque l'espace négatif est distribué.
- -Cette propriété est utilisée lorsque le navigateur calcule les valeurs flex-basis des différents objets flexibles et obtient des valeurs qui dépassent la taille du conteneur flexible. Tant que flex-shrink possède une valeur positive, les éléments pourront rétrécir afin de ne pas dépasser du conteneur.
Ainsi, si flex-grow gère la façon dont on peut ajouter de l'espace disponible, flex-shrink gère la façon dont on retire de l'espace aux boîtes des objets afin qu'ils ne dépassent pas de leur conteneur.
Dans le prochain exemple, on dispose de trois éléments dans le conteneur flexible. Chacun mesure 200 pixels de large dans un conteneur qui mesure 500 pixels de large. Si flex-shrink vaut 0, les éléments ne sont pas autorisés à rétrécir et ils dépassent donc de la boîte.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-shrink.html", '100%', 500)}}
- -En passant la valeur de flex-shrink à 1, on peut voir que la taille de chaque élément diminue de la même façon afin que l'ensemble des objets tiennent dans la boîte. Les éléments ont désormais une taille inférieure à leur taille initiale.
flex-shrink et flex-basisOn pourrait dire et penser que flex-shrink fonctionne de la même façon que flex-grow. Toutefois, deux arguments viennent contrecarrer cette analogie.
Le premier, expliqué de façon subtile dans la spécification est la différence de comportement entre flex-shrink et l'espace libre négatif et celui de flex-grow avec l'espace libre positif :
-- -“Note : Le coefficient
-flex-shrinkest multiplié par la taille de base (flex-basis) lors de la distribution de l'espace négatif. Ainsi, l'espace négatif est distribué proportionnellement au rétrécissement possible de l'élément. Autrement dit, un petit élément ne sera pas réduit à une taille nulle avant qu'un plus grand élément n'ait été réduit de façon notable.”
Le second argument s'explique par l'impossibilité de réduire les petits éléments à une taille nulle lors de la suppression de l'espace libre négatif. Les éléments seront au maximum rétrécis jusqu'à obtenir leur taille min-content — c'est-à-dire la taille qu'ils obtiennent s'ils utilisent tous les emplacements de rupture de ligne possibles.
On peut observer ce seuil avec min-content dans l'exemple qui suit où flex-basis est résolu avec la taille du contenu. Si on change la largeur du conteneur flexible (en l'augmentant à 700 pixels par exemple) puis en réduisant la largeur de l'élément flexible, on peut voir que les deux premiers objets passent à la ligne. Toutefois, ils ne deviennent pas plus petits que min-content. Lorsque la boîte se réduit, l'espace est simplement retiré du troisième élément.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-shrink-min-content.html", '100%', 500)}}
- -En pratique, cette méthode de rétrécissement fournit des résultats prévisibles, car on ne souhaite pas que le contenu disparaisse entièrement ou que les boîtes soient plus petites que leur contenu minimal. Les règles présentées ci-avant sont donc pertinentes lorsqu'on souhaite rétrécir des objets afin qu'ils rentrent dans un conteneur.
- -flex-shrink pour différents élémentsComme avec flex-grow, on peut utiliser différents coefficients flex-shrink. Cela permet de modifier le comportement par défaut et on peut ainsi avoir un élément qui se réduit plus ou moins rapidement que ses voisins (voire qui ne se réduit pas du tout).
Dans l'exemple suivant, le premier objet possède un coefficient flex-shrink égal à 1, le deuxième a un coefficient égal à 0 (il ne rétrécira pas du tout) et le troisième est paramétré avec 4. Ainsi, le troisième élément rétrécit plus vite que le premier. N'hésitez pas à utiliser différentes valeurs pour observer le résultat obtenu. De la même façon qu'avec flex-grow, on peut utiliser nombres entiers ou des nombres décimaux, utilisez ce qui vous paraît le plus pertinent.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-shrink-ratios.html", '100%', 570)}}
- -Comprendre le dimensionnement des objets flexibles revient avant tout à comprendre les différentes étapes qui sont déroulées et notamment celles-ci que nous avons pu étudier dans ces guides :
- -flex-basis vaut auto et que l'objet possède une dimension explicitement définie, c'est cette dimension qui sera utilisée.flex-basis vaut auto ou content (pour les navigateurs qui prennent en charge cette valeur), c'est la taille du contenu qui déterminera la taille de base de l'élémentflex-basis est exprimée avec une valeur de longueur non nulle, c'est cette valeur qui sera la taille de base de l'élément.flex-basis vaut 0, la taille de l'élément n'est pas pris en compte lors de la répartition de l'espace.Les objets ne s'étendent pas s'il n'y a pas d'espace libre positif et ne se réduisent pas s'il n'y a pas d'espace libre négatif.
- -flex-grow qui entrera en jeu.flex-shrink qui sera utilisée.Si on ne souhaite pas ajouter d'espace aux objets, on pourra tout aussi bien répartir cet espace libre entre les objets ou autour grâce aux propriétés d'alignement vu dans le guide sur l'alignement. La propriété {{cssxref("justify-content")}} permettra de répartir cet espace entre les objets ou autour d'eux. Les marges automatiques peuvent être utilisées sur les objets flexibles afin d'absorber l'espace et de créer des gouttières entre ces objets.
- -Tout ces outils relatifs aux boîtes flexibles vous permettent d'accomplir la plupart des dispositions et n'auront plus de secret au fur et à mesure de vos essais et expérimentations.
diff --git a/files/fr/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.md b/files/fr/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.md new file mode 100644 index 0000000000..c2d689cf0e --- /dev/null +++ b/files/fr/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.md @@ -0,0 +1,202 @@ +--- +title: Contrôler les proportions des boîtes flexibles le long de l'axe principal +slug: >- + Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax +tags: + - Boîtes flexibles + - CSS + - Flex + - Guide + - Intermediate + - flexbox +translation_of: >- + Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax +original_slug: >- + Web/CSS/CSS_Flexible_Box_Layout/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal +--- +Dans ce guide, nous verrons les trois propriétés appliquées aux éléments flexibles qui permettent de contrôler leurs tailles et flexibilités le long de l'axe principal : {{cssxref("flex-grow")}}, {{cssxref("flex-shrink")}} et {{cssxref("flex-basis")}}. Comprendre le fonctionnement de ces propriétés est primordial pour maîtriser les boîtes flexibles.
+ +Ces trois propriétés contrôlent différents aspects relatifs à la flexibilité des éléments :
+ +flex-grow : quelle proportion de l'espace libre peut-on allouer en supplément à cet élément ?flex-shrink : quelle proportion de l'espace peut être retirée à cet élément ?flex-basis : quelle est la taille de l'élément avant tout agrandissement/réduction ?Ces propriétés sont généralement définies via la propriété raccourcie {{cssxref("flex")}}. Le code suivant définira flex-grow avec la valeur 2, flex-shrink avec la valeur 1 et flex-basis avec la valeur auto.
.item {
+ flex: 2 1 auto;
+}
+
+
+Dans l'article sur les concepts de base relatifs aux boîtes flexibles, nous avons pu introduire ces propriétés. Ici, nous les étudierons en profondeur afin de comprendre comment le navigateur les interprète.
+ +Avant de rentrer dans le détail des propriétés, définissons certains concepts clés qui interviennent lorsqu'on travaille sur les proportions le long de l'axe principal. Ces concepts se basent sur la taille naturelle des éléments flexibles (avant tout redimensionnement) et sur la notion d'espace libre.
+ +Afin de connaître l'espace disponible pour l'organisation des éléments flexibles, le navigateur doit connaître la taille de l'élément. Comment faire lorsque les éléments ne sont pas dimensionnés avec une largeur ou une hauteur exprimée dans une unité de longueur absolue ?
+ +CSS permet d'utiliser les valeurs {{cssxref('width','min-content','#min-content')}} et {{cssxref('width','max-content','#max-content')}} — ces mots-clés sont définis dans la spécification CSS pour le dimensionnement intrinsèque et extrinsèque et ces valeurs peuvent être utilisées comme unité de longueurs.
+ +Dans l'exemple qui suit, on a deux paragraphes qui contiennent chacun une chaîne de caractères. La largeur du premier paragraphe est min-content. Si le navigateur utilisé prend en charge ce mot-clé, on peut voir que le texte passe à la ligne dès que c'est possible, sans dépasser de la boîte. Autrement dit, la longueur min-content correspond à la taille du plus grand mot du paragraphe.
Dans le second paragraphe, on utilise la valeur max-content et on voit le résultat opposé. Le texte prend autant de place que possible et aucun saut à la ligne supplémentaire n'est introduit. Le texte dépasserait de la boîte si le conteneur était trop étroit.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/min-max-content.html", '100%', 750)}}
+ +Si votre navigateur ne prend pas en charge ces mots-clés, les paragraphes seront affichés normalement. La capture d'écran qui suit illustre le résultat obtenu avec un navigateur compatible :
+ +
Pour la suite de cet article, gardez à l'esprit l'impact de min-content et max-content lorsque nous verrons les propriétés flex-grow et flex-shrink.
Pour étudier ces propriétés, nous devons définir le concept d'espace libre positif et négatif. Lorsqu'un conteneur flexible possède un espace libre positif, il dispose de plus d'espace qu'il n'est nécessaire pour afficher les éléments flexibles qu'il contient. Si on a, par exemple, un conteneur dont la largeur mesure 500 pixels, la propriété {{cssxref("flex-direction")}} qui vaut row et trois éléments qui mesurent chacun 100 pixels, il reste alors 200 pixels d'espace libre positif qui pourrait être réparti entre les éléments si on le souhaitait.

L'espace libre négatif est l'espace supplémentaire qui aurait été nécessaire pour contenir tous les éléments à l'intérieur du conteneur flexible. Si on dispose d'un conteneur dont la largeur mesure 500 pixels et trois éléments flexibles dont chacun mesure 200, l'espace total occupé mesure 600 pixels et on a donc 100 pixels d'espace libre négatif. Cet espace pourrait être retiré des éléments afin qu'ils soient contenus dans le conteneur.
+ +
C'est cette distribution de l'espace libre qu'il est nécessaire de comprendre afin d'étudier les différentes propriétés relatives aux propriétés flexibles.
+ +Les exemples étudiés par la suite utilisent la propriété {{cssxref("flex-direction")}} avec la valeur row, ce sera donc leur largeur qui sera leur dimension principale. Vous pouvez modifier les exemples afin d'utiliser flex-direction: column (dans ce cas, l'axe principal sera celui des colonnes et la dimension principale sera la hauteur).
flex-basisLa propriété {{cssxref("flex-basis")}} définit la taille initiale de l'élément flexible avant la répartition de l'espace. La valeur initiale de cette propriété est auto. Si flex-basis vaut auto, le navigateur vérifie si la taille de l'élément est définie de façon absolue et utilise cette valeur pour flex-basis (par exemple si on indique dans la feuille de style que l'élément mesure 200 pixels, c'est cette mesure qui sera utilisée comme valeur pour flex-basis pour cet élément).
Si la taille initiale de l'élément n'est pas définie de façon absolue, auto correspondra à la taille déterminée automatique. C'est là qu'on comprend mieux l'utilité de min- et max-content, car la boîte flexible utilisera max-content comme valeur pour flex-basis. Dans l'exemple suivant, nous verrons comment en tirer parti.
Dans cet exemple, on crée un ensemble de boîtes inflexibles avec la valeur 0 pour flex-grow et flex-shrink. On peut voir comment le premier objet, ayant une largeur explicite de 150 pixels, occupe une flex-basis de 150px tandis que les deux autres objets qui n'ont pas de largeur sont dimensionnés en fonction de la largeur de leur contenu.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-basis.html", '100%', 500)}}
+ +En plus du mot-clé auto, on peut également utiliser le mot-clé content comme valeur pour flex-basis. Ainsi, flex-basis sera calculée en fonction de la taille du contenu, même s'il y a une largeur explicitement définie sur l'objet. Ce mot-clé est plus récent et est moins largement pris en charge. Toutefois, on peut obtenir le même effet en utilisant le mot-clé auto et en s'assurant que l'objet n'a pas de largeur définie, ainsi, le dimensionnement automatique sera effectué en fonction du contenu.
Si on souhaite que la boîte flexible ignore complètement la taille du contenu lors de la répartition de l'espace, on pourra utiliser flex-basis avec la valeur 0. En résumé, cela revient à indiquer que tout l'espace est disponible et peut être réparti proportionnellement. Nous verrons des exemples utilisant cette valeur lorsque nous étudierons flex-grow.
flex-growLa propriété {{cssxref("flex-grow")}} définit le coefficient d'agrandissement flexible, qui détermine la façon dont l'objet flexible grandira par rapport aux autres objets flexibles du même conteneur lorsque l'espace libre sera distribué.
+ +Si tous les objets possèdent la même valeur pour le coefficient flex-grow, l'espace sera réparti également entre chacun. Dans ce cas, on utilisera généralement la valeur 1. Ceci étant dit, on pourrait tout aussi bien utiliser la valeur 88, 100 ou 1.2 — ce coefficient est un simple ratio. Si le coefficient est le même pour tous les objets et qu'il reste de l'espace libre dans le conteneur, cet espace sera réparti équitablement.
flex-grow et flex-basisLes choses se compliquent lorsque flex-grow et flex-basis interagissent. Prenons un exemple où trois objets flexibles ont chacun des contenus de longueurs différentes et auxquels on applique la règle suivante :
flex: 1 1 auto;
Dans ce cas, flex-basis vaut auto et les objets n'ont pas de largeur explicite définie : ils sont donc dimensionnés automatiquement. Cela signifie que la boîte flexible utilisera la taille max-content des éléments. Après avoir disposé les objets, il reste de l'espace libre dans le conteneur flexible (ce qui correspond à la zone hachurée de la figure suivante) :

On utilise ici une valeur flex-basis égale à la taille du contenu, l'espace disponible qui peut être distribué est donc égal à la taille du conteneur (ici sa largeur) moins la taille des éléments. Cet espace est partagé équitablement entre les différents objets. Ainsi, l'objet le plus grand finira avec une taille plus grande, car sa taille de départ est plus importante bien que la même quantité d'espace restant ait été affectée aux autres objets :

Si on souhaite obtenir trois objets de la même taille alors qu'ils ont des tailles initiales différentes, on pourra utiliser :
+ +flex: 1 1 0;
Ici, on indique que, lors de la phase de répartition de l'espace, la taille des objets vaut 0 — tout l'espace peut être utilisé. Or, les trois objets ayant tous le même coefficient flex-grow, ils récupèrent chacun la même quantité d'espace. On obtient donc trois objets flexibles de même largeur.
Vous pouvez modifier le coefficient flex-grow pour le passer de 1 à 0 dans l'exemple qui suit pour observer la façon dont les objets se comportent :
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-grow.html", '100%', 520)}}
+ +flex-grow aux élémentsNotre compréhension du fonctionnement de flex-grow avec flex-basis nous permet de mieux contrôler chacun des éléments en leur affectant différents coefficients flex-grow. Si on conserve la valeur 0 pour flex-basis afin que tout l'espace soit distribué, on pourra affecter différentes valeurs de flex-grow afin qu'ils grandissent différemment. Dans l'exemple qui suit, on utilise les valeurs suivantes :
1 pour le premier élément1 pour le deuxième élément2 pour le troisièmeOn utilise flex-basis avec la valeur 0 ce qui signifie que l'espace disponible est réparti de la façon suivante. On additionne les différents facteurs flex-grow puis on divise l'espace libre du conteneur par cette somme (dans notre exemple, elle vaut 4). Ensuite, on répartit l'espace en fonction des différents coefficients individuels : le premier objet récupère une part d'espace, le deuxième en récupère également une et le dernier récupère deux parts. Autrement dit, le troisième objet sera deux fois plus grand que le premier et le deuxième objet.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-grow-ratios.html", '100%', 520)}}
+ +Rappelons qu'on peut utiliser n'importe quelle valeur positive pour ces facteurs. C'est le rapport entre ces différents facteurs qui importe. Vous pouvez aussi bien utiliser des nombres entiers ou des nombres décimaux. Pour tester cela, vous pouvez changer les coefficients précédents afin de plutôt utiliser respectivement .25, .25 et .50 — vous obtiendrez alors le même résultat.
flex-shrinkLa propriété {{cssxref("flex-shrink")}} définit le coefficient de rétrécissement flexible qui détermine la façon dont l'objet flexible se réduit relatviement aux autres objets du conteneur flexible lorsque l'espace négatif est distribué.
+ +Cette propriété est utilisée lorsque le navigateur calcule les valeurs flex-basis des différents objets flexibles et obtient des valeurs qui dépassent la taille du conteneur flexible. Tant que flex-shrink possède une valeur positive, les éléments pourront rétrécir afin de ne pas dépasser du conteneur.
Ainsi, si flex-grow gère la façon dont on peut ajouter de l'espace disponible, flex-shrink gère la façon dont on retire de l'espace aux boîtes des objets afin qu'ils ne dépassent pas de leur conteneur.
Dans le prochain exemple, on dispose de trois éléments dans le conteneur flexible. Chacun mesure 200 pixels de large dans un conteneur qui mesure 500 pixels de large. Si flex-shrink vaut 0, les éléments ne sont pas autorisés à rétrécir et ils dépassent donc de la boîte.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-shrink.html", '100%', 500)}}
+ +En passant la valeur de flex-shrink à 1, on peut voir que la taille de chaque élément diminue de la même façon afin que l'ensemble des objets tiennent dans la boîte. Les éléments ont désormais une taille inférieure à leur taille initiale.
flex-shrink et flex-basisOn pourrait dire et penser que flex-shrink fonctionne de la même façon que flex-grow. Toutefois, deux arguments viennent contrecarrer cette analogie.
Le premier, expliqué de façon subtile dans la spécification est la différence de comportement entre flex-shrink et l'espace libre négatif et celui de flex-grow avec l'espace libre positif :
++ +“Note : Le coefficient
+flex-shrinkest multiplié par la taille de base (flex-basis) lors de la distribution de l'espace négatif. Ainsi, l'espace négatif est distribué proportionnellement au rétrécissement possible de l'élément. Autrement dit, un petit élément ne sera pas réduit à une taille nulle avant qu'un plus grand élément n'ait été réduit de façon notable.”
Le second argument s'explique par l'impossibilité de réduire les petits éléments à une taille nulle lors de la suppression de l'espace libre négatif. Les éléments seront au maximum rétrécis jusqu'à obtenir leur taille min-content — c'est-à-dire la taille qu'ils obtiennent s'ils utilisent tous les emplacements de rupture de ligne possibles.
On peut observer ce seuil avec min-content dans l'exemple qui suit où flex-basis est résolu avec la taille du contenu. Si on change la largeur du conteneur flexible (en l'augmentant à 700 pixels par exemple) puis en réduisant la largeur de l'élément flexible, on peut voir que les deux premiers objets passent à la ligne. Toutefois, ils ne deviennent pas plus petits que min-content. Lorsque la boîte se réduit, l'espace est simplement retiré du troisième élément.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-shrink-min-content.html", '100%', 500)}}
+ +En pratique, cette méthode de rétrécissement fournit des résultats prévisibles, car on ne souhaite pas que le contenu disparaisse entièrement ou que les boîtes soient plus petites que leur contenu minimal. Les règles présentées ci-avant sont donc pertinentes lorsqu'on souhaite rétrécir des objets afin qu'ils rentrent dans un conteneur.
+ +flex-shrink pour différents élémentsComme avec flex-grow, on peut utiliser différents coefficients flex-shrink. Cela permet de modifier le comportement par défaut et on peut ainsi avoir un élément qui se réduit plus ou moins rapidement que ses voisins (voire qui ne se réduit pas du tout).
Dans l'exemple suivant, le premier objet possède un coefficient flex-shrink égal à 1, le deuxième a un coefficient égal à 0 (il ne rétrécira pas du tout) et le troisième est paramétré avec 4. Ainsi, le troisième élément rétrécit plus vite que le premier. N'hésitez pas à utiliser différentes valeurs pour observer le résultat obtenu. De la même façon qu'avec flex-grow, on peut utiliser nombres entiers ou des nombres décimaux, utilisez ce qui vous paraît le plus pertinent.
{{EmbedGHLiveSample("css-examples/flexbox/ratios/flex-shrink-ratios.html", '100%', 570)}}
+ +Comprendre le dimensionnement des objets flexibles revient avant tout à comprendre les différentes étapes qui sont déroulées et notamment celles-ci que nous avons pu étudier dans ces guides :
+ +flex-basis vaut auto et que l'objet possède une dimension explicitement définie, c'est cette dimension qui sera utilisée.flex-basis vaut auto ou content (pour les navigateurs qui prennent en charge cette valeur), c'est la taille du contenu qui déterminera la taille de base de l'élémentflex-basis est exprimée avec une valeur de longueur non nulle, c'est cette valeur qui sera la taille de base de l'élément.flex-basis vaut 0, la taille de l'élément n'est pas pris en compte lors de la répartition de l'espace.Les objets ne s'étendent pas s'il n'y a pas d'espace libre positif et ne se réduisent pas s'il n'y a pas d'espace libre négatif.
+ +flex-grow qui entrera en jeu.flex-shrink qui sera utilisée.Si on ne souhaite pas ajouter d'espace aux objets, on pourra tout aussi bien répartir cet espace libre entre les objets ou autour grâce aux propriétés d'alignement vu dans le guide sur l'alignement. La propriété {{cssxref("justify-content")}} permettra de répartir cet espace entre les objets ou autour d'eux. Les marges automatiques peuvent être utilisées sur les objets flexibles afin d'absorber l'espace et de créer des gouttières entre ces objets.
+ +Tout ces outils relatifs aux boîtes flexibles vous permettent d'accomplir la plupart des dispositions et n'auront plus de secret au fur et à mesure de vos essais et expérimentations.
diff --git a/files/fr/web/css/css_flexible_box_layout/index.html b/files/fr/web/css/css_flexible_box_layout/index.html deleted file mode 100644 index a460f31765..0000000000 --- a/files/fr/web/css/css_flexible_box_layout/index.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Disposition des boîtes flexibles CSS -slug: Web/CSS/CSS_Flexible_Box_Layout -tags: - - Aperçu - - CSS - - CSS Flexible Box Layout - - CSS Flexible Boxes - - Reference -translation_of: Web/CSS/CSS_Flexible_Box_Layout ---- -Le module de disposition des boîtes flexibles CSS (CSS Flexible Box Layout) est un module de CSS qui définit un modèle de boîtes optimisé pour la conception des interfaces utilisateurs. En utilisant le modèle des boîtes flexibles, les éléments d'une conteneur flexible peuvent être disposés dans n'importe quelle direction et étendre leurs dimensions (pour remplir un espace vide) ou se réduire pour éviter de dépasser en dehors de l'élément parent. On peut facilement manipuler les alignements horizontal et vertical des éléments fils. On peut aussi imbriquer plusieurs niveaux de boîtes flexibles afin de construire des dispositions en deux dimensions..
- -Dans l'exemple qui suit, on utilise display: flex pour un conteneur. Cela signifie que les trois éléments fils deviennent des éléments flexibles. La propriété justify-content a été paramétrée avec la valeur space-between afin d'espacer les éléments de façon égale le long de l'axe principal. Ainsi, on a le même espace à droite et à gauche de chaque élément et, aux extrêmités du conteneur, les bords des éléments fils qui sont alignés avec les bords du conteneur. On peut également voir que les éléments sont étirés le long de l'axe orthogonal (cross axis) car la valeur par défaut de la propriété align-items est stretch. Ainsi, les éléments flexibles s'étirent pour occuper toute la hauteur du conteneur flexible, ils sont donc aussi grands que le plus grand des éléments.
{{EmbedGHLiveSample("css-examples/flexbox/basics/simple-example.html", '100%', 500)}}
- -Les propriétés align-content, align-self, align-items et justify-content étaient initialement définies dans la spécification Flexbox mais sont désormais définies dans la spécification sur l'alignement des boîtes et la spécification Flexbox fait référence à cette nouvelle spécification pour les définitions à jour. Des propriétés d'alignement additionnelles ont également été définies dans le module de spécification Box Alignment.
flex-grow, flex-shrink et flex-basis.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox')}} | -{{ Spec2('CSS3 Flexbox') }} | -Définition initiale. | -
Le module de disposition des boîtes flexibles CSS (CSS Flexible Box Layout) est un module de CSS qui définit un modèle de boîtes optimisé pour la conception des interfaces utilisateurs. En utilisant le modèle des boîtes flexibles, les éléments d'une conteneur flexible peuvent être disposés dans n'importe quelle direction et étendre leurs dimensions (pour remplir un espace vide) ou se réduire pour éviter de dépasser en dehors de l'élément parent. On peut facilement manipuler les alignements horizontal et vertical des éléments fils. On peut aussi imbriquer plusieurs niveaux de boîtes flexibles afin de construire des dispositions en deux dimensions..
+ +Dans l'exemple qui suit, on utilise display: flex pour un conteneur. Cela signifie que les trois éléments fils deviennent des éléments flexibles. La propriété justify-content a été paramétrée avec la valeur space-between afin d'espacer les éléments de façon égale le long de l'axe principal. Ainsi, on a le même espace à droite et à gauche de chaque élément et, aux extrêmités du conteneur, les bords des éléments fils qui sont alignés avec les bords du conteneur. On peut également voir que les éléments sont étirés le long de l'axe orthogonal (cross axis) car la valeur par défaut de la propriété align-items est stretch. Ainsi, les éléments flexibles s'étirent pour occuper toute la hauteur du conteneur flexible, ils sont donc aussi grands que le plus grand des éléments.
{{EmbedGHLiveSample("css-examples/flexbox/basics/simple-example.html", '100%', 500)}}
+ +Les propriétés align-content, align-self, align-items et justify-content étaient initialement définies dans la spécification Flexbox mais sont désormais définies dans la spécification sur l'alignement des boîtes et la spécification Flexbox fait référence à cette nouvelle spécification pour les définitions à jour. Des propriétés d'alignement additionnelles ont également été définies dans le module de spécification Box Alignment.
flex-grow, flex-shrink et flex-basis.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox')}} | +{{ Spec2('CSS3 Flexbox') }} | +Définition initiale. | +
{{CSSRef}}
- -Les boîtes flexibles ont été conçues comme une méthode de disposition unidimensionnelle. Autrement dit, elles permettent de disposer des éléments en lignes ou en colonnes mais pas en lignes et en colonnes en même temps. Il existe toutefois la possibilité de passer des éléments flexibles à la ligne pour créer de nouvelles lignes horizontales si {{cssxref("flex-direction")}} vaut row ou de nouvelles colonnes si flex-direction vaut column. Dans ce guide, nous verrons comment cela fonctionne, les cas pour lesquels cela a été prévu et les situations qui nécessitent plutôt d'utiliser une disposition en grille (CSS Grid).
La valeur initiale de la propriété {{cssxref("flex-wrap")}} est nowrap. Cela signifie que si on a un ensemble d'éléments flexibles trop larges pour tenir dans le conteneur, ces éléments dépasseront. Si on souhaite que ces éléments créent une nouvelle ligne lorsque la largeur du conteneur est dépassée, on peut ajouter la propriété flex-wrap avec la valeur wrap, ou utiliser la propriété raccourcie {{cssxref("flex-flow")}} avec les valeurs row wrap ou column wrap.
Les éléments passeront alors à la ligne dans le conteneur. Dans l'exemple qui suit, on dispose de 10 éléments pour lesquels flex-basis vaut 160px et qui peuvent grandir/rétrécir. Une fois que la première ligne est composée de suffisamment d'éléments et qu'il n'y a plus d'espace suffisant pour placer un autre objet de 160 pixels, une nouvelle ligne flexible est créée dans laquelle on place les éléments suivants et ainsi de suite. Les éléments pouvant grandir, ils s'étireront sur plus de 160 pixels afin de remplir chaque ligne complètement. S'il n'y a qu'un seul élément sur la dernière ligne, cet élément s'étirera pour remplir toute la ligne.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/row-wrap.html", '100%', 650)}}
- -On peut avoir le même effet en colonnes. Ici le conteneur devra avoir une hauteur afin que les éléments créent de nouvelles colonnes et s'étirent en hauteur pour remplir chaque colonne.
- -{{EmbedGHLiveSample("css-examples/flexbox/wrapping/column-wrap.html", '100%', 810)}}
- -flex-directionLe retour à la ligne fonctionne comme on pourrait s'y attendre lorsqu'on manipule flex-direction. Si flex-direction vaut row-reverse, les éléments commenceront à créer une nouvelle ligne à partir de la ligne de fin du conteneur et rempliront les lignes dans l'ordre inverse.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/row-reverse-wrap.html", '100%', 750)}}
- -On notera que l'inversion a uniquement lieu dans le sens de la ligne. On démarre à droite puis on passe à la deuxième ligne pour laquelle on démarre également à droite. On n'inverse pas les deux directions et on ne commence donc pas à partir du bas du conteneur pour le remplir vers le haut.
- -Comme nous avons pu le voir dans les exemples précédents, si les éléments peuvent grandir et rétrécir, lorsqu'il y a moins d'éléments dans la dernière ligne ou colonne, ces éléments grandissent pour occuper tout l'espace disponible.
- -Il n'existe pas de méthode, avec les boîtes flexibles, qui permettent d'aligner les éléments d'une ligne avec ceux de la ligne du dessus : chaque ligne flexible agit comme un nouveau conteneur, décorrélé du précédent et gère la distribution de l'espace sur l'axe principal pour cette ligne uniquement. S'il n'y a qu'un seul élément et que celui-ci peut grandir, il remplira alors tout l'espace, comme si on a avait eu un conteneur flexible avec un seul élément flexible.
- -Si on souhaite organiser du contenu sur deux dimensions, mieux vaut utiliser les grilles CSS. On peut comparer notre exemple précédent avec la version utilisant une disposition en grille pour observer les différences. Dans l'exemple qui suit, on utilise une grille CSS composée d'autant de colonnes de 160 pixels de large que possible et on distribue l'espace restant entre chaque colonne. Toutefois, les éléments restent ici sur la grille et ne s'étirent pas s'il y en a moins sur la dernière ligne.
- -{{EmbedGHLiveSample("css-examples/flexbox/wrapping/grid-example.html", '100%', 700)}}
- -C'est la différence entre une disposition unidimensionnelle et une disposition bidimensionnelle. Avec une méthode unidimensionnelle comme les boîtes flexibles, on ne contrôle que la ligne ou la colonne. Avec une méthode bidimensionnelle, on contrôle les deux axes simultanément. Aussi, si vous souhaitez organiser l'espace ligne par ligne ou colonne par colonne, vous pouvez utiliser les boîtes flexibles mais sinon, utilisez les grilles CSS.
- -La plupart du temps, les systèmes de grilles basés sur les boîtes flexibles fonctionnent en combinant les boîtes flexibles et les dispositions avec les flottements (floats). Si on affecte des largeurs en pourcentage aux éléments flexibles (via flex-basis ou avec une largeur sur l'élément et avec flex-basis en auto) on peut obtenir l'impression d'une disposition organisée sur deux dimensions, comme on peut voir dans l'exemple ci-après.
Dans cet exemple, on a flex-grow et flex-shrink qui valent 0 afin que les éléments ne soient pas flexibles et que leur flexibilité puisse être maîtrisée avec des pourcentages, comme on pouvait le faire avec des dispositions flottantes.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/flex-grid.html", '100%', 650)}}
- -Si on souhaite que les éléments flexibles s'alignent le long de l'axe secondaire, on pourra ajuster les largeurs avec ces pourcentages. Dans la plupart des cas, cet ajout de largeur aux éléments flexibles témoigne plutôt d'un scénario où les grilles CSS seraient plus pertinentes.
- -Lorsque les éléments flexibles passent à la ligne, il faudra sans doute les espacer. À l'heure actuelle, il n'existe pas d'implémentation des propriétés de gouttières pour le module d'alignement des boîtes et pour Flexbox. À l'avenir, nous pourrons utiliser row-gap et column-gap pour les boîtes flexibles, comme nous pouvons le faire avec les grilles CSS. En attendant, il faut utiliser les marges pour obtenir l'effet escompté.
On peut voir dans l'exemple suivant que créer des gouttières entre les éléments sans créer d'espace sur les bords des conteneurs nécessite l'utilisation de marges négatives sur le conteneur flexible. Toutes les bordures du conteneur flexibles sont déplacées vers un deuxième conteneur afin que la marge négative puisse absorber les éléments le long du conteneur.
- -Cette contrainte sera levée lorsque les propriétés de gouttières seront implémentées. De telles gouttières s'appliqueront uniquement sur les bords des éléments situés à l'intérieur du conteneur.
- -{{EmbedGHLiveSample("css-examples/flexbox/wrapping/gaps.html", '100%', 830)}}
- -visibility: collapseLa spécification sur les boîtes flexibles détaille la façon dont un élément flexible est replié lorsqu'on lui applique visibility: collapse (voir la documentation de {{cssxref("visibility")}}). La spécification décrit le comportement standard comme suit :
-- -“Indiquer
-visibility:collapsesur un élément flexible le transforme en un élément flexible replié et produit un effet similaire à l'application devisibility:collapsesur une ligne ou colonne de tableau. L'élément flexible replié est intégralement retiré du rendu mais laisse une toise qui permet de conserver la taille de la ligne flexible selon l'axe secondaire. Ainsi, si un conteneur flexible ne possède qu'une ligne flexible, replier ou déplier des éléments flexibles pourra modifier la dimension principale du conteneur mais n'aura aucun effet sur l'axe secondaire et empêchera ainsi le reste de la page d'osciller. Le passage à la ligne est réappliqué après le repliage des éléments et il se peut donc que la dimension secondaire d'un conteneur flexible sur plusieurs lignes puisse évoluer.” - Éléments repliés
Ce comportement s'avère utile lorsqu'on souhaite cibler certains éléments flexibles avec JavaScript afin d'afficher/masquer leur contenu. Un des exemples de la spécification illustre un tel scénario.
- -Dans l'exemple qui suit, on a un conteneur flexible sans passage à la ligne. Le troisième élément possède plus de contenu que les autres mais est paramétré avec visibility: collapse et le conteneur flexible conserve donc une toise pour la hauteur nécessaire à l'affichage de cet élément. Si on retire visibility: collapse ou qu'on modifie la valeur de visible, on pourra voir l'élément disparaître et l'espace être redistribué entre les éléments qui ne sont pas repliés. La hauteur du conteneur flexible ne devrait pas changer.
Note : Il est nécessaire d'utiliser Firefox pour les deux exemples présentés ensuite car Chrome et Safari considèrent collapse comme équivalent à hidden.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/visibility-collapse.html", '100%', 650)}}
- -Lorsqu'on manipule des conteneurs flexibles qui sont composés de plusieurs lignes flexibles, il faut être conscient que le passage à la ligne est réappliqué après le repliage des éléments. Ainsi, le navigateur doit réappliquer les mécanismes de passage à la ligne afin de tenir compte de l'espace libéré par l'élément plié dans la direction principale.
- -Cela signifie qu'un ou plusieurs éléments pourraient être déplacés sur une autre ligne que leur ligne initiale.
- -Vous pouvez observer ce comportement dans l'exemple qui suit. On peut voir comment la composition des lignes varie en fonction de l'élément qui est replié. Si vous ajoutez plus de contenu au deuxième élément, il changera de ligne s'il est suffisamment grand. La ligne du haut sera alors aussi haute qu'une seule ligne de texte.
- -{{EmbedGHLiveSample("css-examples/flexbox/wrapping/wrapped-visibility-collapse.html", '100%', 750)}}
- -Si cela pose problème dans votre structure, il peut être nécessaire de revoir son organisation et, par exemple, de placer chaque ligne de contenu dans un conteneur flexible séparé afin que le contenu ne puisse pas changer de ligne.
- -visibility: collapse et display: noneLorsqu'on utilise display: none sur un élément afin de le cacher, cet élément est complètement retiré de la structure de la page. En pratique, cela signifie que les compteurs ignoreront cet élément et que les opérations telles que les transitions ne lui seront pas appliquées. visibility: hidden permet quant à elle de conserver la boîte dans la structure et peut être pratique si on souhaite que l'élément contribue à la disposition sans que l'utilisateur puisse le voir.
{{CSSRef}}
+ +Les boîtes flexibles ont été conçues comme une méthode de disposition unidimensionnelle. Autrement dit, elles permettent de disposer des éléments en lignes ou en colonnes mais pas en lignes et en colonnes en même temps. Il existe toutefois la possibilité de passer des éléments flexibles à la ligne pour créer de nouvelles lignes horizontales si {{cssxref("flex-direction")}} vaut row ou de nouvelles colonnes si flex-direction vaut column. Dans ce guide, nous verrons comment cela fonctionne, les cas pour lesquels cela a été prévu et les situations qui nécessitent plutôt d'utiliser une disposition en grille (CSS Grid).
La valeur initiale de la propriété {{cssxref("flex-wrap")}} est nowrap. Cela signifie que si on a un ensemble d'éléments flexibles trop larges pour tenir dans le conteneur, ces éléments dépasseront. Si on souhaite que ces éléments créent une nouvelle ligne lorsque la largeur du conteneur est dépassée, on peut ajouter la propriété flex-wrap avec la valeur wrap, ou utiliser la propriété raccourcie {{cssxref("flex-flow")}} avec les valeurs row wrap ou column wrap.
Les éléments passeront alors à la ligne dans le conteneur. Dans l'exemple qui suit, on dispose de 10 éléments pour lesquels flex-basis vaut 160px et qui peuvent grandir/rétrécir. Une fois que la première ligne est composée de suffisamment d'éléments et qu'il n'y a plus d'espace suffisant pour placer un autre objet de 160 pixels, une nouvelle ligne flexible est créée dans laquelle on place les éléments suivants et ainsi de suite. Les éléments pouvant grandir, ils s'étireront sur plus de 160 pixels afin de remplir chaque ligne complètement. S'il n'y a qu'un seul élément sur la dernière ligne, cet élément s'étirera pour remplir toute la ligne.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/row-wrap.html", '100%', 650)}}
+ +On peut avoir le même effet en colonnes. Ici le conteneur devra avoir une hauteur afin que les éléments créent de nouvelles colonnes et s'étirent en hauteur pour remplir chaque colonne.
+ +{{EmbedGHLiveSample("css-examples/flexbox/wrapping/column-wrap.html", '100%', 810)}}
+ +flex-directionLe retour à la ligne fonctionne comme on pourrait s'y attendre lorsqu'on manipule flex-direction. Si flex-direction vaut row-reverse, les éléments commenceront à créer une nouvelle ligne à partir de la ligne de fin du conteneur et rempliront les lignes dans l'ordre inverse.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/row-reverse-wrap.html", '100%', 750)}}
+ +On notera que l'inversion a uniquement lieu dans le sens de la ligne. On démarre à droite puis on passe à la deuxième ligne pour laquelle on démarre également à droite. On n'inverse pas les deux directions et on ne commence donc pas à partir du bas du conteneur pour le remplir vers le haut.
+ +Comme nous avons pu le voir dans les exemples précédents, si les éléments peuvent grandir et rétrécir, lorsqu'il y a moins d'éléments dans la dernière ligne ou colonne, ces éléments grandissent pour occuper tout l'espace disponible.
+ +Il n'existe pas de méthode, avec les boîtes flexibles, qui permettent d'aligner les éléments d'une ligne avec ceux de la ligne du dessus : chaque ligne flexible agit comme un nouveau conteneur, décorrélé du précédent et gère la distribution de l'espace sur l'axe principal pour cette ligne uniquement. S'il n'y a qu'un seul élément et que celui-ci peut grandir, il remplira alors tout l'espace, comme si on a avait eu un conteneur flexible avec un seul élément flexible.
+ +Si on souhaite organiser du contenu sur deux dimensions, mieux vaut utiliser les grilles CSS. On peut comparer notre exemple précédent avec la version utilisant une disposition en grille pour observer les différences. Dans l'exemple qui suit, on utilise une grille CSS composée d'autant de colonnes de 160 pixels de large que possible et on distribue l'espace restant entre chaque colonne. Toutefois, les éléments restent ici sur la grille et ne s'étirent pas s'il y en a moins sur la dernière ligne.
+ +{{EmbedGHLiveSample("css-examples/flexbox/wrapping/grid-example.html", '100%', 700)}}
+ +C'est la différence entre une disposition unidimensionnelle et une disposition bidimensionnelle. Avec une méthode unidimensionnelle comme les boîtes flexibles, on ne contrôle que la ligne ou la colonne. Avec une méthode bidimensionnelle, on contrôle les deux axes simultanément. Aussi, si vous souhaitez organiser l'espace ligne par ligne ou colonne par colonne, vous pouvez utiliser les boîtes flexibles mais sinon, utilisez les grilles CSS.
+ +La plupart du temps, les systèmes de grilles basés sur les boîtes flexibles fonctionnent en combinant les boîtes flexibles et les dispositions avec les flottements (floats). Si on affecte des largeurs en pourcentage aux éléments flexibles (via flex-basis ou avec une largeur sur l'élément et avec flex-basis en auto) on peut obtenir l'impression d'une disposition organisée sur deux dimensions, comme on peut voir dans l'exemple ci-après.
Dans cet exemple, on a flex-grow et flex-shrink qui valent 0 afin que les éléments ne soient pas flexibles et que leur flexibilité puisse être maîtrisée avec des pourcentages, comme on pouvait le faire avec des dispositions flottantes.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/flex-grid.html", '100%', 650)}}
+ +Si on souhaite que les éléments flexibles s'alignent le long de l'axe secondaire, on pourra ajuster les largeurs avec ces pourcentages. Dans la plupart des cas, cet ajout de largeur aux éléments flexibles témoigne plutôt d'un scénario où les grilles CSS seraient plus pertinentes.
+ +Lorsque les éléments flexibles passent à la ligne, il faudra sans doute les espacer. À l'heure actuelle, il n'existe pas d'implémentation des propriétés de gouttières pour le module d'alignement des boîtes et pour Flexbox. À l'avenir, nous pourrons utiliser row-gap et column-gap pour les boîtes flexibles, comme nous pouvons le faire avec les grilles CSS. En attendant, il faut utiliser les marges pour obtenir l'effet escompté.
On peut voir dans l'exemple suivant que créer des gouttières entre les éléments sans créer d'espace sur les bords des conteneurs nécessite l'utilisation de marges négatives sur le conteneur flexible. Toutes les bordures du conteneur flexibles sont déplacées vers un deuxième conteneur afin que la marge négative puisse absorber les éléments le long du conteneur.
+ +Cette contrainte sera levée lorsque les propriétés de gouttières seront implémentées. De telles gouttières s'appliqueront uniquement sur les bords des éléments situés à l'intérieur du conteneur.
+ +{{EmbedGHLiveSample("css-examples/flexbox/wrapping/gaps.html", '100%', 830)}}
+ +visibility: collapseLa spécification sur les boîtes flexibles détaille la façon dont un élément flexible est replié lorsqu'on lui applique visibility: collapse (voir la documentation de {{cssxref("visibility")}}). La spécification décrit le comportement standard comme suit :
++ +“Indiquer
+visibility:collapsesur un élément flexible le transforme en un élément flexible replié et produit un effet similaire à l'application devisibility:collapsesur une ligne ou colonne de tableau. L'élément flexible replié est intégralement retiré du rendu mais laisse une toise qui permet de conserver la taille de la ligne flexible selon l'axe secondaire. Ainsi, si un conteneur flexible ne possède qu'une ligne flexible, replier ou déplier des éléments flexibles pourra modifier la dimension principale du conteneur mais n'aura aucun effet sur l'axe secondaire et empêchera ainsi le reste de la page d'osciller. Le passage à la ligne est réappliqué après le repliage des éléments et il se peut donc que la dimension secondaire d'un conteneur flexible sur plusieurs lignes puisse évoluer.” - Éléments repliés
Ce comportement s'avère utile lorsqu'on souhaite cibler certains éléments flexibles avec JavaScript afin d'afficher/masquer leur contenu. Un des exemples de la spécification illustre un tel scénario.
+ +Dans l'exemple qui suit, on a un conteneur flexible sans passage à la ligne. Le troisième élément possède plus de contenu que les autres mais est paramétré avec visibility: collapse et le conteneur flexible conserve donc une toise pour la hauteur nécessaire à l'affichage de cet élément. Si on retire visibility: collapse ou qu'on modifie la valeur de visible, on pourra voir l'élément disparaître et l'espace être redistribué entre les éléments qui ne sont pas repliés. La hauteur du conteneur flexible ne devrait pas changer.
Note : Il est nécessaire d'utiliser Firefox pour les deux exemples présentés ensuite car Chrome et Safari considèrent collapse comme équivalent à hidden.
{{EmbedGHLiveSample("css-examples/flexbox/wrapping/visibility-collapse.html", '100%', 650)}}
+ +Lorsqu'on manipule des conteneurs flexibles qui sont composés de plusieurs lignes flexibles, il faut être conscient que le passage à la ligne est réappliqué après le repliage des éléments. Ainsi, le navigateur doit réappliquer les mécanismes de passage à la ligne afin de tenir compte de l'espace libéré par l'élément plié dans la direction principale.
+ +Cela signifie qu'un ou plusieurs éléments pourraient être déplacés sur une autre ligne que leur ligne initiale.
+ +Vous pouvez observer ce comportement dans l'exemple qui suit. On peut voir comment la composition des lignes varie en fonction de l'élément qui est replié. Si vous ajoutez plus de contenu au deuxième élément, il changera de ligne s'il est suffisamment grand. La ligne du haut sera alors aussi haute qu'une seule ligne de texte.
+ +{{EmbedGHLiveSample("css-examples/flexbox/wrapping/wrapped-visibility-collapse.html", '100%', 750)}}
+ +Si cela pose problème dans votre structure, il peut être nécessaire de revoir son organisation et, par exemple, de placer chaque ligne de contenu dans un conteneur flexible séparé afin que le contenu ne puisse pas changer de ligne.
+ +visibility: collapse et display: noneLorsqu'on utilise display: none sur un élément afin de le cacher, cet élément est complètement retiré de la structure de la page. En pratique, cela signifie que les compteurs ignoreront cet élément et que les opérations telles que les transitions ne lui seront pas appliquées. visibility: hidden permet quant à elle de conserver la boîte dans la structure et peut être pratique si on souhaite que l'élément contribue à la disposition sans que l'utilisateur puisse le voir.
{{CSSRef}}
- -Les nouvelles méthodes de disposition telles que les boîtes flexibles (flexbox) et la grille CSS (CSS Grid) apportent la possibilité de contrôler l'ordre du contenu. Dans cet article, nous verrons comment changer l'ordre visuel du contenu grâce aux boîtes flexibles. Nous examinerons également les conséquences de cette réorganisation du point de vue de l'accessibilité.
- -La propriété {{cssxref("flex-direction")}} peut être utilisée avec quatre valeurs :
- -rowcolumnrow-reversecolumn-reverseLes deux premières valeurs permettent de conserver l'ordre des éléments tels qu'ils apparaissent dans le document source et de les afficher les uns à la suite des autres à partir de la ligne du début.
- -

Les deux valeurs suivantes inversent l'ordre des éléments en échangeant les lignes de début et de fin.
- -

Rappelons ici que les lignes de début et de fin sont liées aux modes d'écritures. Les exemples en lignes ci-avant illustrent comment row et row-reverse fonctionnent dans une langue qui s'écrit de gauche à droite (le français par exemple). Si on travaille avec une langue écrite de droite à gauche (l'arabe par exemple), row correspondrait au côté droit et row-reverse au côté gauche.

Cette méthode peut donc sembler efficace pour afficher des éléments dans un ordre inversé. Toutefois, il faut garder à l'esprit que seul l'affichage est inversé. Sur ce sujet, la spécification explique :
- --- -“Note : les possibilités de réorganisation de la disposition flexible modifient uniquement et intentionnellement le rendu visuel. L'ordre de lecture et l'ordre de navigation restent basés sur l'ordre des éléments dans le document source. Cela permet aux auteurs de manipuler la présentation visuelle toute en conservant intact l'ordre de la source pour les agents utilisateurs qui n'utilisent pas CSS et pour les modèles de navigation linéaires comme la navigation vocale ou séquentielle.” - Ordre et Orientation
-
Si les éléments présentés étaient des liens ou d'autres éléments sur lequel un utilisateur pourrait naviguer grâce aux tabulations, l'ordre de la navigation au clavier serait celui des éléments dans le document source et ne correspondrait alors pas à l'ordre visuel.
- -Si vous utilisez une valeur qui inverse cet affichage ou une méthode qui réordonne vos éléments, demandez-vous s'il ne faut pas modifier l'ordre logique des éléments dans le document source. Par la suite, la spécification émet un avertissement : ces valeurs de réorganisation ne doivent pas être utilisées comme palliatifs à un problème dans l'ordre du document source :
- --- -“Les auteurs ne doivent pas utiliser
-orderou les valeurs -reverse deflex-flow/flex-directioncomme remplacement d'un ordre correct dans le document source car cela peut nuire à l'accessibilité du document.”
Note : Pendant plusieurs années, Firefox possédait un bug avec lequel il essayait de suivre l'ordre visuel plutôt que l'ordre de la source, à la différence des autres navigateurs. Ce bug a été corrigé. Il faut toujours considérer l'ordre des éléments dans le document source comme étant l'ordre logique, tous les agents utilisateurs modernes respectent la spécification à cet égard.
-Dans l'exemple qui suit, nous avons ajouté une mise en forme sur le focus afin que vous puissiez voir quel lien est actif lorsque vous naviguez au clavier. Si vous modifier la valeur de flex-direction, vous pouvez voir que la navigation au clavier continue de suivre l'ordre dans lequel les éléments sont écrits dans le document source.
{{EmbedGHLiveSample("css-examples/flexbox/order/order.html", '100%', 500)}}
- -De la même façon, changer la valeur de flex-direction ne modifie pas l'ordre avec lequel on navigue parmi les éléments. Cela ne modifie pas non plus l'ordre dans lequel les éléments sont rendus à l'écran. Il s'agit uniquement d'une inversion visuelle.
orderEn plus de cette inversion, il est également possible de cibler des éléments en particulier et de modifier leur ordre visuel grâce à la propriété {{cssxref("order")}}.
- -La propriété order permet de disposer les éléments au sein de groupes ordinaux. Cela signifie que chaque élément reçoit un entier qui représente le numéro d'un groupe. Les éléments sont ensuite placés visuellement dans l'ordre qui correspond à cet entier, les éléments avec les numéros les plus petits étant placés en premiers. Si plusieurs éléments possèdent le même coefficient, les éléments de ce groupe sont alors ordonnés en suivant l'ordre du document source entre eux.
Dans l'exemple qui suit, on dispose de 5 objets flexibles et on affecte les valeurs order comme suit :
order: 2order: 3order: 1order: 3order: 1Les éléments seront affichés sur la page dans l'ordre suivant :
- -order: 1order: 1order: 2order: 3order: 3
Vous pouvez manipuler les valeurs dans l'exemple qui suit afin de voir comment l'ordre est modifié. Essayez également de modifier la valeur de flex-direction pour utiliser row-reverse — la ligne de début est inversée et l'ordre des éléments commence à partir du côté opposé.
{{EmbedGHLiveSample("css-examples/flexbox/order/flex-direction.html", '100%', 440)}}
- -Par défaut, la valeur de la propriété order est 0 pour les éléments flexibles. Aussi, si on utilise un coefficient supérieur à 0, les éléments concernés seront affichés après les éléments pour lesquels aucune valeur explicite n'a été fournie pour order.
On peut également utiliser des valeurs négatives. Cela est plutôt pratique si on souhaite afficher un élément en premier sans avoir à indiquer de valeurs pour les autres éléments : il suffira d'affecter l'ordre -1 au premier élément. Cette valeur étant inférieure à 0, l'élément sera toujours affiché en premier.
Dans l'exemple qui suit, les éléments sont disposés avec les boîtes flexibles. En modifiant l'élément qui possède la classe active dans le code HTML, vous pouvez modifier l'élément qui apparaît en premier et qui prend alors toute la largeur en haut, les autres éléments étant affichés en dessous.
{{EmbedGHLiveSample("css-examples/flexbox/order/negative-order.html", '100%', 520)}}
- -Les éléments sont affichés dans ce que la spécification intitule un ordre modifié à partir de l'ordre du document (en anglais "order-modified document order"). La valeur de la propriété order est prise en compte avant que les éléments soient affichés.
L'ordre modifie également l'ordre de rendu des éléments à l'écran. Les éléments pour lesquels order est plus petit seront affichés en premier et ceux avec un coefficient d'ordre plus élevé seront affichés ensuite.
order et l'accessibilitéLa propriété order aura exactement les mêmes conséquences qu'une modification de flex-direction sur l'accessibilité. Utiliser order modifie l'ordre dans lequel les éléments sont affichés à l'écran et l'ordre dans lequel ils sont présentés visuellement. Cela ne modifie pas l'ordre de navigation. Aussi, si un utilisateur navigue grâce aux tabulations entre les éléments, cette disposition peut prêter à confusion.
En utilisant la tabulation pour naviguer au sein des exemples de cette page, vous pouvez voir comment l'ordre peut créer une expérience pour le moins étrange de navigation si on n'utilise pas de pointeur (souris, stylet, interface tactile). Pour approfondir cette notion et les problèmes qu'un déphasage entre l'ordre visuel et logique peut causer, vous pouvez consulter les ressources suivantes :
- -orderIl existe certains cas où l'ordre logique (correspondant à l'ordre de lecture) est distinct de l'ordre visuel. Dans ces cas, utiliser la propriété order à bon escient permet d'implémenter certains motifs récurrents.
Prenons comme exemple une disposition avec des cartes dont chacune contient une nouvelle. Le titre de la nouvelle est l'élément qui doit être mis en avant et celui sur lequel l'utilisateur doit arriver s'il navigue au clavier à la recherche d'un contenu à lire. Chaque carte possède également une date de façon à obtenir un design comme celui-ci.
- -
Visuellement, la date apparaît au-dessus du titre. Toutefois, si la carte était lue par un lecteur d'écran, on préfèrerait que le titre soit annoncé en premier puis que soit ensuite lue la date de publication. Pour ce faire, on peut utiliser la propriété order.
Dans cet exemple, la carte sera le conteneur flexible et flex-direction aura la valeur column. Pour la date, on affectera un ordre avec la propriété order qui vaut -1 qui permettra de la placer au-dessus du titre.
{{EmbedGHLiveSample("css-examples/flexbox/order/usecase-order.html", '100%', 730)}}
- -Ces légères adaptations sont caractéristiques des cas où la propriété order se révèle pertinente. L'ordre logique doit suivre l'ordre de lecture et de navigation au clavier dans le document. Il doit maintenir la structure de la façon la plus accessible. order peut alors être ensuite utilisé pour opérer des ajustements visuels. Lorsque vous réordonnez des éléments, assurez-vous que cela n'a pas d'impact sur les éléments parmi lesquels on peut naviguer au clavier. De façon générale, lorsque vous utilisez de nouvelles méthodes de disposition, assurez-vous que la phase de test via le navigateur inclut également des tests de navigation au clavier (sans souris ni écran tactile). Vous pourrez alors rapidement constater si vos choix de développement rendent certains contenus difficiles d'accès.
{{CSSRef}}
+ +Les nouvelles méthodes de disposition telles que les boîtes flexibles (flexbox) et la grille CSS (CSS Grid) apportent la possibilité de contrôler l'ordre du contenu. Dans cet article, nous verrons comment changer l'ordre visuel du contenu grâce aux boîtes flexibles. Nous examinerons également les conséquences de cette réorganisation du point de vue de l'accessibilité.
+ +La propriété {{cssxref("flex-direction")}} peut être utilisée avec quatre valeurs :
+ +rowcolumnrow-reversecolumn-reverseLes deux premières valeurs permettent de conserver l'ordre des éléments tels qu'ils apparaissent dans le document source et de les afficher les uns à la suite des autres à partir de la ligne du début.
+ +

Les deux valeurs suivantes inversent l'ordre des éléments en échangeant les lignes de début et de fin.
+ +

Rappelons ici que les lignes de début et de fin sont liées aux modes d'écritures. Les exemples en lignes ci-avant illustrent comment row et row-reverse fonctionnent dans une langue qui s'écrit de gauche à droite (le français par exemple). Si on travaille avec une langue écrite de droite à gauche (l'arabe par exemple), row correspondrait au côté droit et row-reverse au côté gauche.

Cette méthode peut donc sembler efficace pour afficher des éléments dans un ordre inversé. Toutefois, il faut garder à l'esprit que seul l'affichage est inversé. Sur ce sujet, la spécification explique :
+ +++ +“Note : les possibilités de réorganisation de la disposition flexible modifient uniquement et intentionnellement le rendu visuel. L'ordre de lecture et l'ordre de navigation restent basés sur l'ordre des éléments dans le document source. Cela permet aux auteurs de manipuler la présentation visuelle toute en conservant intact l'ordre de la source pour les agents utilisateurs qui n'utilisent pas CSS et pour les modèles de navigation linéaires comme la navigation vocale ou séquentielle.” - Ordre et Orientation
+
Si les éléments présentés étaient des liens ou d'autres éléments sur lequel un utilisateur pourrait naviguer grâce aux tabulations, l'ordre de la navigation au clavier serait celui des éléments dans le document source et ne correspondrait alors pas à l'ordre visuel.
+ +Si vous utilisez une valeur qui inverse cet affichage ou une méthode qui réordonne vos éléments, demandez-vous s'il ne faut pas modifier l'ordre logique des éléments dans le document source. Par la suite, la spécification émet un avertissement : ces valeurs de réorganisation ne doivent pas être utilisées comme palliatifs à un problème dans l'ordre du document source :
+ +++ +“Les auteurs ne doivent pas utiliser
+orderou les valeurs -reverse deflex-flow/flex-directioncomme remplacement d'un ordre correct dans le document source car cela peut nuire à l'accessibilité du document.”
Note : Pendant plusieurs années, Firefox possédait un bug avec lequel il essayait de suivre l'ordre visuel plutôt que l'ordre de la source, à la différence des autres navigateurs. Ce bug a été corrigé. Il faut toujours considérer l'ordre des éléments dans le document source comme étant l'ordre logique, tous les agents utilisateurs modernes respectent la spécification à cet égard.
+Dans l'exemple qui suit, nous avons ajouté une mise en forme sur le focus afin que vous puissiez voir quel lien est actif lorsque vous naviguez au clavier. Si vous modifier la valeur de flex-direction, vous pouvez voir que la navigation au clavier continue de suivre l'ordre dans lequel les éléments sont écrits dans le document source.
{{EmbedGHLiveSample("css-examples/flexbox/order/order.html", '100%', 500)}}
+ +De la même façon, changer la valeur de flex-direction ne modifie pas l'ordre avec lequel on navigue parmi les éléments. Cela ne modifie pas non plus l'ordre dans lequel les éléments sont rendus à l'écran. Il s'agit uniquement d'une inversion visuelle.
orderEn plus de cette inversion, il est également possible de cibler des éléments en particulier et de modifier leur ordre visuel grâce à la propriété {{cssxref("order")}}.
+ +La propriété order permet de disposer les éléments au sein de groupes ordinaux. Cela signifie que chaque élément reçoit un entier qui représente le numéro d'un groupe. Les éléments sont ensuite placés visuellement dans l'ordre qui correspond à cet entier, les éléments avec les numéros les plus petits étant placés en premiers. Si plusieurs éléments possèdent le même coefficient, les éléments de ce groupe sont alors ordonnés en suivant l'ordre du document source entre eux.
Dans l'exemple qui suit, on dispose de 5 objets flexibles et on affecte les valeurs order comme suit :
order: 2order: 3order: 1order: 3order: 1Les éléments seront affichés sur la page dans l'ordre suivant :
+ +order: 1order: 1order: 2order: 3order: 3
Vous pouvez manipuler les valeurs dans l'exemple qui suit afin de voir comment l'ordre est modifié. Essayez également de modifier la valeur de flex-direction pour utiliser row-reverse — la ligne de début est inversée et l'ordre des éléments commence à partir du côté opposé.
{{EmbedGHLiveSample("css-examples/flexbox/order/flex-direction.html", '100%', 440)}}
+ +Par défaut, la valeur de la propriété order est 0 pour les éléments flexibles. Aussi, si on utilise un coefficient supérieur à 0, les éléments concernés seront affichés après les éléments pour lesquels aucune valeur explicite n'a été fournie pour order.
On peut également utiliser des valeurs négatives. Cela est plutôt pratique si on souhaite afficher un élément en premier sans avoir à indiquer de valeurs pour les autres éléments : il suffira d'affecter l'ordre -1 au premier élément. Cette valeur étant inférieure à 0, l'élément sera toujours affiché en premier.
Dans l'exemple qui suit, les éléments sont disposés avec les boîtes flexibles. En modifiant l'élément qui possède la classe active dans le code HTML, vous pouvez modifier l'élément qui apparaît en premier et qui prend alors toute la largeur en haut, les autres éléments étant affichés en dessous.
{{EmbedGHLiveSample("css-examples/flexbox/order/negative-order.html", '100%', 520)}}
+ +Les éléments sont affichés dans ce que la spécification intitule un ordre modifié à partir de l'ordre du document (en anglais "order-modified document order"). La valeur de la propriété order est prise en compte avant que les éléments soient affichés.
L'ordre modifie également l'ordre de rendu des éléments à l'écran. Les éléments pour lesquels order est plus petit seront affichés en premier et ceux avec un coefficient d'ordre plus élevé seront affichés ensuite.
order et l'accessibilitéLa propriété order aura exactement les mêmes conséquences qu'une modification de flex-direction sur l'accessibilité. Utiliser order modifie l'ordre dans lequel les éléments sont affichés à l'écran et l'ordre dans lequel ils sont présentés visuellement. Cela ne modifie pas l'ordre de navigation. Aussi, si un utilisateur navigue grâce aux tabulations entre les éléments, cette disposition peut prêter à confusion.
En utilisant la tabulation pour naviguer au sein des exemples de cette page, vous pouvez voir comment l'ordre peut créer une expérience pour le moins étrange de navigation si on n'utilise pas de pointeur (souris, stylet, interface tactile). Pour approfondir cette notion et les problèmes qu'un déphasage entre l'ordre visuel et logique peut causer, vous pouvez consulter les ressources suivantes :
+ +orderIl existe certains cas où l'ordre logique (correspondant à l'ordre de lecture) est distinct de l'ordre visuel. Dans ces cas, utiliser la propriété order à bon escient permet d'implémenter certains motifs récurrents.
Prenons comme exemple une disposition avec des cartes dont chacune contient une nouvelle. Le titre de la nouvelle est l'élément qui doit être mis en avant et celui sur lequel l'utilisateur doit arriver s'il navigue au clavier à la recherche d'un contenu à lire. Chaque carte possède également une date de façon à obtenir un design comme celui-ci.
+ +
Visuellement, la date apparaît au-dessus du titre. Toutefois, si la carte était lue par un lecteur d'écran, on préfèrerait que le titre soit annoncé en premier puis que soit ensuite lue la date de publication. Pour ce faire, on peut utiliser la propriété order.
Dans cet exemple, la carte sera le conteneur flexible et flex-direction aura la valeur column. Pour la date, on affectera un ordre avec la propriété order qui vaut -1 qui permettra de la placer au-dessus du titre.
{{EmbedGHLiveSample("css-examples/flexbox/order/usecase-order.html", '100%', 730)}}
+ +Ces légères adaptations sont caractéristiques des cas où la propriété order se révèle pertinente. L'ordre logique doit suivre l'ordre de lecture et de navigation au clavier dans le document. Il doit maintenir la structure de la façon la plus accessible. order peut alors être ensuite utilisé pour opérer des ajustements visuels. Lorsque vous réordonnez des éléments, assurez-vous que cela n'a pas d'impact sur les éléments parmi lesquels on peut naviguer au clavier. De façon générale, lorsque vous utilisez de nouvelles méthodes de disposition, assurez-vous que la phase de test via le navigateur inclut également des tests de navigation au clavier (sans souris ni écran tactile). Vous pourrez alors rapidement constater si vos choix de développement rendent certains contenus difficiles d'accès.
Dans cet article, nous verrons comment les boîtes flexibles interagissent avec les autres modules CSS. Nous verrons quelles sont les spécifications qui décrivent les boîtes flexibles et pourquoi les boîtes flexibles sont différentes des autres modules.
- -Note : Dans les versions 1 et 2 de CSS, la spécification était « monolithique » et décrite dans un seul document. Évoluant vers un langage riche possédant de nombreuses fonctionnalité, la maintenance de cette spécification unique est devenue problématiques, certaines parties évoluant à différentes vitesses. La spécification CSS a donc été modularisée et ce sont ces différents modules qui constituent CSS aujourd'hui. Ces modules sont liés les uns aux autres et sont chacun à différents stades de développement.
-La plupart des personnes s'intéressent aux boîtes flexibles car elles permettent d'aligner efficacement des éléments flexibles au sein d'un conteneur. Les boîtes flexibles permettent d'utiliser des propriétés pour aligner les éléments sur l'axe secondaire et de les justifier sur l'axe principal.
- -Ces propriétés sont apparues dans la spécification dédiée aux boîtes flexibles mais font désormais également partie de la spécification sur l'alignement des boîtes (Box Alignment). Cette spécification détaille la façon dont l'alignement fonctionne pour l'ensemble des dispositions (et pas uniquement pour les boîtes flexibles). L'alignement des boîtes permet de gérer l'alignement et la justification, ainsi que la distribution de l'espace le long d'un axe.
- -Ces propriétés d'alignement sont actuellement détaillées dans les spécifications de flexbox et d'alignement des boîtes afin d'être sûr que la spécification des boîtes flexibles n'est pas bloquée par l'état de la spécification sur l'alignement des boîtes. Dans la spécification flexbox, une note indique que lorsque la spécification sur l'alignement des boîtes sera terminée, ces définitions remplaceront celles de la spécification sur les boîtes flexibles :
- --- -« Note : Bien que les propriétés d'alignement soient définies dans le module CSS Box Alignment CSS-ALIGN-3, le module Flexible Box Layout reproduit les définitions des propriétés qui sont ici pertinentes afin de ne pas créer de dépendance normative qui ralentirait l'avancement de la spécification. Ces propriétés s'appliquent uniquement à la disposition flexible jusqu'à ce que CSS Box Alignment Level 3 soit terminé et définisse leurs effets pour les autres modes de disposition. De plus, toute nouvelle valeur qui apparaîtra dans le module Box Alignment s'appliquera également à la disposition en boîtes flexibles. Autrement dit, le module Box Alignment, lorsqu'il sera complet, remplacera les définitions énoncées ici. »
-
Dans un prochain article de ce guide (Aligner les éléments d'un conteneur flexibles), nous verrons dans le détail comment les propriétés du module d'alignement des boîtes s'appliquent aux éléments flexibles.
- -Récemment, les propriétés {{cssxref("row-gap")}} et {{cssxref("column-gap")}}, ainsi que la propriété raccourcie {{cssxref("gap")}} ont été ajoutées au module d'alignement des boîtes. Ces propriétés furent initialement définies dans la spécification de la grille CSS et étaient nommées grid-row-gap, grid-column-gap et grid-gap. Elles ont été renommées et déplacées dans le module d'alignement des boîtes afin de pouvoir être utilisées dans d'autres modes de disposition et, à terme, avec les boîtes flexibles. Avant la prise en charge des propriétés gap, c'était les propriétés {{cssxref("margin")}} qui étaient utilisées afin de créer des espaces entre les éléments.
Dans l'article sur les concepts de bases relatifs aux flexbox, nous avons vu que les boîtes flexibles prenaient en compte le mode d'écriture (la direction du texte). Les différents modes d'écritures sont décrits dans la spécification CSS Writing Modes qui détaille comment CSS prend en charge les différents modes d'écritures qui existent dans le monde. Cette spécification permet notamment de comprendre les directions de bloc et en ligne qui sont fondamentales pour les axes principal et secondaires des boîtes flexibles.
- -On notera qu'il est possible de modifier le mode d'écriture d'un document pour d'autres raisons que des raisons linguistiques. Vous pouvez consulter cet article pour en savoir plus sur les différentes façons d'utiliser les modes d'écriture, que ce soit en fonction de la langue du contenu ou pour des raisons créatives.
- -La spécification sur les modes d'écriture définit les différentes valeurs qui peuvent être utilisées avec la propriété {{cssxref("writing-mode")}}. Cette propriété permet de modifier la direction de la disposition des blocs sur la page pour correspondre à l'orientation d'un mode d'écriture donné. Vous pouvez manipuler l'exemple qui suit en utilisant les valeurs suivantes pour voir l'impact que cela a sur la disposition flexible :
- -horizontal-tbvertical-rlvertical-lrsideways-rlsideways-lr{{EmbedGHLiveSample("css-examples/flexbox/relationship/writing-modes.html", '100%', 360)}}
- -Actuellement, seul Firefox prend en charge sideways-rl et sideways-lr. Il existe également certains problèmes relatifs à writing-mode et aux boîtes flexibles. Pour plus d'informations, vous pouvez consulter les informations de compatibilité pour la propriété writing-mode. Toutefois, si vous souhaitez utiliser les modes d'écritures pour votre site/application, il est fortement conseillé de tester les résultats obtenus, ne serait-ce que parce que cela peut fortement nuire à la lisibilité !
On notera que la propriété writing-mode CSS ne doit pas être utilisée pour modifier le mode d'écriture d'un document entier. Cela doit être fait avec HTML en ajoutant un attribut dir et lang sur l'élément html afin d'indiquer la direction du texte par défaut et la langue du document. Ainsi, le document serait correctement affiché, même si le CSS n'était pas chargé.
La spécification sur les boîtes flexibles contient une définition de ce qui se produit lorsqu'un élément utilisant une autre méthode de disposition devient un élément flexible (par exemple : un élément est positionné de façon flottante et son élément parent devient un conteneur flexible). Elle décrit également comment un conteneur flexible s'inscrit dans une disposition.
- -Un élément avec display: flex se comportera majoritairement comme un conteneur de bloc qui établit un bloc englobant. Les éléments flottants ne rentreront pas dans ce conteneur et les marges des conteneurs ne fusionneront pas.
Pour un élément flexible, si celui-ci était avant un élément flottant ou dégagé (cleared) et qu'il devient flexible car son élément parent reçoit display: flex, le flottement et le dégagement ne s'appliquent plus. L'élément ne sera pas retiré du flux normal (ce qui aurait lieu avec un flottement). Si on a utilisé la propriété {{cssxref("vertical-align")}} avec inline-block ou si on a utilisé une disposition tabulaire, cela n'aura plus d'effet et on pourra utiliser les propriétés d'alignement des boîtes flexibles à la place.
Dans le prochain exemple, on applique un flottement sur les éléments fils puis leur conteneur reçoit display: flex. Si vous retirez display: flex, vous pouvez voir que l'élément .box s'écrase car aucun dégagement n'est appliqué. Cela permet de voir que le flottement s'applique. En remettant display: flex, l'élément ne s'écrase plus car les éléments fils sont devenus des éléments flexibles.
{{EmbedGHLiveSample("css-examples/flexbox/relationship/floats.html", '100%', 430)}}
- -La disposition en grille (CSS Grid) et les boîtes flexibles agissent de la même façon lorsqu'elles surchargent les autres méthodes de disposition. Les boîtes flexibles pourront être utilisées comme solution de repli si les grilles CSS ne sont pas prises en charge. En effet, les boîtes flexibles bénéficient d'une meilleure prise en charge pour les navigateurs moins récents. Cette approche fonctionne sans problème car, si un élément flexible devient un élément d'une grille, les propriétés flex qui auraient pu être affectées aux éléments enfants seront ignorées.
Les propriétés du module d'alignement des boîtes peuvent être utilisées pour ces deux modes de dispositions.
- -On demande souvent quelle est la différence entre la disposition avec les boîtes flexibles et la disposition avec la grille CSS. Pourquoi avoir deux spécifications quand celles-ci semblent avoir le même effet ?
- -La réponse la plus directe se trouve dans ces deux spécifications. Les boîtes flexibles sont une méthode de disposition unidimensionnelle alors que la grille CSS est une méthode de disposition bidimensionnelle. Dans l'exemple ci-après, on utilise une disposition avec les boîtes flexibles. Comme nous avons vu dans l'article sur les concepts de base, les éléments flexibles peuvent « passer à la ligne » mais chaque ligne forme alors un conteneur flexible indépendant. On voit ici que l'espace est distribué sans prendre en compte le placement des éléments sur les autres lignes/colonnes, il n'y a pas d'alignement.
- -{{EmbedGHLiveSample("css-examples/flexbox/relationship/flex-layout.html", '100%', 750)}}
- -Si on crée une disposition semblable avec une grille, on peut à la fois contrôler la disposition des lignes et des colonnes.
- -{{EmbedGHLiveSample("css-examples/flexbox/relationship/grid-layout.html", '100%', 700)}}
- -Ces exemples illustrent une autre différence majeure entre ces méthodes. Avec la disposition en grille, la majeure partie du dimensionnement s'applique au conteneur (on y définit les pistes et on place les éléments sur ces pistes). Avec la disposition utilisant les boîtes flexibles, on crée un conteneur flexible et on indique sa direction, tout le reste est géré au niveau des éléments.
- -Dans certains cas, les deux méthodes peuvent fonctionner sans problème. En les utilisant plus fréquemment, vous pourrez voir qu'elles répondent à des besoins différents et vous utiliserez sans doute ces deux méthodes dans votre CSS. Comme souvent, il n'y a pas de solution miracle et de « bonne » ou de « mauvaise » réponse.
- -De façon générale, si vous ajoutez des marges autour d'éléments flexibles afin que ceux-ci soient alignés, vous devriez utiliser une méthode de disposition bidimensionnelle comme la grille CSS qui vous permettra de mieux organiser votre contenu. La taille du composant à mettre en forme n'a pas d'importance, on n'utilisera pas plus les boîtes flexibles pour un « petit » composant et la grille pour un « grand ». Essayez les différentes méthodes, profitez de la liberté de choix qui existe désormais avec ces outils.
- -Pour approfondir cette comparaison entre la grille et les boîtes flexibles, vous pouvez consulter cet article à propos des relations entre la grille CSS et les autres méthodes de disposition. Cet article détaille les nombreuses différences entre la grille CSS et les boîtes flexibles ; il illustre aussi les fonctionnalités supplémentaires provenant de la grille. Cet article pourra vous aider à choisir la méthode de disposition à privilégier.
- -display: contentsLa valeur contents de la propriété {{cssxref("display")}} est une nouvelle valeur, décrite ainsi dans la spécification :
-- -« L'élément ne génère aucune boîte de lui-même mais ses éléments fils et ses pseudo-éléments continuent de générer des boîtes normalement. En termes de génération de boîtes et de disposition, l'élément doit être traité comme s'il avait été remplacé par ses éléments fils et ses pseudo-éléments dans l'arbre du document. »
-
La valeur de la propriété display contrôle la façon dont les boîtes sont générées et si un élément doit générer une boîte qui puisse être mise en forme et vue sur la page ou si la boîte normalement créée devrait être retirée afin que ses éléments fils soient « remontés » dans l'arbre et participent à la disposition dont l'élément (parent) aurait dû faire partie. Un exemple étant beaucoup plus efficace qu'un long discours, passons à la suite.
Dans l'exemple suivant on dispose d'un conteneur flexible avec trois éléments fils. L'un de ces éléments flexibles possède deux éléments à l'intérieur. Normalement, ces deux éléments ne participent pas à la disposition en boîtes flexibles, car cette disposition s'applique uniquement aux éléments fils directs du conteneur flexible.
- -En ajoutant display: contents à l'élément flexible qui contient deux éléments fils, on peut voir que l'élément disparaît de la disposition et permet à ses deux éléments fils d'agir comme des éléments flexibles. Vous pouvez essayer de retirer la ligne avec display: contents afin que l'élément parent « revienne ».
On notera que cela ne retire que la boîte de la disposition. Les éléments fils au deuxième niveau ne deviennent pas des éléments fils directs pour d'autres notions. On peut voir dans l'exemple qu'on utilise un sélecteur sur les éléments fils directs pour gérer l'arrière-plan et les bordures : ces styles n'ont pas été appliqués aux éléments fils de deuxième rang. Ces éléments ont été disposés comme des éléments flexibles, mais ils ne récupèrent pas la mise en forme des éléments fils directs.
- -Attention : Utiliser display: contents entraînera la suppression de l'élément dans l'arbre d'accessibilité et les lecteurs d'écran ne pourront pas en voir le contenu (comme si on avait utilisé display: none). La valeur contents doit uniquement être utilisée pour les éléments de présentation (et pas de contenu).
En retirant la boîte de l'élément parent, on ne peut pas utiliser cette boîte pour, par exemple, ajouter une couleur d'arrière-plan commune aux éléments fils imbriqués. Si on retire display: contents dans l'exemple, on peut voir que l'arrière-plan orange rattaché à l'élément disparaît avec la boîte.
{{EmbedGHLiveSample("css-examples/flexbox/relationship/display-contents.html", '100%', 650)}}
- -La prise en charge de display:contents est actuellement limitée parmi les différents navigateurs et cette fonctionnalité est nécessaire au bon fonctionnement de cette démonstration. Firefox prend en charge display: contents et la gestion de cette valeur est en cours d'implémentation dans Chrome. Lorsque cette fonctionnalité sera plus largement disponible, elle sera très utile lorsqu'on souhaitera utiliser une structure à des fins sémantiques mais sans, pour autant, afficher les boîtes générées par défaut.
Dans cet article, nous verrons comment les boîtes flexibles interagissent avec les autres modules CSS. Nous verrons quelles sont les spécifications qui décrivent les boîtes flexibles et pourquoi les boîtes flexibles sont différentes des autres modules.
+ +Note : Dans les versions 1 et 2 de CSS, la spécification était « monolithique » et décrite dans un seul document. Évoluant vers un langage riche possédant de nombreuses fonctionnalité, la maintenance de cette spécification unique est devenue problématiques, certaines parties évoluant à différentes vitesses. La spécification CSS a donc été modularisée et ce sont ces différents modules qui constituent CSS aujourd'hui. Ces modules sont liés les uns aux autres et sont chacun à différents stades de développement.
+La plupart des personnes s'intéressent aux boîtes flexibles car elles permettent d'aligner efficacement des éléments flexibles au sein d'un conteneur. Les boîtes flexibles permettent d'utiliser des propriétés pour aligner les éléments sur l'axe secondaire et de les justifier sur l'axe principal.
+ +Ces propriétés sont apparues dans la spécification dédiée aux boîtes flexibles mais font désormais également partie de la spécification sur l'alignement des boîtes (Box Alignment). Cette spécification détaille la façon dont l'alignement fonctionne pour l'ensemble des dispositions (et pas uniquement pour les boîtes flexibles). L'alignement des boîtes permet de gérer l'alignement et la justification, ainsi que la distribution de l'espace le long d'un axe.
+ +Ces propriétés d'alignement sont actuellement détaillées dans les spécifications de flexbox et d'alignement des boîtes afin d'être sûr que la spécification des boîtes flexibles n'est pas bloquée par l'état de la spécification sur l'alignement des boîtes. Dans la spécification flexbox, une note indique que lorsque la spécification sur l'alignement des boîtes sera terminée, ces définitions remplaceront celles de la spécification sur les boîtes flexibles :
+ +++ +« Note : Bien que les propriétés d'alignement soient définies dans le module CSS Box Alignment CSS-ALIGN-3, le module Flexible Box Layout reproduit les définitions des propriétés qui sont ici pertinentes afin de ne pas créer de dépendance normative qui ralentirait l'avancement de la spécification. Ces propriétés s'appliquent uniquement à la disposition flexible jusqu'à ce que CSS Box Alignment Level 3 soit terminé et définisse leurs effets pour les autres modes de disposition. De plus, toute nouvelle valeur qui apparaîtra dans le module Box Alignment s'appliquera également à la disposition en boîtes flexibles. Autrement dit, le module Box Alignment, lorsqu'il sera complet, remplacera les définitions énoncées ici. »
+
Dans un prochain article de ce guide (Aligner les éléments d'un conteneur flexibles), nous verrons dans le détail comment les propriétés du module d'alignement des boîtes s'appliquent aux éléments flexibles.
+ +Récemment, les propriétés {{cssxref("row-gap")}} et {{cssxref("column-gap")}}, ainsi que la propriété raccourcie {{cssxref("gap")}} ont été ajoutées au module d'alignement des boîtes. Ces propriétés furent initialement définies dans la spécification de la grille CSS et étaient nommées grid-row-gap, grid-column-gap et grid-gap. Elles ont été renommées et déplacées dans le module d'alignement des boîtes afin de pouvoir être utilisées dans d'autres modes de disposition et, à terme, avec les boîtes flexibles. Avant la prise en charge des propriétés gap, c'était les propriétés {{cssxref("margin")}} qui étaient utilisées afin de créer des espaces entre les éléments.
Dans l'article sur les concepts de bases relatifs aux flexbox, nous avons vu que les boîtes flexibles prenaient en compte le mode d'écriture (la direction du texte). Les différents modes d'écritures sont décrits dans la spécification CSS Writing Modes qui détaille comment CSS prend en charge les différents modes d'écritures qui existent dans le monde. Cette spécification permet notamment de comprendre les directions de bloc et en ligne qui sont fondamentales pour les axes principal et secondaires des boîtes flexibles.
+ +On notera qu'il est possible de modifier le mode d'écriture d'un document pour d'autres raisons que des raisons linguistiques. Vous pouvez consulter cet article pour en savoir plus sur les différentes façons d'utiliser les modes d'écriture, que ce soit en fonction de la langue du contenu ou pour des raisons créatives.
+ +La spécification sur les modes d'écriture définit les différentes valeurs qui peuvent être utilisées avec la propriété {{cssxref("writing-mode")}}. Cette propriété permet de modifier la direction de la disposition des blocs sur la page pour correspondre à l'orientation d'un mode d'écriture donné. Vous pouvez manipuler l'exemple qui suit en utilisant les valeurs suivantes pour voir l'impact que cela a sur la disposition flexible :
+ +horizontal-tbvertical-rlvertical-lrsideways-rlsideways-lr{{EmbedGHLiveSample("css-examples/flexbox/relationship/writing-modes.html", '100%', 360)}}
+ +Actuellement, seul Firefox prend en charge sideways-rl et sideways-lr. Il existe également certains problèmes relatifs à writing-mode et aux boîtes flexibles. Pour plus d'informations, vous pouvez consulter les informations de compatibilité pour la propriété writing-mode. Toutefois, si vous souhaitez utiliser les modes d'écritures pour votre site/application, il est fortement conseillé de tester les résultats obtenus, ne serait-ce que parce que cela peut fortement nuire à la lisibilité !
On notera que la propriété writing-mode CSS ne doit pas être utilisée pour modifier le mode d'écriture d'un document entier. Cela doit être fait avec HTML en ajoutant un attribut dir et lang sur l'élément html afin d'indiquer la direction du texte par défaut et la langue du document. Ainsi, le document serait correctement affiché, même si le CSS n'était pas chargé.
La spécification sur les boîtes flexibles contient une définition de ce qui se produit lorsqu'un élément utilisant une autre méthode de disposition devient un élément flexible (par exemple : un élément est positionné de façon flottante et son élément parent devient un conteneur flexible). Elle décrit également comment un conteneur flexible s'inscrit dans une disposition.
+ +Un élément avec display: flex se comportera majoritairement comme un conteneur de bloc qui établit un bloc englobant. Les éléments flottants ne rentreront pas dans ce conteneur et les marges des conteneurs ne fusionneront pas.
Pour un élément flexible, si celui-ci était avant un élément flottant ou dégagé (cleared) et qu'il devient flexible car son élément parent reçoit display: flex, le flottement et le dégagement ne s'appliquent plus. L'élément ne sera pas retiré du flux normal (ce qui aurait lieu avec un flottement). Si on a utilisé la propriété {{cssxref("vertical-align")}} avec inline-block ou si on a utilisé une disposition tabulaire, cela n'aura plus d'effet et on pourra utiliser les propriétés d'alignement des boîtes flexibles à la place.
Dans le prochain exemple, on applique un flottement sur les éléments fils puis leur conteneur reçoit display: flex. Si vous retirez display: flex, vous pouvez voir que l'élément .box s'écrase car aucun dégagement n'est appliqué. Cela permet de voir que le flottement s'applique. En remettant display: flex, l'élément ne s'écrase plus car les éléments fils sont devenus des éléments flexibles.
{{EmbedGHLiveSample("css-examples/flexbox/relationship/floats.html", '100%', 430)}}
+ +La disposition en grille (CSS Grid) et les boîtes flexibles agissent de la même façon lorsqu'elles surchargent les autres méthodes de disposition. Les boîtes flexibles pourront être utilisées comme solution de repli si les grilles CSS ne sont pas prises en charge. En effet, les boîtes flexibles bénéficient d'une meilleure prise en charge pour les navigateurs moins récents. Cette approche fonctionne sans problème car, si un élément flexible devient un élément d'une grille, les propriétés flex qui auraient pu être affectées aux éléments enfants seront ignorées.
Les propriétés du module d'alignement des boîtes peuvent être utilisées pour ces deux modes de dispositions.
+ +On demande souvent quelle est la différence entre la disposition avec les boîtes flexibles et la disposition avec la grille CSS. Pourquoi avoir deux spécifications quand celles-ci semblent avoir le même effet ?
+ +La réponse la plus directe se trouve dans ces deux spécifications. Les boîtes flexibles sont une méthode de disposition unidimensionnelle alors que la grille CSS est une méthode de disposition bidimensionnelle. Dans l'exemple ci-après, on utilise une disposition avec les boîtes flexibles. Comme nous avons vu dans l'article sur les concepts de base, les éléments flexibles peuvent « passer à la ligne » mais chaque ligne forme alors un conteneur flexible indépendant. On voit ici que l'espace est distribué sans prendre en compte le placement des éléments sur les autres lignes/colonnes, il n'y a pas d'alignement.
+ +{{EmbedGHLiveSample("css-examples/flexbox/relationship/flex-layout.html", '100%', 750)}}
+ +Si on crée une disposition semblable avec une grille, on peut à la fois contrôler la disposition des lignes et des colonnes.
+ +{{EmbedGHLiveSample("css-examples/flexbox/relationship/grid-layout.html", '100%', 700)}}
+ +Ces exemples illustrent une autre différence majeure entre ces méthodes. Avec la disposition en grille, la majeure partie du dimensionnement s'applique au conteneur (on y définit les pistes et on place les éléments sur ces pistes). Avec la disposition utilisant les boîtes flexibles, on crée un conteneur flexible et on indique sa direction, tout le reste est géré au niveau des éléments.
+ +Dans certains cas, les deux méthodes peuvent fonctionner sans problème. En les utilisant plus fréquemment, vous pourrez voir qu'elles répondent à des besoins différents et vous utiliserez sans doute ces deux méthodes dans votre CSS. Comme souvent, il n'y a pas de solution miracle et de « bonne » ou de « mauvaise » réponse.
+ +De façon générale, si vous ajoutez des marges autour d'éléments flexibles afin que ceux-ci soient alignés, vous devriez utiliser une méthode de disposition bidimensionnelle comme la grille CSS qui vous permettra de mieux organiser votre contenu. La taille du composant à mettre en forme n'a pas d'importance, on n'utilisera pas plus les boîtes flexibles pour un « petit » composant et la grille pour un « grand ». Essayez les différentes méthodes, profitez de la liberté de choix qui existe désormais avec ces outils.
+ +Pour approfondir cette comparaison entre la grille et les boîtes flexibles, vous pouvez consulter cet article à propos des relations entre la grille CSS et les autres méthodes de disposition. Cet article détaille les nombreuses différences entre la grille CSS et les boîtes flexibles ; il illustre aussi les fonctionnalités supplémentaires provenant de la grille. Cet article pourra vous aider à choisir la méthode de disposition à privilégier.
+ +display: contentsLa valeur contents de la propriété {{cssxref("display")}} est une nouvelle valeur, décrite ainsi dans la spécification :
++ +« L'élément ne génère aucune boîte de lui-même mais ses éléments fils et ses pseudo-éléments continuent de générer des boîtes normalement. En termes de génération de boîtes et de disposition, l'élément doit être traité comme s'il avait été remplacé par ses éléments fils et ses pseudo-éléments dans l'arbre du document. »
+
La valeur de la propriété display contrôle la façon dont les boîtes sont générées et si un élément doit générer une boîte qui puisse être mise en forme et vue sur la page ou si la boîte normalement créée devrait être retirée afin que ses éléments fils soient « remontés » dans l'arbre et participent à la disposition dont l'élément (parent) aurait dû faire partie. Un exemple étant beaucoup plus efficace qu'un long discours, passons à la suite.
Dans l'exemple suivant on dispose d'un conteneur flexible avec trois éléments fils. L'un de ces éléments flexibles possède deux éléments à l'intérieur. Normalement, ces deux éléments ne participent pas à la disposition en boîtes flexibles, car cette disposition s'applique uniquement aux éléments fils directs du conteneur flexible.
+ +En ajoutant display: contents à l'élément flexible qui contient deux éléments fils, on peut voir que l'élément disparaît de la disposition et permet à ses deux éléments fils d'agir comme des éléments flexibles. Vous pouvez essayer de retirer la ligne avec display: contents afin que l'élément parent « revienne ».
On notera que cela ne retire que la boîte de la disposition. Les éléments fils au deuxième niveau ne deviennent pas des éléments fils directs pour d'autres notions. On peut voir dans l'exemple qu'on utilise un sélecteur sur les éléments fils directs pour gérer l'arrière-plan et les bordures : ces styles n'ont pas été appliqués aux éléments fils de deuxième rang. Ces éléments ont été disposés comme des éléments flexibles, mais ils ne récupèrent pas la mise en forme des éléments fils directs.
+ +Attention : Utiliser display: contents entraînera la suppression de l'élément dans l'arbre d'accessibilité et les lecteurs d'écran ne pourront pas en voir le contenu (comme si on avait utilisé display: none). La valeur contents doit uniquement être utilisée pour les éléments de présentation (et pas de contenu).
En retirant la boîte de l'élément parent, on ne peut pas utiliser cette boîte pour, par exemple, ajouter une couleur d'arrière-plan commune aux éléments fils imbriqués. Si on retire display: contents dans l'exemple, on peut voir que l'arrière-plan orange rattaché à l'élément disparaît avec la boîte.
{{EmbedGHLiveSample("css-examples/flexbox/relationship/display-contents.html", '100%', 650)}}
+ +La prise en charge de display:contents est actuellement limitée parmi les différents navigateurs et cette fonctionnalité est nécessaire au bon fonctionnement de cette démonstration. Firefox prend en charge display: contents et la gestion de cette valeur est en cours d'implémentation dans Chrome. Lorsque cette fonctionnalité sera plus largement disponible, elle sera très utile lorsqu'on souhaitera utiliser une structure à des fins sémantiques mais sans, pour autant, afficher les boîtes générées par défaut.
{{CSSRef}}
- -Dans ce guide, nous verrons quels sont les cas d'utilisation classiques pour les boîtes flexibles et lorsque cette méthode est plus pertinente qu'une autre méthode de disposition.
- -Dans un monde où la compatibilité entre navigateurs serait un lointain souvenir, on pourrait choisir d'utiliser les boîtes flexibles lorsqu'on souhaite organiser un ensemble d'élément dans une direction ou dans une autre. Lorsqu'on place les éléments, on souhaite contrôler les dimensions de ces éléments dans cette direction ou contrôler l'espacement ainsi créé entre les éléments. C'est ce pourquoi les boîtes flexibles ont été conçues. Vous pouvez approfondir les différences entre les boîtes flexibles et la disposition en grille CSS avec l'article sur les relations entre flexbox et les autres méthodes de disposition où nous voyons comment s'inscrivent les boîtes flexibles dans le paysage de CSS.
- -Dans la réalité, on utilise souvent les boîtes flexibles pour créer des organisations qu'il serait plus pertinent de construire avec une disposition en grille et pour lesquelles les boîtes flexibles sont une méthode de recours et offrent une certaine capacité d'alignement. Sur ce deuxième aspect, cela pourra évoluer lorsque l'alignement des boîtes sera implémenté dans la disposition en bloc. Dans ce guide, nous verrons quels sont les cas classiques où on utilise les boîtes flexibles aujourd'hui.
- -Un motif souvent utilisé pour la navigation consiste à avoir une liste d'objets qui forment une barre horizontale. Ce motif, bien que simple, était plutôt compliqué à obtenir avant l'apparition des boîtes flexibles. C'est l'exemple le plus simple pour les boîtes flexibles et cela constitue un cas d'utilisation idéal.
- -Lorsqu'on a un ensemble d'objets qu'on souhaite organiser horizontalement, on peut avoir plus d'espace que nécessaire. Il faut décider comment utiliser cet espace : on peut afficher cet espace entre les éléments afin de les espacer ou bien agrandir les objets. Dans ce dernier cas, il nous faut une méthode pour permettre aux objets de grandir et d'occuper cet espace.
- -Pour répartir l'espace entre les éléments ou autour d'eux, on pourra utiliser les propriétés d'alignement des boîtes flexibles et la propriété {{cssxref("justify-content")}}. Vous pouvez approfondir cette propriété avec le guide Aligner des objets dans un conteneur flexible, qui décrit comment aligner des objets sur l'axe principal.
- -Dans l'exemple qui suit, on affiche les éléments en utilisant leur taille naturelle et on écrit justify-content: space-between afin de répartir l'espace équitablement entre chaque élément. Cette répartition de l'espace peut être modifiée en utilisant la valeur space-around ou, lorsqu'elle est prise en charge, la valeur space-evenly. On peut également utiliser flex-start afin de placer l'espace après les éléments ou encore flex-end pour placer l'espace avant les éléments voire center afin de centrer les éléments.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/navigation.html", '100%', 550)}}
- -On pourrait aussi répartir cet espace disponible afin d'agrandir les éléments plutôt que de les espacer. Dans ce cas, on utilisera les propriétés {{cssxref("flex")}} afin de permettre aux éléments de grandir/rétrécir proportionnellement les uns aux autres, comme nous avons pu le détailler dans Contrôler les proportions des éléments flexibles le long de l'axe principal.
- -Si on souhaite que tous les éléments de la barre aient la même largeur, on utilisera flex: auto qui correspond à la notation raccourcie de flex: 1 1 auto — tous les objets grandissent et rétrécissent de la même façon à partir d'une taille de base automatique. Cela signifie que le plus grand élément occupera plus d'espace.
Dans l'exemple qui suit, vous pouvez modifier flex: auto pour utiliser flex: 1 qui correspond à la notation raccourcie de flex: 1 1 0 et qui permet d'avoir la même largeur pour chaque élément, car la base (flex-basis) vaut 0 et permet de répartir l'intégralité de l'espace de façon équitable.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/navigation-flex.html", '100%', 550)}}
- -Une autre façon d'aligner les éléments le long de l'axe principal consiste à utiliser des marges automatiques. Cela permet d'obtenir une barre où une partie des éléments sont alignés à gauche alors qu'un second groupe est aligné à droite.
- -Dans l'exemple qui suit, on utilise la technique des marges automatiques détaillée dans Utiliser les marges automatiques pour l'alignement sur l'axe principal. Les éléments sont alignés le long de l'axe principal avec flex-start, ce qui correspond au comportement initial (par défaut) des boîtes flexibles, et on affecte une marge automatique à gauche pour les éléments qu'on souhaite aligner à droite. Dans le code de l'exemple, vous pouvez déplacer la classe pour l'appliquer sur un autre élément afin de voir comment la césure se déplace.
Dans cet exemple, on utilise également des marges sur les éléments flexibles afin de créer des gouttières entre les éléments ainsi qu'une marge négative sur le conteneur afin que les éléments aux extrémités soient bien alignés sur les bords gauche et droit. Tant que les propriétés gap de la spécification sur l'alignement des boîtes (Box Alignment) ne sont pas implémentées pour les boîtes flexibles, il nous faut utiliser les marges de cette façon si on souhaite créer une gouttière entre les éléments.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/split-navigation.html", '100%', 550)}}
- -Avant l'apparition des boîtes flexibles, une blague récurrente consistait à dire qu'un des défis majeur sur le Web était le centrage vertical des éléments. Disposant désormais des propriétés d'alignement pour les boîtes flexibles, surmonter ce défi est beaucoup plus accessible. Nous allons le voir dans l'exemple suivant.
- -Vous pouvez manipuler les propriétés d'alignement pour aligner les objets au début avec flex-start ou à la fin avec flex-end.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/center.html", '100%', 700)}}
- -À l'avenir, il ne sera peut-être plus nécessaire d'utiliser un conteneur flexible afin de centrer un seul élément, car les propriétés d'alignement des boîtes auront également été implémentées pour la disposition en bloc. Mais aujourd'hui, si on souhaite correctement centrer un objet dans un centre, il faut utiliser les boîtes flexibles. On procède comme dans l'exemple ci-avant : on modifie le conteneur afin que ce soit un conteneur flexible puis on utilise la propriété align-items sur l'élément parent ou bien on cible l'élément voulu avec align-self.
Qu'on utilise les boîtes flexibles ou les grilles CSS afin d'organiser une liste de cartes, ces méthodes fonctionnent uniquement sur les éléments fils directs du conteneur flexible ou du conteneur de grille. Cela signifie que si on dispose d'une quantité de contenu variable, la carte s'étirera sur toute la hauteur de la grille ou sur toute la hauteur du conteneur flexible. Tout le contenu à l'intérieur utilise une disposition en bloc classique qui signifie que le pied de page d'une carte avec moins de contenu sera plus haut que celui d'une carte disposant de plus de contenu pour lequel le pied est bien aligné en bas de la carte.
- -
On peut résoudre ce problème avec les boîtes flexibles. Pour commencer, on transforme la carte en conteneur flexible avec {{cssxref("flex-direction")}}: column. Ensuite, on affecte un coefficient flex: 1 à la zone du contenu (ce qui correspond à la notation raccourcie flex: 1 1 0) : l'élément pourra s'étirer ou se rétrécir avec une base 0. Comme c'est le seul élément de la carte qui peut grandir, il occupera tout l'espace encore disponible dans le conteneur flexible et poussera le pied en bas de carte. Dans l'exemple qui suit, si on retire la propriété flex, on peut voir le pied remonter pour être inscrit directement après le contenu.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/cards.html", '100%', 800)}}
- -Un objet média est un motif classique en design web. Dans ce motif, on a une image ou un autre média d'un côté et le texte associé à droite. Idéalement, on souhaite pouvoir inverser les deux composants et déplacer l'image à droite.
- -On peut voir ce motif utilisé avec les commentaires, les endroits où on affiche des images et leur description. Avec les boîtes flexibles, on peut dimensionner l'objet média en fonction des dimensions de l'image et occuper le reste de l'espace avec le contenu textuel.
- -Dans l'exemple suivant, on utilise les propriétés d'alignement des objets sur l'axe secondaire avec flex-start puis on définit .content avec flex: 1. Comme vu dans l'exemple précédent, flex: 1 signifie que cette partie de la carte peut grandir.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/media.html", '100%', 600)}}
- -Vous pouvez ici essayer d'appliquer les différentes contraintes relatives à votre conception.
- -Pour empêcher l'image de devenir trop large, on pourra ajouter la propriété {{cssxref("max-width")}} à l'image. Cette dimension de l'objet utilisant les valeurs initiales des propriétés flexibles, elle pourra rétrécir mais pas grandir et elle utilisera auto comme valeur pour flex-basis. Toute largeur {{cssxref("width")}} ou max-width appliquée à l'image sera utilisée comme mesure pour flex-basis.
.image img {
- max-width: 100px;
-}
-
-
-On peut également permettre aux deux côtés de grandir/rétrécir proportionnellement. Si on paramètre les deux côtés avec flex: 1, ils grandiront/rétréciront à partir d'une base {{cssxref("flex-basis")}} égale à 0 et on obtiendra alors deux colonnes de même taille. Si on souhaite plutôt utiliser la taille du contenu comme base, on pourra utiliser flex: auto et les deux côtés grandiront/rétréciront à partir de la taille de leur contenu ou de toute taille qui leur serait explicitement appliquée en CSS (par exemple une largeur sur l'image).
.media .content {
- flex: 1;
- padding: 10px;
-}
-
-.image {
- flex: 1;
-}
-
-On pourrait aussi utiliser différents coefficients {{cssxref("flex-grow")}} pour chaque côté. Utiliser flex: 1 pour le côté avec l'image et flex: 3 pour le côté avec la description signifierait qu'ils partiraient tous les deux avec une base flex-basis 0 et que l'espace serait distribué dans des proportions différentes correspondantes aux valeurs de flex-grow. Les propriétés flexibles que nous utilisons ici sont décrites en détail dans le guide Contrôler les proportions des éléments flexibles le long de l'axe principal.
.media .content {
- flex: 3;
- padding: 10px;
-}
-
-.image {
- flex: 1;
-}
-
-Si on souhaite échanger la position de l'image dans l'objet média pour l'afficher à droite avec le contenu textuel à gauche, on pourra utiliser la propriété flex-direction avec la valeur row-reverse. L'objet média est désormais affiché dans l'autre sens. Dans l'exemple, cela s'obtient grâce à l'ajout de la classe flipped (en plus de la classe existante .media). Vous pouvez donc annuler cet effet en retirant la classe dans le code HTML.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/media-flipped.html", '100%', 650)}}
- -Les boîtes flexibles s'avèrent particulièrement utiles losqu'on met en forme des contrôles de formulaires. Les formulaires sont généralement constitués de nombreux éléments qu'on souhaite aligner les uns avec les autres. Un motif fréquent se compose d'un élément {{htmlelement("input")}} associé à un élément {{htmlelement("button")}} (par exemple un formulaire de recherche ou un champ où on souhaite qu'un visiteur saisisse une adresse électronique).
- -Les boîtes flexibles facilitent la construction de tels motifs. Dans l'exemple suivant, on enveloppe l'élément <button> et l'élément <input> dans un conteneur auquel on ajoute une bordure et pour lequel on a display: flex. On utilise ensuite les propriétés flexibles afin de permettre à l'élément <input> de grandir et de conserver la même taille pour le bouton. On a donc une paire d'éléments pour laquelle la zone de saisie s'ajuste en fonction de l'espace disponible.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/input-button.html", '100%', 550)}}
- -On pourrait ajouter un libellé ou une icône à gauche aussi facilement qu'on a ajouté un bouton à droite. Dans la version suivante, on ajoute un libellé et d'autres règles de mise en forme pour l'arrière-plan. Il n'est pas nécessaire de modifier le reste de la disposition. Le champ de saisie adaptable possède désormais moins d'espace mais continue à consommer l'espace disponible après le placement des deux autres objets.
- -{{EmbedGHLiveSample("css-examples/flexbox/use-cases/label-input-button.html", '100%', 550)}}
- -De tels motifs facilitent la création d'une bibliothèque d'éléments de formulaires pour les différents documents d'un projet. On tire parti de la flexibilité des boîtes flexibles en mélangeant les éléments qui peuvent s'étendre et ceux qui restent à une taille constante.
- -En explorant les motifs de ce guide, nous avons vu certaines des meilleures façons d'utiliser les boîtes flexibles pour obtenir le résultat souhaité. La plupart du temps, plusieurs choix s'offrent à nous. Mélanger des éléments qui peuvent s'étirer avec d'autres qui ne le peuvent pas, utiliser la taille du contenu comme point de départ ou encore permettre aux boîtes flexibles de gérer tout l'espace.
- -Pensez à la meilleure façon de présenter le contenu dont vous disposez puis voyez comment les boîtes flexibles ou les autres méthodes de disposition peuvent vous aider à obtenir cette présentation.
diff --git a/files/fr/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.md b/files/fr/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.md new file mode 100644 index 0000000000..78a2dc9952 --- /dev/null +++ b/files/fr/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.md @@ -0,0 +1,141 @@ +--- +title: Cas d'utilisation classiques de flexbox +slug: Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +tags: + - CSS + - Guide + - Intermediate + - flexbox +translation_of: Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +original_slug: Web/CSS/CSS_Flexible_Box_Layout/Cas_utilisation_flexbox +--- +{{CSSRef}}
+ +Dans ce guide, nous verrons quels sont les cas d'utilisation classiques pour les boîtes flexibles et lorsque cette méthode est plus pertinente qu'une autre méthode de disposition.
+ +Dans un monde où la compatibilité entre navigateurs serait un lointain souvenir, on pourrait choisir d'utiliser les boîtes flexibles lorsqu'on souhaite organiser un ensemble d'élément dans une direction ou dans une autre. Lorsqu'on place les éléments, on souhaite contrôler les dimensions de ces éléments dans cette direction ou contrôler l'espacement ainsi créé entre les éléments. C'est ce pourquoi les boîtes flexibles ont été conçues. Vous pouvez approfondir les différences entre les boîtes flexibles et la disposition en grille CSS avec l'article sur les relations entre flexbox et les autres méthodes de disposition où nous voyons comment s'inscrivent les boîtes flexibles dans le paysage de CSS.
+ +Dans la réalité, on utilise souvent les boîtes flexibles pour créer des organisations qu'il serait plus pertinent de construire avec une disposition en grille et pour lesquelles les boîtes flexibles sont une méthode de recours et offrent une certaine capacité d'alignement. Sur ce deuxième aspect, cela pourra évoluer lorsque l'alignement des boîtes sera implémenté dans la disposition en bloc. Dans ce guide, nous verrons quels sont les cas classiques où on utilise les boîtes flexibles aujourd'hui.
+ +Un motif souvent utilisé pour la navigation consiste à avoir une liste d'objets qui forment une barre horizontale. Ce motif, bien que simple, était plutôt compliqué à obtenir avant l'apparition des boîtes flexibles. C'est l'exemple le plus simple pour les boîtes flexibles et cela constitue un cas d'utilisation idéal.
+ +Lorsqu'on a un ensemble d'objets qu'on souhaite organiser horizontalement, on peut avoir plus d'espace que nécessaire. Il faut décider comment utiliser cet espace : on peut afficher cet espace entre les éléments afin de les espacer ou bien agrandir les objets. Dans ce dernier cas, il nous faut une méthode pour permettre aux objets de grandir et d'occuper cet espace.
+ +Pour répartir l'espace entre les éléments ou autour d'eux, on pourra utiliser les propriétés d'alignement des boîtes flexibles et la propriété {{cssxref("justify-content")}}. Vous pouvez approfondir cette propriété avec le guide Aligner des objets dans un conteneur flexible, qui décrit comment aligner des objets sur l'axe principal.
+ +Dans l'exemple qui suit, on affiche les éléments en utilisant leur taille naturelle et on écrit justify-content: space-between afin de répartir l'espace équitablement entre chaque élément. Cette répartition de l'espace peut être modifiée en utilisant la valeur space-around ou, lorsqu'elle est prise en charge, la valeur space-evenly. On peut également utiliser flex-start afin de placer l'espace après les éléments ou encore flex-end pour placer l'espace avant les éléments voire center afin de centrer les éléments.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/navigation.html", '100%', 550)}}
+ +On pourrait aussi répartir cet espace disponible afin d'agrandir les éléments plutôt que de les espacer. Dans ce cas, on utilisera les propriétés {{cssxref("flex")}} afin de permettre aux éléments de grandir/rétrécir proportionnellement les uns aux autres, comme nous avons pu le détailler dans Contrôler les proportions des éléments flexibles le long de l'axe principal.
+ +Si on souhaite que tous les éléments de la barre aient la même largeur, on utilisera flex: auto qui correspond à la notation raccourcie de flex: 1 1 auto — tous les objets grandissent et rétrécissent de la même façon à partir d'une taille de base automatique. Cela signifie que le plus grand élément occupera plus d'espace.
Dans l'exemple qui suit, vous pouvez modifier flex: auto pour utiliser flex: 1 qui correspond à la notation raccourcie de flex: 1 1 0 et qui permet d'avoir la même largeur pour chaque élément, car la base (flex-basis) vaut 0 et permet de répartir l'intégralité de l'espace de façon équitable.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/navigation-flex.html", '100%', 550)}}
+ +Une autre façon d'aligner les éléments le long de l'axe principal consiste à utiliser des marges automatiques. Cela permet d'obtenir une barre où une partie des éléments sont alignés à gauche alors qu'un second groupe est aligné à droite.
+ +Dans l'exemple qui suit, on utilise la technique des marges automatiques détaillée dans Utiliser les marges automatiques pour l'alignement sur l'axe principal. Les éléments sont alignés le long de l'axe principal avec flex-start, ce qui correspond au comportement initial (par défaut) des boîtes flexibles, et on affecte une marge automatique à gauche pour les éléments qu'on souhaite aligner à droite. Dans le code de l'exemple, vous pouvez déplacer la classe pour l'appliquer sur un autre élément afin de voir comment la césure se déplace.
Dans cet exemple, on utilise également des marges sur les éléments flexibles afin de créer des gouttières entre les éléments ainsi qu'une marge négative sur le conteneur afin que les éléments aux extrémités soient bien alignés sur les bords gauche et droit. Tant que les propriétés gap de la spécification sur l'alignement des boîtes (Box Alignment) ne sont pas implémentées pour les boîtes flexibles, il nous faut utiliser les marges de cette façon si on souhaite créer une gouttière entre les éléments.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/split-navigation.html", '100%', 550)}}
+ +Avant l'apparition des boîtes flexibles, une blague récurrente consistait à dire qu'un des défis majeur sur le Web était le centrage vertical des éléments. Disposant désormais des propriétés d'alignement pour les boîtes flexibles, surmonter ce défi est beaucoup plus accessible. Nous allons le voir dans l'exemple suivant.
+ +Vous pouvez manipuler les propriétés d'alignement pour aligner les objets au début avec flex-start ou à la fin avec flex-end.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/center.html", '100%', 700)}}
+ +À l'avenir, il ne sera peut-être plus nécessaire d'utiliser un conteneur flexible afin de centrer un seul élément, car les propriétés d'alignement des boîtes auront également été implémentées pour la disposition en bloc. Mais aujourd'hui, si on souhaite correctement centrer un objet dans un centre, il faut utiliser les boîtes flexibles. On procède comme dans l'exemple ci-avant : on modifie le conteneur afin que ce soit un conteneur flexible puis on utilise la propriété align-items sur l'élément parent ou bien on cible l'élément voulu avec align-self.
Qu'on utilise les boîtes flexibles ou les grilles CSS afin d'organiser une liste de cartes, ces méthodes fonctionnent uniquement sur les éléments fils directs du conteneur flexible ou du conteneur de grille. Cela signifie que si on dispose d'une quantité de contenu variable, la carte s'étirera sur toute la hauteur de la grille ou sur toute la hauteur du conteneur flexible. Tout le contenu à l'intérieur utilise une disposition en bloc classique qui signifie que le pied de page d'une carte avec moins de contenu sera plus haut que celui d'une carte disposant de plus de contenu pour lequel le pied est bien aligné en bas de la carte.
+ +
On peut résoudre ce problème avec les boîtes flexibles. Pour commencer, on transforme la carte en conteneur flexible avec {{cssxref("flex-direction")}}: column. Ensuite, on affecte un coefficient flex: 1 à la zone du contenu (ce qui correspond à la notation raccourcie flex: 1 1 0) : l'élément pourra s'étirer ou se rétrécir avec une base 0. Comme c'est le seul élément de la carte qui peut grandir, il occupera tout l'espace encore disponible dans le conteneur flexible et poussera le pied en bas de carte. Dans l'exemple qui suit, si on retire la propriété flex, on peut voir le pied remonter pour être inscrit directement après le contenu.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/cards.html", '100%', 800)}}
+ +Un objet média est un motif classique en design web. Dans ce motif, on a une image ou un autre média d'un côté et le texte associé à droite. Idéalement, on souhaite pouvoir inverser les deux composants et déplacer l'image à droite.
+ +On peut voir ce motif utilisé avec les commentaires, les endroits où on affiche des images et leur description. Avec les boîtes flexibles, on peut dimensionner l'objet média en fonction des dimensions de l'image et occuper le reste de l'espace avec le contenu textuel.
+ +Dans l'exemple suivant, on utilise les propriétés d'alignement des objets sur l'axe secondaire avec flex-start puis on définit .content avec flex: 1. Comme vu dans l'exemple précédent, flex: 1 signifie que cette partie de la carte peut grandir.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/media.html", '100%', 600)}}
+ +Vous pouvez ici essayer d'appliquer les différentes contraintes relatives à votre conception.
+ +Pour empêcher l'image de devenir trop large, on pourra ajouter la propriété {{cssxref("max-width")}} à l'image. Cette dimension de l'objet utilisant les valeurs initiales des propriétés flexibles, elle pourra rétrécir mais pas grandir et elle utilisera auto comme valeur pour flex-basis. Toute largeur {{cssxref("width")}} ou max-width appliquée à l'image sera utilisée comme mesure pour flex-basis.
.image img {
+ max-width: 100px;
+}
+
+
+On peut également permettre aux deux côtés de grandir/rétrécir proportionnellement. Si on paramètre les deux côtés avec flex: 1, ils grandiront/rétréciront à partir d'une base {{cssxref("flex-basis")}} égale à 0 et on obtiendra alors deux colonnes de même taille. Si on souhaite plutôt utiliser la taille du contenu comme base, on pourra utiliser flex: auto et les deux côtés grandiront/rétréciront à partir de la taille de leur contenu ou de toute taille qui leur serait explicitement appliquée en CSS (par exemple une largeur sur l'image).
.media .content {
+ flex: 1;
+ padding: 10px;
+}
+
+.image {
+ flex: 1;
+}
+
+On pourrait aussi utiliser différents coefficients {{cssxref("flex-grow")}} pour chaque côté. Utiliser flex: 1 pour le côté avec l'image et flex: 3 pour le côté avec la description signifierait qu'ils partiraient tous les deux avec une base flex-basis 0 et que l'espace serait distribué dans des proportions différentes correspondantes aux valeurs de flex-grow. Les propriétés flexibles que nous utilisons ici sont décrites en détail dans le guide Contrôler les proportions des éléments flexibles le long de l'axe principal.
.media .content {
+ flex: 3;
+ padding: 10px;
+}
+
+.image {
+ flex: 1;
+}
+
+Si on souhaite échanger la position de l'image dans l'objet média pour l'afficher à droite avec le contenu textuel à gauche, on pourra utiliser la propriété flex-direction avec la valeur row-reverse. L'objet média est désormais affiché dans l'autre sens. Dans l'exemple, cela s'obtient grâce à l'ajout de la classe flipped (en plus de la classe existante .media). Vous pouvez donc annuler cet effet en retirant la classe dans le code HTML.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/media-flipped.html", '100%', 650)}}
+ +Les boîtes flexibles s'avèrent particulièrement utiles losqu'on met en forme des contrôles de formulaires. Les formulaires sont généralement constitués de nombreux éléments qu'on souhaite aligner les uns avec les autres. Un motif fréquent se compose d'un élément {{htmlelement("input")}} associé à un élément {{htmlelement("button")}} (par exemple un formulaire de recherche ou un champ où on souhaite qu'un visiteur saisisse une adresse électronique).
+ +Les boîtes flexibles facilitent la construction de tels motifs. Dans l'exemple suivant, on enveloppe l'élément <button> et l'élément <input> dans un conteneur auquel on ajoute une bordure et pour lequel on a display: flex. On utilise ensuite les propriétés flexibles afin de permettre à l'élément <input> de grandir et de conserver la même taille pour le bouton. On a donc une paire d'éléments pour laquelle la zone de saisie s'ajuste en fonction de l'espace disponible.
{{EmbedGHLiveSample("css-examples/flexbox/use-cases/input-button.html", '100%', 550)}}
+ +On pourrait ajouter un libellé ou une icône à gauche aussi facilement qu'on a ajouté un bouton à droite. Dans la version suivante, on ajoute un libellé et d'autres règles de mise en forme pour l'arrière-plan. Il n'est pas nécessaire de modifier le reste de la disposition. Le champ de saisie adaptable possède désormais moins d'espace mais continue à consommer l'espace disponible après le placement des deux autres objets.
+ +{{EmbedGHLiveSample("css-examples/flexbox/use-cases/label-input-button.html", '100%', 550)}}
+ +De tels motifs facilitent la création d'une bibliothèque d'éléments de formulaires pour les différents documents d'un projet. On tire parti de la flexibilité des boîtes flexibles en mélangeant les éléments qui peuvent s'étendre et ceux qui restent à une taille constante.
+ +En explorant les motifs de ce guide, nous avons vu certaines des meilleures façons d'utiliser les boîtes flexibles pour obtenir le résultat souhaité. La plupart du temps, plusieurs choix s'offrent à nous. Mélanger des éléments qui peuvent s'étirer avec d'autres qui ne le peuvent pas, utiliser la taille du contenu comme point de départ ou encore permettre aux boîtes flexibles de gérer tout l'espace.
+ +Pensez à la meilleure façon de présenter le contenu dont vous disposez puis voyez comment les boîtes flexibles ou les autres méthodes de disposition peuvent vous aider à obtenir cette présentation.
diff --git a/files/fr/web/css/css_flow_layout/block_and_inline_layout_in_normal_flow/index.html b/files/fr/web/css/css_flow_layout/block_and_inline_layout_in_normal_flow/index.html deleted file mode 100644 index f4e278deeb..0000000000 --- a/files/fr/web/css/css_flow_layout/block_and_inline_layout_in_normal_flow/index.html +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: Disposition de bloc et en ligne avec le flux normal -slug: Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow -tags: - - CSS - - Guide - - Intermédiaire -translation_of: Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow -original_slug: Web/CSS/CSS_Flow_Layout/Disposition_de_bloc_en_ligne_avec_flux_normal ---- -Dans ce guide, nous verrons le comportement des éléments de bloc et des éléments en ligne lorsqu'ils sont placés dans le flux normal.
- -Le flux normal est défini par la spécification CSS 2.1 qui explique comment les boîtes du flux normal s'inscrivent dans le contexte de formatage. Les boîtes peuvent être de bloc (block) ou en ligne (inline) mais pas les deux à la fois. Les boîtes de bloc contribuent au contexte de formatage des blocs et les boîtes en ligne contribuent au contexte de formatage en ligne.
- -Le comportement des éléments qui ont un contexte de formatage de bloc ou en ligne est également défini dans cette spécification. Pour les éléments avec un contexte de formatage de bloc, voici ce qui est indiqué dans la spécification :
- --- -« Dans un contexte de formatage de bloc, les boîtes sont disposées l'une après l'autre, verticalement, en démarrant en haut du bloc englobant. La distance verticale entre deux boîtes voisines est déterminée par les propriétés relatives aux marges. Les marges verticales fusionnent pour deux boîtes de bloc voisines au sein d'un contexte de formatage de bloc.
-
-
- Dans un contexte de formatage de bloc, chaque bord gauche de chaque boîte touche le bord gauche du bloc englobant (pour les documents écrits de droite à gauche, ce sont les bords droits qui coïncident). » - 9.4.1
Quant aux éléments du contexte de formatage en ligne :
- --- -« Dans un contexte de formatage en ligne, les boîtes sont disposées horizontalement les unes après les autres, en démarrant en haut du bloc englobant. Les marges, bordures, espaces de remplissage (padding) entre ces boîtes sont respectées. L'alignement vertical des boîtes peut varier (alignement du bas et du haut ou alignement des lignes de base du texte). La zone rectangulaire contenant les boîtes qui forment une ligne est appelée une "boîte de ligne". » - 9.4.2
-
On notera que la spécification CSS 2.1 décrit des documents dont le mode d'écriture est horizontal, allant de haut en bas. C'est notamment le cas avec la description de la distance verticale entre les boîtes de bloc. Le comportement des éléments de bloc et en ligne est donc le même lorsqu'on a un mode d'écriture vertical. Nous verrons cela dans un article suivant.
- -Les éléments de bloc organisés avec un mode d'écriture horizontal (un document en français par exemple) sont disposés verticalement les uns au dessus des autres.
- -
Avec un mode d'écriture vertical, les boîtes seraient organisées horizontalement.
- -
Dans la suite de ce guide, nous prendrons l'hypothèse d'un mode d'écriture horizontal. Toutefois, tout ce qui est décrit fonctionne de la même façon pour un mode d'écriture vertical.
- -Comme indiqué dans la spécification, les marges entre deux boîtes de bloc permettent de créer une séparation entre les éléments. On peut voir ceci dans un exemple simple avec deux paragraphes auxquels on ajoute une bordure. La feuille de style par défaut du navigateur ajoute un espace entre les paragraphes en ajoutant une marge en haut et en bas.
- -{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow.html", '100%', 700)}}
- -Si on définit explicitement des marges nulles sur les paragraphes, les bordures se toucheront.
- -{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow-margin-zero.html", '100%', 700)}}
- -Par défaut, les éléments de bloc consomment tout l'espace disponible sur l'axe en ligne. Ainsi, les paragraphes « s'étalent » horizontalement autant qu'ils le peuvent au sein du bloc englobant. Si on fixait leur longueur afin que deux paragraphes puissent tenir horizontalement, ils seraient tout de même l'un au dessus de l'autre. Chaque boîte de bloc commencera au début de l'axe de bloc du bloc englobant.
- -{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow-width.html", '100%', 700)}}
- -La spécification indique que les marges verticales entre chaque éléments de bloc fusionnent. Cela signifie que si un élément avec une marge en haut suit directement un élément avec une marge en bas, plutôt que la marge résultante soit la somme des deux marges, on aura une fusion des marges et ce sera uniquement la plus grande des marges qui sera appliquée.
- -Dans l'exemple suivant, les paragraphes ont une marge en haut qui mesure 20 pixels et une marge en bas qui mesure 40 pixels. La taille de la marge entre les deux paragraphes est donc de 40px car la plus petite est « fusionnée » avec la plus grande.
{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow-collapsing.html", '100%', 500)}}
- -Pour en savoir plus à propos de la fusion des marges, vous pouvez lire l'article dédié à la fusion des marges.
- -Note : Si vous n'êtes pas certain⋅e que la fusion des marges a lieu, vous pouvez utiliser les outils de développement de votre navigateur afin de voir la valeur réellement utilisée pour les marges.
- -
Les éléments en ligne sont affichés les uns à la suite des autres selon la direction avec laquelle les phrases sont écrites pour ce mode d'écriture. Ces boîtes en ligne se suivent les unes après les autres. S'il n'y a pas suffisamment d'espace dans la boîte englobante, une boîte en ligne pourra être scindée pour passer à la ligne. Les lignes ainsi créées sont appelées des boîtes de ligne. Comme la plupart des objets en CSS, les éléments en ligne disposent bien d'une boîte (qu'on oublie parfois).
- -Dans l'exemple suivant on a trois boîtes en ligne créées par un paragraphe avec un élément {{HTMLElement("strong")}} à l'intérieur.
- -{{EmbedGHLiveSample("css-examples/flow/block-inline/inline.html", '100%', 500)}}
- -Les boîtes autour des mots, avant et après l'élément {{HTMLElement("<strong>")}} sont qualifiées de boîtes anonymes. Ce sont des boîtes qui permettent que tout soit contenu dans une boîte mais on ne peut pas cibler ces boîtes spécifiquement.
- -La taille de la boîte de la ligne sur l'axe orthogonal à l'axe de lecture est définie avec la taille de la plus grande boîte qu'elle contient. Dans l'exemple suivant, on a un élément {{HTMLElement("<strong>")}} qui a une taille de 300% et c'est donc son contenu qui détermine la hauteur de la boîte de ligne pour cette ligne.
- -{{EmbedGHLiveSample("css-examples/flow/block-inline/line-box.html", '100%', 500)}}
- -Pour en savoir plus sur le comportement des boîtes en ligne et des boîtes de bloc, vous pouvez consulter le guide sur le modèle de formatage visuel.
- -display et la disposition de fluxEn plus des règles existantes en CSS 2.1, les spécifications CSS ultérieures décrivent plus en détail le comportement des boîtes en ligne et des boîtes en bloc. La propriété display définit la façon dont une boîte, et celles qu'elle contient, se comporte. Avec la spécification CSS Display Model Level 3, on en apprend plus sur la façon dont la propriété display modifie comportement des boîtes et des boîtes qu'elles génèrent.
Le type d'affichage d'un élément définit deux choses :
- -Dans l'exemple suivant, on a un élément {{HTMLElement("div")}} sur lequel on a appliqué display: flex. Le conteneur flexible se comporte comme un élément de bloc : il s'affiche sur une nouvelle ligne et occupe tout l'espace du bloc englobant dans l'axe en ligne. Aussi, le type d'affichage extérieur vaut block.
Les objets flexibles, à l'intérieur, contribuent à un contexte de formatage flexible car leur élément parent a display: flex. Aussi, le type d'affichage intérieur vaut flex et un nouveau contexte de formatage flexible est mis en place pour les éléments enfants.
{{EmbedGHLiveSample("css-examples/flow/block-inline/flex.html", '100%', 500)}}
- -On peut envisager chaque boîte CSS sous cet angle. La boîte possède un type d'affichage extérieur et sait ainsi comment se comporter avec les boîtes qui l'entourent. Ensuite, la boîte possède un type d'affichage intérieur qui permet d'organiser les éléments qu'elle contient. Ces éléments, à leur tour, disposent d'un type d'affichage extérieur et d'un type d'affichage intérieur. Dans l'exemple précédent, les objets flexibles ont des boîtes flexibles. Le type d'affichage extérieur est dicté par le contexte de formatage flexible. En revanche, leur type d'affichage intérieur est flow et leurs éléments enfants participeront à un flux normal. Les éléments enfants s'organiseront comme des éléments en ligne ou de bloc sauf si leur type d'affichage est explicitement modifié.
Le concept de type d'affichage extérieur et intérieur est important car il nous indique qu'un conteneur utilisant Flexbox (display: flex) ou les grilles CSS (display: grid) continue de participer à une disposition bloc/en ligne du fait du type d'affichage extérieur qui est block.
Les navigateurs affichent les éléments en bloc ou ligne selon ce qui est pertinent pour chaque élément. Ainsi, l'élément {{HTMLElement("strong")}}, utilisé pour mettre en avant un mot (souvent alors affiché en gras), ne crée pas de nouvelle ligne pour afficher son contenu : ce n'est pas un élément de bloc mais un élément en ligne.
- -Si on souhaitait afficher tous les éléments {{HTMLElement("strong")}} comme des éléments de bloc, il suffirait d'ajouter la règle display: block en ciblant les éléments <strong>. Cela signifie qu'on peut toujours écrire un code HTML qui soit le plus sémantique possible pour le contenu puis modifier la façon dont le document est affiché grâce à CSS.
{{EmbedGHLiveSample("css-examples/flow/block-inline/change-formatting.html", '100%', 500)}}
- -Dans ce guide, nous avons vu comment les éléments étaient affichés dans le flux normal, comme éléments de bloc ou comme éléments en ligne. Les éléments HTML s'afficheront par défaut de façon lisible sans CSS. En comprenant comment fonctionne le flux normal, vous comprendrez comment apporter les modifications nécessaires pour parvenir à la disposition désirée.
- -Dans ce guide, nous verrons le comportement des éléments de bloc et des éléments en ligne lorsqu'ils sont placés dans le flux normal.
+ +Le flux normal est défini par la spécification CSS 2.1 qui explique comment les boîtes du flux normal s'inscrivent dans le contexte de formatage. Les boîtes peuvent être de bloc (block) ou en ligne (inline) mais pas les deux à la fois. Les boîtes de bloc contribuent au contexte de formatage des blocs et les boîtes en ligne contribuent au contexte de formatage en ligne.
+ +Le comportement des éléments qui ont un contexte de formatage de bloc ou en ligne est également défini dans cette spécification. Pour les éléments avec un contexte de formatage de bloc, voici ce qui est indiqué dans la spécification :
+ +++ +« Dans un contexte de formatage de bloc, les boîtes sont disposées l'une après l'autre, verticalement, en démarrant en haut du bloc englobant. La distance verticale entre deux boîtes voisines est déterminée par les propriétés relatives aux marges. Les marges verticales fusionnent pour deux boîtes de bloc voisines au sein d'un contexte de formatage de bloc.
+
+
+ Dans un contexte de formatage de bloc, chaque bord gauche de chaque boîte touche le bord gauche du bloc englobant (pour les documents écrits de droite à gauche, ce sont les bords droits qui coïncident). » - 9.4.1
Quant aux éléments du contexte de formatage en ligne :
+ +++ +« Dans un contexte de formatage en ligne, les boîtes sont disposées horizontalement les unes après les autres, en démarrant en haut du bloc englobant. Les marges, bordures, espaces de remplissage (padding) entre ces boîtes sont respectées. L'alignement vertical des boîtes peut varier (alignement du bas et du haut ou alignement des lignes de base du texte). La zone rectangulaire contenant les boîtes qui forment une ligne est appelée une "boîte de ligne". » - 9.4.2
+
On notera que la spécification CSS 2.1 décrit des documents dont le mode d'écriture est horizontal, allant de haut en bas. C'est notamment le cas avec la description de la distance verticale entre les boîtes de bloc. Le comportement des éléments de bloc et en ligne est donc le même lorsqu'on a un mode d'écriture vertical. Nous verrons cela dans un article suivant.
+ +Les éléments de bloc organisés avec un mode d'écriture horizontal (un document en français par exemple) sont disposés verticalement les uns au dessus des autres.
+ +
Avec un mode d'écriture vertical, les boîtes seraient organisées horizontalement.
+ +
Dans la suite de ce guide, nous prendrons l'hypothèse d'un mode d'écriture horizontal. Toutefois, tout ce qui est décrit fonctionne de la même façon pour un mode d'écriture vertical.
+ +Comme indiqué dans la spécification, les marges entre deux boîtes de bloc permettent de créer une séparation entre les éléments. On peut voir ceci dans un exemple simple avec deux paragraphes auxquels on ajoute une bordure. La feuille de style par défaut du navigateur ajoute un espace entre les paragraphes en ajoutant une marge en haut et en bas.
+ +{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow.html", '100%', 700)}}
+ +Si on définit explicitement des marges nulles sur les paragraphes, les bordures se toucheront.
+ +{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow-margin-zero.html", '100%', 700)}}
+ +Par défaut, les éléments de bloc consomment tout l'espace disponible sur l'axe en ligne. Ainsi, les paragraphes « s'étalent » horizontalement autant qu'ils le peuvent au sein du bloc englobant. Si on fixait leur longueur afin que deux paragraphes puissent tenir horizontalement, ils seraient tout de même l'un au dessus de l'autre. Chaque boîte de bloc commencera au début de l'axe de bloc du bloc englobant.
+ +{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow-width.html", '100%', 700)}}
+ +La spécification indique que les marges verticales entre chaque éléments de bloc fusionnent. Cela signifie que si un élément avec une marge en haut suit directement un élément avec une marge en bas, plutôt que la marge résultante soit la somme des deux marges, on aura une fusion des marges et ce sera uniquement la plus grande des marges qui sera appliquée.
+ +Dans l'exemple suivant, les paragraphes ont une marge en haut qui mesure 20 pixels et une marge en bas qui mesure 40 pixels. La taille de la marge entre les deux paragraphes est donc de 40px car la plus petite est « fusionnée » avec la plus grande.
{{EmbedGHLiveSample("css-examples/flow/block-inline/normal-flow-collapsing.html", '100%', 500)}}
+ +Pour en savoir plus à propos de la fusion des marges, vous pouvez lire l'article dédié à la fusion des marges.
+ +Note : Si vous n'êtes pas certain⋅e que la fusion des marges a lieu, vous pouvez utiliser les outils de développement de votre navigateur afin de voir la valeur réellement utilisée pour les marges.
+ +
Les éléments en ligne sont affichés les uns à la suite des autres selon la direction avec laquelle les phrases sont écrites pour ce mode d'écriture. Ces boîtes en ligne se suivent les unes après les autres. S'il n'y a pas suffisamment d'espace dans la boîte englobante, une boîte en ligne pourra être scindée pour passer à la ligne. Les lignes ainsi créées sont appelées des boîtes de ligne. Comme la plupart des objets en CSS, les éléments en ligne disposent bien d'une boîte (qu'on oublie parfois).
+ +Dans l'exemple suivant on a trois boîtes en ligne créées par un paragraphe avec un élément {{HTMLElement("strong")}} à l'intérieur.
+ +{{EmbedGHLiveSample("css-examples/flow/block-inline/inline.html", '100%', 500)}}
+ +Les boîtes autour des mots, avant et après l'élément {{HTMLElement("<strong>")}} sont qualifiées de boîtes anonymes. Ce sont des boîtes qui permettent que tout soit contenu dans une boîte mais on ne peut pas cibler ces boîtes spécifiquement.
+ +La taille de la boîte de la ligne sur l'axe orthogonal à l'axe de lecture est définie avec la taille de la plus grande boîte qu'elle contient. Dans l'exemple suivant, on a un élément {{HTMLElement("<strong>")}} qui a une taille de 300% et c'est donc son contenu qui détermine la hauteur de la boîte de ligne pour cette ligne.
+ +{{EmbedGHLiveSample("css-examples/flow/block-inline/line-box.html", '100%', 500)}}
+ +Pour en savoir plus sur le comportement des boîtes en ligne et des boîtes de bloc, vous pouvez consulter le guide sur le modèle de formatage visuel.
+ +display et la disposition de fluxEn plus des règles existantes en CSS 2.1, les spécifications CSS ultérieures décrivent plus en détail le comportement des boîtes en ligne et des boîtes en bloc. La propriété display définit la façon dont une boîte, et celles qu'elle contient, se comporte. Avec la spécification CSS Display Model Level 3, on en apprend plus sur la façon dont la propriété display modifie comportement des boîtes et des boîtes qu'elles génèrent.
Le type d'affichage d'un élément définit deux choses :
+ +Dans l'exemple suivant, on a un élément {{HTMLElement("div")}} sur lequel on a appliqué display: flex. Le conteneur flexible se comporte comme un élément de bloc : il s'affiche sur une nouvelle ligne et occupe tout l'espace du bloc englobant dans l'axe en ligne. Aussi, le type d'affichage extérieur vaut block.
Les objets flexibles, à l'intérieur, contribuent à un contexte de formatage flexible car leur élément parent a display: flex. Aussi, le type d'affichage intérieur vaut flex et un nouveau contexte de formatage flexible est mis en place pour les éléments enfants.
{{EmbedGHLiveSample("css-examples/flow/block-inline/flex.html", '100%', 500)}}
+ +On peut envisager chaque boîte CSS sous cet angle. La boîte possède un type d'affichage extérieur et sait ainsi comment se comporter avec les boîtes qui l'entourent. Ensuite, la boîte possède un type d'affichage intérieur qui permet d'organiser les éléments qu'elle contient. Ces éléments, à leur tour, disposent d'un type d'affichage extérieur et d'un type d'affichage intérieur. Dans l'exemple précédent, les objets flexibles ont des boîtes flexibles. Le type d'affichage extérieur est dicté par le contexte de formatage flexible. En revanche, leur type d'affichage intérieur est flow et leurs éléments enfants participeront à un flux normal. Les éléments enfants s'organiseront comme des éléments en ligne ou de bloc sauf si leur type d'affichage est explicitement modifié.
Le concept de type d'affichage extérieur et intérieur est important car il nous indique qu'un conteneur utilisant Flexbox (display: flex) ou les grilles CSS (display: grid) continue de participer à une disposition bloc/en ligne du fait du type d'affichage extérieur qui est block.
Les navigateurs affichent les éléments en bloc ou ligne selon ce qui est pertinent pour chaque élément. Ainsi, l'élément {{HTMLElement("strong")}}, utilisé pour mettre en avant un mot (souvent alors affiché en gras), ne crée pas de nouvelle ligne pour afficher son contenu : ce n'est pas un élément de bloc mais un élément en ligne.
+ +Si on souhaitait afficher tous les éléments {{HTMLElement("strong")}} comme des éléments de bloc, il suffirait d'ajouter la règle display: block en ciblant les éléments <strong>. Cela signifie qu'on peut toujours écrire un code HTML qui soit le plus sémantique possible pour le contenu puis modifier la façon dont le document est affiché grâce à CSS.
{{EmbedGHLiveSample("css-examples/flow/block-inline/change-formatting.html", '100%', 500)}}
+ +Dans ce guide, nous avons vu comment les éléments étaient affichés dans le flux normal, comme éléments de bloc ou comme éléments en ligne. Les éléments HTML s'afficheront par défaut de façon lisible sans CSS. En comprenant comment fonctionne le flux normal, vous comprendrez comment apporter les modifications nécessaires pour parvenir à la disposition désirée.
+ +Lorsque le conteneur est trop petit pour son contenu, on obtient une situation de dépassement. Le comportement du dépassement est importante dès qu'on manipule des objets CSS dont la taille est contrainte. Dans ce guide, nous verrons le fonctionnement du dépassement avec le flux normal.
- -Pour créer un exemple de dépassement, prenons un élément avec une hauteur et une largeur fixés puis ajoutons un contenu trop important dans la boîte :
- -{{EmbedGHLiveSample("css-examples/flow/overflow/overflow.html", '100%', 700)}}
- -Le contenu « arrive » dans la boîte puis remplit celle-ci et ensuite, il dépasse en affichant du contenu en dehors de la boîte éventuellement en dessous du contenu environnant. Pour contrôler le comportement du dépassement, on pourra utiliser la propriété overflow. La valeur initiale de cette propriété est visible et c'est pour cela qu'on voit le contenu dépasser.
La propriété overflow possède d'autres valeurs qui permettent de contrôler le dépassement. Afin de masquer le contenu qui dépasse, on peut utiliser la valeur hidden. Avec cette valeur, une partie du contenu peut ne pas être visible.
{{EmbedGHLiveSample("css-examples/flow/overflow/hidden.html", '100%', 700)}}
- -Avec la valeur scroll, le contenu est dans la boîte et des barres de défilement sont ajoutées à la boîte afin de pouvoir défiler et voir le contenu. Les barres de défilement seront ajoutées, même si le contenu « tient » dans la boîte.
{{EmbedGHLiveSample("css-examples/flow/overflow/scroll.html", '100%', 700)}}
- -Avec la valeur auto, le contenu sera affiché sans barre de défilement s'il tient dans la boîte. S'il dépasse, des barres de défilement sont ajoutées. En comparant l'exemple précédent avec celui qui suit, on peut voir que overflow: scroll ajoute des barres de défilement verticales et horizontales (même s'il y a uniquement besoin du défilement vertical). Avec la valeur auto, seules les barres de défilement nécessaires sont ajoutées.
{{EmbedGHLiveSample("css-examples/flow/overflow/auto.html", '100%', 700)}}
- -Comme nous l'avons vu plus tôt, toute valeur qui est différente de visible créera un nouveau contexte de formatage de bloc.
Note : Dans le brouillon du module de spécification Overflow de niveau 3, une valeur est ajoutée : overflow: clip. Cette valeur agira comme overflow: hidden mais ne permettra de faire défiler le contenu à l'aide de code. La boîte ne pourra pas défiler. De plus, cette valeur ne crée pas de contexte de formatage de bloc.
Pour être tout à fait précis, la propriété overflow est une propriété raccourcie pour les propriétés overflow-x et overflow-y. Si on fournit une valeur, celle-ci sera utilisée pour les deux axes. On peut aussi fournir deux valeurs, auquel cas la première sera utilisée pour overflow-x et la seconde pour overflow-y. Dans l'exemple qui suit, seule overflow-y: scroll est utilisée et la barre de défilement horizontale superflue n'est pas ajoutée.
{{EmbedGHLiveSample("css-examples/flow/overflow/overflow-y.html", '100%', 700)}}
- -Dans le guide sur les modes d'écriture et la disposition en flux, nous avons étudié des propriétés plus récentes block-size et inline-size qui permettent de raisonner avec les modes d'écriture plutôt qu'avec les dimensions physiques de l'écran. La spécification de niveau 3 Overflow inclut également les propriétés correspondantes pour le dépassement : overflow-block et overflow-inline. Ces propriétés « logiques » correspondent aux propriétés « physiques » overflow-x et overflow-y où la correspondance varie en fonction du mode d'écriture du document.
À l'heure où nous écrivons ces lignes, ces deux propriétés ne sont pas implémentées par les navigateurs et il faut donc s'en tenir aux propriétés physiques et ajuster selon le mode d'écriture.
- -Dans la spécification de niveau 3 sur le dépassement, certaines propriétés aident à améliorer l'apparence du contenu lors d'un dépassement.
- -La propriété text-overflow indique comment afficher le texte qui dépasse sur l'axe en ligne. La valeur clip qui coupe le contenu qui dépasse, c'est la valeur initiale et le comportement par défaut. La valeur ellipsis permet d'afficher une ellipse qui peut être adaptée en fonction de la langue ou du mode d'écriture utilisé.
{{EmbedGHLiveSample("css-examples/flow/overflow/text-overflow.html", '100%', 500)}}
- -Il existe également une proposition pour une propriété block-overflow. Toutefois, celle-ci (ainsi que son nom) est toujours en discussion. La proposition consisterait à pouvoir afficher une ellipse lorsque le contenu dépasse sur l'axe de bloc.
Cette propriété serait par exemple utile lorsqu'on a une liste d'article avec une boîte pour chaque article dont la hauteur est fixée. Si le texte qui dépasse est masqué, ce n'est pas nécessairement évident qu'il y a du contenu supplémentaire et qu'il faut cliquer pour le lire. Ajouter une ellipse rendrait ce dépassement plus perceptible.
- -Qu'on manipule un média « continu » sur le Web ou un format paginé (impression ou EPUB), il est utile de comprendre la façon dont le dépassement agit, quelle que soit la méthode de dépassement. En comprenant comment le dépassement fonctionne avec le flux normal, ce devrait être plus simple de comprendre le fonctionnement du dépassement pour les autres méthodes comme les grilles ou les boîtes flexibles.
diff --git a/files/fr/web/css/css_flow_layout/flow_layout_and_overflow/index.md b/files/fr/web/css/css_flow_layout/flow_layout_and_overflow/index.md new file mode 100644 index 0000000000..a1c3966d64 --- /dev/null +++ b/files/fr/web/css/css_flow_layout/flow_layout_and_overflow/index.md @@ -0,0 +1,71 @@ +--- +title: La disposition en flux et le dépassement +slug: Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Overflow +tags: + - CSS + - Guide + - Intermédiaire +translation_of: Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Overflow +original_slug: Web/CSS/CSS_Flow_Layout/Disposition_flux_et_dépassement +--- +Lorsque le conteneur est trop petit pour son contenu, on obtient une situation de dépassement. Le comportement du dépassement est importante dès qu'on manipule des objets CSS dont la taille est contrainte. Dans ce guide, nous verrons le fonctionnement du dépassement avec le flux normal.
+ +Pour créer un exemple de dépassement, prenons un élément avec une hauteur et une largeur fixés puis ajoutons un contenu trop important dans la boîte :
+ +{{EmbedGHLiveSample("css-examples/flow/overflow/overflow.html", '100%', 700)}}
+ +Le contenu « arrive » dans la boîte puis remplit celle-ci et ensuite, il dépasse en affichant du contenu en dehors de la boîte éventuellement en dessous du contenu environnant. Pour contrôler le comportement du dépassement, on pourra utiliser la propriété overflow. La valeur initiale de cette propriété est visible et c'est pour cela qu'on voit le contenu dépasser.
La propriété overflow possède d'autres valeurs qui permettent de contrôler le dépassement. Afin de masquer le contenu qui dépasse, on peut utiliser la valeur hidden. Avec cette valeur, une partie du contenu peut ne pas être visible.
{{EmbedGHLiveSample("css-examples/flow/overflow/hidden.html", '100%', 700)}}
+ +Avec la valeur scroll, le contenu est dans la boîte et des barres de défilement sont ajoutées à la boîte afin de pouvoir défiler et voir le contenu. Les barres de défilement seront ajoutées, même si le contenu « tient » dans la boîte.
{{EmbedGHLiveSample("css-examples/flow/overflow/scroll.html", '100%', 700)}}
+ +Avec la valeur auto, le contenu sera affiché sans barre de défilement s'il tient dans la boîte. S'il dépasse, des barres de défilement sont ajoutées. En comparant l'exemple précédent avec celui qui suit, on peut voir que overflow: scroll ajoute des barres de défilement verticales et horizontales (même s'il y a uniquement besoin du défilement vertical). Avec la valeur auto, seules les barres de défilement nécessaires sont ajoutées.
{{EmbedGHLiveSample("css-examples/flow/overflow/auto.html", '100%', 700)}}
+ +Comme nous l'avons vu plus tôt, toute valeur qui est différente de visible créera un nouveau contexte de formatage de bloc.
Note : Dans le brouillon du module de spécification Overflow de niveau 3, une valeur est ajoutée : overflow: clip. Cette valeur agira comme overflow: hidden mais ne permettra de faire défiler le contenu à l'aide de code. La boîte ne pourra pas défiler. De plus, cette valeur ne crée pas de contexte de formatage de bloc.
Pour être tout à fait précis, la propriété overflow est une propriété raccourcie pour les propriétés overflow-x et overflow-y. Si on fournit une valeur, celle-ci sera utilisée pour les deux axes. On peut aussi fournir deux valeurs, auquel cas la première sera utilisée pour overflow-x et la seconde pour overflow-y. Dans l'exemple qui suit, seule overflow-y: scroll est utilisée et la barre de défilement horizontale superflue n'est pas ajoutée.
{{EmbedGHLiveSample("css-examples/flow/overflow/overflow-y.html", '100%', 700)}}
+ +Dans le guide sur les modes d'écriture et la disposition en flux, nous avons étudié des propriétés plus récentes block-size et inline-size qui permettent de raisonner avec les modes d'écriture plutôt qu'avec les dimensions physiques de l'écran. La spécification de niveau 3 Overflow inclut également les propriétés correspondantes pour le dépassement : overflow-block et overflow-inline. Ces propriétés « logiques » correspondent aux propriétés « physiques » overflow-x et overflow-y où la correspondance varie en fonction du mode d'écriture du document.
À l'heure où nous écrivons ces lignes, ces deux propriétés ne sont pas implémentées par les navigateurs et il faut donc s'en tenir aux propriétés physiques et ajuster selon le mode d'écriture.
+ +Dans la spécification de niveau 3 sur le dépassement, certaines propriétés aident à améliorer l'apparence du contenu lors d'un dépassement.
+ +La propriété text-overflow indique comment afficher le texte qui dépasse sur l'axe en ligne. La valeur clip qui coupe le contenu qui dépasse, c'est la valeur initiale et le comportement par défaut. La valeur ellipsis permet d'afficher une ellipse qui peut être adaptée en fonction de la langue ou du mode d'écriture utilisé.
{{EmbedGHLiveSample("css-examples/flow/overflow/text-overflow.html", '100%', 500)}}
+ +Il existe également une proposition pour une propriété block-overflow. Toutefois, celle-ci (ainsi que son nom) est toujours en discussion. La proposition consisterait à pouvoir afficher une ellipse lorsque le contenu dépasse sur l'axe de bloc.
Cette propriété serait par exemple utile lorsqu'on a une liste d'article avec une boîte pour chaque article dont la hauteur est fixée. Si le texte qui dépasse est masqué, ce n'est pas nécessairement évident qu'il y a du contenu supplémentaire et qu'il faut cliquer pour le lire. Ajouter une ellipse rendrait ce dépassement plus perceptible.
+ +Qu'on manipule un média « continu » sur le Web ou un format paginé (impression ou EPUB), il est utile de comprendre la façon dont le dépassement agit, quelle que soit la méthode de dépassement. En comprenant comment le dépassement fonctionne avec le flux normal, ce devrait être plus simple de comprendre le fonctionnement du dépassement pour les autres méthodes comme les grilles ou les boîtes flexibles.
diff --git a/files/fr/web/css/css_flow_layout/flow_layout_and_writing_modes/index.html b/files/fr/web/css/css_flow_layout/flow_layout_and_writing_modes/index.html deleted file mode 100644 index 2291678c48..0000000000 --- a/files/fr/web/css/css_flow_layout/flow_layout_and_writing_modes/index.html +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: Disposition de flux et modes d'écriture -slug: Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Writing_Modes -tags: - - CSS - - Guide - - Mode d'écriture -translation_of: Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Writing_Modes -original_slug: Web/CSS/CSS_Flow_Layout/Disposition_flux_et_modes_écriture ---- -La spécification CSS 2.1, qui décrit le comportement classique du flux normal, prend l'hypothèse d'un mode d'écriture horizontal. Les propriétés liées à la disposition devraient fonctionner de façon identique pour les modes d'écritures verticaux. Dans ce guide, nous verrons comment le flux normal se comporte selon les différents modes d'écriture.
- -Ce guide n'est pas un guide exhaustif sur l'utilisation des modes d'écriture en CSS. Son objectif est de documenter les interactions, éventuellement inattendues, entre le flux et les modes d'écriture. Pour plus de ressources à ce sujet, vous pouvez vour référer aux ressources externes ainsi qu'à la section Voir aussi en fin de page.
- -Le module de spécification CSS Writing Modes de niveau 3 définit l'impact du mode d'écriture sur le flux. Voici l'introduction de la spécification quant aux modes d'écriture :
- --- -« En CSS, un mode d'écriture est défini par les propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. Ce mode est principalement défini selon sa direction en ligne (inline) et selon sa direction de bloc. »
-
La spécification définit la direction en ligne comme la direction selon laquelle le contenu est ordonné sur une ligne. Cela définit le début et la fin de la direction en ligne. Le début correspond à l'emplacement du début d'une phrase sur la ligne et la fin correspond à l'emplacement où la ligne de texte se coupe pour passer sur une nouvelle ligne.
- -La direction de bloc correspond à la direction selon laquelle les boîtes (ex. les paragraphes) s'empilent pour ce mode d'écriture. La propriété writing-mode contrôle la direction de bloc. Si on souhaite changer la page ou une partie de la page afin d'utiliser la direction vertical-lr, on pourra utiliser writing-mode: vertical-lr sur un élément. Cela aura pour effet de modifier la direction de bloc et, par conséquent, de modifier la direction en ligne.
Les modes d'écritures peuvent être utilisés pour respecter la façon d'écrire de certaines langues. Ils peuvent également être utilisés à des fins stylistiques (pour avoir un titre vertical par exemple).
- -{{EmbedGHLiveSample("css-examples/flow/writing-modes/creative-use.html", '100%', 720)}}
- -writing-mode et le flux de blocLa propriété {{cssxref("writing-mode")}} s'utilise avec les valeurs horizontal-tb, vertical-rl et vertical-lr. Ces valeurs contrôlent la direction selon laquelle les blocs se suivent sur la page. La valeur initiale de cette propriété est horizontal-tb ce qui signifie que l'axe de bloc est dirigé de haut en bas (tb pour top to bottom qui signifie de haut en bas) et que l'axe en ligne est horizontal. Les langues qui s'écrivent de gauche à droite telles que le français ou les langues qui s'écrivent de droite à gauche telles que l'arabe utilisent toutes horizontal-tb.
Voici un exemple avec horizontal-tb.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/horizontal-tb.html", '100%', 720)}}
- -La valeur vertical-rl permet d'avoir une direction de bloc de droite à gauche et une direction en ligne verticale, comme on peut le voir dans l'exemple qui suit.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/vertical-rl.html", '100%', 720)}}
- -Dans cet autre exemple, on voit comment se comporte la troisième valeur possible pour writing-mode : vertical-lr. On a une direction de bloc horizontal de la gauche vers la droite et une direction en ligne verticale.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/vertical-lr.html", '100%', 720)}}
- -Lorsqu'une boîte imbriquée se voit affecter un mode d'écriture différent de son parent, une boîte en ligne s'affichera comme si elle avait display: inline-block.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/inline-change-mode.html", '100%', 720)}}
- -Une boîte de bloc créera un nouveau contexte de formatage. Ainsi, si son type d'affichage intérieur vaut flow, le type d'affichage calculé sera flow-root. On peut voir ce comportement dans l'exemple qui suit où la boîte affichée avec horizontal-tb contient un élément flottant contenu car son élément parent crée un nouveau contexte de formatage.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/block-change-mode.html", '100%', 720)}}
- -Les éléments remplacés tels que les images ne changeront pas d'oritentation selon la valeur de la propriété writing-mode. Toutefois, les éléments remplacés tels que les éléments de formulaires qui incluent du texte devraient utiliser le mode d'écriture courant.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/replaced.html", '100%', 720)}}
- -Lorsqu'on travaille avec des modes d'écriture autres que horizontal-tb, la plupart des propriétés et des valeurs correspondant aux dimensions physiques de l'écran semblent étranges. Ainsi, si on a une boîte qui fait 100 pixels de large, avec horizontal-tb cette largeur sera selon la direction en ligne. Mais avec le mode vertical-lr cela contrôlera la direction de bloc car elle ne tourne pas avec le texte.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/width.html", '100%', 720)}}
- -C'est pour cela que des propriétés logiques ont fait leur apparition comme {{cssxref("block-size")}} et {{cssxref("inline-size")}}. Si on fournit inline-size: 100px sur un bloc, peu importe qu'on ait un mode d'écriture horizontal ou vertical, inline-size correspondra à la direction en ligne quoi qu'il arrive.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/inline-size.html", '100%', 720)}}
- -Le module de spécification CSS sur les propriétés et valeurs logiques contient des versions logiques des propriétés contrôlant les marges, le remplissage (padding) et les bordures et d'autres correspondances pour les concepts qu'on manipulait habituellement avec des directions physiques.
- -Dans la plupart des cas, la disposition de flux fonctionne comme on s'y attend lorsqu'on change le mode d'écriture du document ou d'une de ses parties. Les modes d'écritures peuvent être utilisés pour écrire correctement une langue ou pour des aspects créatifs. CSS facilite cette utilisation en introduisant des propriétés et des valeurs logiques qui fonctionnent de façon homogène quel que soit le mode d'écriture. On peut alors créer des composants qui fonctionneront avec différents modes d'écriture.
- -La spécification CSS 2.1, qui décrit le comportement classique du flux normal, prend l'hypothèse d'un mode d'écriture horizontal. Les propriétés liées à la disposition devraient fonctionner de façon identique pour les modes d'écritures verticaux. Dans ce guide, nous verrons comment le flux normal se comporte selon les différents modes d'écriture.
+ +Ce guide n'est pas un guide exhaustif sur l'utilisation des modes d'écriture en CSS. Son objectif est de documenter les interactions, éventuellement inattendues, entre le flux et les modes d'écriture. Pour plus de ressources à ce sujet, vous pouvez vour référer aux ressources externes ainsi qu'à la section Voir aussi en fin de page.
+ +Le module de spécification CSS Writing Modes de niveau 3 définit l'impact du mode d'écriture sur le flux. Voici l'introduction de la spécification quant aux modes d'écriture :
+ +++ +« En CSS, un mode d'écriture est défini par les propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}. Ce mode est principalement défini selon sa direction en ligne (inline) et selon sa direction de bloc. »
+
La spécification définit la direction en ligne comme la direction selon laquelle le contenu est ordonné sur une ligne. Cela définit le début et la fin de la direction en ligne. Le début correspond à l'emplacement du début d'une phrase sur la ligne et la fin correspond à l'emplacement où la ligne de texte se coupe pour passer sur une nouvelle ligne.
+ +La direction de bloc correspond à la direction selon laquelle les boîtes (ex. les paragraphes) s'empilent pour ce mode d'écriture. La propriété writing-mode contrôle la direction de bloc. Si on souhaite changer la page ou une partie de la page afin d'utiliser la direction vertical-lr, on pourra utiliser writing-mode: vertical-lr sur un élément. Cela aura pour effet de modifier la direction de bloc et, par conséquent, de modifier la direction en ligne.
Les modes d'écritures peuvent être utilisés pour respecter la façon d'écrire de certaines langues. Ils peuvent également être utilisés à des fins stylistiques (pour avoir un titre vertical par exemple).
+ +{{EmbedGHLiveSample("css-examples/flow/writing-modes/creative-use.html", '100%', 720)}}
+ +writing-mode et le flux de blocLa propriété {{cssxref("writing-mode")}} s'utilise avec les valeurs horizontal-tb, vertical-rl et vertical-lr. Ces valeurs contrôlent la direction selon laquelle les blocs se suivent sur la page. La valeur initiale de cette propriété est horizontal-tb ce qui signifie que l'axe de bloc est dirigé de haut en bas (tb pour top to bottom qui signifie de haut en bas) et que l'axe en ligne est horizontal. Les langues qui s'écrivent de gauche à droite telles que le français ou les langues qui s'écrivent de droite à gauche telles que l'arabe utilisent toutes horizontal-tb.
Voici un exemple avec horizontal-tb.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/horizontal-tb.html", '100%', 720)}}
+ +La valeur vertical-rl permet d'avoir une direction de bloc de droite à gauche et une direction en ligne verticale, comme on peut le voir dans l'exemple qui suit.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/vertical-rl.html", '100%', 720)}}
+ +Dans cet autre exemple, on voit comment se comporte la troisième valeur possible pour writing-mode : vertical-lr. On a une direction de bloc horizontal de la gauche vers la droite et une direction en ligne verticale.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/vertical-lr.html", '100%', 720)}}
+ +Lorsqu'une boîte imbriquée se voit affecter un mode d'écriture différent de son parent, une boîte en ligne s'affichera comme si elle avait display: inline-block.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/inline-change-mode.html", '100%', 720)}}
+ +Une boîte de bloc créera un nouveau contexte de formatage. Ainsi, si son type d'affichage intérieur vaut flow, le type d'affichage calculé sera flow-root. On peut voir ce comportement dans l'exemple qui suit où la boîte affichée avec horizontal-tb contient un élément flottant contenu car son élément parent crée un nouveau contexte de formatage.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/block-change-mode.html", '100%', 720)}}
+ +Les éléments remplacés tels que les images ne changeront pas d'oritentation selon la valeur de la propriété writing-mode. Toutefois, les éléments remplacés tels que les éléments de formulaires qui incluent du texte devraient utiliser le mode d'écriture courant.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/replaced.html", '100%', 720)}}
+ +Lorsqu'on travaille avec des modes d'écriture autres que horizontal-tb, la plupart des propriétés et des valeurs correspondant aux dimensions physiques de l'écran semblent étranges. Ainsi, si on a une boîte qui fait 100 pixels de large, avec horizontal-tb cette largeur sera selon la direction en ligne. Mais avec le mode vertical-lr cela contrôlera la direction de bloc car elle ne tourne pas avec le texte.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/width.html", '100%', 720)}}
+ +C'est pour cela que des propriétés logiques ont fait leur apparition comme {{cssxref("block-size")}} et {{cssxref("inline-size")}}. Si on fournit inline-size: 100px sur un bloc, peu importe qu'on ait un mode d'écriture horizontal ou vertical, inline-size correspondra à la direction en ligne quoi qu'il arrive.
{{EmbedGHLiveSample("css-examples/flow/writing-modes/inline-size.html", '100%', 720)}}
+ +Le module de spécification CSS sur les propriétés et valeurs logiques contient des versions logiques des propriétés contrôlant les marges, le remplissage (padding) et les bordures et d'autres correspondances pour les concepts qu'on manipulait habituellement avec des directions physiques.
+ +Dans la plupart des cas, la disposition de flux fonctionne comme on s'y attend lorsqu'on change le mode d'écriture du document ou d'une de ses parties. Les modes d'écritures peuvent être utilisés pour écrire correctement une langue ou pour des aspects créatifs. CSS facilite cette utilisation en introduisant des propriétés et des valeurs logiques qui fonctionnent de façon homogène quel que soit le mode d'écriture. On peut alors créer des composants qui fonctionneront avec différents modes d'écriture.
+ +Dans le précédent guide, nous avons vu le fonctionnement de la disposition en ligne et en bloc dans le flux normal. Tous les éléments qui sont « dans » le flux seront disposés grâce à cette méthode.
- -Dans l'exemple qui suit, on a un titre, un paragraphe, une liste puis un paragraphe final qui contient un élément strong. Le titre et les paragraphes sont des éléments de blocs et l'élément strong est un élément en ligne. La liste est affichée en utilisant les boîtes flexibles afin d'avoir les éléments de la liste sur une même ligne mais cette liste contribue bien à la disposition en ligne et en bloc car le conteneur a un type display externe qui vaut block.
{{EmbedGHLiveSample("css-examples/flow/in-flow/in-flow.html", '100%', 800)}}
- -Dans ce cas, on peut dire que tous les éléments sont « dans le flux » et ils apparaissent sur la page selon le même ordre que le document source.
- -Tous les éléments d'un document sont dans le flux à l'exception :
- -position: absolute ou avec position: fixedhtml)Les éléments qui ne sont pas dans le flux créent un nouveau contexte de formatage de bloc (ou Block Formatting Context (BFC) en anglais) et tout ce qui est dans ce contexte peut être vu comme une disposition imbriquée, séparée et indépendante du reste de la page. L'élément racine est ainsi en dehors du flux car c'est le conteneur qui contient l'intégralité du document et qui fournit le contexte de formatage de bloc pour l'ensemble du document.
- -Dans cet exemple, on a un élément div puis deux paragraphes. On a ajouté une couleur d'arrière-plan sur les paragraphes puis on a appliqué un flottement à gauche pour l'élément div. L'élément div est désormais en dehors du flux.
Un élément flottant est d'abord disposé à l'endroit où il aurait été dans le flux normal puis il est retiré du flux et déplacé. Ici, il est déplacé le plus à gauche possible.
- -{{EmbedGHLiveSample("css-examples/flow/in-flow/float.html", '100%', 800)}}
- -On peut voir que la couleur du paragraphe suivant s'étend en dessous. Seules les boîtes de ligne du paragraphe ont été raccourcies et causent le passage à la ligne du contenu autour de l'élément flottant. La boîte du paragraphe s'affiche toujours selon les règles du flux normal. C'est pour cela qu''il faut ajouter une marge autour de l'élément flottant si on veut créer un espace autour. Avec une marge, on repoussera les boîtes de lignes adjacentes. Il n'est pas possible d'appliquer quoi que ce soit au contenu dans le flux pour obtenir le même effet.
- -En utilisant position: absolute ou position: fixed sur un élément, celui-ci est retiré du flux et tout l'espace qu'il aurait occupé est retiré. Dans l'exemple ci-après, on a trois paragraphes et le deuxième est ciblé avec position absolute et décalé avec les valeurs top: 30px et right: 30px. Cet élément est retiré du flux du document.
{{EmbedGHLiveSample("css-examples/flow/in-flow/abspos.html", '100%', 700)}}
- -Utiliser position: fixed retire également un objet de flux. Dans ce cas, les décalages seront calculés relativement à la zone d'affichage (viewport) plutôt que par rapport au bloc englobant.
Lorsqu'on retire un élément du flux grâce au positionnement, il faut également gérer les cas où le contenu peut se superposer. Lorsqu'un élément est en dehors du flux, les autres éléments ne « sauront » plus qu'il est là et ne seront pas déplacés pour lui laisser la place.
- -Si on fournit un positionnement relatif en appliquant position: relative à un élément, celui-ci reste dans le flux mais on peut alors utiliser des décalages pour le déplacer. Toutefois, l'espace initialement occupé par l'élément est toujours réservé, comme on peut le voir dans l'exemple qui suit.
{{EmbedGHLiveSample("css-examples/flow/in-flow/relative.html", '100%', 800)}}
- -Dès qu'on retire ou qu'on décale un élément de son emplacement dans le flux normal, il faut s'attendre à devoir gérer le contenu environnant pour éviter les chevauchements. On pourra par exemple utiliser les flottements ou s'assurer que l'élément utilisant position: absolute n'est pas sur un autre contenu. C'est pour ces raisons que les méthodes qui retirent les éléments du flux doivent être utilisées avec circonspection.
Dans ce guide, nous avons vu les différentes façons qui permettent de retirer un élément du flux afin d'obtenir certains positionnements spécifiques. Dans le prochain guide, nous verrons un concept similaire, celui de contexte de formatage de bloc dans Explications relatives aux contextes de formatage.
- -Dans le précédent guide, nous avons vu le fonctionnement de la disposition en ligne et en bloc dans le flux normal. Tous les éléments qui sont « dans » le flux seront disposés grâce à cette méthode.
+ +Dans l'exemple qui suit, on a un titre, un paragraphe, une liste puis un paragraphe final qui contient un élément strong. Le titre et les paragraphes sont des éléments de blocs et l'élément strong est un élément en ligne. La liste est affichée en utilisant les boîtes flexibles afin d'avoir les éléments de la liste sur une même ligne mais cette liste contribue bien à la disposition en ligne et en bloc car le conteneur a un type display externe qui vaut block.
{{EmbedGHLiveSample("css-examples/flow/in-flow/in-flow.html", '100%', 800)}}
+ +Dans ce cas, on peut dire que tous les éléments sont « dans le flux » et ils apparaissent sur la page selon le même ordre que le document source.
+ +Tous les éléments d'un document sont dans le flux à l'exception :
+ +position: absolute ou avec position: fixedhtml)Les éléments qui ne sont pas dans le flux créent un nouveau contexte de formatage de bloc (ou Block Formatting Context (BFC) en anglais) et tout ce qui est dans ce contexte peut être vu comme une disposition imbriquée, séparée et indépendante du reste de la page. L'élément racine est ainsi en dehors du flux car c'est le conteneur qui contient l'intégralité du document et qui fournit le contexte de formatage de bloc pour l'ensemble du document.
+ +Dans cet exemple, on a un élément div puis deux paragraphes. On a ajouté une couleur d'arrière-plan sur les paragraphes puis on a appliqué un flottement à gauche pour l'élément div. L'élément div est désormais en dehors du flux.
Un élément flottant est d'abord disposé à l'endroit où il aurait été dans le flux normal puis il est retiré du flux et déplacé. Ici, il est déplacé le plus à gauche possible.
+ +{{EmbedGHLiveSample("css-examples/flow/in-flow/float.html", '100%', 800)}}
+ +On peut voir que la couleur du paragraphe suivant s'étend en dessous. Seules les boîtes de ligne du paragraphe ont été raccourcies et causent le passage à la ligne du contenu autour de l'élément flottant. La boîte du paragraphe s'affiche toujours selon les règles du flux normal. C'est pour cela qu''il faut ajouter une marge autour de l'élément flottant si on veut créer un espace autour. Avec une marge, on repoussera les boîtes de lignes adjacentes. Il n'est pas possible d'appliquer quoi que ce soit au contenu dans le flux pour obtenir le même effet.
+ +En utilisant position: absolute ou position: fixed sur un élément, celui-ci est retiré du flux et tout l'espace qu'il aurait occupé est retiré. Dans l'exemple ci-après, on a trois paragraphes et le deuxième est ciblé avec position absolute et décalé avec les valeurs top: 30px et right: 30px. Cet élément est retiré du flux du document.
{{EmbedGHLiveSample("css-examples/flow/in-flow/abspos.html", '100%', 700)}}
+ +Utiliser position: fixed retire également un objet de flux. Dans ce cas, les décalages seront calculés relativement à la zone d'affichage (viewport) plutôt que par rapport au bloc englobant.
Lorsqu'on retire un élément du flux grâce au positionnement, il faut également gérer les cas où le contenu peut se superposer. Lorsqu'un élément est en dehors du flux, les autres éléments ne « sauront » plus qu'il est là et ne seront pas déplacés pour lui laisser la place.
+ +Si on fournit un positionnement relatif en appliquant position: relative à un élément, celui-ci reste dans le flux mais on peut alors utiliser des décalages pour le déplacer. Toutefois, l'espace initialement occupé par l'élément est toujours réservé, comme on peut le voir dans l'exemple qui suit.
{{EmbedGHLiveSample("css-examples/flow/in-flow/relative.html", '100%', 800)}}
+ +Dès qu'on retire ou qu'on décale un élément de son emplacement dans le flux normal, il faut s'attendre à devoir gérer le contenu environnant pour éviter les chevauchements. On pourra par exemple utiliser les flottements ou s'assurer que l'élément utilisant position: absolute n'est pas sur un autre contenu. C'est pour ces raisons que les méthodes qui retirent les éléments du flux doivent être utilisées avec circonspection.
Dans ce guide, nous avons vu les différentes façons qui permettent de retirer un élément du flux afin d'obtenir certains positionnements spécifiques. Dans le prochain guide, nous verrons un concept similaire, celui de contexte de formatage de bloc dans Explications relatives aux contextes de formatage.
+ +Le flux normal ou « disposition en flux » (Flow Layout) correspond à la façon dont les éléments de bloc et les éléments en ligne sont disposés avant tout changement apporté à leur disposition. Lorsqu'un élément est retiré du flux, il est traité indépendamment.
- -Avec un flux normal, les éléments en ligne (inline elements) sont affichés dans la direction « en incise », c'est-à-dire dans le sens dans lequel les mots sont écrits selon le mode d'écriture du document. Les éléments de bloc (block elements) sont affichés les uns après les autres, à la façon des paragraphes selon le mode d'écriture du document.
- -Par exemple, pour un document français, les éléments en ligne sont affichés les uns à la suite des autres de gauche à droite et les éléments de bloc sont affichés les uns en dessous des autres.
- -Dans l'exemple suivant, on peut voir des boîtes de bloc et des boîtes en ligne. Les deux éléments correspondants aux paragraphes avec des bordures vertes sont des éléments de bloc. Ces deux éléments s'affichent l'un en dessous de l'autre.
- -La première phrase contient également un élément {{HTMLElement("span")}} avec un arrière-plan bleu. C'est un élément en ligne qui s'affiche donc en incise de la phrase.
- -{{EmbedGHLiveSample("css-examples/layout/normal-flow.html", '100%', 720)}}
- -Le flux normal ou « disposition en flux » (Flow Layout) correspond à la façon dont les éléments de bloc et les éléments en ligne sont disposés avant tout changement apporté à leur disposition. Lorsqu'un élément est retiré du flux, il est traité indépendamment.
+ +Avec un flux normal, les éléments en ligne (inline elements) sont affichés dans la direction « en incise », c'est-à-dire dans le sens dans lequel les mots sont écrits selon le mode d'écriture du document. Les éléments de bloc (block elements) sont affichés les uns après les autres, à la façon des paragraphes selon le mode d'écriture du document.
+ +Par exemple, pour un document français, les éléments en ligne sont affichés les uns à la suite des autres de gauche à droite et les éléments de bloc sont affichés les uns en dessous des autres.
+ +Dans l'exemple suivant, on peut voir des boîtes de bloc et des boîtes en ligne. Les deux éléments correspondants aux paragraphes avec des bordures vertes sont des éléments de bloc. Ces deux éléments s'affichent l'un en dessous de l'autre.
+ +La première phrase contient également un élément {{HTMLElement("span")}} avec un arrière-plan bleu. C'est un élément en ligne qui s'affiche donc en incise de la phrase.
+ +{{EmbedGHLiveSample("css-examples/layout/normal-flow.html", '100%', 720)}}
+ +Dans cet article, nous aborderons le concept des contextes de formatage. Ceux-ci peuvent être de dfiférents types : contextes de formatage de bloc, contextes de formatage en ligne, contextes de formatage flexibles. Nous verrons les bases de leur comportement et comment les utiliser.
- -Sur une page web, tout s'inscrit dans un contexte de formatage, une zone qui a été définie pour être organisée d'une certaine façon. Un contexte de formatage en bloc (ou block formatting context (BFC)) organisera ses éléments fils selon une disposition en bloc, un contexte de formatage flexible organisera ses éléments fils comme des objets flexibles, etc. Chaque contexte de formatage possède des règles spécifiques qui décrivent le comportement de la disposition pour ce contexte.
- -L'élément html définit le contexte de formatage de bloc initial pour la page. Cela signifie que tous les éléments contenus dans <html></html> s'organisent selon le flux normal en suivant les règles de la disposition de bloc et en ligne. Les élméents qui participent à un contexte de formatage de bloc (Block formatting context ou BFC en anglais) utilisent les règles décrites par le modèle de boîte CSS qui définit la façon dont les marges, bordures et zones de remplissage (padding) d'un élément interagissent avec les autres blocs du même contexte.
L'élément {{HTMLElement("html")}} n'est pas le seul élément capable de créer un nouveau contexte de formatage de bloc. Des propriétés CSS peuvent également être utilisées afin de créer un contexte de formatage de bloc. Cela peut s'avérer utile car un nouveau contexte se comportera comme notre document : on aura une mini-disposition contenu dans la disposition principale. Un contexte de formatage de bloc contient tout ses éléments fils et ses descendants. Le flottement ({{cssxref("float")}}) ou le dégagement ({{cssxref("clear")}}) ne s'appliqueront qu'aux éléments d'un même contexte de formatage. Les marges ne fusionneront que pour des éléments d'un même contexte formatage.
- -Au delà de l'élément racine du document (ici l'élément html), un nouveau contexte de formatage de bloc est créé dans les situations suivantes :
display: table-cell, y compris pour les cellules de tableau anonymes créées avec les propriétés display: table-*display: table-captionoverflow a une valeur différente de visibledisplay: flow-rootcontent ou strictallPrenons quelques exemples afin de voir les conséquences de la création d'un nouveau contexte de formatage de bloc.
- -Dans le prochain exemple, on a un élément flottant à l'intérieur d'un élément <div> où une bordure est appliquée. Le contenu de cet élément div flotte avec l'élément flottant. Le contenu de l'élément flottant étant plus grand que le contenu environnant, la bordure du div passe sur le contenu flottant. Comme expliqué dans le guide sur les éléments appartenant ou non au flux, l'élément flottant a été retiré du flux afin que l'arrière-plan et la bordure du div ne contienne que le contenu et pas l'élément flottant.
{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/float.html", '100%', 720)}}
- -En créant un nouveau contexte, l'élément flottant serait contenu dans ce contexte. Par le passé, une méthode classique consistait à appliquer overflow: auto ou à utiliser d'autres valeurs que overflow: visible.
{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/bfc-overflow.html", '100%', 720)}}
- -En utilisant overflow: auto, on crée un nouveau contexte de formatage de bloc qui contient l'élément flottant. Notre élément div devient en quelque sorte responsable de sa disposition interne et chaque élément enfant sera intégré dans cette disposition.
Toutefois, utiliser overflow pour créer un nouveau contexte de formatage peut poser problème car la propriété overflow est avant tout conçue pour indiquer au navigateur comment on souhaite gérer le contenu qui dépasse. On peut obtenir des situations où on obtient des barres de défilement indésirables ou des ombres rognées lorsqu'on utilise principalement cette propriété pour créer un nouveau contexte. De plus, cette méthode peut ne pas être évidente et lisible pour un autre développeur et complexifier la maintenance du code associé. Si vous devez utiliser cette méthode, mieux vaudra commenter le code pour l'expliquer.
display: flow-rootUne valeur plus récente de display permet de créer un nouveau contexte de formatage de bloc sans autre effet de bord indésirable. En utilisant display: flow-root sur le bloc englobant, on créera un nouveau contexte de formatage de bloc.
{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/bfc-flow-root.html", '100%', 720)}}
- -Ainsi, en utilisant display: flow-root; sur l'élément {{HTMLElement("div")}} tout son contenu contribue au contexte de formatage de bloc et l'élément flottant n'est plus éjecté en bas de l'élément.
Le nom de cette valeur, flow-root, prend son sens lorsqu'on voit que l'élément agit comme une racine (root) pour le nouveau contexte qui est créé.
Les contextes de formatage en ligne existent au sein des autres contextes de formatage et peuvent être vus comme le contexte d'un paragraphe. Un paragraphe crée un contexte de formatage en ligne au sein duquel les éléments {{HTMLElement("strong")}}, {{HTMLElement("a")}} ou {{HTMLElement("span")}} entre autres, sont utilisés sur du texte.
- -Le modèle de boîte ne s'applique pas complètement aux objets qui s'inscrivent dans un contexte de formatage en ligne. Pour une ligne écrite avec un mode d'écriture horizontal, les remplissages (padding), bordures et marges seront appliqués à l'élément et écarteront le texte environnant à droite et ou à gauche. Le remplissage et bordures verticaux seront appliqués mais peuvent chevaucher le contenu au dessus et en dessous. Pour un contexte de formatage en ligne, les boîtes de ligne ne seront pas décalées par les bordures ou par le remplissage.
- -{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/inline.html", '100%', 720)}}
- -Ce guide porte sur la disposition de flux et n'aborde pas tous les contextes de formatage possibles en dehors de ce type de disposition. Il est important de comprendre que n'importe quel contexte de formatage modifiera la façon dont ses éléments et son contenu sont organisés. Le comportement des autres contextes de formatage est décrit dans les modules de spécification respectifs et sur MDN.
- -Dans ce guide, nous avons approfondi les notions relatives aux contextes de formatage en ligne et de bloc. Dans le prochain guide, nous verrons les interactions entre le flux normal et les différents modes d'écriture.
- -Dans cet article, nous aborderons le concept des contextes de formatage. Ceux-ci peuvent être de dfiférents types : contextes de formatage de bloc, contextes de formatage en ligne, contextes de formatage flexibles. Nous verrons les bases de leur comportement et comment les utiliser.
+ +Sur une page web, tout s'inscrit dans un contexte de formatage, une zone qui a été définie pour être organisée d'une certaine façon. Un contexte de formatage en bloc (ou block formatting context (BFC)) organisera ses éléments fils selon une disposition en bloc, un contexte de formatage flexible organisera ses éléments fils comme des objets flexibles, etc. Chaque contexte de formatage possède des règles spécifiques qui décrivent le comportement de la disposition pour ce contexte.
+ +L'élément html définit le contexte de formatage de bloc initial pour la page. Cela signifie que tous les éléments contenus dans <html></html> s'organisent selon le flux normal en suivant les règles de la disposition de bloc et en ligne. Les élméents qui participent à un contexte de formatage de bloc (Block formatting context ou BFC en anglais) utilisent les règles décrites par le modèle de boîte CSS qui définit la façon dont les marges, bordures et zones de remplissage (padding) d'un élément interagissent avec les autres blocs du même contexte.
L'élément {{HTMLElement("html")}} n'est pas le seul élément capable de créer un nouveau contexte de formatage de bloc. Des propriétés CSS peuvent également être utilisées afin de créer un contexte de formatage de bloc. Cela peut s'avérer utile car un nouveau contexte se comportera comme notre document : on aura une mini-disposition contenu dans la disposition principale. Un contexte de formatage de bloc contient tout ses éléments fils et ses descendants. Le flottement ({{cssxref("float")}}) ou le dégagement ({{cssxref("clear")}}) ne s'appliqueront qu'aux éléments d'un même contexte de formatage. Les marges ne fusionneront que pour des éléments d'un même contexte formatage.
+ +Au delà de l'élément racine du document (ici l'élément html), un nouveau contexte de formatage de bloc est créé dans les situations suivantes :
display: table-cell, y compris pour les cellules de tableau anonymes créées avec les propriétés display: table-*display: table-captionoverflow a une valeur différente de visibledisplay: flow-rootcontent ou strictallPrenons quelques exemples afin de voir les conséquences de la création d'un nouveau contexte de formatage de bloc.
+ +Dans le prochain exemple, on a un élément flottant à l'intérieur d'un élément <div> où une bordure est appliquée. Le contenu de cet élément div flotte avec l'élément flottant. Le contenu de l'élément flottant étant plus grand que le contenu environnant, la bordure du div passe sur le contenu flottant. Comme expliqué dans le guide sur les éléments appartenant ou non au flux, l'élément flottant a été retiré du flux afin que l'arrière-plan et la bordure du div ne contienne que le contenu et pas l'élément flottant.
{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/float.html", '100%', 720)}}
+ +En créant un nouveau contexte, l'élément flottant serait contenu dans ce contexte. Par le passé, une méthode classique consistait à appliquer overflow: auto ou à utiliser d'autres valeurs que overflow: visible.
{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/bfc-overflow.html", '100%', 720)}}
+ +En utilisant overflow: auto, on crée un nouveau contexte de formatage de bloc qui contient l'élément flottant. Notre élément div devient en quelque sorte responsable de sa disposition interne et chaque élément enfant sera intégré dans cette disposition.
Toutefois, utiliser overflow pour créer un nouveau contexte de formatage peut poser problème car la propriété overflow est avant tout conçue pour indiquer au navigateur comment on souhaite gérer le contenu qui dépasse. On peut obtenir des situations où on obtient des barres de défilement indésirables ou des ombres rognées lorsqu'on utilise principalement cette propriété pour créer un nouveau contexte. De plus, cette méthode peut ne pas être évidente et lisible pour un autre développeur et complexifier la maintenance du code associé. Si vous devez utiliser cette méthode, mieux vaudra commenter le code pour l'expliquer.
display: flow-rootUne valeur plus récente de display permet de créer un nouveau contexte de formatage de bloc sans autre effet de bord indésirable. En utilisant display: flow-root sur le bloc englobant, on créera un nouveau contexte de formatage de bloc.
{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/bfc-flow-root.html", '100%', 720)}}
+ +Ainsi, en utilisant display: flow-root; sur l'élément {{HTMLElement("div")}} tout son contenu contribue au contexte de formatage de bloc et l'élément flottant n'est plus éjecté en bas de l'élément.
Le nom de cette valeur, flow-root, prend son sens lorsqu'on voit que l'élément agit comme une racine (root) pour le nouveau contexte qui est créé.
Les contextes de formatage en ligne existent au sein des autres contextes de formatage et peuvent être vus comme le contexte d'un paragraphe. Un paragraphe crée un contexte de formatage en ligne au sein duquel les éléments {{HTMLElement("strong")}}, {{HTMLElement("a")}} ou {{HTMLElement("span")}} entre autres, sont utilisés sur du texte.
+ +Le modèle de boîte ne s'applique pas complètement aux objets qui s'inscrivent dans un contexte de formatage en ligne. Pour une ligne écrite avec un mode d'écriture horizontal, les remplissages (padding), bordures et marges seront appliqués à l'élément et écarteront le texte environnant à droite et ou à gauche. Le remplissage et bordures verticaux seront appliqués mais peuvent chevaucher le contenu au dessus et en dessous. Pour un contexte de formatage en ligne, les boîtes de ligne ne seront pas décalées par les bordures ou par le remplissage.
+ +{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/inline.html", '100%', 720)}}
+ +Ce guide porte sur la disposition de flux et n'aborde pas tous les contextes de formatage possibles en dehors de ce type de disposition. Il est important de comprendre que n'importe quel contexte de formatage modifiera la façon dont ses éléments et son contenu sont organisés. Le comportement des autres contextes de formatage est décrit dans les modules de spécification respectifs et sur MDN.
+ +Dans ce guide, nous avons approfondi les notions relatives aux contextes de formatage en ligne et de bloc. Dans le prochain guide, nous verrons les interactions entre le flux normal et les différents modes d'écriture.
+ +CSS Fonts est un module CSS qui définit des propriétés relatives aux polices de caractères et la façon dont les ressources des polices sont chargées. Il permet de définir le style d'une police, comme sa famille, sa taille ou sa graisse ainsi que la variante du glyphe à utiliser dans le cas des polices disposant de plusieurs glyphes par caractère. Il permet également de définir la hauteur d'une ligne.
- -L'exemple qui suit illustre l'utilisation simple de propriétés relatives aux polices afin de mettre en forme le texte d'un paragraphe.
- -p {
- width: 600px;
- margin: 0 auto;
- font-family: "Helvetica Neue", "Arial", sans-serif;
- font-style: italic;
- font-weight: 100;
- font-variant-ligatures: normal;
- font-size: 2rem;
- letter-spacing: 1px;
-}
-
-<p> - Alice ne fut pas très-étonnée, tant elle commençait à s’habituer aux - événements extraordinaires. Tandis qu’elle regardait encore l’endroit - que le Chat venait de quitter, il reparut tout à coup. -</p>- -
{{EmbedLiveSample('Exemple_simple', '100%', '200')}}
- -Vous pouvez trouver plusieurs exemples utilisant les polices variables sur v-fonts.com et axis-praxis.org. Notre guide sur les polices variables contient des informations et des exemples d'utilisation.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Fonts')}} | -{{Spec2('CSS4 Fonts')}} | -Ajout de font-variation-settings (ainsi que des propriétés de haut niveau associées) et de font-optical-sizing. |
-
| {{SpecName('CSS3 Fonts')}} | -{{Spec2('CSS3 Fonts')}} | -Ajout de font-feature-settings (ainsi que des propriétés de haut niveau associées) |
-
| {{SpecName('CSS2.1', 'fonts.html#font-shorthand', '')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1', '#font', '')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
CSS Fonts est un module CSS qui définit des propriétés relatives aux polices de caractères et la façon dont les ressources des polices sont chargées. Il permet de définir le style d'une police, comme sa famille, sa taille ou sa graisse ainsi que la variante du glyphe à utiliser dans le cas des polices disposant de plusieurs glyphes par caractère. Il permet également de définir la hauteur d'une ligne.
+ +L'exemple qui suit illustre l'utilisation simple de propriétés relatives aux polices afin de mettre en forme le texte d'un paragraphe.
+ +p {
+ width: 600px;
+ margin: 0 auto;
+ font-family: "Helvetica Neue", "Arial", sans-serif;
+ font-style: italic;
+ font-weight: 100;
+ font-variant-ligatures: normal;
+ font-size: 2rem;
+ letter-spacing: 1px;
+}
+
+<p> + Alice ne fut pas très-étonnée, tant elle commençait à s’habituer aux + événements extraordinaires. Tandis qu’elle regardait encore l’endroit + que le Chat venait de quitter, il reparut tout à coup. +</p>+ +
{{EmbedLiveSample('Exemple_simple', '100%', '200')}}
+ +Vous pouvez trouver plusieurs exemples utilisant les polices variables sur v-fonts.com et axis-praxis.org. Notre guide sur les polices variables contient des informations et des exemples d'utilisation.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Fonts')}} | +{{Spec2('CSS4 Fonts')}} | +Ajout de font-variation-settings (ainsi que des propriétés de haut niveau associées) et de font-optical-sizing. |
+
| {{SpecName('CSS3 Fonts')}} | +{{Spec2('CSS3 Fonts')}} | +Ajout de font-feature-settings (ainsi que des propriétés de haut niveau associées) |
+
| {{SpecName('CSS2.1', 'fonts.html#font-shorthand', '')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1', '#font', '')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
Les caractéristiques de police ou variantes font référence à différents glyphes ou styles de caractère contenus dans une police OpenType. Cela inclut notamment les ligatures (des caractères spéciaux qui permettent de combiner des caractères entre eux comme œ qui est la ligature entre o et e), le crénage (kerning en anglais) qui définit l'espacement entre certaines lettres, les fractions et styles numériques, etc. Toutes ces caractéristiques sont des caractéristiques OpenType Features et peuvent être utilisées sur le Web grâce à certaines propriétés spécifiques qui permettent un contrôle de bas niveau comme {{cssxref("font-feature-settings")}}. Dans cet article, nous verrons tout ce qu'il faut savoir pour manipuler les caractéristiques OpenType avec CSS.
- -Pour certaines polices, une ou plusieurs caractéristiques sont activées par défaut (le crénage et les ligatures classiques sont souvent activées par exemple). D'autres caractéristiques sont inactives et peuvent être activées par choix dans certaines situations.
- -En plus des caractéristiques communément utilisées telles que les ligatures ou les chiffres elzéviriens, il existe d'autres caractéristiques spécifiques telles que les ensembles stylistiques, les ensembles alternatifs voire des ensembles avec des altérations spécifiques pour une langue donnée. Pour ce dernier cas, ces altérations sont nécessaires à l'expression correcte du langage et il s'agit donc d'une caractéristique qui dépasse largement l'aspect purement stylistique d'autres caractéristiques.
- -Attention : Il existe de nombreuses propriétés CSS qui permettent de manipuler les caractéristiques de police. Cependant, la plupart ne sont pas encore complètement implémentées ni prises en charge de façon homogène. Nous les verrons dans cet article mais il faudra la plupart du temps utiliser {{cssxref("font-feature-settings")}} pour les définir à un plus bas niveau. Il est possible d'écrire du CSS qui gère ces deux cas mais c'est plus laborieux. Mais lorsqu'on utilise font-feature-settings pour chaque caractéristique, il est nécessaire de réécrire la chaîne entière même si on ne souhaite changer qu'une caractéristique.
Il est parfois délicat de savoir quelles caractéristiques sont disponibles pour une police donnée si celle-ci n'est pas accompagnée d'une documentation (la plupart des fonderies proposeront une page d'exemple et du CSS). Certains sites permettent de contourner ce problème : vous pouvez visiter wakamaifondue.com, y uploader le fichier de la police et recevoir un rapport complet peu de temps après ; le site Axis-praxis.org fournit des fonctionnalités analogues et permet de cliquer pour activer/désactiver une ou plusieurs caractéristiques sur un bloc de texte donné.
- -Étant donné que ces caractéristiques peuvent être difficilement accessibles, on peut légitiement se demander pourquoi il faudrait les utiliser. Pour répondre à cette question, il faut voir comment ces caractéristiques peuvent aider à rendre un site plus lisible, accessible, élégant :
- -Bien qu'aucune de ces caractéristiques ne soit critique pour l'utilisabilité d'un site, chacune d'elle peut rendre un site plus lisible voire raffiné
- --- -Les caractéristiques OpenType ressemblent à des compartiments secrets : en les déverouillant, une police peut évoluer de façon subtile ou complète. Toutes les caractéristiques OpenType ne doivent pas être utilisées tout le temps mais certaines d'entre elles sont majeures pour obtenir une typographie de premier rang. Tim Brown, Directeur de la typographie chez Adobe.
-
Il existe certains cas (notamment avec {{cssxref("font-variant-east-asian")}}) où les caractéristiques OpenType sont directement liées à l'utilisation de formes différentes pour certains glyphes. Ces caractéristiques auront un impact sur la lisibilité mais aussi et surtout sur la signification du texte. Dans ces cas, les caractéristiques de police ne sont pas un outil de style mais font partie intégrante du contenu.
- -Il existe une variété de caractéristiques. Nous les avons ici regroupées selon leurs attributs principaux et les options développées dans les spécifications du W3C.
- -Note : Les exemples qui suivent illustrent certaines propriétés et des combinaisons d'exemple et sont accompagnés des équivalents utilisant la syntaxe de plus bas niveau. Il est possible que ces deux versions d'exemple ne correspondent pas exactement selon l'implémentation des navigateurs. Les polices utilisées ici sont Playfair Display, Source Serif Pro, IBM Plex Serif, Dancing Script et Kokoro (qui sont libres d'utilisation et disponibles via différents services tels que Google Fonts).
-Le crénage correspond à l'espace entre les caractères pour certaines combinaisons de caractères. Cette caractéristique, comme recommandé par la spécification OpenType, est généralement activée par défaut. On notera également que la propriété {{cssxref("letter-spacing")}} permet d'imposer un crénage supplémentaire au texte.
- -Les polices peuvent fournir différentes formes pour différents glyphes. Cette propriété permet d'activer un ensemble de formes alternatives ou une forme alternative spécifique selon la valeur utilisée. Dans l'exemple qui suit, on voit différentes formes d'utilisation des caractères alternatifs. Les polices qui possèdent des glyphes alternatifs peuvent les rendre disponibles sur la grille de caractères ou dans des ensembles stylistiques séparés voire pour des caractères individuels. Dans cet exemple, on utilise deux polices et la règle-@ {{cssxref("@font-feature-values")}}. Cette méthode permet de définir des raccourcis ou des options nommées qui peuvent ensuite être utilisée sur un ensemble de polices. Ainsi, on peut avoir une option appliquée à une police ou appliquée plus généralement.
- -@stylistic(alternates) affichera tous les caractères alternatifs pour chacune des polices. En appliquant uniquement ces règles au mot 'My', seul l'affichage de la lettre 'M' est modifié. Si on applique @styleset(alt-a), seule l'apparence de la lettre a minuscule changera.Vous pouvez modifier :
- -font-variant-alternates: styleset(alt-a);- -
en :
- -font-variant-alternates: styleset(alt-g); -- -
et voir comment la lettre a retrouve sa forme normale et comment la lettre g est modifiée.
- -font-variant-alternatesLes ligatures sont des glyphes qui remplacent deux ou plusieurs glyphes afin de les représenter de façon plus harmonieuse (pour l'espacement et l'esthétique notamment). Certaines de ces ligatures sont fréquemment utilisées (œ) et d'autres sont plus spécialisées et moins usitées (on parle de « ligatures discrétionaires », de « ligatures historiques » ou encore d' « alternatifs contextuels »).
- -Bien qu'elles soient plus fréquemment utilisées avec les polices d'écriture, dans l'exemple qui suit, on les utilise afin de créer des flèches :
- -Les variantes de positions permettent d'activer le support typographique des glyphes pour les exposants et les indices. Celles-ci sont utilisées dans le texte sans modifier la ligne de base ou l'interlignage (c'est un des avantages par rapport à l'utilisation des éléments HTML {{htmlelement("sub")}} et {{cssxref("sup")}}).
- -Une utilisation fréquente des caractéristiques OpenType est l'activation de « vraies » petites capitales qui sont généralement utilisées pour les acronymes et les abréviations.
- -Il existe généralement différents types de chiffre dans les polices :
- -On y retrouve également la notion d'espacement. L'espacement proportionnel est le réglage par défaut et l'espacement tabulaire permet d'avoir un espace identique entre chaque chiffre, quelle que soit la largeur du caractère. Ce dernier mode est notamment utile pour l'affichage de nombre dans des tableaux (où on peut souhaiter comparer des montants d'une ligne à l'autre).
- -Deux types de fractions peuvent être prises en charge avec cette propriété :
- -Les nombres ordinaux peuvent également être pris en charge (« 1er », « 2e ») s'ils sont présents dans la police. De même on peut utiliser un zéro barré si celui-ci est disponible.
- -Cette caractéristique permet d'accéder à différentes formes alternatives de glyphes dans une police. L'exemple qui suit illustre une chaîne de glyphes où seul l'ensemble OpenType 'jis78' est activé. Vous pouvez décocher la case et voir alors d'autres caractères s'afficher.
- -Note : Ces glyphes ont été copiés à partir d'un exemple et le texte qu'ils constituent n'ont aucun sens particulier.
-La propriété raccourcie font-variant permet de définir l'ensemble des caractéristiques précédentes. Lorsqu'on utilise la valeur normal, toutes les caractéristiques sont réinitialisées et retrouvent leurs valeurs par défaut. En utilisant none, font-variant-ligatures vaudra none et toutes les autres propriétés récupèreront leurs valeurs initiales (cela signifie entre autres que si le crénage est activé par défaut, il sera toujours activé, même lorsque none est fourni).
font-feature-settingsLa propriété {{cssxref("font-feature-settings")}} permet d'utiliser une syntaxe « bas niveau » qui permet un accès explicite à chaque caractéristique OpenType disponible. On dispose ainsi d'un contrôle accru mais on perd l'héritage et il faut tout redéclarer à chaque fois qu'on souhaite modifier une caractéristique (sauf à utiliser des propriétés CSS personnalisées afin de définir les valeurs). Aussi, mieux vaut utiliser les propriétés standards lorsque c'est possible.
- -Il existe une myriade de caractéristiques possibles. Vous pouvez en voir quelques exemples ici et il existe plusieurs ressources pour en exploiter d'autres.
- -La syntaxe générale suivra cette structure :
- -.small-caps {
- font-feature-settings: "smcp", "c2sc";
-}
-
-
-Selon la spécification, on peut fournir le code à quatre caractères de la caractéristique ou fournir le code suivi d'un 1 pour activer la fonctionnalité ou suivi d'un 0 pour la désactiver. Ainsi, si on dispose de caractéristiques liées à la ligatures et qui sont activées par défaut, on peut les désactiver de la façon suivante :
- -.no-ligatures {
- font-feature-settings: "liga" 0, "dlig" 0;
-}
-
-font-feature-settingsÉtant donné que toutes les propriétés ne sont pas implémentées de façon homogène, il est préférable d'utiliser la règle @ {{cssxref("@supports")}} pour vérifier quelles propriétés peuvent être utilisées correctement et s'en remettre à {{cssxref("font-feature-settings")}} si nécessaire.
- -Ainsi, les petites capitales peuvent être activées de différentes façons mais si on veut s'assurer que la mise en forme fonctionne quelle que soit la capitalisation, il faudra 2 paramètres avec font-feature-settings et une seule valeur pour {{cssxref("font-variant-caps")}}.
.small-caps {
- font-feature-settings: "smcp", "c2sc";
-}
-
-@supports (font-variant-caps: all-small-caps) {
- .small-caps {
- font-feature-settings: normal;
- font-variant-caps: all-small-caps;
- }
-}
-
-
-font-variant-alternatives, spécifiée dans le module CSS Fonts de niveau 4 (en anglais)Les caractéristiques de police ou variantes font référence à différents glyphes ou styles de caractère contenus dans une police OpenType. Cela inclut notamment les ligatures (des caractères spéciaux qui permettent de combiner des caractères entre eux comme œ qui est la ligature entre o et e), le crénage (kerning en anglais) qui définit l'espacement entre certaines lettres, les fractions et styles numériques, etc. Toutes ces caractéristiques sont des caractéristiques OpenType Features et peuvent être utilisées sur le Web grâce à certaines propriétés spécifiques qui permettent un contrôle de bas niveau comme {{cssxref("font-feature-settings")}}. Dans cet article, nous verrons tout ce qu'il faut savoir pour manipuler les caractéristiques OpenType avec CSS.
+ +Pour certaines polices, une ou plusieurs caractéristiques sont activées par défaut (le crénage et les ligatures classiques sont souvent activées par exemple). D'autres caractéristiques sont inactives et peuvent être activées par choix dans certaines situations.
+ +En plus des caractéristiques communément utilisées telles que les ligatures ou les chiffres elzéviriens, il existe d'autres caractéristiques spécifiques telles que les ensembles stylistiques, les ensembles alternatifs voire des ensembles avec des altérations spécifiques pour une langue donnée. Pour ce dernier cas, ces altérations sont nécessaires à l'expression correcte du langage et il s'agit donc d'une caractéristique qui dépasse largement l'aspect purement stylistique d'autres caractéristiques.
+ +Attention : Il existe de nombreuses propriétés CSS qui permettent de manipuler les caractéristiques de police. Cependant, la plupart ne sont pas encore complètement implémentées ni prises en charge de façon homogène. Nous les verrons dans cet article mais il faudra la plupart du temps utiliser {{cssxref("font-feature-settings")}} pour les définir à un plus bas niveau. Il est possible d'écrire du CSS qui gère ces deux cas mais c'est plus laborieux. Mais lorsqu'on utilise font-feature-settings pour chaque caractéristique, il est nécessaire de réécrire la chaîne entière même si on ne souhaite changer qu'une caractéristique.
Il est parfois délicat de savoir quelles caractéristiques sont disponibles pour une police donnée si celle-ci n'est pas accompagnée d'une documentation (la plupart des fonderies proposeront une page d'exemple et du CSS). Certains sites permettent de contourner ce problème : vous pouvez visiter wakamaifondue.com, y uploader le fichier de la police et recevoir un rapport complet peu de temps après ; le site Axis-praxis.org fournit des fonctionnalités analogues et permet de cliquer pour activer/désactiver une ou plusieurs caractéristiques sur un bloc de texte donné.
+ +Étant donné que ces caractéristiques peuvent être difficilement accessibles, on peut légitiement se demander pourquoi il faudrait les utiliser. Pour répondre à cette question, il faut voir comment ces caractéristiques peuvent aider à rendre un site plus lisible, accessible, élégant :
+ +Bien qu'aucune de ces caractéristiques ne soit critique pour l'utilisabilité d'un site, chacune d'elle peut rendre un site plus lisible voire raffiné
+ +++ +Les caractéristiques OpenType ressemblent à des compartiments secrets : en les déverouillant, une police peut évoluer de façon subtile ou complète. Toutes les caractéristiques OpenType ne doivent pas être utilisées tout le temps mais certaines d'entre elles sont majeures pour obtenir une typographie de premier rang. Tim Brown, Directeur de la typographie chez Adobe.
+
Il existe certains cas (notamment avec {{cssxref("font-variant-east-asian")}}) où les caractéristiques OpenType sont directement liées à l'utilisation de formes différentes pour certains glyphes. Ces caractéristiques auront un impact sur la lisibilité mais aussi et surtout sur la signification du texte. Dans ces cas, les caractéristiques de police ne sont pas un outil de style mais font partie intégrante du contenu.
+ +Il existe une variété de caractéristiques. Nous les avons ici regroupées selon leurs attributs principaux et les options développées dans les spécifications du W3C.
+ +Note : Les exemples qui suivent illustrent certaines propriétés et des combinaisons d'exemple et sont accompagnés des équivalents utilisant la syntaxe de plus bas niveau. Il est possible que ces deux versions d'exemple ne correspondent pas exactement selon l'implémentation des navigateurs. Les polices utilisées ici sont Playfair Display, Source Serif Pro, IBM Plex Serif, Dancing Script et Kokoro (qui sont libres d'utilisation et disponibles via différents services tels que Google Fonts).
+Le crénage correspond à l'espace entre les caractères pour certaines combinaisons de caractères. Cette caractéristique, comme recommandé par la spécification OpenType, est généralement activée par défaut. On notera également que la propriété {{cssxref("letter-spacing")}} permet d'imposer un crénage supplémentaire au texte.
+ +Les polices peuvent fournir différentes formes pour différents glyphes. Cette propriété permet d'activer un ensemble de formes alternatives ou une forme alternative spécifique selon la valeur utilisée. Dans l'exemple qui suit, on voit différentes formes d'utilisation des caractères alternatifs. Les polices qui possèdent des glyphes alternatifs peuvent les rendre disponibles sur la grille de caractères ou dans des ensembles stylistiques séparés voire pour des caractères individuels. Dans cet exemple, on utilise deux polices et la règle-@ {{cssxref("@font-feature-values")}}. Cette méthode permet de définir des raccourcis ou des options nommées qui peuvent ensuite être utilisée sur un ensemble de polices. Ainsi, on peut avoir une option appliquée à une police ou appliquée plus généralement.
+ +@stylistic(alternates) affichera tous les caractères alternatifs pour chacune des polices. En appliquant uniquement ces règles au mot 'My', seul l'affichage de la lettre 'M' est modifié. Si on applique @styleset(alt-a), seule l'apparence de la lettre a minuscule changera.Vous pouvez modifier :
+ +font-variant-alternates: styleset(alt-a);+ +
en :
+ +font-variant-alternates: styleset(alt-g); ++ +
et voir comment la lettre a retrouve sa forme normale et comment la lettre g est modifiée.
+ +font-variant-alternatesLes ligatures sont des glyphes qui remplacent deux ou plusieurs glyphes afin de les représenter de façon plus harmonieuse (pour l'espacement et l'esthétique notamment). Certaines de ces ligatures sont fréquemment utilisées (œ) et d'autres sont plus spécialisées et moins usitées (on parle de « ligatures discrétionaires », de « ligatures historiques » ou encore d' « alternatifs contextuels »).
+ +Bien qu'elles soient plus fréquemment utilisées avec les polices d'écriture, dans l'exemple qui suit, on les utilise afin de créer des flèches :
+ +Les variantes de positions permettent d'activer le support typographique des glyphes pour les exposants et les indices. Celles-ci sont utilisées dans le texte sans modifier la ligne de base ou l'interlignage (c'est un des avantages par rapport à l'utilisation des éléments HTML {{htmlelement("sub")}} et {{cssxref("sup")}}).
+ +Une utilisation fréquente des caractéristiques OpenType est l'activation de « vraies » petites capitales qui sont généralement utilisées pour les acronymes et les abréviations.
+ +Il existe généralement différents types de chiffre dans les polices :
+ +On y retrouve également la notion d'espacement. L'espacement proportionnel est le réglage par défaut et l'espacement tabulaire permet d'avoir un espace identique entre chaque chiffre, quelle que soit la largeur du caractère. Ce dernier mode est notamment utile pour l'affichage de nombre dans des tableaux (où on peut souhaiter comparer des montants d'une ligne à l'autre).
+ +Deux types de fractions peuvent être prises en charge avec cette propriété :
+ +Les nombres ordinaux peuvent également être pris en charge (« 1er », « 2e ») s'ils sont présents dans la police. De même on peut utiliser un zéro barré si celui-ci est disponible.
+ +Cette caractéristique permet d'accéder à différentes formes alternatives de glyphes dans une police. L'exemple qui suit illustre une chaîne de glyphes où seul l'ensemble OpenType 'jis78' est activé. Vous pouvez décocher la case et voir alors d'autres caractères s'afficher.
+ +Note : Ces glyphes ont été copiés à partir d'un exemple et le texte qu'ils constituent n'ont aucun sens particulier.
+La propriété raccourcie font-variant permet de définir l'ensemble des caractéristiques précédentes. Lorsqu'on utilise la valeur normal, toutes les caractéristiques sont réinitialisées et retrouvent leurs valeurs par défaut. En utilisant none, font-variant-ligatures vaudra none et toutes les autres propriétés récupèreront leurs valeurs initiales (cela signifie entre autres que si le crénage est activé par défaut, il sera toujours activé, même lorsque none est fourni).
font-feature-settingsLa propriété {{cssxref("font-feature-settings")}} permet d'utiliser une syntaxe « bas niveau » qui permet un accès explicite à chaque caractéristique OpenType disponible. On dispose ainsi d'un contrôle accru mais on perd l'héritage et il faut tout redéclarer à chaque fois qu'on souhaite modifier une caractéristique (sauf à utiliser des propriétés CSS personnalisées afin de définir les valeurs). Aussi, mieux vaut utiliser les propriétés standards lorsque c'est possible.
+ +Il existe une myriade de caractéristiques possibles. Vous pouvez en voir quelques exemples ici et il existe plusieurs ressources pour en exploiter d'autres.
+ +La syntaxe générale suivra cette structure :
+ +.small-caps {
+ font-feature-settings: "smcp", "c2sc";
+}
+
+
+Selon la spécification, on peut fournir le code à quatre caractères de la caractéristique ou fournir le code suivi d'un 1 pour activer la fonctionnalité ou suivi d'un 0 pour la désactiver. Ainsi, si on dispose de caractéristiques liées à la ligatures et qui sont activées par défaut, on peut les désactiver de la façon suivante :
+ +.no-ligatures {
+ font-feature-settings: "liga" 0, "dlig" 0;
+}
+
+font-feature-settingsÉtant donné que toutes les propriétés ne sont pas implémentées de façon homogène, il est préférable d'utiliser la règle @ {{cssxref("@supports")}} pour vérifier quelles propriétés peuvent être utilisées correctement et s'en remettre à {{cssxref("font-feature-settings")}} si nécessaire.
+ +Ainsi, les petites capitales peuvent être activées de différentes façons mais si on veut s'assurer que la mise en forme fonctionne quelle que soit la capitalisation, il faudra 2 paramètres avec font-feature-settings et une seule valeur pour {{cssxref("font-variant-caps")}}.
.small-caps {
+ font-feature-settings: "smcp", "c2sc";
+}
+
+@supports (font-variant-caps: all-small-caps) {
+ .small-caps {
+ font-feature-settings: normal;
+ font-variant-caps: all-small-caps;
+ }
+}
+
+
+font-variant-alternatives, spécifiée dans le module CSS Fonts de niveau 4 (en anglais)Les polices variables sont une évolution de la spécification OpenType et qui permet d'activer différentes variations d'une police dans un seul fichier plutôt que d'avoir différents fichiers pour chaque taille, graisse ou style. En CSS, on peut accéder à l'ensemble des variations en utilisant une seule référence {{cssxref("@font-face")}}. Dans cet article, nous verrons tout ce qu'il faut savoir pour commencer à utiliser les polices variables.
- -Attention : Afin d'utiliser les polices variables, il faut s'assurer que son système d'exploitation est à jour. Pour les systèmes basés sur GNU/Linux, il faut la version la plus récente de Linux Freetype. Pour macOS, les versions antérieures à 10.13 ne prennent pas en charge les polices variables. Si votre système d'exploitation n'est pas à jour ou ne prend pas en charge les polices variables, vous ne pourrez pas en bénéficier sur le Web ou dans les outils de développement Firefox par exemple.
-Pour mieux comprendre le fonctionnement des polices variables, revenons sur les polices « statiques » et comparons les deux systèmes.
- -Auparavant, une police de caractères était représentées par différents fichiers pour les différentes fontes. Aussi, on avait par exemple différents fichiers pour 'Roboto Regular', 'Roboto Bold' et 'Roboto Bold Italic' et on pouvait avoir 20 à 30 fichiers distincts pour représenter l'intégralité d'une police.
- -Avec un tel scénario et pour utiliser une police de façon classique sur un site, il fallait au moins quatre fichier pour les différents styles : normal, italique, gras et gras-italique. Si on souhaitait ajouter un autre niveau de graisse (par exemple une fonte plus légère pour les légendes), il fallait rajouter un fichier. Sur le réseau, cela se traduisait par d'autres requêtes HTTP et plus de données téléchargées (environ 20Ko pour chaque fichier).
- -Avec une police variable, toutes ces combinaisons de style et de graisse sont contenues dans un seul fichier. On a donc un fichier plus gros qu'un fichier de police classique mais dont la taille est inférieure ou proche de celle des 4 fichiers qu'on chargerait pour la police principale d'un site. L'avantage d'une police variable est qu'on peut accéder à l'intégralité des corps, graisses et italiques sans être plus contraint par ceux du ou des fichiers chargés séparément.
- -Cela permet d'utiliser des techniques typographiques classiques pour avoir des niveaux de titre avec différents corps, d'utiliser une fonte plus étroite lorsqu'il y a plus de données à afficher, etc. Dans un magazine, par exemple, il n'est pas rare d'avoir un système typographique qui utilise 10 à 15 fontes qui sont autant de combinaisons de corps et de graisse.
- -On a mentionné avant qu'on avait différents fichiers pour chaque graisse et italique et qu'on ne demandait pas au navigateur de synthétiser ces aspects. En effet, la plupart des polices ont des dessins spécifiques pour chaque graisse et chaque niveau d'italique (le a et le g minuscule sont souvent assez différents en italique par exemple). Afin de respecter ces spécificités et d'éviter les différences entre les implémentations des navigateurs, on préfèrera charger les fichiers correspondant à chaque graisse / italique lorsqu'on n'utilise pas de police variable.
- -Vous pourrez aussi remarquer que certaines polices viennent avec deux fichiers : un contenant les caractères sans italique et leurs variations et un autre contenant les variations italiques. Cette méthode est parfois choisie afin de réduire la taille du fichier lorsqu'on n'a pas besoin des italiques. Dans tous les cas, il est toujours possible de les lier avec un nom {{cssxref("font-family")}} et d'appeler chaque style avec la valeur pertinente pour {{cssxref("font-style")}}.
- -Le concept clé des polices variables est celui d'axe de variation qui décrit l'intervalle autorisé pour faire varier un aspect donné d'une police. Ainsi, l'axe de la graisse décrit l'étendue entre les caractères les plus fins et les plus gras qui puissent être ; l'axe de la largeur parcourt l'étroitesse ou la largeur de la police ; l'axe italique décrit si des formes italiques sont présentes, etc. Un axe peut être un intervalle ou un choix binaire. Ainsi, la graisse pourra varier entre 1 et 999 tandis que l'italique pourrait être uniquement activable ou désactivable (1 ou 0 respectivement).
- -Comme indiqué dans la spécification, deux types d'axe existent : les axes enregistrés et les axes spécifiques (custom axes) :
- -Les axes enregistrés sont ceux que l'on rencontre le plus souvent et qui ont donc été standardisés dans la spécification. À l'heure actuelle, il existe 5 axes enregistrés : le corps, la largeur, la pente, l'italique et la taille optique. Chacun de ces axes possède un attribut CSS correspondant.
-Les axes spécifiques peuvent être n'importe quel axe défini par le concepteur de la police. Chaque axe doit simplement être défini par une étiquette avec quatre lettres qui permettront de l'identifier. Ces étiquettes pourront être utilisées dans le code CSS pour indiquer quel niveau de variation utiliser (cf. exemples ci-après).
-Dans cette section, nous verrons en détails les cinq axes enregistrés ainsi que des exemples CSS associés. Dans les cas où c'est possible, nous inclurons la syntaxe standard et la syntaxe de plus bas niveau qui utilise ({{cssxref("font-variation-settings")}}).
- -Cette propriété fut le premier mécanisme implémenté pour tester les premières implémentations des polices variables et elle reste nécessaire pour utiliser de nouveaux axes ou des axes spécifiques au-delà des cinq axes enregistrés. Toutefois, lorsque c'est possible, cette syntaxe ne doit pas être utilisée si une propriété de plus haut niveau est disponible. Autrement dit, font-variation-settings doit uniquement être utilisée afin de définir des valeurs pour des axes qui ne seraient pas accessibles autrement.
Les noms d'axes utilisés avec font-variation-settings sont sensibles à la casse. Les noms des axes enregistrés doivent être écrits en minuscules et les noms des axes spécifiques doivent être écrits en majuscules. Ainsi, dans ce cas :
font-variation-settings: 'wght' 375, 'GRAD' 88;- -
wght correspondra à l'axe enregistré du même nom et GRAD à un axe spécifique.
Si on a défini des valeurs avec font-variation-settings et qu'on souhaite changer une de ces valeurs, il sera nécessaire de redéclarer l'ensemble des valeurs (de la même façon qu'on doit redéclarer l'ensemble des caractéristiques OpenType avec {{cssxref("font-feature-settings")}}). Il est possible de contourner cet écueil en utilisant des propriétés CSS personnalisées pour les valeurs individuelles et en modifiant uniquement la valeur d'une des propriétés personnalisée (cf. l'exemple en fin d'article).
La graisse (représenté par l'étiquette wght) définit l'épaisseur des traits formants les caractères. En CSS, le descripteur {{cssxref("font-weight")}} a depuis longtemps permis d'utiliser différentes graisses avec des valeurs numériques comprises entre 100 et 900 (avec des incréments de 100) ou des mots-clés tels que normal ou bold qui étaient des alias pour une valeur numérique correspondante (400 et 700 ici). Ces valeurs sont toujours utilisables pour les polices statiques mais il est désormais possible d'utiliser n'importe quel entier entre 1 et 1000 dans le cas de polices variables.
On notera qu'il n'est pas possible d'utiliser la déclaration @font-face afin qu'un point donné sur cet axe corresponde au mot-clé bold (ou tout autre mot-clé). Cela pourra généralement être résolu simplement mais nécessitera d'écrire plus de CSS :
font-weight: 375; - -font-variation-settings: 'wght' 375;- -
Vous pouvez éditer l'exemple CSS suivant pour voir l'effet sur la graisse de la police.
- -La largeur (indiquée par l'étiquette wdth) correspond à l'axe selon lequel les caractères sont plus ou moins étroits ou larges. En CSS, c'est le descripteur {{cssxref("font-stretch")}} qui peut être utilisé avec un pourcentage inférieur ou supérieur à 100% (la largeur « normale ») ou avec n'importe quel nombre positif. Si une valeur numérique est fournie et se situe en dehors de l'intervalle couvert par la police variable, le navigateur devra choisir la valeur la plus proche possible.
Note : Lorsqu'on utilise la notation « bas niveau » avec font-variation-settings, on n'écrit pas le caractère %.
font-stretch: 115%; - -font-variation-settings: 'wdth' 115; -- -
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
- -L'axe italique (ital) fonctionne différemment car il ne s'agit pas d'un intervalle mais d'une option activée ou désactivée : il n'y a pas de valeurs intermédiaires. Les caractères en italique sont la plupart du temps très différents de leur équivalent sans italique et passer d'un mode à l'autre entraîne généralement l'utilisation de glyphes différents. Attention à ne pas confondre l'italique et l'oblique (cf. l'axe de pente ci-après) : une police aura une forme italique ou une variabilité sur l'axe de pente mais rarement les deux.
En CSS, l'italique est appliqué grâce à la propriété {{cssxref("font-style")}} (qui permet aussi d'appliquer l'oblique). On notera l'apparition de la propriété font-synthesis: none; qui empêche les navigateurs de synthétiser l'italique en penchant les caractères (on pourra aussi utiliser cette valeur de façon équivalente pour éviter de synthétiser la graisse).
font-style: italic; - -font-variation-settings: 'ital' 1; - -font-synthesis: none;- -
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
- -La pente (indiquée par l'étiquette slnt), également appelée « oblique », diffère de l'italique car elle applique une pente sur les caractères mais ne change aucun des glyphes. Cet axe est un intervalle numérique allant généralement de 0 (droit) à 20 degrés. Toutefois, les valeurs allant de -90 et à 90 (degrés) sont autorisées. C'est également le descripteur font-style qui peut être utilisé pour cet axe.
Note : Le mot-clé deg ne doit pas être utilisé comme unité pour la notation avec font-variation-settings.
font-style: oblique 14deg; - -font-variation-settings: 'slnt' 14;- -
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
- -La taille optique, indiquée par l'étiquette opsz, correspond à la variation de l'épaisseur des traits formants le caractère afin de s'assurer que celui-ci puisse être lu avec un petit corps et ainsi de garantir une bonne impression ou un bon affichage à l'écran.
Ainsi, pour les petits corps, on pourra avoir des traits plus épais et pour des grands corps, on pourra avoir une variation d'épaisseur plus importante entre les différents traits du caractères pour développer correctement le dessin de la police.
- -La plupart du temps, les valeurs liées à la taille optique sont appliquées automatiquement avec les valeurs correspondantes de font-size mais on peut tout à fait les manipuler avec la syntaxe de bas niveau font-variation-settings.
Une nouvelle propriété CSS a été créée afin de prendre en charge cet axe avec une syntaxe haut niveau pour les polices variables : {{cssxref("font-optical-sizing")}}. Le descripteur font-optical-sizing permet uniquement d'utiliser les valeurs auto ou none et ainsi uniquement d'activer ou de désactiver le dimensionnement optique. Toutefois, avec font-variation-settings: 'opsz' <num>, on peut fournir une valeur numérique. Dans la plupart des cas, on utilisera la même valeur pour font-size et pour opsz. Il est ici permis d'utiliser une autre valeur spécifique afin d'améliorer la lisibilité ou d'obtenir un effet esthétique.
font-optical-sizing: auto; - -font-variation-settings: 'opsz' 36;- -
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
- -Les axes spécifiques sont introduits spécifiquement par les concepteurs de polices et peuvent correspondre à n'importe quelle variation. Il est possible que certains axes spécifiques deviennent fréquemment utilisés voire finissent par être intégrés aux axes enregistrés mais seul l'avenir le dira avec certitude.
- -Le grade est une variation qui consiste à épaissir certains des traits des glyphes sans agrandir la largeur totale du glyphe. En augmentant le grade, on a ainsi un caractère plus « dense ». Il ne faut pas confondre le corps et le grade : le premier augmente la taille générale, largeur incluse, des glyphes tandis que le second ne modifie pas l'espace physique occupé par le caractère. Le grade est un axe spécifique plutôt populaire car il permet de faire varier la densité apparente du texte sans modifier sa largeur et ainsi il évite de générer un décalage du texte.
- -font-variation-settings: 'GRAD' 88;- -
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
- -@font-facePour charger une police variable, la syntaxe est proche de celle utilisée pour les polices statiques. Les quelques différences notables sont apportées par des ajouts à la syntaxe {{cssxref("@font-face")}} disponible dans la plupart des navigateurs modernes.
- -La syntaxe de base est la même mais on peut indiquer la technologie utilisée pour la police ainsi que les intervalles autorisés pour les descripteurs font-weight et font-stretch.
@font-face {
- font-family: 'MyVariableFontName';
- src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
- font-weight: 125 950;
- font-stretch: 75% 125%;
- font-style: normal;
-}
-
-
-@font-face {
- font-family: 'MyVariableFontName';
- src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
- font-weight: 125 950;
- font-stretch: 75% 125%;
- font-style: oblique 0deg 20deg;
-}
-
-Note : Il n'existe pas de valeur spécifique pour la mesure du degré supérieur. Les valeurs fournies à font-style indiquent simplement qu'un axe est présent afin que le navigateur puisse afficher correctement les caractères droits ou en italique.
@font-face {
- font-family: 'MyVariableFontName';
- src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
- font-weight: 125 950;
- font-stretch: 75% 125%;
- font-style: italic;
-}
-
-@font-face {
- font-family: 'MyVariableFontName';
- src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
- font-weight: 125 950;
- font-stretch: 75% 125%;
- font-style: oblique 0deg 12deg;
-}
-
-Note : La syntaxe complète n'est pas implémentée par l'ensemble des navigateurs et il faudra donc tester avec précaution. Tous les navigateurs qui prennent en charge les polices variables sauront les afficher même si seul le format de fichier est indiqué (plutôt que le format complet : par exemple woff2 à la place de woff2-variations), mais mieux vaut utiliser la syntaxe la plus précise si possible.
Note : Fournir des valeurs d'intervalle pour font-weight, font-stretch et font-style empêchera le navigateur d'afficher des polices en dehors de ces intervalles en utilisant les attributs font-weight ou font-stretch. En revanche, cela ne bloquera pas la syntaxe de plus bas niveau avec font-variation-settings !
La prise en charge des polices variables peut être vérifié grâce à {{cssxref("@supports")}}. Il est donc possible d'utiliser des polices variables en production et de limiter la portée des polices variables à l'intérieur d'une requête de prise en charge.
- -h1 {
- font-family: some-non-variable-font-family;
-}
-
-@supports (font-variation-settings: 'wdth' 115) {
- h1 {
- font-family: some-variable-font-family;
- }
-}
-
-Les pages d'exemples suivantes illustrent deux façons pour structurer le CSS. La première utilise les attributs standards où c'est possible et la seconde utilise les propriétés personnalisées afin de définir les valeur pour la chaîne de caractères fournie à font-variation-settings et montre comment mettre à jour une valeur plutôt que de redéfinir l'intégralité de la chaîne de caractères. On notera aussi l'effet au survol (hover) sur l'élément h2 qui ne joue que sur l'axe de grade.
Les polices variables sont une évolution de la spécification OpenType et qui permet d'activer différentes variations d'une police dans un seul fichier plutôt que d'avoir différents fichiers pour chaque taille, graisse ou style. En CSS, on peut accéder à l'ensemble des variations en utilisant une seule référence {{cssxref("@font-face")}}. Dans cet article, nous verrons tout ce qu'il faut savoir pour commencer à utiliser les polices variables.
+ +Attention : Afin d'utiliser les polices variables, il faut s'assurer que son système d'exploitation est à jour. Pour les systèmes basés sur GNU/Linux, il faut la version la plus récente de Linux Freetype. Pour macOS, les versions antérieures à 10.13 ne prennent pas en charge les polices variables. Si votre système d'exploitation n'est pas à jour ou ne prend pas en charge les polices variables, vous ne pourrez pas en bénéficier sur le Web ou dans les outils de développement Firefox par exemple.
+Pour mieux comprendre le fonctionnement des polices variables, revenons sur les polices « statiques » et comparons les deux systèmes.
+ +Auparavant, une police de caractères était représentées par différents fichiers pour les différentes fontes. Aussi, on avait par exemple différents fichiers pour 'Roboto Regular', 'Roboto Bold' et 'Roboto Bold Italic' et on pouvait avoir 20 à 30 fichiers distincts pour représenter l'intégralité d'une police.
+ +Avec un tel scénario et pour utiliser une police de façon classique sur un site, il fallait au moins quatre fichier pour les différents styles : normal, italique, gras et gras-italique. Si on souhaitait ajouter un autre niveau de graisse (par exemple une fonte plus légère pour les légendes), il fallait rajouter un fichier. Sur le réseau, cela se traduisait par d'autres requêtes HTTP et plus de données téléchargées (environ 20Ko pour chaque fichier).
+ +Avec une police variable, toutes ces combinaisons de style et de graisse sont contenues dans un seul fichier. On a donc un fichier plus gros qu'un fichier de police classique mais dont la taille est inférieure ou proche de celle des 4 fichiers qu'on chargerait pour la police principale d'un site. L'avantage d'une police variable est qu'on peut accéder à l'intégralité des corps, graisses et italiques sans être plus contraint par ceux du ou des fichiers chargés séparément.
+ +Cela permet d'utiliser des techniques typographiques classiques pour avoir des niveaux de titre avec différents corps, d'utiliser une fonte plus étroite lorsqu'il y a plus de données à afficher, etc. Dans un magazine, par exemple, il n'est pas rare d'avoir un système typographique qui utilise 10 à 15 fontes qui sont autant de combinaisons de corps et de graisse.
+ +On a mentionné avant qu'on avait différents fichiers pour chaque graisse et italique et qu'on ne demandait pas au navigateur de synthétiser ces aspects. En effet, la plupart des polices ont des dessins spécifiques pour chaque graisse et chaque niveau d'italique (le a et le g minuscule sont souvent assez différents en italique par exemple). Afin de respecter ces spécificités et d'éviter les différences entre les implémentations des navigateurs, on préfèrera charger les fichiers correspondant à chaque graisse / italique lorsqu'on n'utilise pas de police variable.
+ +Vous pourrez aussi remarquer que certaines polices viennent avec deux fichiers : un contenant les caractères sans italique et leurs variations et un autre contenant les variations italiques. Cette méthode est parfois choisie afin de réduire la taille du fichier lorsqu'on n'a pas besoin des italiques. Dans tous les cas, il est toujours possible de les lier avec un nom {{cssxref("font-family")}} et d'appeler chaque style avec la valeur pertinente pour {{cssxref("font-style")}}.
+ +Le concept clé des polices variables est celui d'axe de variation qui décrit l'intervalle autorisé pour faire varier un aspect donné d'une police. Ainsi, l'axe de la graisse décrit l'étendue entre les caractères les plus fins et les plus gras qui puissent être ; l'axe de la largeur parcourt l'étroitesse ou la largeur de la police ; l'axe italique décrit si des formes italiques sont présentes, etc. Un axe peut être un intervalle ou un choix binaire. Ainsi, la graisse pourra varier entre 1 et 999 tandis que l'italique pourrait être uniquement activable ou désactivable (1 ou 0 respectivement).
+ +Comme indiqué dans la spécification, deux types d'axe existent : les axes enregistrés et les axes spécifiques (custom axes) :
+ +Les axes enregistrés sont ceux que l'on rencontre le plus souvent et qui ont donc été standardisés dans la spécification. À l'heure actuelle, il existe 5 axes enregistrés : le corps, la largeur, la pente, l'italique et la taille optique. Chacun de ces axes possède un attribut CSS correspondant.
+Les axes spécifiques peuvent être n'importe quel axe défini par le concepteur de la police. Chaque axe doit simplement être défini par une étiquette avec quatre lettres qui permettront de l'identifier. Ces étiquettes pourront être utilisées dans le code CSS pour indiquer quel niveau de variation utiliser (cf. exemples ci-après).
+Dans cette section, nous verrons en détails les cinq axes enregistrés ainsi que des exemples CSS associés. Dans les cas où c'est possible, nous inclurons la syntaxe standard et la syntaxe de plus bas niveau qui utilise ({{cssxref("font-variation-settings")}}).
+ +Cette propriété fut le premier mécanisme implémenté pour tester les premières implémentations des polices variables et elle reste nécessaire pour utiliser de nouveaux axes ou des axes spécifiques au-delà des cinq axes enregistrés. Toutefois, lorsque c'est possible, cette syntaxe ne doit pas être utilisée si une propriété de plus haut niveau est disponible. Autrement dit, font-variation-settings doit uniquement être utilisée afin de définir des valeurs pour des axes qui ne seraient pas accessibles autrement.
Les noms d'axes utilisés avec font-variation-settings sont sensibles à la casse. Les noms des axes enregistrés doivent être écrits en minuscules et les noms des axes spécifiques doivent être écrits en majuscules. Ainsi, dans ce cas :
font-variation-settings: 'wght' 375, 'GRAD' 88;+ +
wght correspondra à l'axe enregistré du même nom et GRAD à un axe spécifique.
Si on a défini des valeurs avec font-variation-settings et qu'on souhaite changer une de ces valeurs, il sera nécessaire de redéclarer l'ensemble des valeurs (de la même façon qu'on doit redéclarer l'ensemble des caractéristiques OpenType avec {{cssxref("font-feature-settings")}}). Il est possible de contourner cet écueil en utilisant des propriétés CSS personnalisées pour les valeurs individuelles et en modifiant uniquement la valeur d'une des propriétés personnalisée (cf. l'exemple en fin d'article).
La graisse (représenté par l'étiquette wght) définit l'épaisseur des traits formants les caractères. En CSS, le descripteur {{cssxref("font-weight")}} a depuis longtemps permis d'utiliser différentes graisses avec des valeurs numériques comprises entre 100 et 900 (avec des incréments de 100) ou des mots-clés tels que normal ou bold qui étaient des alias pour une valeur numérique correspondante (400 et 700 ici). Ces valeurs sont toujours utilisables pour les polices statiques mais il est désormais possible d'utiliser n'importe quel entier entre 1 et 1000 dans le cas de polices variables.
On notera qu'il n'est pas possible d'utiliser la déclaration @font-face afin qu'un point donné sur cet axe corresponde au mot-clé bold (ou tout autre mot-clé). Cela pourra généralement être résolu simplement mais nécessitera d'écrire plus de CSS :
font-weight: 375; + +font-variation-settings: 'wght' 375;+ +
Vous pouvez éditer l'exemple CSS suivant pour voir l'effet sur la graisse de la police.
+ +La largeur (indiquée par l'étiquette wdth) correspond à l'axe selon lequel les caractères sont plus ou moins étroits ou larges. En CSS, c'est le descripteur {{cssxref("font-stretch")}} qui peut être utilisé avec un pourcentage inférieur ou supérieur à 100% (la largeur « normale ») ou avec n'importe quel nombre positif. Si une valeur numérique est fournie et se situe en dehors de l'intervalle couvert par la police variable, le navigateur devra choisir la valeur la plus proche possible.
Note : Lorsqu'on utilise la notation « bas niveau » avec font-variation-settings, on n'écrit pas le caractère %.
font-stretch: 115%; + +font-variation-settings: 'wdth' 115; ++ +
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
+ +L'axe italique (ital) fonctionne différemment car il ne s'agit pas d'un intervalle mais d'une option activée ou désactivée : il n'y a pas de valeurs intermédiaires. Les caractères en italique sont la plupart du temps très différents de leur équivalent sans italique et passer d'un mode à l'autre entraîne généralement l'utilisation de glyphes différents. Attention à ne pas confondre l'italique et l'oblique (cf. l'axe de pente ci-après) : une police aura une forme italique ou une variabilité sur l'axe de pente mais rarement les deux.
En CSS, l'italique est appliqué grâce à la propriété {{cssxref("font-style")}} (qui permet aussi d'appliquer l'oblique). On notera l'apparition de la propriété font-synthesis: none; qui empêche les navigateurs de synthétiser l'italique en penchant les caractères (on pourra aussi utiliser cette valeur de façon équivalente pour éviter de synthétiser la graisse).
font-style: italic; + +font-variation-settings: 'ital' 1; + +font-synthesis: none;+ +
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
+ +La pente (indiquée par l'étiquette slnt), également appelée « oblique », diffère de l'italique car elle applique une pente sur les caractères mais ne change aucun des glyphes. Cet axe est un intervalle numérique allant généralement de 0 (droit) à 20 degrés. Toutefois, les valeurs allant de -90 et à 90 (degrés) sont autorisées. C'est également le descripteur font-style qui peut être utilisé pour cet axe.
Note : Le mot-clé deg ne doit pas être utilisé comme unité pour la notation avec font-variation-settings.
font-style: oblique 14deg; + +font-variation-settings: 'slnt' 14;+ +
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
+ +La taille optique, indiquée par l'étiquette opsz, correspond à la variation de l'épaisseur des traits formants le caractère afin de s'assurer que celui-ci puisse être lu avec un petit corps et ainsi de garantir une bonne impression ou un bon affichage à l'écran.
Ainsi, pour les petits corps, on pourra avoir des traits plus épais et pour des grands corps, on pourra avoir une variation d'épaisseur plus importante entre les différents traits du caractères pour développer correctement le dessin de la police.
+ +La plupart du temps, les valeurs liées à la taille optique sont appliquées automatiquement avec les valeurs correspondantes de font-size mais on peut tout à fait les manipuler avec la syntaxe de bas niveau font-variation-settings.
Une nouvelle propriété CSS a été créée afin de prendre en charge cet axe avec une syntaxe haut niveau pour les polices variables : {{cssxref("font-optical-sizing")}}. Le descripteur font-optical-sizing permet uniquement d'utiliser les valeurs auto ou none et ainsi uniquement d'activer ou de désactiver le dimensionnement optique. Toutefois, avec font-variation-settings: 'opsz' <num>, on peut fournir une valeur numérique. Dans la plupart des cas, on utilisera la même valeur pour font-size et pour opsz. Il est ici permis d'utiliser une autre valeur spécifique afin d'améliorer la lisibilité ou d'obtenir un effet esthétique.
font-optical-sizing: auto; + +font-variation-settings: 'opsz' 36;+ +
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
+ +Les axes spécifiques sont introduits spécifiquement par les concepteurs de polices et peuvent correspondre à n'importe quelle variation. Il est possible que certains axes spécifiques deviennent fréquemment utilisés voire finissent par être intégrés aux axes enregistrés mais seul l'avenir le dira avec certitude.
+ +Le grade est une variation qui consiste à épaissir certains des traits des glyphes sans agrandir la largeur totale du glyphe. En augmentant le grade, on a ainsi un caractère plus « dense ». Il ne faut pas confondre le corps et le grade : le premier augmente la taille générale, largeur incluse, des glyphes tandis que le second ne modifie pas l'espace physique occupé par le caractère. Le grade est un axe spécifique plutôt populaire car il permet de faire varier la densité apparente du texte sans modifier sa largeur et ainsi il évite de générer un décalage du texte.
+ +font-variation-settings: 'GRAD' 88;+ +
L'exemple suivant peut être édité pour observer les modifications des valeurs sur cet axe.
+ +@font-facePour charger une police variable, la syntaxe est proche de celle utilisée pour les polices statiques. Les quelques différences notables sont apportées par des ajouts à la syntaxe {{cssxref("@font-face")}} disponible dans la plupart des navigateurs modernes.
+ +La syntaxe de base est la même mais on peut indiquer la technologie utilisée pour la police ainsi que les intervalles autorisés pour les descripteurs font-weight et font-stretch.
@font-face {
+ font-family: 'MyVariableFontName';
+ src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
+ font-weight: 125 950;
+ font-stretch: 75% 125%;
+ font-style: normal;
+}
+
+
+@font-face {
+ font-family: 'MyVariableFontName';
+ src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
+ font-weight: 125 950;
+ font-stretch: 75% 125%;
+ font-style: oblique 0deg 20deg;
+}
+
+Note : Il n'existe pas de valeur spécifique pour la mesure du degré supérieur. Les valeurs fournies à font-style indiquent simplement qu'un axe est présent afin que le navigateur puisse afficher correctement les caractères droits ou en italique.
@font-face {
+ font-family: 'MyVariableFontName';
+ src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
+ font-weight: 125 950;
+ font-stretch: 75% 125%;
+ font-style: italic;
+}
+
+@font-face {
+ font-family: 'MyVariableFontName';
+ src: 'path/to/font/file/myvariablefont.woff2' format('woff2-variations');
+ font-weight: 125 950;
+ font-stretch: 75% 125%;
+ font-style: oblique 0deg 12deg;
+}
+
+Note : La syntaxe complète n'est pas implémentée par l'ensemble des navigateurs et il faudra donc tester avec précaution. Tous les navigateurs qui prennent en charge les polices variables sauront les afficher même si seul le format de fichier est indiqué (plutôt que le format complet : par exemple woff2 à la place de woff2-variations), mais mieux vaut utiliser la syntaxe la plus précise si possible.
Note : Fournir des valeurs d'intervalle pour font-weight, font-stretch et font-style empêchera le navigateur d'afficher des polices en dehors de ces intervalles en utilisant les attributs font-weight ou font-stretch. En revanche, cela ne bloquera pas la syntaxe de plus bas niveau avec font-variation-settings !
La prise en charge des polices variables peut être vérifié grâce à {{cssxref("@supports")}}. Il est donc possible d'utiliser des polices variables en production et de limiter la portée des polices variables à l'intérieur d'une requête de prise en charge.
+ +h1 {
+ font-family: some-non-variable-font-family;
+}
+
+@supports (font-variation-settings: 'wdth' 115) {
+ h1 {
+ font-family: some-variable-font-family;
+ }
+}
+
+Les pages d'exemples suivantes illustrent deux façons pour structurer le CSS. La première utilise les attributs standards où c'est possible et la seconde utilise les propriétés personnalisées afin de définir les valeur pour la chaîne de caractères fournie à font-variation-settings et montre comment mettre à jour une valeur plutôt que de redéfinir l'intégralité de la chaîne de caractères. On notera aussi l'effet au survol (hover) sur l'élément h2 qui ne joue que sur l'axe de grade.
CSS Fragmentation est un module CSS qui décrit la façon dont le contenu est divisé (fragmenté) entre plusieurs pages, régions ou colonnes.
- -La fragmentation se produit lorsqu'une boîte en ligne se retrouve sur plusieurs lignes ou lorsqu'un bloc s'étend sur plus d'une colonne au sein d'un conteneur de colonne ou sur un saut de page lorsque le document est imprimé. Chaque morceau de l'élément ainsi divisé est appelé un fragment.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fragmentation')}} | -{{Spec2('CSS3 Fragmentation')}} | -Définition initiale. | -
CSS Fragmentation est un module CSS qui décrit la façon dont le contenu est divisé (fragmenté) entre plusieurs pages, régions ou colonnes.
+ +La fragmentation se produit lorsqu'une boîte en ligne se retrouve sur plusieurs lignes ou lorsqu'un bloc s'étend sur plus d'une colonne au sein d'un conteneur de colonne ou sur un saut de page lorsque le document est imprimé. Chaque morceau de l'élément ainsi divisé est appelé un fragment.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fragmentation')}} | +{{Spec2('CSS3 Fragmentation')}} | +Définition initiale. | +
CSS Generated Content est un module CSS qui définit comment ajouter du contenu à un élément.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Content")}} | -{{Spec2("CSS3 Content")}} | -- |
| {{SpecName('CSS2.1')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
CSS Generated Content est un module CSS qui définit comment ajouter du contenu à un élément.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Content")}} | +{{Spec2("CSS3 Content")}} | ++ |
| {{SpecName('CSS2.1')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS","Web/CSS/CSS_Grid_Layout")}}
- -En plus de pouvoir placer des objets de façon précise sur une grille, la spécification pour les grilles CSS définit le comportement obtenu lorsque certains des objets ne sont pas placés sur la grille (voire aucun). Pour voir comment fonctionne le placement automatique, il suffit de créer une grille avec un ensemble d'objets. Sans fournir aucune information de placement, ces objets se placeront chacun sur une cellule de la grille.
- - -.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 10px;
-}
-
-
-<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
{{EmbedLiveSample('Placement_automatique', '500', '230')}}
- - -Comme on peut le voir dans l'exemple précédent, si on crée une grille sans définir de placement, tous les objets occuperont chacun une cellule de la grille. Par défaut, les objets sont placés au fur et à mesure sur les lignes horizontales de la grille. Si on a créé des lignes supplémentaires avec grid-template-rows, les objets suivants seront placés sur ces lignes. En revanche, si la grille ne possède pas suffisamment de lignes sur la grille explicite, de nouvelles lignes, implicites, seront créées.
Par défaut, les lignes implicites créées automatiquement ont une taille automatique. Autrement dit, elles seront dimensionnées pour contenir les éléments qu'elles doivent placer sans que ceux-ci dépassent.
- -Il est toutefois possible de contrôler la taille de ces lignes grâce à la propriété grid-auto-rows. Ainsi, si on veut que les lignes créées automatiquement mesurent 100 pixels de haut, on utilisera :
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 10px;
- grid-auto-rows: 100px;
-}
-
-
-{{EmbedLiveSample('Dimensionner_les_lignes_de_la_grille_implicite', '500', '330')}}
- -On peut utiliser la fonction {{cssxref("minmax","minmax()")}} pour la valeur de {{cssxref("grid-auto-rows")}} afin de créer des lignes avec une taille minimale mais qui puissent être plus grandes si le contenu est plus grand que cette taille minimale.
- - - -<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre - <br>Cette cellule - <br>a du contenu - <br>supplémentaire - <br>et max vaut auto - <br>afin que la ligne - <br>se développe. - </div> - <div>Five</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 10px;
- grid-auto-rows: minmax(100px, auto);
-}
-
-
-{{EmbedLiveSample('Dimensionner_les_lignes_avec_minmax', '500', '330')}}
- -On peut aussi passer en argument une liste de pistes qui se répèteront. Dans l'exemple ci-après, on crée une piste implicite pour une ligne de 100 pixels et une seconde de 200px. Ce motif sera utilisé tant que du contenu sera ajouté à la grille implicite.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> - <div>Six</div> - <div>Sept</div> - <div>Huit</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 10px;
- grid-auto-rows: 100px 200px;
-}
-
-
-{{EmbedLiveSample('Dimensionner_les_lignes_avec_une_liste_de_pistes', '500', '330')}}
- - -On peut également paramétrer la grille pour que les objets soient placés automatiquement en suivant les colonnes de la grille. Pour obtenir ce résultat, on utilisera la propriété {{cssxref("grid-auto-flow")}} avec la valeur column. Dans ce cas, la grille ajoutera les objets dans les lignes verticales définies avec {{cssxref("grid-template-rows")}}. Lorsqu'une colonne sera pleine, les prochains objets seront placés dans la colonne explicite suivante ou dans une colonne implicite créée automatiquement s'il n'y a plus assez de colonnes explicites. La taille des pistes pour les colonnes implicites peut être définie avec {{cssxref("grid-auto-columns")}}, cette dernière fonctionne de façon analogue à {{cssxref("grid-auto-rows")}}.
Dans le prochain exemple, on crée une grille avec trois lignes qui mesurent chacune 200 pixels de haut. On utilise le placement automatique en colonne. La première colonne qui sera créée mesurera 300 pixels de large, ensuite on aura une colonne de 100 pixels de large et ainsi de suite jusqu'à ce que tous les éléments puissent être placés.
- -.wrapper {
- display: grid;
- grid-template-rows: repeat(3, 200px);
- grid-gap: 10px;
- grid-auto-flow: column;
- grid-auto-columns: 300px 100px;
-}
-
-
-
-
-<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> - <div>Six</div> - <div>Sept</div> - <div>Huit</div> -</div> -- -
{{EmbedLiveSample('Utiliser_le_placement_automatique_pour_les_colonnes', '500', '640')}}
- -Une grille peut contenir un mélange d'éléments. Certains éléments peuvent avoir une position définie et d'autres être placés automatiquement. Ce placement automatique peut s'avérer utile lorsque l'ordre des éléments dans le document est celui qu'on veut utiliser pour organiser la grille : il n'y a alors pas besoin d'écrire de règles CSS pour positionner les éléments un par un. La spécification détaille exhaustivement l'algorithme de placement des objets sur la grille, mais voyons ici les quelques règles simples qu'il faut principalement retenir.
- -Le placement des éléments qui n'ont pas eu d'ordre défini sont placés selon l'algorithme décrit dans la section “order modified document order”. Cela signifie que si on utilise uniquement la propriété order, les éléments seront placés selon cet ordre plutôt que selon l'ordre indiqué par le DOM. Sinon, l'ordre des éléments sera celui décrit par le document source.
La grille commencera par placer les éléments pour lesquels on a défini une position. Dans l'exemple qui suit, on a une grille avec 12 éléments, l'élément 2 et l'élément 5 sont placés en utilisant les lignes. On put voir comment ces deux éléments sont placés et comment les autres sont placés automatiquement dans les espaces restants. Les objets placés automatiquement seront placés avant les éléments qui sont placés, dans l'ordre du DOM.
- - - -<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> - <div>Six</div> - <div>Sept</div> - <div>Huit</div> - <div>Neuf</div> - <div>Dix</div> - <div>Onze</div> - <div>Douze</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- grid-auto-rows: 100px;
- grid-gap: 10px;
-}
-.wrapper div:nth-child(2) {
- grid-column: 3;
- grid-row: 2 / 4;
-}
-.wrapper div:nth-child(5) {
- grid-column: 1 / 3;
- grid-row: 1 / 3;
-}
-
-
-{{EmbedLiveSample('Les_éléments_avec_des_propriétés_de_placement', '500', '450')}}
- -On peut utiliser les propriétés de placement tout en tirant parti du placement automatique. Dans le prochain exemple, on complète la disposition en indiquant que les éléments 1, 4 et 9 (4n+1) doivent occuper deux pistes, pour les colonnes et pour les lignes. Pour obtenir ce résultat, on utilise les propriétés {{cssxref("grid-column-end")}} et {{cssxref("grid-row-end")}} avec la valeur span 2. La ligne de début sera déterminée automatiquement et la ligne de fin sera deux pistes plus loin.
On peut voir coment cela laisse des espaces dans la grille car lorsqu'un élément placé automatiquement n'a pas suffisamment de place sur une piste, une nouvelle ligne sera créée jusqu'à ce que l'élément ait la place.
- - - -<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> - <div>Six</div> - <div>Sept</div> - <div>Huit</div> - <div>Neuf</div> - <div>Dix</div> - <div>Onze</div> - <div>Douze</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- grid-auto-rows: 100px;
- grid-gap: 10px;
-}
-.wrapper div:nth-child(4n+1) {
- grid-column-end: span 2;
- grid-row-end: span 2;
- background-color: #ffa94d;
-}
-.wrapper div:nth-child(2) {
- grid-column: 3;
- grid-row: 2 / 4;
-}
-.wrapper div:nth-child(5) {
- grid-column: 1 / 3;
- grid-row: 1 / 3;
-}
-
-
-{{EmbedLiveSample('Gérer_les_éléments_qui_sétalent_sur_plusieurs_pistes', '500', '770')}}
- -En dehors des éléments placés explicitement, la grille place les éléments automatiques en respectant l'ordre du DOM. C'est généralement le résultat qu'on souhaite lorsqu'on met en forme un document comme un formulaire. Toutefois on veut parfois obtenir une disposition plus dense, sans vide entre les différents éléments.
- -Pour cela, sur le conteneur, on ajoute la propriété {{cssxref("grid-auto-flow")}} avec la valeur dense. C'est la même propriété qu'on utilise pour modifier l'ordre du flux avec column. On peut aussi obtenir une disposition dense, rangée par colonne en utilisant les deux valeurs pour la propriété : grid-auto-flow: column dense.
Avec cette valeur, la grille cherchera donc à combler les espaces qu'elle a laissés quitte à ne pas respecter l'ordre du DOM. En revanche, l'ordre de la navigation au clavier (tab order) suivra toujours l'ordre du document. Nous étudierons cet aspect plus en détails dans un article sur l'accessibilité.
- - - -<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> - <div>Six</div> - <div>Sept</div> - <div>Huit</div> - <div>Neuf</div> - <div>Dix</div> - <div>Onze</div> - <div>Douze</div> -</div> -- -
.wrapper div:nth-child(4n+1) {
- grid-column-end: span 2;
- grid-row-end: span 2;
- background-color: #ffa94d;
-}
-.wrapper div:nth-child(2) {
- grid-column: 3;
- grid-row: 2 / 4;
-}
-.wrapper div:nth-child(5) {
- grid-column: 1 / 3;
- grid-row: 1 / 3;
-}
-.wrapper {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- grid-auto-rows: 100px;
- grid-gap: 10px;
- grid-auto-flow: dense;
-}
-
-
-{{EmbedLiveSample('Combler_les_espaces', '500', '730')}}
- -Dans la spécification, on utilise le concept d'élément anonyme. Ces éléments sont ceux qui sont créés lorsqu'on a une chaîne de caractères dans le conteneur de la grille et que celle-ci n'est pas contenue dans un autre élément. Dans l'exemple ci-après, on a trois éléments sur la grille : le premier est un élément anonyme car il n'est placé dans aucun élément, il sera alors placé automatiquement. Les deux éléments suivants sont placés dans des div et peuvent être placés automatiquement ou grâce à une autre méthode de positionnement.
<div class="grid"> - Je suis une chaîne de caractères et je serai placé - automatiquement. - <div>Un élément de la grille</div> - <div>Un élément de la grille</div> -</div> -- -
Les éléments anonymes sont toujours placés automatiquement car on ne peut pas les cibler autrement. Aussi, si on a du texte sans balise dans la grille, il faut se rappeler que celui-ci peut être placé à un endroit imprévu du fait des règles de placement automatique.
- -Le placement automatique peut être utile lorsqu'on a un ensemble d'objets qui se ressemblent. Ce peut être des éléments qui n'ont pas d'ordre logique particulier : une galerie de photos, une liste de produits. Dans ces cas de figure, on peut choisir d'utiliser une disposition dense afin de combler les trous de la grille. Dans l'exemple qui représente la galerie d'images, on a certaines images en paysage et d'autres en portrait (lorsqu'on utilise la classe landscape l'élément s'étend sur deux colonnes). On utilise ensuite grid-auto-flow: dense afin de créer une grille dense.
.wrapper {
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
- grid-gap: 10px;
- grid-auto-flow: dense;
- list-style: none;
- margin: 1em auto;
- padding: 0;
- max-width: 800px;
-}
-.wrapper li {
- border: 1px solid #ccc;
-}
-.wrapper li.landscape {
- grid-column-end: span 2;
-}
-.wrapper li img {
- display: block;
- object-fit: cover;
- width: 100%;
- height: 100%;
-}
-
-
-<ul class="wrapper"> - <li><img src="http://placehold.it/200x300" alt="placeholder"></li> - <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> - <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> - <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> - <li><img src="http://placehold.it/200x300" alt="placeholder"></li> - <li><img src="http://placehold.it/200x300" alt="placeholder"></li> - <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> - <li><img src="http://placehold.it/200x300" alt="placeholder"></li> - <li><img src="http://placehold.it/200x300" alt="placeholder"></li> - <li><img src="http://placehold.it/200x300" alt="placeholder"></li> -</ul> -- -
{{EmbedLiveSample('Les_cas_dutilisation_pour_le_placement_automatique', '500', '1300')}}
- -Le placement automatique peut également aider à disposer des éléments d'interface utilisateur qui ont un ordre logique. Dans l'exemple suivant, on voit comment manipuler les listes de définition. Les listes de définition sont intéressantes car il n'y a pas de niveau de regroupement pour regrouper un terme et ses définitions. Dans cet exemple, on autorise le placement automatique mais on a une classe pour qu'un élément dt démarre sur la première ligne et que l'élément dd sur la ligne 2. On s'assure ainsi que les termes sont bien en face de chaque définition, peu importe le nombre de définitions qu'on a pour un terme.
<div class="wrapper"> - <dl> - <dt>Mammals</dt> - <dd>Cat</dd> - <dd>Dog</dd> - <dd>Mouse</dd> - <dt>Fish</dt> - <dd>Guppy</dd> - <dt>Birds</dt> - <dd>Pied Wagtail</dd> - <dd>Owl</dd> - <dl> -</div> -- -
dl {
- display: grid;
- grid-template-columns: auto 1fr;
- max-width: 300px;
- margin: 1em;
- line-height: 1.4;
-}
-dt {
- grid-column: 1;
- font-weight: bold;
-}
-dd {
- grid-column: 2;
-}
-
-
-{{EmbedLiveSample('Autre_exemple', '500', '230')}}
- -Note : Voir cet article de SitePoint à propos de la disposition en briques pour d'autres cas d'utilisation.
-Certaines questions se posent encore. Actuellement on ne peut pas cibler toutes les autres cellules de la grille. On ne peut pas non plus définir une règle pour « placer tous les éléments automatiquement après la prochaine ligne intitulée n » (pour que certaines lignes soient sautées). Cette question est décrite sur le dépôt GitHub du CSSWG, n'hésitez pas à ajouter vos exemples de scénarios.
Si vous rencontrez des cas d'utilisation problématiques avec le placement automatique et les grilles, vous pouvez consulter les issues existantes et les compléter ou ajouter les vôtres. Cela permettra que les prochaines versions de la spécification soient meilleures.
- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/auto-placement_in_css_grid_layout/index.md b/files/fr/web/css/css_grid_layout/auto-placement_in_css_grid_layout/index.md new file mode 100644 index 0000000000..2fe6ab6f2c --- /dev/null +++ b/files/fr/web/css/css_grid_layout/auto-placement_in_css_grid_layout/index.md @@ -0,0 +1,542 @@ +--- +title: Le placement automatique sur une grille CSS +slug: Web/CSS/CSS_Grid_Layout/Auto-placement_in_CSS_Grid_Layout +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guide + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/Auto-placement_in_CSS_Grid_Layout +original_slug: Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS","Web/CSS/CSS_Grid_Layout")}}
+ +En plus de pouvoir placer des objets de façon précise sur une grille, la spécification pour les grilles CSS définit le comportement obtenu lorsque certains des objets ne sont pas placés sur la grille (voire aucun). Pour voir comment fonctionne le placement automatique, il suffit de créer une grille avec un ensemble d'objets. Sans fournir aucune information de placement, ces objets se placeront chacun sur une cellule de la grille.
+ + +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 10px;
+}
+
+
+<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
{{EmbedLiveSample('Placement_automatique', '500', '230')}}
+ + +Comme on peut le voir dans l'exemple précédent, si on crée une grille sans définir de placement, tous les objets occuperont chacun une cellule de la grille. Par défaut, les objets sont placés au fur et à mesure sur les lignes horizontales de la grille. Si on a créé des lignes supplémentaires avec grid-template-rows, les objets suivants seront placés sur ces lignes. En revanche, si la grille ne possède pas suffisamment de lignes sur la grille explicite, de nouvelles lignes, implicites, seront créées.
Par défaut, les lignes implicites créées automatiquement ont une taille automatique. Autrement dit, elles seront dimensionnées pour contenir les éléments qu'elles doivent placer sans que ceux-ci dépassent.
+ +Il est toutefois possible de contrôler la taille de ces lignes grâce à la propriété grid-auto-rows. Ainsi, si on veut que les lignes créées automatiquement mesurent 100 pixels de haut, on utilisera :
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: 100px;
+}
+
+
+{{EmbedLiveSample('Dimensionner_les_lignes_de_la_grille_implicite', '500', '330')}}
+ +On peut utiliser la fonction {{cssxref("minmax","minmax()")}} pour la valeur de {{cssxref("grid-auto-rows")}} afin de créer des lignes avec une taille minimale mais qui puissent être plus grandes si le contenu est plus grand que cette taille minimale.
+ + + +<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre + <br>Cette cellule + <br>a du contenu + <br>supplémentaire + <br>et max vaut auto + <br>afin que la ligne + <br>se développe. + </div> + <div>Five</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: minmax(100px, auto);
+}
+
+
+{{EmbedLiveSample('Dimensionner_les_lignes_avec_minmax', '500', '330')}}
+ +On peut aussi passer en argument une liste de pistes qui se répèteront. Dans l'exemple ci-après, on crée une piste implicite pour une ligne de 100 pixels et une seconde de 200px. Ce motif sera utilisé tant que du contenu sera ajouté à la grille implicite.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> + <div>Six</div> + <div>Sept</div> + <div>Huit</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: 100px 200px;
+}
+
+
+{{EmbedLiveSample('Dimensionner_les_lignes_avec_une_liste_de_pistes', '500', '330')}}
+ + +On peut également paramétrer la grille pour que les objets soient placés automatiquement en suivant les colonnes de la grille. Pour obtenir ce résultat, on utilisera la propriété {{cssxref("grid-auto-flow")}} avec la valeur column. Dans ce cas, la grille ajoutera les objets dans les lignes verticales définies avec {{cssxref("grid-template-rows")}}. Lorsqu'une colonne sera pleine, les prochains objets seront placés dans la colonne explicite suivante ou dans une colonne implicite créée automatiquement s'il n'y a plus assez de colonnes explicites. La taille des pistes pour les colonnes implicites peut être définie avec {{cssxref("grid-auto-columns")}}, cette dernière fonctionne de façon analogue à {{cssxref("grid-auto-rows")}}.
Dans le prochain exemple, on crée une grille avec trois lignes qui mesurent chacune 200 pixels de haut. On utilise le placement automatique en colonne. La première colonne qui sera créée mesurera 300 pixels de large, ensuite on aura une colonne de 100 pixels de large et ainsi de suite jusqu'à ce que tous les éléments puissent être placés.
+ +.wrapper {
+ display: grid;
+ grid-template-rows: repeat(3, 200px);
+ grid-gap: 10px;
+ grid-auto-flow: column;
+ grid-auto-columns: 300px 100px;
+}
+
+
+
+
+<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> + <div>Six</div> + <div>Sept</div> + <div>Huit</div> +</div> ++ +
{{EmbedLiveSample('Utiliser_le_placement_automatique_pour_les_colonnes', '500', '640')}}
+ +Une grille peut contenir un mélange d'éléments. Certains éléments peuvent avoir une position définie et d'autres être placés automatiquement. Ce placement automatique peut s'avérer utile lorsque l'ordre des éléments dans le document est celui qu'on veut utiliser pour organiser la grille : il n'y a alors pas besoin d'écrire de règles CSS pour positionner les éléments un par un. La spécification détaille exhaustivement l'algorithme de placement des objets sur la grille, mais voyons ici les quelques règles simples qu'il faut principalement retenir.
+ +Le placement des éléments qui n'ont pas eu d'ordre défini sont placés selon l'algorithme décrit dans la section “order modified document order”. Cela signifie que si on utilise uniquement la propriété order, les éléments seront placés selon cet ordre plutôt que selon l'ordre indiqué par le DOM. Sinon, l'ordre des éléments sera celui décrit par le document source.
La grille commencera par placer les éléments pour lesquels on a défini une position. Dans l'exemple qui suit, on a une grille avec 12 éléments, l'élément 2 et l'élément 5 sont placés en utilisant les lignes. On put voir comment ces deux éléments sont placés et comment les autres sont placés automatiquement dans les espaces restants. Les objets placés automatiquement seront placés avant les éléments qui sont placés, dans l'ordre du DOM.
+ + + +<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> + <div>Six</div> + <div>Sept</div> + <div>Huit</div> + <div>Neuf</div> + <div>Dix</div> + <div>Onze</div> + <div>Douze</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-auto-rows: 100px;
+ grid-gap: 10px;
+}
+.wrapper div:nth-child(2) {
+ grid-column: 3;
+ grid-row: 2 / 4;
+}
+.wrapper div:nth-child(5) {
+ grid-column: 1 / 3;
+ grid-row: 1 / 3;
+}
+
+
+{{EmbedLiveSample('Les_éléments_avec_des_propriétés_de_placement', '500', '450')}}
+ +On peut utiliser les propriétés de placement tout en tirant parti du placement automatique. Dans le prochain exemple, on complète la disposition en indiquant que les éléments 1, 4 et 9 (4n+1) doivent occuper deux pistes, pour les colonnes et pour les lignes. Pour obtenir ce résultat, on utilise les propriétés {{cssxref("grid-column-end")}} et {{cssxref("grid-row-end")}} avec la valeur span 2. La ligne de début sera déterminée automatiquement et la ligne de fin sera deux pistes plus loin.
On peut voir coment cela laisse des espaces dans la grille car lorsqu'un élément placé automatiquement n'a pas suffisamment de place sur une piste, une nouvelle ligne sera créée jusqu'à ce que l'élément ait la place.
+ + + +<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> + <div>Six</div> + <div>Sept</div> + <div>Huit</div> + <div>Neuf</div> + <div>Dix</div> + <div>Onze</div> + <div>Douze</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-auto-rows: 100px;
+ grid-gap: 10px;
+}
+.wrapper div:nth-child(4n+1) {
+ grid-column-end: span 2;
+ grid-row-end: span 2;
+ background-color: #ffa94d;
+}
+.wrapper div:nth-child(2) {
+ grid-column: 3;
+ grid-row: 2 / 4;
+}
+.wrapper div:nth-child(5) {
+ grid-column: 1 / 3;
+ grid-row: 1 / 3;
+}
+
+
+{{EmbedLiveSample('Gérer_les_éléments_qui_sétalent_sur_plusieurs_pistes', '500', '770')}}
+ +En dehors des éléments placés explicitement, la grille place les éléments automatiques en respectant l'ordre du DOM. C'est généralement le résultat qu'on souhaite lorsqu'on met en forme un document comme un formulaire. Toutefois on veut parfois obtenir une disposition plus dense, sans vide entre les différents éléments.
+ +Pour cela, sur le conteneur, on ajoute la propriété {{cssxref("grid-auto-flow")}} avec la valeur dense. C'est la même propriété qu'on utilise pour modifier l'ordre du flux avec column. On peut aussi obtenir une disposition dense, rangée par colonne en utilisant les deux valeurs pour la propriété : grid-auto-flow: column dense.
Avec cette valeur, la grille cherchera donc à combler les espaces qu'elle a laissés quitte à ne pas respecter l'ordre du DOM. En revanche, l'ordre de la navigation au clavier (tab order) suivra toujours l'ordre du document. Nous étudierons cet aspect plus en détails dans un article sur l'accessibilité.
+ + + +<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> + <div>Six</div> + <div>Sept</div> + <div>Huit</div> + <div>Neuf</div> + <div>Dix</div> + <div>Onze</div> + <div>Douze</div> +</div> ++ +
.wrapper div:nth-child(4n+1) {
+ grid-column-end: span 2;
+ grid-row-end: span 2;
+ background-color: #ffa94d;
+}
+.wrapper div:nth-child(2) {
+ grid-column: 3;
+ grid-row: 2 / 4;
+}
+.wrapper div:nth-child(5) {
+ grid-column: 1 / 3;
+ grid-row: 1 / 3;
+}
+.wrapper {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-auto-rows: 100px;
+ grid-gap: 10px;
+ grid-auto-flow: dense;
+}
+
+
+{{EmbedLiveSample('Combler_les_espaces', '500', '730')}}
+ +Dans la spécification, on utilise le concept d'élément anonyme. Ces éléments sont ceux qui sont créés lorsqu'on a une chaîne de caractères dans le conteneur de la grille et que celle-ci n'est pas contenue dans un autre élément. Dans l'exemple ci-après, on a trois éléments sur la grille : le premier est un élément anonyme car il n'est placé dans aucun élément, il sera alors placé automatiquement. Les deux éléments suivants sont placés dans des div et peuvent être placés automatiquement ou grâce à une autre méthode de positionnement.
<div class="grid"> + Je suis une chaîne de caractères et je serai placé + automatiquement. + <div>Un élément de la grille</div> + <div>Un élément de la grille</div> +</div> ++ +
Les éléments anonymes sont toujours placés automatiquement car on ne peut pas les cibler autrement. Aussi, si on a du texte sans balise dans la grille, il faut se rappeler que celui-ci peut être placé à un endroit imprévu du fait des règles de placement automatique.
+ +Le placement automatique peut être utile lorsqu'on a un ensemble d'objets qui se ressemblent. Ce peut être des éléments qui n'ont pas d'ordre logique particulier : une galerie de photos, une liste de produits. Dans ces cas de figure, on peut choisir d'utiliser une disposition dense afin de combler les trous de la grille. Dans l'exemple qui représente la galerie d'images, on a certaines images en paysage et d'autres en portrait (lorsqu'on utilise la classe landscape l'élément s'étend sur deux colonnes). On utilise ensuite grid-auto-flow: dense afin de créer une grille dense.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
+ grid-gap: 10px;
+ grid-auto-flow: dense;
+ list-style: none;
+ margin: 1em auto;
+ padding: 0;
+ max-width: 800px;
+}
+.wrapper li {
+ border: 1px solid #ccc;
+}
+.wrapper li.landscape {
+ grid-column-end: span 2;
+}
+.wrapper li img {
+ display: block;
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+}
+
+
+<ul class="wrapper"> + <li><img src="http://placehold.it/200x300" alt="placeholder"></li> + <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> + <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> + <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> + <li><img src="http://placehold.it/200x300" alt="placeholder"></li> + <li><img src="http://placehold.it/200x300" alt="placeholder"></li> + <li class="landscape"><img src="http://placehold.it/350x200" alt="placeholder"></li> + <li><img src="http://placehold.it/200x300" alt="placeholder"></li> + <li><img src="http://placehold.it/200x300" alt="placeholder"></li> + <li><img src="http://placehold.it/200x300" alt="placeholder"></li> +</ul> ++ +
{{EmbedLiveSample('Les_cas_dutilisation_pour_le_placement_automatique', '500', '1300')}}
+ +Le placement automatique peut également aider à disposer des éléments d'interface utilisateur qui ont un ordre logique. Dans l'exemple suivant, on voit comment manipuler les listes de définition. Les listes de définition sont intéressantes car il n'y a pas de niveau de regroupement pour regrouper un terme et ses définitions. Dans cet exemple, on autorise le placement automatique mais on a une classe pour qu'un élément dt démarre sur la première ligne et que l'élément dd sur la ligne 2. On s'assure ainsi que les termes sont bien en face de chaque définition, peu importe le nombre de définitions qu'on a pour un terme.
<div class="wrapper"> + <dl> + <dt>Mammals</dt> + <dd>Cat</dd> + <dd>Dog</dd> + <dd>Mouse</dd> + <dt>Fish</dt> + <dd>Guppy</dd> + <dt>Birds</dt> + <dd>Pied Wagtail</dd> + <dd>Owl</dd> + <dl> +</div> ++ +
dl {
+ display: grid;
+ grid-template-columns: auto 1fr;
+ max-width: 300px;
+ margin: 1em;
+ line-height: 1.4;
+}
+dt {
+ grid-column: 1;
+ font-weight: bold;
+}
+dd {
+ grid-column: 2;
+}
+
+
+{{EmbedLiveSample('Autre_exemple', '500', '230')}}
+ +Note : Voir cet article de SitePoint à propos de la disposition en briques pour d'autres cas d'utilisation.
+Certaines questions se posent encore. Actuellement on ne peut pas cibler toutes les autres cellules de la grille. On ne peut pas non plus définir une règle pour « placer tous les éléments automatiquement après la prochaine ligne intitulée n » (pour que certaines lignes soient sautées). Cette question est décrite sur le dépôt GitHub du CSSWG, n'hésitez pas à ajouter vos exemples de scénarios.
Si vous rencontrez des cas d'utilisation problématiques avec le placement automatique et les grilles, vous pouvez consulter les issues existantes et les compléter ou ajouter les vôtres. Cela permettra que les prochaines versions de la spécification soient meilleures.
+ +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.html b/files/fr/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.html deleted file mode 100644 index 800c04293b..0000000000 --- a/files/fr/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.html +++ /dev/null @@ -1,600 +0,0 @@ ---- -title: Les concepts de base des grilles CSS -slug: Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout -tags: - - CSS - - CSS Grids - - Grilles CSS - - Guide - - Intermédiaire -translation_of: Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout -original_slug: Web/CSS/CSS_Grid_Layout/Les_concepts_de_base ---- -{{PreviousMenuNext("", "Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
- -Le module CSS Grid Layout ajoute à CSS une grille à deux dimensions. Les grilles peuvent être utilisées pour agencer des pages entières ou de petits éléments d'interface. Cet article introduit CSS Grid Layout, et la terminologie de la spécification CSS Grid Layout Level 1. Les fonctionnalités évoquées seront expliquées plus en détail dans le reste du guide.
- -Une grille est un ensemble de lignes horizontales et verticales qui se croisent – les premières définissant les rangées, et les secondes les colonnes. Les éléments sont placés sur la grille en fonction de ces rangées et colonnes. Les fonctionnalités sont les suivantes :
- -On peut créer une grille avec des pistes à taille fixes en utilisant une unité comme le pixel. Pour les pistes à taille variable on peut utiliser le pourcentage ou la nouvelle unité fr créée à cet effet.
Pour placer les éléments sur la grille, on peut utiliser le numéro ou le nom d'une ligne, ou cibler une zone particulière. La grille contient aussi un algorithme pour placer les éléments qui n'ont pas été placés explicitement.
- -Lorsqu'une grille explicite n'est pas définie, la spécification prend en charge le contenu défini en dehors d'une grille en ajoutant des colonnes et des rangées. Cela comprend des fonctionnalités telles qu'« ajouter autant de colonnes que possible dans le conteneur ».
- -On peut contrôler l'alignement des éléments dans une zone de la grille, ainsi que celui de l'ensemble de la grille.
- -Il peut arriver que l'on place plusieurs éléments dans une même cellule, ou que des zones se chevauchent. La superposition peut être contrôlée à l'aide de la propriété {{cssxref("z-index")}}.
- -La grille est une spécification puissante qui peut être combinée avec d'autres modules CSS tels que flexbox. Le point de départ est le conteneur.
- -À partir du moment où on crée un conteneur en déclarant la propriété display: grid ou display: inline-grid sur un élément, tous les enfants directs de cet élément deviennet des éléments de grille.
Cet exemple montre une div avec une classe .wrapper, avec cinq éléments enfants.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
On transforme .wrapper en conteneur.
.wrapper {
- display: grid;
-}
-
-
-
-
-{{ EmbedLiveSample('Le_conteneur', '200', '330') }}
- -Tous les enfants directs sont maintenant des éléments de grille. On ne voit pas la différence dans un navigateur, car la grille n'a qu'une seule colonne. Vous trouverez sans doute utile de travailler avec Firefox, qui propose un inspecteur de grille dans les outils de développement. En inspectant la grille dans Firefox, vous pouvez voir une petite icône à côté de la valeur grid. Un clic dessus permet d'afficher la grille correspondante dans le navigateur.

Cet outil vous permettra de mieux comprendre le fonctionnement de CSS Grid Layout.
- -Pour que notre exemple ressemble vraiment à une grille nous devons ajouter des colonnes.
- -Les propriétés {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}} permettent de définir des colonnes et des rangées. Celles-ci définissent les pistes. Une piste est l'espace entre deux lignes d'une grille. L'image ci-dessous colore une piste de la grille – correspondant à la première rangée de la grille.
- -
On peut ajouter la propriété grid-template-columns à notre exemple précédent, pour définir la taille des colonnes.
Nous avons créé une grille avec trois pistes de 200 pixels de large. Chaque élément sera disposé dans l'une des cellules de la grille.
- -<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: 200px 200px 200px;
-}
-
-
-
-
-{{ EmbedLiveSample('grid_first', '610', '140') }}
- - -Les pistes peuvent être définies à l'aide de n'importe quelle unité de mesure. Les grilles proposent aussi une nouvelle unité de mesure pour aider à la création de pistes flexibles. Cette unité, fr, représente une fraction de l'espace disponible dans le conteneur de la grille. Le code suivant crée trois colonnes égales qui se redimensionnent en fonction de l'espace disponible.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
-}
-
-
-
-
-{{ EmbedLiveSample("L'unité_fr", '220', '140') }}
- -L'exemple suivant crée une grille avec une colonne de 2fr, et deux colonnes de 1fr. L'espace disponible est divisé en quatre. Les deux premières fractions sont allouées à la première colonne, et chacune des colonnes suivante dispose d'une fraction.
.wrapper {
- display: grid;
- grid-template-columns: 2fr 1fr 1fr;
-}
-
-
-Dans ce dernier exemple nous utilisons à la fois des dimensions absolues et des relatives. La première colonne faisant 500px, cette valeur est soustraite de l'espace disponible. L'espace restant est divisé en trois et alloué proportionnellement aux deux colonnes spécifiées avec l'unité relative fr.
.wrapper {
- display: grid;
- grid-template-columns: 500px 1fr 2fr;
-}
-
-
-repeat() pour définir les pistesPour les grilles comprenant de nombreuses pistes on peut utiliser la notation repeat() pour répéter toute ou une partie des pistes définies. Par exemple la définition de grille :
.wrapper {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
-}
-
-
-peut également s'écrire :
- -.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
-}
-
-
-Dans l'exemple suivant on crée une grille avec une première colonne de 20px de large, puis une section répétant 6 fois une piste de 1fr, et enfin on termine par une colonne de 20px de large.
- -.wrapper {
- display: grid;
- grid-template-columns: 20px repeat(6, 1fr) 20px;
-}
-
-
-Cette notation accepte une liste de pistes, on peut donc l'utiliser pour répéter un motif. Dans l'exemple qui suit la grille aura 10 colonnes : une colonne de 1fr suivie d'une colonne de 2fr, ceci répété 5 fois.
- -.wrapper {
- display: grid;
- grid-template-columns: repeat(5, 1fr 2fr);
-}
-
-
-Dans ces exemples nous avons défini nos colonnes à l'aide de la propriété {{cssxref("grid-template-columns")}}, et nous avons laissé la grille créer les rangées. Ces rangées font partie de la grille implicite.La grille explicite est constituée des pistes définies par les propriétés {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}}. Si un élément est placé en dehors de la grille ainsi définie, ou que la quantité de contenu nécessite d'étendre la grille, alors la grille ajoute implicitement des colonnes et rangées. Les dimensions de ces pistes auront par défaut la valeur auto, c'est-à dire qu'elles s'ajusteront à leur contenu.
- -On peut définir une taille pour les pistes de la grille implicite grâce aux propriéts {{cssxref("grid-auto-rows")}} et {{cssxref("grid-auto-columns")}}.
- -Dans l'exemple ci-après nous utilisons grid-auto-rows pour que les rangées de la grille implicite fassent 200 pixels de haut.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 200px;
-}
-
-
-
-
-{{ EmbedLiveSample('Grille_implicite_et_grille_explicite', '230', '420') }}
- -minmaxQue l'on crée une grille explicite, ou que l'on définisse la taille des pistes créées implicitement, il peut être utile d'assigner une taille minimum, qui s'agrandit pour s'adapter au contenu. Par exemple on peut souhaiter que les rangées ne soient jamais moins hautes que 100 pixels, mais qu'elles aillent jusqu'à 300 pixels de haut si le contenu le nécessite.
- -La fonction {{cssxref("minmax()", "minmax()")}} permet ce comportement. Dans l'exemple suivant nous utilisons minmax() comme valeur de la propriété {{cssxref("grid-auto-rows")}}. Les rangées créées automatiquement feront un minimum de 100 pixels, et un maximum de auto, ce qui signifie que la taille s'adaptera à la hauteur du contenu.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: minmax(100px, auto);
-}
-
-
-
-
-<div class="wrapper"> - <div>Un</div> - <div>Deux - <p>Davantage de contenu.</p> - <p>On dépasse les 100 pixels.</p> - </div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
{{ EmbedLiveSample('Dimensionner_une_piste_avec_minmax', '240', '470') }}
- -Il faut noter que l'on définit les pistes d'une grille, et pas les lignes qui en résultent. La grille génère des lignes numérotées que l'on utilise pour positionner les éléments. Dans notre grille de trois colonnes et deux rangées, nous avons quatre lignes de colonnes.
- -
Les lignes sont numérotées selon le sens de lecture du document. Dans un langage qui se lit de gauche à droite, la ligne 1 est située à gauche, dans un langage qui se lit de droite à gauche elle est située à droite. Les lignes peuvent aussi être nommées, comme nous le verrons plus loin dans ces pages.
- -Nous explorerons le placement sur les lignes plus en détail dans un prochain article, l'exemple qui suit montre comment l'utiliser de façon simple.
- -Lorsque nous plaçons un élément nous ciblons une ligne plutôt qu'une piste. Nous plaçons ici les deux premiers éléments en utilisant les propriétés {{cssxref("grid-column-start")}}, {{cssxref("grid-column-end")}}, {{cssxref("grid-row-start")}} et {{cssxref("grid-row-end")}}. En allant de gauche à droite, le premier élément est placé sur la ligne de colonne 1, et va jusqu'à la ligne de colonne 4, qui dans ce cas est la dernière. Il est placé sur la ligne de rangée 1, et va jusqu'à la ligne 3, s'étendant ainsi sur deux rangées.
- -Le second élément commence sur la ligne de colonne 1 et s'étend sur une seule piste. C'est la largeur par défaut, donc il n'est pas nécessaire de spécifier la ligne de fin. Il s'étend aussi sur deux rangées de la ligne 3 à la ligne 5. Les autres éléments se placeront dans les espaces vides de la grille.
- -<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> - <div class="box5">Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-.box2 {
- grid-column-start: 1;
- grid-row-start: 3;
- grid-row-end: 5;
-}
-
-
-
-
-
-{{ EmbedLiveSample('Positionnement_des_éléments_sur_les_lignes', '230', '420') }}
- -Pensez à utiliser l'Inspecteur de grille dans les outils de développement pour voir comment les éléments se placent sur les lignes d'une grille items.
- -Une cellule est la plus petite unité sur une grille, conceptuellement similaire à une cellule de tableau. Comme nous l'avons vu lorsqu'une grille est définie sur un élément ses enfants viennent se positionner chacun dans l'une des cellules de la grille. Dans l'image ci-dessous la première cellule est colorée.
- -
Un élément peut s'étendre sur plusieurs cellules d'une rangée ou d'une colonne, et cela crée une zone. Les zones doivent être rectangulaires - on ne peut pas créer de forme en L par exemple. La zone colorée ci-dessous s'étend sur deux rangées et deux colonnes.
- -
Les gouttières entre les cellules sont définies à l'aide des propriétés {{cssxref("grid-column-gap")}} et {{cssxref("row-gap")}}, ou de la propriété raccourcie {{cssxref("gap")}}. Dans l'exemple ci-dessous nous créons une gouttière de dix pixels de large entre les colonnes, et une gouttière de 1em de hauteur entre les rangées.
- -.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-column-gap: 10px;
- grid-row-gap: 1em;
-}
-
-
-Note : Les anciens navigateurs utilisent {{cssxref("column-gap")}}, {{cssxref("row-gap")}}, {{cssxref("gap")}} avec le préfixe grid- soit : {{cssxref("grid-column-gap")}}, {{cssxref("row-gap")}} et {{cssxref("gap")}}.
Les navigateurs actuels retirent progressivement ce préfixe (la version préfixée sera maintenue sous forme d'alias). À l'heure actuelle, certains navigateurs ne prennent pas encore la version sans préfixe et c'est pourquoi certains exemples de ce guide continuent d'utiliser les versions préfixées avec grid-.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- - - -
{{ EmbedLiveSample('Les_gouttières') }}
- -L'espace utilisé par les gouttières sera pris en compte avant l'assignation de la place restante aux pistes définies avec l'unité fr. La taille des gouttières est calculée comme celle des pistes, mais on ne peut pas placer d'élément dans une gouttière. Au niveau du positionnement des éléments sur les lignes, la gouttière se comporte comme une ligne épaisse.
Un élément placé dans une grille peut aussi être le conteneur d'une autre grille. Dans l'exemple suivant nous retrouvons la grille de trois colonnes créée plus haut, avec deux éléments explicitement positionnés. Le premier élément contient lui-même des éléments. Comme ils ne sont pas des enfants directs de la grille principale, ils se positionnent normalement dans le flux.
- -<div class="wrapper"> - <div class="box box1"> - <div class="nested">a</div> - <div class="nested">b</div> - <div class="nested">c</div> - </div> - <div class="box box2">Deux</div> - <div class="box box3">Trois</div> - <div class="box box4">Quatre</div> - <div class="box box5">Cinq</div> -</div> -- -

En définissant la propriété display:grid sur l'élément box1, il devient lui-même une grille et ses enfants se positionnent sur cette grille.
.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
- display: grid;
- grid-template-columns: repeat(3, 1fr);
-}
-
-
-
-
-{{ EmbedLiveSample('Grilles_imbriquées', '600', '340') }}
- -Dans ce cas la grille imbriquée n'est pas liée à la grille qui la contient. Elle n'hérite pas des {{cssxref("gap")}}, et ses lignes ne s'alignent pas avec celles de la grille parent.
- -Dans le brouillon de travaille pour la spécification de niveau 2 pour CSS Grid, il existe une fonctionnalité nommée sous-grille qui permet de créer des grilles imbriquées qui utilisent la définition de la grille parent. Ceci n'est implémenté dans aucun navigateur pour le moment, et la spécification peut encore changer. Pour l'utiliser telle qu'elle est définie actuellement il faudrait modifier l'exemple suivant et remplacer display: grid par display: subgrid, et supprimer la définition des pistes. La piste imbriquée utiliserait les pistes de la grille parent pour positionner ses éléments.
Selon la version actuelle de la spécifiction, il faudrait éditer l'exemple de grille imbriquée précédent et remplacer grid-template-columns: repeat(3, 1fr) en grid-template-columns: subgrid. La grille imbriquée utilisera alors la grille parente pour inscrire ses éléments dans le document.
.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
- display: grid;
- grid-template-columns: subgrid;
-}
-
-
-z-indexPlusieurs éléments peuvent être placés dans la même cellule. Si nous retournons à notre exemple avec les items positionnés par numéros de ligne, nous pouvons modifier cela pour que deux items se chevauchent.
- -<div class="wrapper"> - <div class="box box1">Un</div> - <div class="box box2">Deux</div> - <div class="box box3">Trois</div> - <div class="box box4">Quatre</div> - <div class="box box5">Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-.box2 {
- grid-column-start: 1;
- grid-row-start: 2;
- grid-row-end: 4;
-}
-
-
-
-
-{{ EmbedLiveSample('Superposer_les_éléments_avec_z-index', '230', '420') }}
- -L'élément box2 est maintenant superposé avec box1, et comme il arrive après dans le code source il s'affiche par-dessus.
On peut contrôler l'ordre dans lequel les éléments s'empilent en utilisant la propriété z-index. Si nous donnons à box2 un z-index inférieur à celui de box1, l'élément box2 s'affichera sous box1 dans la pile.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
- z-index: 2;
-}
-.box2 {
- grid-column-start: 1;
- grid-row-start: 2;
- grid-row-end: 4;
- z-index: 1;
-}
-
-
-
-
-
-
-{{ EmbedLiveSample("Contrôler_l’ordre_de_superposition", '230', '420') }}
- -Dans cet article nous avons parcouru rapidement la spécification CSS Grid Layout. Essayez de jouer avec les exemples, avant de passer aux parties suivantes de ce guide pour commencer à vraiment plonger dans le détail de la CSS Grid Layout.
- -{{PreviousMenuNext("", "Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.md b/files/fr/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.md new file mode 100644 index 0000000000..800c04293b --- /dev/null +++ b/files/fr/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.md @@ -0,0 +1,600 @@ +--- +title: Les concepts de base des grilles CSS +slug: Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guide + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout +original_slug: Web/CSS/CSS_Grid_Layout/Les_concepts_de_base +--- +{{PreviousMenuNext("", "Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
+ +Le module CSS Grid Layout ajoute à CSS une grille à deux dimensions. Les grilles peuvent être utilisées pour agencer des pages entières ou de petits éléments d'interface. Cet article introduit CSS Grid Layout, et la terminologie de la spécification CSS Grid Layout Level 1. Les fonctionnalités évoquées seront expliquées plus en détail dans le reste du guide.
+ +Une grille est un ensemble de lignes horizontales et verticales qui se croisent – les premières définissant les rangées, et les secondes les colonnes. Les éléments sont placés sur la grille en fonction de ces rangées et colonnes. Les fonctionnalités sont les suivantes :
+ +On peut créer une grille avec des pistes à taille fixes en utilisant une unité comme le pixel. Pour les pistes à taille variable on peut utiliser le pourcentage ou la nouvelle unité fr créée à cet effet.
Pour placer les éléments sur la grille, on peut utiliser le numéro ou le nom d'une ligne, ou cibler une zone particulière. La grille contient aussi un algorithme pour placer les éléments qui n'ont pas été placés explicitement.
+ +Lorsqu'une grille explicite n'est pas définie, la spécification prend en charge le contenu défini en dehors d'une grille en ajoutant des colonnes et des rangées. Cela comprend des fonctionnalités telles qu'« ajouter autant de colonnes que possible dans le conteneur ».
+ +On peut contrôler l'alignement des éléments dans une zone de la grille, ainsi que celui de l'ensemble de la grille.
+ +Il peut arriver que l'on place plusieurs éléments dans une même cellule, ou que des zones se chevauchent. La superposition peut être contrôlée à l'aide de la propriété {{cssxref("z-index")}}.
+ +La grille est une spécification puissante qui peut être combinée avec d'autres modules CSS tels que flexbox. Le point de départ est le conteneur.
+ +À partir du moment où on crée un conteneur en déclarant la propriété display: grid ou display: inline-grid sur un élément, tous les enfants directs de cet élément deviennet des éléments de grille.
Cet exemple montre une div avec une classe .wrapper, avec cinq éléments enfants.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
On transforme .wrapper en conteneur.
.wrapper {
+ display: grid;
+}
+
+
+
+
+{{ EmbedLiveSample('Le_conteneur', '200', '330') }}
+ +Tous les enfants directs sont maintenant des éléments de grille. On ne voit pas la différence dans un navigateur, car la grille n'a qu'une seule colonne. Vous trouverez sans doute utile de travailler avec Firefox, qui propose un inspecteur de grille dans les outils de développement. En inspectant la grille dans Firefox, vous pouvez voir une petite icône à côté de la valeur grid. Un clic dessus permet d'afficher la grille correspondante dans le navigateur.

Cet outil vous permettra de mieux comprendre le fonctionnement de CSS Grid Layout.
+ +Pour que notre exemple ressemble vraiment à une grille nous devons ajouter des colonnes.
+ +Les propriétés {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}} permettent de définir des colonnes et des rangées. Celles-ci définissent les pistes. Une piste est l'espace entre deux lignes d'une grille. L'image ci-dessous colore une piste de la grille – correspondant à la première rangée de la grille.
+ +
On peut ajouter la propriété grid-template-columns à notre exemple précédent, pour définir la taille des colonnes.
Nous avons créé une grille avec trois pistes de 200 pixels de large. Chaque élément sera disposé dans l'une des cellules de la grille.
+ +<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: 200px 200px 200px;
+}
+
+
+
+
+{{ EmbedLiveSample('grid_first', '610', '140') }}
+ + +Les pistes peuvent être définies à l'aide de n'importe quelle unité de mesure. Les grilles proposent aussi une nouvelle unité de mesure pour aider à la création de pistes flexibles. Cette unité, fr, représente une fraction de l'espace disponible dans le conteneur de la grille. Le code suivant crée trois colonnes égales qui se redimensionnent en fonction de l'espace disponible.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr;
+}
+
+
+
+
+{{ EmbedLiveSample("L'unité_fr", '220', '140') }}
+ +L'exemple suivant crée une grille avec une colonne de 2fr, et deux colonnes de 1fr. L'espace disponible est divisé en quatre. Les deux premières fractions sont allouées à la première colonne, et chacune des colonnes suivante dispose d'une fraction.
.wrapper {
+ display: grid;
+ grid-template-columns: 2fr 1fr 1fr;
+}
+
+
+Dans ce dernier exemple nous utilisons à la fois des dimensions absolues et des relatives. La première colonne faisant 500px, cette valeur est soustraite de l'espace disponible. L'espace restant est divisé en trois et alloué proportionnellement aux deux colonnes spécifiées avec l'unité relative fr.
.wrapper {
+ display: grid;
+ grid-template-columns: 500px 1fr 2fr;
+}
+
+
+repeat() pour définir les pistesPour les grilles comprenant de nombreuses pistes on peut utiliser la notation repeat() pour répéter toute ou une partie des pistes définies. Par exemple la définition de grille :
.wrapper {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr;
+}
+
+
+peut également s'écrire :
+ +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+}
+
+
+Dans l'exemple suivant on crée une grille avec une première colonne de 20px de large, puis une section répétant 6 fois une piste de 1fr, et enfin on termine par une colonne de 20px de large.
+ +.wrapper {
+ display: grid;
+ grid-template-columns: 20px repeat(6, 1fr) 20px;
+}
+
+
+Cette notation accepte une liste de pistes, on peut donc l'utiliser pour répéter un motif. Dans l'exemple qui suit la grille aura 10 colonnes : une colonne de 1fr suivie d'une colonne de 2fr, ceci répété 5 fois.
+ +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(5, 1fr 2fr);
+}
+
+
+Dans ces exemples nous avons défini nos colonnes à l'aide de la propriété {{cssxref("grid-template-columns")}}, et nous avons laissé la grille créer les rangées. Ces rangées font partie de la grille implicite.La grille explicite est constituée des pistes définies par les propriétés {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}}. Si un élément est placé en dehors de la grille ainsi définie, ou que la quantité de contenu nécessite d'étendre la grille, alors la grille ajoute implicitement des colonnes et rangées. Les dimensions de ces pistes auront par défaut la valeur auto, c'est-à dire qu'elles s'ajusteront à leur contenu.
+ +On peut définir une taille pour les pistes de la grille implicite grâce aux propriéts {{cssxref("grid-auto-rows")}} et {{cssxref("grid-auto-columns")}}.
+ +Dans l'exemple ci-après nous utilisons grid-auto-rows pour que les rangées de la grille implicite fassent 200 pixels de haut.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 200px;
+}
+
+
+
+
+{{ EmbedLiveSample('Grille_implicite_et_grille_explicite', '230', '420') }}
+ +minmaxQue l'on crée une grille explicite, ou que l'on définisse la taille des pistes créées implicitement, il peut être utile d'assigner une taille minimum, qui s'agrandit pour s'adapter au contenu. Par exemple on peut souhaiter que les rangées ne soient jamais moins hautes que 100 pixels, mais qu'elles aillent jusqu'à 300 pixels de haut si le contenu le nécessite.
+ +La fonction {{cssxref("minmax()", "minmax()")}} permet ce comportement. Dans l'exemple suivant nous utilisons minmax() comme valeur de la propriété {{cssxref("grid-auto-rows")}}. Les rangées créées automatiquement feront un minimum de 100 pixels, et un maximum de auto, ce qui signifie que la taille s'adaptera à la hauteur du contenu.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: minmax(100px, auto);
+}
+
+
+
+
+<div class="wrapper"> + <div>Un</div> + <div>Deux + <p>Davantage de contenu.</p> + <p>On dépasse les 100 pixels.</p> + </div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
{{ EmbedLiveSample('Dimensionner_une_piste_avec_minmax', '240', '470') }}
+ +Il faut noter que l'on définit les pistes d'une grille, et pas les lignes qui en résultent. La grille génère des lignes numérotées que l'on utilise pour positionner les éléments. Dans notre grille de trois colonnes et deux rangées, nous avons quatre lignes de colonnes.
+ +
Les lignes sont numérotées selon le sens de lecture du document. Dans un langage qui se lit de gauche à droite, la ligne 1 est située à gauche, dans un langage qui se lit de droite à gauche elle est située à droite. Les lignes peuvent aussi être nommées, comme nous le verrons plus loin dans ces pages.
+ +Nous explorerons le placement sur les lignes plus en détail dans un prochain article, l'exemple qui suit montre comment l'utiliser de façon simple.
+ +Lorsque nous plaçons un élément nous ciblons une ligne plutôt qu'une piste. Nous plaçons ici les deux premiers éléments en utilisant les propriétés {{cssxref("grid-column-start")}}, {{cssxref("grid-column-end")}}, {{cssxref("grid-row-start")}} et {{cssxref("grid-row-end")}}. En allant de gauche à droite, le premier élément est placé sur la ligne de colonne 1, et va jusqu'à la ligne de colonne 4, qui dans ce cas est la dernière. Il est placé sur la ligne de rangée 1, et va jusqu'à la ligne 3, s'étendant ainsi sur deux rangées.
+ +Le second élément commence sur la ligne de colonne 1 et s'étend sur une seule piste. C'est la largeur par défaut, donc il n'est pas nécessaire de spécifier la ligne de fin. Il s'étend aussi sur deux rangées de la ligne 3 à la ligne 5. Les autres éléments se placeront dans les espaces vides de la grille.
+ +<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> + <div class="box5">Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+.box2 {
+ grid-column-start: 1;
+ grid-row-start: 3;
+ grid-row-end: 5;
+}
+
+
+
+
+
+{{ EmbedLiveSample('Positionnement_des_éléments_sur_les_lignes', '230', '420') }}
+ +Pensez à utiliser l'Inspecteur de grille dans les outils de développement pour voir comment les éléments se placent sur les lignes d'une grille items.
+ +Une cellule est la plus petite unité sur une grille, conceptuellement similaire à une cellule de tableau. Comme nous l'avons vu lorsqu'une grille est définie sur un élément ses enfants viennent se positionner chacun dans l'une des cellules de la grille. Dans l'image ci-dessous la première cellule est colorée.
+ +
Un élément peut s'étendre sur plusieurs cellules d'une rangée ou d'une colonne, et cela crée une zone. Les zones doivent être rectangulaires - on ne peut pas créer de forme en L par exemple. La zone colorée ci-dessous s'étend sur deux rangées et deux colonnes.
+ +
Les gouttières entre les cellules sont définies à l'aide des propriétés {{cssxref("grid-column-gap")}} et {{cssxref("row-gap")}}, ou de la propriété raccourcie {{cssxref("gap")}}. Dans l'exemple ci-dessous nous créons une gouttière de dix pixels de large entre les colonnes, et une gouttière de 1em de hauteur entre les rangées.
+ +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-column-gap: 10px;
+ grid-row-gap: 1em;
+}
+
+
+Note : Les anciens navigateurs utilisent {{cssxref("column-gap")}}, {{cssxref("row-gap")}}, {{cssxref("gap")}} avec le préfixe grid- soit : {{cssxref("grid-column-gap")}}, {{cssxref("row-gap")}} et {{cssxref("gap")}}.
Les navigateurs actuels retirent progressivement ce préfixe (la version préfixée sera maintenue sous forme d'alias). À l'heure actuelle, certains navigateurs ne prennent pas encore la version sans préfixe et c'est pourquoi certains exemples de ce guide continuent d'utiliser les versions préfixées avec grid-.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ + + +
{{ EmbedLiveSample('Les_gouttières') }}
+ +L'espace utilisé par les gouttières sera pris en compte avant l'assignation de la place restante aux pistes définies avec l'unité fr. La taille des gouttières est calculée comme celle des pistes, mais on ne peut pas placer d'élément dans une gouttière. Au niveau du positionnement des éléments sur les lignes, la gouttière se comporte comme une ligne épaisse.
Un élément placé dans une grille peut aussi être le conteneur d'une autre grille. Dans l'exemple suivant nous retrouvons la grille de trois colonnes créée plus haut, avec deux éléments explicitement positionnés. Le premier élément contient lui-même des éléments. Comme ils ne sont pas des enfants directs de la grille principale, ils se positionnent normalement dans le flux.
+ +<div class="wrapper"> + <div class="box box1"> + <div class="nested">a</div> + <div class="nested">b</div> + <div class="nested">c</div> + </div> + <div class="box box2">Deux</div> + <div class="box box3">Trois</div> + <div class="box box4">Quatre</div> + <div class="box box5">Cinq</div> +</div> ++ +

En définissant la propriété display:grid sur l'élément box1, il devient lui-même une grille et ses enfants se positionnent sur cette grille.
.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+}
+
+
+
+
+{{ EmbedLiveSample('Grilles_imbriquées', '600', '340') }}
+ +Dans ce cas la grille imbriquée n'est pas liée à la grille qui la contient. Elle n'hérite pas des {{cssxref("gap")}}, et ses lignes ne s'alignent pas avec celles de la grille parent.
+ +Dans le brouillon de travaille pour la spécification de niveau 2 pour CSS Grid, il existe une fonctionnalité nommée sous-grille qui permet de créer des grilles imbriquées qui utilisent la définition de la grille parent. Ceci n'est implémenté dans aucun navigateur pour le moment, et la spécification peut encore changer. Pour l'utiliser telle qu'elle est définie actuellement il faudrait modifier l'exemple suivant et remplacer display: grid par display: subgrid, et supprimer la définition des pistes. La piste imbriquée utiliserait les pistes de la grille parent pour positionner ses éléments.
Selon la version actuelle de la spécifiction, il faudrait éditer l'exemple de grille imbriquée précédent et remplacer grid-template-columns: repeat(3, 1fr) en grid-template-columns: subgrid. La grille imbriquée utilisera alors la grille parente pour inscrire ses éléments dans le document.
.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+ display: grid;
+ grid-template-columns: subgrid;
+}
+
+
+z-indexPlusieurs éléments peuvent être placés dans la même cellule. Si nous retournons à notre exemple avec les items positionnés par numéros de ligne, nous pouvons modifier cela pour que deux items se chevauchent.
+ +<div class="wrapper"> + <div class="box box1">Un</div> + <div class="box box2">Deux</div> + <div class="box box3">Trois</div> + <div class="box box4">Quatre</div> + <div class="box box5">Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+.box2 {
+ grid-column-start: 1;
+ grid-row-start: 2;
+ grid-row-end: 4;
+}
+
+
+
+
+{{ EmbedLiveSample('Superposer_les_éléments_avec_z-index', '230', '420') }}
+ +L'élément box2 est maintenant superposé avec box1, et comme il arrive après dans le code source il s'affiche par-dessus.
On peut contrôler l'ordre dans lequel les éléments s'empilent en utilisant la propriété z-index. Si nous donnons à box2 un z-index inférieur à celui de box1, l'élément box2 s'affichera sous box1 dans la pile.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+ z-index: 2;
+}
+.box2 {
+ grid-column-start: 1;
+ grid-row-start: 2;
+ grid-row-end: 4;
+ z-index: 1;
+}
+
+
+
+
+
+
+{{ EmbedLiveSample("Contrôler_l’ordre_de_superposition", '230', '420') }}
+ +Dans cet article nous avons parcouru rapidement la spécification CSS Grid Layout. Essayez de jouer avec les exemples, avant de passer aux parties suivantes de ce guide pour commencer à vraiment plonger dans le détail de la CSS Grid Layout.
+ +{{PreviousMenuNext("", "Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.html b/files/fr/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.html deleted file mode 100644 index 6721ff8c67..0000000000 --- a/files/fr/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.html +++ /dev/null @@ -1,636 +0,0 @@ ---- -title: L'alignement des boîtes avec les grilles CSS -slug: Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout -tags: - - CSS - - CSS Grid - - Grille CSS - - Guides - - Intermédiaire -translation_of: Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout -original_slug: Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS ---- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture","Web/CSS/CSS_Grid_Layout")}}
- -Si vous connaissez les boîtes flexibles (flexbox) vous savez déjà comment aligner les éléments flexibles à l'intérieur d'un conteneur flexible. Ces propriétés d'alignement, initialement spécifiée dans la spécification des boîtes flexibles, sont désormais spécifiées dans une nouvelle spécification Box Alignment Level 3. Cette spécification détaille le fonctionnement de l'alignement pour les différentes méthodes de disposition.
- -Chaque méthode de disposition qui implémente cette nouvelle spécification se comportera légèrement différemment selon les différences de contraintes et de fonctionnalités (et aussi selon le comportement historique). On ne pourra donc pas avoir un alignement exactement homogène. La spécification pour l'alignement des boîtes détaille le fonctionnement de chaque méthode mais malheureusement, à l'heure actuelle, aucun navigateur ne prend en charge cette spécification. À l'heure actuelle, les navigateurs respectent les règles de cette spécification pour l'alignement et la répartition de l'espace lorsqu'on utilise une disposition en grille. Dans cet article, nous verrons comment celles-ci fonctionnent. On retrouvera de nombreux points communs avec les boîtes flexibles pour le fonctionnement de ces propriétés et valeurs. Toutefois, les grilles fonctionnant sur deux axes et les boîtes flexibles sur un seul, il faudra faire attention à quelques différences. Commençons par analyser les deux axes utilisés lorsqu'il s'agit d'aligner des objets sur une grille.
- -Lorsqu'on manipule une grille, on dispose de deux axes sur lesquels aligner les objets. L'axe de bloc et l'axe en ligne. L'axe de bloc est l'axe selon lequel les blocs sont disposés quand on a une disposition en bloc (block layout). Par exemple, si on a deux paragraphes sur une page, par défaut, ils s'affichent l'un en dessous de l'autre.
- -
L'axe en ligne est orthogonal à l'axe de bloc. C'est la direction selon laquelle progresse le texte.
- -
Grâce aux propriétés et à leurs valeurs, nous serons en mesure d'aligner le contenu de la grillle par rapport à ces deux axes.
- -Les propriétés {{cssxref("align-self")}} et {{cssxref("align-items")}} permettent de contrôler l'alignement selon l'axe de bloc. Lorsqu'on utilise ces propriétés, on modifie l'alignement de l'objet au sein de la zone de grille sur laquelle il est placé.
- -Dans l'exemple suivant, on a quatre zones sur la grille. On peut utiliser la propriété {{cssxref("align-items")}} sur le conteneur de la grille afin d'aligner les objets avec l'une des valeurs suivantes :
- -autonormalstartendcenterstretchbaselinefirst baselinelast baseline.wrapper {
- display: grid;
- grid-template-columns: repeat(8, 1fr);
- grid-gap: 10px;
- grid-auto-rows: 100px;
- grid-template-areas:
- "a a a a b b b b"
- "a a a a b b b b"
- "c c c c d d d d"
- "c c c c d d d d";
- align-items: start;
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
-}
-.item3 {
- grid-area: c;
-}
-.item4 {
- grid-area: d;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('utiliser_align-items', '500', '450')}}
- -Lorsqu'on utilise align-self: start, la hauteur de chaque <div> sera déterminée par le contenu du <div>. En revanche, si on n'utilise pas {{cssxref("align-self")}}, chaque <div> sera étiré afin de remplir la zone de la grille.
La propriété {{cssxref("align-items")}} définit en fait la valeur de la propriété {{cssxref("align-self")}} pour tous les éléments fils de la grille. Cela signifie qu'on peut avoir un réglage plus fin sur chacun des objets de la grille en utilisant align-self pour les objets.
Dans le prochain exemple, on utilise la propriété align-self afin d'illustrer les différentes valeurs pour l'alignement. La première zone illustre le comportement par défaut pour align-self : l'objet est étiré. Le deuxième objet utilise la valeur start, le troisième utilise end et le quatrième utilise center.
.wrapper {
- display: grid;
- grid-template-columns: repeat(8, 1fr);
- grid-gap: 10px;
- grid-auto-rows: 100px;
- grid-template-areas:
- "a a a a b b b b"
- "a a a a b b b b"
- "c c c c d d d d"
- "c c c c d d d d";
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
- align-self: start;
-}
-.item3 {
- grid-area: c;
- align-self: end;
-}
-.item4 {
- grid-area: d;
- align-self: center;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('utiliser_align-self', '500', '450')}}
- -La spécification indique que le comportement par défaut pour {{cssxref("align-self")}} est d'étirer l'objet sauf si celui-ci possède un ratio intrinsèque. Dans ce cas, le comportement par défaut correspond à la valeur start. En effet, si le comportement par défaut était le même pour les éléments avec un ratio intrinsèque (une image matricielle par exemple), l'étirement distordrait l'objet.
Bien que ce comportement ait récemment été clarifié dans la spécification, il n'est pas encore implémenté dans les différents navigateurs. Pour le moment, il faut donc s'assurer d'utiliser {{cssxref("align-self")}} et {{cssxref("justify-self")}} avec les valeurs start pour les éléments concernés comme les images. Cela correspondra au comportement par défaut lorsqu'il aura été implémenté.
{{cssxref("align-items")}} et {{cssxref("align-self")}} gèrent l'alignement des objets sur l'axe de bloc. {{cssxref("justify-items")}} et {{cssxref("justify-self")}} permettent quant à eux de gérer l'alignement sur l'axe en ligne. Les valeurs disponibles sont les mêmes que pour align-self :
autonormalstartendcenterstretchbaselinefirst baselinelast baselineJuste après, on voit le même exemple qu'avec {{cssxref("align-items")}} où on a utilisé la propriété {{cssxref("justify-self")}}.
- -Là encore, la valeur par défaut stretch pour les objets qui n'ont pas de ratio intrinsèque. Cela signifie que, par défaut, les objets de la grille couvriront l'ensemble de la zone de grille sur laquelle ils sont placés. Dans l'exemple qui suit, le premier objet illustre cet alignement par défaut.
.wrapper {
- display: grid;
- grid-template-columns: repeat(8, 1fr);
- grid-gap: 10px;
- grid-auto-rows: 100px;
- grid-template-areas:
- "a a a a b b b b"
- "a a a a b b b b"
- "c c c c d d d d"
- "c c c c d d d d";
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
- justify-self: start;
-}
-.item3 {
- grid-area: c;
- justify-self: end;
-}
-.item4 {
- grid-area: d;
- justify-self: center;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> --Justifier_les_objets_sur_laxe_en_ligne_inline_axis -
{{EmbedLiveSample('alignment_3', '500', '450')}}
- -Comme pour {{cssxref("align-self")}} et {{cssxref("align-items")}}, on peut utiliser la propriété {{cssxref("justify-items")}} sur le conteneur de la grille afin de régler la valeur de {{cssxref("justify-self")}} pour l'ensemble des objets de la grille.
- -Les propriétés {{cssxref("justify-self")}} et {{cssxref("justify-items")}} ne sont pas disponibles lorsqu'on utilise les boîtes flexibles car celles-ci s'étendent uniquement sur une dimension. Pour aligner les éléments sur l'axe principale d'une boîte flexible, on utilisera la propriété {{cssxref("justify-content")}}.
- -La propriété {{CSSxRef("place-items")}} est une propriété raccourcie qui synthétise {{CSSxRef("align-items")}} et {{CSSxRef("justify-items")}}. {{CSSxRef("place-self")}} est une propriété raccourcie qui synthétise {{CSSxRef("align-self")}} et {{CSSxRef("justify-self")}}.
- -En combinant les propriétés align-* et justify-*, on peut facilement centrer un objet sur sa zone de grille.
.wrapper {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- grid-gap: 10px;
- grid-auto-rows: 200px;
- grid-template-areas:
- ". a a ."
- ". a a .";
-}
-.item1 {
- grid-area: a;
- align-self: center;
- justify-self: center;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> -</div> -- -
{{EmbedLiveSample('Centrer_un_objet_sur_une_zone', '500', '480')}}
- -Si on a des pistes qui n'occupent pas tout l'espace du conteneur, on pourra aligner les pistes au sein du conteneur. Là aussi, on peut obtenir cet alignement sur l'axe des colonnes et l'axe des lignes : {{cssxref("align-content")}} permet d'aligner les pistes selon l'axe des colonnes et {{cssxref("justify-content")}} permettant d'aligner sur l'axe en ligne.
- -La propriété {{cssxref("place-content")}} est une propriété raccourcie pour {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
- -Les valeurs disponibles pour {{cssxref("align-content")}}, {{cssxref("justify-content")}} et {{cssxref("place-content")}} sont :
- -normalstartendcenterstretchspace-aroundspace-betweenspace-evenlybaselinefirst baselinelast baselineDans l'exemple qui suit, on a un conteneur qui mesure 500 pixels de haut sur 500 pixels de large. On définit trois pistes de ligne et trois pistes de colonnes qui mesurent chacune 100 pixels et avec une gouttière de 10 pixels. On a donc un espace disponible dans le conteneur dans chaque direction.
- -La propriété align-content s'applique sur le conteneur de la grille car elle porte sur l'ensemble de la grille. Pour une disposition en grille, la valeur par défaut est start : cela indique que les pistes commencent à partir du coin en haut à gauche de la grille.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(3,100px);
- height: 500px;
- width: 500px;
- grid-gap: 10px;
- grid-template-areas:
- "a a b"
- "a a b"
- "c d d";
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
-}
-.item3 {
- grid-area: c;
-}
-.item4 {
- grid-area: d;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('alignement_par_defaut', '500', '520')}}
- -Si on ajoute align-content avec la valeur end sur le conteneur, les pistes seront déplacées à la fin du conteneur selon l'axe des colonnes.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(3,100px);
- height: 500px;
- width: 500px;
- grid-gap: 10px;
- grid-template-areas:
- "a a b"
- "a a b"
- "c d d";
- align-content: end;
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
-}
-.item3 {
- grid-area: c;
-}
-.item4 {
- grid-area: d;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('align-content_end', '500', '520')}}
- -Pour cette propriété, on peut également utiliser des valeurs qu'on manipule avec les boîtes flexibles : space-between, space-around et space-evenly qui permettent de répartir l'espace. Si on utilise {{cssxref("align-content")}} avec space-between pour notre exemple, on voit alors que les éléments sont espacés de façon équitable.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(3,100px);
- height: 500px;
- width: 500px;
- grid-gap: 10px;
- grid-template-areas:
- "a a b"
- "a a b"
- "c d d";
- align-content: space-between;
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
-}
-.item3 {
- grid-area: c;
-}
-.item4 {
- grid-area: d;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('align-content_end_space-between', '500', '1570')}}
- -On notera qu'en utilisant ces valeurs pour répartir l'espace, cela peut agrandir les objets de la grille. Si un objet s'étale sur plusieurs pistes, un espace sera ajouté entre chaque piste afin que l'objet qui doit être agrandi puisse absorber cet espace. Aussi, si vous choisissez d'utiliser ces valeurs, assurez-vous que le contenu des pistes puisse absorber cet espace supplémentaire ou que les propriétés d'alignement les renvoient au début de la piste plutôt que de les étirer.
- -Dans l'image qui suit, on a a placé une grille en utilisant align-content: start et une autre grille qui utilise align-content: space-between. On peut voir la façon dont les objets 1 et 2 (qui s'étalent sur deux lignes) ont gagné en hauteur pour combler l'espace entre les pistes.

Sur l'axe des lignes, on peut utiliser {{cssxref("justify-content")}} de la même façon qu'on utilisait {{cssxref("align-content")}} pour l'axe des colonnes.
- -Avec le même exemple, on utilise {{cssxref("justify-content")}} avec la valeur space-around. Là encore, les pistes qui s'étalent sur plus d'une colonne gagnent en largeur.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(3,100px);
- height: 500px;
- width: 500px;
- grid-gap: 10px;
- grid-template-areas:
- "a a b"
- "a a b"
- "c d d";
- align-content: space-between;
- justify-content: space-around;
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
-}
-.item3 {
- grid-area: c;
-}
-.item4 {
- grid-area: d;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('Justifier_les_pistes_sur_laxe_des_lignes', '500', '500')}}
- -Pour aligner les objets dans une zone, on peut également utiliser des marges automatiques. Si vous avez déjà utiliser auto pour les marges droite et gauche d'un conteneur de bloc, vous savez qu'une telle marge absorbe l'espace disponible. En utilisant auto pour les deux côtés, le bloc est contraint au milieu car les deux marges occupent le plus d'espace possible.
Dans l'exemple qui suit, pour l'objet 1, on utilise une marge à gauche avec auto. On peut alors voir le contenu poussé à droite de la zone (la marge à gauche occupant le plus d'espace possible).
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(3,100px);
- height: 500px;
- width: 500px;
- grid-gap: 10px;
- grid-template-areas:
- "a a b"
- "a a b"
- "c d d";
-}
-.item1 {
- grid-area: a;
- margin-left: auto;
-}
-.item2 {
- grid-area: b;
-}
-.item3 {
- grid-area: c;
-}
-.item4 {
- grid-area: d;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('Alignement_et_marges_automatiques', '500', '500')}}
- -On peut voir comment l'objet est aligné grâce à l'outil de mise en évidence des grilles dans Firefox.
- -
Dans tout ces exemples, nous avons travaillé en français ou en anglais, des langues qui s'écrivent de gauche à droite. Cela signifie que les lignes de début de notre grille étaient situées en haut et à gauche lorsqu'on raisonnait avec des directions physiques.
- -Les spécifications pour les grilles CSS et les boîtes flexibles sont conçues pour fonctionner avec les différents modes d'écriture. Cela signifie que si on travaille avec une langue qui s'écrit de droite à gauche (comme l'arabe), le début de la grille serait en haut à droite. Cela signifie également que la valeur par défaut justify-content: start placerait les pistes du côté droit de la grille. En revanche, si on utilise les marges automatiques avec margin-right ou margin-left ou si on utilise le positionnement absolu avec les valeurs top, right, bottom et left, on ne tiendra pas compte des modes d'écritures. Dans le guide suivant, nous verrons plus en détails comment les grilles et l'alignement interagissent avec les modes d'écriture. Cet aspect est fondamental si vous souhaitez développer des sites qui puissent être affichés dans plusieurs langues ou si vous souhaitez mélanger certaines langues ou modes d'écriture pour une application.
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.md b/files/fr/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.md new file mode 100644 index 0000000000..6721ff8c67 --- /dev/null +++ b/files/fr/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.md @@ -0,0 +1,636 @@ +--- +title: L'alignement des boîtes avec les grilles CSS +slug: Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout +tags: + - CSS + - CSS Grid + - Grille CSS + - Guides + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout +original_slug: Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture","Web/CSS/CSS_Grid_Layout")}}
+ +Si vous connaissez les boîtes flexibles (flexbox) vous savez déjà comment aligner les éléments flexibles à l'intérieur d'un conteneur flexible. Ces propriétés d'alignement, initialement spécifiée dans la spécification des boîtes flexibles, sont désormais spécifiées dans une nouvelle spécification Box Alignment Level 3. Cette spécification détaille le fonctionnement de l'alignement pour les différentes méthodes de disposition.
+ +Chaque méthode de disposition qui implémente cette nouvelle spécification se comportera légèrement différemment selon les différences de contraintes et de fonctionnalités (et aussi selon le comportement historique). On ne pourra donc pas avoir un alignement exactement homogène. La spécification pour l'alignement des boîtes détaille le fonctionnement de chaque méthode mais malheureusement, à l'heure actuelle, aucun navigateur ne prend en charge cette spécification. À l'heure actuelle, les navigateurs respectent les règles de cette spécification pour l'alignement et la répartition de l'espace lorsqu'on utilise une disposition en grille. Dans cet article, nous verrons comment celles-ci fonctionnent. On retrouvera de nombreux points communs avec les boîtes flexibles pour le fonctionnement de ces propriétés et valeurs. Toutefois, les grilles fonctionnant sur deux axes et les boîtes flexibles sur un seul, il faudra faire attention à quelques différences. Commençons par analyser les deux axes utilisés lorsqu'il s'agit d'aligner des objets sur une grille.
+ +Lorsqu'on manipule une grille, on dispose de deux axes sur lesquels aligner les objets. L'axe de bloc et l'axe en ligne. L'axe de bloc est l'axe selon lequel les blocs sont disposés quand on a une disposition en bloc (block layout). Par exemple, si on a deux paragraphes sur une page, par défaut, ils s'affichent l'un en dessous de l'autre.
+ +
L'axe en ligne est orthogonal à l'axe de bloc. C'est la direction selon laquelle progresse le texte.
+ +
Grâce aux propriétés et à leurs valeurs, nous serons en mesure d'aligner le contenu de la grillle par rapport à ces deux axes.
+ +Les propriétés {{cssxref("align-self")}} et {{cssxref("align-items")}} permettent de contrôler l'alignement selon l'axe de bloc. Lorsqu'on utilise ces propriétés, on modifie l'alignement de l'objet au sein de la zone de grille sur laquelle il est placé.
+ +Dans l'exemple suivant, on a quatre zones sur la grille. On peut utiliser la propriété {{cssxref("align-items")}} sur le conteneur de la grille afin d'aligner les objets avec l'une des valeurs suivantes :
+ +autonormalstartendcenterstretchbaselinefirst baselinelast baseline.wrapper {
+ display: grid;
+ grid-template-columns: repeat(8, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: 100px;
+ grid-template-areas:
+ "a a a a b b b b"
+ "a a a a b b b b"
+ "c c c c d d d d"
+ "c c c c d d d d";
+ align-items: start;
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+}
+.item3 {
+ grid-area: c;
+}
+.item4 {
+ grid-area: d;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('utiliser_align-items', '500', '450')}}
+ +Lorsqu'on utilise align-self: start, la hauteur de chaque <div> sera déterminée par le contenu du <div>. En revanche, si on n'utilise pas {{cssxref("align-self")}}, chaque <div> sera étiré afin de remplir la zone de la grille.
La propriété {{cssxref("align-items")}} définit en fait la valeur de la propriété {{cssxref("align-self")}} pour tous les éléments fils de la grille. Cela signifie qu'on peut avoir un réglage plus fin sur chacun des objets de la grille en utilisant align-self pour les objets.
Dans le prochain exemple, on utilise la propriété align-self afin d'illustrer les différentes valeurs pour l'alignement. La première zone illustre le comportement par défaut pour align-self : l'objet est étiré. Le deuxième objet utilise la valeur start, le troisième utilise end et le quatrième utilise center.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(8, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: 100px;
+ grid-template-areas:
+ "a a a a b b b b"
+ "a a a a b b b b"
+ "c c c c d d d d"
+ "c c c c d d d d";
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+ align-self: start;
+}
+.item3 {
+ grid-area: c;
+ align-self: end;
+}
+.item4 {
+ grid-area: d;
+ align-self: center;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('utiliser_align-self', '500', '450')}}
+ +La spécification indique que le comportement par défaut pour {{cssxref("align-self")}} est d'étirer l'objet sauf si celui-ci possède un ratio intrinsèque. Dans ce cas, le comportement par défaut correspond à la valeur start. En effet, si le comportement par défaut était le même pour les éléments avec un ratio intrinsèque (une image matricielle par exemple), l'étirement distordrait l'objet.
Bien que ce comportement ait récemment été clarifié dans la spécification, il n'est pas encore implémenté dans les différents navigateurs. Pour le moment, il faut donc s'assurer d'utiliser {{cssxref("align-self")}} et {{cssxref("justify-self")}} avec les valeurs start pour les éléments concernés comme les images. Cela correspondra au comportement par défaut lorsqu'il aura été implémenté.
{{cssxref("align-items")}} et {{cssxref("align-self")}} gèrent l'alignement des objets sur l'axe de bloc. {{cssxref("justify-items")}} et {{cssxref("justify-self")}} permettent quant à eux de gérer l'alignement sur l'axe en ligne. Les valeurs disponibles sont les mêmes que pour align-self :
autonormalstartendcenterstretchbaselinefirst baselinelast baselineJuste après, on voit le même exemple qu'avec {{cssxref("align-items")}} où on a utilisé la propriété {{cssxref("justify-self")}}.
+ +Là encore, la valeur par défaut stretch pour les objets qui n'ont pas de ratio intrinsèque. Cela signifie que, par défaut, les objets de la grille couvriront l'ensemble de la zone de grille sur laquelle ils sont placés. Dans l'exemple qui suit, le premier objet illustre cet alignement par défaut.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(8, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: 100px;
+ grid-template-areas:
+ "a a a a b b b b"
+ "a a a a b b b b"
+ "c c c c d d d d"
+ "c c c c d d d d";
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+ justify-self: start;
+}
+.item3 {
+ grid-area: c;
+ justify-self: end;
+}
+.item4 {
+ grid-area: d;
+ justify-self: center;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++Justifier_les_objets_sur_laxe_en_ligne_inline_axis +
{{EmbedLiveSample('alignment_3', '500', '450')}}
+ +Comme pour {{cssxref("align-self")}} et {{cssxref("align-items")}}, on peut utiliser la propriété {{cssxref("justify-items")}} sur le conteneur de la grille afin de régler la valeur de {{cssxref("justify-self")}} pour l'ensemble des objets de la grille.
+ +Les propriétés {{cssxref("justify-self")}} et {{cssxref("justify-items")}} ne sont pas disponibles lorsqu'on utilise les boîtes flexibles car celles-ci s'étendent uniquement sur une dimension. Pour aligner les éléments sur l'axe principale d'une boîte flexible, on utilisera la propriété {{cssxref("justify-content")}}.
+ +La propriété {{CSSxRef("place-items")}} est une propriété raccourcie qui synthétise {{CSSxRef("align-items")}} et {{CSSxRef("justify-items")}}. {{CSSxRef("place-self")}} est une propriété raccourcie qui synthétise {{CSSxRef("align-self")}} et {{CSSxRef("justify-self")}}.
+ +En combinant les propriétés align-* et justify-*, on peut facilement centrer un objet sur sa zone de grille.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: 200px;
+ grid-template-areas:
+ ". a a ."
+ ". a a .";
+}
+.item1 {
+ grid-area: a;
+ align-self: center;
+ justify-self: center;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> +</div> ++ +
{{EmbedLiveSample('Centrer_un_objet_sur_une_zone', '500', '480')}}
+ +Si on a des pistes qui n'occupent pas tout l'espace du conteneur, on pourra aligner les pistes au sein du conteneur. Là aussi, on peut obtenir cet alignement sur l'axe des colonnes et l'axe des lignes : {{cssxref("align-content")}} permet d'aligner les pistes selon l'axe des colonnes et {{cssxref("justify-content")}} permettant d'aligner sur l'axe en ligne.
+ +La propriété {{cssxref("place-content")}} est une propriété raccourcie pour {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
+ +Les valeurs disponibles pour {{cssxref("align-content")}}, {{cssxref("justify-content")}} et {{cssxref("place-content")}} sont :
+ +normalstartendcenterstretchspace-aroundspace-betweenspace-evenlybaselinefirst baselinelast baselineDans l'exemple qui suit, on a un conteneur qui mesure 500 pixels de haut sur 500 pixels de large. On définit trois pistes de ligne et trois pistes de colonnes qui mesurent chacune 100 pixels et avec une gouttière de 10 pixels. On a donc un espace disponible dans le conteneur dans chaque direction.
+ +La propriété align-content s'applique sur le conteneur de la grille car elle porte sur l'ensemble de la grille. Pour une disposition en grille, la valeur par défaut est start : cela indique que les pistes commencent à partir du coin en haut à gauche de la grille.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(3,100px);
+ height: 500px;
+ width: 500px;
+ grid-gap: 10px;
+ grid-template-areas:
+ "a a b"
+ "a a b"
+ "c d d";
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+}
+.item3 {
+ grid-area: c;
+}
+.item4 {
+ grid-area: d;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('alignement_par_defaut', '500', '520')}}
+ +Si on ajoute align-content avec la valeur end sur le conteneur, les pistes seront déplacées à la fin du conteneur selon l'axe des colonnes.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(3,100px);
+ height: 500px;
+ width: 500px;
+ grid-gap: 10px;
+ grid-template-areas:
+ "a a b"
+ "a a b"
+ "c d d";
+ align-content: end;
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+}
+.item3 {
+ grid-area: c;
+}
+.item4 {
+ grid-area: d;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('align-content_end', '500', '520')}}
+ +Pour cette propriété, on peut également utiliser des valeurs qu'on manipule avec les boîtes flexibles : space-between, space-around et space-evenly qui permettent de répartir l'espace. Si on utilise {{cssxref("align-content")}} avec space-between pour notre exemple, on voit alors que les éléments sont espacés de façon équitable.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(3,100px);
+ height: 500px;
+ width: 500px;
+ grid-gap: 10px;
+ grid-template-areas:
+ "a a b"
+ "a a b"
+ "c d d";
+ align-content: space-between;
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+}
+.item3 {
+ grid-area: c;
+}
+.item4 {
+ grid-area: d;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('align-content_end_space-between', '500', '1570')}}
+ +On notera qu'en utilisant ces valeurs pour répartir l'espace, cela peut agrandir les objets de la grille. Si un objet s'étale sur plusieurs pistes, un espace sera ajouté entre chaque piste afin que l'objet qui doit être agrandi puisse absorber cet espace. Aussi, si vous choisissez d'utiliser ces valeurs, assurez-vous que le contenu des pistes puisse absorber cet espace supplémentaire ou que les propriétés d'alignement les renvoient au début de la piste plutôt que de les étirer.
+ +Dans l'image qui suit, on a a placé une grille en utilisant align-content: start et une autre grille qui utilise align-content: space-between. On peut voir la façon dont les objets 1 et 2 (qui s'étalent sur deux lignes) ont gagné en hauteur pour combler l'espace entre les pistes.

Sur l'axe des lignes, on peut utiliser {{cssxref("justify-content")}} de la même façon qu'on utilisait {{cssxref("align-content")}} pour l'axe des colonnes.
+ +Avec le même exemple, on utilise {{cssxref("justify-content")}} avec la valeur space-around. Là encore, les pistes qui s'étalent sur plus d'une colonne gagnent en largeur.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(3,100px);
+ height: 500px;
+ width: 500px;
+ grid-gap: 10px;
+ grid-template-areas:
+ "a a b"
+ "a a b"
+ "c d d";
+ align-content: space-between;
+ justify-content: space-around;
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+}
+.item3 {
+ grid-area: c;
+}
+.item4 {
+ grid-area: d;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('Justifier_les_pistes_sur_laxe_des_lignes', '500', '500')}}
+ +Pour aligner les objets dans une zone, on peut également utiliser des marges automatiques. Si vous avez déjà utiliser auto pour les marges droite et gauche d'un conteneur de bloc, vous savez qu'une telle marge absorbe l'espace disponible. En utilisant auto pour les deux côtés, le bloc est contraint au milieu car les deux marges occupent le plus d'espace possible.
Dans l'exemple qui suit, pour l'objet 1, on utilise une marge à gauche avec auto. On peut alors voir le contenu poussé à droite de la zone (la marge à gauche occupant le plus d'espace possible).
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(3,100px);
+ height: 500px;
+ width: 500px;
+ grid-gap: 10px;
+ grid-template-areas:
+ "a a b"
+ "a a b"
+ "c d d";
+}
+.item1 {
+ grid-area: a;
+ margin-left: auto;
+}
+.item2 {
+ grid-area: b;
+}
+.item3 {
+ grid-area: c;
+}
+.item4 {
+ grid-area: d;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('Alignement_et_marges_automatiques', '500', '500')}}
+ +On peut voir comment l'objet est aligné grâce à l'outil de mise en évidence des grilles dans Firefox.
+ +
Dans tout ces exemples, nous avons travaillé en français ou en anglais, des langues qui s'écrivent de gauche à droite. Cela signifie que les lignes de début de notre grille étaient situées en haut et à gauche lorsqu'on raisonnait avec des directions physiques.
+ +Les spécifications pour les grilles CSS et les boîtes flexibles sont conçues pour fonctionner avec les différents modes d'écriture. Cela signifie que si on travaille avec une langue qui s'écrit de droite à gauche (comme l'arabe), le début de la grille serait en haut à droite. Cela signifie également que la valeur par défaut justify-content: start placerait les pistes du côté droit de la grille. En revanche, si on utilise les marges automatiques avec margin-right ou margin-left ou si on utilise le positionnement absolu avec les valeurs top, right, bottom et left, on ne tiendra pas compte des modes d'écritures. Dans le guide suivant, nous verrons plus en détails comment les grilles et l'alignement interagissent avec les modes d'écriture. Cet aspect est fondamental si vous souhaitez développer des sites qui puissent être affichés dans plusieurs langues ou si vous souhaitez mélanger certaines langues ou modes d'écriture pour une application.
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/css_grid_and_progressive_enhancement/index.html b/files/fr/web/css/css_grid_layout/css_grid_and_progressive_enhancement/index.html deleted file mode 100644 index 1b93e665ec..0000000000 --- a/files/fr/web/css/css_grid_layout/css_grid_and_progressive_enhancement/index.html +++ /dev/null @@ -1,412 +0,0 @@ ---- -title: Les grilles CSS et l'amélioration progressive -slug: Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement -tags: - - CSS - - CSS Grids - - Grilles CSS - - Guide - - Intermédiaire -translation_of: Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement -original_slug: Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive ---- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité", "Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","Web/CSS/CSS_Grid_Layout")}}
- -Au printemps 2017, on voit pour la première fois une spécification majeure être disponible presque simultanément dans différents navigateurs : les grilles CSS (CSS Grid). Les grilles CSS sont disponibles dans les versions récentes de Firefox, Chrome, Opera, Safari et Edge. Malgré cela, si ces navigateurs récents permettront à la plupart d'entre nous de profiter de ces nouvelles fonctionnalités, il existe d'anciens navigateurs ou d'autres navigateurs qui ne prennent pas en charge ces fonctionnalité. Dans ce guide, nous allons parcourir différentes stratégies pour gérer cette prise en charge.
- -En dehors d'Internet Explorer, les propriétés et valeurs relatives aux grilles CSS ne sont pas préfixées dans Safari, Chrome, Opera, Edge et dans Firefox. Toutes les propriétés et valeurs que nous avons vues dans ce guide fonctionnent de façon interopérable entre ces navigateurs. Cela signifie que si vous écrivez des règles CSS pour paramétrer une grille, le document doit avoir le même rendu dans Firefox, Opera et dans Chrome. Les grilles CSS ne sont plus une spécification expérimentale, elles peuvent donc être utilisées en production.
- -La première implémentation des grilles CSS a eu lieu avec Internet Explorer 10. La première version de la spécification ne contenait alors pas toutes les propriétés et valeurs décrites dans la spécification actuelle. Il existe également des différences importantes entre ce qui est disponible dans IE10 et la spécification actuelle, même si les propriétés et les valeurs se ressemblent à première vue. Cette implémentation initiale est également celle qui est en place dans Edge jusqu'à la version 15.
- -La version implémentée pour IE/Edge (≤15) est préfixée avec -ms et les propriétés ont les noms suivants :
-ms-grid-columns-ms-grid-rows-ms-grid-row-ms-grid-column-ms-grid-row-align-ms-grid-column-alignLa version implémentée dans Internet Explorer dispose de propriétés supplémentaires qui ne font pas partie de la nouvelle spécification : -ms-grid-column-span et -ms-grid-row-span. La version implémentée dans IE ne profite pas du placement automatique ou des zones nommées. On peut implémenter certaines grilles simples pour IE10 et jusqu'à Edge 15, grâce à ces propriétés préfixées par -ms. Ces propriétés étant préfixées, elles ne seront pas reconnues (et n'auront aucun effet) pour les navigateurs qui implémentent la spécification actuelle.
L'outil autoprefixer a été mis à jour afin de prendre en charge les versions préfixées par -ms- lorsqu'on utilise les nouvelles propriétés. Par défaut, les préfixes liés à la grille sont désactivés mais vous pouvez les activer avec l'option grid: autoplace.
autoprefixer({ grid: 'autoplace' })
-
-Les préfixes relatifs aux grilles sont désactivés par défaut car certaines propriétés ne peuvent pas être préfixées
- -Comme pour les autres technologies front-end, la décision d'utiliser les grilles CSS se résume souvent au parc de navigateurs utilisés par le public de votre site ou votre application. S'ils ont tendance à utiliser des version à jour de Firefox, Chrome, Opera et Safari, il serait logique de commencer à utiliser les grilles CSS dès que la nouvelle version des navigateurs sera disponible. En revanche, si le marché visé repose sur d'anciens navigateurs, ce n'est peut-être pas le bon choix. Toutefois, je suggèrerai de ne pas prendre les mêmes hypothèses que pour la diffusion des autres spécifications par le passé : le travail d'implémentation et d'homogénéisation réalisés par les différents distributeurs de navigateur pour les fonctionnalités des grilles CSS est sans précédent.
- -On notera qu'il n'est pas nécessaire d'avoir une rupture brutale pour utiliser les grilles CSS. On peut commencer par améliorer quelques éléments avec une grille et conserver l'ancienne méthode d'affichage pour les navigateurs historiques. Surcharger ces méthodes historiques avec les grilles fonctionne très bien étant donné la façon dont les grilles interagissent avec ces autres méthodes.
- -Jusqu'à présent, pour créer une disposition sur plusieurs colonnes, on a utilisé des dispositions flottantes. Si vous avez un objet qui flotte et que celui-ci est également un objet d'une grille CSS : dans un navigateur qui prend en charge les grilles CSS, le flottement ne sera plus appliqué sur l'objet. En fait, la grille prend le pas sur le flottement. Dans l'exemple qui suit, on a simplement un objet média. Pour un navigateur historique, on utilise {{cssxref("float")}}, cependant, on a également défini un conteneur de grille dans lequel on pourra utiliser les propriétés d'alignement disponibles pour les navigateurs qui implémentent les grilles CSS.
- -Le mode {{cssxref("float")}} ne s'applique plus sur l'objet et on peut utiliser la propriété {{cssxref("align-self")}} afin d'aligner le contenu vers la fin du conteneur.
- -* {box-sizing: border-box;}
-img {
- max-width: 100%;
- display: block;
-}
-.media {
- border: 2px solid #f76707;
- border-radius: 5px;
- background-color: #fff4e6;
- max-width: 400px;
- display: grid;
- grid-template-columns: 1fr 2fr;
- grid-template-areas: "img content";
- margin-bottom: 1em;
-}
-.media::after {
- content: "";
- display: block;
- clear: both;
-}
-.media .image {
- float: left;
- width: 150px;
- margin-right: 20px;
-}
-.media .text {
- padding: 10px;
- align-self: end;
-}
-
-
-<div class="media"> - <div class="image"> - <img src="http://placehold.it/150x150" alt="placeholder"> - </div> - <div class="text"> - Voici un exemple avec un média. On utilise le flottement - pour les anciens navigateurs et une grille pour les - nouveaux. - </div> -</div> -- -
{{EmbedLiveSample('Effectuer_la_transition_depuis_une_disposition_flottante', '500', '180')}}
- -Dans l'image qui suit, on voit à gauche ce qu'on obtient dans un navigateur qui ne prend pas en charge les grilles CSS et à droite le résultat obtenu pour un navigateur qui permet de les utiliser.
- -
L'exemple que nous venons de voir est très simple et on peut résoudre le problème sans avoir à écrire de code qui gênerait les navigateurs historiques, le code historique ne pose pas non plus de problème pour les navigateurs qui prennent en charge les grilles CSS. Dans la réalité, on fait parfois face à des cas plus complexes.
- -Dans le prochain exemple, nous aurons un ensemble de cartes disposées avec du flottement. On a défini une largeur ({{cssxref("width")}}) sur ces cartes afin de pouvoir appliquer le flottement {{cssxref("float")}}. Pour créer des espaces entre les cartes, on utilise une marge ({{cssxref("margin")}}) sur les objets puis une marge négative sur le conteneur.
- - - -.wrapper ul {
- overflow: hidden;
- margin: 0 -10px;
- padding: 0;
- list-style: none;
-}
-.wrapper li {
- float: left;
- width: calc(33.333333% - 20px);
- margin: 0 10px 20px 10px;
-}
-
-
-<div class="wrapper"> - <ul> - <li class="card"> - <h2>Un</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Deux</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Trois</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Quatre</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Cinq</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Six</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - </ul> -</div> -- -
{{EmbedLiveSample('un_exemple_plus_complexe', '550', '400')}}
- -Dans la capture qui suit, on voit un problème classique qui est causé par les dispositions flottantes : si on ajoute du contenu à l'une des cartes, la disposition est chamboulée.
- -
Pour gérer les anciens navigateurs dans une certaine mesure, on peut indiquer une hauteur minimale pour les boîtes avec {{cssxref("min-height")}} et espérer que les éditeurs n'ajouteront pas trop de contenu dans chaque boîte…
- -Voyons comment améliorer cette disposition avec une grille : on transforme l'élément {{HTMLElement("ul")}} en un conteneur de grille avec trois pistes en colonne. Malheureusement, la largeur qu'on avait affectée aux éléments de la liste s'applique toujours et désormais, chaque élément de la liste occupe uniquement un tiers de la piste correspondante.
- -
Si on réinitialise la largeur avec auto, on n'aura plus le résultat souhaité dans les anciens navigateurs. Il faut donc trouver un moyen de définir la largeur pour les anciens navigateurs et de supprimer la largeur quand le navigateur prend en charge les grilles CSS. Grâce aux requêtes de fonctionnalité CSS, on peut le faire directement en CSS.
Les requêtes de fonctionnalité ressemblent beaucoup aux requêtes de média qu'on utilise pour créer des dispositions adaptatives. Ici, plutôt que de vérifier la largeur de la zone d'affichage ou telle caractéristique du navigateur ou de l'appareil, on vérifie la prise en charge d'une propriété CSS avec une certaine valeur grâce à une règle {{cssxref("@supports")}}. À l'intérieur de cette requête, on peut écrire le CSS nécessaire pour obtenir la nouvelle disposition et retiré tout ce qui est nécessaire pour l'ancienne mise en forme.
- -@supports (display: grid) {
- .wrapper {
- // ajouter les règles qu'on souhaite
- // pour les navigateurs qui prennent
- // en charge les grilles
- }
-}
-
-
-La prise en charge des requêtes de fonctionnalité par les différents navigateurs est excellente. Tous les navigateurs qui prennent en charge la nouvelle spécification pour les grilles CSS supportent aussi les requêtes de fonctionnalité. On peut donc les utiliser pour résoudre le problème précédent pour améliorer la disposition flottante.
- -On utilise donc @supports pour vérifier la prise en charge de display: grid;, ensuite on indique que {{HTMLElement("ul")}} est le conteneur de la grille, on définit la largeur et {{cssxref("min-height")}} avec auto pour les éléments {{HTMLElement("li")}}. On retire également les marges, les marges négatives et on remplace l'espacement avec la propriété {{cssxref("gap")}}. Cela signifie qu'il n'y aura pas de marge finale sur la dernière ligne de boîtes. La disposition fonctionne également désormais lorsqu'une carte possède plus de contenu qu'une autre.
.wrapper ul {
- overflow: hidden;
- margin: 0 -10px;
- padding: 0;
- list-style: none;
-}
-.wrapper li {
- float: left;
- width: calc(33.333333% - 20px);
- margin: 0 10px 20px 10px;
-}
-@supports (display: grid) {
- .wrapper ul {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 20px;
- margin: 0;
- }
- .wrapper li {
- width: auto;
- min-height: auto;
- margin: 0;
- }
-}
-
-
-<div class="wrapper"> - <ul> - <li class="card"> - <h2>Un</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Deux</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Trois</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Quatre</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Cinq</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Six</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - </ul> -</div> -- -
{{EmbedLiveSample('une_solution_avec_les_requetes_de_fonctionnalité', '550', '480')}}
- -displayÉtant donné ces problèmes pour créer des grilles d'objets avec du flottement, il est probable que nous aurions choisi un autre méthode initialement, par exemple display: inline-block.
Là encore, on peut utiliser les requêtes de fonctionnalité pour surcharger display: inline-block. Ici aussi, il n'est pas nécessaire de tout surcharger. Pour les éléments concernés par inline-block, ils deviendront des objets de la grille et inline-block ne s'appliquera plus. Dans l'exemple qui suit, on utilise la propriété vertical-align sur les éléments lorsqu'on utilise le mode inline-block, cette propriété n'étant pas appliquée aux éléments d'une grille, elle est ignorée lorsque l'élément devient un objet de la grille.
.wrapper ul {
- margin: 0 -10px;
- padding: 0;
- list-style: none;
-}
-
-.wrapper li {
- display: inline-block;
- vertical-align: top;
- width: calc(33.333333% - 20px);
- margin: 0 10px 20px 10px;
-}
-@supports (display: grid) {
- .wrapper ul {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 20px;
- margin: 0;
- }
- .wrapper li {
- width: auto;
- margin: 0;
- }
-}
-
-
-<div class="wrapper"> - <ul> - <li class="card"> - <h2>Un</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Deux</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Trois</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Quatre</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Cinq</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - <li class="card"> - <h2>Six</h2> - <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> - </li> - </ul> -</div> -- -
{{EmbedLiveSample('Surcharger_les_autres_valeurs_pour_display', '500', '480')}}
- -Ici aussi, il faut reparamétrer la largeur de l'élément puis améliorer les autres propriétés. Dans cet exemple également on a utilisé grid-gap plutôt que des marges et des marges négatives pour créer les « gouttières ».
La spécification sur les grilles CSS détaille comment on peu surcharger le comportement de certaines propriétés lorsqu'un élément devient un objet d'une grille. Les sections principales sur ce sujet sont :
- -Ce comportement est détaillé dans la spécification et on peut donc l'utiliser pour surcharger les règles utilisées pour les navigateurs qui ne prennent pas en charge les grilles CSS. Ce que nous avons appliqué n'est pas une bidouille, on tire simplement parti de l'interaction entre les différents modes de disposition, tel que décrit dans la spécification.
- - displayLorsqu'un élément possède un parent pour lequel display: grid, cet élément devient un bloc (cf. la specification). C'est pour cela que, pour l'élément qui utilisait inline-block, display: inline-block ne s'appliquait plus.
Si la disposition historique utilise display: table, un élément avec display: table-cell génèrera des boîtes anonymes. Aussi, si on utilise display: table-cell sans élément parent avec display-table, un tableau implicite sera créé autour des cellules adjacentes (comme si on a avait enveloppé le tout dans un div ou autre pour lequel on aurait défini display: table). Si on a un objet pour lequel display: table-cell et que, dans une requête de fonctionnalité, on utilise display: grid pour l'élément parent, il n'y aura plus de création de boîtes anonymes. Cela signifie qu'on peut surcharger display: table sans avoir ces boîtes anonymes supplémentaires.
Comme nous l'avons déjà vu, {{cssxref("float")}}, ainsi que {{cssxref("clear")}} n'ont aucun effet sur un objet de grille. Il n'est donc pas nécessaire d'utiliser explicitement float: none sur les éléments.
La propriété d'alignement {{cssxref("vertical-align")}} n'a aucun effet sur un objet d'une grille. Pour les dispositions qui utilisent display: inline-block ou display: table, la propriété vertical-align était utilisée pour réaliser des alignements basiques. Avec une disposition en grille, on peut utiliser les propriétés d'alignement des boîtes sur la grille, plus puissantes.
Il est aussi possible de partir d'une disposition sur plusieurs colonnes car les propriétés column-* ne s'appliquent pas sur un conteneur de grille.
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité", "Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/css_grid_and_progressive_enhancement/index.md b/files/fr/web/css/css_grid_layout/css_grid_and_progressive_enhancement/index.md new file mode 100644 index 0000000000..1b93e665ec --- /dev/null +++ b/files/fr/web/css/css_grid_layout/css_grid_and_progressive_enhancement/index.md @@ -0,0 +1,412 @@ +--- +title: Les grilles CSS et l'amélioration progressive +slug: Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guide + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement +original_slug: Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité", "Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","Web/CSS/CSS_Grid_Layout")}}
+ +Au printemps 2017, on voit pour la première fois une spécification majeure être disponible presque simultanément dans différents navigateurs : les grilles CSS (CSS Grid). Les grilles CSS sont disponibles dans les versions récentes de Firefox, Chrome, Opera, Safari et Edge. Malgré cela, si ces navigateurs récents permettront à la plupart d'entre nous de profiter de ces nouvelles fonctionnalités, il existe d'anciens navigateurs ou d'autres navigateurs qui ne prennent pas en charge ces fonctionnalité. Dans ce guide, nous allons parcourir différentes stratégies pour gérer cette prise en charge.
+ +En dehors d'Internet Explorer, les propriétés et valeurs relatives aux grilles CSS ne sont pas préfixées dans Safari, Chrome, Opera, Edge et dans Firefox. Toutes les propriétés et valeurs que nous avons vues dans ce guide fonctionnent de façon interopérable entre ces navigateurs. Cela signifie que si vous écrivez des règles CSS pour paramétrer une grille, le document doit avoir le même rendu dans Firefox, Opera et dans Chrome. Les grilles CSS ne sont plus une spécification expérimentale, elles peuvent donc être utilisées en production.
+ +La première implémentation des grilles CSS a eu lieu avec Internet Explorer 10. La première version de la spécification ne contenait alors pas toutes les propriétés et valeurs décrites dans la spécification actuelle. Il existe également des différences importantes entre ce qui est disponible dans IE10 et la spécification actuelle, même si les propriétés et les valeurs se ressemblent à première vue. Cette implémentation initiale est également celle qui est en place dans Edge jusqu'à la version 15.
+ +La version implémentée pour IE/Edge (≤15) est préfixée avec -ms et les propriétés ont les noms suivants :
-ms-grid-columns-ms-grid-rows-ms-grid-row-ms-grid-column-ms-grid-row-align-ms-grid-column-alignLa version implémentée dans Internet Explorer dispose de propriétés supplémentaires qui ne font pas partie de la nouvelle spécification : -ms-grid-column-span et -ms-grid-row-span. La version implémentée dans IE ne profite pas du placement automatique ou des zones nommées. On peut implémenter certaines grilles simples pour IE10 et jusqu'à Edge 15, grâce à ces propriétés préfixées par -ms. Ces propriétés étant préfixées, elles ne seront pas reconnues (et n'auront aucun effet) pour les navigateurs qui implémentent la spécification actuelle.
L'outil autoprefixer a été mis à jour afin de prendre en charge les versions préfixées par -ms- lorsqu'on utilise les nouvelles propriétés. Par défaut, les préfixes liés à la grille sont désactivés mais vous pouvez les activer avec l'option grid: autoplace.
autoprefixer({ grid: 'autoplace' })
+
+Les préfixes relatifs aux grilles sont désactivés par défaut car certaines propriétés ne peuvent pas être préfixées
+ +Comme pour les autres technologies front-end, la décision d'utiliser les grilles CSS se résume souvent au parc de navigateurs utilisés par le public de votre site ou votre application. S'ils ont tendance à utiliser des version à jour de Firefox, Chrome, Opera et Safari, il serait logique de commencer à utiliser les grilles CSS dès que la nouvelle version des navigateurs sera disponible. En revanche, si le marché visé repose sur d'anciens navigateurs, ce n'est peut-être pas le bon choix. Toutefois, je suggèrerai de ne pas prendre les mêmes hypothèses que pour la diffusion des autres spécifications par le passé : le travail d'implémentation et d'homogénéisation réalisés par les différents distributeurs de navigateur pour les fonctionnalités des grilles CSS est sans précédent.
+ +On notera qu'il n'est pas nécessaire d'avoir une rupture brutale pour utiliser les grilles CSS. On peut commencer par améliorer quelques éléments avec une grille et conserver l'ancienne méthode d'affichage pour les navigateurs historiques. Surcharger ces méthodes historiques avec les grilles fonctionne très bien étant donné la façon dont les grilles interagissent avec ces autres méthodes.
+ +Jusqu'à présent, pour créer une disposition sur plusieurs colonnes, on a utilisé des dispositions flottantes. Si vous avez un objet qui flotte et que celui-ci est également un objet d'une grille CSS : dans un navigateur qui prend en charge les grilles CSS, le flottement ne sera plus appliqué sur l'objet. En fait, la grille prend le pas sur le flottement. Dans l'exemple qui suit, on a simplement un objet média. Pour un navigateur historique, on utilise {{cssxref("float")}}, cependant, on a également défini un conteneur de grille dans lequel on pourra utiliser les propriétés d'alignement disponibles pour les navigateurs qui implémentent les grilles CSS.
+ +Le mode {{cssxref("float")}} ne s'applique plus sur l'objet et on peut utiliser la propriété {{cssxref("align-self")}} afin d'aligner le contenu vers la fin du conteneur.
+ +* {box-sizing: border-box;}
+img {
+ max-width: 100%;
+ display: block;
+}
+.media {
+ border: 2px solid #f76707;
+ border-radius: 5px;
+ background-color: #fff4e6;
+ max-width: 400px;
+ display: grid;
+ grid-template-columns: 1fr 2fr;
+ grid-template-areas: "img content";
+ margin-bottom: 1em;
+}
+.media::after {
+ content: "";
+ display: block;
+ clear: both;
+}
+.media .image {
+ float: left;
+ width: 150px;
+ margin-right: 20px;
+}
+.media .text {
+ padding: 10px;
+ align-self: end;
+}
+
+
+<div class="media"> + <div class="image"> + <img src="http://placehold.it/150x150" alt="placeholder"> + </div> + <div class="text"> + Voici un exemple avec un média. On utilise le flottement + pour les anciens navigateurs et une grille pour les + nouveaux. + </div> +</div> ++ +
{{EmbedLiveSample('Effectuer_la_transition_depuis_une_disposition_flottante', '500', '180')}}
+ +Dans l'image qui suit, on voit à gauche ce qu'on obtient dans un navigateur qui ne prend pas en charge les grilles CSS et à droite le résultat obtenu pour un navigateur qui permet de les utiliser.
+ +
L'exemple que nous venons de voir est très simple et on peut résoudre le problème sans avoir à écrire de code qui gênerait les navigateurs historiques, le code historique ne pose pas non plus de problème pour les navigateurs qui prennent en charge les grilles CSS. Dans la réalité, on fait parfois face à des cas plus complexes.
+ +Dans le prochain exemple, nous aurons un ensemble de cartes disposées avec du flottement. On a défini une largeur ({{cssxref("width")}}) sur ces cartes afin de pouvoir appliquer le flottement {{cssxref("float")}}. Pour créer des espaces entre les cartes, on utilise une marge ({{cssxref("margin")}}) sur les objets puis une marge négative sur le conteneur.
+ + + +.wrapper ul {
+ overflow: hidden;
+ margin: 0 -10px;
+ padding: 0;
+ list-style: none;
+}
+.wrapper li {
+ float: left;
+ width: calc(33.333333% - 20px);
+ margin: 0 10px 20px 10px;
+}
+
+
+<div class="wrapper"> + <ul> + <li class="card"> + <h2>Un</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Deux</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Trois</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Quatre</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Cinq</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Six</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + </ul> +</div> ++ +
{{EmbedLiveSample('un_exemple_plus_complexe', '550', '400')}}
+ +Dans la capture qui suit, on voit un problème classique qui est causé par les dispositions flottantes : si on ajoute du contenu à l'une des cartes, la disposition est chamboulée.
+ +
Pour gérer les anciens navigateurs dans une certaine mesure, on peut indiquer une hauteur minimale pour les boîtes avec {{cssxref("min-height")}} et espérer que les éditeurs n'ajouteront pas trop de contenu dans chaque boîte…
+ +Voyons comment améliorer cette disposition avec une grille : on transforme l'élément {{HTMLElement("ul")}} en un conteneur de grille avec trois pistes en colonne. Malheureusement, la largeur qu'on avait affectée aux éléments de la liste s'applique toujours et désormais, chaque élément de la liste occupe uniquement un tiers de la piste correspondante.
+ +
Si on réinitialise la largeur avec auto, on n'aura plus le résultat souhaité dans les anciens navigateurs. Il faut donc trouver un moyen de définir la largeur pour les anciens navigateurs et de supprimer la largeur quand le navigateur prend en charge les grilles CSS. Grâce aux requêtes de fonctionnalité CSS, on peut le faire directement en CSS.
Les requêtes de fonctionnalité ressemblent beaucoup aux requêtes de média qu'on utilise pour créer des dispositions adaptatives. Ici, plutôt que de vérifier la largeur de la zone d'affichage ou telle caractéristique du navigateur ou de l'appareil, on vérifie la prise en charge d'une propriété CSS avec une certaine valeur grâce à une règle {{cssxref("@supports")}}. À l'intérieur de cette requête, on peut écrire le CSS nécessaire pour obtenir la nouvelle disposition et retiré tout ce qui est nécessaire pour l'ancienne mise en forme.
+ +@supports (display: grid) {
+ .wrapper {
+ // ajouter les règles qu'on souhaite
+ // pour les navigateurs qui prennent
+ // en charge les grilles
+ }
+}
+
+
+La prise en charge des requêtes de fonctionnalité par les différents navigateurs est excellente. Tous les navigateurs qui prennent en charge la nouvelle spécification pour les grilles CSS supportent aussi les requêtes de fonctionnalité. On peut donc les utiliser pour résoudre le problème précédent pour améliorer la disposition flottante.
+ +On utilise donc @supports pour vérifier la prise en charge de display: grid;, ensuite on indique que {{HTMLElement("ul")}} est le conteneur de la grille, on définit la largeur et {{cssxref("min-height")}} avec auto pour les éléments {{HTMLElement("li")}}. On retire également les marges, les marges négatives et on remplace l'espacement avec la propriété {{cssxref("gap")}}. Cela signifie qu'il n'y aura pas de marge finale sur la dernière ligne de boîtes. La disposition fonctionne également désormais lorsqu'une carte possède plus de contenu qu'une autre.
.wrapper ul {
+ overflow: hidden;
+ margin: 0 -10px;
+ padding: 0;
+ list-style: none;
+}
+.wrapper li {
+ float: left;
+ width: calc(33.333333% - 20px);
+ margin: 0 10px 20px 10px;
+}
+@supports (display: grid) {
+ .wrapper ul {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 20px;
+ margin: 0;
+ }
+ .wrapper li {
+ width: auto;
+ min-height: auto;
+ margin: 0;
+ }
+}
+
+
+<div class="wrapper"> + <ul> + <li class="card"> + <h2>Un</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Deux</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Trois</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Quatre</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Cinq</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Six</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + </ul> +</div> ++ +
{{EmbedLiveSample('une_solution_avec_les_requetes_de_fonctionnalité', '550', '480')}}
+ +displayÉtant donné ces problèmes pour créer des grilles d'objets avec du flottement, il est probable que nous aurions choisi un autre méthode initialement, par exemple display: inline-block.
Là encore, on peut utiliser les requêtes de fonctionnalité pour surcharger display: inline-block. Ici aussi, il n'est pas nécessaire de tout surcharger. Pour les éléments concernés par inline-block, ils deviendront des objets de la grille et inline-block ne s'appliquera plus. Dans l'exemple qui suit, on utilise la propriété vertical-align sur les éléments lorsqu'on utilise le mode inline-block, cette propriété n'étant pas appliquée aux éléments d'une grille, elle est ignorée lorsque l'élément devient un objet de la grille.
.wrapper ul {
+ margin: 0 -10px;
+ padding: 0;
+ list-style: none;
+}
+
+.wrapper li {
+ display: inline-block;
+ vertical-align: top;
+ width: calc(33.333333% - 20px);
+ margin: 0 10px 20px 10px;
+}
+@supports (display: grid) {
+ .wrapper ul {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 20px;
+ margin: 0;
+ }
+ .wrapper li {
+ width: auto;
+ margin: 0;
+ }
+}
+
+
+<div class="wrapper"> + <ul> + <li class="card"> + <h2>Un</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Deux</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Trois</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Quatre</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Cinq</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + <li class="card"> + <h2>Six</h2> + <p>On peut utiliser la grille CSS pour surcharger d'anciennes méthodes.</p> + </li> + </ul> +</div> ++ +
{{EmbedLiveSample('Surcharger_les_autres_valeurs_pour_display', '500', '480')}}
+ +Ici aussi, il faut reparamétrer la largeur de l'élément puis améliorer les autres propriétés. Dans cet exemple également on a utilisé grid-gap plutôt que des marges et des marges négatives pour créer les « gouttières ».
La spécification sur les grilles CSS détaille comment on peu surcharger le comportement de certaines propriétés lorsqu'un élément devient un objet d'une grille. Les sections principales sur ce sujet sont :
+ +Ce comportement est détaillé dans la spécification et on peut donc l'utiliser pour surcharger les règles utilisées pour les navigateurs qui ne prennent pas en charge les grilles CSS. Ce que nous avons appliqué n'est pas une bidouille, on tire simplement parti de l'interaction entre les différents modes de disposition, tel que décrit dans la spécification.
+ + displayLorsqu'un élément possède un parent pour lequel display: grid, cet élément devient un bloc (cf. la specification). C'est pour cela que, pour l'élément qui utilisait inline-block, display: inline-block ne s'appliquait plus.
Si la disposition historique utilise display: table, un élément avec display: table-cell génèrera des boîtes anonymes. Aussi, si on utilise display: table-cell sans élément parent avec display-table, un tableau implicite sera créé autour des cellules adjacentes (comme si on a avait enveloppé le tout dans un div ou autre pour lequel on aurait défini display: table). Si on a un objet pour lequel display: table-cell et que, dans une requête de fonctionnalité, on utilise display: grid pour l'élément parent, il n'y aura plus de création de boîtes anonymes. Cela signifie qu'on peut surcharger display: table sans avoir ces boîtes anonymes supplémentaires.
Comme nous l'avons déjà vu, {{cssxref("float")}}, ainsi que {{cssxref("clear")}} n'ont aucun effet sur un objet de grille. Il n'est donc pas nécessaire d'utiliser explicitement float: none sur les éléments.
La propriété d'alignement {{cssxref("vertical-align")}} n'a aucun effet sur un objet d'une grille. Pour les dispositions qui utilisent display: inline-block ou display: table, la propriété vertical-align était utilisée pour réaliser des alignements basiques. Avec une disposition en grille, on peut utiliser les propriétés d'alignement des boîtes sur la grille, plus puissantes.
Il est aussi possible de partir d'une disposition sur plusieurs colonnes car les propriétés column-* ne s'appliquent pas sur un conteneur de grille.
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité", "Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/css_grid_layout_and_accessibility/index.html b/files/fr/web/css/css_grid_layout/css_grid_layout_and_accessibility/index.html deleted file mode 100644 index 2270ae2deb..0000000000 --- a/files/fr/web/css/css_grid_layout/css_grid_layout_and_accessibility/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Les grilles CSS et l'accessibilité -slug: Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility -tags: - - Accessibilité - - CSS - - CSS Grids - - Grilles CSS - - Guide - - Intermédiaire -translation_of: Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility -original_slug: Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité ---- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive","Web/CSS/CSS_Grid_Layout")}}
- -Pour celles et ceux qui étaient présents aux premières lueurs du Web, les grilles CSS peuvent rappeler l'âge sombre où les tableaux HTML étaient utilisés pour la mise en forme des pages et où les cellules étaient utilisées pour diviser le contenu. Cette approche avait quelques avantages par rapport au positionnement CSS apparu après : on pouvait tirer parti de l'alignement et des colonnes créées dans un tableau. Il y a toutefois un inconvénient majeur : la mise en forme est fortement couplée à la structure du document, entraînant certains problèmes d'accessibilité. On pouvait par exemple découper le contenu dans le tableau afin d'obtenir la mise en forme souhaitée mais la structure de la page n'avait plus aucun sens lorsqu'elle était lue par un lecteur d'écran.
- -Aux débuts de CSS, on évoquait souvent CSS comme un outil pour séparer distinctement la mise en forme d'une part et le contenu du document d'autre part. L'objectif ultime était alors de pouvoir créer un document sémantique et structuré correctement puis appliquer une feuille de style CSS afin de créer la disposition voulue. Des sites tels que CSS Zen Garden montrent comment obtenir différents styles grâce à CSS à partir d'un même document HTML.
- -Les grilles CSS n'ont pas les mêmes problèmes que les tableaux : la structure de la grille est bien définie dans la feuille de style et pas dans le document. Si nécessaire, on peut ajouter un élément sans rôle sémantique. En théorie, une grille CSS nous aide à obtenir cette séparation conceptuelle entre la forme (le code CSS) et le sens (le document HTML) mais est-il possible d'aller trop loin avec cette idée ? Est-ce que les grilles CSS peuvent causer des problèmes d'accessibilité ?
- -Au fur et à mesure de ces articles, nous avons vu que les grilles CSS nous permettent de réordonner le contenu d'une page de différentes façons. On peut utiliser la propriété {{cssxref("order")}} afin de modifier la façon dont les éléments sont placés automatiquement sur la grille. On peut aussi utiliser grid-auto-flow: dense pour que les éléments ne suivent pas l'ordre du DOM afin de réduire les espaces laissés. On peut aussi positionner les éléments sur des lignes ou sur des zones définies, quel que soit leur emplacement dans la structure du document source.
La spécification contient une section qui aborde ce ré-ordonnancement et l'accessibilité. En introduction, on peut lire ce qui est attendu de la part des navigateurs lorsque le contenu est réordonné visuellement avec une grille CSS.
- --- -La disposition en grille fournit une grande flexibilité aux auteurs pour replacer le contenu du document. Toutefois, cette flexibilité ne doit pas être utilisée pour pallier à un ordre incorrect du document source. Les propriétés des grilles relatives à l'ordre et au placement n'ont pas d'effet quant aux médias non-visuels (tels que la parole). De la même façon, le ré-ordonnancement visuel des éléments sur la grille n'a pas d'effet sur l'ordre de parcours séquentiel par défaut du document (notamment utilisé pour la navigation au clavier ou le parcours des liens, cf.
-tabindex).
Si vous réordonnez les éléments du document grâce à une disposition sur une grille, cela ne changera pas l'ordre du contenu lu par un lecteur d'écran ou manipulé par un autre agent utilisateur. Cela ne modifiera pas non plus l'ordre des éléments lorsque ceux-ci sont parcourus au clavier. Une personne utilisant le clavier pourrait ainsi passer d'un coup de la partie haute de la grille à la partie basse si les liens ont été réordonnés.
- -La spécification prévient les auteurs (c'est-à-dire les développeurs web) et leur indique de ne pas appliquer ce ré-ordonnancement.
- --- -Les auteurs doivent utiliser les propriétés d'ordre et de placement uniquement pour des raisons visuelles et non pour réordonner logiquement le contenu. Les feuilles de style qui utilisent ces fonctionnalités afin de réordonner les éléments sur le plan logique ne sont pas considérées comme des feuilles de style conformes.
-
Quelles sont les implications pratiques lorsqu'on conçoit une disposition avec une grille ?
- -La modification d'ordre appliquée par la grille (ou les boîtes flexibles) est uniquement visuelle. C'est toujours le document sous-jacent qui contrôle l'ordre utilisé par les agents utilisateur non-visuels. Voyons comment cela s'applique pour un exemple simple.
- -Dans cet exemple, on utilise une grille pour organiser un ensemble de boîtes qui contiennent des liens. On utilise les propriétés pour placer les éléments sur des lignes : la première boîte est placée sur la deuxième ligne. Visuellement, cette boîte apparaît désormais comme le quatrième élément de la liste. Mais si on utilise la touche tabulation pour naviguer au clavier parmi les liens, c'est toujours ce lien qui est en premier.
- - - -.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-
-.box1 {
- grid-column: 1;
- grid-row: 2;
-}
-
-
-<div class="wrapper"> - <div class="box box1"><a href="">Un</a></div> - <div class="box box2"><a href="">Deux</a></div> - <div class="box box3"><a href="">Trois</a></div> - <div class="box box4"><a href="">Quatre</a></div> - <div class="box box5"><a href="">Cinq</a></div> -</div> -- -
{{EmbedLiveSample('Un_ré-ordonnancement_visuel_et_non_logique', '500', '330')}}
- -Pour ce scénario, la spécification indique que, si la boîte 1 doit logiquement être placée ici, il faut alors modifier le document source plutôt que de réordonner les éléments grâce à la grille.
- -On voit à partir de la spécification qu'il faut maintenir l'ordre logique du contenu. Quelle approche choisir pendant le développement afin de s'assurer de respecter l'accessibilité pour les utilisateurs et que ceux-ci puissent interagir correctement avec la page, quels que soient les outils utilisés ?
- -On peut rencontrer un autre problème avec les grilles CSS (et, dans une moindre mesure, avec les boîtes flexibles) : vouloir aplatir la structure du document. Comme nous avons pu le voir, pour qu'un objet appartienne à la grille, il faut que ce soit un fils direct du conteneur de la grille. Ainsi, si on place un élément {{HTMLElement("ul")}} dans une grille, c'est cet ul qui devient un objet de la grille, les éléments {{HTMLElement("li")}} qui en dépendent n'en sont pas.
Si la valeur subgrid est implémentée pour la propriété {{cssxref("display")}}, on pourra alors indiquer que ces fils participent à la grille en tant que sous-grille. Actuellement, la seule solution à notre disposition est d'utiliser display: contents afin que la boîte générée par l'élément ul disparaisse de la structure graphique. Pour plus d'informations à ce sujet, vous pouvez consulter l'article sur les liens entre les grilles et les autres méthodes de disposition et notamment la section sur display: contents.
Étant donné que la prise en charge de display: contents pour les différents navigateurs est actuellement limitée et que les sous-grilles n'existent pas encore, on peut être tenté d'aplatir la structure du document lorsqu'on utilise les grilles CSS pour créer la disposition d'un document. Par exemple, pour une liste, identifiée sémantiquement comme telle avec ul, on pourrait plutôt utiliser des éléments {{HTMLElement("div")}} qui seraient des éléments directement situés sous le conteneur qui a display: grid. Mieux vaut donc être conscient de cette tentation et construire un document sans détricoter la structure. En commençant par créer un document structuré, on se rend plus facilement compte de la sémantique perdue si on retire des éléments pour une simple question visuelle.
Il n'existe pas encore beaucoup de contenu relatif à l'accessibilité et au modèle de grille CSS. La plupart des problèmes rencontrés s'approchent de ceux qu'on rencontre avec les boîtes flexibles (qui permettent également de réordonner le contenu avec des propriétés comme {{cssxref("flex-direction")}} et {{cssxref("order")}}).
- -Le concept selon lequel l'ordre d'affichage des éléments doit suivre l'ordre des éléments dans le document est décrit dans WCAG Techniques for Success Criteria – Technique C27 (en anglais).
- -Pour construire votre réflexion sur ce sujet, je vous invite à lire Flexbox & the Keyboard Navigation Disconnect écrit par Léonie Watson. La vidéo de la présentation de Léonie à ffconf est aussi utile pour mieux comprendre comment les lecteurs d'écran utilisent la représentation visuelle des objets en CSS. Adrian Roselli a également publié un article sur l'ordre de la navigation au clavier dans les différents navigateurs bien que cet article ait été rédigé avant l'implémentation des grilles CSS dans Firefox.
- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/css_grid_layout_and_accessibility/index.md b/files/fr/web/css/css_grid_layout/css_grid_layout_and_accessibility/index.md new file mode 100644 index 0000000000..2270ae2deb --- /dev/null +++ b/files/fr/web/css/css_grid_layout/css_grid_layout_and_accessibility/index.md @@ -0,0 +1,121 @@ +--- +title: Les grilles CSS et l'accessibilité +slug: Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility +tags: + - Accessibilité + - CSS + - CSS Grids + - Grilles CSS + - Guide + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility +original_slug: Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive","Web/CSS/CSS_Grid_Layout")}}
+ +Pour celles et ceux qui étaient présents aux premières lueurs du Web, les grilles CSS peuvent rappeler l'âge sombre où les tableaux HTML étaient utilisés pour la mise en forme des pages et où les cellules étaient utilisées pour diviser le contenu. Cette approche avait quelques avantages par rapport au positionnement CSS apparu après : on pouvait tirer parti de l'alignement et des colonnes créées dans un tableau. Il y a toutefois un inconvénient majeur : la mise en forme est fortement couplée à la structure du document, entraînant certains problèmes d'accessibilité. On pouvait par exemple découper le contenu dans le tableau afin d'obtenir la mise en forme souhaitée mais la structure de la page n'avait plus aucun sens lorsqu'elle était lue par un lecteur d'écran.
+ +Aux débuts de CSS, on évoquait souvent CSS comme un outil pour séparer distinctement la mise en forme d'une part et le contenu du document d'autre part. L'objectif ultime était alors de pouvoir créer un document sémantique et structuré correctement puis appliquer une feuille de style CSS afin de créer la disposition voulue. Des sites tels que CSS Zen Garden montrent comment obtenir différents styles grâce à CSS à partir d'un même document HTML.
+ +Les grilles CSS n'ont pas les mêmes problèmes que les tableaux : la structure de la grille est bien définie dans la feuille de style et pas dans le document. Si nécessaire, on peut ajouter un élément sans rôle sémantique. En théorie, une grille CSS nous aide à obtenir cette séparation conceptuelle entre la forme (le code CSS) et le sens (le document HTML) mais est-il possible d'aller trop loin avec cette idée ? Est-ce que les grilles CSS peuvent causer des problèmes d'accessibilité ?
+ +Au fur et à mesure de ces articles, nous avons vu que les grilles CSS nous permettent de réordonner le contenu d'une page de différentes façons. On peut utiliser la propriété {{cssxref("order")}} afin de modifier la façon dont les éléments sont placés automatiquement sur la grille. On peut aussi utiliser grid-auto-flow: dense pour que les éléments ne suivent pas l'ordre du DOM afin de réduire les espaces laissés. On peut aussi positionner les éléments sur des lignes ou sur des zones définies, quel que soit leur emplacement dans la structure du document source.
La spécification contient une section qui aborde ce ré-ordonnancement et l'accessibilité. En introduction, on peut lire ce qui est attendu de la part des navigateurs lorsque le contenu est réordonné visuellement avec une grille CSS.
+ +++ +La disposition en grille fournit une grande flexibilité aux auteurs pour replacer le contenu du document. Toutefois, cette flexibilité ne doit pas être utilisée pour pallier à un ordre incorrect du document source. Les propriétés des grilles relatives à l'ordre et au placement n'ont pas d'effet quant aux médias non-visuels (tels que la parole). De la même façon, le ré-ordonnancement visuel des éléments sur la grille n'a pas d'effet sur l'ordre de parcours séquentiel par défaut du document (notamment utilisé pour la navigation au clavier ou le parcours des liens, cf.
+tabindex).
Si vous réordonnez les éléments du document grâce à une disposition sur une grille, cela ne changera pas l'ordre du contenu lu par un lecteur d'écran ou manipulé par un autre agent utilisateur. Cela ne modifiera pas non plus l'ordre des éléments lorsque ceux-ci sont parcourus au clavier. Une personne utilisant le clavier pourrait ainsi passer d'un coup de la partie haute de la grille à la partie basse si les liens ont été réordonnés.
+ +La spécification prévient les auteurs (c'est-à-dire les développeurs web) et leur indique de ne pas appliquer ce ré-ordonnancement.
+ +++ +Les auteurs doivent utiliser les propriétés d'ordre et de placement uniquement pour des raisons visuelles et non pour réordonner logiquement le contenu. Les feuilles de style qui utilisent ces fonctionnalités afin de réordonner les éléments sur le plan logique ne sont pas considérées comme des feuilles de style conformes.
+
Quelles sont les implications pratiques lorsqu'on conçoit une disposition avec une grille ?
+ +La modification d'ordre appliquée par la grille (ou les boîtes flexibles) est uniquement visuelle. C'est toujours le document sous-jacent qui contrôle l'ordre utilisé par les agents utilisateur non-visuels. Voyons comment cela s'applique pour un exemple simple.
+ +Dans cet exemple, on utilise une grille pour organiser un ensemble de boîtes qui contiennent des liens. On utilise les propriétés pour placer les éléments sur des lignes : la première boîte est placée sur la deuxième ligne. Visuellement, cette boîte apparaît désormais comme le quatrième élément de la liste. Mais si on utilise la touche tabulation pour naviguer au clavier parmi les liens, c'est toujours ce lien qui est en premier.
+ + + +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+
+.box1 {
+ grid-column: 1;
+ grid-row: 2;
+}
+
+
+<div class="wrapper"> + <div class="box box1"><a href="">Un</a></div> + <div class="box box2"><a href="">Deux</a></div> + <div class="box box3"><a href="">Trois</a></div> + <div class="box box4"><a href="">Quatre</a></div> + <div class="box box5"><a href="">Cinq</a></div> +</div> ++ +
{{EmbedLiveSample('Un_ré-ordonnancement_visuel_et_non_logique', '500', '330')}}
+ +Pour ce scénario, la spécification indique que, si la boîte 1 doit logiquement être placée ici, il faut alors modifier le document source plutôt que de réordonner les éléments grâce à la grille.
+ +On voit à partir de la spécification qu'il faut maintenir l'ordre logique du contenu. Quelle approche choisir pendant le développement afin de s'assurer de respecter l'accessibilité pour les utilisateurs et que ceux-ci puissent interagir correctement avec la page, quels que soient les outils utilisés ?
+ +On peut rencontrer un autre problème avec les grilles CSS (et, dans une moindre mesure, avec les boîtes flexibles) : vouloir aplatir la structure du document. Comme nous avons pu le voir, pour qu'un objet appartienne à la grille, il faut que ce soit un fils direct du conteneur de la grille. Ainsi, si on place un élément {{HTMLElement("ul")}} dans une grille, c'est cet ul qui devient un objet de la grille, les éléments {{HTMLElement("li")}} qui en dépendent n'en sont pas.
Si la valeur subgrid est implémentée pour la propriété {{cssxref("display")}}, on pourra alors indiquer que ces fils participent à la grille en tant que sous-grille. Actuellement, la seule solution à notre disposition est d'utiliser display: contents afin que la boîte générée par l'élément ul disparaisse de la structure graphique. Pour plus d'informations à ce sujet, vous pouvez consulter l'article sur les liens entre les grilles et les autres méthodes de disposition et notamment la section sur display: contents.
Étant donné que la prise en charge de display: contents pour les différents navigateurs est actuellement limitée et que les sous-grilles n'existent pas encore, on peut être tenté d'aplatir la structure du document lorsqu'on utilise les grilles CSS pour créer la disposition d'un document. Par exemple, pour une liste, identifiée sémantiquement comme telle avec ul, on pourrait plutôt utiliser des éléments {{HTMLElement("div")}} qui seraient des éléments directement situés sous le conteneur qui a display: grid. Mieux vaut donc être conscient de cette tentation et construire un document sans détricoter la structure. En commençant par créer un document structuré, on se rend plus facilement compte de la sémantique perdue si on retire des éléments pour une simple question visuelle.
Il n'existe pas encore beaucoup de contenu relatif à l'accessibilité et au modèle de grille CSS. La plupart des problèmes rencontrés s'approchent de ceux qu'on rencontre avec les boîtes flexibles (qui permettent également de réordonner le contenu avec des propriétés comme {{cssxref("flex-direction")}} et {{cssxref("order")}}).
+ +Le concept selon lequel l'ordre d'affichage des éléments doit suivre l'ordre des éléments dans le document est décrit dans WCAG Techniques for Success Criteria – Technique C27 (en anglais).
+ +Pour construire votre réflexion sur ce sujet, je vous invite à lire Flexbox & the Keyboard Navigation Disconnect écrit par Léonie Watson. La vidéo de la présentation de Léonie à ffconf est aussi utile pour mieux comprendre comment les lecteurs d'écran utilisent la représentation visuelle des objets en CSS. Adrian Roselli a également publié un article sur l'ordre de la navigation au clavier dans les différents navigateurs bien que cet article ait été rédigé avant l'implémentation des grilles CSS dans Firefox.
+ +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.html b/files/fr/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.html deleted file mode 100644 index d43798fd7f..0000000000 --- a/files/fr/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.html +++ /dev/null @@ -1,436 +0,0 @@ ---- -title: Les grilles CSS, les valeurs logiques et les modes d'écriture -slug: Web/CSS/CSS_Grid_Layout/CSS_Grid_Logical_Values_and_Writing_Modes -tags: - - CSS - - CSS Grids - - Grilles CSS - - Guides - - Intermédiaire -translation_of: Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes -original_slug: >- - Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture ---- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité","Web/CSS/CSS_Grid_Layout")}}
- -Dans les articles précédents, nous avons évoqué un aspect important de la disposition en grille : la prise en charge des différents modes d'écriture. Dans ce guide, nous nous intéresserons plus particulièrement à cette fonctionnalité ainsi qu'aux autres méthodes modernes de disposition. Cela sera également l'occasion d'en apprendre plus sur les modes d'écritures et la notion de propriété logique/physique.
- -CSS possède de nombreux mots-clés qui permettent de positionner physiquement les éléments : left, right, top, bottom… Si on positionne un élément de façon absolue, on utilisera ces mots-clés physiques comme valeurs pour indiquer le décalage de l'élément. Dans le fragment de code suivant, l'élément est décalé de 20 pixels depuis le haut du conteneur et de 30 pixels depuis le bord gauche du conteneur.
.container {
- position: relative;
-}
-.item {
- position: absolute;
- top: 20px;
- left: 30px;
-}
-
-
-<div class="container"> - <div class="item">Item</div> -</div> -- -
On rencontre également ces mots-clés physiques avec text-align: right afin d'aligner le texte à droite. Il existe aussi des propriétés physiques en CSS. On ajoute des marges, du remplissage, des bordures grâces à cs propriétés physiques comme {{cssxref("margin-left")}}, {{cssxref("padding-left")}}, etc.
On qualifie ces propriétés de physiques car elles concernent l'écran qu'on regarde : la gauche sera toujours la gauche, quelle que soit la direction du texte.
- -Cela peut devenir un problème lorsqu'on développe un site qui doit fonctionner avec plusieurs langues dont certaines sont écrites de droite à gauche et non de gauche à droite. Les navigateurs savent plutôt bien gérer les différentes directions d'écriture. Dans l'exemple qui suit, on a deux paragraphes. Pour le deuxième, aucune propriété {{cssxref("text-align")}} n'est utilisée, alors que pour le second, on utilise text-align avec left et on ajoute dir="rtl" sur l'élément HTML ce qui a pour effet de changer la direction d'écriture. On peut voir que, dans le second paragraphe, la direction change et le texte est écrit de droite à gauche. Dans le premier cependant, avec text-align value: left, l'alignement reste à gauche.

Cela illustre un problème fréquent avec les propriétés et valeurs physiques en CSS : elles empêchent le navigateur de passer correctement d'un mode d'écriture à l'autre.
- -Les propriétés et les valeurs logiques n'émettent pas d'hypothèse quant à la direction du texte. C'est pour cette raison, qu'avec les grilles CSS, on utilise le mot-clé start lorsqu'on souhaite aligner quelque chose au début du conteneur. Quand on travaille en français ou en anglais, start correspondra à la gauche mais ce n'est pas nécessairement toujours le cas, start ne correspond pas à une position physique.
Lorsqu'on commence à travailler avec les propriétés logiques plutôt qu'avec les propriétés physiques, on cesse de voir le monde comme un espace qui va de gauche à droite et de haut en bas. Il faut de nouveaux axes de références : l'axe de bloc (block axis en anglais) et l'axe en ligne (inline axis). Le premier est l'axe orthogonal au sens d'écriture et le second est l'axe dans lequel on écrit. Ces axes logiques sont très utiles et on comprend mieux leurs rôles sur la grille.
- -
Nous allons ici aborder une autre spécification que nous allons utiliser dans nos exemples : la spécification CSS sur les modes d'écriture (CSS Writing Modes). Cette spécification régit comment les différents modes d'écriture peuvent être utilisés en CSS, pas seulement pour prendre en charge différentes langues mais aussi pour créer des effets artistiques. Nous allons utiliser la propriété {{cssxref("writing-mode")}} afin de modifier le mode d'écriture appliqué à la grille pour observer comment fonctionnent les valeurs logiques. Si vous souhaitez approfondir ces notions autour des modes d'écriture, vous pouvez consulter l'article CSS Writing Modes (en anglais) écrit par Jen Simmons.
- -writing-modeLes modes d'écriture ne se limitent pas à l'écriture de droite à gauche ou de gauche à droite, la propriété writing-mode nous permet d'afficher du texte dans plusieurs directions. La propriété {{cssxref("writing-mode")}} peut prendre les valeurs suivantes :
horizontal-tbvertical-rlvertical-lrsideways-rlsideways-lrSur le Web, c'est la valeur horizontal-tb qui est la valeur par défaut pour le texte. C'est dans cette direction que vous lisez cet article. Les autres valeurs changeront la façon dont le texte est écrit sur le document et correspondent aux modes d'écriture utilisés dans d'autres langues. Dans l'exemple qui suit, on a deux paragraphes, le premier utilise la valeur par défaut horizontal-tb et le second utilise la valeur vertical-rl. Dans ce deuxième mode, le texte est toujours écrit de gauche à droite mais la direction du texte est verticale. Dans ce deuxième paragraphe, l'axe en ligne (inline) est donc l'axe vertical.
<div class="wrapper"> - <p style="writing-mode: horizontal-tb">Mon mode d'écriture est celui par défaut <code>horizontal-tb</code></p> - <p style="writing-mode: vertical-rl">Moi je suis écrit avec <code>vertical-rl</code></p> -</div> -- -
{{EmbedLiveSample("writing-mode", '500', '420')}}
- -Si on reprend l'exemple avec la grille, on comprend mieux l'effet du changement du mode d'écriture qui change les axes logiques.
- -Dans le prochain exemple, la grille possède trois colonnes et deux lignes. Cela signifie qu'il y a trois pistes qui traversent l'axe de bloc. Avec le mode d'écriture par défaut, la grille commence par placer les objets en haut à gauche en remplissant les trois cellules sur la première ligne avant de passer à la suivante, en formant une nouvelle ligne, etc.
- - - -.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(2, 100px);
- grid-gap: 10px;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> - <div class="item5">Objet 5</div> -</div> -- -
{{EmbedLiveSample("Mode_d'écriture_par_défaut", '500', '330')}}
- -Si on ajoute writing-mode: vertical-lr au conteneur de la grille, on peut voir que les axes logiques s'appliquent désormais dans une autre direction. L'axe de bloc (aussi appelé l'axe des colonnes pour la grille) s'étend maintenant de gauche à droite et l'axe en ligne court verticalement.
.wrapper {
- writing-mode: vertical-lr;
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(2, 100px);
- grid-gap: 10px;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> - <div class="item5">Objet 5</div> -</div> -- -
{{EmbedLiveSample("definir_writing-mode", '500', '330')}}
- -
Dans les exemples précédents, on a vu comment les axes de bloc et en ligne pouvaient changer de direction, nous allons voir maintenant comment tirer partir des valeurs logiques des propriétés d'alignement.
- -Dans le prochain exemple, on aligne des objets dans une grille pour laquelle writing-mode: vertical-lr. Les valeurs start et end fonctionnent de la même façon qu'avec le mode d'écriture par défaut mais, parce qu'elles sont logiques, on voit que la grille est bien renversée.
.wrapper {
- writing-mode: vertical-lr;
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(3, 100px);
- grid-gap: 10px;
-}
-
-.item1 {
- grid-column: 1 / 4;
- align-self: start;
-}
-
-.item2 {
- grid-column: 1 / 3;
- grid-row: 2 / 4;
- align-self: start;
-}
-
-.item3 {
- grid-column: 3;
- grid-row: 2 / 4;
- align-self: end;
- justify-self: end;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> -</div> -- -
{{EmbedLiveSample("L'utilisation_de_valeurs_logiques_pour_l'alignement", '500', '330')}}
- -Si vous souhaitez voir l'effet obtenu avec une écriture verticale de haut en bas et de droite à gauche, il suffit de passer de vertical-lr à vertical-rl pour changer de mode d'écriture.
On a vu dans l'exemple précédent que lorsqu'on changeait de mode d'écriture, cela changeait également la direction selon laquelle les éléments étaient placés sur la grille. Par défaut, les éléments sont placés en progressant sur l'axe en ligne, jusqu'à la fin de la ligne, une nouvelle ligne est ensuite créée si besoin mais cette ligne ne progresse pas nécessairement de gauche à droite.
- -Il faut garder à l'esprit que lorsqu'on place des objets sur les lignes, la ligne 1 sera toujours la ligne de départ, quel que soit le mode d'écriture et la ligne -1 sera toujours la ligne de fin.
- -Dans l'exemple suivant, on a une grille avec la direction ltr et on positionne trois objets en utilisant le placement sur les lignes.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(2, 100px);
- grid-gap: 10px;
-}
-.item1 {
- grid-column: 1 ;
-}
-.item2 {
- grid-column: -1 / -3;
-}
-.item3 {
- grid-column: 1 / 3;
- grid-row: 2;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> -</div> -- -
{{EmbedLiveSample("placement_sur_les_lignes_pour_du_texte_de_gauche_à_droite", '500', '330')}}
- -Si on ajoute alors la propriété {{cssxref("direction")}} avec la valeur rtl pour le conteneur de la grille, la colonne 1 sera la plus à droite et la colonne 1 sera à gauche.
.wrapper {
- direction: rtl;
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(2, 100px);
- grid-gap: 10px;
-}
-.item1 {
- grid-column: 1 ;
-}
-.item2 {
- grid-column: -1 / -3;
-}
-.item3 {
- grid-column: 1 / 3;
- grid-row: 2;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> -</div> -- -
{{EmbedLiveSample("placement_sur_les_lignes_pour_du_texte_de_droite_à_gauche", '500', '330')}}
- -On voit ici que si on change la direction du texte pour la page ou pour une partie de la page : la disposition change selon lees numéros de lignes. Si on ne veut pas que les lignes bougent, on pourra utiliser des lignes nommées pour éviter cet effet.
- -grid-areaLa propriété {{cssxref("grid-area")}} permet d'indiquer les quatre lignes qui définissent une zone. Lorsqu'on apprend à utiliser cette propriété, on se surprend à voir que les quatre valeurs ne suivent pas le même ordre que celui utilisé par les propriétés raccourcies pour les marges (pour celles-ci, les valeurs suivent le sens horaire : haut, droit, bas, gauche).
- -Pour les valeurs de grid-area, l'ordre est le suivant :
grid-row-startgrid-column-startgrid-row-endgrid-column-endSi on transpose ces valeurs à un système d'écriture de gauche à droite, cela correspond aux valeurs physiques suivantes :
- -topleftbottomrightCe qui correspond… au sens anti-horaire ! L'ordre est l'inverse de celui utilisé pour les marges et le remplissage. Pour comprendre, mieux vaut voir la propriété grid-area comme une propriété logique qui fonctionne selon les axes de bloc et en ligne : on commence donc avec les deux lignes de départ puis les deux lignes d'arrivée. Cet ordre est plus « logique » !
Les modes d'écritures permettent d'afficher les documents en respectant les règles d'affichage de la langue utilisé. On peut également les utiliser afin de créer des effets stylistiques. Dans l'exemple ci-après, on a une grille avec du texte et des liens qui seront affichés verticalement, à côté du texte.
- -.wrapper {
- display: grid;
- grid-gap: 20px;
- grid-template-columns: 1fr auto;
- font: 1em Helvetica, Arial, sans-serif;
-}
-.wrapper nav {
- writing-mode: vertical-lr;
-}
-.wrapper ul {
- list-style: none;
- margin: 0;
- padding: 1em;
- display: flex;
- justify-content: space-between;
-}
-.wrapper a {
- text-decoration: none;
-}
-
-
-<div class="wrapper"> - <div class="content"> - <p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p> - <p>Nori grape silver beet broccoli kombu beet greens fava bean potato quandong celery. Bunya nuts black-eyed pea prairie turnip leek lentil turnip greens parsnip. Sea lettuce lettuce water chestnut eggplant winter purslane fennel azuki bean earthnut pea sierra leone bologi leek soko chicory celtuce parsley jícama salsify.</p> - </div> - <nav> - <ul> - <li><a href="">Lien 1</a></li> - <li><a href="">Lien 2</a></li> - <li><a href="">Lien 3</a></li> - </ul> - </nav> -</div> -- -
{{EmbedLiveSample("Utiliser_des_modes_d'écriture_hybrides_et_les_grilles_CSS", '500', '330')}}
- -On rencontre souvent les propriétés physiques lorsqu'on construit un site web et, bien que la grille et les propriétés logiques permettent de respecter les modes d'écriture, il existe certains effets qui ne peuvent être obtenus qu'avec des propriétés et des valeurs physiques. Dans le guide sur l'alignement des boîtes et les grilles, nous avons vu comment utiliser les marges automatiques sur les zones d'une grille. Utiliser les marges automatiques pour contraindre le placement d'un élément est une astuce qu'on rencontre aussi avec les boîtes flexibles mais cela couple la disposition avec l'espace physique.
- -Si on utilise le positionnement absolu dans une zone d'une grille, là encore, on utilisera des décalages physiques pour décaler l'élément au sein de la zone. Dans ces cas, il faut être conscient du couplage qu'on ajoute avec l'espace physique et comprendre qu'il faudra adapter la feuille de style si on veut par exemple passer d'un mode ltr à un mode rtl.
Les nouvelles méthodes de disposition, comme les grilles, permettent d'employer les valeurs logiques afin de placer les éléments. Cependant, dès qu'on combine ces valeurs avec des propriétés physiques, il faut maintenir ces dernières lorsque le mode d'écriture change.
- -La spécification sur les propriétés logiques en CSS vise à résoudre ce problème. Nous pourrons peut-être utiliser demain des équivalents logiques pour chacune des propriétés physiques telles que {{cssxref("margin-left")}} et {{cssxref("margin-right")}}. Firefox a déjà implémenté ces propriétés logiques et vous pouvez les y tester. En utilisant les grilles et en manipulant l'axe de bloc et l'axe de ligne, vous saurez également comment fonctionnent ces propriétés logiques à venir.
- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.md b/files/fr/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.md new file mode 100644 index 0000000000..d43798fd7f --- /dev/null +++ b/files/fr/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.md @@ -0,0 +1,436 @@ +--- +title: Les grilles CSS, les valeurs logiques et les modes d'écriture +slug: Web/CSS/CSS_Grid_Layout/CSS_Grid_Logical_Values_and_Writing_Modes +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guides + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes +original_slug: >- + Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité","Web/CSS/CSS_Grid_Layout")}}
+ +Dans les articles précédents, nous avons évoqué un aspect important de la disposition en grille : la prise en charge des différents modes d'écriture. Dans ce guide, nous nous intéresserons plus particulièrement à cette fonctionnalité ainsi qu'aux autres méthodes modernes de disposition. Cela sera également l'occasion d'en apprendre plus sur les modes d'écritures et la notion de propriété logique/physique.
+ +CSS possède de nombreux mots-clés qui permettent de positionner physiquement les éléments : left, right, top, bottom… Si on positionne un élément de façon absolue, on utilisera ces mots-clés physiques comme valeurs pour indiquer le décalage de l'élément. Dans le fragment de code suivant, l'élément est décalé de 20 pixels depuis le haut du conteneur et de 30 pixels depuis le bord gauche du conteneur.
.container {
+ position: relative;
+}
+.item {
+ position: absolute;
+ top: 20px;
+ left: 30px;
+}
+
+
+<div class="container"> + <div class="item">Item</div> +</div> ++ +
On rencontre également ces mots-clés physiques avec text-align: right afin d'aligner le texte à droite. Il existe aussi des propriétés physiques en CSS. On ajoute des marges, du remplissage, des bordures grâces à cs propriétés physiques comme {{cssxref("margin-left")}}, {{cssxref("padding-left")}}, etc.
On qualifie ces propriétés de physiques car elles concernent l'écran qu'on regarde : la gauche sera toujours la gauche, quelle que soit la direction du texte.
+ +Cela peut devenir un problème lorsqu'on développe un site qui doit fonctionner avec plusieurs langues dont certaines sont écrites de droite à gauche et non de gauche à droite. Les navigateurs savent plutôt bien gérer les différentes directions d'écriture. Dans l'exemple qui suit, on a deux paragraphes. Pour le deuxième, aucune propriété {{cssxref("text-align")}} n'est utilisée, alors que pour le second, on utilise text-align avec left et on ajoute dir="rtl" sur l'élément HTML ce qui a pour effet de changer la direction d'écriture. On peut voir que, dans le second paragraphe, la direction change et le texte est écrit de droite à gauche. Dans le premier cependant, avec text-align value: left, l'alignement reste à gauche.

Cela illustre un problème fréquent avec les propriétés et valeurs physiques en CSS : elles empêchent le navigateur de passer correctement d'un mode d'écriture à l'autre.
+ +Les propriétés et les valeurs logiques n'émettent pas d'hypothèse quant à la direction du texte. C'est pour cette raison, qu'avec les grilles CSS, on utilise le mot-clé start lorsqu'on souhaite aligner quelque chose au début du conteneur. Quand on travaille en français ou en anglais, start correspondra à la gauche mais ce n'est pas nécessairement toujours le cas, start ne correspond pas à une position physique.
Lorsqu'on commence à travailler avec les propriétés logiques plutôt qu'avec les propriétés physiques, on cesse de voir le monde comme un espace qui va de gauche à droite et de haut en bas. Il faut de nouveaux axes de références : l'axe de bloc (block axis en anglais) et l'axe en ligne (inline axis). Le premier est l'axe orthogonal au sens d'écriture et le second est l'axe dans lequel on écrit. Ces axes logiques sont très utiles et on comprend mieux leurs rôles sur la grille.
+ +
Nous allons ici aborder une autre spécification que nous allons utiliser dans nos exemples : la spécification CSS sur les modes d'écriture (CSS Writing Modes). Cette spécification régit comment les différents modes d'écriture peuvent être utilisés en CSS, pas seulement pour prendre en charge différentes langues mais aussi pour créer des effets artistiques. Nous allons utiliser la propriété {{cssxref("writing-mode")}} afin de modifier le mode d'écriture appliqué à la grille pour observer comment fonctionnent les valeurs logiques. Si vous souhaitez approfondir ces notions autour des modes d'écriture, vous pouvez consulter l'article CSS Writing Modes (en anglais) écrit par Jen Simmons.
+ +writing-modeLes modes d'écriture ne se limitent pas à l'écriture de droite à gauche ou de gauche à droite, la propriété writing-mode nous permet d'afficher du texte dans plusieurs directions. La propriété {{cssxref("writing-mode")}} peut prendre les valeurs suivantes :
horizontal-tbvertical-rlvertical-lrsideways-rlsideways-lrSur le Web, c'est la valeur horizontal-tb qui est la valeur par défaut pour le texte. C'est dans cette direction que vous lisez cet article. Les autres valeurs changeront la façon dont le texte est écrit sur le document et correspondent aux modes d'écriture utilisés dans d'autres langues. Dans l'exemple qui suit, on a deux paragraphes, le premier utilise la valeur par défaut horizontal-tb et le second utilise la valeur vertical-rl. Dans ce deuxième mode, le texte est toujours écrit de gauche à droite mais la direction du texte est verticale. Dans ce deuxième paragraphe, l'axe en ligne (inline) est donc l'axe vertical.
<div class="wrapper"> + <p style="writing-mode: horizontal-tb">Mon mode d'écriture est celui par défaut <code>horizontal-tb</code></p> + <p style="writing-mode: vertical-rl">Moi je suis écrit avec <code>vertical-rl</code></p> +</div> ++ +
{{EmbedLiveSample("writing-mode", '500', '420')}}
+ +Si on reprend l'exemple avec la grille, on comprend mieux l'effet du changement du mode d'écriture qui change les axes logiques.
+ +Dans le prochain exemple, la grille possède trois colonnes et deux lignes. Cela signifie qu'il y a trois pistes qui traversent l'axe de bloc. Avec le mode d'écriture par défaut, la grille commence par placer les objets en haut à gauche en remplissant les trois cellules sur la première ligne avant de passer à la suivante, en formant une nouvelle ligne, etc.
+ + + +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(2, 100px);
+ grid-gap: 10px;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> + <div class="item5">Objet 5</div> +</div> ++ +
{{EmbedLiveSample("Mode_d'écriture_par_défaut", '500', '330')}}
+ +Si on ajoute writing-mode: vertical-lr au conteneur de la grille, on peut voir que les axes logiques s'appliquent désormais dans une autre direction. L'axe de bloc (aussi appelé l'axe des colonnes pour la grille) s'étend maintenant de gauche à droite et l'axe en ligne court verticalement.
.wrapper {
+ writing-mode: vertical-lr;
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(2, 100px);
+ grid-gap: 10px;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> + <div class="item5">Objet 5</div> +</div> ++ +
{{EmbedLiveSample("definir_writing-mode", '500', '330')}}
+ +
Dans les exemples précédents, on a vu comment les axes de bloc et en ligne pouvaient changer de direction, nous allons voir maintenant comment tirer partir des valeurs logiques des propriétés d'alignement.
+ +Dans le prochain exemple, on aligne des objets dans une grille pour laquelle writing-mode: vertical-lr. Les valeurs start et end fonctionnent de la même façon qu'avec le mode d'écriture par défaut mais, parce qu'elles sont logiques, on voit que la grille est bien renversée.
.wrapper {
+ writing-mode: vertical-lr;
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: repeat(3, 100px);
+ grid-gap: 10px;
+}
+
+.item1 {
+ grid-column: 1 / 4;
+ align-self: start;
+}
+
+.item2 {
+ grid-column: 1 / 3;
+ grid-row: 2 / 4;
+ align-self: start;
+}
+
+.item3 {
+ grid-column: 3;
+ grid-row: 2 / 4;
+ align-self: end;
+ justify-self: end;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> +</div> ++ +
{{EmbedLiveSample("L'utilisation_de_valeurs_logiques_pour_l'alignement", '500', '330')}}
+ +Si vous souhaitez voir l'effet obtenu avec une écriture verticale de haut en bas et de droite à gauche, il suffit de passer de vertical-lr à vertical-rl pour changer de mode d'écriture.
On a vu dans l'exemple précédent que lorsqu'on changeait de mode d'écriture, cela changeait également la direction selon laquelle les éléments étaient placés sur la grille. Par défaut, les éléments sont placés en progressant sur l'axe en ligne, jusqu'à la fin de la ligne, une nouvelle ligne est ensuite créée si besoin mais cette ligne ne progresse pas nécessairement de gauche à droite.
+ +Il faut garder à l'esprit que lorsqu'on place des objets sur les lignes, la ligne 1 sera toujours la ligne de départ, quel que soit le mode d'écriture et la ligne -1 sera toujours la ligne de fin.
+ +Dans l'exemple suivant, on a une grille avec la direction ltr et on positionne trois objets en utilisant le placement sur les lignes.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: repeat(2, 100px);
+ grid-gap: 10px;
+}
+.item1 {
+ grid-column: 1 ;
+}
+.item2 {
+ grid-column: -1 / -3;
+}
+.item3 {
+ grid-column: 1 / 3;
+ grid-row: 2;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> +</div> ++ +
{{EmbedLiveSample("placement_sur_les_lignes_pour_du_texte_de_gauche_à_droite", '500', '330')}}
+ +Si on ajoute alors la propriété {{cssxref("direction")}} avec la valeur rtl pour le conteneur de la grille, la colonne 1 sera la plus à droite et la colonne 1 sera à gauche.
.wrapper {
+ direction: rtl;
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: repeat(2, 100px);
+ grid-gap: 10px;
+}
+.item1 {
+ grid-column: 1 ;
+}
+.item2 {
+ grid-column: -1 / -3;
+}
+.item3 {
+ grid-column: 1 / 3;
+ grid-row: 2;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> +</div> ++ +
{{EmbedLiveSample("placement_sur_les_lignes_pour_du_texte_de_droite_à_gauche", '500', '330')}}
+ +On voit ici que si on change la direction du texte pour la page ou pour une partie de la page : la disposition change selon lees numéros de lignes. Si on ne veut pas que les lignes bougent, on pourra utiliser des lignes nommées pour éviter cet effet.
+ +grid-areaLa propriété {{cssxref("grid-area")}} permet d'indiquer les quatre lignes qui définissent une zone. Lorsqu'on apprend à utiliser cette propriété, on se surprend à voir que les quatre valeurs ne suivent pas le même ordre que celui utilisé par les propriétés raccourcies pour les marges (pour celles-ci, les valeurs suivent le sens horaire : haut, droit, bas, gauche).
+ +Pour les valeurs de grid-area, l'ordre est le suivant :
grid-row-startgrid-column-startgrid-row-endgrid-column-endSi on transpose ces valeurs à un système d'écriture de gauche à droite, cela correspond aux valeurs physiques suivantes :
+ +topleftbottomrightCe qui correspond… au sens anti-horaire ! L'ordre est l'inverse de celui utilisé pour les marges et le remplissage. Pour comprendre, mieux vaut voir la propriété grid-area comme une propriété logique qui fonctionne selon les axes de bloc et en ligne : on commence donc avec les deux lignes de départ puis les deux lignes d'arrivée. Cet ordre est plus « logique » !
Les modes d'écritures permettent d'afficher les documents en respectant les règles d'affichage de la langue utilisé. On peut également les utiliser afin de créer des effets stylistiques. Dans l'exemple ci-après, on a une grille avec du texte et des liens qui seront affichés verticalement, à côté du texte.
+ +.wrapper {
+ display: grid;
+ grid-gap: 20px;
+ grid-template-columns: 1fr auto;
+ font: 1em Helvetica, Arial, sans-serif;
+}
+.wrapper nav {
+ writing-mode: vertical-lr;
+}
+.wrapper ul {
+ list-style: none;
+ margin: 0;
+ padding: 1em;
+ display: flex;
+ justify-content: space-between;
+}
+.wrapper a {
+ text-decoration: none;
+}
+
+
+<div class="wrapper"> + <div class="content"> + <p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p> + <p>Nori grape silver beet broccoli kombu beet greens fava bean potato quandong celery. Bunya nuts black-eyed pea prairie turnip leek lentil turnip greens parsnip. Sea lettuce lettuce water chestnut eggplant winter purslane fennel azuki bean earthnut pea sierra leone bologi leek soko chicory celtuce parsley jícama salsify.</p> + </div> + <nav> + <ul> + <li><a href="">Lien 1</a></li> + <li><a href="">Lien 2</a></li> + <li><a href="">Lien 3</a></li> + </ul> + </nav> +</div> ++ +
{{EmbedLiveSample("Utiliser_des_modes_d'écriture_hybrides_et_les_grilles_CSS", '500', '330')}}
+ +On rencontre souvent les propriétés physiques lorsqu'on construit un site web et, bien que la grille et les propriétés logiques permettent de respecter les modes d'écriture, il existe certains effets qui ne peuvent être obtenus qu'avec des propriétés et des valeurs physiques. Dans le guide sur l'alignement des boîtes et les grilles, nous avons vu comment utiliser les marges automatiques sur les zones d'une grille. Utiliser les marges automatiques pour contraindre le placement d'un élément est une astuce qu'on rencontre aussi avec les boîtes flexibles mais cela couple la disposition avec l'espace physique.
+ +Si on utilise le positionnement absolu dans une zone d'une grille, là encore, on utilisera des décalages physiques pour décaler l'élément au sein de la zone. Dans ces cas, il faut être conscient du couplage qu'on ajoute avec l'espace physique et comprendre qu'il faudra adapter la feuille de style si on veut par exemple passer d'un mode ltr à un mode rtl.
Les nouvelles méthodes de disposition, comme les grilles, permettent d'employer les valeurs logiques afin de placer les éléments. Cependant, dès qu'on combine ces valeurs avec des propriétés physiques, il faut maintenir ces dernières lorsque le mode d'écriture change.
+ +La spécification sur les propriétés logiques en CSS vise à résoudre ce problème. Nous pourrons peut-être utiliser demain des équivalents logiques pour chacune des propriétés physiques telles que {{cssxref("margin-left")}} et {{cssxref("margin-right")}}. Firefox a déjà implémenté ces propriétés logiques et vous pouvez les y tester. En utilisant les grilles et en manipulant l'axe de bloc et l'axe de ligne, vous saurez également comment fonctionnent ces propriétés logiques à venir.
+ +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/grid_template_areas/index.html b/files/fr/web/css/css_grid_layout/grid_template_areas/index.html deleted file mode 100644 index 2b45f2fac6..0000000000 --- a/files/fr/web/css/css_grid_layout/grid_template_areas/index.html +++ /dev/null @@ -1,467 +0,0 @@ ---- -title: Définir des zones sur une grille -slug: Web/CSS/CSS_Grid_Layout/Grid_Template_Areas -tags: - - CSS - - CSS Grids - - Grilles CSS - - Guide -translation_of: Web/CSS/CSS_Grid_Layout/Grid_Template_Areas -original_slug: Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille ---- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
- -Dans le guide précédent, on a étudié les lignes formées par une grille et comment positionner des objets sur ces lignes. Lorsqu'on utilise une grille CSS, on a toujours ces lignes et celles-ci permettent d'avoir une disposition simple. Toutefois, il existe une autre méthode de disposition avec les grilles, qu'on peut utiliser seule ou combinée avec les lignes. Avec cette méthode, on place les éléments sur des zones de la grille. Nous allons voir dans ce guide comment cela fonctionne voire comment on peut faire de l'ASCII-art en CSS avec les grilles !
- -On a déjà utilisé la propriété {{cssxref("grid-area")}} précédemment. C'est cette propriété qui utilise les numéros des lignes comme valeur pour positionner une zone de grille :
- -.box1 {
- grid-area: 1 / 1 / 4 / 2;
-}
-
-
-Ici, on définit les quatre lignes qui entourent la zone en question :
- -
On peut également définir une zone en lui donnant un nom puis en définissant l'emplacement de cette zone grâce à la propriété {{cssxref("grid-template-areas")}}. Vous pouvez choisir les noms de vos zones, on peut par exemple créer une disposition avec quatre zones :
- -
Avec {{cssxref("grid-area")}}, on affecte un nom à chacune de ces zones. Pour le moment, aucune disposition n'a été créée mais on a des noms qu'on pourra utiliser dans notre disposition :
- -.header {
- grid-area: hd;
-}
-.footer {
- grid-area: ft;
-}
-.content {
- grid-area: main;
-}
-.sidebar {
- grid-area: sd;
-}
-
-
-Grâce à ces noms, on peut créer l'organisation. Cette fois, plutôt que de placer les objets grâce aux numéros de ligne, on définit la disposition dans le conteneur de la grille :
- -.wrapper {
- display: grid;
- grid-template-columns: repeat(9, 1fr);
- grid-auto-rows: minmax(100px, auto);
- grid-template-areas:
- "hd hd hd hd hd hd hd hd hd"
- "sd sd sd main main main main main main"
- "ft ft ft ft ft ft ft ft ft";
-}
-
-
-
-
-<div class="wrapper"> - <div class="header">En-tête</div> - <div class="sidebar">Barre latérale</div> - <div class="content">Contenu</div> - <div class="footer">Pied de page</div> -</div>- -
{{EmbedLiveSample("Donner_un_nom_à_une_zone_de_grille", '300', '330')}}
- -Grâce à cette méthode, il n'est pas nécessaire de gérer chacun des éléments individuellement. Tout est organisé au travers du conteneur. La disposition est décrite grâce à la propriété {{cssxref("grid-template-areas")}}.
- -Dans l'exemple précédent, toute la grille est occupée… On peut également utiliser cette méthode pour laisser des cellules vides. Pour cela, il faut utiliser un point à la place d'un nom de zone. Aussi, si on veut que le pied de page soit uniquement affiché sous le contenu, il faudra avoir trois cellules vides sous la barre latérale.
- -.header {
- grid-area: hd;
-}
-.footer {
- grid-area: ft;
-}
-.content {
- grid-area: main;
-}
-.sidebar {
- grid-area: sd;
-}
-
-
-
-
-.wrapper {
- display: grid;
- grid-template-columns: repeat(9, 1fr);
- grid-auto-rows: minmax(100px, auto);
- grid-template-areas:
- "hd hd hd hd hd hd hd hd hd"
- "sd sd sd main main main main main main"
- ". . . ft ft ft ft ft ft";
-}
-
-
-<div class="wrapper"> - <div class="header">En-tête</div> - <div class="sidebar">Barre latérale</div> - <div class="content">Contenu</div> - <div class="footer">Pied de page</div> -</div>- -
{{EmbedLiveSample("Laisser_une_cellule_vide", '300', '330')}}
- -Si on veut que la disposition soit bien représentée, on peut utiliser plusieurs points. Tant que ceux-ci ne sont pas séparés par un espace, ils compteront pour une seule cellule. Dans le cas d'une disposition complexe, cela permet d'avoir des lignes et colonnes clairement alignées, y compris dans la règle CSS.
- -Dans notre exemple, chacune des zones occupe plusieurs cellules car on a répété le nom de la zone avec des espaces entre (on peut ajouter plus d'espaces si besoin, afin d'avoir une disposition lisible, c'est ce qu'on a fait précédemment pour que hd et ft soient alignés avec main).
La zone qu'on crée avec les noms doit être rectangulaires. Actuellement, il n'existe pas de méthode pour créer une zone avec une forme de L (bien que la spécification indique qu'une prochaine version pourrait couvrir cette fonctionnalité). On peut toutefois agrandir des lignes horizontales aussi simplement que des colonnes. Par exemple, on pourrait avoir la barre latérale qui descend jusqu'en bas en remplaçant les points par sd.
.header {
- grid-area: hd;
-}
-.footer {
- grid-area: ft;
-}
-.content {
- grid-area: main;
-}
-.sidebar {
- grid-area: sd;
-}
-
-
-
-
-.wrapper {
- display: grid;
- grid-template-columns: repeat(9, 1fr);
- grid-auto-rows: minmax(100px, auto);
- grid-template-areas:
- "hd hd hd hd hd hd hd hd hd"
- "sd sd sd main main main main main main"
- "sd sd sd ft ft ft ft ft ft";
-}
-
-
-
-
-{{EmbedLiveSample("Occuper_plusieurs_cellules", '300', '330')}}
- -La valeur utilisée pour {{cssxref("grid-template-areas")}} doit obligatoirement décrire une grille complète, sinon elle est considérée invalide et la propriété est ignorée. Cela signifie qu'il faut le même nombre de cellules pour chaque ligne (si une cellule est vide, on l'indiquera avec un point). Si des zones ne sont pas rectangulaires, cela sera également considéré comme invalide.
- -Notre disposition fait désormais partie de notre feuille de style CSS. On peut donc l'adapter très facilement pour différentes résolutions. On peut redéfinir la position des objets sur la grille ou la grille elle-même, ou les deux simultanément.
- -Pour ce faire, on définit les noms des zones en dehors de toute media query afin de pouvoir y accéder quel que soit l'endroit où la zone sera placée.
- -Pour la disposition vue précédemment, on définit ici une disposition par défaut sur une seule colonne pour les affichages étroits. On a donc une seule piste sur laquelle s'empilent les objets :
- - - -.header {
- grid-area: hd;
-}
-.footer {
- grid-area: ft;
-}
-.content {
- grid-area: main;
-}
-.sidebar {
- grid-area: sd;
-}
-
-.wrapper {
- display: grid;
- grid-auto-rows: minmax(100px, auto);
- grid-template-columns: 1fr;
- grid-template-areas:
- "hd"
- "main"
- "sd"
- "ft";
-}
-
-
-On peut ensuite redéfinir la disposition à l'intérieur des différentes media queries utilisées pour avoir une disposition sur deux colonnes, voire trois lorsque l'espace le permet. On notera que pour la disposition la plus large, on a une grille organisée sur 9 colonnes/pistes et on redéfinit l'emplacement des objets avec grid-template-areas.
@media (min-width: 500px) {
- .wrapper {
- grid-template-columns: repeat(9, 1fr);
- grid-template-areas:
- "hd hd hd hd hd hd hd hd hd"
- "sd sd sd main main main main main main"
- "sd sd sd ft ft ft ft ft ft";
- }
-}
-@media (min-width: 700px) {
- .wrapper {
- grid-template-areas:
- "hd hd hd hd hd hd hd hd hd"
- "sd sd main main main main main ft ft";
- }
-}
-
-
-
-
-{{EmbedLiveSample("Redéfinir_une_grille_avec_des_media_queries", '550', '330')}}
- -grid-template-areas pour des éléments d'interface utilisateurLa plupart des exemples illustrent une utilisation de la grille pour la disposition principale de la page. Toutefois, une grille peut également être utile pour les petits éléments. {{cssxref("grid-template-areas")}} est assez pratique car elle permet de voir facilement à quoi ressemblera l'élément.
- -Dans l'exemple qui suit, on crée un objet « media » qui servira de composant pour afficher un media (une image par exemple) d'un côté et un texte de l'autre. On pourra ainsi voir l'effet obtenu en changeant la disposition avec l'image à droite ou à gauche.
- -
Ici, la grille se compose de deux pistes en colonnes. La colonne pour l'image est dimensionnée avec 1fr et celle pour le texte reçoit 3fr. Si on souhaitait utiliser une largeur fixe pour l'image, on aurait pu utiliser des pixels pour définir la taille de la colonne et utiliser 1fr pour la zone du texte. Cette colonne de 1fr aurait alors occupé le reste de l'espace.
Pour la zone dédiée à l'image, on crée une zone de grille intitulée img et pour le texte, on crée une seconde zone intitulée content. Ensuite, on utilise ces noms pour créer l'organisation via la propriété grid-template-areas.
* {box-sizing: border-box;}
-
-.media {
- border: 2px solid #f76707;
- border-radius: 5px;
- background-color: #fff4e6;
- max-width: 400px;
-}
-.media {
- display: grid;
- grid-template-columns: 1fr 3fr;
- grid-template-areas: "img content";
- margin-bottom: 1em;
-}
-
-.media .image {
- grid-area: img;
- background-color: #ffd8a8;
-}
-
-.media .text {
- grid-area: content;
- padding: 10px;
-}
-
-
-<div class="media"> - <div class="image"></div> - <div class="text"> - Dans cet exemple, on peut utiliser - grid-template-areas pour échanger les - places du texte et du media. - </div> -</div>- -
{{EmbedLiveSample("Exemple_d'objet_média", '300', '200')}}
- -Si on a besoin d'afficher l'image d l'autre côté, il suffit de redéfinir une grille pour laquelle la piste qui mesure 1fr est en dernier et d'échanger les valeurs dans {{cssxref("grid-template-areas")}}.
* {box-sizing: border-box;}
-
-.media {
- border: 2px solid #f76707;
- border-radius: 5px;
- background-color: #fff4e6;
- max-width: 400px;
-}
-.media {
- display: grid;
- grid-template-columns: 1fr 3fr;
- grid-template-areas: "img content";
- margin-bottom: 1em;
-}
-
-.media.flipped {
- grid-template-columns: 3fr 1fr;
- grid-template-areas: "content img";
-}
-
-.media .image {
- grid-area: img;
- background-color: #ffd8a8;
-}
-
-.media .text {
- grid-area: content;
- padding: 10px;
-}
-
-
-<div class="media flipped"> - <div class="image"></div> - <div class="text"> - Dans cet exemple, on peut utiliser - grid-template-areas pour échanger les - places du texte et du media. - </div> -</div>- -
{{EmbedLiveSample("Afficher_l'image_de_l'autre_côté", '300', '200') }}
- -Nous avons vu différentes façons de placer des objets sur une grille et plusieurs des propriétés utilisées pour définir une grille. Voyons maintenant les propriétés raccourcies qui sont disponibles pour les grilles CSS et qui permettent de rendre le code un peu plus concis.
- -Attention, ces propriétés peuvent parfois devenir complexes à lire, que ce soit pour les autres développeurs qui liraient votre code voire pour vous-même d'ici quelques semaines. Cependant, elles font partie de la spécification et vous pourrez les rencontrer dans des exemples ou dans d'autres bases de code.
- -Avant d'utiliser une propriété raccourcie, il est préférable de se rappeler qu'une propriété raccourcie permet d'en définir plusieurs grâce à une seule règle mais aussi qu'une propriété raccourcie réinitialise les propriétés avec leurs valeurs initiales lorsqu'elles ne sont pas déclarées via la propriété raccourcie. Aussi, si vous utilisez une propriété raccourcie, sachez qu'elle peut réinitialiser une propriété que vous auriez utilisé autre part.
- -Les deux propriétés raccourcies pour les grilles sont grid-template et grid.
grid-templateLa propriété {{cssxref("grid-template")}} permet de définir les propriétés suivantes :
- -Cette propriété est appelée propriété raccourcie « explicite » car elle permet de paramétrer les aspects d'une grille définie explicitement. Elle n'a pas d'impact sur les propriétés qui créeraient des lignes ou colonnes implicites.
- -Le fragment de code suivant crée une disposition identique à celle que nous avons vu plus haut dans cet article.
- -.wrapper {
- display: grid;
- grid-template:
- "hd hd hd hd hd hd hd hd hd" minmax(100px, auto)
- "sd sd sd main main main main main main" minmax(100px, auto)
- "ft ft ft ft ft ft ft ft ft" minmax(100px, auto)
- / 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr ;
-}
-
-
-La première valeur correspond à celle de grid-template-areas mais on déclare également les tailles de chaque ligne à la fin de chaque ligne (avec minmax(100px, auto)).
Après la valeur de grid-template-areas, on a un barre oblique (/) puis une liste de pistes qui définit les colonnes explicitement.
gridLa propriété {{cssxref("grid")}} va un cran plus loin et définit également les propriétés utilisées par la grille implicite. Elle permet de paramétrer :
- -Cette propriété réinitialise également la propriété {{cssxref("gap")}} avec la valeur 0 mais, en revanche, elle ne permet pas de définir des espaces.
On peut utiliser la même syntaxe qu'avec {{cssxref("grid-template")}} mais attention, cela réinitialisera les valeurs des autres propriétés :
- -.wrapper {
- display: grid;
- grid: "hd hd hd hd hd hd hd hd hd" minmax(100px, auto)
- "sd sd sd main main main main main main" minmax(100px, auto)
- "ft ft ft ft ft ft ft ft ft" minmax(100px, auto)
- / 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr ;
-}
-
-
-Dans les articles suivants, nous verrons les fonctionnalités offertes par cette propriété raccourcie, notamment pour le placement automatique et pour la propriété grid-auto-flow.
Après ces quelques guides, vous devriez désormais être en mesure de créer des grilles et de placer les éléments sur des lignes ou grâce à des zones nommées. Prenez le temps de construire certains motifs « classiques » à l'aide de grille pour mieux apprendre en manipulant. Au fur et à mesure, vous aurez des questions et arriverez sur des scénarios que nous n'avons pas encore évoqués. Dans la suite de ces articles, nous nous intéresserons plus en détails aux autres éléments de la spécification afin de pouvoir créer des dispositions plus complexes.
- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/grid_template_areas/index.md b/files/fr/web/css/css_grid_layout/grid_template_areas/index.md new file mode 100644 index 0000000000..2b45f2fac6 --- /dev/null +++ b/files/fr/web/css/css_grid_layout/grid_template_areas/index.md @@ -0,0 +1,467 @@ +--- +title: Définir des zones sur une grille +slug: Web/CSS/CSS_Grid_Layout/Grid_Template_Areas +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guide +translation_of: Web/CSS/CSS_Grid_Layout/Grid_Template_Areas +original_slug: Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
+ +Dans le guide précédent, on a étudié les lignes formées par une grille et comment positionner des objets sur ces lignes. Lorsqu'on utilise une grille CSS, on a toujours ces lignes et celles-ci permettent d'avoir une disposition simple. Toutefois, il existe une autre méthode de disposition avec les grilles, qu'on peut utiliser seule ou combinée avec les lignes. Avec cette méthode, on place les éléments sur des zones de la grille. Nous allons voir dans ce guide comment cela fonctionne voire comment on peut faire de l'ASCII-art en CSS avec les grilles !
+ +On a déjà utilisé la propriété {{cssxref("grid-area")}} précédemment. C'est cette propriété qui utilise les numéros des lignes comme valeur pour positionner une zone de grille :
+ +.box1 {
+ grid-area: 1 / 1 / 4 / 2;
+}
+
+
+Ici, on définit les quatre lignes qui entourent la zone en question :
+ +
On peut également définir une zone en lui donnant un nom puis en définissant l'emplacement de cette zone grâce à la propriété {{cssxref("grid-template-areas")}}. Vous pouvez choisir les noms de vos zones, on peut par exemple créer une disposition avec quatre zones :
+ +
Avec {{cssxref("grid-area")}}, on affecte un nom à chacune de ces zones. Pour le moment, aucune disposition n'a été créée mais on a des noms qu'on pourra utiliser dans notre disposition :
+ +.header {
+ grid-area: hd;
+}
+.footer {
+ grid-area: ft;
+}
+.content {
+ grid-area: main;
+}
+.sidebar {
+ grid-area: sd;
+}
+
+
+Grâce à ces noms, on peut créer l'organisation. Cette fois, plutôt que de placer les objets grâce aux numéros de ligne, on définit la disposition dans le conteneur de la grille :
+ +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(9, 1fr);
+ grid-auto-rows: minmax(100px, auto);
+ grid-template-areas:
+ "hd hd hd hd hd hd hd hd hd"
+ "sd sd sd main main main main main main"
+ "ft ft ft ft ft ft ft ft ft";
+}
+
+
+
+
+<div class="wrapper"> + <div class="header">En-tête</div> + <div class="sidebar">Barre latérale</div> + <div class="content">Contenu</div> + <div class="footer">Pied de page</div> +</div>+ +
{{EmbedLiveSample("Donner_un_nom_à_une_zone_de_grille", '300', '330')}}
+ +Grâce à cette méthode, il n'est pas nécessaire de gérer chacun des éléments individuellement. Tout est organisé au travers du conteneur. La disposition est décrite grâce à la propriété {{cssxref("grid-template-areas")}}.
+ +Dans l'exemple précédent, toute la grille est occupée… On peut également utiliser cette méthode pour laisser des cellules vides. Pour cela, il faut utiliser un point à la place d'un nom de zone. Aussi, si on veut que le pied de page soit uniquement affiché sous le contenu, il faudra avoir trois cellules vides sous la barre latérale.
+ +.header {
+ grid-area: hd;
+}
+.footer {
+ grid-area: ft;
+}
+.content {
+ grid-area: main;
+}
+.sidebar {
+ grid-area: sd;
+}
+
+
+
+
+.wrapper {
+ display: grid;
+ grid-template-columns: repeat(9, 1fr);
+ grid-auto-rows: minmax(100px, auto);
+ grid-template-areas:
+ "hd hd hd hd hd hd hd hd hd"
+ "sd sd sd main main main main main main"
+ ". . . ft ft ft ft ft ft";
+}
+
+
+<div class="wrapper"> + <div class="header">En-tête</div> + <div class="sidebar">Barre latérale</div> + <div class="content">Contenu</div> + <div class="footer">Pied de page</div> +</div>+ +
{{EmbedLiveSample("Laisser_une_cellule_vide", '300', '330')}}
+ +Si on veut que la disposition soit bien représentée, on peut utiliser plusieurs points. Tant que ceux-ci ne sont pas séparés par un espace, ils compteront pour une seule cellule. Dans le cas d'une disposition complexe, cela permet d'avoir des lignes et colonnes clairement alignées, y compris dans la règle CSS.
+ +Dans notre exemple, chacune des zones occupe plusieurs cellules car on a répété le nom de la zone avec des espaces entre (on peut ajouter plus d'espaces si besoin, afin d'avoir une disposition lisible, c'est ce qu'on a fait précédemment pour que hd et ft soient alignés avec main).
La zone qu'on crée avec les noms doit être rectangulaires. Actuellement, il n'existe pas de méthode pour créer une zone avec une forme de L (bien que la spécification indique qu'une prochaine version pourrait couvrir cette fonctionnalité). On peut toutefois agrandir des lignes horizontales aussi simplement que des colonnes. Par exemple, on pourrait avoir la barre latérale qui descend jusqu'en bas en remplaçant les points par sd.
.header {
+ grid-area: hd;
+}
+.footer {
+ grid-area: ft;
+}
+.content {
+ grid-area: main;
+}
+.sidebar {
+ grid-area: sd;
+}
+
+
+
+
+.wrapper {
+ display: grid;
+ grid-template-columns: repeat(9, 1fr);
+ grid-auto-rows: minmax(100px, auto);
+ grid-template-areas:
+ "hd hd hd hd hd hd hd hd hd"
+ "sd sd sd main main main main main main"
+ "sd sd sd ft ft ft ft ft ft";
+}
+
+
+
+
+{{EmbedLiveSample("Occuper_plusieurs_cellules", '300', '330')}}
+ +La valeur utilisée pour {{cssxref("grid-template-areas")}} doit obligatoirement décrire une grille complète, sinon elle est considérée invalide et la propriété est ignorée. Cela signifie qu'il faut le même nombre de cellules pour chaque ligne (si une cellule est vide, on l'indiquera avec un point). Si des zones ne sont pas rectangulaires, cela sera également considéré comme invalide.
+ +Notre disposition fait désormais partie de notre feuille de style CSS. On peut donc l'adapter très facilement pour différentes résolutions. On peut redéfinir la position des objets sur la grille ou la grille elle-même, ou les deux simultanément.
+ +Pour ce faire, on définit les noms des zones en dehors de toute media query afin de pouvoir y accéder quel que soit l'endroit où la zone sera placée.
+ +Pour la disposition vue précédemment, on définit ici une disposition par défaut sur une seule colonne pour les affichages étroits. On a donc une seule piste sur laquelle s'empilent les objets :
+ + + +.header {
+ grid-area: hd;
+}
+.footer {
+ grid-area: ft;
+}
+.content {
+ grid-area: main;
+}
+.sidebar {
+ grid-area: sd;
+}
+
+.wrapper {
+ display: grid;
+ grid-auto-rows: minmax(100px, auto);
+ grid-template-columns: 1fr;
+ grid-template-areas:
+ "hd"
+ "main"
+ "sd"
+ "ft";
+}
+
+
+On peut ensuite redéfinir la disposition à l'intérieur des différentes media queries utilisées pour avoir une disposition sur deux colonnes, voire trois lorsque l'espace le permet. On notera que pour la disposition la plus large, on a une grille organisée sur 9 colonnes/pistes et on redéfinit l'emplacement des objets avec grid-template-areas.
@media (min-width: 500px) {
+ .wrapper {
+ grid-template-columns: repeat(9, 1fr);
+ grid-template-areas:
+ "hd hd hd hd hd hd hd hd hd"
+ "sd sd sd main main main main main main"
+ "sd sd sd ft ft ft ft ft ft";
+ }
+}
+@media (min-width: 700px) {
+ .wrapper {
+ grid-template-areas:
+ "hd hd hd hd hd hd hd hd hd"
+ "sd sd main main main main main ft ft";
+ }
+}
+
+
+
+
+{{EmbedLiveSample("Redéfinir_une_grille_avec_des_media_queries", '550', '330')}}
+ +grid-template-areas pour des éléments d'interface utilisateurLa plupart des exemples illustrent une utilisation de la grille pour la disposition principale de la page. Toutefois, une grille peut également être utile pour les petits éléments. {{cssxref("grid-template-areas")}} est assez pratique car elle permet de voir facilement à quoi ressemblera l'élément.
+ +Dans l'exemple qui suit, on crée un objet « media » qui servira de composant pour afficher un media (une image par exemple) d'un côté et un texte de l'autre. On pourra ainsi voir l'effet obtenu en changeant la disposition avec l'image à droite ou à gauche.
+ +
Ici, la grille se compose de deux pistes en colonnes. La colonne pour l'image est dimensionnée avec 1fr et celle pour le texte reçoit 3fr. Si on souhaitait utiliser une largeur fixe pour l'image, on aurait pu utiliser des pixels pour définir la taille de la colonne et utiliser 1fr pour la zone du texte. Cette colonne de 1fr aurait alors occupé le reste de l'espace.
Pour la zone dédiée à l'image, on crée une zone de grille intitulée img et pour le texte, on crée une seconde zone intitulée content. Ensuite, on utilise ces noms pour créer l'organisation via la propriété grid-template-areas.
* {box-sizing: border-box;}
+
+.media {
+ border: 2px solid #f76707;
+ border-radius: 5px;
+ background-color: #fff4e6;
+ max-width: 400px;
+}
+.media {
+ display: grid;
+ grid-template-columns: 1fr 3fr;
+ grid-template-areas: "img content";
+ margin-bottom: 1em;
+}
+
+.media .image {
+ grid-area: img;
+ background-color: #ffd8a8;
+}
+
+.media .text {
+ grid-area: content;
+ padding: 10px;
+}
+
+
+<div class="media"> + <div class="image"></div> + <div class="text"> + Dans cet exemple, on peut utiliser + grid-template-areas pour échanger les + places du texte et du media. + </div> +</div>+ +
{{EmbedLiveSample("Exemple_d'objet_média", '300', '200')}}
+ +Si on a besoin d'afficher l'image d l'autre côté, il suffit de redéfinir une grille pour laquelle la piste qui mesure 1fr est en dernier et d'échanger les valeurs dans {{cssxref("grid-template-areas")}}.
* {box-sizing: border-box;}
+
+.media {
+ border: 2px solid #f76707;
+ border-radius: 5px;
+ background-color: #fff4e6;
+ max-width: 400px;
+}
+.media {
+ display: grid;
+ grid-template-columns: 1fr 3fr;
+ grid-template-areas: "img content";
+ margin-bottom: 1em;
+}
+
+.media.flipped {
+ grid-template-columns: 3fr 1fr;
+ grid-template-areas: "content img";
+}
+
+.media .image {
+ grid-area: img;
+ background-color: #ffd8a8;
+}
+
+.media .text {
+ grid-area: content;
+ padding: 10px;
+}
+
+
+<div class="media flipped"> + <div class="image"></div> + <div class="text"> + Dans cet exemple, on peut utiliser + grid-template-areas pour échanger les + places du texte et du media. + </div> +</div>+ +
{{EmbedLiveSample("Afficher_l'image_de_l'autre_côté", '300', '200') }}
+ +Nous avons vu différentes façons de placer des objets sur une grille et plusieurs des propriétés utilisées pour définir une grille. Voyons maintenant les propriétés raccourcies qui sont disponibles pour les grilles CSS et qui permettent de rendre le code un peu plus concis.
+ +Attention, ces propriétés peuvent parfois devenir complexes à lire, que ce soit pour les autres développeurs qui liraient votre code voire pour vous-même d'ici quelques semaines. Cependant, elles font partie de la spécification et vous pourrez les rencontrer dans des exemples ou dans d'autres bases de code.
+ +Avant d'utiliser une propriété raccourcie, il est préférable de se rappeler qu'une propriété raccourcie permet d'en définir plusieurs grâce à une seule règle mais aussi qu'une propriété raccourcie réinitialise les propriétés avec leurs valeurs initiales lorsqu'elles ne sont pas déclarées via la propriété raccourcie. Aussi, si vous utilisez une propriété raccourcie, sachez qu'elle peut réinitialiser une propriété que vous auriez utilisé autre part.
+ +Les deux propriétés raccourcies pour les grilles sont grid-template et grid.
grid-templateLa propriété {{cssxref("grid-template")}} permet de définir les propriétés suivantes :
+ +Cette propriété est appelée propriété raccourcie « explicite » car elle permet de paramétrer les aspects d'une grille définie explicitement. Elle n'a pas d'impact sur les propriétés qui créeraient des lignes ou colonnes implicites.
+ +Le fragment de code suivant crée une disposition identique à celle que nous avons vu plus haut dans cet article.
+ +.wrapper {
+ display: grid;
+ grid-template:
+ "hd hd hd hd hd hd hd hd hd" minmax(100px, auto)
+ "sd sd sd main main main main main main" minmax(100px, auto)
+ "ft ft ft ft ft ft ft ft ft" minmax(100px, auto)
+ / 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr ;
+}
+
+
+La première valeur correspond à celle de grid-template-areas mais on déclare également les tailles de chaque ligne à la fin de chaque ligne (avec minmax(100px, auto)).
Après la valeur de grid-template-areas, on a un barre oblique (/) puis une liste de pistes qui définit les colonnes explicitement.
gridLa propriété {{cssxref("grid")}} va un cran plus loin et définit également les propriétés utilisées par la grille implicite. Elle permet de paramétrer :
+ +Cette propriété réinitialise également la propriété {{cssxref("gap")}} avec la valeur 0 mais, en revanche, elle ne permet pas de définir des espaces.
On peut utiliser la même syntaxe qu'avec {{cssxref("grid-template")}} mais attention, cela réinitialisera les valeurs des autres propriétés :
+ +.wrapper {
+ display: grid;
+ grid: "hd hd hd hd hd hd hd hd hd" minmax(100px, auto)
+ "sd sd sd main main main main main main" minmax(100px, auto)
+ "ft ft ft ft ft ft ft ft ft" minmax(100px, auto)
+ / 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr ;
+}
+
+
+Dans les articles suivants, nous verrons les fonctionnalités offertes par cette propriété raccourcie, notamment pour le placement automatique et pour la propriété grid-auto-flow.
Après ces quelques guides, vous devriez désormais être en mesure de créer des grilles et de placer les éléments sur des lignes ou grâce à des zones nommées. Prenez le temps de construire certains motifs « classiques » à l'aide de grille pour mieux apprendre en manipulant. Au fur et à mesure, vous aurez des questions et arriverez sur des scénarios que nous n'avons pas encore évoqués. Dans la suite de ces articles, nous nous intéresserons plus en détails aux autres éléments de la spécification afin de pouvoir créer des dispositions plus complexes.
+ +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS", "Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/index.html b/files/fr/web/css/css_grid_layout/index.html deleted file mode 100644 index 6d622ed3af..0000000000 --- a/files/fr/web/css/css_grid_layout/index.html +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: Grilles CSS (CSS Grid) -slug: Web/CSS/CSS_Grid_Layout -tags: - - CSS - - CSS Grids - - Grilles CSS - - Reference -translation_of: Web/CSS/CSS_Grid_Layout ---- -Le module CSS Grid layout (modèle de disposition en grille) est un module de la spécification CSS qui permet de créer des mises en page en divisant l'espace d'affichage en régions utilisables par une application ou en définissant des relations de taille, position et d'empilement entre les éléments HTML.
- -Comme les tableaux, la grille permet d'aligner des éléments sous forme de colonnes et de lignes mais à la différence des tableaux, la grille n'a pas de structure de contenu. Ainsi, on peut créer de nombreuses mises en page qui n'auraient pas été possibles avec les tableaux. Ainsi, les éléments fils d'un conteneur en grille peuvent être positionnés afin qu'ils se chevauchent ou qu'ils se comportent comme des éléments positionnés.
- -Dans l'exemple qui suit, on montre comment utiliser une grille avec trois pistes en colonnes pour laquelle les nouvelles lignes créées mesureront au moins 100 pixels et auront au plus la taille automatique (définie par leur contenu). Les éléments sont placés sur la grille grâce aux numéros des lignes horizontales et verticales.
- - - -<div class="wrapper"> - <div class="one">Un</div> - <div class="two">Deux</div> - <div class="three">Trois</div> - <div class="four">Quatre</div> - <div class="five">Cinq</div> - <div class="six">Six</div> -</div>- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 10px;
- grid-auto-rows: minmax(100px, auto);
-}
-.one {
- grid-column: 1 / 3;
- grid-row: 1;
-}
-.two {
- grid-column: 2 / 4;
- grid-row: 1 / 3;
-}
-.three {
- grid-column: 1;
- grid-row: 2 / 5;
-}
-.four {
- grid-column: 3;
- grid-row: 3;
-}
-.five {
- grid-column: 2;
- grid-row: 4;
-}
-.six {
- grid-column: 3;
- grid-row: 4;
-}
-
-
-{{EmbedLiveSample("Un_exemple_simple", "100%", "440")}}
- -{{cssxref("<flex>")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Grid 2')}} | -{{Spec2("CSS Grid 2")}} | -Ajout des « sous-grilles » (subgrids). | -
| {{SpecName('CSS3 Grid')}} | -{{Spec2('CSS3 Grid')}} | -Définition initiale. | -
Le module CSS Grid layout (modèle de disposition en grille) est un module de la spécification CSS qui permet de créer des mises en page en divisant l'espace d'affichage en régions utilisables par une application ou en définissant des relations de taille, position et d'empilement entre les éléments HTML.
+ +Comme les tableaux, la grille permet d'aligner des éléments sous forme de colonnes et de lignes mais à la différence des tableaux, la grille n'a pas de structure de contenu. Ainsi, on peut créer de nombreuses mises en page qui n'auraient pas été possibles avec les tableaux. Ainsi, les éléments fils d'un conteneur en grille peuvent être positionnés afin qu'ils se chevauchent ou qu'ils se comportent comme des éléments positionnés.
+ +Dans l'exemple qui suit, on montre comment utiliser une grille avec trois pistes en colonnes pour laquelle les nouvelles lignes créées mesureront au moins 100 pixels et auront au plus la taille automatique (définie par leur contenu). Les éléments sont placés sur la grille grâce aux numéros des lignes horizontales et verticales.
+ + + +<div class="wrapper"> + <div class="one">Un</div> + <div class="two">Deux</div> + <div class="three">Trois</div> + <div class="four">Quatre</div> + <div class="five">Cinq</div> + <div class="six">Six</div> +</div>+ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 10px;
+ grid-auto-rows: minmax(100px, auto);
+}
+.one {
+ grid-column: 1 / 3;
+ grid-row: 1;
+}
+.two {
+ grid-column: 2 / 4;
+ grid-row: 1 / 3;
+}
+.three {
+ grid-column: 1;
+ grid-row: 2 / 5;
+}
+.four {
+ grid-column: 3;
+ grid-row: 3;
+}
+.five {
+ grid-column: 2;
+ grid-row: 4;
+}
+.six {
+ grid-column: 3;
+ grid-row: 4;
+}
+
+
+{{EmbedLiveSample("Un_exemple_simple", "100%", "440")}}
+ +{{cssxref("<flex>")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Grid 2')}} | +{{Spec2("CSS Grid 2")}} | +Ajout des « sous-grilles » (subgrids). | +
| {{SpecName('CSS3 Grid')}} | +{{Spec2('CSS3 Grid')}} | +Définition initiale. | +
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
- -Dans les articles précédents, on a vu comment placer des objets sur les lignes définies par les pistes de la grilles. On a également vu comment placer des objets sur des zones nommées. Dans ce guide, nous allons combiner ces deux concepts et apprendre à placer les objets sur des lignes avec des noms. Le nommage des lignes peut s'avérer très utile mais un aspect encore plus intéressant consiste à combiner les noms et les tailles de pistes. Cela sera plus clair lorsque nous aurons vu les différents exemples.
- -Lorsqu'on définit une grille avec grid-template-rows et grid-template-columns, on peut donner des noms aux lignes (toutes ou seulement quelques unes). Pour illustrer ce point, nous allons reprendre la disposition utilisée dans l'article sur le placement sur les lignes. Cette fois, nous allons utiliser des lignes avec des noms.
Lorsqu'on définit la grille, on nomme les lignes entre crochets. Ces noms peuvent être n'importe quelle valeur. Ici, on définit un nom pour le début et la fin du conteneur, pour les lignes et pour les colonnes. On définit les blocs du centres (ici content-start et content-end), à la fois pour les lignes et pour les colonnes. Il n'est pas nécessaire de nommer toutes les lignes de la grille, on peut très bien uniquement nommer celles qui sont importantes.
.wrapper {
- display: grid;
- grid-template-columns: [main-start] 1fr [content-start] 1fr [content-end] 1fr [main-end];
- grid-template-rows: [main-start] 100px [content-start] 100px [content-end] 100px [main-end];
-}
-
-
-Une fois que les lignes sont nommées, on peut utiliser ce nom plutôt que le numéro de ligne afin de placer les éléments.
- -.box1 {
- grid-column-start: main-start;
- grid-row-start: main-start;
- grid-row-end: main-end;
-}
-.box2 {
- grid-column-start: content-end;
- grid-row-start: main-start;
- grid-row-end: content-end;
-}
-.box3 {
- grid-column-start: content-start;
- grid-row-start: main-start;
-}
-.box4 {
- grid-column-start: content-start;
- grid-column-end: main-end;
- grid-row-start: content-end;
-}
-
-
-<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
{{EmbedLiveSample("Nommer_des_lignes_lorsqu'on_définit_une_grille", '500', '330')}}
- - -Tout le reste continue de fonctionner de la même façon. Vous pouvez aussi utiliser des noms et des numéros. Le nommage des lignes est utile lorsqu'on souhaite créer une disposition responsive où on redéfinit la grille plutôt que d'avoir à redéfinir la position du contenu en changeant les numéros de lignes dans les media queries.
- -On peut donner plusieurs noms à une ligne (par exemple une ligne qui décrirait la fin de la barre latérale et le début du contenu principal). Pour cela, à l'intérieur des crochets, on déclare les différents noms, séparés par un espace : [sidebar-end main-start]. On peut ensuite désigner la ligne par l'un de ces noms.
Plus haut, nous avons vu qu'il était possible de donner n'importe quel nom à une ligne. D'un point de vue technique, ce nom est un identifiant personnalisé (ou custom ident), c'est-à-dire un nom défini par l'auteur de la feuille de style. Pour être plus précis, ce nom ne doit pas reprendre les mots-clés qui apparaissent dans la spécification et ne doit pas être source de confusion (on évitera ainsi d'utiliser span). Les identifiants ne sont pas mis entre quotes.
Bien qu'on puisse choisir n'importe quel nom (avec les contraintes qu'on vient d'énoncer), si on utilise les suffixes -start et -end pour désigner les lignes qui entourent une zone (comme dans l'exemple ci-avant), la grille créera automatiquement une zone nommée avec le nom utilisé devant ces suffixes. Si on reprend l'exemple précédent où on utilise content-start et content-end pour les lignes et pour les colonnes, cela signifie qu'on a, implicitement, une zone de grille intitulée content qu'on peut également manipuler
On utilise les mêmes définitions qu'avant mais cette fois, nous allons placer un objet dans la zone intitulée content.
.wrapper {
- display: grid;
- grid-template-columns: [main-start] 1fr [content-start] 1fr [content-end] 1fr [main-end];
- grid-template-rows: [main-start] 100px [content-start] 100px [content-end] 100px [main-end];
-}
-.thing {
- grid-area: content;
-}
-
-
-<div class="wrapper"> - <div class="thing"> - Je suis dans une zone nommée content. - </div> -</div> -- -
{{EmbedLiveSample("Définir_des_zones_de_grilles_implicites_à_l'aide_de_lignes_nommées", '500', '330')}}
- -Il n'est pas nécessaire de définir l'emplacement de cette zone avec grid-template-areas car les lignes suffisent à créer la zone et à la placer.
Nous avons vu comment des lignes nommées permettaient de créer des zones nommées. Cela fonctionne également dans l'autre sens. Les zones nommées créent aussi des lignes nommées qui peuvent ensuite être utilisées pour placer les objets. Si on reprend l'exemple utilisé dans le guide sur les zones nommées, on peut utiliser les lignes créées implicitement pour voir comment cela fonctionne.
- -Dans cet exemple, on ajoute un élément div supplémentaire et on lui ajoute la classe overlay. On déclare des zones nommées à l'aide de grid-area puis on indique la disposition via la propriété grid-template-areas. Les noms utilisés pour les zones sont :
hdftmainsdCela crée implicitement les lignes et colonnes suivantes :
- -hd-starthd-endsd-startsd-endmain-startmain-endft-startft-endDans l'image qui suit, on peut voir l'emplacement de ces lignes. Certaines lignes peuvent avoir deux noms (par exemple, sd-end et main-start font référence à la même ligne verticale).

On peut positionner overlay grâce à ces lignes implicites, de la même façon qu'on aurait positionner un objet avec des lignes créées explicitement :
.wrapper {
- display: grid;
- grid-template-columns: repeat(9, 1fr);
- grid-auto-rows: minmax(100px, auto);
- grid-template-areas:
- "hd hd hd hd hd hd hd hd hd"
- "sd sd sd main main main main main main"
- "ft ft ft ft ft ft ft ft ft";
-}
-.header {
- grid-area: hd;
-}
-.footer {
- grid-area: ft;
-}
-.content {
- grid-area: main;
-}
-.sidebar {
- grid-area: sd;
-}
-.wrapper > div.overlay {
- z-index: 10;
- grid-column: main-start / main-end;
- grid-row: hd-start / ft-end;
- border: 4px solid rgb(92,148,13);
- background-color: rgba(92,148,13,.4);
- color: rgb(92,148,13);
- font-size: 150%;
-}
-
-
-<div class="wrapper"> - <div class="header">En-tête</div> - <div class="sidebar">Barre latérale</div> - <div class="content">Contenu</div> - <div class="footer">Pied de page</div> - <div class="overlay">Masque</div> -</div> -- -
{{EmbedLiveSample("Définir_des_lignes_implicites_à_l'aide_de_zones_nommées", '500', '330')}}
- -Grâce à tout ça, on voit qu'on peut créer des lignes à partir de zones nommées et créer des zones à partir de lignes nommées. Aussi, mieux vaut prendre le temps de réfléchir aux noms utilisés lorsqu'on définit un grille. En effet, plus les noms utilisés seront clairs, plus la maintenance et le travail d'équipe seront simplifiés.
- -repeat()Si vous souhaitez que chaque ligne ait un nom différent, il faudra alors définir la piste de façon détaillée et non utiliser la syntaxe avec repeat() car il faut préciser le nom de la ligne entre crochets lorsqu'on définit les pistes. Si vous utilisez la syntaxe avec repeat(), vous obtiendrez plusieurs lignes avec le même nom… ce qui peut également être utile.
Dans l'exemple qui suit, nous allons créer une grille avec douze colonnes de même largeur. Avant de définir la taille d'une piste pour la colonne (1fr), on définit un nom : [col-start]. Cela signifie qu'on aura une grille avec 12 colonnes, toutes intitulées col-start et qui mesureront chacune 1fr de large.
.wrapper {
- display: grid;
- grid-template-columns: repeat(12, [col-start] 1fr);
-}
-
-Une fois la grille créée, on peut y placer les objets. On a alors plusieurs lignes avec le nom col-start et si on place un objet après la ligne col-start, la grille utilisera la première ligne intitulée col-start (dans notre cas, c'est la ligne la plus à gauche). Pour indiquer une autre ligne, on utilisera le nom, suivi du numéro de cette ligne. Ainsi, pour placer un objet à partir de la première ligne jusqu'à la cinquième, on pourra utiliser :
.item1 {
- grid-column: col-start / col-start 5
-}
-
-
-On peut également utiliser le mot-clé span. Avec la règle suivante, le deuxième objet sera placé à partir de la septième ligne et occupera 3 lignes :
.item2 {
- grid-column: col-start 7 / span 3;
-}
-
-
-<div class="wrapper"> - <div class="item1">Je vais de col-start 1 à col-start 5</div> - <div class="item2">Je vais de col-start 7 et je m'étends sur 3 lignes</div> -</div>- -
{{EmbedLiveSample("une_grille_à_12_colonnes_avec_repeat", '500', '330')}}
- -Si vous observez cette disposition grâce à l'outil de mise en évidence des grilles dans Firefox, vous verrez les différentes lignes et le placement des éléments sur ces lignes :
- -
La syntaxe repeat() permet également d'utiliser une liste de plusieurs pistes et pas uniquement une seule piste. Dans la règle qui suit, on crée une grille composée de huit pistes qui commence par une colonne plus étroite (1fr), intitulée col1-start, et qui est suivie par une colonne plus large (3fr), intitulée col2-start.
.wrapper {
- grid-template-columns: repeat(4, [col1-start] 1fr [col2-start] 3fr);
-}
-
-
-Si on utilise repeat() et qu'on place deux lignes l'une à la suite de l'autre, ces lignes seront fusionnées et on aura le même résultat que si on avait donné plusieurs noms à un même ligne. La règle suivante permet de créer quatre pistes dont la largeur est 1fr, chacune avec un début et une fin.
.wrapper {
- grid-template-columns: repeat(4, [col-start] 1fr [col-end] );
-}
-
-
-Si on écrivait la même définition sans utiliser repeat(), on aurait la forme suivante :
.wrapper {
- grid-template-columns: [col-start] 1fr [col-end col-start] 1fr [col-end col-start] 1fr [col-end col-start] 1fr [col-end];
-}
-
-
-Si vous utilisez une liste de pistes, vous pouvez utiliser le mot-clé span pour indiquer le nombre de lignes à occuper mais aussi pour indiquer le nombre de lignes à occuper qui ont un nom donné.
.wrapper {
- display: grid;
- grid-template-columns: repeat(6, [col1-start] 1fr [col2-start] 3fr);
-}
-.item1 {
- grid-column: col1-start / col2-start 2
-}
-.item2 {
- grid-row: 2;
- grid-column: col1-start 2 / span 2 col1-start;
-}
-
-
-<div class="wrapper"> - <div class="item1">Je suis placé à partir de la première col1-start et jusqu'à la deuxième col2-start.</div> - <div class="item2">Je suis placé à partir de la deuxième col1-start et je m'étend sur deux lignes nommées col1-start</div> -</div> -- -
{{EmbedLiveSample('Définir_des_lignes_nommées_avec_une_liste_de_piste', '500', '330')}}
- -Avec ces trois derniers articles, nous avons vu de nombreuses façons qui permettaient de placer des objets sur une grille. Cela peut sembler un peu trop inutilement compliqué mais il faut garder à l'esprit que toutes ne sont pas obligatoirement nécessaires. Dans la pratique, utiliser des zones nommés pour des dispositions simples permet d'avoir une représentation visuelle simple et de déplacer les différents objets facilement sur la grille.
- -Si on travaille avec une disposition sur plusieurs colonnes (comme celles utilisées dans ces derniers exemples), les lignes nommées feront parfaitement l'affaire. Si vous prenez par exemple des frameworks tels que Foundation ou Bootstrap, ceux-ci fonctionnent sur une grille avec 12 colonnes. Le framework importe ensuite le code nécessaire aux différents calculs afin de s'assurer que l'ensemble des colonnes fasse 100%. En utilisant une grille CSS, le seule code nécessaire pour obtenir un tel framework se résume à :
- -.wrapper {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: repeat(12, [col-start] 1fr);
-}
-
-
-On peut alors utiliser ce modèle pour mettre en forme notre page. Par exemple, on peut créer une disposition avec trois colonnes, un en-tête et un pied de page avec les règles suivantes :
- - - -<div class="wrapper"> - <header class="main-header">Je suis l'en-tête</header> - <aside class="side1">Je suis la barre latérale 1</aside> - <article class="content">Je suis l'article</article> - <aside class="side2">Je suis la barre latérale 2</aside> - <footer class="main-footer">Je suis le pied de page</footer> -</div> -- -
Pour placer ces éléments, on utilise la grille de la façon suivante :
- -.main-header,
-.main-footer {
- grid-column: col-start / span 12;
-}
-.side1 {
- grid-column: col-start / span 3;
- grid-row: 2;
-}
-.content {
- grid-column: col-start 4 / span 6;
- grid-row: 2;
-}
-.side2 {
- grid-column: col-start 10 / span 3;
- grid-row: 2;
-}
-
-
-{{ EmbedLiveSample('cadre_d_une_grille_à_12_colonnes', '500', '330') }}
- -Là encore, l'outil de mise en évidence de la grille permet de voir comment le placement fonctionne :
- -
Et voilà tout ce dont on a besoin. Aucun calcul compliqué, la grille a automatiquement retiré la gouttière de 10 pixels avant d'affecter l'espace aux pistes qui mesurent 1fr. Lorsque vous construirez vos propres disposition, vous serez plus à l'aise avec la syntaxe et utiliserez les techniques qui sont les plus pertinentes pour vos projets. Essayez de construire cetaines dispositions classiques avec des différentes méthodes, vous deviendrez plus efficaces pour manipuler les grilles CSS. Dans le prochain guide, nous verrons comment la grille peut placer des objets automatiquement, sans même avoir besoin d'utiliser les propriétés de placement !
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/layout_using_named_grid_lines/index.md b/files/fr/web/css/css_grid_layout/layout_using_named_grid_lines/index.md new file mode 100644 index 0000000000..d31fb16a38 --- /dev/null +++ b/files/fr/web/css/css_grid_layout/layout_using_named_grid_lines/index.md @@ -0,0 +1,416 @@ +--- +title: Utiliser des lignes nommées sur une grille +slug: Web/CSS/CSS_Grid_Layout/Layout_using_Named_Grid_Lines +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guide +translation_of: Web/CSS/CSS_Grid_Layout/Layout_using_Named_Grid_Lines +original_slug: Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
+ +Dans les articles précédents, on a vu comment placer des objets sur les lignes définies par les pistes de la grilles. On a également vu comment placer des objets sur des zones nommées. Dans ce guide, nous allons combiner ces deux concepts et apprendre à placer les objets sur des lignes avec des noms. Le nommage des lignes peut s'avérer très utile mais un aspect encore plus intéressant consiste à combiner les noms et les tailles de pistes. Cela sera plus clair lorsque nous aurons vu les différents exemples.
+ +Lorsqu'on définit une grille avec grid-template-rows et grid-template-columns, on peut donner des noms aux lignes (toutes ou seulement quelques unes). Pour illustrer ce point, nous allons reprendre la disposition utilisée dans l'article sur le placement sur les lignes. Cette fois, nous allons utiliser des lignes avec des noms.
Lorsqu'on définit la grille, on nomme les lignes entre crochets. Ces noms peuvent être n'importe quelle valeur. Ici, on définit un nom pour le début et la fin du conteneur, pour les lignes et pour les colonnes. On définit les blocs du centres (ici content-start et content-end), à la fois pour les lignes et pour les colonnes. Il n'est pas nécessaire de nommer toutes les lignes de la grille, on peut très bien uniquement nommer celles qui sont importantes.
.wrapper {
+ display: grid;
+ grid-template-columns: [main-start] 1fr [content-start] 1fr [content-end] 1fr [main-end];
+ grid-template-rows: [main-start] 100px [content-start] 100px [content-end] 100px [main-end];
+}
+
+
+Une fois que les lignes sont nommées, on peut utiliser ce nom plutôt que le numéro de ligne afin de placer les éléments.
+ +.box1 {
+ grid-column-start: main-start;
+ grid-row-start: main-start;
+ grid-row-end: main-end;
+}
+.box2 {
+ grid-column-start: content-end;
+ grid-row-start: main-start;
+ grid-row-end: content-end;
+}
+.box3 {
+ grid-column-start: content-start;
+ grid-row-start: main-start;
+}
+.box4 {
+ grid-column-start: content-start;
+ grid-column-end: main-end;
+ grid-row-start: content-end;
+}
+
+
+<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
{{EmbedLiveSample("Nommer_des_lignes_lorsqu'on_définit_une_grille", '500', '330')}}
+ + +Tout le reste continue de fonctionner de la même façon. Vous pouvez aussi utiliser des noms et des numéros. Le nommage des lignes est utile lorsqu'on souhaite créer une disposition responsive où on redéfinit la grille plutôt que d'avoir à redéfinir la position du contenu en changeant les numéros de lignes dans les media queries.
+ +On peut donner plusieurs noms à une ligne (par exemple une ligne qui décrirait la fin de la barre latérale et le début du contenu principal). Pour cela, à l'intérieur des crochets, on déclare les différents noms, séparés par un espace : [sidebar-end main-start]. On peut ensuite désigner la ligne par l'un de ces noms.
Plus haut, nous avons vu qu'il était possible de donner n'importe quel nom à une ligne. D'un point de vue technique, ce nom est un identifiant personnalisé (ou custom ident), c'est-à-dire un nom défini par l'auteur de la feuille de style. Pour être plus précis, ce nom ne doit pas reprendre les mots-clés qui apparaissent dans la spécification et ne doit pas être source de confusion (on évitera ainsi d'utiliser span). Les identifiants ne sont pas mis entre quotes.
Bien qu'on puisse choisir n'importe quel nom (avec les contraintes qu'on vient d'énoncer), si on utilise les suffixes -start et -end pour désigner les lignes qui entourent une zone (comme dans l'exemple ci-avant), la grille créera automatiquement une zone nommée avec le nom utilisé devant ces suffixes. Si on reprend l'exemple précédent où on utilise content-start et content-end pour les lignes et pour les colonnes, cela signifie qu'on a, implicitement, une zone de grille intitulée content qu'on peut également manipuler
On utilise les mêmes définitions qu'avant mais cette fois, nous allons placer un objet dans la zone intitulée content.
.wrapper {
+ display: grid;
+ grid-template-columns: [main-start] 1fr [content-start] 1fr [content-end] 1fr [main-end];
+ grid-template-rows: [main-start] 100px [content-start] 100px [content-end] 100px [main-end];
+}
+.thing {
+ grid-area: content;
+}
+
+
+<div class="wrapper"> + <div class="thing"> + Je suis dans une zone nommée content. + </div> +</div> ++ +
{{EmbedLiveSample("Définir_des_zones_de_grilles_implicites_à_l'aide_de_lignes_nommées", '500', '330')}}
+ +Il n'est pas nécessaire de définir l'emplacement de cette zone avec grid-template-areas car les lignes suffisent à créer la zone et à la placer.
Nous avons vu comment des lignes nommées permettaient de créer des zones nommées. Cela fonctionne également dans l'autre sens. Les zones nommées créent aussi des lignes nommées qui peuvent ensuite être utilisées pour placer les objets. Si on reprend l'exemple utilisé dans le guide sur les zones nommées, on peut utiliser les lignes créées implicitement pour voir comment cela fonctionne.
+ +Dans cet exemple, on ajoute un élément div supplémentaire et on lui ajoute la classe overlay. On déclare des zones nommées à l'aide de grid-area puis on indique la disposition via la propriété grid-template-areas. Les noms utilisés pour les zones sont :
hdftmainsdCela crée implicitement les lignes et colonnes suivantes :
+ +hd-starthd-endsd-startsd-endmain-startmain-endft-startft-endDans l'image qui suit, on peut voir l'emplacement de ces lignes. Certaines lignes peuvent avoir deux noms (par exemple, sd-end et main-start font référence à la même ligne verticale).

On peut positionner overlay grâce à ces lignes implicites, de la même façon qu'on aurait positionner un objet avec des lignes créées explicitement :
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(9, 1fr);
+ grid-auto-rows: minmax(100px, auto);
+ grid-template-areas:
+ "hd hd hd hd hd hd hd hd hd"
+ "sd sd sd main main main main main main"
+ "ft ft ft ft ft ft ft ft ft";
+}
+.header {
+ grid-area: hd;
+}
+.footer {
+ grid-area: ft;
+}
+.content {
+ grid-area: main;
+}
+.sidebar {
+ grid-area: sd;
+}
+.wrapper > div.overlay {
+ z-index: 10;
+ grid-column: main-start / main-end;
+ grid-row: hd-start / ft-end;
+ border: 4px solid rgb(92,148,13);
+ background-color: rgba(92,148,13,.4);
+ color: rgb(92,148,13);
+ font-size: 150%;
+}
+
+
+<div class="wrapper"> + <div class="header">En-tête</div> + <div class="sidebar">Barre latérale</div> + <div class="content">Contenu</div> + <div class="footer">Pied de page</div> + <div class="overlay">Masque</div> +</div> ++ +
{{EmbedLiveSample("Définir_des_lignes_implicites_à_l'aide_de_zones_nommées", '500', '330')}}
+ +Grâce à tout ça, on voit qu'on peut créer des lignes à partir de zones nommées et créer des zones à partir de lignes nommées. Aussi, mieux vaut prendre le temps de réfléchir aux noms utilisés lorsqu'on définit un grille. En effet, plus les noms utilisés seront clairs, plus la maintenance et le travail d'équipe seront simplifiés.
+ +repeat()Si vous souhaitez que chaque ligne ait un nom différent, il faudra alors définir la piste de façon détaillée et non utiliser la syntaxe avec repeat() car il faut préciser le nom de la ligne entre crochets lorsqu'on définit les pistes. Si vous utilisez la syntaxe avec repeat(), vous obtiendrez plusieurs lignes avec le même nom… ce qui peut également être utile.
Dans l'exemple qui suit, nous allons créer une grille avec douze colonnes de même largeur. Avant de définir la taille d'une piste pour la colonne (1fr), on définit un nom : [col-start]. Cela signifie qu'on aura une grille avec 12 colonnes, toutes intitulées col-start et qui mesureront chacune 1fr de large.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(12, [col-start] 1fr);
+}
+
+Une fois la grille créée, on peut y placer les objets. On a alors plusieurs lignes avec le nom col-start et si on place un objet après la ligne col-start, la grille utilisera la première ligne intitulée col-start (dans notre cas, c'est la ligne la plus à gauche). Pour indiquer une autre ligne, on utilisera le nom, suivi du numéro de cette ligne. Ainsi, pour placer un objet à partir de la première ligne jusqu'à la cinquième, on pourra utiliser :
.item1 {
+ grid-column: col-start / col-start 5
+}
+
+
+On peut également utiliser le mot-clé span. Avec la règle suivante, le deuxième objet sera placé à partir de la septième ligne et occupera 3 lignes :
.item2 {
+ grid-column: col-start 7 / span 3;
+}
+
+
+<div class="wrapper"> + <div class="item1">Je vais de col-start 1 à col-start 5</div> + <div class="item2">Je vais de col-start 7 et je m'étends sur 3 lignes</div> +</div>+ +
{{EmbedLiveSample("une_grille_à_12_colonnes_avec_repeat", '500', '330')}}
+ +Si vous observez cette disposition grâce à l'outil de mise en évidence des grilles dans Firefox, vous verrez les différentes lignes et le placement des éléments sur ces lignes :
+ +
La syntaxe repeat() permet également d'utiliser une liste de plusieurs pistes et pas uniquement une seule piste. Dans la règle qui suit, on crée une grille composée de huit pistes qui commence par une colonne plus étroite (1fr), intitulée col1-start, et qui est suivie par une colonne plus large (3fr), intitulée col2-start.
.wrapper {
+ grid-template-columns: repeat(4, [col1-start] 1fr [col2-start] 3fr);
+}
+
+
+Si on utilise repeat() et qu'on place deux lignes l'une à la suite de l'autre, ces lignes seront fusionnées et on aura le même résultat que si on avait donné plusieurs noms à un même ligne. La règle suivante permet de créer quatre pistes dont la largeur est 1fr, chacune avec un début et une fin.
.wrapper {
+ grid-template-columns: repeat(4, [col-start] 1fr [col-end] );
+}
+
+
+Si on écrivait la même définition sans utiliser repeat(), on aurait la forme suivante :
.wrapper {
+ grid-template-columns: [col-start] 1fr [col-end col-start] 1fr [col-end col-start] 1fr [col-end col-start] 1fr [col-end];
+}
+
+
+Si vous utilisez une liste de pistes, vous pouvez utiliser le mot-clé span pour indiquer le nombre de lignes à occuper mais aussi pour indiquer le nombre de lignes à occuper qui ont un nom donné.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(6, [col1-start] 1fr [col2-start] 3fr);
+}
+.item1 {
+ grid-column: col1-start / col2-start 2
+}
+.item2 {
+ grid-row: 2;
+ grid-column: col1-start 2 / span 2 col1-start;
+}
+
+
+<div class="wrapper"> + <div class="item1">Je suis placé à partir de la première col1-start et jusqu'à la deuxième col2-start.</div> + <div class="item2">Je suis placé à partir de la deuxième col1-start et je m'étend sur deux lignes nommées col1-start</div> +</div> ++ +
{{EmbedLiveSample('Définir_des_lignes_nommées_avec_une_liste_de_piste', '500', '330')}}
+ +Avec ces trois derniers articles, nous avons vu de nombreuses façons qui permettaient de placer des objets sur une grille. Cela peut sembler un peu trop inutilement compliqué mais il faut garder à l'esprit que toutes ne sont pas obligatoirement nécessaires. Dans la pratique, utiliser des zones nommés pour des dispositions simples permet d'avoir une représentation visuelle simple et de déplacer les différents objets facilement sur la grille.
+ +Si on travaille avec une disposition sur plusieurs colonnes (comme celles utilisées dans ces derniers exemples), les lignes nommées feront parfaitement l'affaire. Si vous prenez par exemple des frameworks tels que Foundation ou Bootstrap, ceux-ci fonctionnent sur une grille avec 12 colonnes. Le framework importe ensuite le code nécessaire aux différents calculs afin de s'assurer que l'ensemble des colonnes fasse 100%. En utilisant une grille CSS, le seule code nécessaire pour obtenir un tel framework se résume à :
+ +.wrapper {
+ display: grid;
+ grid-gap: 10px;
+ grid-template-columns: repeat(12, [col-start] 1fr);
+}
+
+
+On peut alors utiliser ce modèle pour mettre en forme notre page. Par exemple, on peut créer une disposition avec trois colonnes, un en-tête et un pied de page avec les règles suivantes :
+ + + +<div class="wrapper"> + <header class="main-header">Je suis l'en-tête</header> + <aside class="side1">Je suis la barre latérale 1</aside> + <article class="content">Je suis l'article</article> + <aside class="side2">Je suis la barre latérale 2</aside> + <footer class="main-footer">Je suis le pied de page</footer> +</div> ++ +
Pour placer ces éléments, on utilise la grille de la façon suivante :
+ +.main-header,
+.main-footer {
+ grid-column: col-start / span 12;
+}
+.side1 {
+ grid-column: col-start / span 3;
+ grid-row: 2;
+}
+.content {
+ grid-column: col-start 4 / span 6;
+ grid-row: 2;
+}
+.side2 {
+ grid-column: col-start 10 / span 3;
+ grid-row: 2;
+}
+
+
+{{ EmbedLiveSample('cadre_d_une_grille_à_12_colonnes', '500', '330') }}
+ +Là encore, l'outil de mise en évidence de la grille permet de voir comment le placement fonctionne :
+ +
Et voilà tout ce dont on a besoin. Aucun calcul compliqué, la grille a automatiquement retiré la gouttière de 10 pixels avant d'affecter l'espace aux pistes qui mesurent 1fr. Lorsque vous construirez vos propres disposition, vous serez plus à l'aise avec la syntaxe et utiliserez les techniques qui sont les plus pertinentes pour vos projets. Essayez de construire cetaines dispositions classiques avec des différentes méthodes, vous deviendrez plus efficaces pour manipuler les grilles CSS. Dans le prochain guide, nous verrons comment la grille peut placer des objets automatiquement, sans même avoir besoin d'utiliser les propriétés de placement !
{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/line-based_placement_with_css_grid/index.html b/files/fr/web/css/css_grid_layout/line-based_placement_with_css_grid/index.html deleted file mode 100644 index 08aff7df63..0000000000 --- a/files/fr/web/css/css_grid_layout/line-based_placement_with_css_grid/index.html +++ /dev/null @@ -1,583 +0,0 @@ ---- -title: Placer les éléments sur les lignes d'une grille CSS -slug: Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid -tags: - - CSS - - CSS Grids - - Grilles CSS - - Guides - - Intermédiaire -translation_of: Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid -original_slug: Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS ---- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_concepts_de_base", "Web/CSS/CSS_Grid_Layout/D%C3%A9finir_des_zones_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
- -Dans l'article sur les concepts de base, nous avons vu comment positionner des éléments en utilisant des numéros de lignes. Nous allons désormais étudier cette fonctionnalité de positionnement plus en détail.
- -Commencer par utiliser les lignes numérotées est plutôt logique car toutes les grilles possèdent des lignes numérotées. Ces lignes forment les colonnes et les lignes horizontales de la grille, elles sont numérotées à partir de 1. On notera aussi que la numérotation des lignes varie selon le mode d'écriture du document. Dans un document écrit de gauche à droite comme le français, la ligne numéro 1 est située à l'extrêmité gauche de la grille. Si l'écriture va de droite à gauche, la ligne numéro 1 sera celle qui est située le plus à droite. Nous explorerons ces notions sur les modes d'écriture dans un prochain guide.
- -Dans cet exemple simple, on a une grille avec trois pistes pour les colonnes et trois pistes pour les lignes, on a donc 4 lignes pour chaque dimension.
- -Dans le conteneur, on a quatre éléments fils. Si aucune autre règle de placement n'est indiquée, ces éléments seront placés automatiquement et la grille remplira les quatre premières cellules. Si vous utilisez l'outil de mise en évidence des grilles de Firefox, vous pouvez voir les colonnes et les lignes horizontales formées par la grille.
- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(3, 100px);
-}
-
-
-<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
{{EmbedLiveSample('Un_exemple_simple', '300', '330')}}
- -On peut placer les éléments d'une grille en utilisant les numéros de lignes qui définissent la zone allouée à l'élément. Si on souhaite que le premier élément commence tout à gauche et occupe une colonne, qu'il commence sur la première ligne et s'étale sur quatre lignes, on pourra utiliser les règles suivantes :
- -.box1 {
- grid-column-start: 1;
- grid-column-end: 2;
- grid-row-start: 1;
- grid-row-end: 4;
-}
-
-
-Lorsqu'on positionne des objets sur la grille, les autres continueront d'être placés selon les règles de placement automatique. Nous verrons ces règles dans un prochain guide mais grâce à cet exemple, on peut voir que les cellules vides sont remplies au fur et à mesure par les objets qui ne sont pas placés explicitement.
- -On peut placer chacun des éléments individuellement et on peut également choisir de laisser certaines cellules vides. Un des avantages de la grille CSS est qu'on peut créer des espaces sans avoir à utiliser des marges ou d'autres méthodes de contournement.
- - - -<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box2 {
- grid-column-start: 3;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-.box3 {
- grid-column-start: 2;
- grid-column-end: 3;
- grid-row-start: 1;
- grid-row-end: 2;
-}
-.box4 {
- grid-column-start: 2;
- grid-column-end: 4;
- grid-row-start: 3;
- grid-row-end: 4;
-}
-
-
-{{EmbedLiveSample("Positionner_les_éléments_d'une_grille_grâce_au_numéro_de_ligne", '300', '330')}}
- - -grid-column et grid-rowOn a écrit beaucoup de règles pour positionner chaque élément. Heureusement, il existe des propriétés raccourcies qui permettent d'avoir une syntaxe plus concise. Les propriétés {{cssxref("grid-column-start")}} et {{cssxref("grid-column-end")}} peuvent être combinées pour former la propriété raccourcie {{cssxref("grid-column")}} et de la même façon, {{cssxref("grid-row-start")}} et {{cssxref("grid-row-end")}} peuvent être synthétisées avec {{cssxref("grid-row")}}.
- - - -<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box1 {
- grid-column: 1 / 2;
- grid-row: 1 / 4;
-}
-.box2 {
- grid-column: 3 / 4;
- grid-row: 1 / 3;
-}
-.box3 {
- grid-column: 2 / 3;
- grid-row: 1 / 2;
-}
-.box4 {
- grid-column: 2 / 4;
- grid-row: 3 / 4;
-}
-
-
-{{EmbedLiveSample('Les_propriétés_raccourcies_grid-column_et_grid-row', '300', '330')}}
- -Dans les exemples précédents, on a défini chaque ligne et colonne de fin pour chaque élément. Mais si en pratique, on souhaite qu'un élément n'occupe qu'une seule piste, on peut omettre grid-column-end ou grid-row-end. Par défaut, les éléments occupent une seule piste. Notre exemple initial, avec les propriétés détaillées peut donc être réécrit de cette façon :
<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box1 {
- grid-column-start: 1;
- grid-row-start: 1;
- grid-row-end: 4;
-}
-.box2 {
- grid-column-start: 3;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-.box3 {
- grid-column-start: 2;
- grid-row-start: 1;
-}
-.box4 {
- grid-column-start: 2;
- grid-column-end: 4;
- grid-row-start: 3;
-}
-
-
-{{EmbedLiveSample('La_taille_par_défaut', '300', '330')}}
- -Avec les propriétés raccourcies, on obtient le code suivant (sans aucune barre oblique ni seconde valeur pour les éléments qui n'occupent qu'une seule piste).
- - - -<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box1 {
- grid-column: 1 ;
- grid-row: 1 / 4;
-}
-.box2 {
- grid-column: 3 ;
- grid-row: 1 / 3;
-}
-.box3 {
- grid-column: 2 ;
- grid-row: 1 ;
-}
-.box4 {
- grid-column: 2 / 4;
- grid-row: 3 ;
-}
-
-
-{{EmbedLiveSample('Tailles_par_défaut_avec_les_propriétés_raccourcies', '300', '330')}}
- -grid-areaOn peut aller plus loin et définir une zone pour chaque élément grâce à une seule propriété : {{cssxref("grid-area")}}. Cette propriété raccourcie permet d'utiliser les valeurs des propriétés suivantes (dans cet ordre) :
- -grid-row-startgrid-column-startgrid-row-endgrid-column-end<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box1 {
- grid-area: 1 / 1 / 4 / 2;
-}
-.box2 {
- grid-area: 1 / 3 / 3 / 4;
-}
-.box3 {
- grid-area: 1 / 2 / 2 / 3;
-}
-.box4 {
- grid-area: 3 / 2 / 4 / 4;
-}
-
-
-{{EmbedLiveSample('La_propriété_grid-area', '300', '330')}}
- -L'ordre des valeurs utilisé pour grid-area peut sembler un peu étrange quand on connaît celui utilisé par les propriétés raccourcies pour les marges (margin) et le remplissage (padding). Cet ordre s'explique car les grilles CSS fonctionnent avec les différents modes d'écriture et on utilise des propriétés et des valeurs logiques plutôt que des propriétés et des valeurs physiques. Nous aborderons ce point dans un prochain article mais il faut retenir ici que l'ordre des valeurs correspond aux directions logiques suivantes :
block-startblock-endinline-startinline-endOn travaille ici en anglais ou en français, une langue qui s'écrit de gauche à droite. La ligne physique correspondant à la ligne logique block-start est donc la ligne en haut du conteneur, block-end correspond à la ligne en bas du conteneur, inline-start correspond à la colonne la plus à gauche (le point de départ de l'écriture pour une ligne) et inline-end correspond à la dernière colonne, celle qui est située à l'extrémité droite de la grille.
Lorsqu'on définit une zone d'une grille grâce à la propriété grid-area, on commence par définir les lignes de « début » : block-start et inline-start puis les lignes de « fin » avec block-end et inline-end. Cela peut paraître étrange quand on est habitué à manipuler des propriétés physiques qui progressent dans le sens horaire : haut, droit, bas, gauche mais cet ordre paraît plus pertinent quand on considère que les sites web peuvent être multi-directionnels selon le mode d'écriture.
On peut également compter à l'envers, à partir des lignes de fin. Pour un document écrit en français, cela correspond à la colonne la plus à droite et à la ligne la plus basse. Pour faire référence à la dernière ligne, on peut utiliser la valeur -1 et on peut compter à rebours au fur et à mesure de cette façon (ainsi, -2 fait référence à l'avant-dernière ligne). Attention, ici, la dernière ligne correspond à la dernière ligne explicite de la grille, telle qu'elle est définie par grid-template-columns et grid-template-rows. Ce comptage ne prend pas en compte les lignes ou les colonnes qui sont ajoutées implicitement dans la grille.
Dans le prochain exemple, on renverse la disposition de la grille en travaillant à partir du bas et de la droite.
- - - -<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box1 {
- grid-column-start: -1;
- grid-column-end: -2;
- grid-row-start: -1;
- grid-row-end: -4;
-}
-.box2 {
- grid-column-start: -3;
- grid-column-end: -4;
- grid-row-start: -1;
- grid-row-end: -3;
-}
-.box3 {
- grid-column-start: -2;
- grid-column-end: -3;
- grid-row-start: -1;
- grid-row-end: -2;
-}
-.box4 {
- grid-column-start: -2;
- grid-column-end: -4;
- grid-row-start: -3;
- grid-row-end: -4;
-}
-
-
-{{EmbedLiveSample('Compter_à_rebours', '300', '330')}}
- -Étant donné qu'on peut utiliser les numéros de lignes pour la première et la dernière, on peut facilement étirer un élément pour que celui-ci occupe toute la largeur et/ou toute la hauteur de la grille avec :
- -.item {
- grid-column: 1 / -1;
-}
-
-
-La spécification pour les grilles CSS permet également d'ajouter des espaces (« gouttières ») entre les colonnes et entre les lignes grâce aux propriétés {{cssxref("grid-column-gap")}} et {{cssxref("row-gap")}}. Celles-ci permettent de définir un espace, de la même façon que la propriété {{cssxref("column-gap")}} permet d'obtenir un espace pour un mode de disposition avec plusieurs colonnes.
- -Note : Les anciens navigateurs utilisent {{cssxref("column-gap")}}, {{cssxref("row-gap")}}, {{cssxref("gap")}} avec le préfixe grid- soit : {{cssxref("grid-column-gap")}}, {{cssxref("row-gap")}} et {{cssxref("gap")}}.
Les navigateurs actuels retirent progressivement ce préfixe (la version préfixée sera maintenue sous forme d'alias). À l'heure actuelle, certains navigateurs ne prennent pas encore la version sans préfixe et c'est pourquoi certains exemples de ce guide continuent d'utiliser les versions préfixées avec grid-.
Les gouttières apparaissent uniquement entre les pistes de la grille, elles n'ajoutent pas d'espace en haut, en bas, à gauche ou à droite du conteneur. Voyons comment ajouter des espaces sur l'exemple précédent grâce à ces propriétés :
- - - -<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box1 {
- grid-column: 1 ;
- grid-row: 1 / 4;
-}
-.box2 {
- grid-column: 3 ;
- grid-row: 1 / 3;
-}
-.box3 {
- grid-column: 2 ;
- grid-row: 1 ;
-}
-.box4 {
- grid-column: 2 / 4;
- grid-row: 3 ;
-}
-.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(3, 100px);
- grid-column-gap: 20px;
- grid-row-gap: 1em;
-}
-
-
-{{EmbedLiveSample('Les_gouttières', '300', '350') }}
- -Les deux propriétés que nous venons de voir peuvent être synthétisées grâce à la propriété raccourcie {{cssxref("gap")}}. Si on fournit une seule valeur, celle-ci s'appliquera pour les espaces entre les colonnes et entre les lignes. Avec deux valeurs, la première sera utilisée pour grid-row-gap et la seconde pour grid-column-gap.
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(3, 100px);
- grid-gap: 1em 20px;
-}
-
-
-Par rapport au positionnement sur les lignes, les gouttières agissent comme si la ligne avait gagné en largeur ou en hauteur. Tout ce qui commence sur une ligne commencera après cet espace et on ne peut placer aucun élément dans cette gouttière. Aussi, si on veut qu'une gouttière agisse comme une piste classique dans laquelle on peut placer des objets, il suffira de définir une nouvelle piste plutôt qu'une gouttière.
- -spanOn a vu comment indiquer la ligne de début et la ligne de fin avec des numéros. Il est aussi possible de définir la taille d'un élément en indiquant le numéro de la ligne de départ et le nombre de pistes sur lequel s'étale l'élément.
- - - -<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> - <div class="box4">Quatre</div> -</div> -- -
.box1 {
- grid-column: 1;
- grid-row: 1 / span 3;
-}
-.box2 {
- grid-column: 3;
- grid-row: 1 / span 2;
-}
-.box3 {
- grid-column: 2;
- grid-row: 1;
-}
-.box4 {
- grid-column: 2 / span 2;
- grid-row: 3;
-}
-
-
-{{EmbedLiveSample('Utiliser_le_mot-clé_span', '300', '330')}}
- -Le mot-clé span peut également être utilisé dans les valeurs des propriétés grid-row-start/grid-row-end et grid-column-start/grid-column-end. Les deux fragments de code qui suivent créeront la même zone. Dans le premier, on indique la ligne de début puis la ligne de fin en indiquant que l'élément occupe trois lignes. La zone commencera donc sur la première ligne et occupera 3 lignes, jusqu'à la ligne 4.
.box1 {
- grid-column-start: 1;
- grid-row-start: 1;
- grid-row-end: span 3;
-}
-
-
-Dans le deuxième exemple, on indique la ligne de fin et le nombre de lignes occupées par l'élément avec span 3. Cela signifie que l'élément partira de la ligne 4 et occupera 3 lignes jusqu'à la ligne 1.
.box1 {
- grid-column-start: 1;
- grid-row-start: span 3;
- grid-row-end: 4;
-}
-
-
-Pour vous familiariser avec le positionnement des éléments d'une grille en utilisant les lignes, vous pouvez essayer de construire certaines dispositions fréquemment utilisées en plaçant des éléments sur des grilles avec plus ou moins de pistes. Il faut garder à l'esprit que, lorsqu'on ne place pas explicitement tous les éléments, les éléments restants seront positionnés automatiquement. Cela peut tout à fait être l'objectif recherché mais si ce n'est pas le cas et que vous voyez un élément à un endroit inapproprié, vérifiez que vous lui avez affecté une position au sein de la grille.
- -Il faut aussi se rappeler que lorsqu'on place les éléments explicitement sur la grille, ceux-ci peuvent se chevaucher. Cela permet d'obtenir certains effets mais attention aux erreurs lorsque c'est la mauvaise ligne de début ou de fin qui est indiquée. Pour régler ce problème, on peut utiliser l'outil de mise en évidence de la grille CSS dans Firefox pour analyser une grille compliquée.
- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_concepts_de_base", "Web/CSS/CSS_Grid_Layout/D%C3%A9finir_des_zones_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/line-based_placement_with_css_grid/index.md b/files/fr/web/css/css_grid_layout/line-based_placement_with_css_grid/index.md new file mode 100644 index 0000000000..08aff7df63 --- /dev/null +++ b/files/fr/web/css/css_grid_layout/line-based_placement_with_css_grid/index.md @@ -0,0 +1,583 @@ +--- +title: Placer les éléments sur les lignes d'une grille CSS +slug: Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guides + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid +original_slug: Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_concepts_de_base", "Web/CSS/CSS_Grid_Layout/D%C3%A9finir_des_zones_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
+ +Dans l'article sur les concepts de base, nous avons vu comment positionner des éléments en utilisant des numéros de lignes. Nous allons désormais étudier cette fonctionnalité de positionnement plus en détail.
+ +Commencer par utiliser les lignes numérotées est plutôt logique car toutes les grilles possèdent des lignes numérotées. Ces lignes forment les colonnes et les lignes horizontales de la grille, elles sont numérotées à partir de 1. On notera aussi que la numérotation des lignes varie selon le mode d'écriture du document. Dans un document écrit de gauche à droite comme le français, la ligne numéro 1 est située à l'extrêmité gauche de la grille. Si l'écriture va de droite à gauche, la ligne numéro 1 sera celle qui est située le plus à droite. Nous explorerons ces notions sur les modes d'écriture dans un prochain guide.
+ +Dans cet exemple simple, on a une grille avec trois pistes pour les colonnes et trois pistes pour les lignes, on a donc 4 lignes pour chaque dimension.
+ +Dans le conteneur, on a quatre éléments fils. Si aucune autre règle de placement n'est indiquée, ces éléments seront placés automatiquement et la grille remplira les quatre premières cellules. Si vous utilisez l'outil de mise en évidence des grilles de Firefox, vous pouvez voir les colonnes et les lignes horizontales formées par la grille.
+ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: repeat(3, 100px);
+}
+
+
+<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
{{EmbedLiveSample('Un_exemple_simple', '300', '330')}}
+ +On peut placer les éléments d'une grille en utilisant les numéros de lignes qui définissent la zone allouée à l'élément. Si on souhaite que le premier élément commence tout à gauche et occupe une colonne, qu'il commence sur la première ligne et s'étale sur quatre lignes, on pourra utiliser les règles suivantes :
+ +.box1 {
+ grid-column-start: 1;
+ grid-column-end: 2;
+ grid-row-start: 1;
+ grid-row-end: 4;
+}
+
+
+Lorsqu'on positionne des objets sur la grille, les autres continueront d'être placés selon les règles de placement automatique. Nous verrons ces règles dans un prochain guide mais grâce à cet exemple, on peut voir que les cellules vides sont remplies au fur et à mesure par les objets qui ne sont pas placés explicitement.
+ +On peut placer chacun des éléments individuellement et on peut également choisir de laisser certaines cellules vides. Un des avantages de la grille CSS est qu'on peut créer des espaces sans avoir à utiliser des marges ou d'autres méthodes de contournement.
+ + + +<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box2 {
+ grid-column-start: 3;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+.box3 {
+ grid-column-start: 2;
+ grid-column-end: 3;
+ grid-row-start: 1;
+ grid-row-end: 2;
+}
+.box4 {
+ grid-column-start: 2;
+ grid-column-end: 4;
+ grid-row-start: 3;
+ grid-row-end: 4;
+}
+
+
+{{EmbedLiveSample("Positionner_les_éléments_d'une_grille_grâce_au_numéro_de_ligne", '300', '330')}}
+ + +grid-column et grid-rowOn a écrit beaucoup de règles pour positionner chaque élément. Heureusement, il existe des propriétés raccourcies qui permettent d'avoir une syntaxe plus concise. Les propriétés {{cssxref("grid-column-start")}} et {{cssxref("grid-column-end")}} peuvent être combinées pour former la propriété raccourcie {{cssxref("grid-column")}} et de la même façon, {{cssxref("grid-row-start")}} et {{cssxref("grid-row-end")}} peuvent être synthétisées avec {{cssxref("grid-row")}}.
+ + + +<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box1 {
+ grid-column: 1 / 2;
+ grid-row: 1 / 4;
+}
+.box2 {
+ grid-column: 3 / 4;
+ grid-row: 1 / 3;
+}
+.box3 {
+ grid-column: 2 / 3;
+ grid-row: 1 / 2;
+}
+.box4 {
+ grid-column: 2 / 4;
+ grid-row: 3 / 4;
+}
+
+
+{{EmbedLiveSample('Les_propriétés_raccourcies_grid-column_et_grid-row', '300', '330')}}
+ +Dans les exemples précédents, on a défini chaque ligne et colonne de fin pour chaque élément. Mais si en pratique, on souhaite qu'un élément n'occupe qu'une seule piste, on peut omettre grid-column-end ou grid-row-end. Par défaut, les éléments occupent une seule piste. Notre exemple initial, avec les propriétés détaillées peut donc être réécrit de cette façon :
<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box1 {
+ grid-column-start: 1;
+ grid-row-start: 1;
+ grid-row-end: 4;
+}
+.box2 {
+ grid-column-start: 3;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+.box3 {
+ grid-column-start: 2;
+ grid-row-start: 1;
+}
+.box4 {
+ grid-column-start: 2;
+ grid-column-end: 4;
+ grid-row-start: 3;
+}
+
+
+{{EmbedLiveSample('La_taille_par_défaut', '300', '330')}}
+ +Avec les propriétés raccourcies, on obtient le code suivant (sans aucune barre oblique ni seconde valeur pour les éléments qui n'occupent qu'une seule piste).
+ + + +<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box1 {
+ grid-column: 1 ;
+ grid-row: 1 / 4;
+}
+.box2 {
+ grid-column: 3 ;
+ grid-row: 1 / 3;
+}
+.box3 {
+ grid-column: 2 ;
+ grid-row: 1 ;
+}
+.box4 {
+ grid-column: 2 / 4;
+ grid-row: 3 ;
+}
+
+
+{{EmbedLiveSample('Tailles_par_défaut_avec_les_propriétés_raccourcies', '300', '330')}}
+ +grid-areaOn peut aller plus loin et définir une zone pour chaque élément grâce à une seule propriété : {{cssxref("grid-area")}}. Cette propriété raccourcie permet d'utiliser les valeurs des propriétés suivantes (dans cet ordre) :
+ +grid-row-startgrid-column-startgrid-row-endgrid-column-end<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box1 {
+ grid-area: 1 / 1 / 4 / 2;
+}
+.box2 {
+ grid-area: 1 / 3 / 3 / 4;
+}
+.box3 {
+ grid-area: 1 / 2 / 2 / 3;
+}
+.box4 {
+ grid-area: 3 / 2 / 4 / 4;
+}
+
+
+{{EmbedLiveSample('La_propriété_grid-area', '300', '330')}}
+ +L'ordre des valeurs utilisé pour grid-area peut sembler un peu étrange quand on connaît celui utilisé par les propriétés raccourcies pour les marges (margin) et le remplissage (padding). Cet ordre s'explique car les grilles CSS fonctionnent avec les différents modes d'écriture et on utilise des propriétés et des valeurs logiques plutôt que des propriétés et des valeurs physiques. Nous aborderons ce point dans un prochain article mais il faut retenir ici que l'ordre des valeurs correspond aux directions logiques suivantes :
block-startblock-endinline-startinline-endOn travaille ici en anglais ou en français, une langue qui s'écrit de gauche à droite. La ligne physique correspondant à la ligne logique block-start est donc la ligne en haut du conteneur, block-end correspond à la ligne en bas du conteneur, inline-start correspond à la colonne la plus à gauche (le point de départ de l'écriture pour une ligne) et inline-end correspond à la dernière colonne, celle qui est située à l'extrémité droite de la grille.
Lorsqu'on définit une zone d'une grille grâce à la propriété grid-area, on commence par définir les lignes de « début » : block-start et inline-start puis les lignes de « fin » avec block-end et inline-end. Cela peut paraître étrange quand on est habitué à manipuler des propriétés physiques qui progressent dans le sens horaire : haut, droit, bas, gauche mais cet ordre paraît plus pertinent quand on considère que les sites web peuvent être multi-directionnels selon le mode d'écriture.
On peut également compter à l'envers, à partir des lignes de fin. Pour un document écrit en français, cela correspond à la colonne la plus à droite et à la ligne la plus basse. Pour faire référence à la dernière ligne, on peut utiliser la valeur -1 et on peut compter à rebours au fur et à mesure de cette façon (ainsi, -2 fait référence à l'avant-dernière ligne). Attention, ici, la dernière ligne correspond à la dernière ligne explicite de la grille, telle qu'elle est définie par grid-template-columns et grid-template-rows. Ce comptage ne prend pas en compte les lignes ou les colonnes qui sont ajoutées implicitement dans la grille.
Dans le prochain exemple, on renverse la disposition de la grille en travaillant à partir du bas et de la droite.
+ + + +<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box1 {
+ grid-column-start: -1;
+ grid-column-end: -2;
+ grid-row-start: -1;
+ grid-row-end: -4;
+}
+.box2 {
+ grid-column-start: -3;
+ grid-column-end: -4;
+ grid-row-start: -1;
+ grid-row-end: -3;
+}
+.box3 {
+ grid-column-start: -2;
+ grid-column-end: -3;
+ grid-row-start: -1;
+ grid-row-end: -2;
+}
+.box4 {
+ grid-column-start: -2;
+ grid-column-end: -4;
+ grid-row-start: -3;
+ grid-row-end: -4;
+}
+
+
+{{EmbedLiveSample('Compter_à_rebours', '300', '330')}}
+ +Étant donné qu'on peut utiliser les numéros de lignes pour la première et la dernière, on peut facilement étirer un élément pour que celui-ci occupe toute la largeur et/ou toute la hauteur de la grille avec :
+ +.item {
+ grid-column: 1 / -1;
+}
+
+
+La spécification pour les grilles CSS permet également d'ajouter des espaces (« gouttières ») entre les colonnes et entre les lignes grâce aux propriétés {{cssxref("grid-column-gap")}} et {{cssxref("row-gap")}}. Celles-ci permettent de définir un espace, de la même façon que la propriété {{cssxref("column-gap")}} permet d'obtenir un espace pour un mode de disposition avec plusieurs colonnes.
+ +Note : Les anciens navigateurs utilisent {{cssxref("column-gap")}}, {{cssxref("row-gap")}}, {{cssxref("gap")}} avec le préfixe grid- soit : {{cssxref("grid-column-gap")}}, {{cssxref("row-gap")}} et {{cssxref("gap")}}.
Les navigateurs actuels retirent progressivement ce préfixe (la version préfixée sera maintenue sous forme d'alias). À l'heure actuelle, certains navigateurs ne prennent pas encore la version sans préfixe et c'est pourquoi certains exemples de ce guide continuent d'utiliser les versions préfixées avec grid-.
Les gouttières apparaissent uniquement entre les pistes de la grille, elles n'ajoutent pas d'espace en haut, en bas, à gauche ou à droite du conteneur. Voyons comment ajouter des espaces sur l'exemple précédent grâce à ces propriétés :
+ + + +<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box1 {
+ grid-column: 1 ;
+ grid-row: 1 / 4;
+}
+.box2 {
+ grid-column: 3 ;
+ grid-row: 1 / 3;
+}
+.box3 {
+ grid-column: 2 ;
+ grid-row: 1 ;
+}
+.box4 {
+ grid-column: 2 / 4;
+ grid-row: 3 ;
+}
+.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: repeat(3, 100px);
+ grid-column-gap: 20px;
+ grid-row-gap: 1em;
+}
+
+
+{{EmbedLiveSample('Les_gouttières', '300', '350') }}
+ +Les deux propriétés que nous venons de voir peuvent être synthétisées grâce à la propriété raccourcie {{cssxref("gap")}}. Si on fournit une seule valeur, celle-ci s'appliquera pour les espaces entre les colonnes et entre les lignes. Avec deux valeurs, la première sera utilisée pour grid-row-gap et la seconde pour grid-column-gap.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-rows: repeat(3, 100px);
+ grid-gap: 1em 20px;
+}
+
+
+Par rapport au positionnement sur les lignes, les gouttières agissent comme si la ligne avait gagné en largeur ou en hauteur. Tout ce qui commence sur une ligne commencera après cet espace et on ne peut placer aucun élément dans cette gouttière. Aussi, si on veut qu'une gouttière agisse comme une piste classique dans laquelle on peut placer des objets, il suffira de définir une nouvelle piste plutôt qu'une gouttière.
+ +spanOn a vu comment indiquer la ligne de début et la ligne de fin avec des numéros. Il est aussi possible de définir la taille d'un élément en indiquant le numéro de la ligne de départ et le nombre de pistes sur lequel s'étale l'élément.
+ + + +<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> + <div class="box4">Quatre</div> +</div> ++ +
.box1 {
+ grid-column: 1;
+ grid-row: 1 / span 3;
+}
+.box2 {
+ grid-column: 3;
+ grid-row: 1 / span 2;
+}
+.box3 {
+ grid-column: 2;
+ grid-row: 1;
+}
+.box4 {
+ grid-column: 2 / span 2;
+ grid-row: 3;
+}
+
+
+{{EmbedLiveSample('Utiliser_le_mot-clé_span', '300', '330')}}
+ +Le mot-clé span peut également être utilisé dans les valeurs des propriétés grid-row-start/grid-row-end et grid-column-start/grid-column-end. Les deux fragments de code qui suivent créeront la même zone. Dans le premier, on indique la ligne de début puis la ligne de fin en indiquant que l'élément occupe trois lignes. La zone commencera donc sur la première ligne et occupera 3 lignes, jusqu'à la ligne 4.
.box1 {
+ grid-column-start: 1;
+ grid-row-start: 1;
+ grid-row-end: span 3;
+}
+
+
+Dans le deuxième exemple, on indique la ligne de fin et le nombre de lignes occupées par l'élément avec span 3. Cela signifie que l'élément partira de la ligne 4 et occupera 3 lignes jusqu'à la ligne 1.
.box1 {
+ grid-column-start: 1;
+ grid-row-start: span 3;
+ grid-row-end: 4;
+}
+
+
+Pour vous familiariser avec le positionnement des éléments d'une grille en utilisant les lignes, vous pouvez essayer de construire certaines dispositions fréquemment utilisées en plaçant des éléments sur des grilles avec plus ou moins de pistes. Il faut garder à l'esprit que, lorsqu'on ne place pas explicitement tous les éléments, les éléments restants seront positionnés automatiquement. Cela peut tout à fait être l'objectif recherché mais si ce n'est pas le cas et que vous voyez un élément à un endroit inapproprié, vérifiez que vous lui avez affecté une position au sein de la grille.
+ +Il faut aussi se rappeler que lorsqu'on place les éléments explicitement sur la grille, ceux-ci peuvent se chevaucher. Cela permet d'obtenir certains effets mais attention aux erreurs lorsque c'est la mauvaise ligne de début ou de fin qui est indiquée. Pour régler ce problème, on peut utiliser l'outil de mise en évidence de la grille CSS dans Firefox pour analyser une grille compliquée.
+ +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Les_concepts_de_base", "Web/CSS/CSS_Grid_Layout/D%C3%A9finir_des_zones_sur_une_grille","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html b/files/fr/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html deleted file mode 100644 index b7af0ce06d..0000000000 --- a/files/fr/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html +++ /dev/null @@ -1,543 +0,0 @@ ---- -title: Construire des dispositions courantes avec des grilles CSS -slug: Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout -tags: - - CSS - - CSS Grids - - Grilles CSS - - Guide - - Intermédiaire -translation_of: Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout -original_slug: >- - Web/CSS/CSS_Grid_Layout/Construire_des_dispositions_courantes_avec_des_grilles_CSS ---- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","","Web/CSS/CSS_Grid_Layout")}}
- -Pour clôturer ces différents guides, nous allons maintenant voir différentes dispositions sur lesquelles nous appliquerons des techniques avec les grilles CSS. Nous prendrons un exemple qui utilise les zones nommées d'une grille, un système de grille flexible avec 12 colonnes et aussi une liste de produits avec un placement automatique. Comme nous le verrons, il existe plusieurs méthodes pour accéder à chaque résultat. À vous de choisir la méthode qui vous paraît la plus pertinente et utile pour les problèmes que vous avez à résoudre et les dispositions que vous devez implémenter.
- -grid-template-areasDe nombreux sites web sont construits comme une variation autour de cette disposition avec du contenu, une ou plusieurs barres latérale, un en-tête et un pied de page. Pour que le site soit responsive, on peut souhaiter avoir une seule colonne pour certaines tailles d'affichage, ajouter une barre latérale lorsqu'on a plus d'espace et enfin, avoir trois colonnes pour les écrans les plus larges.
- -
Ici, on crée une disposition avec des zones nommées comme on a pu le voir dans l'article correspondant.
- -Dans le document on a un conteneur qui contient un en-tête, un pied de page, du contenu principal, une barre de navigation, une barre latérale et un bloc dans lequel on souhaite placer de la publicité.
- - - -<div class="wrapper"> - <header class="main-head">L'en-tête</header> - <nav class="main-nav"> - <ul> - <li><a href="">Nav 1</a></li> - <li><a href="">Nav 2</a></li> - <li><a href="">Nav 3</a></li> - </ul> - </nav> - <article class="content"> - <h1>L'article principal</h1> - <p> - Dans cette disposition, on affiche les zones dans le même - ordre que dans le document pour les écrans dont la largeur - est inférieure à 500 pixels. On passe à une disposition sur - deux colonnes ou trois colonnes en redéfinissant la grille - et le placement des objets sur la grille. - </p> - </article> - <aside class="side">Barre latérale</aside> - <div class="ad">Publicité</div> - <footer class="main-footer">Le pied de page</footer> -</div> -- -
On utilise {{cssxref("grid-template-areas")}} afin de créer la disposition. On nomme les zones en dehors des différentes media queries. Les propriétés sont nommées grâce à la propriété {{cssxref("grid-area")}}.
- -.main-head {
- grid-area: header;
-}
-.content {
- grid-area: content;
-}
-.main-nav {
- grid-area: nav;
-}
-.side {
- grid-area: sidebar;
-}
-.ad {
- grid-area: ad;
-}
-.main-footer {
- grid-area: footer;
-}
-
-
-Avec ces différentes règles, on n'a pas encore de disposition, uniquement des noms qu'on pourra utiliser. Ensuite, on définit la disposition qu'on aura par défaut et qui sera utilisée pour les mobiles. Dans cette règle, on garde le même ordre que celui utilisé dans le document (cf. le guide sur les grilles CSS et l'accessibilité). On ne définit aucune piste (colonne ou ligne) mais cela suffit pour décrire une disposition sur une seule colonne, les lignes seront créées implicitement lorsqu'elles seront nécessaires.
- -.wrapper {
- display: grid;
- grid-gap: 20px;
- grid-template-areas:
- "header"
- "nav"
- "content"
- "sidebar"
- "ad"
- "footer";
-}
-
-
-Après cette disposition par défaut pour les appareils mobiles, on peut ajouter une requête média (media query) et redéfinir la disposition lorsqu'on a plus d'espace et qu'on peut afficher deux colonnes :
- -@media (min-width: 500px) {
- .wrapper {
- grid-template-columns: 1fr 3fr;
- grid-template-areas:
- "header header"
- "nav nav"
- "sidebar content"
- "ad footer";
- }
- nav ul {
- display: flex;
- justify-content: space-between;
- }
-}
-
-
-On peut voir la disposition organisée dans la valeur pour la propriété {{cssxref("grid-template-areas")}}. L'en-tête header s'étale sur deux colonnes et le bloc nav également. Sur la troisième ligne, on a la barre latérale (sidebar) à côté du contenu (content). Sur la quatrième ligne, on a le bloc pour la publicité (ad) qui apparaît sous la barre latérale et enfin le pied de page qui apparaît sous le contenu. On utilise une boîte flexible pour la barre de navigation afin de l'étaler sur une ligne homogène.
Enfin, on ajoute une autre requête de média pour la disposition avec trois colonnes :
- -@media (min-width: 700px) {
- .wrapper {
- grid-template-columns: 1fr 4fr 1fr;
- grid-template-areas:
- "header header header"
- "nav content sidebar"
- "nav content ad"
- "footer footer footer"
- }
- nav ul {
- flex-direction: column;
- }
-}
-
-
-Cette disposition en trois colonnes possède une première colonne qui s'étend sur 1fr, une colonne centrale qui s'étend sur 4fr et une dernière colonne qui mesure également 1fr. Cela signifie que l'espace disponible dans le conteneur est découpé en 6 et que chacun de ces morceaux est affecté à une de ces pistes.
Dans cette disposition, la barre de navigation est affichée dans la colonne à gauche, à côté du contenu. Sur la colonne à droite, on a la barre latérale au-dessus de la publicité. Le pied de page, quant à lui, s'étale sur tout le bas du conteneur. Ici aussi, on utilise une boîte flexible en colonne pour la barre de navigation.
- -{{EmbedLiveSample('Une_disposition_adaptative_avec_une_à_trois_colonnes_en_utilisant_grid-template-areas', '800', '430')}}
- -Cet exemple est assez simple mais permet d'illustrer comme utiliser une grille afin de réorganiser le contenu pour différentes tailles d'écran. On voit par exemple comment on déplace le bloc ad dans les différentes organisations. L'utilisation des noms pour les zones permet de prototyper rapidement de nouvelles dispositions. Vous pouvez toujours utiliser la grille pour agencer votre prototype même si ce n'est pas la technologie que vous utiliserez pour votre site ou votre application en production.
Si vous travaillez avec un framework ou avec un système de grille, vous êtes peut-être habitué-e à travailler sur une grille avec 12 ou 16 colonnes. On peut recréer ce genre de système avec une grille CSS. Pour commencer, on crée une grille avec 12 colonnes dont chaque piste mesure 1fr-unit et commence par une ligne intitulée col-start. Autrement dit, on aura 12 colonnes intitulées col-start.
.wrapper {
- display: grid;
- grid-template-columns: repeat(12, [col-start] 1fr);
- grid-gap: 20px;
-}
-
-
-Pour voir comment ce système fonctionne, on place quatre éléments dans le conteneur :
- -<div class="wrapper"> - <div class="item1">Début à la première colonne, s'étend sur 3 colonnes.</div> - <div class="item2">Début à la colonne 6, s'étend sur 4 colonnes et deux lignes.</div> - <div class="item3">Début à la colonne 2 de la ligne 2, s'étend sur 2 colonnes.</div> - <div class="item4">Début à la colonne 3, s'étend jusqu'à la fin de la grille.</div> -</div> -- -
Et on place ces éléments sur la grille en utilisant les noms utilisés précédemment, avec le mot-clé span :
.item1 {
- grid-column: col-start / span 3;
-}
-.item2 {
- grid-column: col-start 6 / span 4 ;
- grid-row: 1 / 3;
-}
-.item3 {
- grid-column: col-start 2 / span 2;
- grid-row: 2;
-}
-.item4 {
- grid-column: col-start 3 / -1;
- grid-row: 3;
-}
-
-
-{{EmbedLiveSample('Une_disposition_flexible_avec_12_colonnes', '800', '330')}}
- -Comme nous l'avons vu dans le guide sur le nommage des lignes, on utilise les noms des colonnes pour placer nos éléments. On a ici 12 colonnes avec le même nom, on utilise donc ce nom et l'indice qui indique le numéro. On pourrait tout aussi bien utiliser seulement le numéro si on voulait se passer des noms pour les lignes.
- -Plutôt que d'indiquer le numéro de la dernière colonne pour chaque élément, on a ici utilisé le mot-clé span pour indiquer la taille de chaque élément. Cette approche permet de revoir plus clairement la taille de chaque élément lorsqu'on ajoute une nouvelle disposition pour une nouvelle taille d'écran. Dans la capture qui suit, on peut voir comment les blocs sont positionnés sur la grilles. Pour cela, on a utilisé l'inspecteur de grille de Firefox qui indique de façon claire comment les objets sont placés.

Il y a certainement certaines différences fondamentales avec les systèmes que vous auriez pu utiliser précédemment. On voit par exemple qu'il n'est pas nécessaire d'ajouter de règles supplémentaires pour créer une ligne. Généralement, il faut ajouter des contrôles pour éviter que les éléments remontent sur les lignes au-dessus. Avec une grille CSS, ce n'est pas un problème, les lignes supérieures sont laissées vides. La disposition étant stricte, on peut très bien laisser des espaces dans notre plan. Il n'est pas non plus nécessaire de définir des classes spécifiques afin d'indenter les différents objets, il suffit ici d'indiquer la colonne de début et la colonne de fin.
- -Pour voir comment cette méthode fonctionne en pratique, nous allons créé le même plan que celui que nous avons vu avec les zones nommées et {{cssxref("grid-template-areas")}} mais en utilisant désormais ce système à 12 colonnes. Commençons avec la même structure que celle utilisée plus haut avec les zones nommées :
- - - -<div class="wrapper"> - <header class="main-head">L'en-tête</header> - <nav class="main-nav"> - <ul> - <li><a href="">Nav 1</a></li> - <li><a href="">Nav 2</a></li> - <li><a href="">Nav 3</a></li> - </ul> - </nav> - <article class="content"> - <h1>L'article principal</h1> - <p> - Dans cette disposition, on affiche les zones dans le même - ordre que dans le document pour les écrans dont la largeur - est inférieure à 500 pixels. On passe à une disposition sur - deux colonnes ou trois colonnes en redéfinissant la grille - et le placement des objets sur la grille. - </p> - </article> - <aside class="side">Barre latérale</aside> - <div class="ad">Publicité</div> - <footer class="main-footer">Le pied de page</footer> -</div> -- -
On initialise la grille avec nos 12 colonnes :
- -.wrapper {
- display: grid;
- grid-template-columns: repeat(12, [col-start] 1fr);
- grid-gap: 20px;
-}
-
-
-Là encore, nous allons adapter la disposition en fonction de la taille de la zone d'affichage mais ici, nous utiliserons les colonnes nommées. Pour chaque type d'affichage, nous allons utiliser 12 colonnes et faire varier le nombre de pistes sur lequel s'étalent les objets à afficher.
- -Commençons par le mobile : on souhaite gérer les écrans les plus étroits par défaut. Ici aussi, on respecte l'ordre des éléments indiqués par le code source du document et tous les objets s'étalent tout au long de la grille.
- -.wrapper > * {
- grid-column: col-start / span 12;
-}
-
-
-Pour la prochaine taille, on veut obtenir une disposition sur deux colonnes. Ici, l'en-tête et la barre de navigation occuperont toute une ligne horizontale, il n'est donc pas nécessaire d'indiquer de positionnement pour eux. La barre latérale commence sur la première colonne intitulée col-start et s'étend sur 3 colonnes et commence à partir de la troisième ligne (les deux premières étant occupées par l'en-tête et la barre de navigation).
Le panneau dédié à la publicité est affiché sous la barre latérale et commence à partir de la quatrième ligne. On a ensuite le contenu et le pied de page qui commencent à partir de la quatrième colonne et s'étendent sur 9 pistes pour occuper le reste de la grille.
- -@media (min-width: 500px) {
- .side {
- grid-column: col-start / span 3;
- grid-row: 3;
- }
- .ad {
- grid-column: col-start / span 3;
- grid-row: 4;
- }
- .content, .main-footer {
- grid-column: col-start 4 / span 9;
- }
- nav ul {
- display: flex;
- justify-content: space-between;
- }
-}
-
-
-Voyons alors la disposition sur trois colonnes. Pour ce plan, l'en-tête s'étale aussi sur toute la largeur de la grille, la barre de navigation devient verticale, à côté on a le contenu puis la barre latérale. Le pied de page s'étale, lui aussi, sur toute la largeur du conteneur.
- -@media (min-width: 700px) {
- .main-nav {
- grid-column: col-start / span 2;
- grid-row: 2 / 4;
- }
- .content {
- grid-column: col-start 3 / span 8;
- grid-row: 2 / 4;
- }
- .side {
- grid-column: col-start 11 / span 2;
- grid-row: 2;
- }
- .ad {
- grid-column: col-start 11 / span 2;
- grid-row: 3;
- }
- .main-footer {
- grid-column: col-start / span 12;
- }
- nav ul {
- flex-direction: column;
- }
-}
-
-
-{{EmbedLiveSample('Construire_une_disposition_avec_ce_système_à_12_colonnes', '800', '430')}}
- -On peut à nouveau profiter de l'inspecteur de grille pour voir comment se compose effectivement notre disposition :
- -
On notera qu'il n'a pas été nécessaire de redéfinir explicitement la position de chaque élément pour chaque résolution. On a pu hériter des emplacements des résolutions précédentes. On gagne donc à travailler en considérant les résolutions mobiles en premier lieu. On tire également parti du placement automatique géré par la grille avec l'ordre, logique, des éléments du documents. Dans le dernier exemple, nous allons voir comment le placement automatique sur la grille peut aider à positionner des objets..
- -De nombreuses dispositions sont essentiellement composée de cartes ou tuiles : des listes produit, des galeries d'image, etc. Avec une grille, on peut facilement créer ce genre de liste de façon adaptative, sans avoir à ajouter de requêtes de média. Dans l'exemple qui suit, nous allons combiner les grilles CSS et les boîtes flexibles afin d'obtenir une liste de produits.
- -Le document utilisé contient une liste d'objets non ordonnée. Pour chaque produit, on a un titre, un texte dont la taille n'est pas fixe et un lien pour effectuer une action.
- -<ul class="listing"> - <li> - <h2>Produit n°1</h2> - <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> - <div class="cta"><a href="">Faire quelque chose !</a></div> - </li> - <li> - <h2>Produit n°2</h2> - <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> - <div class="cta"><a href="">Faire quelque chose !</a></div> - </li> - <li class="wide"> - <h2>Produit n°3</h2> - <div class="body"><p>Le descriptif du produit sera écrit ici.</p> - <p>Ce produit possède un descriptif beaucoup plus long.</p> - <p>Vraiment plus long</p> - <p>Peut-être faudrait-il le gérer différemment ?</p></div> - <div class="cta"><a href="">Faire quelque chose !</a></div> - </li> - <li> - <h2>Produit n°4</h2> - <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> - <div class="cta"><a href="">Faire quelque chose !</a></div> - </li> - <li> - <h2>Produit n°5</h2> - <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> - <div class="cta"><a href="">Faire quelque chose !</a></div> - </li> -</ul> -- - - -
Nous allons créer une grille avec un nombre de colonnes adaptable et chacune des colonnes sera flexible. On indique qu'une colonne doit avoir une largeur minimale de 200 pixels et que l'espace restant doit être réparti équitablement (toutes les colonnes auront donc la même largeur). Pour obtenir ce résultat, on utilise la fonction minmax() avec la notation repeat pour la propriété grid-template-columns qui permet de dimensionner les pistes.
.listing {
- list-style: none;
- margin: 2em;
- display: grid;
- grid-gap: 20px;
- grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
-}
-
-
-Dès qu'on ajoute cette règle, les objets s'organisent sur la grille. Si on chance la taille de la fenêtre, le nombre de colonne s'adaptera, sans qu'il soit nécessaire d'ajouter des requêtes de média ou de définir la grille.
- -On peut ensuite améliorer chacune des boîtes en utilisant les boîtes flexibles. Pour les éléments de la liste ({{HTMLElement("li")}}), on utilise display: flex et flex-direction avec la valeur column. On ajoute une marge automatique pour la classe .cta afin que cette barre soit placée en bas de la boîte.
.listing li {
- border: 1px solid #ffe066;
- border-radius: 5px;
- display: flex;
- flex-direction: column;
-}
-.listing .cta {
- margin-top: auto;
- border-top: 1px solid #ffe066;
- padding: 10px;
- text-align: center;
-}
-.listing .body {
- padding: 10px;
-}
-
-
-Voici un exemple où, d'après moi, l'utilisation des boîtes flexibles est pertinente par rapport à une autre grille : on ne fait qu'aligner ou organiser des objets sur un seul axe, ce qui est très bien géré avec une boîte flexible.
- -{{EmbedLiveSample('Une_liste_produit_utilisant_le_placement_automatique', '800', '900')}}
- -Le résultat est plutôt abouti mais on a parfois des cartes qui ont beaucoup plus de contenu. Si on veut que celles-ci soient plus large (pour éviter qu'elles soient trop hautes), on peut les étaler sur deux pistes. Pour cela, on a utilisé la classe wide sur l'objet avec plus de contenu et on ajoute une règle {{cssxref("grid-column-end")}} avec la valeur span 2. Désormais, lorsque la grille devra placer un élément de ce type, elle lui affectera deux colonnes. Cela signifie aussi que pour certaines tailles d'affichage, on aura un espace dans la grille lorsqu'il n'y aura pas suffisamment d'espace pour placer un objet sur deux colonnes :

Si on veut éviter ces trous, on peut utiliser la règle {{cssxref("grid-auto-flow")}}: dense sur le conteneur de la grille. Attention à utiliser cette valeur car l'ordre logique n'est plus respecté. Aussi, il ne faut utiliser cette valeur uniquement lorsqu'il n'y a pas d'ordre pour les objets. Avec cette valeur, la navigation au clavier (tab order) continue de suivre l'ordre des éléments du document et pas l'ordre d'affichage des objets sur la grille.
.listing {
- list-style: none;
- margin: 2em;
- display: grid;
- grid-gap: 20px;
- grid-auto-flow: dense;
- grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
-}
-.listing .wide {
- grid-column-end: span 2;
-}
-
-
-{{EmbedLiveSample('empecher_les_espaces_avec_dense', '800', '900')}}
- -Cette technique de placement automatiquement peut s'avérer extrêmement utile si vous devez gérer du contenu produit par un CMS pour un ensemble d'objets qui se ressemblent et auxquels vous ajoutez une classe lors de la génération en HTML.
- -La meilleure façon d'apprendre à utiliser les grilles CSS est de continuer à construire des exemples comme ceux que nous avons vus ici. Prenez un cas d'utilisation que vous auriez construit avec un framework ou avec un autre mode de disposition et voyez si vous pouvez le construire à l'aide d'une grille. N'oubliez pas de trouver des exemples de disposition encore impossibles à construire avec les méthodes actuelles : prenez différentes sources d'inspiration comme les magazines et affiches. Le modèle de grille offre un nouvel éventail de possibilités et il serait dommage de rester sur nos acquis.
- -{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.md b/files/fr/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.md new file mode 100644 index 0000000000..b7af0ce06d --- /dev/null +++ b/files/fr/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.md @@ -0,0 +1,543 @@ +--- +title: Construire des dispositions courantes avec des grilles CSS +slug: Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout +tags: + - CSS + - CSS Grids + - Grilles CSS + - Guide + - Intermédiaire +translation_of: Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout +original_slug: >- + Web/CSS/CSS_Grid_Layout/Construire_des_dispositions_courantes_avec_des_grilles_CSS +--- +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","","Web/CSS/CSS_Grid_Layout")}}
+ +Pour clôturer ces différents guides, nous allons maintenant voir différentes dispositions sur lesquelles nous appliquerons des techniques avec les grilles CSS. Nous prendrons un exemple qui utilise les zones nommées d'une grille, un système de grille flexible avec 12 colonnes et aussi une liste de produits avec un placement automatique. Comme nous le verrons, il existe plusieurs méthodes pour accéder à chaque résultat. À vous de choisir la méthode qui vous paraît la plus pertinente et utile pour les problèmes que vous avez à résoudre et les dispositions que vous devez implémenter.
+ +grid-template-areasDe nombreux sites web sont construits comme une variation autour de cette disposition avec du contenu, une ou plusieurs barres latérale, un en-tête et un pied de page. Pour que le site soit responsive, on peut souhaiter avoir une seule colonne pour certaines tailles d'affichage, ajouter une barre latérale lorsqu'on a plus d'espace et enfin, avoir trois colonnes pour les écrans les plus larges.
+ +
Ici, on crée une disposition avec des zones nommées comme on a pu le voir dans l'article correspondant.
+ +Dans le document on a un conteneur qui contient un en-tête, un pied de page, du contenu principal, une barre de navigation, une barre latérale et un bloc dans lequel on souhaite placer de la publicité.
+ + + +<div class="wrapper"> + <header class="main-head">L'en-tête</header> + <nav class="main-nav"> + <ul> + <li><a href="">Nav 1</a></li> + <li><a href="">Nav 2</a></li> + <li><a href="">Nav 3</a></li> + </ul> + </nav> + <article class="content"> + <h1>L'article principal</h1> + <p> + Dans cette disposition, on affiche les zones dans le même + ordre que dans le document pour les écrans dont la largeur + est inférieure à 500 pixels. On passe à une disposition sur + deux colonnes ou trois colonnes en redéfinissant la grille + et le placement des objets sur la grille. + </p> + </article> + <aside class="side">Barre latérale</aside> + <div class="ad">Publicité</div> + <footer class="main-footer">Le pied de page</footer> +</div> ++ +
On utilise {{cssxref("grid-template-areas")}} afin de créer la disposition. On nomme les zones en dehors des différentes media queries. Les propriétés sont nommées grâce à la propriété {{cssxref("grid-area")}}.
+ +.main-head {
+ grid-area: header;
+}
+.content {
+ grid-area: content;
+}
+.main-nav {
+ grid-area: nav;
+}
+.side {
+ grid-area: sidebar;
+}
+.ad {
+ grid-area: ad;
+}
+.main-footer {
+ grid-area: footer;
+}
+
+
+Avec ces différentes règles, on n'a pas encore de disposition, uniquement des noms qu'on pourra utiliser. Ensuite, on définit la disposition qu'on aura par défaut et qui sera utilisée pour les mobiles. Dans cette règle, on garde le même ordre que celui utilisé dans le document (cf. le guide sur les grilles CSS et l'accessibilité). On ne définit aucune piste (colonne ou ligne) mais cela suffit pour décrire une disposition sur une seule colonne, les lignes seront créées implicitement lorsqu'elles seront nécessaires.
+ +.wrapper {
+ display: grid;
+ grid-gap: 20px;
+ grid-template-areas:
+ "header"
+ "nav"
+ "content"
+ "sidebar"
+ "ad"
+ "footer";
+}
+
+
+Après cette disposition par défaut pour les appareils mobiles, on peut ajouter une requête média (media query) et redéfinir la disposition lorsqu'on a plus d'espace et qu'on peut afficher deux colonnes :
+ +@media (min-width: 500px) {
+ .wrapper {
+ grid-template-columns: 1fr 3fr;
+ grid-template-areas:
+ "header header"
+ "nav nav"
+ "sidebar content"
+ "ad footer";
+ }
+ nav ul {
+ display: flex;
+ justify-content: space-between;
+ }
+}
+
+
+On peut voir la disposition organisée dans la valeur pour la propriété {{cssxref("grid-template-areas")}}. L'en-tête header s'étale sur deux colonnes et le bloc nav également. Sur la troisième ligne, on a la barre latérale (sidebar) à côté du contenu (content). Sur la quatrième ligne, on a le bloc pour la publicité (ad) qui apparaît sous la barre latérale et enfin le pied de page qui apparaît sous le contenu. On utilise une boîte flexible pour la barre de navigation afin de l'étaler sur une ligne homogène.
Enfin, on ajoute une autre requête de média pour la disposition avec trois colonnes :
+ +@media (min-width: 700px) {
+ .wrapper {
+ grid-template-columns: 1fr 4fr 1fr;
+ grid-template-areas:
+ "header header header"
+ "nav content sidebar"
+ "nav content ad"
+ "footer footer footer"
+ }
+ nav ul {
+ flex-direction: column;
+ }
+}
+
+
+Cette disposition en trois colonnes possède une première colonne qui s'étend sur 1fr, une colonne centrale qui s'étend sur 4fr et une dernière colonne qui mesure également 1fr. Cela signifie que l'espace disponible dans le conteneur est découpé en 6 et que chacun de ces morceaux est affecté à une de ces pistes.
Dans cette disposition, la barre de navigation est affichée dans la colonne à gauche, à côté du contenu. Sur la colonne à droite, on a la barre latérale au-dessus de la publicité. Le pied de page, quant à lui, s'étale sur tout le bas du conteneur. Ici aussi, on utilise une boîte flexible en colonne pour la barre de navigation.
+ +{{EmbedLiveSample('Une_disposition_adaptative_avec_une_à_trois_colonnes_en_utilisant_grid-template-areas', '800', '430')}}
+ +Cet exemple est assez simple mais permet d'illustrer comme utiliser une grille afin de réorganiser le contenu pour différentes tailles d'écran. On voit par exemple comment on déplace le bloc ad dans les différentes organisations. L'utilisation des noms pour les zones permet de prototyper rapidement de nouvelles dispositions. Vous pouvez toujours utiliser la grille pour agencer votre prototype même si ce n'est pas la technologie que vous utiliserez pour votre site ou votre application en production.
Si vous travaillez avec un framework ou avec un système de grille, vous êtes peut-être habitué-e à travailler sur une grille avec 12 ou 16 colonnes. On peut recréer ce genre de système avec une grille CSS. Pour commencer, on crée une grille avec 12 colonnes dont chaque piste mesure 1fr-unit et commence par une ligne intitulée col-start. Autrement dit, on aura 12 colonnes intitulées col-start.
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(12, [col-start] 1fr);
+ grid-gap: 20px;
+}
+
+
+Pour voir comment ce système fonctionne, on place quatre éléments dans le conteneur :
+ +<div class="wrapper"> + <div class="item1">Début à la première colonne, s'étend sur 3 colonnes.</div> + <div class="item2">Début à la colonne 6, s'étend sur 4 colonnes et deux lignes.</div> + <div class="item3">Début à la colonne 2 de la ligne 2, s'étend sur 2 colonnes.</div> + <div class="item4">Début à la colonne 3, s'étend jusqu'à la fin de la grille.</div> +</div> ++ +
Et on place ces éléments sur la grille en utilisant les noms utilisés précédemment, avec le mot-clé span :
.item1 {
+ grid-column: col-start / span 3;
+}
+.item2 {
+ grid-column: col-start 6 / span 4 ;
+ grid-row: 1 / 3;
+}
+.item3 {
+ grid-column: col-start 2 / span 2;
+ grid-row: 2;
+}
+.item4 {
+ grid-column: col-start 3 / -1;
+ grid-row: 3;
+}
+
+
+{{EmbedLiveSample('Une_disposition_flexible_avec_12_colonnes', '800', '330')}}
+ +Comme nous l'avons vu dans le guide sur le nommage des lignes, on utilise les noms des colonnes pour placer nos éléments. On a ici 12 colonnes avec le même nom, on utilise donc ce nom et l'indice qui indique le numéro. On pourrait tout aussi bien utiliser seulement le numéro si on voulait se passer des noms pour les lignes.
+ +Plutôt que d'indiquer le numéro de la dernière colonne pour chaque élément, on a ici utilisé le mot-clé span pour indiquer la taille de chaque élément. Cette approche permet de revoir plus clairement la taille de chaque élément lorsqu'on ajoute une nouvelle disposition pour une nouvelle taille d'écran. Dans la capture qui suit, on peut voir comment les blocs sont positionnés sur la grilles. Pour cela, on a utilisé l'inspecteur de grille de Firefox qui indique de façon claire comment les objets sont placés.

Il y a certainement certaines différences fondamentales avec les systèmes que vous auriez pu utiliser précédemment. On voit par exemple qu'il n'est pas nécessaire d'ajouter de règles supplémentaires pour créer une ligne. Généralement, il faut ajouter des contrôles pour éviter que les éléments remontent sur les lignes au-dessus. Avec une grille CSS, ce n'est pas un problème, les lignes supérieures sont laissées vides. La disposition étant stricte, on peut très bien laisser des espaces dans notre plan. Il n'est pas non plus nécessaire de définir des classes spécifiques afin d'indenter les différents objets, il suffit ici d'indiquer la colonne de début et la colonne de fin.
+ +Pour voir comment cette méthode fonctionne en pratique, nous allons créé le même plan que celui que nous avons vu avec les zones nommées et {{cssxref("grid-template-areas")}} mais en utilisant désormais ce système à 12 colonnes. Commençons avec la même structure que celle utilisée plus haut avec les zones nommées :
+ + + +<div class="wrapper"> + <header class="main-head">L'en-tête</header> + <nav class="main-nav"> + <ul> + <li><a href="">Nav 1</a></li> + <li><a href="">Nav 2</a></li> + <li><a href="">Nav 3</a></li> + </ul> + </nav> + <article class="content"> + <h1>L'article principal</h1> + <p> + Dans cette disposition, on affiche les zones dans le même + ordre que dans le document pour les écrans dont la largeur + est inférieure à 500 pixels. On passe à une disposition sur + deux colonnes ou trois colonnes en redéfinissant la grille + et le placement des objets sur la grille. + </p> + </article> + <aside class="side">Barre latérale</aside> + <div class="ad">Publicité</div> + <footer class="main-footer">Le pied de page</footer> +</div> ++ +
On initialise la grille avec nos 12 colonnes :
+ +.wrapper {
+ display: grid;
+ grid-template-columns: repeat(12, [col-start] 1fr);
+ grid-gap: 20px;
+}
+
+
+Là encore, nous allons adapter la disposition en fonction de la taille de la zone d'affichage mais ici, nous utiliserons les colonnes nommées. Pour chaque type d'affichage, nous allons utiliser 12 colonnes et faire varier le nombre de pistes sur lequel s'étalent les objets à afficher.
+ +Commençons par le mobile : on souhaite gérer les écrans les plus étroits par défaut. Ici aussi, on respecte l'ordre des éléments indiqués par le code source du document et tous les objets s'étalent tout au long de la grille.
+ +.wrapper > * {
+ grid-column: col-start / span 12;
+}
+
+
+Pour la prochaine taille, on veut obtenir une disposition sur deux colonnes. Ici, l'en-tête et la barre de navigation occuperont toute une ligne horizontale, il n'est donc pas nécessaire d'indiquer de positionnement pour eux. La barre latérale commence sur la première colonne intitulée col-start et s'étend sur 3 colonnes et commence à partir de la troisième ligne (les deux premières étant occupées par l'en-tête et la barre de navigation).
Le panneau dédié à la publicité est affiché sous la barre latérale et commence à partir de la quatrième ligne. On a ensuite le contenu et le pied de page qui commencent à partir de la quatrième colonne et s'étendent sur 9 pistes pour occuper le reste de la grille.
+ +@media (min-width: 500px) {
+ .side {
+ grid-column: col-start / span 3;
+ grid-row: 3;
+ }
+ .ad {
+ grid-column: col-start / span 3;
+ grid-row: 4;
+ }
+ .content, .main-footer {
+ grid-column: col-start 4 / span 9;
+ }
+ nav ul {
+ display: flex;
+ justify-content: space-between;
+ }
+}
+
+
+Voyons alors la disposition sur trois colonnes. Pour ce plan, l'en-tête s'étale aussi sur toute la largeur de la grille, la barre de navigation devient verticale, à côté on a le contenu puis la barre latérale. Le pied de page s'étale, lui aussi, sur toute la largeur du conteneur.
+ +@media (min-width: 700px) {
+ .main-nav {
+ grid-column: col-start / span 2;
+ grid-row: 2 / 4;
+ }
+ .content {
+ grid-column: col-start 3 / span 8;
+ grid-row: 2 / 4;
+ }
+ .side {
+ grid-column: col-start 11 / span 2;
+ grid-row: 2;
+ }
+ .ad {
+ grid-column: col-start 11 / span 2;
+ grid-row: 3;
+ }
+ .main-footer {
+ grid-column: col-start / span 12;
+ }
+ nav ul {
+ flex-direction: column;
+ }
+}
+
+
+{{EmbedLiveSample('Construire_une_disposition_avec_ce_système_à_12_colonnes', '800', '430')}}
+ +On peut à nouveau profiter de l'inspecteur de grille pour voir comment se compose effectivement notre disposition :
+ +
On notera qu'il n'a pas été nécessaire de redéfinir explicitement la position de chaque élément pour chaque résolution. On a pu hériter des emplacements des résolutions précédentes. On gagne donc à travailler en considérant les résolutions mobiles en premier lieu. On tire également parti du placement automatique géré par la grille avec l'ordre, logique, des éléments du documents. Dans le dernier exemple, nous allons voir comment le placement automatique sur la grille peut aider à positionner des objets..
+ +De nombreuses dispositions sont essentiellement composée de cartes ou tuiles : des listes produit, des galeries d'image, etc. Avec une grille, on peut facilement créer ce genre de liste de façon adaptative, sans avoir à ajouter de requêtes de média. Dans l'exemple qui suit, nous allons combiner les grilles CSS et les boîtes flexibles afin d'obtenir une liste de produits.
+ +Le document utilisé contient une liste d'objets non ordonnée. Pour chaque produit, on a un titre, un texte dont la taille n'est pas fixe et un lien pour effectuer une action.
+ +<ul class="listing"> + <li> + <h2>Produit n°1</h2> + <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> + <div class="cta"><a href="">Faire quelque chose !</a></div> + </li> + <li> + <h2>Produit n°2</h2> + <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> + <div class="cta"><a href="">Faire quelque chose !</a></div> + </li> + <li class="wide"> + <h2>Produit n°3</h2> + <div class="body"><p>Le descriptif du produit sera écrit ici.</p> + <p>Ce produit possède un descriptif beaucoup plus long.</p> + <p>Vraiment plus long</p> + <p>Peut-être faudrait-il le gérer différemment ?</p></div> + <div class="cta"><a href="">Faire quelque chose !</a></div> + </li> + <li> + <h2>Produit n°4</h2> + <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> + <div class="cta"><a href="">Faire quelque chose !</a></div> + </li> + <li> + <h2>Produit n°5</h2> + <div class="body"><p>Le descriptif du produit sera écrit ici.</p></div> + <div class="cta"><a href="">Faire quelque chose !</a></div> + </li> +</ul> ++ + + +
Nous allons créer une grille avec un nombre de colonnes adaptable et chacune des colonnes sera flexible. On indique qu'une colonne doit avoir une largeur minimale de 200 pixels et que l'espace restant doit être réparti équitablement (toutes les colonnes auront donc la même largeur). Pour obtenir ce résultat, on utilise la fonction minmax() avec la notation repeat pour la propriété grid-template-columns qui permet de dimensionner les pistes.
.listing {
+ list-style: none;
+ margin: 2em;
+ display: grid;
+ grid-gap: 20px;
+ grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
+}
+
+
+Dès qu'on ajoute cette règle, les objets s'organisent sur la grille. Si on chance la taille de la fenêtre, le nombre de colonne s'adaptera, sans qu'il soit nécessaire d'ajouter des requêtes de média ou de définir la grille.
+ +On peut ensuite améliorer chacune des boîtes en utilisant les boîtes flexibles. Pour les éléments de la liste ({{HTMLElement("li")}}), on utilise display: flex et flex-direction avec la valeur column. On ajoute une marge automatique pour la classe .cta afin que cette barre soit placée en bas de la boîte.
.listing li {
+ border: 1px solid #ffe066;
+ border-radius: 5px;
+ display: flex;
+ flex-direction: column;
+}
+.listing .cta {
+ margin-top: auto;
+ border-top: 1px solid #ffe066;
+ padding: 10px;
+ text-align: center;
+}
+.listing .body {
+ padding: 10px;
+}
+
+
+Voici un exemple où, d'après moi, l'utilisation des boîtes flexibles est pertinente par rapport à une autre grille : on ne fait qu'aligner ou organiser des objets sur un seul axe, ce qui est très bien géré avec une boîte flexible.
+ +{{EmbedLiveSample('Une_liste_produit_utilisant_le_placement_automatique', '800', '900')}}
+ +Le résultat est plutôt abouti mais on a parfois des cartes qui ont beaucoup plus de contenu. Si on veut que celles-ci soient plus large (pour éviter qu'elles soient trop hautes), on peut les étaler sur deux pistes. Pour cela, on a utilisé la classe wide sur l'objet avec plus de contenu et on ajoute une règle {{cssxref("grid-column-end")}} avec la valeur span 2. Désormais, lorsque la grille devra placer un élément de ce type, elle lui affectera deux colonnes. Cela signifie aussi que pour certaines tailles d'affichage, on aura un espace dans la grille lorsqu'il n'y aura pas suffisamment d'espace pour placer un objet sur deux colonnes :

Si on veut éviter ces trous, on peut utiliser la règle {{cssxref("grid-auto-flow")}}: dense sur le conteneur de la grille. Attention à utiliser cette valeur car l'ordre logique n'est plus respecté. Aussi, il ne faut utiliser cette valeur uniquement lorsqu'il n'y a pas d'ordre pour les objets. Avec cette valeur, la navigation au clavier (tab order) continue de suivre l'ordre des éléments du document et pas l'ordre d'affichage des objets sur la grille.
.listing {
+ list-style: none;
+ margin: 2em;
+ display: grid;
+ grid-gap: 20px;
+ grid-auto-flow: dense;
+ grid-template-columns: repeat(auto-fill,minmax(200px, 1fr));
+}
+.listing .wide {
+ grid-column-end: span 2;
+}
+
+
+{{EmbedLiveSample('empecher_les_espaces_avec_dense', '800', '900')}}
+ +Cette technique de placement automatiquement peut s'avérer extrêmement utile si vous devez gérer du contenu produit par un CMS pour un ensemble d'objets qui se ressemblent et auxquels vous ajoutez une classe lors de la génération en HTML.
+ +La meilleure façon d'apprendre à utiliser les grilles CSS est de continuer à construire des exemples comme ceux que nous avons vus ici. Prenez un cas d'utilisation que vous auriez construit avec un framework ou avec un autre mode de disposition et voyez si vous pouvez le construire à l'aide d'une grille. N'oubliez pas de trouver des exemples de disposition encore impossibles à construire avec les méthodes actuelles : prenez différentes sources d'inspiration comme les magazines et affiches. Le modèle de grille offre un nouvel éventail de possibilités et il serait dommage de rester sur nos acquis.
+ +{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition","","Web/CSS/CSS_Grid_Layout")}}
diff --git a/files/fr/web/css/css_grid_layout/relationship_of_grid_layout/index.html b/files/fr/web/css/css_grid_layout/relationship_of_grid_layout/index.html deleted file mode 100644 index f32d5cd4b9..0000000000 --- a/files/fr/web/css/css_grid_layout/relationship_of_grid_layout/index.html +++ /dev/null @@ -1,556 +0,0 @@ ---- -title: Le modèle de grille et les autres modèles de disposition -slug: Web/CSS/CSS_Grid_Layout/Relationship_of_Grid_Layout -translation_of: Web/CSS/CSS_Grid_Layout/Relationship_of_Grid_Layout -original_slug: Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition ---- -Le mode de disposition en grille a été conçu afin de pouvoir fonctionner avec les autres composantes de CSS pour construire un système complet de disposition. Dans ce guide, nous expliquerons comment intégrer une grille CSS parmi d'autres techniques que vous pourriez déjà utiliser.
- -La différence fondamentale, entre les grilles et les boîtes flexibles CSS, est que les boîtes flexibles permettent d'organiser du contenu sur une dimension (sur une ligne ou sur une colonne). Les grilles ont été conçues pour une organisation bi-dimensionnelle. Les deux spécifications partagent cependant quelques points communs et si vous savez utiliser les boîtes flexibles, vous retrouverez quelques concepts qui vous aideront à appréhender les grilles CSS.
- -Voyons un exemple simple pour illustrer la différence entre une disposition sur un seul axe et une disposition sur deux axes.
- -Dans le premier exemple, on utilise un boîte flexible pour organiser un ensemble de boîte. Le conteneur contient 5 objets fils et on utilise des propriétés afin qu'ils puissent être agrandis/rétrécis avec une base (flex-basis) de 150 pixels.
On utilise aussi la propriété {{cssxref("flex-wrap")}} avec la valeur wrap, afin de créer une nouvelle ligne si le conteneur devient trop étroit pour conserver flex-basis.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
.wrapper {
- width: 500px;
- display: flex;
- flex-wrap: wrap;
-}
-.wrapper > div {
- flex: 1 1 150px;
-}
-
-
-{{EmbedLiveSample('Disposition_sur_une_dimension_ou_sur_deux_dimensions', '500', '230')}}
- -On peut voir ici que deux objets sont passés sur une nouvelle ligne. Ces objets partagent l'espace disponible sur cette nouvelle ligne et ne s'alignent pas par rapport aux objets de la ligne au-dessus. En effet, lorsque des éléments flexibles passent sur une nouvelle ligne (ou colonne), celle-ci forme un nouveau conteneur et l'espace de ce conteneur est distribué entre les objets.
- -On se demande alors comment faire pour aligner ces éléments… C'est là qu'intervient la disposition en deux dimensions, pour contrôler l'alignement des lignes et des colonnes : voici la grille.
- -Dans cet exemple, on crée la même disposition en utilisant la grille CSS. Ici, on a trois pistes 1fr. Il n'est pas nécessaire de paramétrer quoi que ce soit sur les objets, ils se disposeront eux-mêmes dans chaque cellule formée par la grille. On peut alors voir que les objets restent dans une grille stricte, avec les lignes et les colonnes qui sont alignées. Avec cinq éléments, on a donc un espace restant à la fin de la deuxième ligne.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> - <div>Quatre</div> - <div>Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
-}
-
-
-{{EmbedLiveSample('La_même_disposition_avec_une_grille_CSS', '300', '170')}}
- -Lorsqu'il s'agit de choisir entre les grilles ou les boîtes flexibles, vous pouvez vous poser les questions suivantes :
- -En plus de la distinction sur le nombre de dimensions, on peut prendre un autre angle de vue pour choisir entre les boîtes flexibles et les grilles. Les boîtes flexibles permettent de répartir l'espace de façon équitable autour des éléments d'un conteneur. C'est la taille du contenu qui détermine l'espace occupé par chacun des éléments. Si les objets passent sur une nouvelle ligne, leur espacement sera calculé en fonction de leurs tailles et de l'espace disponible sur cette ligne.
- -En revanche, les grilles organisent le contenu dans l'espace. Lorsqu'on utilise les grilles CSS, on crée un « plan » et on place les éléments sur ce plan (ou on indique un placement automatique, strict, sur cette grille). Il est possible de créer des pistes (tracks) qui réagissent à la taille du contenu mais cela modifierait alors l'ensemble de la piste.
- -Si vous utilisez les boîtes flexibles et souhaitez bloquer certains des aspects autour de la flexibilité, vous aurez probablement besoin d'une grille CSS. Par exemple, si vous définissez un objet flexible avec un pourcentage en largeur pour aligner l'objet avec les éléments du dessus, une grille pourrait être plus adaptée.
- -Une des fonctionnalités les plus attendues pour les boîtes flexibles était celle qui permettait enfin de contrôler l'alignement correctement. On pouvait simplement centrer une boîte sur une page. Les éléments flexibles pouvaient être étirés en hauteur dans leurs conteneurs et on pouvait donc obtenir des colonnes avec des hauteurs égales. Il était désormais possible d'éviter des contournements pour obtenir ce résultat.
- -Les propriétés d'alignement ont été ajoutées à la spécification pour les boîtes flexibles dans une nouvelle spécification intitulée Box Alignment Level 3. Cela signifie qu'elles peuvent être utilisées dans d'autres modules, y compris dans les grilles CSS. À l'avenir, elles pourront éventuellement s'appliquer aux autres méthodes de disposition.
- -Dans un autre article de cette série, nous verrons comment utiliser l'alignement des boîtes dans une disposition en grille. Pour le moment, voici un exemple simple qui permet de comparer les boîtes flexibles et les grilles.
- -Dans le premier exemple, on utilise les boîtes flexibles avec un conteneur qui dispose de trois objets. La propriété {{cssxref("min-height")}} est définie et paramètre la hauteur du conteneur flexible. {{cssxref("align-items")}} vaut flex-end pour le conteneur flexible et les objets s'empileront donc jusqu'à l'extrémité du conteneur flexible. On utilise également la propriété {{cssxref("align-self")}} sur box1 afin de surcharger la valeur par défaut et d'étirer jusqu'à la hauteur du conteneur et jusqu'à box2 afin que box1 soit alignée avec le début du conteneur flexible.
<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> -</div> -- -
.wrapper {
- display: flex;
- align-items: flex-end;
- min-height: 200px;
-}
-.box1 {
- align-self: stretch;
-}
-.box2 {
- align-self: flex-start;
-}
-
-
-{{EmbedLiveSample('Lalignement_des_boîtes', '300', '230')}}
- -Dans cet exemple, on utilise une grille pour créer la même disposition. Cette fois on utilise les propriétés d'alignement des boîtes. On aligne donc par rapport à start et end plutôt que par rapport à flex-start et flex-end. Dans le cas d'une disposition en grille, on aligne les éléments à l'intérieur de leur zone de grille. Dans ce cas, il s'agit d'une seule cellule mais on pourrait très bien construire une zone composée de plusieurs cellules.
<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3,1fr);
- align-items: end;
- grid-auto-rows: 200px;
-}.box1 {
- align-self: stretch;
-}
-.box2 {
- align-self: start;
-}
-
-
-{{EmbedLiveSample('Lalignement_sur_les_grilles_CSS', '200', '310')}}
- -fr et flex-basisOn a vu avant l'unité fr qui permet d'affecter aux pistes de la grille une portion de l'espace disponible dans le conteneur. L'unité fr, lorsqu'elle est combinée avec la fonction {{cssxref("minmax()", "minmax()")}} permet d'obtenir un comportement proche des propriétés flex utilisées pour les boîtes flexibles, tout en permettant de créer une disposition sur deux dimensions.
Si on revient sur l'exemple illustrant la différence entre une disposition à une dimension et une disposition à deux dimensions. On voit qu'il y a une différence sur la façon dont les deux dispositions fonctionnent en mode responsive (lorsque les dimensions de la zone d'affichage varient). Avec la disposition flexible, si on redimensionne la disposition ajustera le nombre d'éléments sur chaque ligne en fonction de l'espace disponible. S'il y a beaucoup d'espace, les cinq éléments pourront tenir sur une seule ligne et si l'espace est réduit, on pourra avoir jusqu'à un seul élément par ligne.
- -En revanche, avec la grille, on a toujours trois pistes qui forment trois colonnes. Les pistes s'élargiront ou se rétrécieront mais il y en aura toujours trois car c'est le nombre de pistes déclaré à la définition de la grille.
- -On peut créer un effet semblable aux boîtes flexibles tout en gardant l'arrangement en lignes et colonnes grâce à la notation repeat et aux propriétés auto-fill et auto-fit.
Dans l'exemple qui suit, on utilise le mot-clé auto-fill à la place d'un entier dans la fonction repeat et on définit la taille d'une piste à 200 pixels. Cela signifie que la grille créera autant de pistes de 200 pixels en colonnes qu'il est possible d'en placer dans le conteneur.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(auto-fill, 200px);
-}
-
-
-{{EmbedLiveSample('Des_pistes_qui_se_remplissent_automatiquement', '500', '170')}}
- -L'exemple précédent ne se comporte pas comme celui avec les boîtes flexibles. Dans l'exemple avec les boîtes flexibles, les objets qui sont plus larges que la base de 200 pixels avant de passer à la ligne. On peut obtenir le même effet sur une grille en combinant le mot-clé auto-fill et la fonction {{cssxref("minmax()", "minmax()")}}.
Dans l'exemple qui suit, on crée des pistes qui sont remplies automatiquement avec minmax. On souhaite que les pistes mesurent au moins 200 pixels, avec un maximum de 1fr. Lorsque le navigateur a calculé la quantité de colonnes qui tiendraient dans le conteneur (en tenant compte des espaces), il utilisera le maximum 1fr afin de répartir l'espace restant entre les objets.
<div class="wrapper"> - <div>Un</div> - <div>Deux</div> - <div>Trois</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
-}
-
-
-{{EmbedLiveSample('Avoir_un_nombre_de_pistes_flexible', '500', '170')}}
- -On peut désormais créer une grille qui dispose d'un nombre flexible de pistes, elles-mêmes flexibles tout en ayant des éléments qui sont disposés sur la grille par rapport à des lignes et à des colonnes.
- -La grille peut interagir avec les éléments positionnés de façon absolue. Cela peut s'avérer utile si on souhaite positionner un élément dans une grille ou dans une zone donnée de la grille. La spécification définit le comportement lorsqu'une grille est un bloc englobant et que la grille est le parent d'un élément positionné de façon absolue.
- -Pour qu'une grille soit un bloc englobant, il faut utiliser la propriété position avec la valeur relative (comme on ferait pour un bloc classique). Une fois que c'est fait, si on utilise position: absolute sur un objet de la grille, son bloc englobant sera la grille. Si l'élément a une position donnée sur la grille, le conteneur sera la zone de la grille sur laquelle il est placé.
Dans l'exemple ci-après, on a un conteneur avec quatre enfants. Le troisième élément est positionné en absolu et est placé sur la grille. La grille, le conteneur, a position: relative et devient donc le contexte de positionnement pour cet objet.
<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3"> - Ce bloc est positionné de façon absolue. Dans cet exemple - la grille est le bloc englobant et les valeurs de décalage - pour la position sont calculées depuis les bords extérieurs - de la zone dans laquelle a été placé l'élément. - </div> - <div class="box4">Quatre</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(4,1fr);
- grid-auto-rows: 200px;
- grid-gap: 20px;
- position: relative;
-}
-.box3 {
- grid-column-start: 2;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
- position: absolute;
- top: 40px;
- left: 40px;
-}
-
-
-{{EmbedLiveSample('Avoir_une_grille_comme_bloc_englobant', '500', '330')}}
- -On peut voir que l'élément prend la zone de la grille entre les lignes 2 et 4, après la ligne 1. Ensuite, il est décalé dans cette zone grâce aux propriétés top et left. Toutefois, il a été retiré du flux, comme d'habitude pour les éléments positionnés en absolu et les règles de placement automatique placent des objets dans la même zone. L'objet n'entraîne pas non plus la création d'une ligne supplémentaire sur la ligne 3.
Si on retire position: absolute des règles sur .box3, on peut voir le résultat qu'on aurait obtenu sans ce positionnement absolu.
Si l'élément positionné de façon absolue est contenue dans une grille mais que celle-ci ne crée pas de nouveau contexte de positionnement, l'élément sera retiré du flux comme dans l'exemple précédent. Les contextes de positionnement sont créés comme avec les autres méthodes de disposition. Dans l'exemple, si on retire position: relative dans le code précédent, le contexte de positionnement est fourni par la zone d'affichage (le viewport) :

Là encore, l'élément ne participe plus à la disposition de la grille pour le dimensionnement ou pour le placement des autres éléments.
- -Si l'élément positionné de façon absolu est imbriqué dans une zone de la grille, on peut créer un contexte de positionnement pour cette zone. Dans l'exemple qui suit, on utilise la même grille qu'avant sauf que l'élément est imbriqué dans la zone .box3 de la grille.
On indique que .box3 a une position relative puis on positionne l'élément avec des propriétés de décalage. Dans ce cas, le contexte de positionnement est la zone de la grille.
<div class="wrapper"> - <div class="box1">Un</div> - <div class="box2">Deux</div> - <div class="box3">Trois - <div class="abspos"> - Ce bloc est positionné de façon absolue. Dans cet exemple - la zone de la grille est le bloc englobant et le positionnement - est calculé à partir des bords de la zone de la grille. - </div> - </div> - <div class="box4">Quatre</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(4,1fr);
- grid-auto-rows: 200px;
- grid-gap: 20px;
-}
-.box3 {
- grid-column-start: 2;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
- position: relative;
-}
-.abspos {
- position: absolute;
- top: 40px;
- left: 40px;
- background-color: rgba(255,255,255,.5);
- border: 1px solid rgba(0,0,0,0.5);
- color: #000;
- padding: 10px;
-}
-
-
-{{EmbedLiveSample('Utiliser_une_zone_de_grille_comme_parent', '500', '420')}}
- -display: contentsUne autre combinaison notable, en termes de disposition, peut être l'utilisation de display: contents avec les grilles CSS. La valeur contents de la propriété {{cssxref("display")}} est une nouvelle valeur, décrite comme suit dans la spécification Display :
-- -L'élément même ne génère aucune boîte mais ses éléments fils, ainsi que les pseudo-éléments, génèrent des boîtes normales. Afin de générer les boîtes et la disposition, l'élément doit être traité comme s'il avait été remplacé par ses éléments fils et ses pseudo-éléments dans l'arbre du document.
-
Si on utilise display: contents sur un élément, la boîte qu'il aurait normalement créé disparaîtra et les boîtes des éléments qui sont ses enfants apparaîtront comme si elles avaient grimpé d'un niveau. Cela signifie que les éléments fils d'un élément d'une grille peuvent, à leur tour, devenir des éléments de cette grille. Un peu perdu-e ? Voici un exemple. Dans le code qui suit, on a une grille dont le premier élément s'étend sur les trois pistes. Cet élément contient trois éléments imbriqués. Ces derniers n'étant pas des enfants directs de la grille, ils ne s'inscrivent pas dans la disposition en grille et sont affichés avec la disposition classique.
<div class="wrapper"> - <div class="box box1"> - <div class="nested">a</div> - <div class="nested">b</div> - <div class="nested">c</div> - </div> - <div class="box box2">Deux</div> - <div class="box box3">Trois</div> - <div class="box box4">Quatre</div> - <div class="box box5">Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: minmax(100px, auto);
-}
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
-}
-
-
-
-{{EmbedLiveSample('utiliser_display_contents_avant', '400', '420')}}
- -Si on ajoute display: contents aux règles qui ciblent box1, la boîte de cet élément disparaîtra et ses sous-éléments deviendront alors des éléments de la grille qui se placeront selon les règles de placement automatiques pour la grille.
<div class="wrapper"> - <div class="box box1"> - <div class="nested">a</div> - <div class="nested">b</div> - <div class="nested">c</div> - </div> - <div class="box box2">Deux</div> - <div class="box box3">Trois</div> - <div class="box box4">Quatre</div> - <div class="box box5">Cinq</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: minmax(100px, auto);
-}
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- display: contents;
-}
-
-
-{{EmbedLiveSample('utiliser_display_contents_après', '400', '330')}}
- -Cela permet que des éléments imbriqués agissent comme s'ils faisaient partie de la grille. C'est également une méthode de contournement pour certains problèmes qui seront résolus par les « sous-grilles » (subgrids) lorsqu'elles seront implémentées. Vous pouvez également utiliser display: contents de façon similaire avec les boîtes flexibles afin que les éléments imbriqués deviennent des éléments flexibles.
Comme on a pu le voir dans cet article, la disposition avec les grilles CSS n'est qu'un outil parmi d'autres. Il ne faut pas hésiter à combiner différentes méthodes de disposition afin d'obtenir les résultats souhaités.
- -Le mode de disposition en grille a été conçu afin de pouvoir fonctionner avec les autres composantes de CSS pour construire un système complet de disposition. Dans ce guide, nous expliquerons comment intégrer une grille CSS parmi d'autres techniques que vous pourriez déjà utiliser.
+ +La différence fondamentale, entre les grilles et les boîtes flexibles CSS, est que les boîtes flexibles permettent d'organiser du contenu sur une dimension (sur une ligne ou sur une colonne). Les grilles ont été conçues pour une organisation bi-dimensionnelle. Les deux spécifications partagent cependant quelques points communs et si vous savez utiliser les boîtes flexibles, vous retrouverez quelques concepts qui vous aideront à appréhender les grilles CSS.
+ +Voyons un exemple simple pour illustrer la différence entre une disposition sur un seul axe et une disposition sur deux axes.
+ +Dans le premier exemple, on utilise un boîte flexible pour organiser un ensemble de boîte. Le conteneur contient 5 objets fils et on utilise des propriétés afin qu'ils puissent être agrandis/rétrécis avec une base (flex-basis) de 150 pixels.
On utilise aussi la propriété {{cssxref("flex-wrap")}} avec la valeur wrap, afin de créer une nouvelle ligne si le conteneur devient trop étroit pour conserver flex-basis.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
.wrapper {
+ width: 500px;
+ display: flex;
+ flex-wrap: wrap;
+}
+.wrapper > div {
+ flex: 1 1 150px;
+}
+
+
+{{EmbedLiveSample('Disposition_sur_une_dimension_ou_sur_deux_dimensions', '500', '230')}}
+ +On peut voir ici que deux objets sont passés sur une nouvelle ligne. Ces objets partagent l'espace disponible sur cette nouvelle ligne et ne s'alignent pas par rapport aux objets de la ligne au-dessus. En effet, lorsque des éléments flexibles passent sur une nouvelle ligne (ou colonne), celle-ci forme un nouveau conteneur et l'espace de ce conteneur est distribué entre les objets.
+ +On se demande alors comment faire pour aligner ces éléments… C'est là qu'intervient la disposition en deux dimensions, pour contrôler l'alignement des lignes et des colonnes : voici la grille.
+ +Dans cet exemple, on crée la même disposition en utilisant la grille CSS. Ici, on a trois pistes 1fr. Il n'est pas nécessaire de paramétrer quoi que ce soit sur les objets, ils se disposeront eux-mêmes dans chaque cellule formée par la grille. On peut alors voir que les objets restent dans une grille stricte, avec les lignes et les colonnes qui sont alignées. Avec cinq éléments, on a donc un espace restant à la fin de la deuxième ligne.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> + <div>Quatre</div> + <div>Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+}
+
+
+{{EmbedLiveSample('La_même_disposition_avec_une_grille_CSS', '300', '170')}}
+ +Lorsqu'il s'agit de choisir entre les grilles ou les boîtes flexibles, vous pouvez vous poser les questions suivantes :
+ +En plus de la distinction sur le nombre de dimensions, on peut prendre un autre angle de vue pour choisir entre les boîtes flexibles et les grilles. Les boîtes flexibles permettent de répartir l'espace de façon équitable autour des éléments d'un conteneur. C'est la taille du contenu qui détermine l'espace occupé par chacun des éléments. Si les objets passent sur une nouvelle ligne, leur espacement sera calculé en fonction de leurs tailles et de l'espace disponible sur cette ligne.
+ +En revanche, les grilles organisent le contenu dans l'espace. Lorsqu'on utilise les grilles CSS, on crée un « plan » et on place les éléments sur ce plan (ou on indique un placement automatique, strict, sur cette grille). Il est possible de créer des pistes (tracks) qui réagissent à la taille du contenu mais cela modifierait alors l'ensemble de la piste.
+ +Si vous utilisez les boîtes flexibles et souhaitez bloquer certains des aspects autour de la flexibilité, vous aurez probablement besoin d'une grille CSS. Par exemple, si vous définissez un objet flexible avec un pourcentage en largeur pour aligner l'objet avec les éléments du dessus, une grille pourrait être plus adaptée.
+ +Une des fonctionnalités les plus attendues pour les boîtes flexibles était celle qui permettait enfin de contrôler l'alignement correctement. On pouvait simplement centrer une boîte sur une page. Les éléments flexibles pouvaient être étirés en hauteur dans leurs conteneurs et on pouvait donc obtenir des colonnes avec des hauteurs égales. Il était désormais possible d'éviter des contournements pour obtenir ce résultat.
+ +Les propriétés d'alignement ont été ajoutées à la spécification pour les boîtes flexibles dans une nouvelle spécification intitulée Box Alignment Level 3. Cela signifie qu'elles peuvent être utilisées dans d'autres modules, y compris dans les grilles CSS. À l'avenir, elles pourront éventuellement s'appliquer aux autres méthodes de disposition.
+ +Dans un autre article de cette série, nous verrons comment utiliser l'alignement des boîtes dans une disposition en grille. Pour le moment, voici un exemple simple qui permet de comparer les boîtes flexibles et les grilles.
+ +Dans le premier exemple, on utilise les boîtes flexibles avec un conteneur qui dispose de trois objets. La propriété {{cssxref("min-height")}} est définie et paramètre la hauteur du conteneur flexible. {{cssxref("align-items")}} vaut flex-end pour le conteneur flexible et les objets s'empileront donc jusqu'à l'extrémité du conteneur flexible. On utilise également la propriété {{cssxref("align-self")}} sur box1 afin de surcharger la valeur par défaut et d'étirer jusqu'à la hauteur du conteneur et jusqu'à box2 afin que box1 soit alignée avec le début du conteneur flexible.
<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> +</div> ++ +
.wrapper {
+ display: flex;
+ align-items: flex-end;
+ min-height: 200px;
+}
+.box1 {
+ align-self: stretch;
+}
+.box2 {
+ align-self: flex-start;
+}
+
+
+{{EmbedLiveSample('Lalignement_des_boîtes', '300', '230')}}
+ +Dans cet exemple, on utilise une grille pour créer la même disposition. Cette fois on utilise les propriétés d'alignement des boîtes. On aligne donc par rapport à start et end plutôt que par rapport à flex-start et flex-end. Dans le cas d'une disposition en grille, on aligne les éléments à l'intérieur de leur zone de grille. Dans ce cas, il s'agit d'une seule cellule mais on pourrait très bien construire une zone composée de plusieurs cellules.
<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3,1fr);
+ align-items: end;
+ grid-auto-rows: 200px;
+}.box1 {
+ align-self: stretch;
+}
+.box2 {
+ align-self: start;
+}
+
+
+{{EmbedLiveSample('Lalignement_sur_les_grilles_CSS', '200', '310')}}
+ +fr et flex-basisOn a vu avant l'unité fr qui permet d'affecter aux pistes de la grille une portion de l'espace disponible dans le conteneur. L'unité fr, lorsqu'elle est combinée avec la fonction {{cssxref("minmax()", "minmax()")}} permet d'obtenir un comportement proche des propriétés flex utilisées pour les boîtes flexibles, tout en permettant de créer une disposition sur deux dimensions.
Si on revient sur l'exemple illustrant la différence entre une disposition à une dimension et une disposition à deux dimensions. On voit qu'il y a une différence sur la façon dont les deux dispositions fonctionnent en mode responsive (lorsque les dimensions de la zone d'affichage varient). Avec la disposition flexible, si on redimensionne la disposition ajustera le nombre d'éléments sur chaque ligne en fonction de l'espace disponible. S'il y a beaucoup d'espace, les cinq éléments pourront tenir sur une seule ligne et si l'espace est réduit, on pourra avoir jusqu'à un seul élément par ligne.
+ +En revanche, avec la grille, on a toujours trois pistes qui forment trois colonnes. Les pistes s'élargiront ou se rétrécieront mais il y en aura toujours trois car c'est le nombre de pistes déclaré à la définition de la grille.
+ +On peut créer un effet semblable aux boîtes flexibles tout en gardant l'arrangement en lignes et colonnes grâce à la notation repeat et aux propriétés auto-fill et auto-fit.
Dans l'exemple qui suit, on utilise le mot-clé auto-fill à la place d'un entier dans la fonction repeat et on définit la taille d'une piste à 200 pixels. Cela signifie que la grille créera autant de pistes de 200 pixels en colonnes qu'il est possible d'en placer dans le conteneur.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 200px);
+}
+
+
+{{EmbedLiveSample('Des_pistes_qui_se_remplissent_automatiquement', '500', '170')}}
+ +L'exemple précédent ne se comporte pas comme celui avec les boîtes flexibles. Dans l'exemple avec les boîtes flexibles, les objets qui sont plus larges que la base de 200 pixels avant de passer à la ligne. On peut obtenir le même effet sur une grille en combinant le mot-clé auto-fill et la fonction {{cssxref("minmax()", "minmax()")}}.
Dans l'exemple qui suit, on crée des pistes qui sont remplies automatiquement avec minmax. On souhaite que les pistes mesurent au moins 200 pixels, avec un maximum de 1fr. Lorsque le navigateur a calculé la quantité de colonnes qui tiendraient dans le conteneur (en tenant compte des espaces), il utilisera le maximum 1fr afin de répartir l'espace restant entre les objets.
<div class="wrapper"> + <div>Un</div> + <div>Deux</div> + <div>Trois</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
+}
+
+
+{{EmbedLiveSample('Avoir_un_nombre_de_pistes_flexible', '500', '170')}}
+ +On peut désormais créer une grille qui dispose d'un nombre flexible de pistes, elles-mêmes flexibles tout en ayant des éléments qui sont disposés sur la grille par rapport à des lignes et à des colonnes.
+ +La grille peut interagir avec les éléments positionnés de façon absolue. Cela peut s'avérer utile si on souhaite positionner un élément dans une grille ou dans une zone donnée de la grille. La spécification définit le comportement lorsqu'une grille est un bloc englobant et que la grille est le parent d'un élément positionné de façon absolue.
+ +Pour qu'une grille soit un bloc englobant, il faut utiliser la propriété position avec la valeur relative (comme on ferait pour un bloc classique). Une fois que c'est fait, si on utilise position: absolute sur un objet de la grille, son bloc englobant sera la grille. Si l'élément a une position donnée sur la grille, le conteneur sera la zone de la grille sur laquelle il est placé.
Dans l'exemple ci-après, on a un conteneur avec quatre enfants. Le troisième élément est positionné en absolu et est placé sur la grille. La grille, le conteneur, a position: relative et devient donc le contexte de positionnement pour cet objet.
<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3"> + Ce bloc est positionné de façon absolue. Dans cet exemple + la grille est le bloc englobant et les valeurs de décalage + pour la position sont calculées depuis les bords extérieurs + de la zone dans laquelle a été placé l'élément. + </div> + <div class="box4">Quatre</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(4,1fr);
+ grid-auto-rows: 200px;
+ grid-gap: 20px;
+ position: relative;
+}
+.box3 {
+ grid-column-start: 2;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+ position: absolute;
+ top: 40px;
+ left: 40px;
+}
+
+
+{{EmbedLiveSample('Avoir_une_grille_comme_bloc_englobant', '500', '330')}}
+ +On peut voir que l'élément prend la zone de la grille entre les lignes 2 et 4, après la ligne 1. Ensuite, il est décalé dans cette zone grâce aux propriétés top et left. Toutefois, il a été retiré du flux, comme d'habitude pour les éléments positionnés en absolu et les règles de placement automatique placent des objets dans la même zone. L'objet n'entraîne pas non plus la création d'une ligne supplémentaire sur la ligne 3.
Si on retire position: absolute des règles sur .box3, on peut voir le résultat qu'on aurait obtenu sans ce positionnement absolu.
Si l'élément positionné de façon absolue est contenue dans une grille mais que celle-ci ne crée pas de nouveau contexte de positionnement, l'élément sera retiré du flux comme dans l'exemple précédent. Les contextes de positionnement sont créés comme avec les autres méthodes de disposition. Dans l'exemple, si on retire position: relative dans le code précédent, le contexte de positionnement est fourni par la zone d'affichage (le viewport) :

Là encore, l'élément ne participe plus à la disposition de la grille pour le dimensionnement ou pour le placement des autres éléments.
+ +Si l'élément positionné de façon absolu est imbriqué dans une zone de la grille, on peut créer un contexte de positionnement pour cette zone. Dans l'exemple qui suit, on utilise la même grille qu'avant sauf que l'élément est imbriqué dans la zone .box3 de la grille.
On indique que .box3 a une position relative puis on positionne l'élément avec des propriétés de décalage. Dans ce cas, le contexte de positionnement est la zone de la grille.
<div class="wrapper"> + <div class="box1">Un</div> + <div class="box2">Deux</div> + <div class="box3">Trois + <div class="abspos"> + Ce bloc est positionné de façon absolue. Dans cet exemple + la zone de la grille est le bloc englobant et le positionnement + est calculé à partir des bords de la zone de la grille. + </div> + </div> + <div class="box4">Quatre</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(4,1fr);
+ grid-auto-rows: 200px;
+ grid-gap: 20px;
+}
+.box3 {
+ grid-column-start: 2;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+ position: relative;
+}
+.abspos {
+ position: absolute;
+ top: 40px;
+ left: 40px;
+ background-color: rgba(255,255,255,.5);
+ border: 1px solid rgba(0,0,0,0.5);
+ color: #000;
+ padding: 10px;
+}
+
+
+{{EmbedLiveSample('Utiliser_une_zone_de_grille_comme_parent', '500', '420')}}
+ +display: contentsUne autre combinaison notable, en termes de disposition, peut être l'utilisation de display: contents avec les grilles CSS. La valeur contents de la propriété {{cssxref("display")}} est une nouvelle valeur, décrite comme suit dans la spécification Display :
++ +L'élément même ne génère aucune boîte mais ses éléments fils, ainsi que les pseudo-éléments, génèrent des boîtes normales. Afin de générer les boîtes et la disposition, l'élément doit être traité comme s'il avait été remplacé par ses éléments fils et ses pseudo-éléments dans l'arbre du document.
+
Si on utilise display: contents sur un élément, la boîte qu'il aurait normalement créé disparaîtra et les boîtes des éléments qui sont ses enfants apparaîtront comme si elles avaient grimpé d'un niveau. Cela signifie que les éléments fils d'un élément d'une grille peuvent, à leur tour, devenir des éléments de cette grille. Un peu perdu-e ? Voici un exemple. Dans le code qui suit, on a une grille dont le premier élément s'étend sur les trois pistes. Cet élément contient trois éléments imbriqués. Ces derniers n'étant pas des enfants directs de la grille, ils ne s'inscrivent pas dans la disposition en grille et sont affichés avec la disposition classique.
<div class="wrapper"> + <div class="box box1"> + <div class="nested">a</div> + <div class="nested">b</div> + <div class="nested">c</div> + </div> + <div class="box box2">Deux</div> + <div class="box box3">Trois</div> + <div class="box box4">Quatre</div> + <div class="box box5">Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: minmax(100px, auto);
+}
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+}
+
+
+
+{{EmbedLiveSample('utiliser_display_contents_avant', '400', '420')}}
+ +Si on ajoute display: contents aux règles qui ciblent box1, la boîte de cet élément disparaîtra et ses sous-éléments deviendront alors des éléments de la grille qui se placeront selon les règles de placement automatiques pour la grille.
<div class="wrapper"> + <div class="box box1"> + <div class="nested">a</div> + <div class="nested">b</div> + <div class="nested">c</div> + </div> + <div class="box box2">Deux</div> + <div class="box box3">Trois</div> + <div class="box box4">Quatre</div> + <div class="box box5">Cinq</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: minmax(100px, auto);
+}
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ display: contents;
+}
+
+
+{{EmbedLiveSample('utiliser_display_contents_après', '400', '330')}}
+ +Cela permet que des éléments imbriqués agissent comme s'ils faisaient partie de la grille. C'est également une méthode de contournement pour certains problèmes qui seront résolus par les « sous-grilles » (subgrids) lorsqu'elles seront implémentées. Vous pouvez également utiliser display: contents de façon similaire avec les boîtes flexibles afin que les éléments imbriqués deviennent des éléments flexibles.
Comme on a pu le voir dans cet article, la disposition avec les grilles CSS n'est qu'un outil parmi d'autres. Il ne faut pas hésiter à combiner différentes méthodes de disposition afin d'obtenir les résultats souhaités.
+ +{{CSSRef}}
- -La valeur subgrid a été ajoutée par le module de spécification CSS Grid Layout de niveau 2 pour les propriétés {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}}. Dans ce guide, nous verrons comment utiliser cette valeur ainsi que les cas d'utilisation ou patrons de conception qui peuvent en bénéficier.
Attention : Cette fonctionnalité est uniquement disponible dans Firefox Nightly à des fins de tests. Vous pouvez télécharger Firefox Nightly afin de tester les exemples ci-après.
-subgridLorsqu'on ajoute display: grid à un conteneur, seuls les descendants directs deviennent des éléments de grille et peuvent être placés sur la grille ainsi créée. Les enfants de ces descendants seront disposés selon le flux habituel.
On peut imbriquer des grilles en utilisant display: grid sur un descendant direct du conteneur de grille mais les grilles créées seront indépendantes. On ne pourra pas récupérer le dimensionnement des pistes de la grille parente pour l'utiliser dans la grille fille. Il est donc difficile d'aligner des objets de la grille fille sur la grille parente.
Si on utilise la valeur subgrid pour grid-template-columns et/ou grid-template-rows, on pourra utiliser les pistes de la grille parente à l'intérieur plutôt que de créer des pistes indépendantes.
Ainsi, si on utilise grid-template-columns: subgrid et que la grille imbriquée s'inscrit dans trois colonnes du parent, la grille imbriquée possèdera trois pistes, dimensionnées comme celles du parent. Les gouttières (gaps) sont également héritées mais il est possible de les surcharger avec une valeur {{cssxref("gap")}} différente. Les noms des lignes peuvent être passés du parent à la grille fille et la grille fille peut aussi déclarer ses propres noms de ligne.
Dans l'exemple qui suit, on a une grille décomposée en neufs colonnes de 1fr chacune et avec quatre lignes qui mesurent au moins 100px.
On place un objet .item entre les colonnes 2 et 7 et entre les lignes 2 à 4. On indique que cet objet est lui-même une grille et on définit les pistes de colonnes comme sous-grille et on utilise des lignes normales. L'objet ainsi paramétré s'étalant sur 5 colonnes de la grille parente, cela signifie que la sous-grille possède cinq pistes pour les colonnes. On place alors un objet .subitem sur cette deuxième grille.
Les lignes horizontales de cet exemple ne sont pas une sous-grille et se comportent comme pour une grille imbriquée « classique ». La zone de la grille parente s'étend donc afin de pouvoir stocker le contenu de cette grille imbriquée.
- -{{EmbedGHLiveSample("css-examples/grid/subgrid/columns.html", '100%', 1200)}}
- -On notera que la numérotation recommence à l'intérieur de la grille imbriquée. La colonne n°1 de la sous-grille correspond donc ici à la colonne n°2 de la grille parente. Autrement dit, les numéros des colonnes et des lignes de la grille parente ne sont pas héritées via la sous-grille. Cela permet une disposition modulaire et indépendante de la position quant à la grille parente.
- -Dans l'exemple ci-après, on a la même disposition mais on utilise cette fois subgrid pour la propriété grid-template-rows et on définit explicitement des pistes pour les colonnes. Les colonnes se comportent donc comme pour une grille imbriquée mais les lignes de la sous-grille sont liées à celles de la grille parente.
{{EmbedGHLiveSample("css-examples/grid/subgrid/rows.html", '100%', 1200)}}
- -Bien entendu, on peut définir une sous-grille pour les lignes et pour les colonnes en même temps. Cela signifie que la sous-grille sera couplée à la grille parente pour les deux axes.
- -{{EmbedGHLiveSample("css-examples/grid/subgrid/both.html", '100%', 1200)}}
- -S'il vous faut placer automatiquement des objets et que vous ne connaissez pas leur quantité, faites attention à l'utilisation des sous-grilles : celles-ci empêcheront la création de lignes supplémentaires pour afficher le contenu.
- -Pour mieux illustrer ce point, voyons le prochain exemple (on utilise le même parent et la même sous-grille qu'avant) où on essaie d'afficher 12 éléments automatiquement dans une grille qui contient uniquement 10 cellules. La sous-grille étant couplée sur les deux axes (lignes et colonnes), il n'y a aucune place restante pour les deux éléments restants et ils sont donc placés sur la dernière piste de la grille, comme indiqué dans la spécification.
- -{{EmbedGHLiveSample("css-examples/grid/subgrid/no-implicit.html", '100%', 1200)}}
- -Si on retire la valeur sur grid-template-rows, on permet alors la création de pistes implicites. Ainsi, même si on n'aura pas l'alignement avec les pistes de la grille parente, on pourra avoir autant de lignes que nécessaire pour afficher l'ensemble du contenu.
{{EmbedGHLiveSample("css-examples/grid/subgrid/implicit.html", '100%', 1200)}}
- -Si vous utilisez {{cssxref("gap")}}, {{cssxref("column-gap")}} ou {{cssxref("row-gap")}} sur la grille parente, celles-ci seront héritées par la sous-grille et vous aurez donc le même espacement entre les pistes dans la sous-grille et dans la grille parente. Dans certains cas, on peut cependant vouloir d'avoir des espacements différents ou aucun espacement. Pourcela, on pourra utiliser les propriétés gap-* sur le conteneur de grille de la sous-grille.
Dans l'exempel qui suit, la grille parente définit des gouttières de 20 pixels pour les lignes et les colonnes et pour la sous-grille, on fixe la propriété row-gap à 0.
{{EmbedGHLiveSample("css-examples/grid/subgrid/gap.html", '100%', 1200)}}
- -Si on inspecte le résultat avec l'inspecteur de grille de Firefox, on pourra voir que l'espace auparavant occupé par la gouttière est partagé entre les cellules et permet d'agrandir la zone pour le contenu.
- -
Lorsqu'on utilise les grilles CSS, on peut fournir des noms aux lignes et positionner des objets sur la grille par rapport à ces noms plutôt qu'en utilisant les numéros de lignes. Les noms des lignes de la grille parente sont passés à la sous-grille et on peut donc placer des objets relativement à ces noms. Dans l'exempel qui suit, on a des lignes intitulées col-start et col-end sur la grille parente et on utilise ces noms pour placer un objet à l'intérieur de la sous-grille.
{{EmbedGHLiveSample("css-examples/grid/subgrid/line-names.html", '100%', 1200)}}
- -Il est aussi possible d'utiliser de nouveaux noms dans la sous-grille. Pour cela, on ajoutera une liste de noms entre crochets après le mot-clé subgrid. Si on disposait de 4 lignes sur la sous-grille, on pourrait alors écrire grid-template-columns: subgrid [line1] [line2] [line3] [line4].
Les noms indiquées sur la sous-grille sont ajoutés à ceux déjà portés par la grille parente et on peut donc utiliser les uns ou les autres. Dans l'exemple suivant, on illustre ce point en positionnant un objet en utilisant deux noms : l'un provenant de la grille parente et l'autre provenant de la grille fille.
- -{{EmbedGHLiveSample("css-examples/grid/subgrid/adding-line-names.html", '100%', 1200)}}
- -Exception faite qu'il faille veiller au contenu qui ne pourrait pas être affiché dans une sous-grille, cette dernière se comporte généralement comme une grille imbriquée. La différence principale réside dans le dimensionnement des pistes qui peut provenir de la grille parente. Toutefois (et comme avec une simple grille imbriquée), la taille du contenu placé sur la sous-grille peut modifier le dimensionnement des pistes (lorsqu'on utilise un dimensionnement qui s'adapte au contenu). Ainsi, les pistes dimensionnées automatiquement s'agrandiront pour contenir les objets de la grille parente et aussi ceux de la sous-grille.
- -Une telle ressemblance entre subgrid et les grilles imbriquées peut faciliter le passage d'une méthode à l'autre. Ainsi, si on réalise qu'il faut une grille implicite sur les lignes, il suffit de retirer subgrid pour la propriété grid-template-rows (et éventuellement fournir une valeur à grid-auto-rows afin de contrôler le dimensionnement implicite).
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Grid 2")}} | -{{Spec2("CSS Grid 2")}} | -Définition initiale des sous-grilles (subgrids). | -
{{CSSRef}}
+ +La valeur subgrid a été ajoutée par le module de spécification CSS Grid Layout de niveau 2 pour les propriétés {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}}. Dans ce guide, nous verrons comment utiliser cette valeur ainsi que les cas d'utilisation ou patrons de conception qui peuvent en bénéficier.
Attention : Cette fonctionnalité est uniquement disponible dans Firefox Nightly à des fins de tests. Vous pouvez télécharger Firefox Nightly afin de tester les exemples ci-après.
+subgridLorsqu'on ajoute display: grid à un conteneur, seuls les descendants directs deviennent des éléments de grille et peuvent être placés sur la grille ainsi créée. Les enfants de ces descendants seront disposés selon le flux habituel.
On peut imbriquer des grilles en utilisant display: grid sur un descendant direct du conteneur de grille mais les grilles créées seront indépendantes. On ne pourra pas récupérer le dimensionnement des pistes de la grille parente pour l'utiliser dans la grille fille. Il est donc difficile d'aligner des objets de la grille fille sur la grille parente.
Si on utilise la valeur subgrid pour grid-template-columns et/ou grid-template-rows, on pourra utiliser les pistes de la grille parente à l'intérieur plutôt que de créer des pistes indépendantes.
Ainsi, si on utilise grid-template-columns: subgrid et que la grille imbriquée s'inscrit dans trois colonnes du parent, la grille imbriquée possèdera trois pistes, dimensionnées comme celles du parent. Les gouttières (gaps) sont également héritées mais il est possible de les surcharger avec une valeur {{cssxref("gap")}} différente. Les noms des lignes peuvent être passés du parent à la grille fille et la grille fille peut aussi déclarer ses propres noms de ligne.
Dans l'exemple qui suit, on a une grille décomposée en neufs colonnes de 1fr chacune et avec quatre lignes qui mesurent au moins 100px.
On place un objet .item entre les colonnes 2 et 7 et entre les lignes 2 à 4. On indique que cet objet est lui-même une grille et on définit les pistes de colonnes comme sous-grille et on utilise des lignes normales. L'objet ainsi paramétré s'étalant sur 5 colonnes de la grille parente, cela signifie que la sous-grille possède cinq pistes pour les colonnes. On place alors un objet .subitem sur cette deuxième grille.
Les lignes horizontales de cet exemple ne sont pas une sous-grille et se comportent comme pour une grille imbriquée « classique ». La zone de la grille parente s'étend donc afin de pouvoir stocker le contenu de cette grille imbriquée.
+ +{{EmbedGHLiveSample("css-examples/grid/subgrid/columns.html", '100%', 1200)}}
+ +On notera que la numérotation recommence à l'intérieur de la grille imbriquée. La colonne n°1 de la sous-grille correspond donc ici à la colonne n°2 de la grille parente. Autrement dit, les numéros des colonnes et des lignes de la grille parente ne sont pas héritées via la sous-grille. Cela permet une disposition modulaire et indépendante de la position quant à la grille parente.
+ +Dans l'exemple ci-après, on a la même disposition mais on utilise cette fois subgrid pour la propriété grid-template-rows et on définit explicitement des pistes pour les colonnes. Les colonnes se comportent donc comme pour une grille imbriquée mais les lignes de la sous-grille sont liées à celles de la grille parente.
{{EmbedGHLiveSample("css-examples/grid/subgrid/rows.html", '100%', 1200)}}
+ +Bien entendu, on peut définir une sous-grille pour les lignes et pour les colonnes en même temps. Cela signifie que la sous-grille sera couplée à la grille parente pour les deux axes.
+ +{{EmbedGHLiveSample("css-examples/grid/subgrid/both.html", '100%', 1200)}}
+ +S'il vous faut placer automatiquement des objets et que vous ne connaissez pas leur quantité, faites attention à l'utilisation des sous-grilles : celles-ci empêcheront la création de lignes supplémentaires pour afficher le contenu.
+ +Pour mieux illustrer ce point, voyons le prochain exemple (on utilise le même parent et la même sous-grille qu'avant) où on essaie d'afficher 12 éléments automatiquement dans une grille qui contient uniquement 10 cellules. La sous-grille étant couplée sur les deux axes (lignes et colonnes), il n'y a aucune place restante pour les deux éléments restants et ils sont donc placés sur la dernière piste de la grille, comme indiqué dans la spécification.
+ +{{EmbedGHLiveSample("css-examples/grid/subgrid/no-implicit.html", '100%', 1200)}}
+ +Si on retire la valeur sur grid-template-rows, on permet alors la création de pistes implicites. Ainsi, même si on n'aura pas l'alignement avec les pistes de la grille parente, on pourra avoir autant de lignes que nécessaire pour afficher l'ensemble du contenu.
{{EmbedGHLiveSample("css-examples/grid/subgrid/implicit.html", '100%', 1200)}}
+ +Si vous utilisez {{cssxref("gap")}}, {{cssxref("column-gap")}} ou {{cssxref("row-gap")}} sur la grille parente, celles-ci seront héritées par la sous-grille et vous aurez donc le même espacement entre les pistes dans la sous-grille et dans la grille parente. Dans certains cas, on peut cependant vouloir d'avoir des espacements différents ou aucun espacement. Pourcela, on pourra utiliser les propriétés gap-* sur le conteneur de grille de la sous-grille.
Dans l'exempel qui suit, la grille parente définit des gouttières de 20 pixels pour les lignes et les colonnes et pour la sous-grille, on fixe la propriété row-gap à 0.
{{EmbedGHLiveSample("css-examples/grid/subgrid/gap.html", '100%', 1200)}}
+ +Si on inspecte le résultat avec l'inspecteur de grille de Firefox, on pourra voir que l'espace auparavant occupé par la gouttière est partagé entre les cellules et permet d'agrandir la zone pour le contenu.
+ +
Lorsqu'on utilise les grilles CSS, on peut fournir des noms aux lignes et positionner des objets sur la grille par rapport à ces noms plutôt qu'en utilisant les numéros de lignes. Les noms des lignes de la grille parente sont passés à la sous-grille et on peut donc placer des objets relativement à ces noms. Dans l'exempel qui suit, on a des lignes intitulées col-start et col-end sur la grille parente et on utilise ces noms pour placer un objet à l'intérieur de la sous-grille.
{{EmbedGHLiveSample("css-examples/grid/subgrid/line-names.html", '100%', 1200)}}
+ +Il est aussi possible d'utiliser de nouveaux noms dans la sous-grille. Pour cela, on ajoutera une liste de noms entre crochets après le mot-clé subgrid. Si on disposait de 4 lignes sur la sous-grille, on pourrait alors écrire grid-template-columns: subgrid [line1] [line2] [line3] [line4].
Les noms indiquées sur la sous-grille sont ajoutés à ceux déjà portés par la grille parente et on peut donc utiliser les uns ou les autres. Dans l'exemple suivant, on illustre ce point en positionnant un objet en utilisant deux noms : l'un provenant de la grille parente et l'autre provenant de la grille fille.
+ +{{EmbedGHLiveSample("css-examples/grid/subgrid/adding-line-names.html", '100%', 1200)}}
+ +Exception faite qu'il faille veiller au contenu qui ne pourrait pas être affiché dans une sous-grille, cette dernière se comporte généralement comme une grille imbriquée. La différence principale réside dans le dimensionnement des pistes qui peut provenir de la grille parente. Toutefois (et comme avec une simple grille imbriquée), la taille du contenu placé sur la sous-grille peut modifier le dimensionnement des pistes (lorsqu'on utilise un dimensionnement qui s'adapte au contenu). Ainsi, les pistes dimensionnées automatiquement s'agrandiront pour contenir les objets de la grille parente et aussi ceux de la sous-grille.
+ +Une telle ressemblance entre subgrid et les grilles imbriquées peut faciliter le passage d'une méthode à l'autre. Ainsi, si on réalise qu'il faut une grille implicite sur les lignes, il suffit de retirer subgrid pour la propriété grid-template-rows (et éventuellement fournir une valeur à grid-auto-rows afin de contrôler le dimensionnement implicite).
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Grid 2")}} | +{{Spec2("CSS Grid 2")}} | +Définition initiale des sous-grilles (subgrids). | +
Les sprites sont utilisées dans de nombreuses applications web où de multiples images sont utilisées. Au lieu d'avoir une image par fichier, on économise de la bande passante et de la mémoire en les envoyant toute dans le même fichier, ainsi, le nombre de requêtes HTTP diminue. On utilise alors background-position pour choisir l'image qu'on souhaite utiliser.
Note : Avec HTTP/2, il peut être plus judicieux d'utiliser de nombreuses « petites » requêtes.
-Supposons qu'une image est affichée pour chaque élement de la classe toolbtn :
.toolbtn {
- background: url('myfile.png');
- display: inline-block;
- height: 20px;
- width: 20px;
-}
-
-Une position peut être ajoutée avec les valeurs x et y après {{cssxref("url()")}} pour décaler l'image de fond ({{cssxref("background")}}). Cela fonctionne aussi avec {{cssxref("background-position")}}. Par exemple :
- -#btn1 {
- background-position: -20px 0px;
-}
-
-#btn2 {
- background-position: -40px 0px;
-}
-
-L'élément avec l'ID « btn1 » bouge vers la gauche de 20 pixels et l'élément avec l'ID « btn2 » vers la gauche de 40 pixels (en présumant que ces deux éléments aient aussi la classe toolbtn).
De la même manière, vous pouvez faire un effet de transition au survol :
- -#btn:hover {
- background-position: <pixels shifted right>px <pixels shifted down>px;
-}
-
-Les sprites sont utilisées dans de nombreuses applications web où de multiples images sont utilisées. Au lieu d'avoir une image par fichier, on économise de la bande passante et de la mémoire en les envoyant toute dans le même fichier, ainsi, le nombre de requêtes HTTP diminue. On utilise alors background-position pour choisir l'image qu'on souhaite utiliser.
Note : Avec HTTP/2, il peut être plus judicieux d'utiliser de nombreuses « petites » requêtes.
+Supposons qu'une image est affichée pour chaque élement de la classe toolbtn :
.toolbtn {
+ background: url('myfile.png');
+ display: inline-block;
+ height: 20px;
+ width: 20px;
+}
+
+Une position peut être ajoutée avec les valeurs x et y après {{cssxref("url()")}} pour décaler l'image de fond ({{cssxref("background")}}). Cela fonctionne aussi avec {{cssxref("background-position")}}. Par exemple :
+ +#btn1 {
+ background-position: -20px 0px;
+}
+
+#btn2 {
+ background-position: -40px 0px;
+}
+
+L'élément avec l'ID « btn1 » bouge vers la gauche de 20 pixels et l'élément avec l'ID « btn2 » vers la gauche de 40 pixels (en présumant que ces deux éléments aient aussi la classe toolbtn).
De la même manière, vous pouvez faire un effet de transition au survol :
+ +#btn:hover {
+ background-position: <pixels shifted right>px <pixels shifted down>px;
+}
+
+CSS Images est un module CSS qui définit les types d'images qui peuvent être utilisés (le type {{cssxref("<image>")}}, les URLs qu'elles contiennent, les dégradés et autres types d'images), comment les redimensionner et comment elles, ainsi que le contenu remplacé, interagissent avec les différents modèles de mise en page.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Images")}} | -{{Spec2("CSS4 Images")}} | -Ajout de {{CSSxRef("image-resolution")}},{{CSSxRef("conic-gradient")}} et {{CSSxRef("_image", "image()")}}. | -
| {{SpecName("CSS3 Images")}} | -{{Spec2("CSS3 Images")}} | -Ajout de {{CSSxRef("image-orientation")}}, {{CSSxRef("image-rendering")}}, {{CSSxRef("object-fit")}} et {{CSSxRef("object-position")}} | -
| {{SpecName("Compat", "#css-%3Cimage%3E-type", "CSS Gradients")}} | -{{Spec2("Compat")}} | -Standardisation de la version préfixée avec -webkit pour les valeurs de fonctions de dégradé |
-
| {{SpecName("CSS3 Values", "#urls", "<url>")}} | -{{Spec2("CSS3 Values")}} | -- |
| {{Specname("CSS2.1", "syndata.html#uri", "<uri>")}} | -{{Spec2("CSS2.1")}} | -- |
| {{SpecName("CSS1", "#url", "<url>")}} | -{{Spec2("CSS1")}} | -Définition intiale. | -
CSS Images est un module CSS qui définit les types d'images qui peuvent être utilisés (le type {{cssxref("<image>")}}, les URLs qu'elles contiennent, les dégradés et autres types d'images), comment les redimensionner et comment elles, ainsi que le contenu remplacé, interagissent avec les différents modèles de mise en page.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Images")}} | +{{Spec2("CSS4 Images")}} | +Ajout de {{CSSxRef("image-resolution")}},{{CSSxRef("conic-gradient")}} et {{CSSxRef("_image", "image()")}}. | +
| {{SpecName("CSS3 Images")}} | +{{Spec2("CSS3 Images")}} | +Ajout de {{CSSxRef("image-orientation")}}, {{CSSxRef("image-rendering")}}, {{CSSxRef("object-fit")}} et {{CSSxRef("object-position")}} | +
| {{SpecName("Compat", "#css-%3Cimage%3E-type", "CSS Gradients")}} | +{{Spec2("Compat")}} | +Standardisation de la version préfixée avec -webkit pour les valeurs de fonctions de dégradé |
+
| {{SpecName("CSS3 Values", "#urls", "<url>")}} | +{{Spec2("CSS3 Values")}} | ++ |
| {{Specname("CSS2.1", "syndata.html#uri", "<uri>")}} | +{{Spec2("CSS2.1")}} | ++ |
| {{SpecName("CSS1", "#url", "<url>")}} | +{{Spec2("CSS1")}} | +Définition intiale. | +
Les dégradés CSS sont représentés par le type de donnée {{cssxref("<gradient>")}} qui est un sous-ensemble du type {{cssxref("<image>")}}. L'utilisation de dégradés CSS permet d'afficher des transitions douces entre deux couleurs ou plus. Il existe trois sortes de degradés : les dégradés linéaires (cf. {{cssxref("linear-gradient")}}, les dégradés radiaux (cf. {{cssxref("radial-gradient")}}) et les dégradés coniques (cf. {{cssxref("conic-gradient")}}).
- -Les dégradés peuvent être répétés avec {{cssxref("repeating-linear-gradient")}}, {{cssxref("repeating-radial-gradient")}} et {{cssxref("repeating-conic-gradient")}}.
- -Les dégradés peuvent être utilisés à chaque endroit où on peut utiliser une image (par exemple les arrière-plans). En évitant d'utiliser des images pour ces effets, le temps de téléchargement et la bande passante utilisée sont réduits. En outre, comme le dégradé est généré par le navigateur, les objets concernés se comporteront mieux en cas de zoom et votre mise en page peut être ajustée de manière plus flexible.
- -Dans cet article, nous verrons d'abord les dégradés linéaires et détaillerons les fonctionnalités associées avant de passer aux dégradés radiaux, coniques et à leurs formes répétées.
- -Pour créer un dégradé linéaire, définissez un point de départ et une direction (sous la forme d'un angle) selon laquelle l'effet de dégradé sera appliqué.
- -Voici un dégradé linéaire qui commence au centre (horizontalement) et en haut (verticalement), du bleu vers le blanc.
- -.linear-gradient {
- background: linear-gradient(blue, white);
-}
-
-div {
- width: 120px;
- height: 120px;
-}
-
-<div class="linear-gradient"></div>- -
{{EmbedLiveSample("Dégradés_linéaires_simples",120,120)}}
- -.linear-gradient {
- background: linear-gradient(to right, blue, white);
-}
-
-div {
- width: 120px;
- height: 120px;
-}
-
-<div class="linear-gradient"></div> -- -
{{EmbedLiveSample("Appliquer_un_dégradé_de_gauche_à_droite",120,120)}}
- -.linear-gradient {
- background: linear-gradient(to bottom right, blue, white);
-}
-
-div {
- width: 200px;
- height: 100px;
-}
-
-<div class="linear-gradient"></div> -- -
{{EmbedLiveSample("Appliquer_un_dégradé_en_diagonale",200,100)}}
- -Si aucun angle n'est spécifié, il sera déterminé automatiquement à partir de la position de départ. Si vous désirez un meilleur contrôle sur la direction du dégradé, vous pouvez définir cet angle précisément.
- -.linear-gradient {
- background: linear-gradient(70deg, blue, pink);
-}
-
-div {
- width: 120px;
- height: 120px;
-}
-
-<div class="linear-gradient"></div> -- -
{{EmbedLiveSample("Utilisation_d’angles",120,120)}}
- -L'angle est spécifié entre une ligne verticale et la ligne de dégradé, dans le sens inverse des aiguilles d'une montre. Autrement dit, 0deg crée un dégradé vertical de bas en haut, tandis que 90deg génère un dégradé horizontal de la gauche vers la droite :

background: linear-gradient(<angle>, red, white);- -
Les dégradés CSS ne sont pas limités à deux couleurs, il est possible d'en utiliser autant que souhaité :
- -.linear-gradient {
- background: linear-gradient(red, yellow, blue, orange);
-}
-
-div {
- width: 120px;
- height: 120px;
-}
-
-<div class="linear-gradient"></div> -- -
{{EmbedLiveSample("Utiliser_plus_de_deux_couleurs",120,120)}}
- -Les arrêts de couleurs sont des points sur la ligne de dégradé qui doivent avoir une couleur précise. Leur emplacement peut être spécifié sous la forme d'un pourcentage de la longueur de la ligne, ou d'une longueur absolue. Vous pouvez en spécifier autant que vous voulez pour obtenir l'effet désiré. Si vous spécifiez un pourcentage, 0% indique le point de départ, et 100% le point d'arrivée ; il est cependant possible d'utiliser des valeurs en dehors de cet intervalle si nécessaire pour obtenir l'effet désiré.
.linear-gradient {
- background: linear-gradient(to left, lime, lime 28px, red 77%, cyan);
-}
-
-div {
- width: 120px;
- height: 120px;
-}
-
-<div class="linear-gradient"></div> -- -
{{EmbedLiveSample("Arrêts_de_couleur",120,120)}}
- -Notez que la première et la dernière couleur n'indiquent pas d'emplacement ; en conséquence les valeurs 0% et 100% sont assignées automatiquement. La couleur centrale indique un emplacement à 80%, ce qui la place proche du bas.
- -Par défaut, les dégradés passent linéairement d'une couleur à une autre. On peut également utiliser une indication afin de définir l'emplacement où la couleur médiane sera atteinte. Dans l'exemple qui suit, plutôt que d'attendre la moitié de la transition au milieu, on la place à 10% de l'axe.
- -div {
- width:120px;
- height: 120px;
- float: left;
- margin-right: 10px;
-}
-
-.color-hint {
- background: linear-gradient(blue, 10%, pink);
-}
-
-.simple-linear {
- background: linear-gradient(blue, pink);
-}
-
-<div class="color-hint"></div> -<div class="simple-linear"></div> -- -
{{EmbedLiveSample("Utiliser_des_indications_de_couleurs",120,120)}}
- -Les gradients gèrent la transparence. Vous pouvez l'utiliser, par exemple, en superposant plusieurs fonds pour créer des effets sur les images. Par exemple :
- -.linear-gradient {
- background: linear-gradient(to right, transparent, mistyrose),
- url("https://mdn.mozillademos.org/files/15525/critters.png");
-}
-
-div {
- width: 300px;
- height: 150px;
-}
-
-<div class="linear-gradient"></div> -- -
{{EmbedLiveSample("Transparence_et_dégradés",300,150)}}
- -Les fonds sont superposés avec le premier fond spécifié au dessus, et chaque fond supplémentaire par dessous.
- -Pour créer une ligne franche entre deux couleurs et avoir deux bandes plutôt qu'un dégradé progressif, on peut définir deux points d'arrêt de couleur au même endroit. Dans l'exemple suivant, on a deux couleurs pour un même emplacement de point d'arrêt situé à 50%:
.striped {
- background: linear-gradient(to bottom left, cyan 50%, palegoldenrod 50%);
-}
-
-{{EmbedLiveSample('Créer_des_lignes_franches', 120, 120)}}
- -Pour inclure une bande d'une couleur donnée, sans transition au sein du dégradé, on utilisera deux points d'arrêt successif avec la même couleur. Ainsi, la couleur sera atteinte au premier point d'arrêt puis sera conservée jusqu'au suivant.
- - - - - -.multiposition-stops {
- background: linear-gradient(to left,
- lime 20%, red 30%, red 45%, cyan 55%, cyan 70%, yellow 80% );
- background: linear-gradient(to left,
- lime 20%, red 30% 45%, cyan 55% 70%, yellow 80% );
-}
-.multiposition-stop2 {
- background: linear-gradient(to left,
- lime 25%, red 25%, red 50%, cyan 50%, cyan 75%, yellow 75% );
- background: linear-gradient(to left,
- lime 25%, red 25% 50%, cyan 50% 75%, yellow 75% );
-}
-
-
-{{EmbedLiveSample('Créer_des_bandes_de_couleur', 120, 120)}}
- -Dans le premier exemple ci-avant, le bleu vert commence au début puis progresse jusqu'à 20% avant de transitionner vers le rouge pendant les 10% qui suivent. Le rouge reste vif entre 30% et 45% avant de transitionner vers un cyan pendant 15% etc.
- -Dans le deuxième exemple, le deuxième point d'arrêt pour chaque couleur est situé au même emplacement que le premier point d'arrêt pour la couleur suivante et on obtient donc des bandes successives.
- -Par défaut, un dégradé progresse linéairement entre les deux couleurs et la couleur médiane est atteinte à la moitié du parcours. Toutefois, si on veut atteindre cette couleur médiane plus tôt ou plus tard, on peut fournir une indication permettant de définir l'emplacement du milieu de la transition. Dans l'exemple qui suit, la couleur est à la moitié de la transition entre le vert et le cyan à 20% du dégradé (et non à 50%). Le deuxième exemple ne contient pas de telle indication et la transition s'effectue linéairement. Vous pouvez ainsi observer l'impact d'une telle indication.
- - - - - -.colorhint-gradient {
- background: linear-gradient(to top, black, 20%, cyan);
-}
-.regular-progression {
- background: linear-gradient(to top, black, cyan);
-}
-
-
-{{EmbedLiveSample("Contrôler_la_progression_du_dégradé", 120, 120)}}
- -Il est possible d' « empiler » différents dégradés. Il suffit que les dégradés sur les couches supérieures ne soient pas complètement opaques pour qu'on puisse voir ceux des couches inférieures.
- -.linear-gradient {
- background:
- linear-gradient(217deg, rgba(255,0,0,.8), rgba(255,0,0,0) 70.71%),
- linear-gradient(127deg, rgba(0,255,0,.8), rgba(0,255,0,0) 70.71%),
- linear-gradient(336deg, rgba(0,0,255,.8), rgba(0,0,255,0) 70.71%);
-}
-
-div {
- width: 100px;
- height: 100px;
-}
-
-<div class="linear-gradient"></div> -- -
{{EmbedLiveSample("Empilement_de_dégradés")}}
- -Les dégradés radiaux sont similaire aux dégradés linéaires mais permettent d'obtenir un effet qui rayonne à partir d'un point. Il est possible de créer des dégradés circulaires ou elliptiques.
- -Note : Dans les exemples suivants, nous continuons d'utiliser le même {{HTMLElement("div")}} et, pour ne pas surcharger la lecture, n'afficherons plus que la règle CSS spécifique au dégradé.
-De la même façon qu'avec les dégradés linéaires, il suffit de deux couleurs pour créer un dégradé radial.
- - - - - -.simple-radial {
- background: radial-gradient(red, blue);
-}
-
-
-{{EmbedLiveSample('Un_dégradé_radial_simple', 120, 120)}}
- -À nouveau, comme pour les dégradés linéaires, il est possible de placer des arrêts de couleur en précisant un pourcentage ou une distance.
- - - - - -.radial-gradient {
- background: radial-gradient(red 10px, yellow 30%, #1e90ff 50%);
-}
-
-
-{{EmbedLiveSample("Positionner_les_points_d’arrêt", 120, 120)}}
- -La position du centre du dégradé peut être définie avec des mots-clés, des pourcetages ou des longueurs. Deux valeurs permettent de placer le centre sur les deux axes. Si une seule valeur est fournie, elle sera utilisée pour les deux axes.
- - - - - -.radial-gradient {
- background: radial-gradient(at 0% 30%, red 10px, yellow 30%, #1e90ff 50%);
-}
-
-
-{{EmbedLiveSample('Utiliser_closest-side_pour_les_ellipses', 240, 100)}}
- -À la différence des dégradés linéaires, il est possible de définir la taille d'un dégradé radial.
- -closest-side pour les ellipsesDans l'exemple qui suit, on utilise la valeur closest-side pour la taille. Cela signifie que la taille du dégradé sera définie par la distance entre le point central de départ et le côté le plus proche de la boîte englobante.
.radial-ellipse-side {
- background: radial-gradient(ellipse closest-side,
- red, yellow 10%, #1e90ff 50%, beige);
-}
-
-
-{{EmbedLiveSample('Utiliser_closest-side_pour_les_ellipses', 240, 100)}}
- -farthest-corner pour les ellipsesCet exemple ressemble fortement au précédent mais on utilise ici farthest-corner qui crée un dégradé dont la distance est celle entre le point de départ central et le côté le plus éloigné de la boîte englobante.
.radial-ellipse-far {
- background: radial-gradient(ellipse farthest-corner,
- red, yellow 10%, #1e90ff 50%, beige);
-}
-
-
-{{EmbedLiveSample('Utiliser_farthest-corner_pour_les_ellipses', 240, 100)}}
- -closest-side pour les cerclesPour cet exemple, on utilise closest-side qui permet de créer un cercle dont le rayon est la distance entre le point de départ central et le côté le plus proche de la boîte englobante. Ici, le rayon du cercle est donc la moitié de la hauteur de la boîte car les bords haut et bas sont équidistants du point de départ et plus proches que les côtés gauche et droit.
.radial-circle-close {
- background: radial-gradient(circle closest-side,
- red, yellow 10%, #1e90ff 50%, beige);
-}
-
-
-{{EmbedLiveSample('Utiliser_closest-side_pour_les_cercles', 240, 120)}}
- -À l'instar des dégradés linéaires, on peut empiler des dégradés radiaux. Le premier dégradé indiqué sera celui sur la couche la plus haute et le dernier sera celui sur la couche la plus basse.
- - - - - -.stacked-radial {
- background:
- radial-gradient(circle at 50% 0,
- rgba(255,0,0,.5),
- rgba(255,0,0,0) 70.71%),
- radial-gradient(circle at 6.7% 75%,
- rgba(0,0,255,.5),
- rgba(0,0,255,0) 70.71%),
- radial-gradient(circle at 93.3% 75%,
- rgba(0,255,0,.5),
- rgba(0,255,0,0) 70.71%) beige;
- border-radius: 50%;
-}
-
-
-{{EmbedLiveSample('Empiler_des_dégradés_radiaux', 200, 200)}}
- -La fonction conic-gradient() permet de créer une image composée d'un dégradé de couleurs tournant autour d'un point (plutôt qu'une progression radiale). On pourra ainsi utiliser des dégradés coniques pour créer des camemberts ou des éventails de couleurs.
La syntaxe de conic-gradient() est semblable à celle de radial-gradient() mais les arrêts de couleur seront placés le long d'un arc plutôt que le long de la ligne émise depuis le centre. Les arrêts de couleur seront exprimés en pourcentages ou en degrés, ils ne pourront pas être exprimés sous forme de longueurs absolues.
Pour un dégradé radial, la transition entre les couleurs forme une ellipse qui progresse vers l'extérieur dans toutes les directions. Un dégradé conique verra la transition progresser le long de l'arc autour du cercle, dans le sens horaire. À l'instar des dégradés radiaux, il est possible de positionner le centre du dégradé et à l'instar des dégradés linéaires, on peut modifier l'angle du dégradé.
- -Comme pour les dégradés linéaires et radiaux, il suffit de deux couleurs pour créer un dégradé conique. Par défaut, le centre du dégradé sera situé au centre (point 50% 50%) et le début du dégradé commencera vers le haut :
- - - - - -.simple-conic {
- background: conic-gradient(red, blue);
-}
-
-
-{{EmbedLiveSample('Un_dégradé_conique_simple', 120, 120)}}
-À l'instar des dégradés radiaux, on peut placer le centre d'un dégradé conique à l'aide de mots-clés, de valeurs (longueurs ou pourcentages) avec le mot-clé at.
.conic-gradient {
- background: conic-gradient(at 0% 30%, red 10%, yellow 30%, #1e90ff 50%);
-}
-
-
-{{EmbedLiveSample('Positionner_le_centre', 120, 120)}}
-.conic-gradient {
- background: conic-gradient(from 45deg, red, orange, yellow, green, blue, purple);
-}
-
-
-{{EmbedLiveSample("Modifier_l’angle", 120, 120)}}
-Les propriétés {{cssxref("linear-gradient")}}, {{cssxref("radial-gradient")}} et {{cssxref("conic-gradient")}} ne permettent pas automatiquement de répéter les arrêts de couleur. Toutefois, les fonctions {{cssxref("repeating-linear-gradient")}}, {{cssxref("repeating-radial-gradient")}} et {{cssxref("repeating-conic-gradient")}} offrent cette fonctionnalité.
- -La taille de la portion (ligne ou arc) répétée est donnée par la longueur (ou l'arc) entre le premier arrêt de couleur et le dernier arrêt de couleur. Si on n'indique pas de coordonnées pour le premier et le dernier arrêts, ceux-ci prendront respectivement 0 et 100%. Aussi, le motif unitaire couvrira l'ensemble du dégradé et il n'y aura pas de répétition. Il faut donc indiquer au moins un des deux arrêts (entre le premier et le dernier) pour créer une répétition.
- -Dans cet exemple, on utilise la fonction {{cssxref("repeating-linear-gradient")}} afin de créer un dégradé linéaire qui se répète le long d'une ligne. Les couleurs forment un cycle lorsque le motif se répète.
- - - - - -.repeating-linear {
- background: repeating-linear-gradient(-45deg, red, red 5px, blue 5px, blue 10px);
-}
-
-
-{{EmbedLiveSample('Répéter_un_dégradé_linéaire', 120, 120)}}
- -.multi-repeating-linear {
- background:
- repeating-linear-gradient(190deg, rgba(255, 0, 0, 0.5) 40px,
- rgba(255, 153, 0, 0.5) 80px, rgba(255, 255, 0, 0.5) 120px,
- rgba(0, 255, 0, 0.5) 160px, rgba(0, 0, 255, 0.5) 200px,
- rgba(75, 0, 130, 0.5) 240px, rgba(238, 130, 238, 0.5) 280px,
- rgba(255, 0, 0, 0.5) 300px),
- repeating-linear-gradient(-190deg, rgba(255, 0, 0, 0.5) 30px,
- rgba(255, 153, 0, 0.5) 60px, rgba(255, 255, 0, 0.5) 90px,
- rgba(0, 255, 0, 0.5) 120px, rgba(0, 0, 255, 0.5) 150px,
- rgba(75, 0, 130, 0.5) 180px, rgba(238, 130, 238, 0.5) 210px,
- rgba(255, 0, 0, 0.5) 230px),
- repeating-linear-gradient(23deg, red 50px, orange 100px,
- yellow 150px, green 200px, blue 250px,
- indigo 300px, violet 350px, red 370px);
-}
-
-
-{{EmbedLiveSample('Répéter_plusieurs_dégradés_linéaires', 600, 400)}}
- -.plaid-gradient {
- background:
- repeating-linear-gradient(90deg, transparent, transparent 50px,
- rgba(255, 127, 0, 0.25) 50px, rgba(255, 127, 0, 0.25) 56px,
- transparent 56px, transparent 63px,
- rgba(255, 127, 0, 0.25) 63px, rgba(255, 127, 0, 0.25) 69px,
- transparent 69px, transparent 116px,
- rgba(255, 206, 0, 0.25) 116px, rgba(255, 206, 0, 0.25) 166px),
- repeating-linear-gradient(0deg, transparent, transparent 50px,
- rgba(255, 127, 0, 0.25) 50px, rgba(255, 127, 0, 0.25) 56px,
- transparent 56px, transparent 63px,
- rgba(255, 127, 0, 0.25) 63px, rgba(255, 127, 0, 0.25) 69px,
- transparent 69px, transparent 116px,
- rgba(255, 206, 0, 0.25) 116px, rgba(255, 206, 0, 0.25) 166px),
- repeating-linear-gradient(-45deg, transparent, transparent 5px,
- rgba(143, 77, 63, 0.25) 5px, rgba(143, 77, 63, 0.25) 10px),
- repeating-linear-gradient(45deg, transparent, transparent 5px,
- rgba(143, 77, 63, 0.25) 5px, rgba(143, 77, 63, 0.25) 10px);
-}
-
-
-{{EmbedLiveSample('Créer_un_tartan', 200, 200)}}
- -Ici, on utilise la fonction {{cssxref("repeating-radial-gradient")}} afin de créer un dégradé radial qui se répète. Les couleurs utilisées forment un cycle lorsque le motif unitaire recommence.
- - - - - -.repeating-radial {
- background: repeating-radial-gradient(black, black 5px, white 5px, white 10px);
-}
-
-
-{{EmbedLiveSample('Répéter_des_dégradés_radiaux', 120, 120)}}
- -.multi-target {
- background:
- repeating-radial-gradient(ellipse at 80% 50%,rgba(0,0,0,0.5),
- rgba(0,0,0,0.5) 15px, rgba(255,255,255,0.5) 15px,
- rgba(255,255,255,0.5) 30px) top left no-repeat,
- repeating-radial-gradient(ellipse at 20% 50%,rgba(0,0,0,0.5),
- rgba(0,0,0,0.5) 10px, rgba(255,255,255,0.5) 10px,
- rgba(255,255,255,0.5) 20px) top left no-repeat yellow;
- background-size: 200px 200px, 150px 150px;
-}
-
-
-{{EmbedLiveSample('Répéter_plusieurs_dégradés_radiaux', 250, 150)}}
- -Les dégradés CSS sont représentés par le type de donnée {{cssxref("<gradient>")}} qui est un sous-ensemble du type {{cssxref("<image>")}}. L'utilisation de dégradés CSS permet d'afficher des transitions douces entre deux couleurs ou plus. Il existe trois sortes de degradés : les dégradés linéaires (cf. {{cssxref("linear-gradient")}}, les dégradés radiaux (cf. {{cssxref("radial-gradient")}}) et les dégradés coniques (cf. {{cssxref("conic-gradient")}}).
+ +Les dégradés peuvent être répétés avec {{cssxref("repeating-linear-gradient")}}, {{cssxref("repeating-radial-gradient")}} et {{cssxref("repeating-conic-gradient")}}.
+ +Les dégradés peuvent être utilisés à chaque endroit où on peut utiliser une image (par exemple les arrière-plans). En évitant d'utiliser des images pour ces effets, le temps de téléchargement et la bande passante utilisée sont réduits. En outre, comme le dégradé est généré par le navigateur, les objets concernés se comporteront mieux en cas de zoom et votre mise en page peut être ajustée de manière plus flexible.
+ +Dans cet article, nous verrons d'abord les dégradés linéaires et détaillerons les fonctionnalités associées avant de passer aux dégradés radiaux, coniques et à leurs formes répétées.
+ +Pour créer un dégradé linéaire, définissez un point de départ et une direction (sous la forme d'un angle) selon laquelle l'effet de dégradé sera appliqué.
+ +Voici un dégradé linéaire qui commence au centre (horizontalement) et en haut (verticalement), du bleu vers le blanc.
+ +.linear-gradient {
+ background: linear-gradient(blue, white);
+}
+
+div {
+ width: 120px;
+ height: 120px;
+}
+
+<div class="linear-gradient"></div>+ +
{{EmbedLiveSample("Dégradés_linéaires_simples",120,120)}}
+ +.linear-gradient {
+ background: linear-gradient(to right, blue, white);
+}
+
+div {
+ width: 120px;
+ height: 120px;
+}
+
+<div class="linear-gradient"></div> ++ +
{{EmbedLiveSample("Appliquer_un_dégradé_de_gauche_à_droite",120,120)}}
+ +.linear-gradient {
+ background: linear-gradient(to bottom right, blue, white);
+}
+
+div {
+ width: 200px;
+ height: 100px;
+}
+
+<div class="linear-gradient"></div> ++ +
{{EmbedLiveSample("Appliquer_un_dégradé_en_diagonale",200,100)}}
+ +Si aucun angle n'est spécifié, il sera déterminé automatiquement à partir de la position de départ. Si vous désirez un meilleur contrôle sur la direction du dégradé, vous pouvez définir cet angle précisément.
+ +.linear-gradient {
+ background: linear-gradient(70deg, blue, pink);
+}
+
+div {
+ width: 120px;
+ height: 120px;
+}
+
+<div class="linear-gradient"></div> ++ +
{{EmbedLiveSample("Utilisation_d’angles",120,120)}}
+ +L'angle est spécifié entre une ligne verticale et la ligne de dégradé, dans le sens inverse des aiguilles d'une montre. Autrement dit, 0deg crée un dégradé vertical de bas en haut, tandis que 90deg génère un dégradé horizontal de la gauche vers la droite :

background: linear-gradient(<angle>, red, white);+ +
Les dégradés CSS ne sont pas limités à deux couleurs, il est possible d'en utiliser autant que souhaité :
+ +.linear-gradient {
+ background: linear-gradient(red, yellow, blue, orange);
+}
+
+div {
+ width: 120px;
+ height: 120px;
+}
+
+<div class="linear-gradient"></div> ++ +
{{EmbedLiveSample("Utiliser_plus_de_deux_couleurs",120,120)}}
+ +Les arrêts de couleurs sont des points sur la ligne de dégradé qui doivent avoir une couleur précise. Leur emplacement peut être spécifié sous la forme d'un pourcentage de la longueur de la ligne, ou d'une longueur absolue. Vous pouvez en spécifier autant que vous voulez pour obtenir l'effet désiré. Si vous spécifiez un pourcentage, 0% indique le point de départ, et 100% le point d'arrivée ; il est cependant possible d'utiliser des valeurs en dehors de cet intervalle si nécessaire pour obtenir l'effet désiré.
.linear-gradient {
+ background: linear-gradient(to left, lime, lime 28px, red 77%, cyan);
+}
+
+div {
+ width: 120px;
+ height: 120px;
+}
+
+<div class="linear-gradient"></div> ++ +
{{EmbedLiveSample("Arrêts_de_couleur",120,120)}}
+ +Notez que la première et la dernière couleur n'indiquent pas d'emplacement ; en conséquence les valeurs 0% et 100% sont assignées automatiquement. La couleur centrale indique un emplacement à 80%, ce qui la place proche du bas.
+ +Par défaut, les dégradés passent linéairement d'une couleur à une autre. On peut également utiliser une indication afin de définir l'emplacement où la couleur médiane sera atteinte. Dans l'exemple qui suit, plutôt que d'attendre la moitié de la transition au milieu, on la place à 10% de l'axe.
+ +div {
+ width:120px;
+ height: 120px;
+ float: left;
+ margin-right: 10px;
+}
+
+.color-hint {
+ background: linear-gradient(blue, 10%, pink);
+}
+
+.simple-linear {
+ background: linear-gradient(blue, pink);
+}
+
+<div class="color-hint"></div> +<div class="simple-linear"></div> ++ +
{{EmbedLiveSample("Utiliser_des_indications_de_couleurs",120,120)}}
+ +Les gradients gèrent la transparence. Vous pouvez l'utiliser, par exemple, en superposant plusieurs fonds pour créer des effets sur les images. Par exemple :
+ +.linear-gradient {
+ background: linear-gradient(to right, transparent, mistyrose),
+ url("https://mdn.mozillademos.org/files/15525/critters.png");
+}
+
+div {
+ width: 300px;
+ height: 150px;
+}
+
+<div class="linear-gradient"></div> ++ +
{{EmbedLiveSample("Transparence_et_dégradés",300,150)}}
+ +Les fonds sont superposés avec le premier fond spécifié au dessus, et chaque fond supplémentaire par dessous.
+ +Pour créer une ligne franche entre deux couleurs et avoir deux bandes plutôt qu'un dégradé progressif, on peut définir deux points d'arrêt de couleur au même endroit. Dans l'exemple suivant, on a deux couleurs pour un même emplacement de point d'arrêt situé à 50%:
.striped {
+ background: linear-gradient(to bottom left, cyan 50%, palegoldenrod 50%);
+}
+
+{{EmbedLiveSample('Créer_des_lignes_franches', 120, 120)}}
+ +Pour inclure une bande d'une couleur donnée, sans transition au sein du dégradé, on utilisera deux points d'arrêt successif avec la même couleur. Ainsi, la couleur sera atteinte au premier point d'arrêt puis sera conservée jusqu'au suivant.
+ + + + + +.multiposition-stops {
+ background: linear-gradient(to left,
+ lime 20%, red 30%, red 45%, cyan 55%, cyan 70%, yellow 80% );
+ background: linear-gradient(to left,
+ lime 20%, red 30% 45%, cyan 55% 70%, yellow 80% );
+}
+.multiposition-stop2 {
+ background: linear-gradient(to left,
+ lime 25%, red 25%, red 50%, cyan 50%, cyan 75%, yellow 75% );
+ background: linear-gradient(to left,
+ lime 25%, red 25% 50%, cyan 50% 75%, yellow 75% );
+}
+
+
+{{EmbedLiveSample('Créer_des_bandes_de_couleur', 120, 120)}}
+ +Dans le premier exemple ci-avant, le bleu vert commence au début puis progresse jusqu'à 20% avant de transitionner vers le rouge pendant les 10% qui suivent. Le rouge reste vif entre 30% et 45% avant de transitionner vers un cyan pendant 15% etc.
+ +Dans le deuxième exemple, le deuxième point d'arrêt pour chaque couleur est situé au même emplacement que le premier point d'arrêt pour la couleur suivante et on obtient donc des bandes successives.
+ +Par défaut, un dégradé progresse linéairement entre les deux couleurs et la couleur médiane est atteinte à la moitié du parcours. Toutefois, si on veut atteindre cette couleur médiane plus tôt ou plus tard, on peut fournir une indication permettant de définir l'emplacement du milieu de la transition. Dans l'exemple qui suit, la couleur est à la moitié de la transition entre le vert et le cyan à 20% du dégradé (et non à 50%). Le deuxième exemple ne contient pas de telle indication et la transition s'effectue linéairement. Vous pouvez ainsi observer l'impact d'une telle indication.
+ + + + + +.colorhint-gradient {
+ background: linear-gradient(to top, black, 20%, cyan);
+}
+.regular-progression {
+ background: linear-gradient(to top, black, cyan);
+}
+
+
+{{EmbedLiveSample("Contrôler_la_progression_du_dégradé", 120, 120)}}
+ +Il est possible d' « empiler » différents dégradés. Il suffit que les dégradés sur les couches supérieures ne soient pas complètement opaques pour qu'on puisse voir ceux des couches inférieures.
+ +.linear-gradient {
+ background:
+ linear-gradient(217deg, rgba(255,0,0,.8), rgba(255,0,0,0) 70.71%),
+ linear-gradient(127deg, rgba(0,255,0,.8), rgba(0,255,0,0) 70.71%),
+ linear-gradient(336deg, rgba(0,0,255,.8), rgba(0,0,255,0) 70.71%);
+}
+
+div {
+ width: 100px;
+ height: 100px;
+}
+
+<div class="linear-gradient"></div> ++ +
{{EmbedLiveSample("Empilement_de_dégradés")}}
+ +Les dégradés radiaux sont similaire aux dégradés linéaires mais permettent d'obtenir un effet qui rayonne à partir d'un point. Il est possible de créer des dégradés circulaires ou elliptiques.
+ +Note : Dans les exemples suivants, nous continuons d'utiliser le même {{HTMLElement("div")}} et, pour ne pas surcharger la lecture, n'afficherons plus que la règle CSS spécifique au dégradé.
+De la même façon qu'avec les dégradés linéaires, il suffit de deux couleurs pour créer un dégradé radial.
+ + + + + +.simple-radial {
+ background: radial-gradient(red, blue);
+}
+
+
+{{EmbedLiveSample('Un_dégradé_radial_simple', 120, 120)}}
+ +À nouveau, comme pour les dégradés linéaires, il est possible de placer des arrêts de couleur en précisant un pourcentage ou une distance.
+ + + + + +.radial-gradient {
+ background: radial-gradient(red 10px, yellow 30%, #1e90ff 50%);
+}
+
+
+{{EmbedLiveSample("Positionner_les_points_d’arrêt", 120, 120)}}
+ +La position du centre du dégradé peut être définie avec des mots-clés, des pourcetages ou des longueurs. Deux valeurs permettent de placer le centre sur les deux axes. Si une seule valeur est fournie, elle sera utilisée pour les deux axes.
+ + + + + +.radial-gradient {
+ background: radial-gradient(at 0% 30%, red 10px, yellow 30%, #1e90ff 50%);
+}
+
+
+{{EmbedLiveSample('Utiliser_closest-side_pour_les_ellipses', 240, 100)}}
+ +À la différence des dégradés linéaires, il est possible de définir la taille d'un dégradé radial.
+ +closest-side pour les ellipsesDans l'exemple qui suit, on utilise la valeur closest-side pour la taille. Cela signifie que la taille du dégradé sera définie par la distance entre le point central de départ et le côté le plus proche de la boîte englobante.
.radial-ellipse-side {
+ background: radial-gradient(ellipse closest-side,
+ red, yellow 10%, #1e90ff 50%, beige);
+}
+
+
+{{EmbedLiveSample('Utiliser_closest-side_pour_les_ellipses', 240, 100)}}
+ +farthest-corner pour les ellipsesCet exemple ressemble fortement au précédent mais on utilise ici farthest-corner qui crée un dégradé dont la distance est celle entre le point de départ central et le côté le plus éloigné de la boîte englobante.
.radial-ellipse-far {
+ background: radial-gradient(ellipse farthest-corner,
+ red, yellow 10%, #1e90ff 50%, beige);
+}
+
+
+{{EmbedLiveSample('Utiliser_farthest-corner_pour_les_ellipses', 240, 100)}}
+ +closest-side pour les cerclesPour cet exemple, on utilise closest-side qui permet de créer un cercle dont le rayon est la distance entre le point de départ central et le côté le plus proche de la boîte englobante. Ici, le rayon du cercle est donc la moitié de la hauteur de la boîte car les bords haut et bas sont équidistants du point de départ et plus proches que les côtés gauche et droit.
.radial-circle-close {
+ background: radial-gradient(circle closest-side,
+ red, yellow 10%, #1e90ff 50%, beige);
+}
+
+
+{{EmbedLiveSample('Utiliser_closest-side_pour_les_cercles', 240, 120)}}
+ +À l'instar des dégradés linéaires, on peut empiler des dégradés radiaux. Le premier dégradé indiqué sera celui sur la couche la plus haute et le dernier sera celui sur la couche la plus basse.
+ + + + + +.stacked-radial {
+ background:
+ radial-gradient(circle at 50% 0,
+ rgba(255,0,0,.5),
+ rgba(255,0,0,0) 70.71%),
+ radial-gradient(circle at 6.7% 75%,
+ rgba(0,0,255,.5),
+ rgba(0,0,255,0) 70.71%),
+ radial-gradient(circle at 93.3% 75%,
+ rgba(0,255,0,.5),
+ rgba(0,255,0,0) 70.71%) beige;
+ border-radius: 50%;
+}
+
+
+{{EmbedLiveSample('Empiler_des_dégradés_radiaux', 200, 200)}}
+ +La fonction conic-gradient() permet de créer une image composée d'un dégradé de couleurs tournant autour d'un point (plutôt qu'une progression radiale). On pourra ainsi utiliser des dégradés coniques pour créer des camemberts ou des éventails de couleurs.
La syntaxe de conic-gradient() est semblable à celle de radial-gradient() mais les arrêts de couleur seront placés le long d'un arc plutôt que le long de la ligne émise depuis le centre. Les arrêts de couleur seront exprimés en pourcentages ou en degrés, ils ne pourront pas être exprimés sous forme de longueurs absolues.
Pour un dégradé radial, la transition entre les couleurs forme une ellipse qui progresse vers l'extérieur dans toutes les directions. Un dégradé conique verra la transition progresser le long de l'arc autour du cercle, dans le sens horaire. À l'instar des dégradés radiaux, il est possible de positionner le centre du dégradé et à l'instar des dégradés linéaires, on peut modifier l'angle du dégradé.
+ +Comme pour les dégradés linéaires et radiaux, il suffit de deux couleurs pour créer un dégradé conique. Par défaut, le centre du dégradé sera situé au centre (point 50% 50%) et le début du dégradé commencera vers le haut :
+ + + + + +.simple-conic {
+ background: conic-gradient(red, blue);
+}
+
+
+{{EmbedLiveSample('Un_dégradé_conique_simple', 120, 120)}}
+À l'instar des dégradés radiaux, on peut placer le centre d'un dégradé conique à l'aide de mots-clés, de valeurs (longueurs ou pourcentages) avec le mot-clé at.
.conic-gradient {
+ background: conic-gradient(at 0% 30%, red 10%, yellow 30%, #1e90ff 50%);
+}
+
+
+{{EmbedLiveSample('Positionner_le_centre', 120, 120)}}
+.conic-gradient {
+ background: conic-gradient(from 45deg, red, orange, yellow, green, blue, purple);
+}
+
+
+{{EmbedLiveSample("Modifier_l’angle", 120, 120)}}
+Les propriétés {{cssxref("linear-gradient")}}, {{cssxref("radial-gradient")}} et {{cssxref("conic-gradient")}} ne permettent pas automatiquement de répéter les arrêts de couleur. Toutefois, les fonctions {{cssxref("repeating-linear-gradient")}}, {{cssxref("repeating-radial-gradient")}} et {{cssxref("repeating-conic-gradient")}} offrent cette fonctionnalité.
+ +La taille de la portion (ligne ou arc) répétée est donnée par la longueur (ou l'arc) entre le premier arrêt de couleur et le dernier arrêt de couleur. Si on n'indique pas de coordonnées pour le premier et le dernier arrêts, ceux-ci prendront respectivement 0 et 100%. Aussi, le motif unitaire couvrira l'ensemble du dégradé et il n'y aura pas de répétition. Il faut donc indiquer au moins un des deux arrêts (entre le premier et le dernier) pour créer une répétition.
+ +Dans cet exemple, on utilise la fonction {{cssxref("repeating-linear-gradient")}} afin de créer un dégradé linéaire qui se répète le long d'une ligne. Les couleurs forment un cycle lorsque le motif se répète.
+ + + + + +.repeating-linear {
+ background: repeating-linear-gradient(-45deg, red, red 5px, blue 5px, blue 10px);
+}
+
+
+{{EmbedLiveSample('Répéter_un_dégradé_linéaire', 120, 120)}}
+ +.multi-repeating-linear {
+ background:
+ repeating-linear-gradient(190deg, rgba(255, 0, 0, 0.5) 40px,
+ rgba(255, 153, 0, 0.5) 80px, rgba(255, 255, 0, 0.5) 120px,
+ rgba(0, 255, 0, 0.5) 160px, rgba(0, 0, 255, 0.5) 200px,
+ rgba(75, 0, 130, 0.5) 240px, rgba(238, 130, 238, 0.5) 280px,
+ rgba(255, 0, 0, 0.5) 300px),
+ repeating-linear-gradient(-190deg, rgba(255, 0, 0, 0.5) 30px,
+ rgba(255, 153, 0, 0.5) 60px, rgba(255, 255, 0, 0.5) 90px,
+ rgba(0, 255, 0, 0.5) 120px, rgba(0, 0, 255, 0.5) 150px,
+ rgba(75, 0, 130, 0.5) 180px, rgba(238, 130, 238, 0.5) 210px,
+ rgba(255, 0, 0, 0.5) 230px),
+ repeating-linear-gradient(23deg, red 50px, orange 100px,
+ yellow 150px, green 200px, blue 250px,
+ indigo 300px, violet 350px, red 370px);
+}
+
+
+{{EmbedLiveSample('Répéter_plusieurs_dégradés_linéaires', 600, 400)}}
+ +.plaid-gradient {
+ background:
+ repeating-linear-gradient(90deg, transparent, transparent 50px,
+ rgba(255, 127, 0, 0.25) 50px, rgba(255, 127, 0, 0.25) 56px,
+ transparent 56px, transparent 63px,
+ rgba(255, 127, 0, 0.25) 63px, rgba(255, 127, 0, 0.25) 69px,
+ transparent 69px, transparent 116px,
+ rgba(255, 206, 0, 0.25) 116px, rgba(255, 206, 0, 0.25) 166px),
+ repeating-linear-gradient(0deg, transparent, transparent 50px,
+ rgba(255, 127, 0, 0.25) 50px, rgba(255, 127, 0, 0.25) 56px,
+ transparent 56px, transparent 63px,
+ rgba(255, 127, 0, 0.25) 63px, rgba(255, 127, 0, 0.25) 69px,
+ transparent 69px, transparent 116px,
+ rgba(255, 206, 0, 0.25) 116px, rgba(255, 206, 0, 0.25) 166px),
+ repeating-linear-gradient(-45deg, transparent, transparent 5px,
+ rgba(143, 77, 63, 0.25) 5px, rgba(143, 77, 63, 0.25) 10px),
+ repeating-linear-gradient(45deg, transparent, transparent 5px,
+ rgba(143, 77, 63, 0.25) 5px, rgba(143, 77, 63, 0.25) 10px);
+}
+
+
+{{EmbedLiveSample('Créer_un_tartan', 200, 200)}}
+ +Ici, on utilise la fonction {{cssxref("repeating-radial-gradient")}} afin de créer un dégradé radial qui se répète. Les couleurs utilisées forment un cycle lorsque le motif unitaire recommence.
+ + + + + +.repeating-radial {
+ background: repeating-radial-gradient(black, black 5px, white 5px, white 10px);
+}
+
+
+{{EmbedLiveSample('Répéter_des_dégradés_radiaux', 120, 120)}}
+ +.multi-target {
+ background:
+ repeating-radial-gradient(ellipse at 80% 50%,rgba(0,0,0,0.5),
+ rgba(0,0,0,0.5) 15px, rgba(255,255,255,0.5) 15px,
+ rgba(255,255,255,0.5) 30px) top left no-repeat,
+ repeating-radial-gradient(ellipse at 20% 50%,rgba(0,0,0,0.5),
+ rgba(0,0,0,0.5) 10px, rgba(255,255,255,0.5) 10px,
+ rgba(255,255,255,0.5) 20px) top left no-repeat yellow;
+ background-size: 200px 200px, 150px 150px;
+}
+
+
+{{EmbedLiveSample('Répéter_plusieurs_dégradés_radiaux', 250, 150)}}
+ +La modification la plus fréquemment apportée sur une liste concerne la distance d'indentation (autrement dit, la distance de laquelle les éléments sont décalés vers la droite). Ce point peut être source de frustration car les navigateurs se comportent différemment à ce sujet. Ainsi, si on déclare une liste sans marge à gauche, elles sont déplacées Internet Explorer mais restent obstinément à la même place dans les navigateurs Gecko.
- -Pour comprendre pourquoi cela se produit ainsi, et surtout afin d'éviter ces problèmes, nous allons devoir examiner en détail la construction des listes.
- -Commençons par une simple liste minimale. L'élément de la liste ne possède aucune puce (le marqueur devant l'élément). Pour le moment, il ne fait pas partie d'une liste.
- -
La bordure pointillée rouge représente la limite extérieure de la zone de contenu de l'élément de la liste. Pour le moment, cet élément ne possède ni remplissage (padding) ni bordure. Si on ajoute deux autres éléments à la liste, on obtient alors ce résultat :
- -
À présent, nous allons placer ces éléments dans un élément parent. Pour cet exemple, nous utiliserons une liste non-ordonnée avec {{HTMLElement("ul")}}. Selon le modèle de boîtes CSS, les boîtes des éléments de la liste s'inscrivent dans la boîte de contenu de l'élément parent. Cette dernière n'a, pour l'instant, aucune marge ni aucun remplissage (padding). On obtient donc ce résultat :
- -
Ici, la bordure pointillée bleue révèle les limites de la zone de contenu de l'élément ul. Puisqu'il n'a pas de remplissage (padding), cette limite épouse étroitement celles des trois éléments de la liste.
On ajoute maintenant les puces aux éléments de la liste. Puisqu'il s'agit d'une liste non ordonnée, nous ajoutons les traditionnelles puces en forme de disques pleins, comme ceci :
- -
Visuellement, ces marqueurs apparaissent en dehors de la zone de contenu de l'élément ul, mais ce n'est pas ce qui est le plus important ici. Ce qui compte, c'est que ces marqueurs prennent place en dehors de la « boîte principale » des éléments li. Ils apparaissent comme des sortes d'appendices aux items de liste, qui se tiennent en dehors de la zone de contenu de chaque item, tout en étant attaché à chaque li.
C'est pourquoi, dans tous les navigateurs sauf Internet Explorer Windows, les marqueurs sont placés à l'extérieur des bordures de l'élément li, dès lors que la propriété {{cssxref("list-style-position")}} vaut outside. Si cette valeur est changée en inside, les marqueurs seront alors déplacés à l'intérieur du contenu des éléments li, comme s'il s'agissait d'une boîte en ligne placée au tout début de ceux-ci.
Comment cela va-t-il être rendu dans un document ? Pour le moment, nous avons un résultat équivalent à ces styles :
- -ul, li {
- margin-left: 0;
- padding-left: 0;
-}
-
-Si nous plaçons cette liste en l'état dans un document, elle n'aura aucune indentation apparente, et nos marqueurs courront le risque d'être rejetés au-delà de la limite gauche de la fenêtre du navigateur.
- -Afin d'éviter ça et d'imposer une indentation, le navigateur pourra implémenter l'une des trois approches suivantes :
- -li d'une marge gauche ;ul d'une marge gauche ;ul d'un padding gauche quelconque.Telles que les choses se sont faites, aucun navigateur ne semble avoir choisi la première solution. Internet Explorer pour Windows et Macintosh, ainsi qu'Opera, ont adopté la seconde solution. La troisième a été choisie par Gecko et donc par tous les navigateurs embarquant celui-ci.
- -Observons de plus près ces deux dernières approches. Dans Internet Explorer et Opera, les listes sont indentées en fixant une marge gauche de 40 pixels pour l'élément ul. Si nous appliquons une couleur d'arrière-plan, à celui-ci en conservant les bordures des éléments de la liste et de cet élément ul, nous obtenons le résultat qui suit :

De son côté, Gecko applique un padding gauche de 40 pixels à cet élément ul. Avec les mêmes styles que dans le cas précédent, notre exemple s'affichera dans un navigateur basé sur Gecko de la façon suivante :
- 
Comme nous pouvons le voir, les marqueurs restent attachés aux éléments li, où qu'ils soient. La différence réside uniquement dans la manière dont l'élément ul est mis en forme. Nous ne pouvons voir cette différence que si nous essayons de donner un arrière-plan ou des bordures à cet élément ul
Après ces observations, nous obtenons la conclusion suivante : si on souhaite obtenir un rendu de liste homogène entre Gecko, Internet Explorer et Opera, il est nécessaire de spécifier à la fois la marge gauche et le padding gauche de l'élément ul. L'élément li peut être ignoré ici. Si vous voulez reproduire le rendu par défaut de Netscape 6.x, vous écrirez :
ul {
- margin-left: 0;
- padding-left: 40px;
-}
-
-Si vous préférez suivre le modèle Internet Explorer/Opera, vous écrirez alors :
- -ul {
- margin-left: 40px;
- padding-left: 0;
-}
-
-Naturellement, vous pouvez utiliser les valeurs de votre choix. Les fixer toutes deux à 1.25em si vous en avez envie - il n'y a aucune raison de s'en tenir uniquement à des valeurs en pixels. Et si vous voulez obtenir des listes sans indentation, vous devrez alors, là encore, spécifier à la fois un padding et une marge nuls :
ul {
- margin-left: 0;
- padding-left: 0;
-}
-
-Souvenez-vous, cependant, qu'en faisant ainsi, vos puces se tiendront en dehors de votre liste et de son élément parent. Si ce parent est l'élément body, il y a de fortes chances qu'elles se retrouvent complètement en dehors de la fenêtre d'affichage du navigateur et qu'elles ne soient donc invisibles.
Au bout du compte, on voit qu'aucun des navigateurs mentionnés dans cet article n'a tort ou raison sur ce point. Ces navigateurs utilisent différents styles par défaut et c'est là que réside le seul problème. En veillant à mettre en forme à la fois la marge gauche et le padding gauche des listes, on peut obtenir un rendu bien plus homogène de l'indentation sur les différents navigateurs.
- -La modification la plus fréquemment apportée sur une liste concerne la distance d'indentation (autrement dit, la distance de laquelle les éléments sont décalés vers la droite). Ce point peut être source de frustration car les navigateurs se comportent différemment à ce sujet. Ainsi, si on déclare une liste sans marge à gauche, elles sont déplacées Internet Explorer mais restent obstinément à la même place dans les navigateurs Gecko.
+ +Pour comprendre pourquoi cela se produit ainsi, et surtout afin d'éviter ces problèmes, nous allons devoir examiner en détail la construction des listes.
+ +Commençons par une simple liste minimale. L'élément de la liste ne possède aucune puce (le marqueur devant l'élément). Pour le moment, il ne fait pas partie d'une liste.
+ +
La bordure pointillée rouge représente la limite extérieure de la zone de contenu de l'élément de la liste. Pour le moment, cet élément ne possède ni remplissage (padding) ni bordure. Si on ajoute deux autres éléments à la liste, on obtient alors ce résultat :
+ +
À présent, nous allons placer ces éléments dans un élément parent. Pour cet exemple, nous utiliserons une liste non-ordonnée avec {{HTMLElement("ul")}}. Selon le modèle de boîtes CSS, les boîtes des éléments de la liste s'inscrivent dans la boîte de contenu de l'élément parent. Cette dernière n'a, pour l'instant, aucune marge ni aucun remplissage (padding). On obtient donc ce résultat :
+ +
Ici, la bordure pointillée bleue révèle les limites de la zone de contenu de l'élément ul. Puisqu'il n'a pas de remplissage (padding), cette limite épouse étroitement celles des trois éléments de la liste.
On ajoute maintenant les puces aux éléments de la liste. Puisqu'il s'agit d'une liste non ordonnée, nous ajoutons les traditionnelles puces en forme de disques pleins, comme ceci :
+ +
Visuellement, ces marqueurs apparaissent en dehors de la zone de contenu de l'élément ul, mais ce n'est pas ce qui est le plus important ici. Ce qui compte, c'est que ces marqueurs prennent place en dehors de la « boîte principale » des éléments li. Ils apparaissent comme des sortes d'appendices aux items de liste, qui se tiennent en dehors de la zone de contenu de chaque item, tout en étant attaché à chaque li.
C'est pourquoi, dans tous les navigateurs sauf Internet Explorer Windows, les marqueurs sont placés à l'extérieur des bordures de l'élément li, dès lors que la propriété {{cssxref("list-style-position")}} vaut outside. Si cette valeur est changée en inside, les marqueurs seront alors déplacés à l'intérieur du contenu des éléments li, comme s'il s'agissait d'une boîte en ligne placée au tout début de ceux-ci.
Comment cela va-t-il être rendu dans un document ? Pour le moment, nous avons un résultat équivalent à ces styles :
+ +ul, li {
+ margin-left: 0;
+ padding-left: 0;
+}
+
+Si nous plaçons cette liste en l'état dans un document, elle n'aura aucune indentation apparente, et nos marqueurs courront le risque d'être rejetés au-delà de la limite gauche de la fenêtre du navigateur.
+ +Afin d'éviter ça et d'imposer une indentation, le navigateur pourra implémenter l'une des trois approches suivantes :
+ +li d'une marge gauche ;ul d'une marge gauche ;ul d'un padding gauche quelconque.Telles que les choses se sont faites, aucun navigateur ne semble avoir choisi la première solution. Internet Explorer pour Windows et Macintosh, ainsi qu'Opera, ont adopté la seconde solution. La troisième a été choisie par Gecko et donc par tous les navigateurs embarquant celui-ci.
+ +Observons de plus près ces deux dernières approches. Dans Internet Explorer et Opera, les listes sont indentées en fixant une marge gauche de 40 pixels pour l'élément ul. Si nous appliquons une couleur d'arrière-plan, à celui-ci en conservant les bordures des éléments de la liste et de cet élément ul, nous obtenons le résultat qui suit :

De son côté, Gecko applique un padding gauche de 40 pixels à cet élément ul. Avec les mêmes styles que dans le cas précédent, notre exemple s'affichera dans un navigateur basé sur Gecko de la façon suivante :
+ 
Comme nous pouvons le voir, les marqueurs restent attachés aux éléments li, où qu'ils soient. La différence réside uniquement dans la manière dont l'élément ul est mis en forme. Nous ne pouvons voir cette différence que si nous essayons de donner un arrière-plan ou des bordures à cet élément ul
Après ces observations, nous obtenons la conclusion suivante : si on souhaite obtenir un rendu de liste homogène entre Gecko, Internet Explorer et Opera, il est nécessaire de spécifier à la fois la marge gauche et le padding gauche de l'élément ul. L'élément li peut être ignoré ici. Si vous voulez reproduire le rendu par défaut de Netscape 6.x, vous écrirez :
ul {
+ margin-left: 0;
+ padding-left: 40px;
+}
+
+Si vous préférez suivre le modèle Internet Explorer/Opera, vous écrirez alors :
+ +ul {
+ margin-left: 40px;
+ padding-left: 0;
+}
+
+Naturellement, vous pouvez utiliser les valeurs de votre choix. Les fixer toutes deux à 1.25em si vous en avez envie - il n'y a aucune raison de s'en tenir uniquement à des valeurs en pixels. Et si vous voulez obtenir des listes sans indentation, vous devrez alors, là encore, spécifier à la fois un padding et une marge nuls :
ul {
+ margin-left: 0;
+ padding-left: 0;
+}
+
+Souvenez-vous, cependant, qu'en faisant ainsi, vos puces se tiendront en dehors de votre liste et de son élément parent. Si ce parent est l'élément body, il y a de fortes chances qu'elles se retrouvent complètement en dehors de la fenêtre d'affichage du navigateur et qu'elles ne soient donc invisibles.
Au bout du compte, on voit qu'aucun des navigateurs mentionnés dans cet article n'a tort ou raison sur ce point. Ces navigateurs utilisent différents styles par défaut et c'est là que réside le seul problème. En veillant à mettre en forme à la fois la marge gauche et le padding gauche des listes, on peut obtenir un rendu bien plus homogène de l'indentation sur les différents navigateurs.
+ +CSS Lists (listes CSS) est un module CSS qui définit la façon dont les listes sont mises en forme, comment des styles peuvent être appliqués aux marqueurs.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Lists')}} | -{{Spec2('CSS3 Lists')}} | -- |
| {{SpecName('CSS2.1', 'generate.html')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
CSS Lists (listes CSS) est un module CSS qui définit la façon dont les listes sont mises en forme, comment des styles peuvent être appliqués aux marqueurs.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Lists')}} | +{{Spec2('CSS3 Lists')}} | ++ |
| {{SpecName('CSS2.1', 'generate.html')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
Les compteurs CSS sont des variables dont les valeurs sont incrémentées par les règles CSS et qui permettent de savoir combien de fois elles sont utilisées. Cela permet par exemple d'adapter la mise en forme du contenu en fonction de son emplacement dans le document.
- -La valeur d'un compteur peut être manipulée grâce aux propriétés {{cssxref("counter-reset")}}. {{cssxref("counter-increment")}} et on peut les afficher sur la page grâce aux fonctions counter() et counters() dans la propriété {{cssxref("content")}}.
Pour utiliser un compteur CSS, il faut d'abord réinitialiser sa valeur (0 par défaut) à l'aide de {{cssxref("counter-reset")}}. Pour incrémenter un compteur initialisé, on peut utiliser {{cssxref("counter-increment")}}. Attention le nom du compteur ne peut pas être none, inherit ou initial.
Pour ajouter un compteur au contenu d'un élément, il faut utiliser la fonction {{cssxref("counter")}} ou {{cssxref("counters")}} dans une propriété {{cssxref("content")}}.
- -La fonction counter() prend deux formes : counter(nom) ou counter(nom, style). Le texte ainsi généré est celui du compteur le plus proche avec ce nom. Le contenu est mis en forme avec le style indiqué (par défaut, c'est decimal).
La fonction counters() prend également deux formes : counters(nom, chaine) ou counters(nom, chaine style). Le texte généré aura la valeur de l'ensemble des compteurs présents dans la portée du pseudo-élément (du plus loin au plus proche), séparés par la chaîne de caractères passée en argument. Les compteurs sont mis en forme avec le style indiqué (par défaut, c'est decimal).
Dans l'exemple qui suit, la feuille de style CSS préfixe chaque titre de niveau 3 avec « Section <la valeur du compteur> : ».
- -Note : La fonction {{cssxref("counter()")}} et la fonction {{cssxref("counters()")}} peuvent toutes les deux prendre un dernier argument qui correspond au style de liste utilisé (par défaut, c'est decimal).
body {
- counter-reset: section; /* On initialise le compteur à 0 */
-}
-
-h3::before {
- counter-increment: section; /* On incrémente le compteur section */
- content: "Section " counter(section) " : "; /* On affiche le compteur */
-}
-
-
-<h3>Introduction</h3> -<h3>Corps</h3> -<h3>Conclusion</h3>- -
{{EmbedLiveSample("Utiliser_les_compteurs", 300, 150)}}
- -Un compteur CSS est particulièrement utile lorsqu'il s'agit de gérer les listes générées dynamiquement. En utilisant la fonction {{cssxref("counters","counters()")}}, on peut insérer une chaîne de caractères entre les différents niveaux des compteurs imbriqués.
- -ol {
- counter-reset: section; /* On crée une nouvelle instance du
- compteur section avec chaque ol */
- list-style-type: none;
-}
-
-li::before {
- counter-increment: section; /* On incrémente uniquement cette
- instance du compteur */
- content: counters(section,".") " "; /* On ajoute la valeur de toutes les
- instances séparées par ".". */
- /* Si on doit supporter < IE8 il faudra
- faire attention à ce qu'il n'y ait
- aucun blanc après ',' */
-}
-
-
-<ol> - <li>item</li> <!-- 1 --> - <li>item <!-- 2 --> - <ol> - <li>item</li> <!-- 2.1 --> - <li>item</li> <!-- 2.2 --> - <li>item <!-- 2.3 --> - <ol> - <li>item</li> <!-- 2.3.1 --> - <li>item</li> <!-- 2.3.2 --> - </ol> - <ol> - <li>item</li> <!-- 2.3.1 --> - <li>item</li> <!-- 2.3.2 --> - <li>item</li> <!-- 2.3.3 --> - </ol> - </li> - <li>item</li> <!-- 2.4 --> - </ol> - </li> - <li>item</li> <!-- 3 --> - <li>item</li> <!-- 4 --> -</ol> -<ol> - <li>item</li> <!-- 1 --> - <li>item</li> <!-- 2 --> -</ol>- -
{{EmbedLiveSample("Imbriquer_des_compteurs", 250, 350)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Lists", "#auto-numbering", "CSS Counters")}} | -{{Spec2("CSS3 Lists")}} | -Aucune modification. | -
| {{SpecName("CSS2.1", "generate.html#counters", "CSS Counters")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
Les compteurs CSS sont des variables dont les valeurs sont incrémentées par les règles CSS et qui permettent de savoir combien de fois elles sont utilisées. Cela permet par exemple d'adapter la mise en forme du contenu en fonction de son emplacement dans le document.
+ +La valeur d'un compteur peut être manipulée grâce aux propriétés {{cssxref("counter-reset")}}. {{cssxref("counter-increment")}} et on peut les afficher sur la page grâce aux fonctions counter() et counters() dans la propriété {{cssxref("content")}}.
Pour utiliser un compteur CSS, il faut d'abord réinitialiser sa valeur (0 par défaut) à l'aide de {{cssxref("counter-reset")}}. Pour incrémenter un compteur initialisé, on peut utiliser {{cssxref("counter-increment")}}. Attention le nom du compteur ne peut pas être none, inherit ou initial.
Pour ajouter un compteur au contenu d'un élément, il faut utiliser la fonction {{cssxref("counter")}} ou {{cssxref("counters")}} dans une propriété {{cssxref("content")}}.
+ +La fonction counter() prend deux formes : counter(nom) ou counter(nom, style). Le texte ainsi généré est celui du compteur le plus proche avec ce nom. Le contenu est mis en forme avec le style indiqué (par défaut, c'est decimal).
La fonction counters() prend également deux formes : counters(nom, chaine) ou counters(nom, chaine style). Le texte généré aura la valeur de l'ensemble des compteurs présents dans la portée du pseudo-élément (du plus loin au plus proche), séparés par la chaîne de caractères passée en argument. Les compteurs sont mis en forme avec le style indiqué (par défaut, c'est decimal).
Dans l'exemple qui suit, la feuille de style CSS préfixe chaque titre de niveau 3 avec « Section <la valeur du compteur> : ».
+ +Note : La fonction {{cssxref("counter()")}} et la fonction {{cssxref("counters()")}} peuvent toutes les deux prendre un dernier argument qui correspond au style de liste utilisé (par défaut, c'est decimal).
body {
+ counter-reset: section; /* On initialise le compteur à 0 */
+}
+
+h3::before {
+ counter-increment: section; /* On incrémente le compteur section */
+ content: "Section " counter(section) " : "; /* On affiche le compteur */
+}
+
+
+<h3>Introduction</h3> +<h3>Corps</h3> +<h3>Conclusion</h3>+ +
{{EmbedLiveSample("Utiliser_les_compteurs", 300, 150)}}
+ +Un compteur CSS est particulièrement utile lorsqu'il s'agit de gérer les listes générées dynamiquement. En utilisant la fonction {{cssxref("counters","counters()")}}, on peut insérer une chaîne de caractères entre les différents niveaux des compteurs imbriqués.
+ +ol {
+ counter-reset: section; /* On crée une nouvelle instance du
+ compteur section avec chaque ol */
+ list-style-type: none;
+}
+
+li::before {
+ counter-increment: section; /* On incrémente uniquement cette
+ instance du compteur */
+ content: counters(section,".") " "; /* On ajoute la valeur de toutes les
+ instances séparées par ".". */
+ /* Si on doit supporter < IE8 il faudra
+ faire attention à ce qu'il n'y ait
+ aucun blanc après ',' */
+}
+
+
+<ol> + <li>item</li> <!-- 1 --> + <li>item <!-- 2 --> + <ol> + <li>item</li> <!-- 2.1 --> + <li>item</li> <!-- 2.2 --> + <li>item <!-- 2.3 --> + <ol> + <li>item</li> <!-- 2.3.1 --> + <li>item</li> <!-- 2.3.2 --> + </ol> + <ol> + <li>item</li> <!-- 2.3.1 --> + <li>item</li> <!-- 2.3.2 --> + <li>item</li> <!-- 2.3.3 --> + </ol> + </li> + <li>item</li> <!-- 2.4 --> + </ol> + </li> + <li>item</li> <!-- 3 --> + <li>item</li> <!-- 4 --> +</ol> +<ol> + <li>item</li> <!-- 1 --> + <li>item</li> <!-- 2 --> +</ol>+ +
{{EmbedLiveSample("Imbriquer_des_compteurs", 250, 350)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Lists", "#auto-numbering", "CSS Counters")}} | +{{Spec2("CSS3 Lists")}} | +Aucune modification. | +
| {{SpecName("CSS2.1", "generate.html#counters", "CSS Counters")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
La spécification relative aux propriétés et valeurs logiques introduit une correspondance relative au flux pour de nombreuses propriétés et valeurs CSS. Dans cet article, nous verrons une introduction de cette spécification et expliquerons les propriétés et valeurs relatives au flux.
- -Historiquement, CSS permettait de dimensionner des objets selon les dimensions physiques de l'écran. On pouvait alors décrire des boîtes avec une certaine largeur ({{CSSxRef("width")}}) et une certaine hauteur ({{CSSxRef("height")}}), positionner les éléments à partir du haut (top) et de la gauche (left), faire flotter les objets, créer des bordures, des marges, du remplissage (padding) en haut, à droite, en bas et à gauche (resp. top, right, bottom, left, etc.). La spécification sur les propriétés et valeurs logiques définit des correspondances entres ces valeurs physiques et des valeurs logiques, relatives au flux : start et end plutôt que left et right ou top et bottom.
Prenons un exemple pour comprendre la nécessité de telles propriétés et valeurs logiques. On dispose d'une grille CSS et le conteneur de la grille possède une certaine largeur. On y utilise {{CSSxRef("align-self")}} et {{CSSxRef("justify-self")}} afin d'aligner les éléments à l'intérieur de la grille. Ces propriétés sont relatives au flux : justify-self: start aligne l'élément au début de l'axe en ligne et align-self: start aligne l'élément au début de l'axe de bloc.

Si on change le mode d'écriture de ce composant grâce à la propriété {{CSSxRef("writing-mode")}} et avec la valeur vertical-rl, l'alignement continue de fonctionner de la même façon : l'axe en ligne est désormais l'axe vertical et l'axe de bloc court horizontalement. La grille n'a cependant pas la même allure car la largeur est nécessairement définie pour l'axe horizontal : de façon physique et pas relativement au flux de texte.

Si on avait utilisé la propriété logique {{CSSxRef("inline-size")}} plutôt que width, le composant aurait gardé les mêmes proportions, quel que soit le mode d'écriture utilisé.

Vous pouvez essayer ces différentes valeurs dans l'exemple qui suit et notamment modifier la propriété writing-mode pour la passer de vertical-rl à horizontal-tb sur le sélecteur .box afin d'observer la façon dont les différentes propriétés modifient la disposition.
{{EmbedGHLiveSample("css-examples/logical/intro-grid-example.html", '100%', 700)}}
- -Lorsqu'on travaille sur un site où on utilise un mode d'écriture qui n'est pas horizontal et progressant du haut vers le bas ou qu'on travaille sur un concept créatif, pouvoir utiliser des concepts relatifs au flux plutôt que des valeurs géométriques absolues.
- -Lorsqu'on travaille avec les propriétés et les valeurs logiques, il y a deux concepts majeurs : l'axe de bloc et l'axe en ligne qui sont les deux dimensions de l'espace. Comme nous l'avons vu avant, les nouvelles méthodes de disposition CSS (comme les boîtes flexibles et les grilles CSS) utilisent les concepts de block et inline plutôt que right et left/top et bottom pour l'alignement des objets.
La dimension en ligne (inline) correspond à l'axe selon lequel les lignes de texte sont écrites pour ce mode d'écriture. Ainsi, pour un document français, le texte sera écrit horizontalement de gauche à droite et pour un document arabe écrit de droite à gauche, la dimension en ligne est l'axe horizontal. Si on utilise un mode d'écriture vertical (le japonais par exempl), la dimension en ligne sera verticale car les lignes de texte de ce mode sont écrites verticalement.
- -La dimension de bloc correspond à l'axe orthogonal et généralement à la direction selon laquelle les blocs de texte (les paragraphes) sont agencés. En français ou en arabe, cet axe est vertical, pour les modes d'écritures écrits verticalement, cet axe est horizontal.
- -Le diagramme ci-après illustre l'organisation des axes en ligne et des axes de bloc pour un mode d'écriture horizontal :
- -
Le diagramme suivant illustre l'axe en ligne et l'axe de bloc pour un mode d'écriture vertical :
- -
Les propriétés et valeurs logiques peuvent être catégorisées selon différents groupes, notamment pour la compatibilité des navigateurs. Certaines des propriétés logiques sont essentiellement des correspondances de propriétés physiques équivalentes ({{CSSxRef("inline-size")}} sera la propriété logique pouvant correspondre à la propriété physique {{CSSxRef("width")}} et {{CSSxRef("margin-inline-start")}} la propriété physique correspondant à {{CSSxRef("margin-left")}}). La prise en charge de ces propriétés logiques correspondant à des propriétés physiques est plutôt correcte pour les navigateurs récents, vous pouvez consulter les pages de référence pour ces propriétés sur MDN, seul Edge ne prend pas en charge ces propriétés à date (décembre 2018).
- -On a également un groupe de propriétés qui ne possèdent pas de correspondances directes avec les propriétés physiques. Ces propriétés sont des propriétés raccourcies qui font référence aux deux extrêmités d'un axe. Ainsi {{CSSxRef("margin-block")}} sera une propriété raccourcie pour {{CSSxRef("margin-block-start")}} et {{CSSxRef("margin-block-end")}}. Ce deuxième groupe n'est actuellement pas pris en charge par les navigateurs.
- -Note : Le groupe de travail CSS est actuellement en réflexion pour les propriétés raccourcies avec quatre valeurs pour les propriétés logiques. Autrement dit, comment définir les marges logiques de la façon dont on utilise la propriété {{CSSxRef("margin")}}. Il faudrait en effet une sorte de modificateur si on continue d'utiliser le nom margin pour les propriétés relatives au flux. Pour en savoir plus sur les suggestions et commentaires, vous pouvez consulter l'issue GitHub n°1282.
Il est possible de tester la prise en charge des propriétés et valeurs logiques en utilisant une requête de fonctionnalité (@supports). Ainsi, on pourrait définit une propriété {{CSSxRef("width")}}, tester si {{CSSxRef("inline-size")}} est prise en charge et, le cas échéant, définir width avec auto et inline-size avec la valeur initialement utilisée pour width.
{{EmbedGHLiveSample("css-examples/logical/intro-feature-queries.html", "100%", 700)}}
- -La spécification relative aux propriétés et valeurs logiques introduit une correspondance relative au flux pour de nombreuses propriétés et valeurs CSS. Dans cet article, nous verrons une introduction de cette spécification et expliquerons les propriétés et valeurs relatives au flux.
+ +Historiquement, CSS permettait de dimensionner des objets selon les dimensions physiques de l'écran. On pouvait alors décrire des boîtes avec une certaine largeur ({{CSSxRef("width")}}) et une certaine hauteur ({{CSSxRef("height")}}), positionner les éléments à partir du haut (top) et de la gauche (left), faire flotter les objets, créer des bordures, des marges, du remplissage (padding) en haut, à droite, en bas et à gauche (resp. top, right, bottom, left, etc.). La spécification sur les propriétés et valeurs logiques définit des correspondances entres ces valeurs physiques et des valeurs logiques, relatives au flux : start et end plutôt que left et right ou top et bottom.
Prenons un exemple pour comprendre la nécessité de telles propriétés et valeurs logiques. On dispose d'une grille CSS et le conteneur de la grille possède une certaine largeur. On y utilise {{CSSxRef("align-self")}} et {{CSSxRef("justify-self")}} afin d'aligner les éléments à l'intérieur de la grille. Ces propriétés sont relatives au flux : justify-self: start aligne l'élément au début de l'axe en ligne et align-self: start aligne l'élément au début de l'axe de bloc.

Si on change le mode d'écriture de ce composant grâce à la propriété {{CSSxRef("writing-mode")}} et avec la valeur vertical-rl, l'alignement continue de fonctionner de la même façon : l'axe en ligne est désormais l'axe vertical et l'axe de bloc court horizontalement. La grille n'a cependant pas la même allure car la largeur est nécessairement définie pour l'axe horizontal : de façon physique et pas relativement au flux de texte.

Si on avait utilisé la propriété logique {{CSSxRef("inline-size")}} plutôt que width, le composant aurait gardé les mêmes proportions, quel que soit le mode d'écriture utilisé.

Vous pouvez essayer ces différentes valeurs dans l'exemple qui suit et notamment modifier la propriété writing-mode pour la passer de vertical-rl à horizontal-tb sur le sélecteur .box afin d'observer la façon dont les différentes propriétés modifient la disposition.
{{EmbedGHLiveSample("css-examples/logical/intro-grid-example.html", '100%', 700)}}
+ +Lorsqu'on travaille sur un site où on utilise un mode d'écriture qui n'est pas horizontal et progressant du haut vers le bas ou qu'on travaille sur un concept créatif, pouvoir utiliser des concepts relatifs au flux plutôt que des valeurs géométriques absolues.
+ +Lorsqu'on travaille avec les propriétés et les valeurs logiques, il y a deux concepts majeurs : l'axe de bloc et l'axe en ligne qui sont les deux dimensions de l'espace. Comme nous l'avons vu avant, les nouvelles méthodes de disposition CSS (comme les boîtes flexibles et les grilles CSS) utilisent les concepts de block et inline plutôt que right et left/top et bottom pour l'alignement des objets.
La dimension en ligne (inline) correspond à l'axe selon lequel les lignes de texte sont écrites pour ce mode d'écriture. Ainsi, pour un document français, le texte sera écrit horizontalement de gauche à droite et pour un document arabe écrit de droite à gauche, la dimension en ligne est l'axe horizontal. Si on utilise un mode d'écriture vertical (le japonais par exempl), la dimension en ligne sera verticale car les lignes de texte de ce mode sont écrites verticalement.
+ +La dimension de bloc correspond à l'axe orthogonal et généralement à la direction selon laquelle les blocs de texte (les paragraphes) sont agencés. En français ou en arabe, cet axe est vertical, pour les modes d'écritures écrits verticalement, cet axe est horizontal.
+ +Le diagramme ci-après illustre l'organisation des axes en ligne et des axes de bloc pour un mode d'écriture horizontal :
+ +
Le diagramme suivant illustre l'axe en ligne et l'axe de bloc pour un mode d'écriture vertical :
+ +
Les propriétés et valeurs logiques peuvent être catégorisées selon différents groupes, notamment pour la compatibilité des navigateurs. Certaines des propriétés logiques sont essentiellement des correspondances de propriétés physiques équivalentes ({{CSSxRef("inline-size")}} sera la propriété logique pouvant correspondre à la propriété physique {{CSSxRef("width")}} et {{CSSxRef("margin-inline-start")}} la propriété physique correspondant à {{CSSxRef("margin-left")}}). La prise en charge de ces propriétés logiques correspondant à des propriétés physiques est plutôt correcte pour les navigateurs récents, vous pouvez consulter les pages de référence pour ces propriétés sur MDN, seul Edge ne prend pas en charge ces propriétés à date (décembre 2018).
+ +On a également un groupe de propriétés qui ne possèdent pas de correspondances directes avec les propriétés physiques. Ces propriétés sont des propriétés raccourcies qui font référence aux deux extrêmités d'un axe. Ainsi {{CSSxRef("margin-block")}} sera une propriété raccourcie pour {{CSSxRef("margin-block-start")}} et {{CSSxRef("margin-block-end")}}. Ce deuxième groupe n'est actuellement pas pris en charge par les navigateurs.
+ +Note : Le groupe de travail CSS est actuellement en réflexion pour les propriétés raccourcies avec quatre valeurs pour les propriétés logiques. Autrement dit, comment définir les marges logiques de la façon dont on utilise la propriété {{CSSxRef("margin")}}. Il faudrait en effet une sorte de modificateur si on continue d'utiliser le nom margin pour les propriétés relatives au flux. Pour en savoir plus sur les suggestions et commentaires, vous pouvez consulter l'issue GitHub n°1282.
Il est possible de tester la prise en charge des propriétés et valeurs logiques en utilisant une requête de fonctionnalité (@supports). Ainsi, on pourrait définit une propriété {{CSSxRef("width")}}, tester si {{CSSxRef("inline-size")}} est prise en charge et, le cas échéant, définir width avec auto et inline-size avec la valeur initialement utilisée pour width.
{{EmbedGHLiveSample("css-examples/logical/intro-feature-queries.html", "100%", 700)}}
+ +La spécification sur les propriétés et valeurs logiques définit des valeurs logiques qui correspondent aux valeurs physiques utilisées pour {{cssxref("float")}} et {{cssxref("clear")}}. Elle définit aussi des propriétés logiques pour le positionnement lorsqu'on utilise une disposition positionnée. Dans ce guide, nous verrons comment utiliser ces valeurs et ces propriétés logiques.
- -Le tableau ci-après définit les propriétés et les valeurs que nous verrons dans ce guide et la correspondance avec les propriétés et valeurs physiques si on utilisait un mode d'écriture horizontal allant de gauche à droite.
- -| Propriété ou valeur logique | -Propriété ou valeur physique | -
|---|---|
{{cssxref("float")}}: inline-start |
- {{cssxref("float")}}: left |
-
{{cssxref("float")}}: inline-end |
- {{cssxref("float")}}: right |
-
{{cssxref("clear")}}: inline-start |
- {{cssxref("clear")}}: left |
-
{{cssxref("clear")}}: inline-end |
- {{cssxref("clear")}}: right |
-
| {{cssxref("inset-inline-start")}} | -{{cssxref("left")}} | -
| {{cssxref("inset-inline-end")}} | -{{cssxref("right")}} | -
| {{cssxref("inset-block-start")}} | -{{cssxref("top")}} | -
| {{cssxref("inset-block-end")}} | -{{cssxref("bottom")}} | -
{{cssxref("text-align")}}: start |
- {{cssxref("text-align")}}: left |
-
{{cssxref("text-align")}}: end |
- {{cssxref("text-align")}}: right |
-
En plus de ces correspondances, certaines propriétés logiques raccourcies ont été ajoutées. Pour celles-ci, qui ciblent les extrêmités des axes en ligne ou de bloc, il n'y a pas de correspondance avec des propriétés physiques existantes à l'exception de {{cssxref("inset")}}.
- -| Propriété logique | -Objectif | -
|---|---|
| {{cssxref("inset-inline")}} | -Cette propriété définit simultanément les décalages pour les deux côtés situés sur l'axe en ligne. | -
| {{cssxref("inset-block")}} | -Cette propriété définit simultanément les décalages pour les deux côtés situés sur l'axe de bloc. | -
| {{cssxref("inset")}} | -Cette propriété définit les valeurs des quatre décalages. | -
Les valeurs physiques utilisées avec les propriétés {{cssxref("float")}} et {{cssxref("clear")}} sont left, right et both. Les valeurs logiques définies par la spécification sont inline-start et inline-end et qui peuvent correspondre à left et right selon le mode d'écriture.
Dans l'exemple ci-après, on a deux boîtes : la première flotte avec float: left et la deuxième avec float: inline-start. Si on modifie la propriété writing-mode pour la passer en vertical-rl ou si on modifie direction en rtl, on pourra voir que la première boîte flotte toujours à gauche tandis que la boîte ciblée avec inline-start suit la direction et le mode d'écriture.
{{EmbedGHLiveSample("css-examples/logical/float.html", '100%', 700)}}
- -inset pour les dispositions positionnéesLe positionnement permet généralement de position un élément de façon relative à son bloc englobant. La plupart du temps, on décale l'objet relativement à la position qu'il aurait occupé sur le flux normal. Par le passé, on utilisait les propriétés physiques {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} et {{cssxref("left")}}.
- -Ces propriétés s'utilisent avec une longueur ou avec une pourcentage relatif aux dimensions de l'écran de l'utilisateur.
- -De nouvelles propriétés ont été définies dans la spécifications des propriétés logiques et permettent de positionner un élément relativement au flux du texte, quel que soit le mode d'écriture. Ces propriétés logiques sont :
- -Dans l'exemple qui suit, on utilise les propriétés inset-block-start et inset-inline-end afin de positionner la boîte bleue de façon absolue dans la zone définie par la bordure grise pointillée et qui a position: relative. En modifiant la propriété writing-mode afin d'utiliser la valeur vertical-rl ou en ajoutant direction: rtl, on pourra voir comment la boîte relative reste dans la direction du texte.
{{EmbedGHLiveSample("css-examples/logical/positioning-inset.html", '100%', 700)}}
- -Cette spécification définit également de nouvelles propriétés logiques qui permettent de définir deux voire quatre valeurs avec une seule déclaration. Pour ces propriétés raccourcies, il n'existe pas d'équivalence avec des propriétés physiques.
- -Note : Les navigateurs n'ont, pour l'instant, pas implémenté ces nouvelles propriétés (décembre 2018). Pour plus d'informations sur la compatibilité des navigateurs, vous pouvez vous référer aux tableaux de compatibilité présents à la fin des pages de référence pour ces propriétés.
-text-alignLa propriété {{cssxref("text-align")}} peut s'utiliser avec quatre valeurs logiques qui sont relatives à la direction du texte. Plutôt que d'utiliser left et right, on pourra utiliser start et end. Dans l'exemple suivant, on définit text-align: right pour le premier bloc et text-align: end pour le second.
Si on modifie la valeur de direction pour la passer à rtl, on verra que le premier bloc restera aligné à droite tandis que le texte du second s'alignera sur la fin logique.
{{EmbedGHLiveSample("css-examples/logical/text-align.html", '100%', 700)}}
- -Le comportement d'ensemble est plus cohérent lorsqu'on utilise des alignements de boîtes logiques (start et end) plutôt que des alignements basés sur les directions physiques.
La spécification sur les propriétés et valeurs logiques définit des valeurs logiques qui correspondent aux valeurs physiques utilisées pour {{cssxref("float")}} et {{cssxref("clear")}}. Elle définit aussi des propriétés logiques pour le positionnement lorsqu'on utilise une disposition positionnée. Dans ce guide, nous verrons comment utiliser ces valeurs et ces propriétés logiques.
+ +Le tableau ci-après définit les propriétés et les valeurs que nous verrons dans ce guide et la correspondance avec les propriétés et valeurs physiques si on utilisait un mode d'écriture horizontal allant de gauche à droite.
+ +| Propriété ou valeur logique | +Propriété ou valeur physique | +
|---|---|
{{cssxref("float")}}: inline-start |
+ {{cssxref("float")}}: left |
+
{{cssxref("float")}}: inline-end |
+ {{cssxref("float")}}: right |
+
{{cssxref("clear")}}: inline-start |
+ {{cssxref("clear")}}: left |
+
{{cssxref("clear")}}: inline-end |
+ {{cssxref("clear")}}: right |
+
| {{cssxref("inset-inline-start")}} | +{{cssxref("left")}} | +
| {{cssxref("inset-inline-end")}} | +{{cssxref("right")}} | +
| {{cssxref("inset-block-start")}} | +{{cssxref("top")}} | +
| {{cssxref("inset-block-end")}} | +{{cssxref("bottom")}} | +
{{cssxref("text-align")}}: start |
+ {{cssxref("text-align")}}: left |
+
{{cssxref("text-align")}}: end |
+ {{cssxref("text-align")}}: right |
+
En plus de ces correspondances, certaines propriétés logiques raccourcies ont été ajoutées. Pour celles-ci, qui ciblent les extrêmités des axes en ligne ou de bloc, il n'y a pas de correspondance avec des propriétés physiques existantes à l'exception de {{cssxref("inset")}}.
+ +| Propriété logique | +Objectif | +
|---|---|
| {{cssxref("inset-inline")}} | +Cette propriété définit simultanément les décalages pour les deux côtés situés sur l'axe en ligne. | +
| {{cssxref("inset-block")}} | +Cette propriété définit simultanément les décalages pour les deux côtés situés sur l'axe de bloc. | +
| {{cssxref("inset")}} | +Cette propriété définit les valeurs des quatre décalages. | +
Les valeurs physiques utilisées avec les propriétés {{cssxref("float")}} et {{cssxref("clear")}} sont left, right et both. Les valeurs logiques définies par la spécification sont inline-start et inline-end et qui peuvent correspondre à left et right selon le mode d'écriture.
Dans l'exemple ci-après, on a deux boîtes : la première flotte avec float: left et la deuxième avec float: inline-start. Si on modifie la propriété writing-mode pour la passer en vertical-rl ou si on modifie direction en rtl, on pourra voir que la première boîte flotte toujours à gauche tandis que la boîte ciblée avec inline-start suit la direction et le mode d'écriture.
{{EmbedGHLiveSample("css-examples/logical/float.html", '100%', 700)}}
+ +inset pour les dispositions positionnéesLe positionnement permet généralement de position un élément de façon relative à son bloc englobant. La plupart du temps, on décale l'objet relativement à la position qu'il aurait occupé sur le flux normal. Par le passé, on utilisait les propriétés physiques {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} et {{cssxref("left")}}.
+ +Ces propriétés s'utilisent avec une longueur ou avec une pourcentage relatif aux dimensions de l'écran de l'utilisateur.
+ +De nouvelles propriétés ont été définies dans la spécifications des propriétés logiques et permettent de positionner un élément relativement au flux du texte, quel que soit le mode d'écriture. Ces propriétés logiques sont :
+ +Dans l'exemple qui suit, on utilise les propriétés inset-block-start et inset-inline-end afin de positionner la boîte bleue de façon absolue dans la zone définie par la bordure grise pointillée et qui a position: relative. En modifiant la propriété writing-mode afin d'utiliser la valeur vertical-rl ou en ajoutant direction: rtl, on pourra voir comment la boîte relative reste dans la direction du texte.
{{EmbedGHLiveSample("css-examples/logical/positioning-inset.html", '100%', 700)}}
+ +Cette spécification définit également de nouvelles propriétés logiques qui permettent de définir deux voire quatre valeurs avec une seule déclaration. Pour ces propriétés raccourcies, il n'existe pas d'équivalence avec des propriétés physiques.
+ +Note : Les navigateurs n'ont, pour l'instant, pas implémenté ces nouvelles propriétés (décembre 2018). Pour plus d'informations sur la compatibilité des navigateurs, vous pouvez vous référer aux tableaux de compatibilité présents à la fin des pages de référence pour ces propriétés.
+text-alignLa propriété {{cssxref("text-align")}} peut s'utiliser avec quatre valeurs logiques qui sont relatives à la direction du texte. Plutôt que d'utiliser left et right, on pourra utiliser start et end. Dans l'exemple suivant, on définit text-align: right pour le premier bloc et text-align: end pour le second.
Si on modifie la valeur de direction pour la passer à rtl, on verra que le premier bloc restera aligné à droite tandis que le texte du second s'alignera sur la fin logique.
{{EmbedGHLiveSample("css-examples/logical/text-align.html", '100%', 700)}}
+ +Le comportement d'ensemble est plus cohérent lorsqu'on utilise des alignements de boîtes logiques (start et end) plutôt que des alignements basés sur les directions physiques.
CSS Logical Properties (les propriétés logiques CSS) est un module CSS qui définit une correspondance logique vers les propriétés physiques de contrôle de la mise en page selon le sens de lecture et l'orientation du texte. On aura deux directions logiques : block et inline, perpendiculaires, qui dépendent du sens de l'orientation du document.
- -Ce module définit également les propriétés logiques et les valeurs pour les propriétés précédemment définies avec CSS 2.1. Les propriétés logiques sont des propriétés dont l'orientation est relative au mode d'écriture du document et possèdent des propriétés physiques équivalentes.
- -Les propriétés et valeurs logiques utilisent les termes abstraits bloc (block) ou ligne (inline) afin de décrire leur direction. La signification physique de ces termes dépend du mode d'écriture.
- -logical {{Experimental_Inline}})logical {{Experimental_Inline}})logical {{Experimental_Inline}})logical {{Experimental_Inline}})logical {{Experimental_Inline}})inline-end {{Experimental_Inline}} et inline-start {{Experimental_Inline}})inline-end {{Experimental_Inline}} et inline-start {{Experimental_Inline}})inline-end {{Experimental_Inline}} et inline-start {{Experimental_Inline}})block {{Experimental_Inline}} et inline {{Experimental_Inline}})end {{Experimental_Inline}} et start {{Experimental_Inline}})| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
De façon générale :
- -Pour des informations précises sur chaque propriété, se référer au tableau de compatibilité des pages des propriétés.
diff --git a/files/fr/web/css/css_logical_properties/index.md b/files/fr/web/css/css_logical_properties/index.md new file mode 100644 index 0000000000..7d671c63ed --- /dev/null +++ b/files/fr/web/css/css_logical_properties/index.md @@ -0,0 +1,164 @@ +--- +title: CSS Logical Properties +slug: Web/CSS/CSS_Logical_Properties +tags: + - Aperçu + - CSS + - CSS Logical Properties + - Propriété logique + - Reference +translation_of: Web/CSS/CSS_Logical_Properties +--- +CSS Logical Properties (les propriétés logiques CSS) est un module CSS qui définit une correspondance logique vers les propriétés physiques de contrôle de la mise en page selon le sens de lecture et l'orientation du texte. On aura deux directions logiques : block et inline, perpendiculaires, qui dépendent du sens de l'orientation du document.
+ +Ce module définit également les propriétés logiques et les valeurs pour les propriétés précédemment définies avec CSS 2.1. Les propriétés logiques sont des propriétés dont l'orientation est relative au mode d'écriture du document et possèdent des propriétés physiques équivalentes.
+ +Les propriétés et valeurs logiques utilisent les termes abstraits bloc (block) ou ligne (inline) afin de décrire leur direction. La signification physique de ces termes dépend du mode d'écriture.
+ +logical {{Experimental_Inline}})logical {{Experimental_Inline}})logical {{Experimental_Inline}})logical {{Experimental_Inline}})logical {{Experimental_Inline}})inline-end {{Experimental_Inline}} et inline-start {{Experimental_Inline}})inline-end {{Experimental_Inline}} et inline-start {{Experimental_Inline}})inline-end {{Experimental_Inline}} et inline-start {{Experimental_Inline}})block {{Experimental_Inline}} et inline {{Experimental_Inline}})end {{Experimental_Inline}} et start {{Experimental_Inline}})| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
De façon générale :
+ +Pour des informations précises sur chaque propriété, se référer au tableau de compatibilité des pages des propriétés.
diff --git a/files/fr/web/css/css_logical_properties/margins_borders_padding/index.html b/files/fr/web/css/css_logical_properties/margins_borders_padding/index.html deleted file mode 100644 index cf45a45e67..0000000000 --- a/files/fr/web/css/css_logical_properties/margins_borders_padding/index.html +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: Propriétés logiques pour les marges, les bordures et les remplissages -slug: Web/CSS/CSS_Logical_Properties/Margins_borders_padding -tags: - - CSS - - Guide - - Propriété logique -translation_of: Web/CSS/CSS_Logical_Properties/Margins_borders_padding -original_slug: >- - Web/CSS/CSS_Logical_Properties/Propriétés_logiques_marges_bordures_remplissages ---- -{{CSSRef}}
- -La spécification sur les propriétés et valeurs logiques définit des correspondances pour les propriétés servant à définir les marges, les bordures et les remplissages (padding) et les propriétés raccourcies associées. Dans ce guide, nous verrons comment utiliser ces propriétés logiques.
- -Si vous avez consulté la page principale sur les propriétés et valeurs logiques, vous avez pu voir une grande quantité de propriétés. Cela est principalement du au fait que pour chaque marge, bordure et remplissage, il y a quatre propriétés détaillées et une propriété raccourcie.
- -La spécification détaille les correspondances entre les valeurs logiques et les valeurs physiques. Dans le tableau qui suit,on liste les correspondances lorsque le mode d'écriture utilisé est horizontal-tb et où la direction du texte va de gauche à droite. L'axe en ligne est donc horizontal, dirigé de gauche à droite et {{cssxref("margin-inline-start")}} est équivalent à {{cssxref("margin-left")}}.
Si on avait utilisé un mode d'écriture horizontal-tb orienté de droite à gauche, {{cssxref("margin-inline-start")}} aurait correspondu à {{cssxref("margin-right")}}. Pour un mode d'écriture vertical, elle aurait correspondu à {{cssxref("margin-top")}}.
| Propriété logique | -Propriété physique | -
|---|---|
| {{cssxref("border-block-end")}} | -{{cssxref("border-bottom")}} | -
| {{cssxref("border-block-end-color")}} | -{{cssxref("border-bottom-color")}} | -
| {{cssxref("border-block-end-style")}} | -{{cssxref("border-bottom-style")}} | -
| {{cssxref("border-block-end-width")}} | -{{cssxref("border-bottom-width")}} | -
| {{cssxref("border-block-start")}} | -{{cssxref("border-top")}} | -
| {{cssxref("border-block-start-color")}} | -{{cssxref("border-top-color")}} | -
| {{cssxref("border-block-start-style")}} | -{{cssxref("border-top-style")}} | -
| {{cssxref("border-block-start-width")}} | -{{cssxref("border-top-width")}} | -
| {{cssxref("border-inline-end")}} | -{{cssxref("border-right")}} | -
| {{cssxref("border-inline-end-color")}} | -{{cssxref("border-right-color")}} | -
| {{cssxref("border-inline-end-style")}} | -{{cssxref("border-right-style")}} | -
| {{cssxref("border-inline-end-width")}} | -{{cssxref("border-right-width")}} | -
| {{cssxref("border-inline-start")}} | -{{cssxref("border-left")}} | -
| {{cssxref("border-inline-start-color")}} | -{{cssxref("border-left-color")}} | -
| {{cssxref("border-inline-start-style")}} | -{{cssxref("border-left-style")}} | -
| {{cssxref("border-inline-start-width")}} | -{{cssxref("border-left-width")}} | -
| {{cssxref("border-start-start-radius")}} | -{{cssxref("border-top-left-radius")}} | -
| {{cssxref("border-start-end-radius")}} | -{{cssxref("border-bottom-left-radius")}} | -
| {{cssxref("border-end-start-radius")}} | -{{cssxref("border-top-right-radius")}} | -
| {{cssxref("border-end-end-radius")}} | -{{cssxref("border-bottom-right-radius")}} | -
| {{cssxref("margin-block-end")}} | -{{cssxref("margin-bottom")}} | -
| {{cssxref("margin-block-start")}} | -{{cssxref("margin-top")}} | -
| {{cssxref("margin-inline-end")}} | -{{cssxref("margin-right")}} | -
| {{cssxref("margin-inline-start")}} | -{{cssxref("margin-left")}} | -
| {{cssxref("padding-block-end")}} | -{{cssxref("padding-bottom")}} | -
| {{cssxref("padding-block-start")}} | -{{cssxref("padding-top")}} | -
| {{cssxref("padding-inline-end")}} | -{{cssxref("padding-right")}} | -
| {{cssxref("padding-inline-start")}} | -{{cssxref("padding-left")}} | -
De nouvelles propriétés raccourcies sont également apparues et permettent de manipuler les deux extrêmités d'un même axe. Ces propriétés raccourcies n'ont pas de propriété physique équivalente.
- -| Propriété | -Objectif | -
|---|---|
| {{cssxref("border-block")}} | -Définit {{cssxref("border-color")}}, {{cssxref("border-style")}} et {{cssxref("border-width")}} pour les deux bordures sur l'axe de bloc. | -
| {{cssxref("border-block-color")}} | -Définit border-color pour les deux bordures sur l'axe de bloc. |
-
| {{cssxref("border-block-style")}} | -Définit border-style pour les deux bordures sur l'axe de bloc. |
-
| {{cssxref("border-block-width")}} | -Définit border-width pour les deux bordures sur l'axe de bloc. |
-
| {{cssxref("border-inline")}} | -Définit border-color, -style et -width pour les deux bordures sur l'axe en ligne. |
-
| {{cssxref("border-inline-color")}} | -Définit border-color pour les deux bordures sur l'axe en ligne. |
-
| {{cssxref("border-inline-style")}} | -Définit border-style pour les deux bordures sur l'axe en ligne. |
-
| {{cssxref("border-inline-width")}} | -Définit border-width pour les deux bordures sur l'axe en ligne. |
-
| {{cssxref("margin-block")}} | -Défnit les deux marges sur l'axe de bloc. | -
| {{cssxref("margin-inline")}} | -Défnit les deux marges sur l'axe en ligne. | -
| {{cssxref("padding-block")}} | -Définit le remplissage (padding) sur l'axe de bloc. | -
| {{cssxref("padding-inline")}} | -Définit le remplissage (padding) sur l'axe en ligne. | -
Les quatre propriétés logiques {{cssxref("margin-inline-start")}}, {{cssxref("margin-inline-end")}}, {{cssxref("margin-block-start")}} et {{cssxref("margin-inline-end")}} peuvent être utilisées à la place des propriétés physiques habituelles afin de définir une marge.
- -Dans l'exemple qui suit, on a créé deux boîtes et définit une marge différente pour chaque côté. On a aussi ajouté un conteneur supplémentaire avec une bordure afin de mieux visualiser la bordure.
- -Une boîte utilise les propriétés physiques et la seconde les propriétés logiques. Vous pouvez modifier la valeur de la propriété {{cssxref("direction")}} (la changer en rtl par exemple) : la première boîte conservera les mêmes marges tandis que la seconde verra ses marges en ligne échangées.
Vous pouvez également modifier la propriété writing-mode pour la passer de horizontal-tb à vertical-rl. Là aussi, vous pourrez voir les marges rester les mêmes pour la première boîte et passer d'un côté à l'autre pour la seconde.
{{EmbedGHLiveSample("css-examples/logical/margin-longhands.html", '100%', 700)}}
- -Avec les propriétés logiques, on peut définir les deux côtés en ligne et les deux côtés en bloc à l'aide d'une propriété et on a donc de nouvelles propriétés raccourcies : {{cssxref("margin-inline")}} et {{cssxref("margin-block")}}. Ces deux propriétés s'utilisent avec deux valeurs : la première sera appliquée au côté du début pour l'axe et la deuxième au côté de fin. Si une seule valeur est utilisée, elle sera appliquée aux deux côtés.
- -Avec un mode d'écriture horizontal, cette déclaration CSS appliquerait une marge de 5 pixels sur le côté haut de la boîte et une marge de 10 pixels sur le bas de la boîte.
- -.box {
- margin-block: 5px 10px;
-}
-
-Note : Ces propriétés raccourcies, margin-inline et margin-block, ont été implémentées avec Firefox 66. Elles restent relativement nouvelles et mieux vaut donc vérifier la compatibilité navigateur avant de les utiliser.
Pour le remplissage, ce sont les propriétés logiques {{cssxref("padding-inline-start")}}, {{cssxref("padding-inline-end")}}, {{cssxref("padding-block-start")}} et {{cssxref("padding-inline-end")}} qui ont été ajoutées et qui peuvent être utilisées en lieu et place de leur équivalent physique.
- -Dans l'exemple suivant, on dispose de deux boîtes, la première possède des remplissages définis avec des propriétés physiques et la seconde avec des propriétés logiques. En utilisant un mode d'écriture horizontal-tb, les deux boîtes auront la même apparence.
En modifiant la propriété direction avec la valeur rtl, les boîtes seront affichées de droite à gauche. Le remplissage de la première boîte restera à la même place et celui de la deuxième boîte changera de côté.
Vous pouvez aussi modifier la valeur de la propriété writing-mode pour la passer de horizontal-tb à vertical-rl. Là encore, rien ne change pour la première boîte mais pour la seconde, les remplissages se trouvent échangés.
{{EmbedGHLiveSample("css-examples/logical/padding-longhands.html", '100%', 700)}}
- -À l'instar des marges, deux propriétés raccourcies ont été ajoutées {{cssxref("padding-inline")}} et {{cssxref("padding-block")}}. Elles permettent, respectivement, de définir le remplissage pour les deux côtés sur l'axe en ligne et sur l'axe en bloc.
- -Avec un mode d'écriture horizontal, cette déclaration CSS appliquera un remplissage de 5px sur le haut de la boîte et un remplissage de 10 pixels en bas de la boîte :
.box {
- padding-block: 5px 10px;
-}
-
-Note : Ces propriétés raccourcies, padding-inline et padding-block, ont été implémentées avec Firefox 66. Elles restent relativement nouvelles et mieux vaut donc vérifier la compatibilité navigateur avant de les utiliser.
Les propriétés relatives aux bordures fournissent une grande quantité de propriétés tant logiques que physiques (pour la couleur, la largeur, le style, pour chaque côté, pour les propriétés raccourcies). De la même façon qu'on a des équivalences avec les propriétés physiques pour les marges et les remplissages, on a également des propriétés logiques pour les bordures.
- -L'exemple ci-après utilise certaines propriétés détaillées et propriétés raccourcies. Comme précédemment, vous pouvez modifier les valeurs des propriétés direction et writing-mode pour observer les impacts.
{{EmbedGHLiveSample("css-examples/logical/border-longhands.html", '100%', 700)}}
- -Il y a des propriétés raccourcies avec deux valeurs pour paramétrer la largeur, le style et la couleur de la bordure pour les côtés sur l'axe en ligne ou pour les côtés sur l'axe de bloc. Le fragment de code qui suit, si on l'utilise avec un mode d'écriture horizontal, fournira une bordure verte de 2 pixels sur un trait plein en haut et en bas de la boîte et une bordure pointillée violette de 4 pixels sur les côtés gauche et droit.
- -.box {
- border-block: 2px solid green;
- border-inline-width: 4px;
- border-inline-style: dotted;
- border-inline-color: rebeccapurple;
-}
-
-Note : Ces propriétés raccourcies, border-inline et border-block, ont été implémentées avec Firefox 66. Elles restent relativement nouvelles et mieux vaut donc vérifier la compatibilité navigateur avant de les utiliser.
La spécification a également ajouté des propriétés relatives au flux pour les propriétés détaillées associées à {{cssxref("border-radius")}}. Ces propriétés n'ont pas encore (décembre 2018) été implémentées par les différents navigateurs. L'exemple qui suit, avec un mode d'écriture horizontal, fournira une bordure en haut à droite avec un rayon de courbure de 1em, une bordure en bas à droite sans rayon de courbure, une bordure en bas à gauche avec un rayon de courbure de 20 pixels et une bordure courbée avec un rayon de 40 pixels pour le coin supérieur gauche.
- -.box {
- border-end-start-radius: 1em;
- border-end-end-radius: 0;
- border-start-end-radius: 20px;
- border-start-start-radius: 40px;
-}
-
-La spécification définit une suggestion qui pourrait être utilisée afin de manipuler les propriétés raccourcies (margin par exemple) avec des valeurs logiques. Toutefois, le consensus n'a pas encore été atteint sur la résolution de ce point et est discuté au travers de cette issue.
À l'heure actuelle (décembre 2018), les propriétés raccourcies margin, padding et border ne fonctionent qu'avec les valeurs physiques. Aussi, si respecter le flux du document est primordial et que vous devez utiliser les valeurs logiques, vous devrez recourir aux propriétés détaillées afin d'utiliser les valeurs logiques.
{{CSSRef}}
+ +La spécification sur les propriétés et valeurs logiques définit des correspondances pour les propriétés servant à définir les marges, les bordures et les remplissages (padding) et les propriétés raccourcies associées. Dans ce guide, nous verrons comment utiliser ces propriétés logiques.
+ +Si vous avez consulté la page principale sur les propriétés et valeurs logiques, vous avez pu voir une grande quantité de propriétés. Cela est principalement du au fait que pour chaque marge, bordure et remplissage, il y a quatre propriétés détaillées et une propriété raccourcie.
+ +La spécification détaille les correspondances entre les valeurs logiques et les valeurs physiques. Dans le tableau qui suit,on liste les correspondances lorsque le mode d'écriture utilisé est horizontal-tb et où la direction du texte va de gauche à droite. L'axe en ligne est donc horizontal, dirigé de gauche à droite et {{cssxref("margin-inline-start")}} est équivalent à {{cssxref("margin-left")}}.
Si on avait utilisé un mode d'écriture horizontal-tb orienté de droite à gauche, {{cssxref("margin-inline-start")}} aurait correspondu à {{cssxref("margin-right")}}. Pour un mode d'écriture vertical, elle aurait correspondu à {{cssxref("margin-top")}}.
| Propriété logique | +Propriété physique | +
|---|---|
| {{cssxref("border-block-end")}} | +{{cssxref("border-bottom")}} | +
| {{cssxref("border-block-end-color")}} | +{{cssxref("border-bottom-color")}} | +
| {{cssxref("border-block-end-style")}} | +{{cssxref("border-bottom-style")}} | +
| {{cssxref("border-block-end-width")}} | +{{cssxref("border-bottom-width")}} | +
| {{cssxref("border-block-start")}} | +{{cssxref("border-top")}} | +
| {{cssxref("border-block-start-color")}} | +{{cssxref("border-top-color")}} | +
| {{cssxref("border-block-start-style")}} | +{{cssxref("border-top-style")}} | +
| {{cssxref("border-block-start-width")}} | +{{cssxref("border-top-width")}} | +
| {{cssxref("border-inline-end")}} | +{{cssxref("border-right")}} | +
| {{cssxref("border-inline-end-color")}} | +{{cssxref("border-right-color")}} | +
| {{cssxref("border-inline-end-style")}} | +{{cssxref("border-right-style")}} | +
| {{cssxref("border-inline-end-width")}} | +{{cssxref("border-right-width")}} | +
| {{cssxref("border-inline-start")}} | +{{cssxref("border-left")}} | +
| {{cssxref("border-inline-start-color")}} | +{{cssxref("border-left-color")}} | +
| {{cssxref("border-inline-start-style")}} | +{{cssxref("border-left-style")}} | +
| {{cssxref("border-inline-start-width")}} | +{{cssxref("border-left-width")}} | +
| {{cssxref("border-start-start-radius")}} | +{{cssxref("border-top-left-radius")}} | +
| {{cssxref("border-start-end-radius")}} | +{{cssxref("border-bottom-left-radius")}} | +
| {{cssxref("border-end-start-radius")}} | +{{cssxref("border-top-right-radius")}} | +
| {{cssxref("border-end-end-radius")}} | +{{cssxref("border-bottom-right-radius")}} | +
| {{cssxref("margin-block-end")}} | +{{cssxref("margin-bottom")}} | +
| {{cssxref("margin-block-start")}} | +{{cssxref("margin-top")}} | +
| {{cssxref("margin-inline-end")}} | +{{cssxref("margin-right")}} | +
| {{cssxref("margin-inline-start")}} | +{{cssxref("margin-left")}} | +
| {{cssxref("padding-block-end")}} | +{{cssxref("padding-bottom")}} | +
| {{cssxref("padding-block-start")}} | +{{cssxref("padding-top")}} | +
| {{cssxref("padding-inline-end")}} | +{{cssxref("padding-right")}} | +
| {{cssxref("padding-inline-start")}} | +{{cssxref("padding-left")}} | +
De nouvelles propriétés raccourcies sont également apparues et permettent de manipuler les deux extrêmités d'un même axe. Ces propriétés raccourcies n'ont pas de propriété physique équivalente.
+ +| Propriété | +Objectif | +
|---|---|
| {{cssxref("border-block")}} | +Définit {{cssxref("border-color")}}, {{cssxref("border-style")}} et {{cssxref("border-width")}} pour les deux bordures sur l'axe de bloc. | +
| {{cssxref("border-block-color")}} | +Définit border-color pour les deux bordures sur l'axe de bloc. |
+
| {{cssxref("border-block-style")}} | +Définit border-style pour les deux bordures sur l'axe de bloc. |
+
| {{cssxref("border-block-width")}} | +Définit border-width pour les deux bordures sur l'axe de bloc. |
+
| {{cssxref("border-inline")}} | +Définit border-color, -style et -width pour les deux bordures sur l'axe en ligne. |
+
| {{cssxref("border-inline-color")}} | +Définit border-color pour les deux bordures sur l'axe en ligne. |
+
| {{cssxref("border-inline-style")}} | +Définit border-style pour les deux bordures sur l'axe en ligne. |
+
| {{cssxref("border-inline-width")}} | +Définit border-width pour les deux bordures sur l'axe en ligne. |
+
| {{cssxref("margin-block")}} | +Défnit les deux marges sur l'axe de bloc. | +
| {{cssxref("margin-inline")}} | +Défnit les deux marges sur l'axe en ligne. | +
| {{cssxref("padding-block")}} | +Définit le remplissage (padding) sur l'axe de bloc. | +
| {{cssxref("padding-inline")}} | +Définit le remplissage (padding) sur l'axe en ligne. | +
Les quatre propriétés logiques {{cssxref("margin-inline-start")}}, {{cssxref("margin-inline-end")}}, {{cssxref("margin-block-start")}} et {{cssxref("margin-inline-end")}} peuvent être utilisées à la place des propriétés physiques habituelles afin de définir une marge.
+ +Dans l'exemple qui suit, on a créé deux boîtes et définit une marge différente pour chaque côté. On a aussi ajouté un conteneur supplémentaire avec une bordure afin de mieux visualiser la bordure.
+ +Une boîte utilise les propriétés physiques et la seconde les propriétés logiques. Vous pouvez modifier la valeur de la propriété {{cssxref("direction")}} (la changer en rtl par exemple) : la première boîte conservera les mêmes marges tandis que la seconde verra ses marges en ligne échangées.
Vous pouvez également modifier la propriété writing-mode pour la passer de horizontal-tb à vertical-rl. Là aussi, vous pourrez voir les marges rester les mêmes pour la première boîte et passer d'un côté à l'autre pour la seconde.
{{EmbedGHLiveSample("css-examples/logical/margin-longhands.html", '100%', 700)}}
+ +Avec les propriétés logiques, on peut définir les deux côtés en ligne et les deux côtés en bloc à l'aide d'une propriété et on a donc de nouvelles propriétés raccourcies : {{cssxref("margin-inline")}} et {{cssxref("margin-block")}}. Ces deux propriétés s'utilisent avec deux valeurs : la première sera appliquée au côté du début pour l'axe et la deuxième au côté de fin. Si une seule valeur est utilisée, elle sera appliquée aux deux côtés.
+ +Avec un mode d'écriture horizontal, cette déclaration CSS appliquerait une marge de 5 pixels sur le côté haut de la boîte et une marge de 10 pixels sur le bas de la boîte.
+ +.box {
+ margin-block: 5px 10px;
+}
+
+Note : Ces propriétés raccourcies, margin-inline et margin-block, ont été implémentées avec Firefox 66. Elles restent relativement nouvelles et mieux vaut donc vérifier la compatibilité navigateur avant de les utiliser.
Pour le remplissage, ce sont les propriétés logiques {{cssxref("padding-inline-start")}}, {{cssxref("padding-inline-end")}}, {{cssxref("padding-block-start")}} et {{cssxref("padding-inline-end")}} qui ont été ajoutées et qui peuvent être utilisées en lieu et place de leur équivalent physique.
+ +Dans l'exemple suivant, on dispose de deux boîtes, la première possède des remplissages définis avec des propriétés physiques et la seconde avec des propriétés logiques. En utilisant un mode d'écriture horizontal-tb, les deux boîtes auront la même apparence.
En modifiant la propriété direction avec la valeur rtl, les boîtes seront affichées de droite à gauche. Le remplissage de la première boîte restera à la même place et celui de la deuxième boîte changera de côté.
Vous pouvez aussi modifier la valeur de la propriété writing-mode pour la passer de horizontal-tb à vertical-rl. Là encore, rien ne change pour la première boîte mais pour la seconde, les remplissages se trouvent échangés.
{{EmbedGHLiveSample("css-examples/logical/padding-longhands.html", '100%', 700)}}
+ +À l'instar des marges, deux propriétés raccourcies ont été ajoutées {{cssxref("padding-inline")}} et {{cssxref("padding-block")}}. Elles permettent, respectivement, de définir le remplissage pour les deux côtés sur l'axe en ligne et sur l'axe en bloc.
+ +Avec un mode d'écriture horizontal, cette déclaration CSS appliquera un remplissage de 5px sur le haut de la boîte et un remplissage de 10 pixels en bas de la boîte :
.box {
+ padding-block: 5px 10px;
+}
+
+Note : Ces propriétés raccourcies, padding-inline et padding-block, ont été implémentées avec Firefox 66. Elles restent relativement nouvelles et mieux vaut donc vérifier la compatibilité navigateur avant de les utiliser.
Les propriétés relatives aux bordures fournissent une grande quantité de propriétés tant logiques que physiques (pour la couleur, la largeur, le style, pour chaque côté, pour les propriétés raccourcies). De la même façon qu'on a des équivalences avec les propriétés physiques pour les marges et les remplissages, on a également des propriétés logiques pour les bordures.
+ +L'exemple ci-après utilise certaines propriétés détaillées et propriétés raccourcies. Comme précédemment, vous pouvez modifier les valeurs des propriétés direction et writing-mode pour observer les impacts.
{{EmbedGHLiveSample("css-examples/logical/border-longhands.html", '100%', 700)}}
+ +Il y a des propriétés raccourcies avec deux valeurs pour paramétrer la largeur, le style et la couleur de la bordure pour les côtés sur l'axe en ligne ou pour les côtés sur l'axe de bloc. Le fragment de code qui suit, si on l'utilise avec un mode d'écriture horizontal, fournira une bordure verte de 2 pixels sur un trait plein en haut et en bas de la boîte et une bordure pointillée violette de 4 pixels sur les côtés gauche et droit.
+ +.box {
+ border-block: 2px solid green;
+ border-inline-width: 4px;
+ border-inline-style: dotted;
+ border-inline-color: rebeccapurple;
+}
+
+Note : Ces propriétés raccourcies, border-inline et border-block, ont été implémentées avec Firefox 66. Elles restent relativement nouvelles et mieux vaut donc vérifier la compatibilité navigateur avant de les utiliser.
La spécification a également ajouté des propriétés relatives au flux pour les propriétés détaillées associées à {{cssxref("border-radius")}}. Ces propriétés n'ont pas encore (décembre 2018) été implémentées par les différents navigateurs. L'exemple qui suit, avec un mode d'écriture horizontal, fournira une bordure en haut à droite avec un rayon de courbure de 1em, une bordure en bas à droite sans rayon de courbure, une bordure en bas à gauche avec un rayon de courbure de 20 pixels et une bordure courbée avec un rayon de 40 pixels pour le coin supérieur gauche.
+ +.box {
+ border-end-start-radius: 1em;
+ border-end-end-radius: 0;
+ border-start-end-radius: 20px;
+ border-start-start-radius: 40px;
+}
+
+La spécification définit une suggestion qui pourrait être utilisée afin de manipuler les propriétés raccourcies (margin par exemple) avec des valeurs logiques. Toutefois, le consensus n'a pas encore été atteint sur la résolution de ce point et est discuté au travers de cette issue.
À l'heure actuelle (décembre 2018), les propriétés raccourcies margin, padding et border ne fonctionent qu'avec les valeurs physiques. Aussi, si respecter le flux du document est primordial et que vous devez utiliser les valeurs logiques, vous devrez recourir aux propriétés détaillées afin d'utiliser les valeurs logiques.
Dans ce guide, nous verrons les correspondances entre les propriétés physiques et les propriétés logiques qui peuvent être utilisées afin de dimensionner des éléments au sein d'un document.
- -Lorsqu'on définit la taille d'un objet, la spécification sur les propriétés et les valeurs logiques permet de définir le dimensionnement en fonction du flux du texte (le mode d'écriture et son orientation) plutôt que relativement aux dimensions physiques du support (haut / bas / gauche / droite). Bien que ce premier fonctionnement, utilisant des propriétés et des valeurs logiques, puisse devenir la méthode par défaut à l'avenir, on peut tout à fait avoir besoin d'utiliser des propriétés et des valeurs physiques en combinaison avec ces propriétés et ces valeurs logiques.
- -Le tableau qui suit fournit les correspondances entre les propriétés logiques et les propriétés physiques lorsqu'on utilise un mode d'écriture horizontal progressant de haut en bas (horizontal-tb) comme c'est le cas avec le français ou l'arabe. Dans ce cas, la propriété physique {{CSSxRef("width")}} serait équivalente à la propriété logique {{CSSxRef("inline-size")}}.
Si on utilisait un mode d'écriture vertical, {{CSSxRef("inline-size")}} aurait correspondu à {{CSSxRef("height")}}.
- -| Propriété logique | -Propriété physique | -
|---|---|
| {{CSSxRef("inline-size")}} | -{{CSSxRef("width")}} | -
| {{CSSxRef("block-size")}} | -{{CSSxRef("height")}} | -
| {{CSSxRef("min-inline-size")}} | -{{CSSxRef("min-width")}} | -
| {{CSSxRef("min-block-size")}} | -{{CSSxRef("min-height")}} | -
| {{CSSxRef("max-inline-size")}} | -{{CSSxRef("max-width")}} | -
| {{CSSxRef("max-block-size")}} | -{{CSSxRef("max-height")}} | -
width et heightLes propriétés logiques correspondant à {{CSSxRef("width")}} et {{CSSxRef("height")}} sont : {{CSSxRef("inline-size")}} pour la taille sur la dimension en ligne et {{CSSxRef("block-size")}}, pour la taille selon la dimension de bloc. Si on travaille sur un document en français, on pourra remplacer width par inline-size et height par block-size et on obtiendra le même résultat.
Dans l'exemple interactif suivant, le mode d'écriture est explicitement définit avec horizontal-tb. En modifiant cette valeur pour la passer à vertical-rl, on verra que le premier exemple, qui utilise width et height, conserve le même dimensionnement, même si le texte s'affiche verticalement. Pour le second exemple qui utilise inline-size et block-size, on voit que le texte et le dimensionnement suivent l'orientation du flux et que le bloc est ainsi tourné dans son intégralité.
{{EmbedGHLiveSample("css-examples/logical/size-inline-block.html", '100%', 500)}}
- -min-width et min-heightIl existe également des propriétés logiques correspondantes pour {{CSSxRef("min-width")}} et {{CSSxRef("min-height")}} : {{CSSxRef("min-inline-size")}} et {{CSSxRef("min-block-size")}}. Celles-ci fonctionnent de la même façon que inline-size et block-size mais paramètrent une taille minimale plutôt qu'une taille fixe.
Dans l'exemple suivant, vous pouvez passer le mode d'écriture en vertical-rl et observer l'effet obtenu. Là encore, on utilise la propriété physique (min-height) sur le premier exemple et la propriété logique (min-block-size) sur le second.
{{EmbedGHLiveSample("css-examples/logical/size-min.html", "100%", 500)}}
- -max-width et max-heightEnfin, on peut utiliser {{CSSxRef("max-inline-size")}} et {{CSSxRef("max-block-size")}} afin de remplacer les propriétés physiques {{CSSxRef("max-width")}} et {{CSSxRef("max-height")}}. Là encore, vous pouvez modifier l'exemple qui suit pour observer les conséquences de ce changement.
- -{{EmbedGHLiveSample("css-examples/logical/size-max.html", "100%", 500)}}
- -resizeLa propriété {{CSSxRef("resize")}} définit si un objet peut être redimensionné. Cette propriété s'utilise avec les valeurs physiques horizontal et vertical. La propriété resize peut désormais s'utiliser également avec des valeurs logiques : resize: inline permettra de redimensionner un objet sur l'axe en ligne et resize: block permettra de le redimensionner sur l'axe en bloc.
La valeur both peut être utilisée dans un contexte physique ou dans un contexte logique : elle permet le redimensionnement sur les deux axes. Vous pouvez manipuler cette propriété et ces valeurs dans l'exemple interactif suivant.
{{EmbedGHLiveSample("css-examples/logical/size-resize.html", "100%", 700)}}
- -Attention : À l'heure actuelle (décembre 2018), seul Firefox prend en charge les valeurs logiques pour resize.
Dans ce guide, nous verrons les correspondances entre les propriétés physiques et les propriétés logiques qui peuvent être utilisées afin de dimensionner des éléments au sein d'un document.
+ +Lorsqu'on définit la taille d'un objet, la spécification sur les propriétés et les valeurs logiques permet de définir le dimensionnement en fonction du flux du texte (le mode d'écriture et son orientation) plutôt que relativement aux dimensions physiques du support (haut / bas / gauche / droite). Bien que ce premier fonctionnement, utilisant des propriétés et des valeurs logiques, puisse devenir la méthode par défaut à l'avenir, on peut tout à fait avoir besoin d'utiliser des propriétés et des valeurs physiques en combinaison avec ces propriétés et ces valeurs logiques.
+ +Le tableau qui suit fournit les correspondances entre les propriétés logiques et les propriétés physiques lorsqu'on utilise un mode d'écriture horizontal progressant de haut en bas (horizontal-tb) comme c'est le cas avec le français ou l'arabe. Dans ce cas, la propriété physique {{CSSxRef("width")}} serait équivalente à la propriété logique {{CSSxRef("inline-size")}}.
Si on utilisait un mode d'écriture vertical, {{CSSxRef("inline-size")}} aurait correspondu à {{CSSxRef("height")}}.
+ +| Propriété logique | +Propriété physique | +
|---|---|
| {{CSSxRef("inline-size")}} | +{{CSSxRef("width")}} | +
| {{CSSxRef("block-size")}} | +{{CSSxRef("height")}} | +
| {{CSSxRef("min-inline-size")}} | +{{CSSxRef("min-width")}} | +
| {{CSSxRef("min-block-size")}} | +{{CSSxRef("min-height")}} | +
| {{CSSxRef("max-inline-size")}} | +{{CSSxRef("max-width")}} | +
| {{CSSxRef("max-block-size")}} | +{{CSSxRef("max-height")}} | +
width et heightLes propriétés logiques correspondant à {{CSSxRef("width")}} et {{CSSxRef("height")}} sont : {{CSSxRef("inline-size")}} pour la taille sur la dimension en ligne et {{CSSxRef("block-size")}}, pour la taille selon la dimension de bloc. Si on travaille sur un document en français, on pourra remplacer width par inline-size et height par block-size et on obtiendra le même résultat.
Dans l'exemple interactif suivant, le mode d'écriture est explicitement définit avec horizontal-tb. En modifiant cette valeur pour la passer à vertical-rl, on verra que le premier exemple, qui utilise width et height, conserve le même dimensionnement, même si le texte s'affiche verticalement. Pour le second exemple qui utilise inline-size et block-size, on voit que le texte et le dimensionnement suivent l'orientation du flux et que le bloc est ainsi tourné dans son intégralité.
{{EmbedGHLiveSample("css-examples/logical/size-inline-block.html", '100%', 500)}}
+ +min-width et min-heightIl existe également des propriétés logiques correspondantes pour {{CSSxRef("min-width")}} et {{CSSxRef("min-height")}} : {{CSSxRef("min-inline-size")}} et {{CSSxRef("min-block-size")}}. Celles-ci fonctionnent de la même façon que inline-size et block-size mais paramètrent une taille minimale plutôt qu'une taille fixe.
Dans l'exemple suivant, vous pouvez passer le mode d'écriture en vertical-rl et observer l'effet obtenu. Là encore, on utilise la propriété physique (min-height) sur le premier exemple et la propriété logique (min-block-size) sur le second.
{{EmbedGHLiveSample("css-examples/logical/size-min.html", "100%", 500)}}
+ +max-width et max-heightEnfin, on peut utiliser {{CSSxRef("max-inline-size")}} et {{CSSxRef("max-block-size")}} afin de remplacer les propriétés physiques {{CSSxRef("max-width")}} et {{CSSxRef("max-height")}}. Là encore, vous pouvez modifier l'exemple qui suit pour observer les conséquences de ce changement.
+ +{{EmbedGHLiveSample("css-examples/logical/size-max.html", "100%", 500)}}
+ +resizeLa propriété {{CSSxRef("resize")}} définit si un objet peut être redimensionné. Cette propriété s'utilise avec les valeurs physiques horizontal et vertical. La propriété resize peut désormais s'utiliser également avec des valeurs logiques : resize: inline permettra de redimensionner un objet sur l'axe en ligne et resize: block permettra de le redimensionner sur l'axe en bloc.
La valeur both peut être utilisée dans un contexte physique ou dans un contexte logique : elle permet le redimensionnement sur les deux axes. Vous pouvez manipuler cette propriété et ces valeurs dans l'exemple interactif suivant.
{{EmbedGHLiveSample("css-examples/logical/size-resize.html", "100%", 700)}}
+ +Attention : À l'heure actuelle (décembre 2018), seul Firefox prend en charge les valeurs logiques pour resize.
CSS Masking (ou « masques CSS ») est un module CSS qui définit les moyens, dont les masques et le clipping, pour dissimuler des parties d'éléments visuels, partiellement ou en totalité.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks")}} | -{{Spec2("CSS Masks")}} | -- |
| {{SpecName('SVG1.1', 'masking.html#MaskProperty', 'mask')}} | -{{Spec2('SVG1.1')}} | -Définition initiale. | -
CSS Masking (ou « masques CSS ») est un module CSS qui définit les moyens, dont les masques et le clipping, pour dissimuler des parties d'éléments visuels, partiellement ou en totalité.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks")}} | +{{Spec2("CSS Masks")}} | ++ |
| {{SpecName('SVG1.1', 'masking.html#MaskProperty', 'mask')}} | +{{Spec2('SVG1.1')}} | +Définition initiale. | +
Cette page regroupe des propriétés CSS qui sont hautement expérimentales ou qui ne rentrent dans aucune autre catégorie.
- -Ces propriétés n'ont pour la plupart pas de lien entre elles, consultez leur pages respectives pour connaître leurs spécifications.
- -Ces propriétés n'ont pour la plupart pas de lien entre elles, consultez leurs pages respectives pour connaître leur disponibilité dans les navigateurs.
diff --git a/files/fr/web/css/css_miscellaneous/index.md b/files/fr/web/css/css_miscellaneous/index.md new file mode 100644 index 0000000000..e7d51f4938 --- /dev/null +++ b/files/fr/web/css/css_miscellaneous/index.md @@ -0,0 +1,29 @@ +--- +title: CSS Miscellaneous +slug: Web/CSS/CSS_Miscellaneous +tags: + - Aperçu + - CSS + - Reference +translation_of: Web/CSS/CSS_Miscellaneous +--- +Cette page regroupe des propriétés CSS qui sont hautement expérimentales ou qui ne rentrent dans aucune autre catégorie.
+ +Ces propriétés n'ont pour la plupart pas de lien entre elles, consultez leur pages respectives pour connaître leurs spécifications.
+ +Ces propriétés n'ont pour la plupart pas de lien entre elles, consultez leurs pages respectives pour connaître leur disponibilité dans les navigateurs.
diff --git a/files/fr/web/css/css_motion_path/index.html b/files/fr/web/css/css_motion_path/index.html deleted file mode 100644 index a20d3067bb..0000000000 --- a/files/fr/web/css/css_motion_path/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Motion Path -slug: Web/CSS/CSS_Motion_Path -tags: - - Aperçu - - CSS - - Experimental - - Motion Path - - Reference -translation_of: Web/CSS/CSS_Motion_Path -original_slug: Web/CSS/Motion_Path ---- -Motion Path est un module de la spécification CSS qui permet aux auteurs d'animer des objets graphiques le long d'une ligne appelée chemin.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Motion Path Level 1')}} | -{{Spec2('Motion Path Level 1')}} | -Définition initiale. | -
offset{{Compat("css.properties.offset")}}
diff --git a/files/fr/web/css/css_motion_path/index.md b/files/fr/web/css/css_motion_path/index.md new file mode 100644 index 0000000000..a20d3067bb --- /dev/null +++ b/files/fr/web/css/css_motion_path/index.md @@ -0,0 +1,51 @@ +--- +title: Motion Path +slug: Web/CSS/CSS_Motion_Path +tags: + - Aperçu + - CSS + - Experimental + - Motion Path + - Reference +translation_of: Web/CSS/CSS_Motion_Path +original_slug: Web/CSS/Motion_Path +--- +Motion Path est un module de la spécification CSS qui permet aux auteurs d'animer des objets graphiques le long d'une ligne appelée chemin.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Motion Path Level 1')}} | +{{Spec2('Motion Path Level 1')}} | +Définition initiale. | +
offset{{Compat("css.properties.offset")}}
diff --git a/files/fr/web/css/css_namespaces/index.html b/files/fr/web/css/css_namespaces/index.html deleted file mode 100644 index ca72f88a6c..0000000000 --- a/files/fr/web/css/css_namespaces/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: CSS Namespaces -slug: Web/CSS/CSS_Namespaces -tags: - - Aperçu - - CSS - - CSS Namespaces - - Reference -translation_of: Web/CSS/CSS_Namespaces ---- -CSS Namespaces (ou « espaces de noms CSS ») est un module CSS qui permet aux auteurs de spécifier des espaces de noms XML en CSS.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Namespaces")}} | -{{Spec2("CSS3 Namespaces")}} | -Définition initiale. | -
@namespace{{Compat("css.at-rules.namespace")}}
diff --git a/files/fr/web/css/css_namespaces/index.md b/files/fr/web/css/css_namespaces/index.md new file mode 100644 index 0000000000..ca72f88a6c --- /dev/null +++ b/files/fr/web/css/css_namespaces/index.md @@ -0,0 +1,46 @@ +--- +title: CSS Namespaces +slug: Web/CSS/CSS_Namespaces +tags: + - Aperçu + - CSS + - CSS Namespaces + - Reference +translation_of: Web/CSS/CSS_Namespaces +--- +CSS Namespaces (ou « espaces de noms CSS ») est un module CSS qui permet aux auteurs de spécifier des espaces de noms XML en CSS.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Namespaces")}} | +{{Spec2("CSS3 Namespaces")}} | +Définition initiale. | +
@namespace{{Compat("css.at-rules.namespace")}}
diff --git a/files/fr/web/css/css_overflow/index.html b/files/fr/web/css/css_overflow/index.html deleted file mode 100644 index cbac890ad5..0000000000 --- a/files/fr/web/css/css_overflow/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: CSS Overflow -slug: Web/CSS/CSS_Overflow -tags: - - CSS - - CSS Overflow - - Reference -translation_of: Web/CSS/CSS_Overflow ---- -{{CSSRef}}
- Le module de spécification CSS Overflow décrit les fonctionnalités CSS relatives au dépassement et au défilement du contenu pour les médias visuels. En CSS, le dépassement se produit lorsque le contenu d'une boîte s'étend au-delà des bords de la boîte.
Il existe deux types de dépassement en CSS. Le premier, intitulé en anglais ink overflow (qu'on pourrait traduire par « dépassement pour le dessin ») indique le dépassement des effets visuels qui ne modifient pas la disposition ou le dimensionnement (ex. les ombres des boîtes, les bordures des images, les décorations du texte, les caractères avec un jambage qui dépasse, etc.).
- -Le second type de dépassement, scrollable overflow (ou dépassement défilable) se produit lorsque du contenu se situe hors de la boîte et qu'il est nécessaire de fournir un mécanisme pour faire défiler le contenu afin de pouvoir le consulter. Les propriétés de ce module de spécification décrivent ce qui se passe lorsque le contenu dépasse d'une boîte.
- -L'exempel interactif suivant illustre comment la modification de la valeur de la propriété overflow change la façon dont est géré le dépassement pour une boîte avec une hauteur fixe.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow', 'overflow')}} | -{{Spec2('CSS3 Overflow')}} | -Modification de la syntaxe afin de permettre d'utilise un ou deux mots-clés (plutôt qu'un seul auparavant). | -
| {{SpecName('CSS2.1', 'visufx.html#overflow', 'overflow')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{CSSRef}}
+ Le module de spécification CSS Overflow décrit les fonctionnalités CSS relatives au dépassement et au défilement du contenu pour les médias visuels. En CSS, le dépassement se produit lorsque le contenu d'une boîte s'étend au-delà des bords de la boîte.
Il existe deux types de dépassement en CSS. Le premier, intitulé en anglais ink overflow (qu'on pourrait traduire par « dépassement pour le dessin ») indique le dépassement des effets visuels qui ne modifient pas la disposition ou le dimensionnement (ex. les ombres des boîtes, les bordures des images, les décorations du texte, les caractères avec un jambage qui dépasse, etc.).
+ +Le second type de dépassement, scrollable overflow (ou dépassement défilable) se produit lorsque du contenu se situe hors de la boîte et qu'il est nécessaire de fournir un mécanisme pour faire défiler le contenu afin de pouvoir le consulter. Les propriétés de ce module de spécification décrivent ce qui se passe lorsque le contenu dépasse d'une boîte.
+ +L'exempel interactif suivant illustre comment la modification de la valeur de la propriété overflow change la façon dont est géré le dépassement pour une boîte avec une hauteur fixe.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow', 'overflow')}} | +{{Spec2('CSS3 Overflow')}} | +Modification de la syntaxe afin de permettre d'utilise un ou deux mots-clés (plutôt qu'un seul auparavant). | +
| {{SpecName('CSS2.1', 'visufx.html#overflow', 'overflow')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
Les média paginés CSS (ou CSS Paged Media en anglais) est un module CSS qui définit la façon dont sont gérés les sauts de page ainsi que les veuves et orphelines.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Paged Media')}} | -{{Spec2('CSS3 Paged Media')}} | -- |
| {{SpecName('CSS3 Fragmentation')}} | -{{Spec2('CSS3 Fragmentation')}} | -- |
| {{SpecName('CSS2.1')}} | -{{Spec2('CSS2.1')}} | -- |
Les média paginés CSS (ou CSS Paged Media en anglais) est un module CSS qui définit la façon dont sont gérés les sauts de page ainsi que les veuves et orphelines.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Paged Media')}} | +{{Spec2('CSS3 Paged Media')}} | ++ |
| {{SpecName('CSS3 Fragmentation')}} | +{{Spec2('CSS3 Fragmentation')}} | ++ |
| {{SpecName('CSS2.1')}} | +{{Spec2('CSS2.1')}} | ++ |
CSS Positioned Layout (ou module CSS de disposition positionnée) est un module CSS qui définit comment positionner des éléments sur une page.
- -z-index en CSS| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Positioning')}} | -{{Spec2('CSS3 Positioning') }} | -- |
| {{SpecName('CSS2.1', 'visuren.html')}} | -{{Spec2('CSS2.1')}} | -- |
CSS Positioned Layout (ou module CSS de disposition positionnée) est un module CSS qui définit comment positionner des éléments sur une page.
+ +z-index en CSS| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Positioning')}} | +{{Spec2('CSS3 Positioning') }} | ++ |
| {{SpecName('CSS2.1', 'visuren.html')}} | +{{Spec2('CSS2.1')}} | ++ |
z-indexDans le premier exemple, « empilement sans z-index », illustre comment l'empilement fonctionne par défaut. Pour définir un ordre d'empilement différent, il faut utiliser la propriété CSS {{cssxref("z-index")}}.
Cette propriété, dont l'attribut est une valeur entière (positive ou négative), représente la position de l'élément le long de l'axe Z. Pour se représenter cette notion, on peut imaginer que la page possède plusieurs couches, les unes au dessus des autres. Chaque couche est numérotée. Un couche avec une grande valeur de z-index est affichée par dessus toutes celles dont la valeur est inférieure à la sienne.
Attention : z-index a un effet sur les éléments uniquement si ceux-ci sont positionnés.
Note : - -
z-index n'est pas définie, les éléments sont rendus sur la couche 0 par défaut.z-index (c'est-à-dire qu'ils sont placés sur la même couche), alors les règles d'empilement expliquées dans empilement sans z-index s'appliquent.Dans l'exemple qui suit, l'empilement des couches a été réordonné en utilisant z-index. Le z-index du bloc DIV#5 n'a pas d'effet, l'élément n'étant pas positionné.
{{EmbedLiveSample("Code_source_de_l’exemple", '468', '365')}}
- -<div id="abs1"> - <b>DIV #1</b> - <br />position: absolute; - <br />z-index: 5; -</div> - -<div id="rel1"> - <b>DIV #2</b> - <br />position: relative; - <br />z-index: 3; -</div> - -<div id="rel2"> - <b>DIV #3</b> - <br />position: relative; - <br />z-index: 2; -</div> - -<div id="abs2"> - <b>DIV #4</b> - <br />position: absolute; - <br />z-index: 1; -</div> - -<div id="sta1"> - <b>DIV #5</b> - <br />no positioning - <br />z-index: 8; -</div> -- -
div {
- padding: 10px;
- opacity: 0.7;
- text-align: center;
-}
-
-b {
- font-family: sans-serif;
-}
-
-#abs1 {
- z-index: 5;
- position: absolute;
- width: 150px;
- height: 350px;
- top: 10px;
- left: 10px;
- border: 1px dashed #900;
- background-color: #fdd;
-}
-
-#rel1 {
- z-index: 3;
- height: 100px;
- position: relative;
- top: 30px;
- border: 1px dashed #696;
- background-color: #cfc;
- margin: 0px 50px 0px 50px;
-}
-
-#rel2 {
- z-index: 2;
- height: 100px;
- position: relative;
- top: 15px;
- left: 20px;
- border: 1px dashed #696;
- background-color: #cfc;
- margin: 0px 50px 0px 50px;
-}
-
-#abs2 {
- z-index: 1;
- position: absolute;
- width: 150px;
- height: 350px;
- top: 10px;
- right: 10px;
- border: 1px dashed #900;
- background-color: #fdd;
-}
-
-#sta1 {
- z-index: 8;
- height: 70px;
- border: 1px dashed #996;
- background-color: #ffc;
- margin: 0px 50px 0px 50px;
-}
-
-
-{{PreviousMenuNext("Web/CSS/Comprendre_z-index/Empilement_et_float","Web/CSS/Comprendre_z-index/Empilement_de_couches", "Web/CSS/Comprendre_z-index")}}
diff --git a/files/fr/web/css/css_positioning/understanding_z_index/adding_z-index/index.md b/files/fr/web/css/css_positioning/understanding_z_index/adding_z-index/index.md new file mode 100644 index 0000000000..bfbc64fb1c --- /dev/null +++ b/files/fr/web/css/css_positioning/understanding_z_index/adding_z-index/index.md @@ -0,0 +1,150 @@ +--- +title: Ajouter z-index +slug: Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +tags: + - Avancé + - CSS + - Guide + - z-index +translation_of: Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +original_slug: Web/CSS/Comprendre_z-index/Ajout_de_z-index +--- +z-indexDans le premier exemple, « empilement sans z-index », illustre comment l'empilement fonctionne par défaut. Pour définir un ordre d'empilement différent, il faut utiliser la propriété CSS {{cssxref("z-index")}}.
Cette propriété, dont l'attribut est une valeur entière (positive ou négative), représente la position de l'élément le long de l'axe Z. Pour se représenter cette notion, on peut imaginer que la page possède plusieurs couches, les unes au dessus des autres. Chaque couche est numérotée. Un couche avec une grande valeur de z-index est affichée par dessus toutes celles dont la valeur est inférieure à la sienne.
Attention : z-index a un effet sur les éléments uniquement si ceux-ci sont positionnés.
Note : + +
z-index n'est pas définie, les éléments sont rendus sur la couche 0 par défaut.z-index (c'est-à-dire qu'ils sont placés sur la même couche), alors les règles d'empilement expliquées dans empilement sans z-index s'appliquent.Dans l'exemple qui suit, l'empilement des couches a été réordonné en utilisant z-index. Le z-index du bloc DIV#5 n'a pas d'effet, l'élément n'étant pas positionné.
{{EmbedLiveSample("Code_source_de_l’exemple", '468', '365')}}
+ +<div id="abs1"> + <b>DIV #1</b> + <br />position: absolute; + <br />z-index: 5; +</div> + +<div id="rel1"> + <b>DIV #2</b> + <br />position: relative; + <br />z-index: 3; +</div> + +<div id="rel2"> + <b>DIV #3</b> + <br />position: relative; + <br />z-index: 2; +</div> + +<div id="abs2"> + <b>DIV #4</b> + <br />position: absolute; + <br />z-index: 1; +</div> + +<div id="sta1"> + <b>DIV #5</b> + <br />no positioning + <br />z-index: 8; +</div> ++ +
div {
+ padding: 10px;
+ opacity: 0.7;
+ text-align: center;
+}
+
+b {
+ font-family: sans-serif;
+}
+
+#abs1 {
+ z-index: 5;
+ position: absolute;
+ width: 150px;
+ height: 350px;
+ top: 10px;
+ left: 10px;
+ border: 1px dashed #900;
+ background-color: #fdd;
+}
+
+#rel1 {
+ z-index: 3;
+ height: 100px;
+ position: relative;
+ top: 30px;
+ border: 1px dashed #696;
+ background-color: #cfc;
+ margin: 0px 50px 0px 50px;
+}
+
+#rel2 {
+ z-index: 2;
+ height: 100px;
+ position: relative;
+ top: 15px;
+ left: 20px;
+ border: 1px dashed #696;
+ background-color: #cfc;
+ margin: 0px 50px 0px 50px;
+}
+
+#abs2 {
+ z-index: 1;
+ position: absolute;
+ width: 150px;
+ height: 350px;
+ top: 10px;
+ right: 10px;
+ border: 1px dashed #900;
+ background-color: #fdd;
+}
+
+#sta1 {
+ z-index: 8;
+ height: 70px;
+ border: 1px dashed #996;
+ background-color: #ffc;
+ margin: 0px 50px 0px 50px;
+}
+
+
+{{PreviousMenuNext("Web/CSS/Comprendre_z-index/Empilement_et_float","Web/CSS/Comprendre_z-index/Empilement_de_couches", "Web/CSS/Comprendre_z-index")}}
diff --git a/files/fr/web/css/css_positioning/understanding_z_index/index.html b/files/fr/web/css/css_positioning/understanding_z_index/index.html deleted file mode 100644 index 92a9a86a4e..0000000000 --- a/files/fr/web/css/css_positioning/understanding_z_index/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Comprendre z-index en CSS -slug: Web/CSS/CSS_Positioning/Understanding_z_index -tags: - - Avancé - - CSS - - Guide -translation_of: Web/CSS/CSS_Positioning/Understanding_z_index -original_slug: Web/CSS/Comprendre_z-index ---- -{{CSSRef}}{{PreviousMenuNext("","Web/CSS/Comprendre_z-index/Empilement_sans_z-index", "Web/CSS/Comprendre_z-index")}}
- -Généralement, les pages HTML sont vues comme des objets en deux dimensions et le texte, les images et les autres éléments sont disposés sans se chevaucher. Il y a un seul flux de rendu, et tous les éléments connaissent la place occupée par les autres.
- --- -Dans CSS 2.1, chaque boîte a une position dans les 3 dimensions. En plus de leurs positions horizontale et verticale, les boîtes sont disposées sur un axe Z et sont disposées les unes sur les autres. Les positions sur l'axe Z sont particulièrement importantes lorsque deux boîtes se chevauchent visuellement.
-
Source : Section 9.9.1. de CSS 2.1 - La présentation en couches
- -Cela signifie que les règles de style CSS permettent de positionner des boîtes sur différentes couches, la couche « normale » étant la couche située en 0 sur l'axe Z. La position de chaque couche sur l'axe Z est exprimée par un nombre entier qui représente l'ordre d'empilement pour le rendu visuel. Plus cet entier sera grand, plus la couche sera haute dans la pile. Cette valeur se contrôle via la propriété CSS {{cssxref("z-index")}}.
- -z-index peut sembler simple d'utilisation : il ne s'agit que d'une seule propriété, exprimée avec un entier et un comportement plutôt simple de prime abord. Cependant, lorsque z-index est appliquée à des hiérarchies complexes d'éléments HTML, son comportement peut vite devenir difficile à appréhender, voire imprévisible. Ceci est dû aux règles complexes d'empilement.
Ces articles ont pour but d'expliquer ces règles, de proposer quelques simplifications et de nombreux exemples.
- -z-index : Règles d'empilement par défautfloat : Comportement des éléments flottantsz-index : Utiliser z-index pour modifier l'empilement par défautz-index sur le dernier niveauz-index sur tous les élémentsz-index sur le deuxième niveau{{PreviousMenuNext("","Web/CSS/Comprendre_z-index/Empilement_sans_z-index", "Web/CSS/Comprendre_z-index")}}
diff --git a/files/fr/web/css/css_positioning/understanding_z_index/index.md b/files/fr/web/css/css_positioning/understanding_z_index/index.md new file mode 100644 index 0000000000..92a9a86a4e --- /dev/null +++ b/files/fr/web/css/css_positioning/understanding_z_index/index.md @@ -0,0 +1,37 @@ +--- +title: Comprendre z-index en CSS +slug: Web/CSS/CSS_Positioning/Understanding_z_index +tags: + - Avancé + - CSS + - Guide +translation_of: Web/CSS/CSS_Positioning/Understanding_z_index +original_slug: Web/CSS/Comprendre_z-index +--- +{{CSSRef}}{{PreviousMenuNext("","Web/CSS/Comprendre_z-index/Empilement_sans_z-index", "Web/CSS/Comprendre_z-index")}}
+ +Généralement, les pages HTML sont vues comme des objets en deux dimensions et le texte, les images et les autres éléments sont disposés sans se chevaucher. Il y a un seul flux de rendu, et tous les éléments connaissent la place occupée par les autres.
+ +++ +Dans CSS 2.1, chaque boîte a une position dans les 3 dimensions. En plus de leurs positions horizontale et verticale, les boîtes sont disposées sur un axe Z et sont disposées les unes sur les autres. Les positions sur l'axe Z sont particulièrement importantes lorsque deux boîtes se chevauchent visuellement.
+
Source : Section 9.9.1. de CSS 2.1 - La présentation en couches
+ +Cela signifie que les règles de style CSS permettent de positionner des boîtes sur différentes couches, la couche « normale » étant la couche située en 0 sur l'axe Z. La position de chaque couche sur l'axe Z est exprimée par un nombre entier qui représente l'ordre d'empilement pour le rendu visuel. Plus cet entier sera grand, plus la couche sera haute dans la pile. Cette valeur se contrôle via la propriété CSS {{cssxref("z-index")}}.
+ +z-index peut sembler simple d'utilisation : il ne s'agit que d'une seule propriété, exprimée avec un entier et un comportement plutôt simple de prime abord. Cependant, lorsque z-index est appliquée à des hiérarchies complexes d'éléments HTML, son comportement peut vite devenir difficile à appréhender, voire imprévisible. Ceci est dû aux règles complexes d'empilement.
Ces articles ont pour but d'expliquer ces règles, de proposer quelques simplifications et de nombreux exemples.
+ +z-index : Règles d'empilement par défautfloat : Comportement des éléments flottantsz-index : Utiliser z-index pour modifier l'empilement par défautz-index sur le dernier niveauz-index sur tous les élémentsz-index sur le deuxième niveau{{PreviousMenuNext("","Web/CSS/Comprendre_z-index/Empilement_sans_z-index", "Web/CSS/Comprendre_z-index")}}
diff --git a/files/fr/web/css/css_positioning/understanding_z_index/stacking_and_float/index.html b/files/fr/web/css/css_positioning/understanding_z_index/stacking_and_float/index.html deleted file mode 100644 index 2b0dc727af..0000000000 --- a/files/fr/web/css/css_positioning/understanding_z_index/stacking_and_float/index.html +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: Empilement et éléments flottants -slug: Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float -tags: - - Avancé - - CSS - - Contextes d’empilement - - Guide - - Ordre d’empilement - - float - - z-index -translation_of: Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float -original_slug: Web/CSS/Comprendre_z-index/Empilement_et_float ---- -Pour les blocs flottants, l'ordre d'empilement est légèrement différent. Les blocs flottants sont disposés entre les blocs non positionnés et les blocs positionnés. Voici l'ordre d'empilement :
- -En fait, comme on le voit avec l'exemple ci-après, l'arrière-plan et la bordure du bloc non positionné (DIV n°4) ne sont pas impactés par les blocs flottants alors que le contenu est affecté. Il s'agit du comportement standard de la propriété CSS {{cssxref("float")}}.
- -Ce comportement peut être expliqué en améliorant la liste précédente :
- -Note : Dans l'exemple qui suit, tous les blocs sont transparents, excepté celui qui n'est pas positionné, montrant ainsi l'ordre d'empilement. Si l'on réduit l'opacité du bloc non positionné (DIV #4), il se produit quelque chose d'étrange : l'arrière-plan et la bordure de cet élément se placent par dessus les blocs flottants et les blocs positionnés. Il s'agit d'une interprétation particulière des spécifications CSS : l'application de l'opacité crée un nouveau contexte d'empilement (voir l'article : What No One Told You About Z-Index de Philip Walton ou son excellente traduction de Vincent De Oliveira, Ce que personne ne vous a dit sur z-index et, bien-sûr, la spécification).
-{{EmbedLiveSample("Code_source_de_l’exemple", 600, 250)}}
- -<div id="abs1"> - <b>DIV #1</b><br />position: absolute;</div> - -<div id="flo1"> - <b>DIV #2</b><br />float: left;</div> - -<div id="flo2"> - <b>DIV #3</b><br />float: right;</div> - -<br /> - -<div id="sta1"> - <b>DIV #4</b><br />no positioning</div> - -<div id="abs2"> - <b>DIV #5</b><br />position: absolute;</div> -- -
div {
- padding: 10px;
- text-align: center;
-}
-
-b {
- font-family: sans-serif;
-}
-
-#abs1 {
- position: absolute;
- width: 150px;
- height: 200px;
- top: 10px;
- right: 140px;
- border: 1px dashed #900;
- background-color: #fdd;
-}
-
-#sta1 {
- height: 100px;
- border: 1px dashed #996;
- background-color: #ffc;
- margin: 0px 10px 0px 10px;
- text-align: left;
-}
-
-#flo1 {
- margin: 0px 10px 0px 20px;
- float: left;
- width: 150px;
- height: 200px;
- border: 1px dashed #090;
- background-color: #cfc;
-}
-
-#flo2 {
- margin: 0px 20px 0px 10px;
- float: right;
- width: 150px;
- height: 200px;
- border: 1px dashed #090;
- background-color: #cfc;
-}
-
-#abs2 {
- position: absolute;
- width: 150px;
- height: 100px;
- top: 130px;
- left: 100px;
- border: 1px dashed #990;
- background-color: #fdd;
-}
-
-Pour les blocs flottants, l'ordre d'empilement est légèrement différent. Les blocs flottants sont disposés entre les blocs non positionnés et les blocs positionnés. Voici l'ordre d'empilement :
+ +En fait, comme on le voit avec l'exemple ci-après, l'arrière-plan et la bordure du bloc non positionné (DIV n°4) ne sont pas impactés par les blocs flottants alors que le contenu est affecté. Il s'agit du comportement standard de la propriété CSS {{cssxref("float")}}.
+ +Ce comportement peut être expliqué en améliorant la liste précédente :
+ +Note : Dans l'exemple qui suit, tous les blocs sont transparents, excepté celui qui n'est pas positionné, montrant ainsi l'ordre d'empilement. Si l'on réduit l'opacité du bloc non positionné (DIV #4), il se produit quelque chose d'étrange : l'arrière-plan et la bordure de cet élément se placent par dessus les blocs flottants et les blocs positionnés. Il s'agit d'une interprétation particulière des spécifications CSS : l'application de l'opacité crée un nouveau contexte d'empilement (voir l'article : What No One Told You About Z-Index de Philip Walton ou son excellente traduction de Vincent De Oliveira, Ce que personne ne vous a dit sur z-index et, bien-sûr, la spécification).
+{{EmbedLiveSample("Code_source_de_l’exemple", 600, 250)}}
+ +<div id="abs1"> + <b>DIV #1</b><br />position: absolute;</div> + +<div id="flo1"> + <b>DIV #2</b><br />float: left;</div> + +<div id="flo2"> + <b>DIV #3</b><br />float: right;</div> + +<br /> + +<div id="sta1"> + <b>DIV #4</b><br />no positioning</div> + +<div id="abs2"> + <b>DIV #5</b><br />position: absolute;</div> ++ +
div {
+ padding: 10px;
+ text-align: center;
+}
+
+b {
+ font-family: sans-serif;
+}
+
+#abs1 {
+ position: absolute;
+ width: 150px;
+ height: 200px;
+ top: 10px;
+ right: 140px;
+ border: 1px dashed #900;
+ background-color: #fdd;
+}
+
+#sta1 {
+ height: 100px;
+ border: 1px dashed #996;
+ background-color: #ffc;
+ margin: 0px 10px 0px 10px;
+ text-align: left;
+}
+
+#flo1 {
+ margin: 0px 10px 0px 20px;
+ float: left;
+ width: 150px;
+ height: 200px;
+ border: 1px dashed #090;
+ background-color: #cfc;
+}
+
+#flo2 {
+ margin: 0px 20px 0px 10px;
+ float: right;
+ width: 150px;
+ height: 200px;
+ border: 1px dashed #090;
+ background-color: #cfc;
+}
+
+#abs2 {
+ position: absolute;
+ width: 150px;
+ height: 100px;
+ top: 130px;
+ left: 100px;
+ border: 1px dashed #990;
+ background-color: #fdd;
+}
+
+Commençons par un exemple simple, dans le contexte d'empilement racine nous avons deux blocs DIV (DIV #1 et DIV #3), tout deux positionnés relativement, mais sans propriété {{ cssxref("z-index") }}. Dans le bloc DIV #1 il y a un bloc DIV #2 en position absolue, alors que dans le bloc DIV #3 il y a un bloc DIV #4 en position absolue, tout deux également sans propriété z-index.
Le seul et unique contexte d'empilement est le contexte racine. Sans z-index, les éléments sont empilés dans leur ordre d'apparition dans le code HTML.

Si on assigne au bloc DIV #2 une valeur de z-index positive (non nulle et non automatique), il est rendu par dessus tous les autres blocs.

Si maintenant on assigne également au bloc DIV #4 une valeur de z-index positive, plus grande que celle du DIV #2, le bloc DIV #4 est rendu par dessus tous les autres, y compris par dessus le bloc DIV #2.

Dans le dernier exemple, vous pouvez voir que les blocs DIV #2 et DIV #4 ne sont pas frères, parce qu'ils appartiennent à des parents différents dans la hiérarchie des éléments HTML. Néanmoins, l'empilement du bloc DIV #4, tout en respectant le bloc DIV #2, peut être contrôlé avec la propriété z-index. Il se fait que les éléments DIV #1 et DIV #3 n'ayant pas de z-index défini, ils ne créent pas de contexte d'empilement. Cela signifie que l'ensemble de leur contenu, y compris les blocs DIV #2 et DIV #3, appartient au contexte d'empilement de la racine.
Dans le contexte d'empilement, les blocs DIV #1 et DIV #3 sont simplement assimilés dans l'élément racine, et la hiérarchie résultante est la suivante :
- -Note : Les blocs DIV #1 et DIV #3 ne sont pas translucides. Il est important de se souvenir que d'assigner une valeur d'opacité inférieure à 1 à un élément positionné, crée implicitement un contexte d'empilement, de la même façon que l'ajout de propriétés z-index. Et cet exemple montre ce qui arrive lorsqu'un élément parent ne crée pas de contexte d'empilement.
-
.bold {
- font-weight: bold;
- font: 12px Arial;
-}
-#div1,
-#div3 {
- height: 80px;
- position: relative;
- border: 1px dashed #669966;
- background-color: #ccffcc;
- padding-left: 5px;
-}
-
-#div2 {
- opacity: 0.8;
- z-index: 1;
- position: absolute;
- width: 150px;
- height: 200px;
- top: 20px;
- left: 170px;
- border: 1px dashed #990000;
- background-color: #ffdddd;
- text-align: center;
-}
-
-#div4 {
- opacity: 0.8;
- z-index: 2;
- position: absolute;
- width: 200px;
- height: 70px;
- top: 65px;
- left: 50px;
- border: 1px dashed #000099;
- background-color: #ddddff;
- text-align: left;
- padding-left: 10px;
-}
-
-<div id="div1"> - <br/> - <span class="bold">DIV #1</span> - <br/>position: relative; - <div id="div2"> - <br/><span class="bold">DIV #2</span> - <br/>position: absolute; - <br/>z-index: 1; - </div> -</div> - -<br/> - -<div id="div3"> - <b/><span class="bold">DIV #3</span> - <br/>position: relative; - <div id="div4"> - <br/><span class="bold">DIV #4</span> - <br/>position: absolute; - <br/>z-index: 2; - </div> -</div> -- -
{{EmbedLiveSample('Exemple')}}
- -Commençons par un exemple simple, dans le contexte d'empilement racine nous avons deux blocs DIV (DIV #1 et DIV #3), tout deux positionnés relativement, mais sans propriété {{ cssxref("z-index") }}. Dans le bloc DIV #1 il y a un bloc DIV #2 en position absolue, alors que dans le bloc DIV #3 il y a un bloc DIV #4 en position absolue, tout deux également sans propriété z-index.
Le seul et unique contexte d'empilement est le contexte racine. Sans z-index, les éléments sont empilés dans leur ordre d'apparition dans le code HTML.

Si on assigne au bloc DIV #2 une valeur de z-index positive (non nulle et non automatique), il est rendu par dessus tous les autres blocs.

Si maintenant on assigne également au bloc DIV #4 une valeur de z-index positive, plus grande que celle du DIV #2, le bloc DIV #4 est rendu par dessus tous les autres, y compris par dessus le bloc DIV #2.

Dans le dernier exemple, vous pouvez voir que les blocs DIV #2 et DIV #4 ne sont pas frères, parce qu'ils appartiennent à des parents différents dans la hiérarchie des éléments HTML. Néanmoins, l'empilement du bloc DIV #4, tout en respectant le bloc DIV #2, peut être contrôlé avec la propriété z-index. Il se fait que les éléments DIV #1 et DIV #3 n'ayant pas de z-index défini, ils ne créent pas de contexte d'empilement. Cela signifie que l'ensemble de leur contenu, y compris les blocs DIV #2 et DIV #3, appartient au contexte d'empilement de la racine.
Dans le contexte d'empilement, les blocs DIV #1 et DIV #3 sont simplement assimilés dans l'élément racine, et la hiérarchie résultante est la suivante :
+ +Note : Les blocs DIV #1 et DIV #3 ne sont pas translucides. Il est important de se souvenir que d'assigner une valeur d'opacité inférieure à 1 à un élément positionné, crée implicitement un contexte d'empilement, de la même façon que l'ajout de propriétés z-index. Et cet exemple montre ce qui arrive lorsqu'un élément parent ne crée pas de contexte d'empilement.
+
.bold {
+ font-weight: bold;
+ font: 12px Arial;
+}
+#div1,
+#div3 {
+ height: 80px;
+ position: relative;
+ border: 1px dashed #669966;
+ background-color: #ccffcc;
+ padding-left: 5px;
+}
+
+#div2 {
+ opacity: 0.8;
+ z-index: 1;
+ position: absolute;
+ width: 150px;
+ height: 200px;
+ top: 20px;
+ left: 170px;
+ border: 1px dashed #990000;
+ background-color: #ffdddd;
+ text-align: center;
+}
+
+#div4 {
+ opacity: 0.8;
+ z-index: 2;
+ position: absolute;
+ width: 200px;
+ height: 70px;
+ top: 65px;
+ left: 50px;
+ border: 1px dashed #000099;
+ background-color: #ddddff;
+ text-align: left;
+ padding-left: 10px;
+}
+
+<div id="div1"> + <br/> + <span class="bold">DIV #1</span> + <br/>position: relative; + <div id="div2"> + <br/><span class="bold">DIV #2</span> + <br/>position: absolute; + <br/>z-index: 1; + </div> +</div> + +<br/> + +<div id="div3"> + <b/><span class="bold">DIV #3</span> + <br/>position: relative; + <div id="div4"> + <br/><span class="bold">DIV #4</span> + <br/>position: absolute; + <br/>z-index: 2; + </div> +</div> ++ +
{{EmbedLiveSample('Exemple')}}
+ +Ce deuxième exemple est très simple, mais il est essentiel à la compréhension du concept de contexte d'empilement. Nous avons les 4 mêmes blocs que l'exemple précédent, mais maintenant, nous appliquons des propriétés {{cssxref("z-index")}} aux deux niveaux de la hiérarchie.
- -{{ EmbedLiveSample('Exemple', '352', '270') }}
- -Vous pouvez voir que le bloc DIV #2 (z-index : 2) est au dessus du bloc DIV #3 (z-index : 1), parce qu'ils appartiennent tout les deux au même contexte d'empilement (celui de la racine), donc les valeurs de z-index régissent l'empilement des éléments.
Ce qui peut apparaitre comme étrange, c'est que le bloc DIV #2 (z-index : 2) est au dessus du bloc DIV #4 (z-index : 10), malgré leurs valeurs de z-index. La raison est qu'ils n'appartiennent pas au même contexte d'empilement. Le bloc DIV #4 appartient au contexte d'empilement créé par le bloc DIV #3, et, comme expliqué précédemment, le bloc DIV #3 (et tout son contenu) est au dessous du bloc DIV #2.
Pour mieux comprendre la situation, voici la hiérarchie du contexte d'empilement :
- -Note : Il est important de se souvenir qu'en général, la hiérarchie HTML est différente de la hiérarchie du contexte d'empilement. Dans la hiérarchie du contexte d'empilement, les éléments qui ne créent pas un contexte d'empilement sont regroupés avec leur parents.
-div {
- font: 12px Arial;
-}
-
-span.bold {
- font-weight: bold;
-}
-
-#div2 {
- z-index: 2;
-}
-
-#div3 {
- z-index: 1;
-}
-
-#div4 {
- z-index: 10;
-}
-
-#div1,#div3 {
- height: 80px;
- position: relative;
- border: 1px dashed #669966;
- background-color: #ccffcc;
- padding-left: 5px;
-}
-
-#div2 {
- opacity: 0.8;
- position: absolute;
- width: 150px;
- height: 200px;
- top: 20px;
- left: 170px;
- border: 1px dashed #990000;
- background-color: #ffdddd;
- text-align: center;
-}
-
-#div4 {
- opacity: 0.8;
- position: absolute;
- width: 200px;
- height: 70px;
- top: 65px;
- left: 50px;
- border: 1px dashed #000099;
- background-color: #ddddff;
- text-align: left;
- padding-left: 10px;
-}
-
-<br/> - -<div id="div1"> - <br/><span class="bold">DIV #1</span> - <br/>position: relative; - <div id="div2"> - <br/><span class="bold">DIV #2</span> - <br/>position: absolute; - <br/>z-index: 2; - </div> -</div> - -<br/> - -<div id="div3"> - <br/><span class="bold">DIV #3</span> - <br/>position: relative; - <br/>z-index: 1; - <div id="div4"> - <br/><span class="bold">DIV #4</span> - <br/>position: absolute; - <br/>z-index: 10; - </div> -</div> -- - -
Ce deuxième exemple est très simple, mais il est essentiel à la compréhension du concept de contexte d'empilement. Nous avons les 4 mêmes blocs que l'exemple précédent, mais maintenant, nous appliquons des propriétés {{cssxref("z-index")}} aux deux niveaux de la hiérarchie.
+ +{{ EmbedLiveSample('Exemple', '352', '270') }}
+ +Vous pouvez voir que le bloc DIV #2 (z-index : 2) est au dessus du bloc DIV #3 (z-index : 1), parce qu'ils appartiennent tout les deux au même contexte d'empilement (celui de la racine), donc les valeurs de z-index régissent l'empilement des éléments.
Ce qui peut apparaitre comme étrange, c'est que le bloc DIV #2 (z-index : 2) est au dessus du bloc DIV #4 (z-index : 10), malgré leurs valeurs de z-index. La raison est qu'ils n'appartiennent pas au même contexte d'empilement. Le bloc DIV #4 appartient au contexte d'empilement créé par le bloc DIV #3, et, comme expliqué précédemment, le bloc DIV #3 (et tout son contenu) est au dessous du bloc DIV #2.
Pour mieux comprendre la situation, voici la hiérarchie du contexte d'empilement :
+ +Note : Il est important de se souvenir qu'en général, la hiérarchie HTML est différente de la hiérarchie du contexte d'empilement. Dans la hiérarchie du contexte d'empilement, les éléments qui ne créent pas un contexte d'empilement sont regroupés avec leur parents.
+div {
+ font: 12px Arial;
+}
+
+span.bold {
+ font-weight: bold;
+}
+
+#div2 {
+ z-index: 2;
+}
+
+#div3 {
+ z-index: 1;
+}
+
+#div4 {
+ z-index: 10;
+}
+
+#div1,#div3 {
+ height: 80px;
+ position: relative;
+ border: 1px dashed #669966;
+ background-color: #ccffcc;
+ padding-left: 5px;
+}
+
+#div2 {
+ opacity: 0.8;
+ position: absolute;
+ width: 150px;
+ height: 200px;
+ top: 20px;
+ left: 170px;
+ border: 1px dashed #990000;
+ background-color: #ffdddd;
+ text-align: center;
+}
+
+#div4 {
+ opacity: 0.8;
+ position: absolute;
+ width: 200px;
+ height: 70px;
+ top: 65px;
+ left: 50px;
+ border: 1px dashed #000099;
+ background-color: #ddddff;
+ text-align: left;
+ padding-left: 10px;
+}
+
+<br/> + +<div id="div1"> + <br/><span class="bold">DIV #1</span> + <br/>position: relative; + <div id="div2"> + <br/><span class="bold">DIV #2</span> + <br/>position: absolute; + <br/>z-index: 2; + </div> +</div> + +<br/> + +<div id="div3"> + <br/><span class="bold">DIV #3</span> + <br/>position: relative; + <br/>z-index: 1; + <div id="div4"> + <br/><span class="bold">DIV #4</span> + <br/>position: absolute; + <br/>z-index: 10; + </div> +</div> ++ + +
Ce dernier exemple illustre les problèmes qui peuvent survenir lorsqu'on utilise des éléments positionnés dans une hiérarchie HTML à plusieurs niveaux et lorsque des {{cssxref("z-index")}} sont assignés à l'aide de sélecteurs de classe.
- -Prenons un exemple de menu hiérarchique à 3 niveaux, fait de plusieurs DIV positionnés. Les deuxième et troisième niveaux apparaissent lors du survol ou d'un clic sur leur parent. D'ordinaire, ce type de menu est généré par un script, côté client ou côté serveur, de façon à ce que les règles de styles soient assignées à l'aide de sélecteurs de classe plutôt qu'avec des sélecteurs d'id.
- -Si les trois niveaux du menu se chevauchent partiellement, alors la gestion de l'empilement peut devenir problématique.
- -{{ EmbedLiveSample('Exemple', '320', '330') }}
- -Le menu de premier niveau est positionné relativement, ainsi aucun contexte d'empilement n'est créé.
- -Le menu de deuxième niveau est positionné en absolu à l'intérieur de son élément parent. Afin de le faire apparaître au dessus de tous les menus de premier niveau, on utilise un z-index. Le problème est que pour chaque menu de deuxième niveau, un contexte d'empilement se crée et chaque menu de troisième niveau appartient au contexte d'empilement de son parent.
Ainsi donc, un menu de troisième niveau s'empilera sous les menus de deuxième niveau suivants, car tous les menus de deuxième niveau partagent la même valeur de z-index et que les règles d'empilement par défaut s'appliquent.
Pour mieux comprendre la situation, voici la hiérarchie du contexte d'empilement :
- -On peut contourner ce problème en supprimant le chevauchement entre les différents niveaux du menu, ou en utilisant des valeurs de z-index individuelles (et différentes) assignées à l'aide de sélecteurs d'id plutôt que des sélecteurs de classe ou encore en aplatissant la hiérarchie HTML.
Note : Dans le code source, vous remarquerez que les menus de deuxième et troisième niveaux sont construits à l'aide de plusieurs boîtes DIV contenues dans un élément positionné en absolu. Ceci sert à les grouper et à les positionner en une seule fois. -
-div {
- font: 12px Arial;
-}
-
-span.bold {
- font-weight: bold;
-}
-
-div.lev1 {
- width: 250px;
- height: 70px;
- position: relative;
- border: 2px outset #669966;
- background-color: #ccffcc;
- padding-left: 5px;
-}
-
-#container1 {
- z-index: 1;
- position: absolute;
- top: 30px;
- left: 75px;
-}
-
-div.lev2 {
- opacity: 0.9;
- width: 200px;
- height: 60px;
- position: relative;
- border: 2px outset #990000;
- background-color: #ffdddd;
- padding-left: 5px;
-}
-
-#container2 {
- z-index: 1;
- position: absolute;
- top: 20px;
- left: 110px;
-}
-
-div.lev3 {
- z-index: 10;
- width: 100px;
- position: relative;
- border: 2px outset #000099;
- background-color: #ddddff;
- padding-left: 5px;
-}
-
-<br/> - -<div class="lev1"> -<span class="bold">LEVEL #1</span> - <div id="container1"> - <div class="lev2"> - <br/><span class="bold">LEVEL #2</span> - <br/>z-index: 1; - <div id="container2"> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - <div class="lev3"><span class="bold">LEVEL #3</span></div> - </div> - </div> - <div class="lev2"> - <br/><span class="bold">LEVEL #2</span> - <br/>z-index: 1; - </div> - </div> -</div> - -<div class="lev1"> - <span class="bold">LEVEL #1</span> -</div> - -<div class="lev1"> - <span class="bold">LEVEL #1</span> -</div> - -<div class="lev1"> - <span class="bold">LEVEL #1</span> -</div> -- - -
Ce dernier exemple illustre les problèmes qui peuvent survenir lorsqu'on utilise des éléments positionnés dans une hiérarchie HTML à plusieurs niveaux et lorsque des {{cssxref("z-index")}} sont assignés à l'aide de sélecteurs de classe.
+ +Prenons un exemple de menu hiérarchique à 3 niveaux, fait de plusieurs DIV positionnés. Les deuxième et troisième niveaux apparaissent lors du survol ou d'un clic sur leur parent. D'ordinaire, ce type de menu est généré par un script, côté client ou côté serveur, de façon à ce que les règles de styles soient assignées à l'aide de sélecteurs de classe plutôt qu'avec des sélecteurs d'id.
+ +Si les trois niveaux du menu se chevauchent partiellement, alors la gestion de l'empilement peut devenir problématique.
+ +{{ EmbedLiveSample('Exemple', '320', '330') }}
+ +Le menu de premier niveau est positionné relativement, ainsi aucun contexte d'empilement n'est créé.
+ +Le menu de deuxième niveau est positionné en absolu à l'intérieur de son élément parent. Afin de le faire apparaître au dessus de tous les menus de premier niveau, on utilise un z-index. Le problème est que pour chaque menu de deuxième niveau, un contexte d'empilement se crée et chaque menu de troisième niveau appartient au contexte d'empilement de son parent.
Ainsi donc, un menu de troisième niveau s'empilera sous les menus de deuxième niveau suivants, car tous les menus de deuxième niveau partagent la même valeur de z-index et que les règles d'empilement par défaut s'appliquent.
Pour mieux comprendre la situation, voici la hiérarchie du contexte d'empilement :
+ +On peut contourner ce problème en supprimant le chevauchement entre les différents niveaux du menu, ou en utilisant des valeurs de z-index individuelles (et différentes) assignées à l'aide de sélecteurs d'id plutôt que des sélecteurs de classe ou encore en aplatissant la hiérarchie HTML.
Note : Dans le code source, vous remarquerez que les menus de deuxième et troisième niveaux sont construits à l'aide de plusieurs boîtes DIV contenues dans un élément positionné en absolu. Ceci sert à les grouper et à les positionner en une seule fois. +
+div {
+ font: 12px Arial;
+}
+
+span.bold {
+ font-weight: bold;
+}
+
+div.lev1 {
+ width: 250px;
+ height: 70px;
+ position: relative;
+ border: 2px outset #669966;
+ background-color: #ccffcc;
+ padding-left: 5px;
+}
+
+#container1 {
+ z-index: 1;
+ position: absolute;
+ top: 30px;
+ left: 75px;
+}
+
+div.lev2 {
+ opacity: 0.9;
+ width: 200px;
+ height: 60px;
+ position: relative;
+ border: 2px outset #990000;
+ background-color: #ffdddd;
+ padding-left: 5px;
+}
+
+#container2 {
+ z-index: 1;
+ position: absolute;
+ top: 20px;
+ left: 110px;
+}
+
+div.lev3 {
+ z-index: 10;
+ width: 100px;
+ position: relative;
+ border: 2px outset #000099;
+ background-color: #ddddff;
+ padding-left: 5px;
+}
+
+<br/> + +<div class="lev1"> +<span class="bold">LEVEL #1</span> + <div id="container1"> + <div class="lev2"> + <br/><span class="bold">LEVEL #2</span> + <br/>z-index: 1; + <div id="container2"> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + <div class="lev3"><span class="bold">LEVEL #3</span></div> + </div> + </div> + <div class="lev2"> + <br/><span class="bold">LEVEL #2</span> + <br/>z-index: 1; + </div> + </div> +</div> + +<div class="lev1"> + <span class="bold">LEVEL #1</span> +</div> + +<div class="lev1"> + <span class="bold">LEVEL #1</span> +</div> + +<div class="lev1"> + <span class="bold">LEVEL #1</span> +</div> ++ + +
z-indexLorsqu’aucun élément n'a de {{cssxref("z-index")}} définis, tous les éléments sont empilés dans cet ordre (de bas en haut) :
- -On gardera à l'esprit que, lorsque la propriété {{cssxref("order")}} modifie l'ordre visuel des conteneurs flexibles ({{cssxref("flex")}}), cela modifie également l'ordre du contexte d'empilement.
- -Dans l'exemple suivant, les blocs en position absolue et relative sont correctement positionnés et dimensionnés pour illustrer les règles d'empilement. L'opacité a été réduite pour rendre les éléments transparents et faciliter ainsi la visualisation des superpositions.
- -Note : -
z-index, tel que les blocs positionnés (DIV #1 à #4) dans l'exemple, l'ordre d'empilement des éléments est celui de leur ordre dans la hiérarchie HTML, quelle que soit leur position.{{EmbedLiveSample("Exemple", 600, 400)}}
- -<div id="abs1" class="absolute"> - <b>DIV #1</b><br />position: absolute;</div> -<div id="rel1" class="relative"> - <b>DIV #2</b><br />position: relative;</div> -<div id="rel2" class="relative"> - <b>DIV #3</b><br />position: relative;</div> -<div id="abs2" class="absolute"> - <b>DIV #4</b><br />position: absolute;</div> -<div id="sta1" class="static"> - <b>DIV #5</b><br />position: static;</div> -- -
b {
- font-family: sans-serif;
-}
-
-div {
- padding: 10px;
- border: 1px dashed;
- text-align: center;
-}
-
-.static {
- position: static;
- height: 80px;
- background-color: #ffc;
- border-color: #996;
-}
-
-.absolute {
- position: absolute;
- width: 150px;
- height: 350px;
- background-color: #fdd;
- border-color: #900;
- opacity: 0.7;
-}
-
-.relative {
- position: relative;
- height: 80px;
- background-color: #cfc;
- border-color: #696;
- opacity: 0.7;
-}
-
-#abs1 {
- top: 10px;
- left: 10px;
-}
-
-#rel1 {
- top: 30px;
- margin: 0px 50px 0px 50px;
-}
-
-#rel2 {
- top: 15px;
- left: 20px;
- margin: 0px 50px 0px 50px;
-}
-
-#abs2 {
- top: 10px;
- right: 10px;
-}
-
-#sta1 {
- background-color: #ffc;
- margin: 0px 50px 0px 50px;
-}
-
-
-z-indexLorsqu’aucun élément n'a de {{cssxref("z-index")}} définis, tous les éléments sont empilés dans cet ordre (de bas en haut) :
+ +On gardera à l'esprit que, lorsque la propriété {{cssxref("order")}} modifie l'ordre visuel des conteneurs flexibles ({{cssxref("flex")}}), cela modifie également l'ordre du contexte d'empilement.
+ +Dans l'exemple suivant, les blocs en position absolue et relative sont correctement positionnés et dimensionnés pour illustrer les règles d'empilement. L'opacité a été réduite pour rendre les éléments transparents et faciliter ainsi la visualisation des superpositions.
+ +Note : +
z-index, tel que les blocs positionnés (DIV #1 à #4) dans l'exemple, l'ordre d'empilement des éléments est celui de leur ordre dans la hiérarchie HTML, quelle que soit leur position.{{EmbedLiveSample("Exemple", 600, 400)}}
+ +<div id="abs1" class="absolute"> + <b>DIV #1</b><br />position: absolute;</div> +<div id="rel1" class="relative"> + <b>DIV #2</b><br />position: relative;</div> +<div id="rel2" class="relative"> + <b>DIV #3</b><br />position: relative;</div> +<div id="abs2" class="absolute"> + <b>DIV #4</b><br />position: absolute;</div> +<div id="sta1" class="static"> + <b>DIV #5</b><br />position: static;</div> ++ +
b {
+ font-family: sans-serif;
+}
+
+div {
+ padding: 10px;
+ border: 1px dashed;
+ text-align: center;
+}
+
+.static {
+ position: static;
+ height: 80px;
+ background-color: #ffc;
+ border-color: #996;
+}
+
+.absolute {
+ position: absolute;
+ width: 150px;
+ height: 350px;
+ background-color: #fdd;
+ border-color: #900;
+ opacity: 0.7;
+}
+
+.relative {
+ position: relative;
+ height: 80px;
+ background-color: #cfc;
+ border-color: #696;
+ opacity: 0.7;
+}
+
+#abs1 {
+ top: 10px;
+ left: 10px;
+}
+
+#rel1 {
+ top: 30px;
+ margin: 0px 50px 0px 50px;
+}
+
+#rel2 {
+ top: 15px;
+ left: 20px;
+ margin: 0px 50px 0px 50px;
+}
+
+#abs2 {
+ top: 10px;
+ right: 10px;
+}
+
+#sta1 {
+ background-color: #ffc;
+ margin: 0px 50px 0px 50px;
+}
+
+
+Dans l'exemple précédent, Ajout de z-index, les blocs DIV sont rendus les uns au dessus des autres (de l'arrière vers l'avant), en commençant par celui dont la valeur de {{cssxref("z-index")}} est la plus faible et en finissant par celui dont la valeur de z-index est la plus forte. Dans cet exemple, il n'y a qu'un seul contexte d'empilement, qui est l'élément HTML racine de la page.
Dans certaines conditions, un contexte d'empilement enfant peut être créé à l'intérieur d'un bloc DIV (ou un autre élément) n'importe où dans le document. En particulier, un élément positionné (en absolu ou en relatif) possédant une valeur de z-index différente de auto crée son propre contexte d'empilement : tous ses éléments enfants sont entièrement empilés dans ce contexte, suivant les mêmes règles que celles expliquées précédemment. Les valeurs de z-index de ses enfants n'ont de signification que dans ce contexte. Le bloc DIV entier et son contenu sont empilés comme un seul élément dans le contexte d'empilement de leur parent.
Un contexte d'empilement est formé dans le document par n'importe quel élément qui répond à l'un de ces critères :
- -absolute ou relative et pour lequel {{cssxref("z-index")}} est différente de autofixed ou stickyautoautonormalnone :
- isolatetouch.layout, paint ou une valeur composite contenant un de ces mots-clés (par exemple contain: strict ou contain: content).Sans contexte d'empilement, les éléments fils sont empilés selon les règles vues avant. Les valeurs des z-index pour les contextes d'empilement des éléments fils ont uniquement un sens pour l'élément parent. Les contextes d'empilement sont traités de façon atomique, comme une seule unité, dans le contexte de l'élément parent.
En bref :
- -Note : La hiérarchie des contextes d'empilement est un sous-ensemble de la hiérarchie des éléments HTML, car seuls les éléments positionnés dans l'espace (avec la propriété z-index créent des contextes d'empilement. On peut dire que les éléments qui ne créent pas leur propre contexte d'empilement sont assimilés par le contexte d'empilement parent.

Dans cet exemple, tous les éléments positionnés créent leur propre contexte d'empilement, du fait de leur positionnement et de leur valeur z-index. La hiérarchie des contextes d'empilement est organisée comme suit :
Il est important de noter que les blocs DIV #4, DIV #5 et DIV #6 sont les enfants du bloc DIV #3, donc leur empilement est complètement résolu à l'intérieur de ce dernier. Une fois que l'empilement et le rendu à l'intérieur du bloc 3 sont définis, la totalité de l'élément DIV #3 est prise en compte pour l'empilement dans l'élément racine par rapport à ses DIV voisins.
- -Note : - -
z-index (5) de celui-ci est valide à l'intérieur du contexte d'empilement de l'élément racine, alors que le z-index (6) du bloc DIV #4 est valide à l'intérieur du contexte d'empilement du bloc DIV #3. Ainsi, DIV #4 se trouve sous DIV #1, parce que DIV #4 appartient à DIV #3, qui possède une valeur de z-index plus petite.z-index est 2) est rendu sous DIV#5 (de z-index égal à 1) parce que DIV #5 appartient à DIV #3, qui possède une valeur de z-index plus grande.z-index du bloc DIV #3 est 4, mais cette valeur est indépendante du z-index du bloc DIV #4, DIV #5 et DIV #6, parce qu'il appartient à un contexte d'empilement différent.* {
- margin: 0;
-}
-
-html {
- padding: 20px;
- font: 12px/20px Arial, sans-serif;
-}
-
-div {
- opacity: 0.7;
- position: relative;
-}
-
-h1 {
- font: inherit;
- font-weight: bold;
-}
-
-#div1, #div2 {
- border: 1px dashed #696;
- padding: 10px;
- background-color: #cfc;
-}
-
-#div1 {
- z-index: 5;
- margin-bottom: 190px;
-}
-
-#div2 {
- z-index: 2;
-}
-
-#div3 {
- z-index: 4;
- opacity: 1;
- position: absolute;
- top: 40px;
- left: 180px;
- width: 330px;
- border: 1px dashed #900;
- background-color: #fdd;
- padding: 40px 20px 20px;
-}
-
-#div4, #div5 {
- border: 1px dashed #996;
- background-color: #ffc;
-}
-
-#div4 {
- z-index: 6;
- margin-bottom: 15px;
- padding: 25px 10px 5px;
-}
-
-#div5 {
- z-index: 1;
- margin-top: 15px;
- padding: 5px 10px;
-}
-
-#div6 {
- z-index: 3;
- position: absolute;
- top: 20px;
- left: 180px;
- width: 150px;
- height: 125px;
- border: 1px dashed #009;
- padding-top: 125px;
- background-color: #ddf;
- text-align: ce }
-
-
-<div id="div1"> - <h1>Division Element #1</h1> - <code>position: relative;<br/> - z-index: 5;</code> -</div> - -<div id="div2"> - <h1>Division Element #2</h1> - <code>position: relative;<br/> - z-index: 2;</code> -</div> - -<div id="div3"> - - <div id="div4"> - <h1>Division Element #4</h1> - <code>position: relative;<br/> - z-index: 6;</code> - </div> - - <h1>Division Element #3</h1> - <code>position: absolute;<br/> - z-index: 4;</code> - - <div id="div5"> - <h1>Division Element #5</h1> - <code>position: relative;<br/> - z-index: 1;</code> - </div> - - <div id="div6"> - <h1>Division Element #6</h1> - <code>position: absolute;<br/> - z-index: 3;</code> - </div> -- -
{{EmbedLiveSample("Exemple","556","396")}}
- -Dans l'exemple précédent, Ajout de z-index, les blocs DIV sont rendus les uns au dessus des autres (de l'arrière vers l'avant), en commençant par celui dont la valeur de {{cssxref("z-index")}} est la plus faible et en finissant par celui dont la valeur de z-index est la plus forte. Dans cet exemple, il n'y a qu'un seul contexte d'empilement, qui est l'élément HTML racine de la page.
Dans certaines conditions, un contexte d'empilement enfant peut être créé à l'intérieur d'un bloc DIV (ou un autre élément) n'importe où dans le document. En particulier, un élément positionné (en absolu ou en relatif) possédant une valeur de z-index différente de auto crée son propre contexte d'empilement : tous ses éléments enfants sont entièrement empilés dans ce contexte, suivant les mêmes règles que celles expliquées précédemment. Les valeurs de z-index de ses enfants n'ont de signification que dans ce contexte. Le bloc DIV entier et son contenu sont empilés comme un seul élément dans le contexte d'empilement de leur parent.
Un contexte d'empilement est formé dans le document par n'importe quel élément qui répond à l'un de ces critères :
+ +absolute ou relative et pour lequel {{cssxref("z-index")}} est différente de autofixed ou stickyautoautonormalnone :
+ isolatetouch.layout, paint ou une valeur composite contenant un de ces mots-clés (par exemple contain: strict ou contain: content).Sans contexte d'empilement, les éléments fils sont empilés selon les règles vues avant. Les valeurs des z-index pour les contextes d'empilement des éléments fils ont uniquement un sens pour l'élément parent. Les contextes d'empilement sont traités de façon atomique, comme une seule unité, dans le contexte de l'élément parent.
En bref :
+ +Note : La hiérarchie des contextes d'empilement est un sous-ensemble de la hiérarchie des éléments HTML, car seuls les éléments positionnés dans l'espace (avec la propriété z-index créent des contextes d'empilement. On peut dire que les éléments qui ne créent pas leur propre contexte d'empilement sont assimilés par le contexte d'empilement parent.

Dans cet exemple, tous les éléments positionnés créent leur propre contexte d'empilement, du fait de leur positionnement et de leur valeur z-index. La hiérarchie des contextes d'empilement est organisée comme suit :
Il est important de noter que les blocs DIV #4, DIV #5 et DIV #6 sont les enfants du bloc DIV #3, donc leur empilement est complètement résolu à l'intérieur de ce dernier. Une fois que l'empilement et le rendu à l'intérieur du bloc 3 sont définis, la totalité de l'élément DIV #3 est prise en compte pour l'empilement dans l'élément racine par rapport à ses DIV voisins.
+ +Note : + +
z-index (5) de celui-ci est valide à l'intérieur du contexte d'empilement de l'élément racine, alors que le z-index (6) du bloc DIV #4 est valide à l'intérieur du contexte d'empilement du bloc DIV #3. Ainsi, DIV #4 se trouve sous DIV #1, parce que DIV #4 appartient à DIV #3, qui possède une valeur de z-index plus petite.z-index est 2) est rendu sous DIV#5 (de z-index égal à 1) parce que DIV #5 appartient à DIV #3, qui possède une valeur de z-index plus grande.z-index du bloc DIV #3 est 4, mais cette valeur est indépendante du z-index du bloc DIV #4, DIV #5 et DIV #6, parce qu'il appartient à un contexte d'empilement différent.* {
+ margin: 0;
+}
+
+html {
+ padding: 20px;
+ font: 12px/20px Arial, sans-serif;
+}
+
+div {
+ opacity: 0.7;
+ position: relative;
+}
+
+h1 {
+ font: inherit;
+ font-weight: bold;
+}
+
+#div1, #div2 {
+ border: 1px dashed #696;
+ padding: 10px;
+ background-color: #cfc;
+}
+
+#div1 {
+ z-index: 5;
+ margin-bottom: 190px;
+}
+
+#div2 {
+ z-index: 2;
+}
+
+#div3 {
+ z-index: 4;
+ opacity: 1;
+ position: absolute;
+ top: 40px;
+ left: 180px;
+ width: 330px;
+ border: 1px dashed #900;
+ background-color: #fdd;
+ padding: 40px 20px 20px;
+}
+
+#div4, #div5 {
+ border: 1px dashed #996;
+ background-color: #ffc;
+}
+
+#div4 {
+ z-index: 6;
+ margin-bottom: 15px;
+ padding: 25px 10px 5px;
+}
+
+#div5 {
+ z-index: 1;
+ margin-top: 15px;
+ padding: 5px 10px;
+}
+
+#div6 {
+ z-index: 3;
+ position: absolute;
+ top: 20px;
+ left: 180px;
+ width: 150px;
+ height: 125px;
+ border: 1px dashed #009;
+ padding-top: 125px;
+ background-color: #ddf;
+ text-align: ce }
+
+
+<div id="div1"> + <h1>Division Element #1</h1> + <code>position: relative;<br/> + z-index: 5;</code> +</div> + +<div id="div2"> + <h1>Division Element #2</h1> + <code>position: relative;<br/> + z-index: 2;</code> +</div> + +<div id="div3"> + + <div id="div4"> + <h1>Division Element #4</h1> + <code>position: relative;<br/> + z-index: 6;</code> + </div> + + <h1>Division Element #3</h1> + <code>position: absolute;<br/> + z-index: 4;</code> + + <div id="div5"> + <h1>Division Element #5</h1> + <code>position: relative;<br/> + z-index: 1;</code> + </div> + + <div id="div6"> + <h1>Division Element #6</h1> + <code>position: absolute;<br/> + z-index: 3;</code> + </div> ++ +
{{EmbedLiveSample("Exemple","556","396")}}
+ +Voici ci-dessous une liste simple des propriétés CSS les plus fréquemment utilisées avec leur équivalent en notation DOM, habituellement utilisée avec JavaScript :
- -Note : Cette liste n'est pas exhaustive. Pour davantage de propriétés CSS, voir la référence CSS et les extensions CSS spécifiques à Mozilla.
-| CSS | -JavaScript | -
|---|---|
background |
- background |
-
background-attachment |
- backgroundAttachment |
-
background-color |
- backgroundColor |
-
background-image |
- backgroundImage |
-
background-position |
- backgroundPosition |
-
background-repeat |
- backgroundRepeat |
-
border |
- border |
-
border-bottom |
- borderBottom |
-
border-bottom-color |
- borderBottomColor |
-
border-bottom-style |
- borderBottomStyle |
-
border-bottom-width |
- borderBottomWidth |
-
border-color |
- borderColor |
-
border-left |
- borderLeft |
-
border-left-color |
- borderLeftColor |
-
border-left-style |
- borderLeftStyle |
-
border-left-width |
- borderLeftWidth |
-
border-right |
- borderRight |
-
border-right-color |
- borderRightColor |
-
border-right-style |
- borderRightStyle |
-
border-right-width |
- borderRightWidth |
-
border-style |
- borderStyle |
-
border-top |
- borderTop |
-
border-top-color |
- borderTopColor |
-
border-top-style |
- borderTopStyle |
-
border-top-width |
- borderTopWidth |
-
border-width |
- borderWidth |
-
clear |
- clear |
-
clip |
- clip |
-
color |
- color |
-
cursor |
- cursor |
-
display |
- display |
-
filter |
- filter |
-
float |
- cssFloat |
-
font |
- font |
-
font-family |
- fontFamily |
-
font-size |
- fontSize |
-
font-variant |
- fontVariant |
-
font-weight |
- fontWeight |
-
height |
- height |
-
left |
- left |
-
letter-spacing |
- letterSpacing |
-
line-height |
- lineHeight |
-
list-style |
- listStyle |
-
list-style-image |
- listStyleImage |
-
list-style-position |
- listStylePosition |
-
list-style-type |
- listStyleType |
-
margin |
- margin |
-
margin-bottom |
- marginBottom |
-
margin-left |
- marginLeft |
-
margin-right |
- marginRight |
-
margin-top |
- marginTop |
-
overflow |
- overflow |
-
padding |
- padding |
-
padding-bottom |
- paddingBottom |
-
padding-left |
- paddingLeft |
-
padding-right |
- paddingRight |
-
padding-top |
- paddingTop |
-
page-break-after |
- pageBreakAfter |
-
page-break-before |
- pageBreakBefore |
-
position |
- position |
-
stroke-dasharray |
- strokeDasharray |
-
stroke-dashoffset |
- strokeDashoffset |
-
stroke-width |
- strokeWidth |
-
text-align |
- textAlign |
-
text-decoration |
- textDecoration |
-
text-indent |
- textIndent |
-
text-transform |
- textTransform |
-
top |
- top |
-
vertical-align |
- verticalAlign |
-
visibility |
- visibility |
-
width |
- width |
-
z-index |
- zIndex |
-
diff --git a/files/fr/web/css/css_properties_reference/index.md b/files/fr/web/css/css_properties_reference/index.md new file mode 100644 index 0000000000..a6c6fcca3a --- /dev/null +++ b/files/fr/web/css/css_properties_reference/index.md @@ -0,0 +1,317 @@ +--- +title: Référence des propriétés CSS +slug: Web/CSS/CSS_Properties_Reference +tags: + - CSS +translation_of: Web/CSS/CSS_Properties_Reference +--- +
Voici ci-dessous une liste simple des propriétés CSS les plus fréquemment utilisées avec leur équivalent en notation DOM, habituellement utilisée avec JavaScript :
+ +Note : Cette liste n'est pas exhaustive. Pour davantage de propriétés CSS, voir la référence CSS et les extensions CSS spécifiques à Mozilla.
+| CSS | +JavaScript | +
|---|---|
background |
+ background |
+
background-attachment |
+ backgroundAttachment |
+
background-color |
+ backgroundColor |
+
background-image |
+ backgroundImage |
+
background-position |
+ backgroundPosition |
+
background-repeat |
+ backgroundRepeat |
+
border |
+ border |
+
border-bottom |
+ borderBottom |
+
border-bottom-color |
+ borderBottomColor |
+
border-bottom-style |
+ borderBottomStyle |
+
border-bottom-width |
+ borderBottomWidth |
+
border-color |
+ borderColor |
+
border-left |
+ borderLeft |
+
border-left-color |
+ borderLeftColor |
+
border-left-style |
+ borderLeftStyle |
+
border-left-width |
+ borderLeftWidth |
+
border-right |
+ borderRight |
+
border-right-color |
+ borderRightColor |
+
border-right-style |
+ borderRightStyle |
+
border-right-width |
+ borderRightWidth |
+
border-style |
+ borderStyle |
+
border-top |
+ borderTop |
+
border-top-color |
+ borderTopColor |
+
border-top-style |
+ borderTopStyle |
+
border-top-width |
+ borderTopWidth |
+
border-width |
+ borderWidth |
+
clear |
+ clear |
+
clip |
+ clip |
+
color |
+ color |
+
cursor |
+ cursor |
+
display |
+ display |
+
filter |
+ filter |
+
float |
+ cssFloat |
+
font |
+ font |
+
font-family |
+ fontFamily |
+
font-size |
+ fontSize |
+
font-variant |
+ fontVariant |
+
font-weight |
+ fontWeight |
+
height |
+ height |
+
left |
+ left |
+
letter-spacing |
+ letterSpacing |
+
line-height |
+ lineHeight |
+
list-style |
+ listStyle |
+
list-style-image |
+ listStyleImage |
+
list-style-position |
+ listStylePosition |
+
list-style-type |
+ listStyleType |
+
margin |
+ margin |
+
margin-bottom |
+ marginBottom |
+
margin-left |
+ marginLeft |
+
margin-right |
+ marginRight |
+
margin-top |
+ marginTop |
+
overflow |
+ overflow |
+
padding |
+ padding |
+
padding-bottom |
+ paddingBottom |
+
padding-left |
+ paddingLeft |
+
padding-right |
+ paddingRight |
+
padding-top |
+ paddingTop |
+
page-break-after |
+ pageBreakAfter |
+
page-break-before |
+ pageBreakBefore |
+
position |
+ position |
+
stroke-dasharray |
+ strokeDasharray |
+
stroke-dashoffset |
+ strokeDashoffset |
+
stroke-width |
+ strokeWidth |
+
text-align |
+ textAlign |
+
text-decoration |
+ textDecoration |
+
text-indent |
+ textIndent |
+
text-transform |
+ textTransform |
+
top |
+ top |
+
vertical-align |
+ verticalAlign |
+
visibility |
+ visibility |
+
width |
+ width |
+
z-index |
+ zIndex |
+
diff --git a/files/fr/web/css/css_ruby/index.html b/files/fr/web/css/css_ruby/index.html deleted file mode 100644 index 1f9fade2e6..0000000000 --- a/files/fr/web/css/css_ruby/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: CSS Ruby -slug: Web/CSS/CSS_Ruby -tags: - - Aperçu - - CSS - - CSS Ruby - - Reference - - Ruby -translation_of: Web/CSS/CSS_Ruby ---- -
CSS Ruby Layout est un module CSS qui fournit des propriétés de contrôle pour le rendu et la mise en forme des annotations Ruby utilisées dans les documents d'Asie orientale afin d'indiquer la prononciation ou d'annoter le texte de base.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Ruby')}} | -{{Spec2('CSS3 Ruby')}} | -Définition initiale. | -
CSS Ruby Layout est un module CSS qui fournit des propriétés de contrôle pour le rendu et la mise en forme des annotations Ruby utilisées dans les documents d'Asie orientale afin d'indiquer la prononciation ou d'annoter le texte de base.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Ruby')}} | +{{Spec2('CSS3 Ruby')}} | +Définition initiale. | +
Le module de spécification CSS Scroll Snap fournit des outils pour « accrocher » sur certains points lors du défilement dans un document. Un tel comportement peut s'avérer utile pour obtenir un résultat analogue à certaines applications (qu'elles soient mobiles ou non).
- -Les propriétés principales définies par la spécification Scroll Snap sont {{CSSxRef("scroll-snap-type")}} et {{CSSxRef("scroll-snap-align")}}. La propriété scroll-snap-type s'utilise sur le conteneur de défilement (scroll container) et établit le type et la direction du défilement.
La propriété scroll-snap-align doit être utilisée sur les éléments fils afin de définir la position de défilement sur laquelle ils s'accrocheront. L'exemple qui suit illustre des positions d'accroche sur l'axe vertical et scroll-snap-align est utilisée sur l'élément {{HTMLElement("section")}} afin de définir le point où devrait s'arrêter le défilement.
{{EmbedGHLiveSample("css-examples/scroll-snap/mandatory-y.html", '100%', 700)}}
- -scroll-snap-typeLa propriété {{CSSxRef("scroll-snap-type")}} doit connaître la direction selon laquelle s'effectue le défilement et l'accroche. Cette direction peut s'exprimer avec des valeurs physiques : x ou y ou avec des valeurs logiques : block ou inline. On peut également utiliser le mot-clé both afin d'avoir un défilement et des accroches selon les deux axes.
Cette propriété s'utilise également avec les mots-clés mandatory ou proximity. Le mot-clé mandatory indique au navigateur que le contenu doit s'accrocher à un point donné, quelle que soit la position du défilement. Le mot-clé proximity indique que le contenu peut s'accrocher sur un point mais que ce n'est pas obligatoire.
La valeur mandatory permettra d'obtenir une expérience cohérente au sens où l'utilisateur saura que le navigateur accrochera le contenu à chaque point. Cela signifie qu'on peut être certain que quelque chose sera en haut de l'écran à la fin du défilement. Toutefois, cela peut entraîner des problèmes lorsqu'un portion du contenu est trop grande et qu'on obtient un scénario où il est impossible de défiler afin de voir une portion donnée du contenu. Ainsi, on utilisera mandatory dans des situations maîtrisées où la taille du contenu sur un écran est connue.
La valeur proximity déclenchera une accroche lorsque la position du défilement est proche du point d'accroche. C'est le navigateur qui décidera de la distance seuil exacte pour laquelle déclencher l'accroche ou non. Dans l'exemple qui suit, vous pouvez passer de mandatory à proximity afin d'observer l'effet obtenu.
{{EmbedGHLiveSample("css-examples/scroll-snap/mandatory-proximity.html", '100%', 700)}}
- -scroll-snap-alignLa propriété {{CSSxRef("scroll-snap-align")}} peut être utilisée avec les valeurs start, end ou center. Ces valeurs indiquent l'emplacement où le contenu doit s'accrocher sur le conteneur de défilement. Vous pouvez modifier la valeur scroll-snap-align dans l'exemple interactif qui suit pour voir le résultat obtenu.
{{EmbedGHLiveSample("css-examples/scroll-snap/align.html", '100%', 700)}}
- -Si on ne souhaite pas que le contenu s'accroche exactement sur le bord du conteneur de défilement, on pourra utiliser la propriété {{CSSxRef("scroll-padding")}} (ou les propriétés détaillées équivalentes) afin de définir un remplissage (padding) pour décaler la position du contenu.
- -Dans l'exemple qui suit, on paramètre scroll-padding à 40 pixels. Lorsqu'on accroche au début de la deuxième et de la troisième section, le défilement s'arrête à 40 pixels du début de la section. Vous pouvez adapter la valeur de scroll-padding afin de voir l'impact sur le décalage obtenu.
{{EmbedGHLiveSample("css-examples/scroll-snap/scroll-padding.html", '100%', 700)}}
- -Cette propriété s'avère particulièrement utile lorsqu'on a un élément fixe (une barre de navigation par exemple) qui pourrait être chevauchée par du contenu qui défile. En utilisant scroll-padding, on peut réserver un espace pour cet élément fixe. Dans l'exemple suivant, on peut voir le titre <h1> qui reste à l'écran et le contenu qui défile en dessous de ce titre. Sans le remplissage, le titre aurait été chevauché par une partie du contenu lors de l'accroche.
{{EmbedGHLiveSample("css-examples/scroll-snap/scroll-padding-sticky.html", '100%', 700)}}
- -Une autre méthode permettant d'obtenir un espace entre le bord du conteneur et les éléments fils est d'utiliser la propriété {{CSSxRef("scroll-margin")}} sur l'élément fils. scroll-margin définit principalement le décalage par rapport à la boîte définie. Vous pouvez manipuler cette propriété dans l'exemple interactif suivant :
{{EmbedGHLiveSample("css-examples/scroll-snap/scroll-margin.html", '100%', 700)}}
- -scroll-snap-stopLa propriété {{CSSxRef("scroll-snap-stop")}} indique au navigateur qu'il devrait arrêter le défilement pour chaque point d'accroche. Pour nos exemples précédents, cela signifie qu'on s'arrêtera nécessairement au début de chaque section. Cette propriété dispose de moins d'implémentations dans les navigateurs.
- -Cela peut être utile pour s'assurer que les utilisateurs consultent chaque section sans louper du contenu par inadvertence. En revanche, cela peut rendre le défilement plus lent et ralentir considérablement un utilisateur qui chercherait une section donnée.
- -Note : La propriété scroll-snap-stop est actuellement mise en question dans la version Candidate Recommendation de la spécification et pourrait être retirée.
Les pages de chaque propriété détaillent la compatibilité des différents navigateurs. On notera qu'avant Firefox 68, une ancienne version de la spécification était implémentée. Vous pouvez poursuivre avec le guide suivant pour en savoir plus sur l'écriture de code compatible entre les différents navigateurs qui implémentent différentes versions de la spécification.
diff --git a/files/fr/web/css/css_scroll_snap/basic_concepts/index.md b/files/fr/web/css/css_scroll_snap/basic_concepts/index.md new file mode 100644 index 0000000000..2eebe3962b --- /dev/null +++ b/files/fr/web/css/css_scroll_snap/basic_concepts/index.md @@ -0,0 +1,71 @@ +--- +title: Concepts de bases pour CSS Scroll Snap +slug: Web/CSS/CSS_Scroll_Snap/Basic_concepts +tags: + - CSS + - CSS Scroll Snap + - Guide +translation_of: Web/CSS/CSS_Scroll_Snap/Basic_concepts +original_slug: Web/CSS/CSS_Scroll_Snap/Concepts_de_base +--- +Le module de spécification CSS Scroll Snap fournit des outils pour « accrocher » sur certains points lors du défilement dans un document. Un tel comportement peut s'avérer utile pour obtenir un résultat analogue à certaines applications (qu'elles soient mobiles ou non).
+ +Les propriétés principales définies par la spécification Scroll Snap sont {{CSSxRef("scroll-snap-type")}} et {{CSSxRef("scroll-snap-align")}}. La propriété scroll-snap-type s'utilise sur le conteneur de défilement (scroll container) et établit le type et la direction du défilement.
La propriété scroll-snap-align doit être utilisée sur les éléments fils afin de définir la position de défilement sur laquelle ils s'accrocheront. L'exemple qui suit illustre des positions d'accroche sur l'axe vertical et scroll-snap-align est utilisée sur l'élément {{HTMLElement("section")}} afin de définir le point où devrait s'arrêter le défilement.
{{EmbedGHLiveSample("css-examples/scroll-snap/mandatory-y.html", '100%', 700)}}
+ +scroll-snap-typeLa propriété {{CSSxRef("scroll-snap-type")}} doit connaître la direction selon laquelle s'effectue le défilement et l'accroche. Cette direction peut s'exprimer avec des valeurs physiques : x ou y ou avec des valeurs logiques : block ou inline. On peut également utiliser le mot-clé both afin d'avoir un défilement et des accroches selon les deux axes.
Cette propriété s'utilise également avec les mots-clés mandatory ou proximity. Le mot-clé mandatory indique au navigateur que le contenu doit s'accrocher à un point donné, quelle que soit la position du défilement. Le mot-clé proximity indique que le contenu peut s'accrocher sur un point mais que ce n'est pas obligatoire.
La valeur mandatory permettra d'obtenir une expérience cohérente au sens où l'utilisateur saura que le navigateur accrochera le contenu à chaque point. Cela signifie qu'on peut être certain que quelque chose sera en haut de l'écran à la fin du défilement. Toutefois, cela peut entraîner des problèmes lorsqu'un portion du contenu est trop grande et qu'on obtient un scénario où il est impossible de défiler afin de voir une portion donnée du contenu. Ainsi, on utilisera mandatory dans des situations maîtrisées où la taille du contenu sur un écran est connue.
La valeur proximity déclenchera une accroche lorsque la position du défilement est proche du point d'accroche. C'est le navigateur qui décidera de la distance seuil exacte pour laquelle déclencher l'accroche ou non. Dans l'exemple qui suit, vous pouvez passer de mandatory à proximity afin d'observer l'effet obtenu.
{{EmbedGHLiveSample("css-examples/scroll-snap/mandatory-proximity.html", '100%', 700)}}
+ +scroll-snap-alignLa propriété {{CSSxRef("scroll-snap-align")}} peut être utilisée avec les valeurs start, end ou center. Ces valeurs indiquent l'emplacement où le contenu doit s'accrocher sur le conteneur de défilement. Vous pouvez modifier la valeur scroll-snap-align dans l'exemple interactif qui suit pour voir le résultat obtenu.
{{EmbedGHLiveSample("css-examples/scroll-snap/align.html", '100%', 700)}}
+ +Si on ne souhaite pas que le contenu s'accroche exactement sur le bord du conteneur de défilement, on pourra utiliser la propriété {{CSSxRef("scroll-padding")}} (ou les propriétés détaillées équivalentes) afin de définir un remplissage (padding) pour décaler la position du contenu.
+ +Dans l'exemple qui suit, on paramètre scroll-padding à 40 pixels. Lorsqu'on accroche au début de la deuxième et de la troisième section, le défilement s'arrête à 40 pixels du début de la section. Vous pouvez adapter la valeur de scroll-padding afin de voir l'impact sur le décalage obtenu.
{{EmbedGHLiveSample("css-examples/scroll-snap/scroll-padding.html", '100%', 700)}}
+ +Cette propriété s'avère particulièrement utile lorsqu'on a un élément fixe (une barre de navigation par exemple) qui pourrait être chevauchée par du contenu qui défile. En utilisant scroll-padding, on peut réserver un espace pour cet élément fixe. Dans l'exemple suivant, on peut voir le titre <h1> qui reste à l'écran et le contenu qui défile en dessous de ce titre. Sans le remplissage, le titre aurait été chevauché par une partie du contenu lors de l'accroche.
{{EmbedGHLiveSample("css-examples/scroll-snap/scroll-padding-sticky.html", '100%', 700)}}
+ +Une autre méthode permettant d'obtenir un espace entre le bord du conteneur et les éléments fils est d'utiliser la propriété {{CSSxRef("scroll-margin")}} sur l'élément fils. scroll-margin définit principalement le décalage par rapport à la boîte définie. Vous pouvez manipuler cette propriété dans l'exemple interactif suivant :
{{EmbedGHLiveSample("css-examples/scroll-snap/scroll-margin.html", '100%', 700)}}
+ +scroll-snap-stopLa propriété {{CSSxRef("scroll-snap-stop")}} indique au navigateur qu'il devrait arrêter le défilement pour chaque point d'accroche. Pour nos exemples précédents, cela signifie qu'on s'arrêtera nécessairement au début de chaque section. Cette propriété dispose de moins d'implémentations dans les navigateurs.
+ +Cela peut être utile pour s'assurer que les utilisateurs consultent chaque section sans louper du contenu par inadvertence. En revanche, cela peut rendre le défilement plus lent et ralentir considérablement un utilisateur qui chercherait une section donnée.
+ +Note : La propriété scroll-snap-stop est actuellement mise en question dans la version Candidate Recommendation de la spécification et pourrait être retirée.
Les pages de chaque propriété détaillent la compatibilité des différents navigateurs. On notera qu'avant Firefox 68, une ancienne version de la spécification était implémentée. Vous pouvez poursuivre avec le guide suivant pour en savoir plus sur l'écriture de code compatible entre les différents navigateurs qui implémentent différentes versions de la spécification.
diff --git a/files/fr/web/css/css_scroll_snap/browser_compat/index.html b/files/fr/web/css/css_scroll_snap/browser_compat/index.html deleted file mode 100644 index c1eb4da23a..0000000000 --- a/files/fr/web/css/css_scroll_snap/browser_compat/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Compatibilité des navigateurs et CSS Scroll Snap -slug: Web/CSS/CSS_Scroll_Snap/Browser_compat -tags: - - CSS - - CSS Scroll Snap - - Compatibilité - - Guide -translation_of: Web/CSS/CSS_Scroll_Snap/Browser_compat -original_slug: Web/CSS/CSS_Scroll_Snap/Compatibilité_navigateurs ---- -Firefox implémentait initialement une première version de la spécification Scroll Snap appelée alors Scroll Snap Points. Avec Firefox 68, c'est la nouvelle version de la spécification qui est implémentée et les anciennes propriétés sont retirées.
- -Si vous avez uniquement ciblé l'ancienne implémentation de Firefox avec les propriétés définies par Scroll Snap Points, vous devriez mettre à jour votre code afin d'utiliser la nouvelle spécification. Ainsi, votre code fonctionnera dans l'ensemble des navigateurs qui implémente la spécification à jour, y compris Firefox. Si vous n'effectuez pas ces changements, les accroches de défilement ne fonctionneront plus à partir de Firefox 68.
- -Voici les principaux points d'attention :
- -scroll-snap-type: mandatory) cessera de fonctionnerSi vous utilisez déjà l'ancienne implémentation pour cibler les navigateurs plus anciens, vous pouvez continuer à l'utiliser de la façon décrite ci-après.
- -Dans ce premier exemple, on utilise l'ancienne version de la spécification et la nouvelle afin de pouvoir utiliser les positions d'accroche quel que soit le navigateur tant que celui-ci prend en charge les accroches au défilement.
- -L'exemple contient les propriétés {{CSSxRef("scroll-snap-points-y")}} et {{CSSxRef("scroll-snap-destination")}}, dépréciées, afin que les accroches fonctionnent dans Firefox. On ajoute également la propriété {{CSSxRef("scroll-snap-type")}} à deux reprises, une fois avec la valeur y (nouvelle version de la spécification) et une seconde fois pour Firefox qui prend en charge cette propriété mais pas la valeur y.
{{EmbedGHLiveSample("css-examples/scroll-snap/mandatory-y-old-spec.html", '100%', 700)}}
- -Si vous testez cet exemple attentivement, vous pourrez voir qu'il fonctionne dans plus de navigateurs, y compris ceux qui couvrent cette période intermédiaire. Les anciennes propriétés de la spécification sont documentées sur MDN sous la section Scroll Snap Points.
- -Les points d'accroche au défilement font partie de ces fonctionnalités CSS sympathiques où l'absence de prise en charge signifie uniquement qu'on ne récupère la fonctionnalité avancée mais que le reste du site ou de l'application continue de fonctionner. Aussi, vous pouvez tout à fait choisir de traiter Firefox comme un navigateur qui ne prend pas en charge cette fonctionnalité et éviter la complexité associée à la gestion des deux configurations. Une fois que la nouvelle spécification sera implémentée, les utilisateurs en bénificieront au fur et à mesure.
- -Si vous souhaitez tester la prise en charge grâce aux requêtes de fonctionnalité, nous vous recommandons de tester {{CSSxRef("scroll-snap-align")}} car cette propriété n'existait pas dans la première spécification. Toutefois, ces propriétés ne devraient causer aucun problème aux navigateurs qui ne les prennent pas en charge car ils les ignoreront simplement.
- -Enfin, on peut se demander pourquoi une telle situation existe aujourd'hui. Ce n'est que la réalité du développement de CSS : les nouvelles fonctionnalités ne peuvent pas exister en pure théorie et en absence d'implémentation de la part des navigateurs. Lors de la phase d'implémentation, les navigateurs peuvent découvrir des problèmes qui n'apparaissent que dans des situations bien concrètes. Dans de tels cas, il faut alors mettre à jour la spécification et on peut alors avoir différentes versions de la spécification et différents navigateurs qui se mettent à jour au fur et à mesure.
diff --git a/files/fr/web/css/css_scroll_snap/browser_compat/index.md b/files/fr/web/css/css_scroll_snap/browser_compat/index.md new file mode 100644 index 0000000000..c1eb4da23a --- /dev/null +++ b/files/fr/web/css/css_scroll_snap/browser_compat/index.md @@ -0,0 +1,47 @@ +--- +title: Compatibilité des navigateurs et CSS Scroll Snap +slug: Web/CSS/CSS_Scroll_Snap/Browser_compat +tags: + - CSS + - CSS Scroll Snap + - Compatibilité + - Guide +translation_of: Web/CSS/CSS_Scroll_Snap/Browser_compat +original_slug: Web/CSS/CSS_Scroll_Snap/Compatibilité_navigateurs +--- +Firefox implémentait initialement une première version de la spécification Scroll Snap appelée alors Scroll Snap Points. Avec Firefox 68, c'est la nouvelle version de la spécification qui est implémentée et les anciennes propriétés sont retirées.
+ +Si vous avez uniquement ciblé l'ancienne implémentation de Firefox avec les propriétés définies par Scroll Snap Points, vous devriez mettre à jour votre code afin d'utiliser la nouvelle spécification. Ainsi, votre code fonctionnera dans l'ensemble des navigateurs qui implémente la spécification à jour, y compris Firefox. Si vous n'effectuez pas ces changements, les accroches de défilement ne fonctionneront plus à partir de Firefox 68.
+ +Voici les principaux points d'attention :
+ +scroll-snap-type: mandatory) cessera de fonctionnerSi vous utilisez déjà l'ancienne implémentation pour cibler les navigateurs plus anciens, vous pouvez continuer à l'utiliser de la façon décrite ci-après.
+ +Dans ce premier exemple, on utilise l'ancienne version de la spécification et la nouvelle afin de pouvoir utiliser les positions d'accroche quel que soit le navigateur tant que celui-ci prend en charge les accroches au défilement.
+ +L'exemple contient les propriétés {{CSSxRef("scroll-snap-points-y")}} et {{CSSxRef("scroll-snap-destination")}}, dépréciées, afin que les accroches fonctionnent dans Firefox. On ajoute également la propriété {{CSSxRef("scroll-snap-type")}} à deux reprises, une fois avec la valeur y (nouvelle version de la spécification) et une seconde fois pour Firefox qui prend en charge cette propriété mais pas la valeur y.
{{EmbedGHLiveSample("css-examples/scroll-snap/mandatory-y-old-spec.html", '100%', 700)}}
+ +Si vous testez cet exemple attentivement, vous pourrez voir qu'il fonctionne dans plus de navigateurs, y compris ceux qui couvrent cette période intermédiaire. Les anciennes propriétés de la spécification sont documentées sur MDN sous la section Scroll Snap Points.
+ +Les points d'accroche au défilement font partie de ces fonctionnalités CSS sympathiques où l'absence de prise en charge signifie uniquement qu'on ne récupère la fonctionnalité avancée mais que le reste du site ou de l'application continue de fonctionner. Aussi, vous pouvez tout à fait choisir de traiter Firefox comme un navigateur qui ne prend pas en charge cette fonctionnalité et éviter la complexité associée à la gestion des deux configurations. Une fois que la nouvelle spécification sera implémentée, les utilisateurs en bénificieront au fur et à mesure.
+ +Si vous souhaitez tester la prise en charge grâce aux requêtes de fonctionnalité, nous vous recommandons de tester {{CSSxRef("scroll-snap-align")}} car cette propriété n'existait pas dans la première spécification. Toutefois, ces propriétés ne devraient causer aucun problème aux navigateurs qui ne les prennent pas en charge car ils les ignoreront simplement.
+ +Enfin, on peut se demander pourquoi une telle situation existe aujourd'hui. Ce n'est que la réalité du développement de CSS : les nouvelles fonctionnalités ne peuvent pas exister en pure théorie et en absence d'implémentation de la part des navigateurs. Lors de la phase d'implémentation, les navigateurs peuvent découvrir des problèmes qui n'apparaissent que dans des situations bien concrètes. Dans de tels cas, il faut alors mettre à jour la spécification et on peut alors avoir différentes versions de la spécification et différents navigateurs qui se mettent à jour au fur et à mesure.
diff --git a/files/fr/web/css/css_scroll_snap/index.html b/files/fr/web/css/css_scroll_snap/index.html deleted file mode 100644 index 0c9ccd8baa..0000000000 --- a/files/fr/web/css/css_scroll_snap/index.html +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: CSS Scroll Snap -slug: Web/CSS/CSS_Scroll_Snap -tags: - - CSS - - CSS Scroll Snap - - Reference - - Vue d'ensemble -translation_of: Web/CSS/CSS_Scroll_Snap ---- -CSS Scroll Snap est un module de spécification CSS qui introduit les positions d'accroche lors du défilement. Cela permet de garantir la position sur laquelle on arrive après avoir fait défiler du contenu.
- -Note : La version précédente ce module, Scroll Snap Points, est dépréciée et est désormais remplacée par CSS Scroll Snap.
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
Les informations de compatibilité sont présentes sur chacune des pages des propriétés. Voir le guide sur la compatibilité des navigateurs afin de comprendre comment les différentes versions de la spécification sont implémentées.
diff --git a/files/fr/web/css/css_scroll_snap/index.md b/files/fr/web/css/css_scroll_snap/index.md new file mode 100644 index 0000000000..0c9ccd8baa --- /dev/null +++ b/files/fr/web/css/css_scroll_snap/index.md @@ -0,0 +1,84 @@ +--- +title: CSS Scroll Snap +slug: Web/CSS/CSS_Scroll_Snap +tags: + - CSS + - CSS Scroll Snap + - Reference + - Vue d'ensemble +translation_of: Web/CSS/CSS_Scroll_Snap +--- +CSS Scroll Snap est un module de spécification CSS qui introduit les positions d'accroche lors du défilement. Cela permet de garantir la position sur laquelle on arrive après avoir fait défiler du contenu.
+ +Note : La version précédente ce module, Scroll Snap Points, est dépréciée et est désormais remplacée par CSS Scroll Snap.
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
Les informations de compatibilité sont présentes sur chacune des pages des propriétés. Voir le guide sur la compatibilité des navigateurs afin de comprendre comment les différentes versions de la spécification sont implémentées.
diff --git a/files/fr/web/css/css_scroll_snap_points/index.html b/files/fr/web/css/css_scroll_snap_points/index.html deleted file mode 100644 index bc27bffd62..0000000000 --- a/files/fr/web/css/css_scroll_snap_points/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: CSS Scroll Snap Points -slug: Web/CSS/CSS_Scroll_Snap_Points -tags: - - Aperçu - - CSS - - CSS Scroll Snap Points - - Déprécié - - Reference -translation_of: Web/CSS/CSS_Scroll_Snap_Points ---- -CSS Scroll Snap Points (ou points d'accroche CSS) est un module CSS qui introduit les positions d'accroche. Il définit les propriétés qui gèrent les « points d'accroche » utilisés lors du défilement des éléments.
- -Note : C'est désormais le module de spécification CSS Scroll Snap qui définit ces fonctionnalités.
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-points-y", "scroll-snap-points-y")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
CSS Scroll Snap Points (ou points d'accroche CSS) est un module CSS qui introduit les positions d'accroche. Il définit les propriétés qui gèrent les « points d'accroche » utilisés lors du défilement des éléments.
+ +Note : C'est désormais le module de spécification CSS Scroll Snap qui définit ces fonctionnalités.
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-points-y", "scroll-snap-points-y")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
Le module de spécification CSS Scrollbars standardise la mise en forme des barres de défilement (scrollbar) notamment introduite en 2000 avec Windows IE 5.5.
- -Dans l'exemple qui suit, on crée une barre de défilement fine avec une piste verte et un curseur violet.
- -.scroller {
- width: 300px;
- height: 100px;
- overflow-y: scroll;
- scrollbar-color: rebeccapurple green;
- scrollbar-width: thin;
-}
-
-<div class="scroller">Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</div>- -
{{EmbedLiveSample("Exemples")}}
- -Lors du paramétrage des barres de défilement, on s'assurera que le contraste avec les éléments alentour est suffisant et que la surface d'interaction est suffisamment grande pour les personnes qui utilisent une interface tactile.
- - - -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Scrollbars')}} | -{{Spec2('CSS Scrollbars')}} | -Définition initiale | -
Le module de spécification CSS Scrollbars standardise la mise en forme des barres de défilement (scrollbar) notamment introduite en 2000 avec Windows IE 5.5.
+ +Dans l'exemple qui suit, on crée une barre de défilement fine avec une piste verte et un curseur violet.
+ +.scroller {
+ width: 300px;
+ height: 100px;
+ overflow-y: scroll;
+ scrollbar-color: rebeccapurple green;
+ scrollbar-width: thin;
+}
+
+<div class="scroller">Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</div>+ +
{{EmbedLiveSample("Exemples")}}
+ +Lors du paramétrage des barres de défilement, on s'assurera que le contraste avec les éléments alentour est suffisant et que la surface d'interaction est suffisamment grande pour les personnes qui utilisent une interface tactile.
+ + + +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Scrollbars')}} | +{{Spec2('CSS Scrollbars')}} | +Définition initiale | +
Les sélecteurs définissent les éléments sur lesquelles s'applique un ensemble de règles CSS.
- -nomelementinput permettra de cibler n'importe quel élément {{HTMLElement('input')}}.class..nomclasse.index permettra de cibler n'importe quel élément qui possède la classe index (vraisemblablement définie avec un attribut class="index").id. Dans un document, il ne doit y avoir qu'un seul élément pour un identifiant donné.#valeurid#toc permettra de cibler l'élément qui possède l'identifiant toc (vraisemblablement défini avec un attribut id="toc").* ns|* *|** permettra de cibler tous les éléments du document.[attr] [attr=valeur] [attr~=valeur] [attr|=valeur] [attr^=valeur] [attr$=valeur] [attr*=valeur][autoplay] permettra de cibler tous les éléments qui possède l'attribut autoplay défini (quelle que soit sa valeur).'+' permet de sélectionner les nœuds qui suivent immédiatement un élément donné.A + Bdiv + p permettra de cibler n'importe quel élément {{HTMLElement('p')}} qui suit immédiatement un élément {{HTMLElement('div')}}.'~' permet de sélectionner les nœuds qui suivent un élément et qui ont le même parent.A ~ Bp ~ span permettra de cibler les éléments {{HTMLElement('span')}} qui suivent (immédiatement ou non) un élément {{HTMLElement('p')}} et qui ont le même élément parent.'>' permet de sélectionner les nœuds qui sont des enfants directs d'un élément donné.A > Bul > li permettra de cibler tous les éléments {{HTMLElement('li')}} qui sont directement situés sous un élément {{HTMLElement('ul')}}. (espace) permet de sélectionner les nœuds qui sont des descendants (pas nécessairement des enfants directs) d'un élément donné.A Bdiv span permettra de cibler n'importe quel élément {{HTMLElement('span')}} situé à l'intérieur d'un élément {{HTMLElement('div')}}.|| sélectionne les nœuds qui appartiennent à une colonne. Syntaxe : A || Bcol || td permettra de cibler n'importe quel élément {{HTMLElement('td')}} sous la portée d'une colonne {{HTMLElement('col')}}.a:visited permettra de cibler l'ensemble des éléments {{HTMLElement('a')}} (des liens) ayant déjà été visités par l'utilisateur.p::first-line permettra de cibler la première ligne de chacun des éléments {{HTMLElement('p')}} (les paragraphes) du document.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Selectors')}} | -{{Spec2('CSS4 Selectors')}} | -Ajout du combinateur de colonne (||), des sélecteurs structurels pour la grille, des combinateurs logiques, des pseudo-classes pour la localisation, la temporisation, les états de ressources, les éléments linguistiques et les éléments relatifs à l'interface utilisateur. Ajout du modificateur de sensibilité à la casse pour les caractèes ASCII et du ciblage des attributs insensible à la casse. |
-
| {{SpecName('CSS3 Selectors')}} | -{{Spec2('CSS3 Selectors')}} | -Ajout du combinateur de voisin ~. Les pseudo-éléments utilisent désormais un préfixe avec deux fois deux-points (::) |
-
| {{SpecName('CSS2.1', 'selector.html')}} | -{{Spec2('CSS2.1')}} | -
- Ajout des combinateurs pour les enfants ( |
-
| {{SpecName('CSS1')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
Les sélecteurs définissent les éléments sur lesquelles s'applique un ensemble de règles CSS.
+ +nomelementinput permettra de cibler n'importe quel élément {{HTMLElement('input')}}.class..nomclasse.index permettra de cibler n'importe quel élément qui possède la classe index (vraisemblablement définie avec un attribut class="index").id. Dans un document, il ne doit y avoir qu'un seul élément pour un identifiant donné.#valeurid#toc permettra de cibler l'élément qui possède l'identifiant toc (vraisemblablement défini avec un attribut id="toc").* ns|* *|** permettra de cibler tous les éléments du document.[attr] [attr=valeur] [attr~=valeur] [attr|=valeur] [attr^=valeur] [attr$=valeur] [attr*=valeur][autoplay] permettra de cibler tous les éléments qui possède l'attribut autoplay défini (quelle que soit sa valeur).'+' permet de sélectionner les nœuds qui suivent immédiatement un élément donné.A + Bdiv + p permettra de cibler n'importe quel élément {{HTMLElement('p')}} qui suit immédiatement un élément {{HTMLElement('div')}}.'~' permet de sélectionner les nœuds qui suivent un élément et qui ont le même parent.A ~ Bp ~ span permettra de cibler les éléments {{HTMLElement('span')}} qui suivent (immédiatement ou non) un élément {{HTMLElement('p')}} et qui ont le même élément parent.'>' permet de sélectionner les nœuds qui sont des enfants directs d'un élément donné.A > Bul > li permettra de cibler tous les éléments {{HTMLElement('li')}} qui sont directement situés sous un élément {{HTMLElement('ul')}}. (espace) permet de sélectionner les nœuds qui sont des descendants (pas nécessairement des enfants directs) d'un élément donné.A Bdiv span permettra de cibler n'importe quel élément {{HTMLElement('span')}} situé à l'intérieur d'un élément {{HTMLElement('div')}}.|| sélectionne les nœuds qui appartiennent à une colonne. Syntaxe : A || Bcol || td permettra de cibler n'importe quel élément {{HTMLElement('td')}} sous la portée d'une colonne {{HTMLElement('col')}}.a:visited permettra de cibler l'ensemble des éléments {{HTMLElement('a')}} (des liens) ayant déjà été visités par l'utilisateur.p::first-line permettra de cibler la première ligne de chacun des éléments {{HTMLElement('p')}} (les paragraphes) du document.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Selectors')}} | +{{Spec2('CSS4 Selectors')}} | +Ajout du combinateur de colonne (||), des sélecteurs structurels pour la grille, des combinateurs logiques, des pseudo-classes pour la localisation, la temporisation, les états de ressources, les éléments linguistiques et les éléments relatifs à l'interface utilisateur. Ajout du modificateur de sensibilité à la casse pour les caractèes ASCII et du ciblage des attributs insensible à la casse. |
+
| {{SpecName('CSS3 Selectors')}} | +{{Spec2('CSS3 Selectors')}} | +Ajout du combinateur de voisin ~. Les pseudo-éléments utilisent désormais un préfixe avec deux fois deux-points (::) |
+
| {{SpecName('CSS2.1', 'selector.html')}} | +{{Spec2('CSS2.1')}} | +
+ Ajout des combinateurs pour les enfants ( |
+
| {{SpecName('CSS1')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
Afin d'aider à identifier la destination d'un lien qui mène vers une portion spécifique du document, les sélecteurs CSS3 ont introduit la pseudo-classe {{cssxref(":target")}}.
- -La pseudo-classe {{cssxref(":target")}} permet de mettre en forme l'élément ciblé par le fragment d'identifiant de l'URL du document. Ainsi l'URL https://developer.mozilla.org/fr/docs/Utiliser_la_pseudo-classe_:target_dans_un_selecteur#Exemple contient le fragment d'identifiant #Exemple. En HTML, les identifiants correspondent aux valeurs des attributs id et name, puisque les deux partagent le même espace de nommage. Ainsi l'URL dans l'exemple devrait pointer vers le titre « Exemple » de ce document.
Imaginons qu'on souhaite mettre en forme n'importe quel élément {{HTMLElement("h2")}} qui serait la cible de l'URL mais qu'on ne souhaite pas qu'un autre type d'élément ait un style particulier lorsqu'il est ciblé. On peut obtenir cet effet assez simplement :
- -h2:target {
- font-weight: bold;
-}
-
-On peut également créer des styles particuliers pour une portion spécifique du document. On peut ainsi utiliser la même valeur identifiant la cible que celle présente dans l'URL. Par exemple, pour ajouter une bordure au fragment #Exemple, on pourra écrire :
#Exemple:target {
- border: 1px solid black;
-}
-
-Si le but est de créer un style commun qui s'appliquera à tous les éléments lorsque ceux-ci seront ciblés, un sélecteur universel utilisant seulement la pseudo-classe s'avèrera très pratique :
- -:target {
- color: red;
-}
-
-
-Dans l'exemple suivant, cinq liens pointent chacun vers une portion du même document. Actionner le lien « Premier », par exemple, fera en sorte que le <h1 id="un"> devienne l'élément cible. Notons que le document pourrait défiler vers une nouvelle position, jusqu'à la cible du lien.
<h4 id="un">...</h4> <p id="deux">...</p> -<div id="trois">...</div> <a id="quatre">...</a> <em id="cinq">...</em> - -<a href="#un">Premier</a> -<a href="#deux">Deuxième</a> -<a href="#trois">Troisième</a> -<a href="#quatre">Quatrième</a> -<a href="#cinq">Cinquième</a>- -
Les utilisateurs peuvent être gênés lorsqu'un fragment d'identifiant mène à une portion du document, ne sachant pas quelle partie du document ils sont supposés lire. En mettant en forme la cible d'une URI, on peut réduire (voire supprimer) cette confusion.
- -Afin d'aider à identifier la destination d'un lien qui mène vers une portion spécifique du document, les sélecteurs CSS3 ont introduit la pseudo-classe {{cssxref(":target")}}.
+ +La pseudo-classe {{cssxref(":target")}} permet de mettre en forme l'élément ciblé par le fragment d'identifiant de l'URL du document. Ainsi l'URL https://developer.mozilla.org/fr/docs/Utiliser_la_pseudo-classe_:target_dans_un_selecteur#Exemple contient le fragment d'identifiant #Exemple. En HTML, les identifiants correspondent aux valeurs des attributs id et name, puisque les deux partagent le même espace de nommage. Ainsi l'URL dans l'exemple devrait pointer vers le titre « Exemple » de ce document.
Imaginons qu'on souhaite mettre en forme n'importe quel élément {{HTMLElement("h2")}} qui serait la cible de l'URL mais qu'on ne souhaite pas qu'un autre type d'élément ait un style particulier lorsqu'il est ciblé. On peut obtenir cet effet assez simplement :
+ +h2:target {
+ font-weight: bold;
+}
+
+On peut également créer des styles particuliers pour une portion spécifique du document. On peut ainsi utiliser la même valeur identifiant la cible que celle présente dans l'URL. Par exemple, pour ajouter une bordure au fragment #Exemple, on pourra écrire :
#Exemple:target {
+ border: 1px solid black;
+}
+
+Si le but est de créer un style commun qui s'appliquera à tous les éléments lorsque ceux-ci seront ciblés, un sélecteur universel utilisant seulement la pseudo-classe s'avèrera très pratique :
+ +:target {
+ color: red;
+}
+
+
+Dans l'exemple suivant, cinq liens pointent chacun vers une portion du même document. Actionner le lien « Premier », par exemple, fera en sorte que le <h1 id="un"> devienne l'élément cible. Notons que le document pourrait défiler vers une nouvelle position, jusqu'à la cible du lien.
<h4 id="un">...</h4> <p id="deux">...</p> +<div id="trois">...</div> <a id="quatre">...</a> <em id="cinq">...</em> + +<a href="#un">Premier</a> +<a href="#deux">Deuxième</a> +<a href="#trois">Troisième</a> +<a href="#quatre">Quatrième</a> +<a href="#cinq">Cinquième</a>+ +
Les utilisateurs peuvent être gênés lorsqu'un fragment d'identifiant mène à une portion du document, ne sachant pas quelle partie du document ils sont supposés lire. En mettant en forme la cible d'une URI, on peut réduire (voire supprimer) cette confusion.
+ +Les formes CSS peuvent être définies grâce au type {{cssxref("<basic-shape>")}}. Dans ce guide, nous verrons les différentes valeurs utilisables avec ce type et leur fonctionnement. Ces formes peuvent par exemple décrire des cercles simples voire des polygones complexes.
- -Avant d'étudier ces formes dans le détail, attardons nous sur deux notions qui permettent de construire les formes :
- -<basic-shape><basic-shape>Le type de donnée <basic-shape> fournit les valeurs que nous utiliserons ici pour toutes les formes simples. Ce type utilise une notation fonctionnelle : le type de forme souhaité est suivi de parenthèses au sein desquelles on ajoute différentes valeurs pour décrire la forme finale.
Les arguments de ces fonctions varient selon la forme qu'on veut créer et nous allons voir ces arguments dans les exemples ci-après.
- -La boîte de référence définit le système de coordonnées de chaque forme. Nous avons déjà abordé cette boîte dans le guide sur la création de formes à partir des boîtes où nous avons directement utilisé la boîte de référence afin de créer une forme.
- -L'inspecteur des formes CSS de Firefox affiche la boîte de référence lorsqu'on inspecte une forme. Dans la capture d'écran suivante, on a créé un cercle avec shape-outside: circle(50%), l'élément flottant possède 20 pixels de remplissage avec la bordure et la marge. On voit que l'inspecteur affiche ces boîtes de référence. Lorsqu'on utilise une forme basique, la boîte de référence utilisée par défaut est la boîte des marges. Dans la capture d'écran, on voit que la forme est définie relativement aux boîtes du modèle de boîtes.

La boîte de référence qu'on veut utiliser peut être ajoutée après la définition de la forme simple. Autrement dit, le comportement obtenu par défaut est équivalent à l'écriture de .
- -.shape {
- shape-outside: circle(50%) margin-box;
-}
-
-
-On peut changer ce paramètre si la forme utilise une autre boîte du modèle de boîte. Par exemple, si on souhaite utilise la boîte de bordure, on pourra écrire :
- -.shape {
- shape-outside: circle(50%) border-box;
-}
-
-
-On notera que la boîte margin-box pourra rogner la forme et que les formes créées relativement aux autres formes et qui dépassent la boîte de marge seront rognées pour être inscrites dans la boîte de marge. Nous verrons ce comportement dans les exemples suivants.
Pour une description des boîtes et de leurs relations avec les formes CSS, voir Comprendre les liens entre les boîtes de référence et les formes CSS.
- -inset()Le type inset() définit un rectangle. Cela peut sembler peu utile car c'est déjà la forme d'une boîte normale. Toutefois, avec inset(), on peut inclure des décalages et déplacer la forme autour de la boîte de référence.
inset() prend comme arguments quatre valeurs pour les quatres côtés : haut, droit, bas, gauche puis une dernière pour border-radius. Le fragment de code CSS suivant permet de créér une forme rectangulaire décalée depuis la boîte de référence (20 pixels du haut et du bas, 10 pixels de la gauche et de la droite) et pour laquelle border-radius vaut 10 pixels.
.shape {
- float: left;
- shape-outside: inset(20px 10px 20px 10px round 10px);
-}
-
-
-Utilisant les mêmes règles vues pour la version raccourcie de la marge (cf. {{cssxref("margin")}}), on peut indiquer plusieurs décalages de façon synthétique :
- -Ainsi, la règle écrite ci-avant peut-être formulée :
- -.shape {
- float: left;
- shape-outside: inset(20px 10px round 10px);
-}
-
-Dans l'exemple qui suit, on a une forme inset() qu'on décale au-delà de l'élément flottant. Vous pouvez éditer l'exemple afin d'observer l'effet des différentes valeurs de décalages.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/inset.html", '100%', 800)}}
- -Vous pouvez également ajouter une valeur pour la boîte de référence. Dans l'exemple suivant, vous pouvez modifier margin-box afin d'utiliser border-box, padding-box ou content-box pour observer la façon dont la boîte de référence modifie l'origine des coordonnées utilisées pour les décalages.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/inset-box.html", '100%', 800)}}
- -circle()La valeur circle() peut être utilisée pour shape-outside et prend jusqu'à deux argument. Le premier de ces arguments correspond à shape-radius.
La fonction circle() et la fonction ellipse(), pour shape-outside, peuvent utiliser cet argument <shape-radius>. Ce dernier peut être une longueur ou un pourcentage mais également l'un des mots-clés closest-side ou farthest-side.
Le mot-clé closest-side utilise la longueur depuis le centre de la forme jusqu'au côté le plus proche de la boîte de référence. Pour les cercles, c'est le côté le plus proche dans n'importe quelle dimension. Pour les ellipses, c'est le côté le plus proche selon l'axe du rayon de l'ellipse.
Le mot-clé farthest-side utilise la longueur depuis le centre de la forme jusqu'au côté le plus éloigné de la boîte de référence. Pour les cercles, c'est le côté le plus éloigné, quelle que soit la dimension. Pour les ellipses, c'est le côté le plus éloigné selon l'axe du rayon.
Le deuxième argument est une position dont la valeur par défaut est center. Toutefois, n'importe quelle position valide peut être utilisée afin d'indiquer le centre du cercle.
Pour résumer, le cercle accepte un rayon qui peut être une longueur, un pourcentage ou le mot-clé closest-side ou farthest-side, optionnellement suivi par le mot-clé at suivi par une position.
Dans l'exemple qui suit, on crée un cercle sur un objet de 100 pixels de large avec une marge de 20 pixels. On a donc une largeur totale de la boîte de référence de 140 pixels. On indique une valeur de 50% pour shape-radius, ce qui crée donc un cercle de 70 pixels de rayon avec une position fixée à 30%.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/circle.html", '100%', 800)}}
- -Dans cet exemple, vous pouvez augmenter ou réduire le rayon pour adapter la taille du cercle ou déplacer le cercle via la position. Vous pouvez aussi modifier la boîte de référence.
- -Ajoutons un autre exemple, en utilisant les mots-clés top left pour indiquer la position, on peut créer une forme en quart de cercle pour le coin supérieur gauche de la page. L'exemple qui suit illustre comment créer un quart de cercle avec du texte qui est écrit autour.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/circle-generated.html", '100%', 700)}}
- -Lorsqu'on a décrit les boîtes de référence ci-avant, on a vu que la boîte de marge pourra rogner la forme. Pour observer cet effet, on peut déplacer le centre du cercle vers le contenu en utilisant la valeur 60% pour la position. Le centre du cercle est alors plus près du contenu et la forme du cercle pourrait dépasser la boîte de marge. La forme est donc rognée et on voit alors un aplat.
- -img {
- float: left;
- shape-outside: circle(50% at 60%);
-}
-
-
-
ellipse()Une ellipse peut être vue comme un cercle aplati. De ce point de vu ellipse() fonctionne de façon analogue à circle() mais il est nécessaire d'indiquer deux rayons : un rayon horizontal x et un rayon vertical y (dans cet ordre).
Ces rayons peuvent être suivis par une position qui permet, comme avec circle(), de déplacer le centre de l'ellipse. Dans l'exemple qui suit, on dessine une ellipse avec un rayon horizontal de 40%, un rayon vertical de 50% et une position à gauche. Cela signifie que le centre de l'ellipse sera situé sur le bord gauche et on aura donc une demi-ellipse autour de laquelle s'écoulera le texte. N'hésitez pas à modifier ces valeurs pour voir l'impact sur l'exemple.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/ellipse.html", '100%', 800)}}
- -Les mots-clés closest-side et farthest-side permettent de créer rapidmeent une ellipse en fonction de la taille de la boîte de référence de l'élément flottant.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/ellipse-keywords.html", '100%', 800)}}
- -polygon()La forme simple qui permet de créer une grande variété de formes est polygon(). Cette forme prend comme arguments trois ou plusieurs paires de valeurs qui correspondent aux coordonnées dessinées dans la boîte de référence. Attention, les coordonnées doivent au moins former un triangle.
Dans l'exemple qui suit, on crée une forme avec polygon() pour que le texte s'écoule autour. N'hésitez pas à modifier les valeurs pour visualiser les impacts.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/polygon.html", '100%', 800)}}
- -L'inspecteur de formes Firefox s'avère très utile pour créer une forme de polygone. La capture d'écran qui suit illustre la forme dessinée dans l'outil.
- -
Une autre ressource qui peut s'avérer utile sur ces sujets est Clippy : cet outil permet de créer des formes pour clip-path. Or, les formes utilisées pour clip-path sont les mêmes que pour les formes simples.
Les formes CSS peuvent être définies grâce au type {{cssxref("<basic-shape>")}}. Dans ce guide, nous verrons les différentes valeurs utilisables avec ce type et leur fonctionnement. Ces formes peuvent par exemple décrire des cercles simples voire des polygones complexes.
+ +Avant d'étudier ces formes dans le détail, attardons nous sur deux notions qui permettent de construire les formes :
+ +<basic-shape><basic-shape>Le type de donnée <basic-shape> fournit les valeurs que nous utiliserons ici pour toutes les formes simples. Ce type utilise une notation fonctionnelle : le type de forme souhaité est suivi de parenthèses au sein desquelles on ajoute différentes valeurs pour décrire la forme finale.
Les arguments de ces fonctions varient selon la forme qu'on veut créer et nous allons voir ces arguments dans les exemples ci-après.
+ +La boîte de référence définit le système de coordonnées de chaque forme. Nous avons déjà abordé cette boîte dans le guide sur la création de formes à partir des boîtes où nous avons directement utilisé la boîte de référence afin de créer une forme.
+ +L'inspecteur des formes CSS de Firefox affiche la boîte de référence lorsqu'on inspecte une forme. Dans la capture d'écran suivante, on a créé un cercle avec shape-outside: circle(50%), l'élément flottant possède 20 pixels de remplissage avec la bordure et la marge. On voit que l'inspecteur affiche ces boîtes de référence. Lorsqu'on utilise une forme basique, la boîte de référence utilisée par défaut est la boîte des marges. Dans la capture d'écran, on voit que la forme est définie relativement aux boîtes du modèle de boîtes.

La boîte de référence qu'on veut utiliser peut être ajoutée après la définition de la forme simple. Autrement dit, le comportement obtenu par défaut est équivalent à l'écriture de .
+ +.shape {
+ shape-outside: circle(50%) margin-box;
+}
+
+
+On peut changer ce paramètre si la forme utilise une autre boîte du modèle de boîte. Par exemple, si on souhaite utilise la boîte de bordure, on pourra écrire :
+ +.shape {
+ shape-outside: circle(50%) border-box;
+}
+
+
+On notera que la boîte margin-box pourra rogner la forme et que les formes créées relativement aux autres formes et qui dépassent la boîte de marge seront rognées pour être inscrites dans la boîte de marge. Nous verrons ce comportement dans les exemples suivants.
Pour une description des boîtes et de leurs relations avec les formes CSS, voir Comprendre les liens entre les boîtes de référence et les formes CSS.
+ +inset()Le type inset() définit un rectangle. Cela peut sembler peu utile car c'est déjà la forme d'une boîte normale. Toutefois, avec inset(), on peut inclure des décalages et déplacer la forme autour de la boîte de référence.
inset() prend comme arguments quatre valeurs pour les quatres côtés : haut, droit, bas, gauche puis une dernière pour border-radius. Le fragment de code CSS suivant permet de créér une forme rectangulaire décalée depuis la boîte de référence (20 pixels du haut et du bas, 10 pixels de la gauche et de la droite) et pour laquelle border-radius vaut 10 pixels.
.shape {
+ float: left;
+ shape-outside: inset(20px 10px 20px 10px round 10px);
+}
+
+
+Utilisant les mêmes règles vues pour la version raccourcie de la marge (cf. {{cssxref("margin")}}), on peut indiquer plusieurs décalages de façon synthétique :
+ +Ainsi, la règle écrite ci-avant peut-être formulée :
+ +.shape {
+ float: left;
+ shape-outside: inset(20px 10px round 10px);
+}
+
+Dans l'exemple qui suit, on a une forme inset() qu'on décale au-delà de l'élément flottant. Vous pouvez éditer l'exemple afin d'observer l'effet des différentes valeurs de décalages.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/inset.html", '100%', 800)}}
+ +Vous pouvez également ajouter une valeur pour la boîte de référence. Dans l'exemple suivant, vous pouvez modifier margin-box afin d'utiliser border-box, padding-box ou content-box pour observer la façon dont la boîte de référence modifie l'origine des coordonnées utilisées pour les décalages.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/inset-box.html", '100%', 800)}}
+ +circle()La valeur circle() peut être utilisée pour shape-outside et prend jusqu'à deux argument. Le premier de ces arguments correspond à shape-radius.
La fonction circle() et la fonction ellipse(), pour shape-outside, peuvent utiliser cet argument <shape-radius>. Ce dernier peut être une longueur ou un pourcentage mais également l'un des mots-clés closest-side ou farthest-side.
Le mot-clé closest-side utilise la longueur depuis le centre de la forme jusqu'au côté le plus proche de la boîte de référence. Pour les cercles, c'est le côté le plus proche dans n'importe quelle dimension. Pour les ellipses, c'est le côté le plus proche selon l'axe du rayon de l'ellipse.
Le mot-clé farthest-side utilise la longueur depuis le centre de la forme jusqu'au côté le plus éloigné de la boîte de référence. Pour les cercles, c'est le côté le plus éloigné, quelle que soit la dimension. Pour les ellipses, c'est le côté le plus éloigné selon l'axe du rayon.
Le deuxième argument est une position dont la valeur par défaut est center. Toutefois, n'importe quelle position valide peut être utilisée afin d'indiquer le centre du cercle.
Pour résumer, le cercle accepte un rayon qui peut être une longueur, un pourcentage ou le mot-clé closest-side ou farthest-side, optionnellement suivi par le mot-clé at suivi par une position.
Dans l'exemple qui suit, on crée un cercle sur un objet de 100 pixels de large avec une marge de 20 pixels. On a donc une largeur totale de la boîte de référence de 140 pixels. On indique une valeur de 50% pour shape-radius, ce qui crée donc un cercle de 70 pixels de rayon avec une position fixée à 30%.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/circle.html", '100%', 800)}}
+ +Dans cet exemple, vous pouvez augmenter ou réduire le rayon pour adapter la taille du cercle ou déplacer le cercle via la position. Vous pouvez aussi modifier la boîte de référence.
+ +Ajoutons un autre exemple, en utilisant les mots-clés top left pour indiquer la position, on peut créer une forme en quart de cercle pour le coin supérieur gauche de la page. L'exemple qui suit illustre comment créer un quart de cercle avec du texte qui est écrit autour.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/circle-generated.html", '100%', 700)}}
+ +Lorsqu'on a décrit les boîtes de référence ci-avant, on a vu que la boîte de marge pourra rogner la forme. Pour observer cet effet, on peut déplacer le centre du cercle vers le contenu en utilisant la valeur 60% pour la position. Le centre du cercle est alors plus près du contenu et la forme du cercle pourrait dépasser la boîte de marge. La forme est donc rognée et on voit alors un aplat.
+ +img {
+ float: left;
+ shape-outside: circle(50% at 60%);
+}
+
+
+
ellipse()Une ellipse peut être vue comme un cercle aplati. De ce point de vu ellipse() fonctionne de façon analogue à circle() mais il est nécessaire d'indiquer deux rayons : un rayon horizontal x et un rayon vertical y (dans cet ordre).
Ces rayons peuvent être suivis par une position qui permet, comme avec circle(), de déplacer le centre de l'ellipse. Dans l'exemple qui suit, on dessine une ellipse avec un rayon horizontal de 40%, un rayon vertical de 50% et une position à gauche. Cela signifie que le centre de l'ellipse sera situé sur le bord gauche et on aura donc une demi-ellipse autour de laquelle s'écoulera le texte. N'hésitez pas à modifier ces valeurs pour voir l'impact sur l'exemple.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/ellipse.html", '100%', 800)}}
+ +Les mots-clés closest-side et farthest-side permettent de créer rapidmeent une ellipse en fonction de la taille de la boîte de référence de l'élément flottant.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/ellipse-keywords.html", '100%', 800)}}
+ +polygon()La forme simple qui permet de créer une grande variété de formes est polygon(). Cette forme prend comme arguments trois ou plusieurs paires de valeurs qui correspondent aux coordonnées dessinées dans la boîte de référence. Attention, les coordonnées doivent au moins former un triangle.
Dans l'exemple qui suit, on crée une forme avec polygon() pour que le texte s'écoule autour. N'hésitez pas à modifier les valeurs pour visualiser les impacts.
{{EmbedGHLiveSample("css-examples/shapes/basic-shape/polygon.html", '100%', 800)}}
+ +L'inspecteur de formes Firefox s'avère très utile pour créer une forme de polygone. La capture d'écran qui suit illustre la forme dessinée dans l'outil.
+ +
Une autre ressource qui peut s'avérer utile sur ces sujets est Clippy : cet outil permet de créer des formes pour clip-path. Or, les formes utilisées pour clip-path sont les mêmes que pour les formes simples.
Une méthode permettant de créer des formes consiste à utiliser les valeurs provenant du modèle de boîte CSS. Dans cet article, nous verrons comment les utiliser.
- -Les valeurs de boîte qui sont autorisées pour les formes sont :
- -content-boxpadding-boxborder-boxmargin-boxLes valeurs border-radius sont également prises en charge et on peut donc avoir une forme qui possède une bordure arrondie.
Les valeurs énumérées ci-avant correspondent aux différentes boîtes du modèle de boîte CSS. En CSS, une boîte possède un contenu (content), du remplissage (padding), une bordure (border) ainsi qu'une marge (margin).
- -
En utilisant une de ces valeurs, il est possible de suivre le contour d'une de ces zones. Dans les exemples qui suivent, on utilise un élément qui possède du remplissage, une bordure et une marge afin d'observer l'impact de ces différentes valeurs pour la définition d'une forme et le comportement du contenu alentour.
- -margin-boxLa valeur margin-box correspond à la forme de la boîte de marge et suit le bord extérieur de la marge en prenant en compte les coins arrondis de la forme si {{cssxref("border-radius")}} a été utilisé sur l'élément.
Dans l'exemple suivant, on a un élément circulaire mauve qui est un élément {{htmlelement("div")}} avec une hauteur, une largeur et une couleur d'arrière-plan. La propriété border-radius a été utilisée afin de créer le cercle avec border-radius: 50%. L'élément ayant une marge, on peut voir le contenu évoluer autour de cette forme circulaire en prenant la marge en compte.
{{EmbedGHLiveSample("css-examples/shapes/box/margin-box.html", '100%', 800)}}
- -border-boxLa valeur border-box correspond à la forme définie par le bord extérieur de la bordure. La forme épouse la bordure et les éventuels arrondis qui lui sont appliqués. Un élément possède toujours une bordure même si {{cssxref("border")}} n'a pas explicitement été utilisé. Si c'est le cas, border-box sera équivalent à padding-box et la forme suivra le bord extérieur de la boîte de remplissage.
Avec l'exemple qui suit, on peut voir que le texte suit désormais les lignes créées par la bordure. Vous pouvez modifier la taille de cette bordure pour voir le déplacement du contenu autour.
- -{{EmbedGHLiveSample("css-examples/shapes/box/border-box.html", '100%', 800)}}
- -padding-boxLa valeur padding-box correspond à la forme définie par le bord extérieur de la boîte de remplissage (padding). La forme suit les règles d'arrondies appliquées à la bordure. Si aucun remplissage n'est appliqué, padding-box sera équivalent à content-box.
{{EmbedGHLiveSample("css-examples/shapes/box/padding-box.html", '100%', 800)}}
- -content-boxLa valeur content-box correspond à la forme définie par le bord extérieur de la boîte de contenu. Chaque coin possède un rayon de courbure qui est le maximum entre 0 et border-radius − border-width − padding. Cela signifie qu'il est impossible d'avoir une valeur négative pour cette boîte.
{{EmbedGHLiveSample("css-examples/shapes/box/content-box.html", '100%', 800)}}
- -Note : Pour en savoir plus sur le modèle de boîte CSS, voir cet article.
-Les valeurs correspondant aux boîtes permettent de créer des formes simplement. Toutefois, cela ne fonctionne que pour des formes simples, définies en partie avec la propriété border-radius. Les exemples ci-avant montrent un tel cas d'utilisation (on crée une forme circulaire grâce à cette propriété).
Malgré cela, il est possible de créer des effets intéressants en n'utilisant que cette technique. Pour ce dernier exemple, on a deux éléments qui flottent à droite et à gauche et on leur affecte une valeur border-radius de 100% dans la direction la plus proche du texte.
{{EmbedGHLiveSample("css-examples/shapes/box/bottom-margin-box.html", '100%', 800)}}
- -Pour obtenir des formes plus complexes, il faudra utiliser les valeurs de type <basic-shape> (les formes simples) ou définir une forme à partir d'une image, tel que nous le verrons dans les autres guides de cette section.
Une méthode permettant de créer des formes consiste à utiliser les valeurs provenant du modèle de boîte CSS. Dans cet article, nous verrons comment les utiliser.
+ +Les valeurs de boîte qui sont autorisées pour les formes sont :
+ +content-boxpadding-boxborder-boxmargin-boxLes valeurs border-radius sont également prises en charge et on peut donc avoir une forme qui possède une bordure arrondie.
Les valeurs énumérées ci-avant correspondent aux différentes boîtes du modèle de boîte CSS. En CSS, une boîte possède un contenu (content), du remplissage (padding), une bordure (border) ainsi qu'une marge (margin).
+ +
En utilisant une de ces valeurs, il est possible de suivre le contour d'une de ces zones. Dans les exemples qui suivent, on utilise un élément qui possède du remplissage, une bordure et une marge afin d'observer l'impact de ces différentes valeurs pour la définition d'une forme et le comportement du contenu alentour.
+ +margin-boxLa valeur margin-box correspond à la forme de la boîte de marge et suit le bord extérieur de la marge en prenant en compte les coins arrondis de la forme si {{cssxref("border-radius")}} a été utilisé sur l'élément.
Dans l'exemple suivant, on a un élément circulaire mauve qui est un élément {{htmlelement("div")}} avec une hauteur, une largeur et une couleur d'arrière-plan. La propriété border-radius a été utilisée afin de créer le cercle avec border-radius: 50%. L'élément ayant une marge, on peut voir le contenu évoluer autour de cette forme circulaire en prenant la marge en compte.
{{EmbedGHLiveSample("css-examples/shapes/box/margin-box.html", '100%', 800)}}
+ +border-boxLa valeur border-box correspond à la forme définie par le bord extérieur de la bordure. La forme épouse la bordure et les éventuels arrondis qui lui sont appliqués. Un élément possède toujours une bordure même si {{cssxref("border")}} n'a pas explicitement été utilisé. Si c'est le cas, border-box sera équivalent à padding-box et la forme suivra le bord extérieur de la boîte de remplissage.
Avec l'exemple qui suit, on peut voir que le texte suit désormais les lignes créées par la bordure. Vous pouvez modifier la taille de cette bordure pour voir le déplacement du contenu autour.
+ +{{EmbedGHLiveSample("css-examples/shapes/box/border-box.html", '100%', 800)}}
+ +padding-boxLa valeur padding-box correspond à la forme définie par le bord extérieur de la boîte de remplissage (padding). La forme suit les règles d'arrondies appliquées à la bordure. Si aucun remplissage n'est appliqué, padding-box sera équivalent à content-box.
{{EmbedGHLiveSample("css-examples/shapes/box/padding-box.html", '100%', 800)}}
+ +content-boxLa valeur content-box correspond à la forme définie par le bord extérieur de la boîte de contenu. Chaque coin possède un rayon de courbure qui est le maximum entre 0 et border-radius − border-width − padding. Cela signifie qu'il est impossible d'avoir une valeur négative pour cette boîte.
{{EmbedGHLiveSample("css-examples/shapes/box/content-box.html", '100%', 800)}}
+ +Note : Pour en savoir plus sur le modèle de boîte CSS, voir cet article.
+Les valeurs correspondant aux boîtes permettent de créer des formes simplement. Toutefois, cela ne fonctionne que pour des formes simples, définies en partie avec la propriété border-radius. Les exemples ci-avant montrent un tel cas d'utilisation (on crée une forme circulaire grâce à cette propriété).
Malgré cela, il est possible de créer des effets intéressants en n'utilisant que cette technique. Pour ce dernier exemple, on a deux éléments qui flottent à droite et à gauche et on leur affecte une valeur border-radius de 100% dans la direction la plus proche du texte.
{{EmbedGHLiveSample("css-examples/shapes/box/bottom-margin-box.html", '100%', 800)}}
+ +Pour obtenir des formes plus complexes, il faudra utiliser les valeurs de type <basic-shape> (les formes simples) ou définir une forme à partir d'une image, tel que nous le verrons dans les autres guides de cette section.
CSS Shapes est un module de spécification CSS qui décrit les formes géométriques. Selon le niveau 1 de cette spécification, les formes CSS peuvent être appliquées aux éléments flottants. Cette spécification définit différentes façon permettant de définir la forme d'un élément flottant afin que les lignes « coulent » autour de la forme plutôt qu'autour du rectangle formé par la boîte de l'élément.
- -Dans l'exemple qui suit, on a une image qui flotte à gauche et la propriété shape-outside qui lui est appliquée vaut circle(50%). Ceci crée une forme circulaire autour de laquelle le contenu peut s'inscrire. Les boîtes des lignes pour le texte qui entourent l'image sont donc modifiées.
{{EmbedGHLiveSample("css-examples/shapes/overview/circle.html", '100%', 720)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Shapes")}} | -{{Spec2("CSS Shapes")}} | -Définition initiale. | -
CSS Shapes est un module de spécification CSS qui décrit les formes géométriques. Selon le niveau 1 de cette spécification, les formes CSS peuvent être appliquées aux éléments flottants. Cette spécification définit différentes façon permettant de définir la forme d'un élément flottant afin que les lignes « coulent » autour de la forme plutôt qu'autour du rectangle formé par la boîte de l'élément.
+ +Dans l'exemple qui suit, on a une image qui flotte à gauche et la propriété shape-outside qui lui est appliquée vaut circle(50%). Ceci crée une forme circulaire autour de laquelle le contenu peut s'inscrire. Les boîtes des lignes pour le texte qui entourent l'image sont donc modifiées.
{{EmbedGHLiveSample("css-examples/shapes/overview/circle.html", '100%', 720)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Shapes")}} | +{{Spec2("CSS Shapes")}} | +Définition initiale. | +
La spécification CSS Shapes Level 1 définit les formes géométriques en CSS. Pour ce module de niveau 1, ces formes s'appliquent aux éléments qui utilisent une disposition flottante. Dans cet article, nous verrons un aperçu de ce qu'il est possible de faire avec les formes en CSS.
- -Si on fait flotter un élément à gauche d'un texte, on verra le texte écrit autour de cet élément en suivant un contour rectangulaire. Si on applique une forme circulaire à cet élément, le texte suivra alors le contour du cercle.
- -Il existe différentes façons de créer des formes CSS et nous verrons, dans ces guides, leur fonctionnement et les cas d'utilisation.
- -La spécification définit trois nouvelles propriétés :
- -La propriété shape-outside permet de définir une forme. Cette propriété peut prendre différentes valeurs dont chacune définit une forme différente. Ces valeurs sont définies par le type de donnée {{cssxref("<basic-shape>")}}. Prenons un exemple simple pour commencer.
Dans l'exemple qui suit, on a une image qui flotte à gauche. Ensuite, on lui applique shape-outside avec la valeur circle(50%). Grâce à cette règle, le contenu épouse alors une forme circulaire plutôt que le rectangle qui était formé par la boîte de l'image.
{{EmbedGHLiveSample("css-examples/shapes/overview/circle.html", '100%', 720)}}
- -À l'heure actuelle, la spécification indique qu'un élément doit flotter si on veut lui appliquer <basic-shape>. De cette façon, l'amélioration progressive est rapidement obtenue car si le navigateur ne prend pas en charge les formes CSS, l'utilisateur verra le contenu épouser une forme rectangulaire (comme auparavant). Si le navigateur prend en charge les formes, la disposition visuelle sera améliorée.
La valeur circle(50%) est une exemple de forme simple. La spécification fournit quatre valeur de types <basic-shape> :
inset()circle()ellipse()polygon()Avec la valeur inset(), le texte environnant continue d'épouser une forme rectangulaire mais on peut décaler ce rectangle afin de rapprocher le texte de l'objet flottant par exemple.
Nous avons vu le fonctionnement de circle() dans l'exemple précédent : cette notation fonctionnelle permet de créer une forme circulaire. ellipse() est assez proche et permet de créer une ellipse (qu'on peut voir comme un cercle aplati). Si aucune de ces formes ne vous convient, vous pouvez utiliser polygon() afin de créer un polygone correspondant à une forme complexe.
Dans le guide sur les formes simples, nous verrons comment créer et exploiter ces formes.
- -Les formes sont créées sur une boîte donnée. Aussi, on peut créer une boîte par rapport à chacune des boîtes du modèle de boîte et utiliser les valeurs :
- -border-boxpadding-boxcontent-boxmargin-boxDans l'exemple qui suit, vous pouvez modifier la valeur border-box afin d'utiliser une autre valeur et observer comment se déplace la forme par rapport à la boîte.
{{EmbedGHLiveSample("css-examples/shapes/overview/box.html", '100%', 810)}}
- -Pour en savoir plus, voir le guide sur les formes et les boîtes.
- -Une autre méthode qui peut s'avérer utile consiste à générer une forme à partir d'une image et de son canal alpha : le texte épousera alors la forme non-transparente de l'image. On peut alors avoir un texte qui « s'écoule » dans une image ou autour. Cette méthode permet aussi d'avoir une forme plus complexe sans avoir à recourir à un polygone (il n'est pas nécessaire que l'image soit visible).
- -Attention, les images utilisées ainsi doivent être compatibles avec les règles CORS. Se n'est pass le cas, shape-outside se comportera comme si elle avait reçu la valeur none et il n'y aura alors aucune forme.
Dans l'exemple qui suit, on utilise une image avec une zone complètement transparente et on utilise une image comme valeur d'URL pour shape-outside. La forme ainsi créée utilise la zone opaque de l'image : la forme de la montgolfière.
{{EmbedGHLiveSample("css-examples/shapes/overview/image.html", '100%', 800)}}
- -shape-image-thresholdLa propriété shape-image-threshold permet d'ajuster le seuil de transparence utilisé pour créer une forme à partir d'une image. Si la valeur de shape-image-threshold est 0.0 (la valeur initiale), ce seront les parties totalement transparentes de l'image qui créeront la forme. Si la valeur 1.0, toutes les zones de l'image (y compris celles totalement opaques) seront utilisées pour la forme. Les valeurs intermédiaires permettent d'utiliser des zones partiellement transparentes pour définir la forme.
Dans l'exemple suivant, on utilise une image qui est un dégradé et qui permet de définir la forme. Vous pouvez modifier la valeur du seuil afin de faire évoluer la forme.
- -{{EmbedGHLiveSample("css-examples/shapes/overview/threshold.html", '100%', 820)}}
- -Dans l'article Créer des formes à partir d'images, nous verrons plus en détails le fonctionnement de ces propriétés.
- -shape-marginLa propriété {{cssxref("shape-margin")}} ajoute une marge à shape-outside. Cela permet d'écarter le contenu de la forme.
Dans l'exemple qui suit, on a une forme simple sur laquelle on ajoute shape-margin. Vous pouvez modifier la valeur de cette propriété afin de rapprocher ou d'éloigner le texte de la forme.
{{EmbedGHLiveSample("css-examples/shapes/overview/shape-margin.html", '100%', 800)}}
- -Dans les exemples qui précèdent, nous avons utilisé des images ou des éléments visibles afin de définir la forme. Autrement dit, la forme est visible sur la page. Il se peut également qu'on veuille que le texte suive une ligne invisible qui ne soit pas droite. On pourrait le faire avec une image ensuite rendue invisible mais on aurait alors des éléments redondants dans le document. Aussi, autant utiliser du contenu généré afin de strictement conserver la mise en forme dans la feuille CSS.
- -Dans l'exemple qui suit, on utilise du contenu généré afin d'inséer un élément avec une hauteur et une largeur de 150 pixels. On peut alors ensuite utiliser les formes simples, les boîtes de référence ou le canal alpha d'une image afin de créer une forme qu'épouserait le texte.
- -{{EmbedGHLiveSample("css-examples/shapes/overview/generated-content.html", '100%', 850)}}
- -clip-pathLes valeurs utilisées pour les formes simples et pour les boîtes de référence sont les mêmes que celles utilisées pour la propriété {{cssxref("clip-path")}}. Ainsi, si on souhaite créer une forme à partir d'une image et rogner une partie de cette image, on pourra utiliser les mêmes valeurs.
- -Ci-après, on a une image carrée avec un arrière-plan bleu. On a défini la forme avec shape-outside: ellipse(40% 50%); puis utilisé clip-path: ellipse(40% 50%); afin de rogner l'image pour suivre la forme.
{{EmbedGHLiveSample("css-examples/shapes/overview/clip-path.html", '100%', 800)}}
- -Avec la prise en charge des formes CSS, Firefox sort également une nouvelle fonctionnalités dans les outils de développement : l'éditeur de chemin pour les formes (Shape Path Editor). Cet outil permet d'inspecter les formes présentes sur la page et de modifier leurs valeurs à la volée. Si votre polygone n'a pas l'aspect escompté, vous pouvez le modifier via l'éditeur puis recopier la nouvelle valeur dans votre fichier CSS.
- -L'éditeur de chemin pour les formes sera activé par défaut avec Firefox 60 pour les formes générées grâce à clip-path. Vous pouvez également l'utiliser afin d'éditer les formes générées grâce à shape-outside à condition d'avoir activé la préférence layout.css.shape-outside.enabled.
Dans sa version initiale, le module de spécification pour les formes contenait une propriété shape-inside afin de créer des formes à l'intérieur d'un élément. Cette propriété, ainsi que la possibilité de créer des formes sur des éléments non-flottants, a été repoussée à la spécification de niveau 2. La propriété shape-inside était initialement décrite dans la spécification de niveau 1 et vous pouvez donc trouver certains tutoriels qui détaillent ces deux propriétés.
La spécification CSS Shapes Level 1 définit les formes géométriques en CSS. Pour ce module de niveau 1, ces formes s'appliquent aux éléments qui utilisent une disposition flottante. Dans cet article, nous verrons un aperçu de ce qu'il est possible de faire avec les formes en CSS.
+ +Si on fait flotter un élément à gauche d'un texte, on verra le texte écrit autour de cet élément en suivant un contour rectangulaire. Si on applique une forme circulaire à cet élément, le texte suivra alors le contour du cercle.
+ +Il existe différentes façons de créer des formes CSS et nous verrons, dans ces guides, leur fonctionnement et les cas d'utilisation.
+ +La spécification définit trois nouvelles propriétés :
+ +La propriété shape-outside permet de définir une forme. Cette propriété peut prendre différentes valeurs dont chacune définit une forme différente. Ces valeurs sont définies par le type de donnée {{cssxref("<basic-shape>")}}. Prenons un exemple simple pour commencer.
Dans l'exemple qui suit, on a une image qui flotte à gauche. Ensuite, on lui applique shape-outside avec la valeur circle(50%). Grâce à cette règle, le contenu épouse alors une forme circulaire plutôt que le rectangle qui était formé par la boîte de l'image.
{{EmbedGHLiveSample("css-examples/shapes/overview/circle.html", '100%', 720)}}
+ +À l'heure actuelle, la spécification indique qu'un élément doit flotter si on veut lui appliquer <basic-shape>. De cette façon, l'amélioration progressive est rapidement obtenue car si le navigateur ne prend pas en charge les formes CSS, l'utilisateur verra le contenu épouser une forme rectangulaire (comme auparavant). Si le navigateur prend en charge les formes, la disposition visuelle sera améliorée.
La valeur circle(50%) est une exemple de forme simple. La spécification fournit quatre valeur de types <basic-shape> :
inset()circle()ellipse()polygon()Avec la valeur inset(), le texte environnant continue d'épouser une forme rectangulaire mais on peut décaler ce rectangle afin de rapprocher le texte de l'objet flottant par exemple.
Nous avons vu le fonctionnement de circle() dans l'exemple précédent : cette notation fonctionnelle permet de créer une forme circulaire. ellipse() est assez proche et permet de créer une ellipse (qu'on peut voir comme un cercle aplati). Si aucune de ces formes ne vous convient, vous pouvez utiliser polygon() afin de créer un polygone correspondant à une forme complexe.
Dans le guide sur les formes simples, nous verrons comment créer et exploiter ces formes.
+ +Les formes sont créées sur une boîte donnée. Aussi, on peut créer une boîte par rapport à chacune des boîtes du modèle de boîte et utiliser les valeurs :
+ +border-boxpadding-boxcontent-boxmargin-boxDans l'exemple qui suit, vous pouvez modifier la valeur border-box afin d'utiliser une autre valeur et observer comment se déplace la forme par rapport à la boîte.
{{EmbedGHLiveSample("css-examples/shapes/overview/box.html", '100%', 810)}}
+ +Pour en savoir plus, voir le guide sur les formes et les boîtes.
+ +Une autre méthode qui peut s'avérer utile consiste à générer une forme à partir d'une image et de son canal alpha : le texte épousera alors la forme non-transparente de l'image. On peut alors avoir un texte qui « s'écoule » dans une image ou autour. Cette méthode permet aussi d'avoir une forme plus complexe sans avoir à recourir à un polygone (il n'est pas nécessaire que l'image soit visible).
+ +Attention, les images utilisées ainsi doivent être compatibles avec les règles CORS. Se n'est pass le cas, shape-outside se comportera comme si elle avait reçu la valeur none et il n'y aura alors aucune forme.
Dans l'exemple qui suit, on utilise une image avec une zone complètement transparente et on utilise une image comme valeur d'URL pour shape-outside. La forme ainsi créée utilise la zone opaque de l'image : la forme de la montgolfière.
{{EmbedGHLiveSample("css-examples/shapes/overview/image.html", '100%', 800)}}
+ +shape-image-thresholdLa propriété shape-image-threshold permet d'ajuster le seuil de transparence utilisé pour créer une forme à partir d'une image. Si la valeur de shape-image-threshold est 0.0 (la valeur initiale), ce seront les parties totalement transparentes de l'image qui créeront la forme. Si la valeur 1.0, toutes les zones de l'image (y compris celles totalement opaques) seront utilisées pour la forme. Les valeurs intermédiaires permettent d'utiliser des zones partiellement transparentes pour définir la forme.
Dans l'exemple suivant, on utilise une image qui est un dégradé et qui permet de définir la forme. Vous pouvez modifier la valeur du seuil afin de faire évoluer la forme.
+ +{{EmbedGHLiveSample("css-examples/shapes/overview/threshold.html", '100%', 820)}}
+ +Dans l'article Créer des formes à partir d'images, nous verrons plus en détails le fonctionnement de ces propriétés.
+ +shape-marginLa propriété {{cssxref("shape-margin")}} ajoute une marge à shape-outside. Cela permet d'écarter le contenu de la forme.
Dans l'exemple qui suit, on a une forme simple sur laquelle on ajoute shape-margin. Vous pouvez modifier la valeur de cette propriété afin de rapprocher ou d'éloigner le texte de la forme.
{{EmbedGHLiveSample("css-examples/shapes/overview/shape-margin.html", '100%', 800)}}
+ +Dans les exemples qui précèdent, nous avons utilisé des images ou des éléments visibles afin de définir la forme. Autrement dit, la forme est visible sur la page. Il se peut également qu'on veuille que le texte suive une ligne invisible qui ne soit pas droite. On pourrait le faire avec une image ensuite rendue invisible mais on aurait alors des éléments redondants dans le document. Aussi, autant utiliser du contenu généré afin de strictement conserver la mise en forme dans la feuille CSS.
+ +Dans l'exemple qui suit, on utilise du contenu généré afin d'inséer un élément avec une hauteur et une largeur de 150 pixels. On peut alors ensuite utiliser les formes simples, les boîtes de référence ou le canal alpha d'une image afin de créer une forme qu'épouserait le texte.
+ +{{EmbedGHLiveSample("css-examples/shapes/overview/generated-content.html", '100%', 850)}}
+ +clip-pathLes valeurs utilisées pour les formes simples et pour les boîtes de référence sont les mêmes que celles utilisées pour la propriété {{cssxref("clip-path")}}. Ainsi, si on souhaite créer une forme à partir d'une image et rogner une partie de cette image, on pourra utiliser les mêmes valeurs.
+ +Ci-après, on a une image carrée avec un arrière-plan bleu. On a défini la forme avec shape-outside: ellipse(40% 50%); puis utilisé clip-path: ellipse(40% 50%); afin de rogner l'image pour suivre la forme.
{{EmbedGHLiveSample("css-examples/shapes/overview/clip-path.html", '100%', 800)}}
+ +Avec la prise en charge des formes CSS, Firefox sort également une nouvelle fonctionnalités dans les outils de développement : l'éditeur de chemin pour les formes (Shape Path Editor). Cet outil permet d'inspecter les formes présentes sur la page et de modifier leurs valeurs à la volée. Si votre polygone n'a pas l'aspect escompté, vous pouvez le modifier via l'éditeur puis recopier la nouvelle valeur dans votre fichier CSS.
+ +L'éditeur de chemin pour les formes sera activé par défaut avec Firefox 60 pour les formes générées grâce à clip-path. Vous pouvez également l'utiliser afin d'éditer les formes générées grâce à shape-outside à condition d'avoir activé la préférence layout.css.shape-outside.enabled.
Dans sa version initiale, le module de spécification pour les formes contenait une propriété shape-inside afin de créer des formes à l'intérieur d'un élément. Cette propriété, ainsi que la possibilité de créer des formes sur des éléments non-flottants, a été repoussée à la spécification de niveau 2. La propriété shape-inside était initialement décrite dans la spécification de niveau 1 et vous pouvez donc trouver certains tutoriels qui détaillent ces deux propriétés.
Dans ce guide, nous allons voir comment créer une forme à partir d'une image, que ce soit un fichier avec un canal alpha ou un dégradé CSS. Grâce aux images, on peut suivre une forme complexe sans avoir à dessiner de polygone. On peut créer la forme à partir d'un éditeur graphique et utiliser le contour de cette image formé par la ligne des pixels moins opaques qu'un seuil donné.
- -Pour utiliser une image afin de créer une forme, il est nécessaire que cette image dispose d'un canal alpha, c'est-à-dire une zone qui n'est pas complètement opaque. La propriété {{cssxref("shape-image-threshold")}} est utilisée afin de fournir un seuil d'opacité. Les pixels qui sont plus opaques que cette valeur seront alors utilisés pour calculer la zone de la forme.
- -Dans l'exemple suivant, on utilise un image avec une étoile rouge complètement opaque entourée d'une zone complètement transparente. On fournit le chemin de l'image à {{cssxref("shape-outside")}} et le contenu environnant épouse alors la forme de l'image.
- -{{EmbedGHLiveSample("css-examples/shapes/image/simple-example.html", '100%', 800)}}
- -On peut utiliser {{cssxref("shape-margin")}} afin d'écarter le texte de la forme avec une certaine marge.
- -{{EmbedGHLiveSample("css-examples/shapes/image/margin.html", '100%', 800)}}
- -Attention, les images utilisées pour créer les formes doivent être compatibles pour le CORS. Une image hébergée sur le même domaine que le site devrait fonctionner. En revanche, si les images sont hébergées sur un domaine différent (celui d'un CDN par exemple), il faudra s'assurer que les bons en-têtes HTTP sont fournis afin de construire des images. À cause de ce prérequis, si vous testez un site en local avec vos fichiers, les formes CSS à partir d'images ne fonctionneront pas si vous ne mettez pas en place de serveur web local.
- -Les outils de développement aident à déterminer si le problème vient du CORS. Dans Chrome, les problèmes CORS seront écrits dans la console. Dans Firefox, si vous inspectez la propriété en question, vous verrez une alerte indiquant que l'image ne peut pas être chargée. Dans ce cas, il est probable que l'image ne puisse être utilisée comme forme à cause du CORS.
- -La propriété {{cssxref("shape-image-threshold")}} permet de créer des formes à partir d'une image en utilisant des zones qui ne sont pas totalement transparentes. Si shape-image-threshold vaut 0.0 (qui correspond à la valeur initiale), ce ne sont que les zones totalement transparentes qui seront utilisées pour fabriquer la forme. Si la valeur 1.0 est utilisée, le seuil correspondra aux zones totalement opaques et toute l'image seront alors utilisée. Les valeurs intermédiaires permettent d'utiliser des zones partiellement transparentes afin de construire la forme.
Dans l'exemple qui suit, on utilise une image semblable à celle du premier exemple. Toutefois, pour cette image, l'arrière-plan de l'étoile n'est pas totalement transparent : il a une opacité de 20% (créée avec un éditeur graphique). Si on utilise shape-image-threshold avec la valeur 0.3, on aura donc la forme de l'étoile mais si on utilise une valeur inférieure à 0.2, on aura une forme rectangulaire.
{{EmbedGHLiveSample("css-examples/shapes/image/threshold.html", '100%', 800)}}
- -Dans l'exemple ci-avant, on utilise une image pour {{cssxref("shape-outside")}} et on utilise également cette image dans le document. La plupart des exemples et démos utilisent ce procéder car cela aide à illustrer la forme suivie par le texte environnant. Cependant, il faut comprendre que la propriété shape-outside ne repose pas sur l'image utilisée dans le document et qu'il n'est pas nécessaire d'afficher une image dans le document afin de construire une forme à partir d'une image.
Il est nécessaire d'avoir un contenu flottant pour créer une forme mais ce contenu peut tout à fait être généré grâce à la feuille de style. Dans l'exemple qui suit, on utilise un contenu généré qui est placé dans une disposition flottante, avec une image d'étoile pour créer la forme mais cette image n'est pas affichée sur la page.
- -{{EmbedGHLiveSample("css-examples/shapes/image/generated-content.html", '100%', 800)}}
- -En CSS, un dégradé est une image. On peut donc utiliser un dégradé afin de générer une forme.
- -Dans le prochain exemple, on utilise un contenu généré flottant dont l'image d'arrière-plan est un dégradé linéaire. On utilise la même valeur pour {{cssxref("shape-outside")}}. Le dégradé linéaire évolue du mauve vers le transparent. En modifiant la valeur de {{cssxref("shape-image-threshold")}}, on peut donc sélectionner le niveau de transparence nécessaire à la création de la forme. N'hésitez pas à modifier la valeur du seuil dans l'exemple suivant afin de voir le déplacement du contour en fonction du niveau de dégradé.
- -Vous pouvez également essayer de complètement retirer l'image d'arrière-plan afin d'utiliser uniquement le dégradé afin de créer la forme et ne pas l'afficher sur l'image.
- -{{EmbedGHLiveSample("css-examples/shapes/image/gradient.html", '100%', 800)}}
- -Dans l'exemple qui suit, on utilise un dégradé radial avec une ellipse et on utilise les zones transparentes du dégradé afin de créer la forme.
- -{{EmbedGHLiveSample("css-examples/shapes/image/radial-gradient.html", '100%', 800)}}
- -Vous pouvez éditer ces exemples interactifs afin de voir l'évolution de la forme en fonction des modifications.
diff --git a/files/fr/web/css/css_shapes/shapes_from_images/index.md b/files/fr/web/css/css_shapes/shapes_from_images/index.md new file mode 100644 index 0000000000..bbb1f822f7 --- /dev/null +++ b/files/fr/web/css/css_shapes/shapes_from_images/index.md @@ -0,0 +1,65 @@ +--- +title: Générer des formes avec des images +slug: Web/CSS/CSS_Shapes/Shapes_From_Images +tags: + - CSS + - Formes CSS + - Guide +translation_of: Web/CSS/CSS_Shapes/Shapes_From_Images +original_slug: Web/CSS/CSS_Shapes/Générer_formes_images +--- +Dans ce guide, nous allons voir comment créer une forme à partir d'une image, que ce soit un fichier avec un canal alpha ou un dégradé CSS. Grâce aux images, on peut suivre une forme complexe sans avoir à dessiner de polygone. On peut créer la forme à partir d'un éditeur graphique et utiliser le contour de cette image formé par la ligne des pixels moins opaques qu'un seuil donné.
+ +Pour utiliser une image afin de créer une forme, il est nécessaire que cette image dispose d'un canal alpha, c'est-à-dire une zone qui n'est pas complètement opaque. La propriété {{cssxref("shape-image-threshold")}} est utilisée afin de fournir un seuil d'opacité. Les pixels qui sont plus opaques que cette valeur seront alors utilisés pour calculer la zone de la forme.
+ +Dans l'exemple suivant, on utilise un image avec une étoile rouge complètement opaque entourée d'une zone complètement transparente. On fournit le chemin de l'image à {{cssxref("shape-outside")}} et le contenu environnant épouse alors la forme de l'image.
+ +{{EmbedGHLiveSample("css-examples/shapes/image/simple-example.html", '100%', 800)}}
+ +On peut utiliser {{cssxref("shape-margin")}} afin d'écarter le texte de la forme avec une certaine marge.
+ +{{EmbedGHLiveSample("css-examples/shapes/image/margin.html", '100%', 800)}}
+ +Attention, les images utilisées pour créer les formes doivent être compatibles pour le CORS. Une image hébergée sur le même domaine que le site devrait fonctionner. En revanche, si les images sont hébergées sur un domaine différent (celui d'un CDN par exemple), il faudra s'assurer que les bons en-têtes HTTP sont fournis afin de construire des images. À cause de ce prérequis, si vous testez un site en local avec vos fichiers, les formes CSS à partir d'images ne fonctionneront pas si vous ne mettez pas en place de serveur web local.
+ +Les outils de développement aident à déterminer si le problème vient du CORS. Dans Chrome, les problèmes CORS seront écrits dans la console. Dans Firefox, si vous inspectez la propriété en question, vous verrez une alerte indiquant que l'image ne peut pas être chargée. Dans ce cas, il est probable que l'image ne puisse être utilisée comme forme à cause du CORS.
+ +La propriété {{cssxref("shape-image-threshold")}} permet de créer des formes à partir d'une image en utilisant des zones qui ne sont pas totalement transparentes. Si shape-image-threshold vaut 0.0 (qui correspond à la valeur initiale), ce ne sont que les zones totalement transparentes qui seront utilisées pour fabriquer la forme. Si la valeur 1.0 est utilisée, le seuil correspondra aux zones totalement opaques et toute l'image seront alors utilisée. Les valeurs intermédiaires permettent d'utiliser des zones partiellement transparentes afin de construire la forme.
Dans l'exemple qui suit, on utilise une image semblable à celle du premier exemple. Toutefois, pour cette image, l'arrière-plan de l'étoile n'est pas totalement transparent : il a une opacité de 20% (créée avec un éditeur graphique). Si on utilise shape-image-threshold avec la valeur 0.3, on aura donc la forme de l'étoile mais si on utilise une valeur inférieure à 0.2, on aura une forme rectangulaire.
{{EmbedGHLiveSample("css-examples/shapes/image/threshold.html", '100%', 800)}}
+ +Dans l'exemple ci-avant, on utilise une image pour {{cssxref("shape-outside")}} et on utilise également cette image dans le document. La plupart des exemples et démos utilisent ce procéder car cela aide à illustrer la forme suivie par le texte environnant. Cependant, il faut comprendre que la propriété shape-outside ne repose pas sur l'image utilisée dans le document et qu'il n'est pas nécessaire d'afficher une image dans le document afin de construire une forme à partir d'une image.
Il est nécessaire d'avoir un contenu flottant pour créer une forme mais ce contenu peut tout à fait être généré grâce à la feuille de style. Dans l'exemple qui suit, on utilise un contenu généré qui est placé dans une disposition flottante, avec une image d'étoile pour créer la forme mais cette image n'est pas affichée sur la page.
+ +{{EmbedGHLiveSample("css-examples/shapes/image/generated-content.html", '100%', 800)}}
+ +En CSS, un dégradé est une image. On peut donc utiliser un dégradé afin de générer une forme.
+ +Dans le prochain exemple, on utilise un contenu généré flottant dont l'image d'arrière-plan est un dégradé linéaire. On utilise la même valeur pour {{cssxref("shape-outside")}}. Le dégradé linéaire évolue du mauve vers le transparent. En modifiant la valeur de {{cssxref("shape-image-threshold")}}, on peut donc sélectionner le niveau de transparence nécessaire à la création de la forme. N'hésitez pas à modifier la valeur du seuil dans l'exemple suivant afin de voir le déplacement du contour en fonction du niveau de dégradé.
+ +Vous pouvez également essayer de complètement retirer l'image d'arrière-plan afin d'utiliser uniquement le dégradé afin de créer la forme et ne pas l'afficher sur l'image.
+ +{{EmbedGHLiveSample("css-examples/shapes/image/gradient.html", '100%', 800)}}
+ +Dans l'exemple qui suit, on utilise un dégradé radial avec une ellipse et on utilise les zones transparentes du dégradé afin de créer la forme.
+ +{{EmbedGHLiveSample("css-examples/shapes/image/radial-gradient.html", '100%', 800)}}
+ +Vous pouvez éditer ces exemples interactifs afin de voir l'évolution de la forme en fonction des modifications.
diff --git a/files/fr/web/css/css_table/index.html b/files/fr/web/css/css_table/index.html deleted file mode 100644 index 7b01e5fe58..0000000000 --- a/files/fr/web/css/css_table/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: CSS Table -slug: Web/CSS/CSS_Table -tags: - - Aperçu - - CSS - - Reference -translation_of: Web/CSS/CSS_Table ---- -CSS Table (ou module des tableaux CSS) est un module CSS qui définit comment disposer les données de tableaux.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS2.1", "tables.html")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
CSS Table (ou module des tableaux CSS) est un module CSS qui définit comment disposer les données de tableaux.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS2.1", "tables.html")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
CSS Text (ou module texte de CSS) est un module CSS qui définit comment effectuer des manipulations de texte, comme les coupures de mots, la justification et l'alignement, la gestion des espaces et les transformations de texte.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties')}} | -{{Spec2('CSS Logical Properties')}} | -Actualise certaines propriétés pour être indépendant de la direction du texte. | -
| {{SpecName('CSS3 Text')}} | -{{Spec2('CSS3 Text')}} | -- |
| {{SpecName('CSS2.1', 'text.html')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
CSS Text (ou module texte de CSS) est un module CSS qui définit comment effectuer des manipulations de texte, comme les coupures de mots, la justification et l'alignement, la gestion des espaces et les transformations de texte.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties')}} | +{{Spec2('CSS Logical Properties')}} | +Actualise certaines propriétés pour être indépendant de la direction du texte. | +
| {{SpecName('CSS3 Text')}} | +{{Spec2('CSS3 Text')}} | ++ |
| {{SpecName('CSS2.1', 'text.html')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
CSS Text Decoration (ou module des décorations textuelles CSS) est un module CSS qui définit les caractéristiques relatives à la décoration du texte, comme le soulignage, les ombres et les marques d'emphase.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration')}} | -{{Spec2('CSS3 Text Decoration')}} | -- |
| {{SpecName('CSS2.1', 'text.html')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
CSS Text Decoration (ou module des décorations textuelles CSS) est un module CSS qui définit les caractéristiques relatives à la décoration du texte, comme le soulignage, les ombres et les marques d'emphase.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration')}} | +{{Spec2('CSS3 Text Decoration')}} | ++ |
| {{SpecName('CSS2.1', 'text.html')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
Le module CSS Transforms (ou module des transformations CSS) est un module de la spécification CSS qui définit comment les éléments mis en forme avec CSS peuvent être transformés dans un espace à deux ou à trois dimensions.
- -{{cssxref("<transform-function>")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Transforms')}} | -{{Spec2('CSS3 Transforms')}} | -Définition initiale. | -
Le module CSS Transforms (ou module des transformations CSS) est un module de la spécification CSS qui définit comment les éléments mis en forme avec CSS peuvent être transformés dans un espace à deux ou à trois dimensions.
+ +{{cssxref("<transform-function>")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Transforms')}} | +{{Spec2('CSS3 Transforms')}} | +Définition initiale. | +
En modifiant l'espace des coordonnées, les transformations CSS permettent de changer la position d'un contenu affecté sans perturber le flux normal. Elles sont implémentées en utilisant un ensemble de propriétés CSS qui vous permettre d'appliquer des transformations affines aux éléments HTML. Ces transformations incluent la rotation, l'inclinaison et la translation à la fois dans le plan ou dans un espace 3D.
- -Attention : Seuls les éléments positionnés selon le modèle de boîtes peuvent être transformés. Pour simplifier, on peut se souvenir que tout élément avec display: block est positionné selon le modèle de boîtes.
Deux propriétés majeures sont utilisées pour définir les transformations CSS : {{cssxref("transform")}} et {{cssxref("transform-origin")}}.
- -Voici une version originale du logo MDN :
- -
Ici, on le tourne de 90 degrés depuis le coin inférieur gauche :
- -<img style="transform: rotate(90deg); - transform-origin: bottom left;" - src="screen_shot_2016-02-16_at_15.53.54.png"> -- -
{{EmbedLiveSample('Rotation','auto',240)}}
- -Ici, on applique une distorsion de 10 degrés et on translate l'image de 150 pixels sur l'axe des abscisses :
- -<img style="transform: skewx(10deg) translatex(150px); - transform-origin: bottom left;" - src="screen_shot_2016-02-16_at_15.53.54.png"> -- -
{{EmbedLiveSample('Distorsion_et_translation')}}
- -Réaliser des transformations CSS dans l'espace est un petit peu plus complexe. Il faut d'abord définir l'espace 3D en lui donnant une perspective, puis il faut configurer le comportement des éléments 2D dans cet espace.
- -Le premier élément à définir est la perspective. La perspective est ce qui donne l'impression de troisième dimension. Plus les éléments sont loin de l'observateur, plus ils seront petits.
- -{{page("/fr/docs/Web/CSS/perspective", "Trois cubes", 0, 0, 3)}}
- -Le deuxième élément à définir est la position de l'observateur grâce à la propriété {{ cssxref("perspective-origin") }}. Par défaut, la perspective est centrée sur l'observateur.
- -{{page("/fr/docs/Web/CSS/perspective-origin", "Cubes avec des valeurs communes pour perspective-origin", 0, 0, 3)}}
- -deviceorientation avec les transformations 3DEn modifiant l'espace des coordonnées, les transformations CSS permettent de changer la position d'un contenu affecté sans perturber le flux normal. Elles sont implémentées en utilisant un ensemble de propriétés CSS qui vous permettre d'appliquer des transformations affines aux éléments HTML. Ces transformations incluent la rotation, l'inclinaison et la translation à la fois dans le plan ou dans un espace 3D.
+ +Attention : Seuls les éléments positionnés selon le modèle de boîtes peuvent être transformés. Pour simplifier, on peut se souvenir que tout élément avec display: block est positionné selon le modèle de boîtes.
Deux propriétés majeures sont utilisées pour définir les transformations CSS : {{cssxref("transform")}} et {{cssxref("transform-origin")}}.
+ +Voici une version originale du logo MDN :
+ +
Ici, on le tourne de 90 degrés depuis le coin inférieur gauche :
+ +<img style="transform: rotate(90deg); + transform-origin: bottom left;" + src="screen_shot_2016-02-16_at_15.53.54.png"> ++ +
{{EmbedLiveSample('Rotation','auto',240)}}
+ +Ici, on applique une distorsion de 10 degrés et on translate l'image de 150 pixels sur l'axe des abscisses :
+ +<img style="transform: skewx(10deg) translatex(150px); + transform-origin: bottom left;" + src="screen_shot_2016-02-16_at_15.53.54.png"> ++ +
{{EmbedLiveSample('Distorsion_et_translation')}}
+ +Réaliser des transformations CSS dans l'espace est un petit peu plus complexe. Il faut d'abord définir l'espace 3D en lui donnant une perspective, puis il faut configurer le comportement des éléments 2D dans cet espace.
+ +Le premier élément à définir est la perspective. La perspective est ce qui donne l'impression de troisième dimension. Plus les éléments sont loin de l'observateur, plus ils seront petits.
+ +{{page("/fr/docs/Web/CSS/perspective", "Trois cubes", 0, 0, 3)}}
+ +Le deuxième élément à définir est la position de l'observateur grâce à la propriété {{ cssxref("perspective-origin") }}. Par défaut, la perspective est centrée sur l'observateur.
+ +{{page("/fr/docs/Web/CSS/perspective-origin", "Cubes avec des valeurs communes pour perspective-origin", 0, 0, 3)}}
+ +deviceorientation avec les transformations 3DLes transitions CSS permettent de créer des transitions harmonieuses entre les valeurs des propriétés CSS concernées. Elles permettent aussi de définir leur évolution (accélération/décélération), via les fonctions de minutage.
- -| Spécification | -État | -Commentaire | -
|---|---|---|
| {{SpecName('CSS3 Transitions')}} | -{{Spec2('CSS3 Transitions')}} | -Définition initiale. | -
Les transitions CSS permettent de créer des transitions harmonieuses entre les valeurs des propriétés CSS concernées. Elles permettent aussi de définir leur évolution (accélération/décélération), via les fonctions de minutage.
+ +| Spécification | +État | +Commentaire | +
|---|---|---|
| {{SpecName('CSS3 Transitions')}} | +{{Spec2('CSS3 Transitions')}} | +Définition initiale. | +
Les transitions CSS permettent de contrôler la vitesse d'animation lorsque les propriétés CSS sont modifiées. Plutôt que le changement soit immédiat, on peut l'étaler sur une certaine période. Ainsi, si on souhaite passer un élément de blanc à noir, on pourra utiliser les transitions CSS afin que cette modification soit effectuée progressivement, selon une courbe d'accélération donnée.
- -Les animations qui utilisent des transitions entre deux états sont souvent appelées transitions implicites car l'état initial et l'état final sont définis implicitement par le navigateur.
- -
Les transitions CSS vous permettent de choisir :
- -On peut définir les propriétés qu'on souhaite animer et la façon dont on souhaite les animer. Cela permet de créer des transitions complexes. Toutefois, toutes les propriétés ne peuvent pas être animées et la liste des propriétés concernées est limitée.
- -Note : La gestion de la valeur auto représente un cas complexe. La spécification requiert de ne pas animer une telle valeur. Certains navigateurs dont ceux basés sur Gecko respectent cette règle mais d'autres comme WebKit sont moins stricts. Attention donc lors de l'utilisation des animations avec auto.
Note : Attention lorsqu'on manipule des transitions directement après avoir ajouté un élément via .appendChild() ou en modiant display: none;. Cela sera compris comme si l'état initial n'avait jamais eu lieu et que l'élément avait toujours été dans son état final. Pour contourner ce problème, on peut appliquer window.setTimeout() pendant quelques millisecondes avant de modifier la propriété CSS sur laquelle on souhaite appliquer une transition.
Les transitions CSS sont généralement contrôlées grâce à la propriété raccourcie {{cssxref("transition")}}. Les différents composants d'une transition CSS peuvent être décrits dans le détail grâce aux propriétés détaillées suivantes :
- -Note :Dans les exemples ci-après, l'effet de répétition est uniquement utilisé à des fins de visualisation. Si vous souhaitez obtenir des effets visuels qui se répètent, il faudra utiliser la propriété {{cssxref("animation")}}.
-La syntaxe de la propriété raccourcie {{cssxref("transition")}} est :
- -div {
- transition: <property> <duration> <timing-function> <delay>;
-}
-
-Avec cette feuille de style, on opère une transition CSS sur la taille de police de quatre secondes après deux secondes écoulées lorsque l'utilisateur passe la souris sur l'élément :
- -#delay {
- font-size: 14px;
- transition-property: font-size;
- transition-duration: 4s;
- transition-delay: 2s;
-}
-
-#delay:hover {
- font-size: 36px;
-}
-
-.box {
- border-style: solid;
- border-width: 1px;
- display: block;
- width: 100px;
- height: 100px;
- background-color: #0000FF;
- transition: width 2s, height 2s, background-color 2s, transform 2s;
-}
-
-.box:hover {
- background-color: #FFCCCC;
- width: 200px;
- height: 200px;
- transform: rotate(180deg);
-}
-
-
-{{EmbedLiveSample('Exemple_avec_plusieurs_propriétés_animées', 600, 300)}}
- - -.box {
- border-style: solid;
- border-width: 1px;
- display: block;
- width: 100px;
- height: 100px;
- background-color: #0000FF;
- transition: width 2s, height 2s, background-color 2s, transform 2s;
-}
-
-.box:hover {
- background-color: #FFCCCC;
- width: 200px;
- height: 200px;
- transform: rotate(180deg);
-}
-
-
-<p>Cette boîte utilisera des transitions pour width, height, background-color, transform. - Survolez cette boîte pour voir l'effet.</p> -<div class="box"></div> -- -
{{EmbedLiveSample('Appliquer_une_transition_sur_plusieurs_propriétés', 600, 300)}}
- -Si la liste des valeurs pour une propriété est plus courte qu'une autre, les valeurs de la liste la plus courte seront répétées pour que la longueur réelle corresponde. Ainsi :
- -div {
- transition-property: opacity, left, top, height;
- transition-duration: 3s, 5s;
-}
-
-
-Sera équivalent à :
- -div {
- transition-property: opacity, left, top, height;
- transition-duration: 3s, 5s, 3s, 5s;
-}
-
-De même, si la liste est trop longue par rapport à {{cssxref("transition-property")}}, elle sera tronquée. Ainsi,
- -div {
- transition-property: opacity, left;
- transition-duration: 3s, 5s, 2s, 1s;
-}
-
-Sera équivalent à :
- -div {
- transition-property: opacity, left;
- transition-duration: 3s, 5s;
-}
-
-On utilise parfois CSS pour mettre en avant les éléments d'un menu lorsque l'utilisateur les survole avec sa souris. On peut facilement utiliser les transitions CSS pour améliorer l'effet obtenu.
- -Tout d'abord, on définit le menu en HTML :
- -<nav> - <a href="#">Accueil</a> - <a href="#">À propos</a> - <a href="#">Contact</a> - <a href="#">Liens</a> -</nav> -- -
On construit le CSS pour définir l'apparence du menu :
- -a {
- color: #fff;
- background-color: #333;
- transition: all 1s ease-out;
-}
-
-a:hover,
-a:focus {
- color: #333;
- background-color: #fff;
-}
-
-
-
-Ainsi, lorsque la souris survole l'élément, la couleur du texte et de l'arrière-plan change.
- -{{EmbedLiveSample("Utiliser_les_transitions_pour_accentuer_les_éléments_pour_un_menu","300","300")}}
- -Les transitions permettent de lisser les opérations effectuées avec JavaScript. Par exemple :
- -<p>Click anywhere to move the ball</p> -<div id="foo"></div> -- -
Avec JavaScript on peut ajouter un effet de mouvement sur la balle :
- -var f = document.getElementById('foo');
-document.addEventListener('click', function(ev){
- f.style.transform = 'translateY('+(ev.clientY-25)+'px)';
- f.style.transform += 'translateX('+(ev.clientX-25)+'px)';
-},false);
-
-
-Avec CSS, il suffit d'ajouter une transition à l'élément et chaque modification sera appliquée de façon régulière :
- -p {
- padding-left: 60px;
-}
-
-#foo {
- border-radius: 50px;
- width: 50px;
- height: 50px;
- background: #c00;
- position: absolute;
- top: 0;
- left: 0;
- transition: transform 1s;
-}
-
-
-{{JSFiddleEmbed("https://jsfiddle.net/9h261pzo/291/")}}
- -L'évènement {{event("transitionend")}} est déclenché lorsqu'une transition est terminée. C'est un objet {{domxref("TransitionEvent")}} qui possède deux propriétés supplémentaires qu'un {{domxref("Event")}} :
- -propertyNameelapsedTimeComme pour les différents évènements, on pourra utiliser {{domxref("eventtarget.addEventListener()")}}) pour « écouter » cet événement :
- -el.addEventListener("transitionend", updateTransition, true);
-
-
-Pour détecter le début d'une transition, on pourra utiliser l'évènement {{event("transitionrun")}} qui est déclenché avant tout retardement et l'évènement {{event("transitionstart")}} qui est déclenché après tout retardement :
- -el.addEventListener("transitionrun", signalStart, true);
-el.addEventListener("transitionstart", signalStart, true);
-
-Note : L'événement transitionend n'est pas déclenché si la transition est interrompue avant la fin de la transition si {{cssxref("display")}}: none ou si la valeur de la propriété est modifiée.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Transitions', '', '')}} | -{{Spec2('CSS3 Transitions')}} | -Définition initiale. | -
Les transitions CSS permettent de contrôler la vitesse d'animation lorsque les propriétés CSS sont modifiées. Plutôt que le changement soit immédiat, on peut l'étaler sur une certaine période. Ainsi, si on souhaite passer un élément de blanc à noir, on pourra utiliser les transitions CSS afin que cette modification soit effectuée progressivement, selon une courbe d'accélération donnée.
+ +Les animations qui utilisent des transitions entre deux états sont souvent appelées transitions implicites car l'état initial et l'état final sont définis implicitement par le navigateur.
+ +
Les transitions CSS vous permettent de choisir :
+ +On peut définir les propriétés qu'on souhaite animer et la façon dont on souhaite les animer. Cela permet de créer des transitions complexes. Toutefois, toutes les propriétés ne peuvent pas être animées et la liste des propriétés concernées est limitée.
+ +Note : La gestion de la valeur auto représente un cas complexe. La spécification requiert de ne pas animer une telle valeur. Certains navigateurs dont ceux basés sur Gecko respectent cette règle mais d'autres comme WebKit sont moins stricts. Attention donc lors de l'utilisation des animations avec auto.
Note : Attention lorsqu'on manipule des transitions directement après avoir ajouté un élément via .appendChild() ou en modiant display: none;. Cela sera compris comme si l'état initial n'avait jamais eu lieu et que l'élément avait toujours été dans son état final. Pour contourner ce problème, on peut appliquer window.setTimeout() pendant quelques millisecondes avant de modifier la propriété CSS sur laquelle on souhaite appliquer une transition.
Les transitions CSS sont généralement contrôlées grâce à la propriété raccourcie {{cssxref("transition")}}. Les différents composants d'une transition CSS peuvent être décrits dans le détail grâce aux propriétés détaillées suivantes :
+ +Note :Dans les exemples ci-après, l'effet de répétition est uniquement utilisé à des fins de visualisation. Si vous souhaitez obtenir des effets visuels qui se répètent, il faudra utiliser la propriété {{cssxref("animation")}}.
+La syntaxe de la propriété raccourcie {{cssxref("transition")}} est :
+ +div {
+ transition: <property> <duration> <timing-function> <delay>;
+}
+
+Avec cette feuille de style, on opère une transition CSS sur la taille de police de quatre secondes après deux secondes écoulées lorsque l'utilisateur passe la souris sur l'élément :
+ +#delay {
+ font-size: 14px;
+ transition-property: font-size;
+ transition-duration: 4s;
+ transition-delay: 2s;
+}
+
+#delay:hover {
+ font-size: 36px;
+}
+
+.box {
+ border-style: solid;
+ border-width: 1px;
+ display: block;
+ width: 100px;
+ height: 100px;
+ background-color: #0000FF;
+ transition: width 2s, height 2s, background-color 2s, transform 2s;
+}
+
+.box:hover {
+ background-color: #FFCCCC;
+ width: 200px;
+ height: 200px;
+ transform: rotate(180deg);
+}
+
+
+{{EmbedLiveSample('Exemple_avec_plusieurs_propriétés_animées', 600, 300)}}
+ + +.box {
+ border-style: solid;
+ border-width: 1px;
+ display: block;
+ width: 100px;
+ height: 100px;
+ background-color: #0000FF;
+ transition: width 2s, height 2s, background-color 2s, transform 2s;
+}
+
+.box:hover {
+ background-color: #FFCCCC;
+ width: 200px;
+ height: 200px;
+ transform: rotate(180deg);
+}
+
+
+<p>Cette boîte utilisera des transitions pour width, height, background-color, transform. + Survolez cette boîte pour voir l'effet.</p> +<div class="box"></div> ++ +
{{EmbedLiveSample('Appliquer_une_transition_sur_plusieurs_propriétés', 600, 300)}}
+ +Si la liste des valeurs pour une propriété est plus courte qu'une autre, les valeurs de la liste la plus courte seront répétées pour que la longueur réelle corresponde. Ainsi :
+ +div {
+ transition-property: opacity, left, top, height;
+ transition-duration: 3s, 5s;
+}
+
+
+Sera équivalent à :
+ +div {
+ transition-property: opacity, left, top, height;
+ transition-duration: 3s, 5s, 3s, 5s;
+}
+
+De même, si la liste est trop longue par rapport à {{cssxref("transition-property")}}, elle sera tronquée. Ainsi,
+ +div {
+ transition-property: opacity, left;
+ transition-duration: 3s, 5s, 2s, 1s;
+}
+
+Sera équivalent à :
+ +div {
+ transition-property: opacity, left;
+ transition-duration: 3s, 5s;
+}
+
+On utilise parfois CSS pour mettre en avant les éléments d'un menu lorsque l'utilisateur les survole avec sa souris. On peut facilement utiliser les transitions CSS pour améliorer l'effet obtenu.
+ +Tout d'abord, on définit le menu en HTML :
+ +<nav> + <a href="#">Accueil</a> + <a href="#">À propos</a> + <a href="#">Contact</a> + <a href="#">Liens</a> +</nav> ++ +
On construit le CSS pour définir l'apparence du menu :
+ +a {
+ color: #fff;
+ background-color: #333;
+ transition: all 1s ease-out;
+}
+
+a:hover,
+a:focus {
+ color: #333;
+ background-color: #fff;
+}
+
+
+
+Ainsi, lorsque la souris survole l'élément, la couleur du texte et de l'arrière-plan change.
+ +{{EmbedLiveSample("Utiliser_les_transitions_pour_accentuer_les_éléments_pour_un_menu","300","300")}}
+ +Les transitions permettent de lisser les opérations effectuées avec JavaScript. Par exemple :
+ +<p>Click anywhere to move the ball</p> +<div id="foo"></div> ++ +
Avec JavaScript on peut ajouter un effet de mouvement sur la balle :
+ +var f = document.getElementById('foo');
+document.addEventListener('click', function(ev){
+ f.style.transform = 'translateY('+(ev.clientY-25)+'px)';
+ f.style.transform += 'translateX('+(ev.clientX-25)+'px)';
+},false);
+
+
+Avec CSS, il suffit d'ajouter une transition à l'élément et chaque modification sera appliquée de façon régulière :
+ +p {
+ padding-left: 60px;
+}
+
+#foo {
+ border-radius: 50px;
+ width: 50px;
+ height: 50px;
+ background: #c00;
+ position: absolute;
+ top: 0;
+ left: 0;
+ transition: transform 1s;
+}
+
+
+{{JSFiddleEmbed("https://jsfiddle.net/9h261pzo/291/")}}
+ +L'évènement {{event("transitionend")}} est déclenché lorsqu'une transition est terminée. C'est un objet {{domxref("TransitionEvent")}} qui possède deux propriétés supplémentaires qu'un {{domxref("Event")}} :
+ +propertyNameelapsedTimeComme pour les différents évènements, on pourra utiliser {{domxref("eventtarget.addEventListener()")}}) pour « écouter » cet événement :
+ +el.addEventListener("transitionend", updateTransition, true);
+
+
+Pour détecter le début d'une transition, on pourra utiliser l'évènement {{event("transitionrun")}} qui est déclenché avant tout retardement et l'évènement {{event("transitionstart")}} qui est déclenché après tout retardement :
+ +el.addEventListener("transitionrun", signalStart, true);
+el.addEventListener("transitionstart", signalStart, true);
+
+Note : L'événement transitionend n'est pas déclenché si la transition est interrompue avant la fin de la transition si {{cssxref("display")}}: none ou si la valeur de la propriété est modifiée.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Transitions', '', '')}} | +{{Spec2('CSS3 Transitions')}} | +Définition initiale. | +
Le module CSS basic data types définit les différents types de données CSS qui permettent de définir les types de valeurs (mots-clés et unités) acceptées par les différentes propriétés et fonctions. Lorsqu'on utilise une notation formelle, les types de données sont représentés par un mot-clé entre chevrons (< >).
- -Note : Les types de donnée CSS sont un type spécial de composant de type de valeur.
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values')}} | -{{Spec2('CSS4 Values')}} | -- |
| {{SpecName('CSS3 Values')}} | -{{Spec2('CSS3 Values')}} | -Définition initiale. | -
Le module CSS basic data types définit les différents types de données CSS qui permettent de définir les types de valeurs (mots-clés et unités) acceptées par les différentes propriétés et fonctions. Lorsqu'on utilise une notation formelle, les types de données sont représentés par un mot-clé entre chevrons (< >).
+ +Note : Les types de donnée CSS sont un type spécial de composant de type de valeur.
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values')}} | +{{Spec2('CSS4 Values')}} | ++ |
| {{SpecName('CSS3 Values')}} | +{{Spec2('CSS3 Values')}} | +Définition initiale. | +
Chaque déclaration CSS inclut une paire constituée d'une propriété et d'une valeur. La plupart de celles-ci sont définies dans le module de spécification CSS Values and Units (Valeurs et unités CSS). Dans cet article, nous verrons ces différents types et valeurs ainsi que des notions de base quant à leur utilisation. Pour obtenir des informattions plus détaillées, vous pouvez consulter la page de chacun de ces types.
- -<ident>)Une valeur dont le type de donnée est textuel peut être un identifiant CSS (<ident>) ou une chaîne de caractères (<string>). Lorsqu'il s'agit d'un identifiant CSS, celui-ci ne doit pas être entouré de doubles quotes (guillemets anglais). En revanche, les chaînes de caractères (<string>) doivent être délimitées par des quotes ou des doubles quotes.
Dans les spécifications, les valeurs qui peuvent être définies par un développeur web sont indiquées comme {{cssxref("<custom-ident>")}} ; ce type de valeur se comportera comme n'importe quel autre identifiant CSS. Ainsi, pour la propriété {{cssxref("grid-area")}}, on peut utiliser une valeur de type <custom-ident> et si on a une zone de grille nommée content, on l'indiquera sans quotes :
.item {
- grid-area: content;
-}
-
-
-En revanche, lorsqu'on manipule une valeur de type {{cssxref("<string>")}}, comme ça peut être le cas lorsqu'on utilise la propriété {{cssxref("content")}}, il faut l'entourer de quotes :
- -.item::after {
- content: "Voici le contenu.";
-}
-
-
-Si le type indiqué dans la spécification est <custom-ident> | <string>, cela nidiquera que les quotes sont optionnelles. C'est par exemple le cas avec les noms des animations :
@keyframe identifiantValide {
- /* on place les keyframes ici */
-}
-
-@keyframe 'chaineValide' {
- /* on place les keyframes ici */
-}
-
-Bien qu'on puisse généralement utiliser presque n'importe nom (y compris en le composant d'emojis), un identifiant ne peut pas être none, unset, initial ou inherit, ne peut pas commencer par un chiffre ou par deux tirets. De façon générale, il ne faut pas qu'un identifiant soit un mot-clé CSS existant. Pour plus d'informations, voir les pages {{cssxref("<custom-ident>")}} et {{cssxref("<string>")}}.
Les spécifications définissent également des mots-clés utilisables comme valeurs pour certaines propriétés. Ces mots-clés sont également des identifiants CSS et ne doivent pas être entourés de guillemets.
- -Lorsque vous consultez une spécification ou un article de MDN à propos d'une propriété, vous pourrez voir les mots-clés autorisés sous la forme suivante. Voici un exemple avec les valeurs autorisées pour la propriété {{cssxref("break-inside")}}.
- -auto | avoid | avoid-page | avoid-column | avoid-region- -
Dans une déclaration, on pourra donc écrire (sans quote) :
- -.box {
- break-inside: avoid;
-}
-
-
-En complément des mots-clés définis pour certaines propriétés, il existe trois mots-clés utilisables pour l'ensemble des propriétés CSS : {{cssxref("initial")}}, {{cssxref("inherit")}} et {{cssxref("unset")}}.
- -Le mot-clé initial représente la valeur définie comme la valeur initiale de la propriété. Le mot-clé inherit correspond à la valeur calculée de la propriété sur l'élément parent si celle-ci est héritée.
Le mot-clé unset agit comme inherit ou initial selon que la propriété soit héritée ou non.
Une quatrième valeur, {{cssxref("revert")}}, a été ajoutée dans le module de spécification de niveau 4 sur la cascade mais sa prise en charge est encore faible et hétérogène (en février 2019).
- -Une valeur de type {{cssxref("<url>")}} s'utilise avec une notation fonctionnelle qui prend une chaîne de caractères (type <string>) comme argument et qui est une URL. La chaîne de caractères peut être une URL absolue ou relative. Ainsi, si on souhaite inclure une image d'arrière-plan, on pourra utiliser l'une ou l'autre de ces déclarations.
- -.box { - background-image: url("images/mon-arriere-plan.png"); -}- -.box { - background-image: url("https://www.exammple.com/images/mon-arriere-plan.png"); -}-
On notera que la valeur passée à url() peut ne pas contenir de quotes. Dans ce cas, elle sera analysée comme une valeur <url-token> et devra respecter certaines règles supplémentaires quant à l'échappement de certains caractères. Voir la page {{cssxref("<url>")}} pour plus d'informations.
Un entier ({{cssxref("<integer>")}}) se compose d'un ou plusieurs chiffres entre 0 et 9 (exemple de valeurs : 1024 ou -55). Un entier peut être précédé d'un signe + ou -.
Un nombre ({{cssxref("<number>")}}) représente un nombre décimal pouvant avoir (ou non) une composante décimale. Le séparateur décimal utilisé est le point. Ainsi, 1 et 1.2 sont des nombres en CSS. Les nombres peuvent être précédés d'un signe + ou -.
Une valeur {{cssxref("<dimension>")}} est un nombre (<number>) suivi directement d'une unité (par exemple 10px). L'identifiant utilisé pour exprimer l'unité est insensible à la casse et est lui-même un identifiant. Il n'y a jamais d'espace entre le nombre et l'unité (1 cm ne sera pas valide). CSS utilise les dimensions pour les types suivants :
Nous verrons chacun de ces types dans les sections suivantes.
- -Lorsqu'on peut utiliser une distance comme valeur d'une propriété, cette valeur est décrite avec le type {{cssxref("<length>")}}. Il existe deux types de longueur en CSS : les longueurs absolues d'une part et les longueurs relatives d'autre part.
- -Les unités de longueur relative permettent d'exprimer une distance relative à une autre grandeur. Ainsi, l'unité em sera relative à la taille (corps) de la police pour l'élément ; l'unité vh sera relative à la hauteur de la zone d'affichage (viewport).
| Unité | -Relative à | -
|---|---|
em |
- La taille (corps) de police de l'élément | -
ex |
- La hauteur d'un x avec la police utilisée par l'élément | -
cap |
- La hauteur d'une majuscule nominale avec la police utilisée par l'élément | -
ch |
- La largeur moyenne d'un glyphe étroit et de l'espace alentour pour la police utilisée par l'élément (le glyphe concerné étant “0” (ZERO, U+0030)). | -
ic |
- La largeur moyenne d'un glyphe large et de l'espace alentour pour la police utilisée par l'élément (exemple de glyphe “水” ). | -
rem |
- La taille (corps) de police de l'élément racine | -
lh |
- La hauteur de la ligne de l'élément | -
rlh |
- La hauteur de la ligne de l'élément racine | -
vw |
- 1% de la largeur de la zone d'affichage (viewport) | -
vh |
- 1% de la hauteur de la zone d'affichage (viewport) | -
vi |
- 1% de la taille de la zone d'affichage sur l'axe en ligne (inline axis) | -
vb |
- 1% de la taille de la zone d'affichage sur l'axe de bloc (block axis) | -
vmin |
- 1% de la zone d'affichage selon sa plus petite dimension | -
vmax |
- 1% de la zone d'affichage selon sa plus grande dimension | -
Les unités de longueur absolue correspondent à des mesures physiques et sont ainsi particulièrement adaptées lors que le média d'affichage possède une taille fixe (l'impression par exemple). Ainsi, l'unité cm correspond à un centimètre physique.
| Unité | -Nom | -Équivalence | -
|---|---|---|
cm |
- Centimètre | -1cm = 96px/2.54 | -
mm |
- Millimètre | -1mm = 1/10e de 1cm | -
Q |
- Quart de millimètre | -1Q = 1/40e de 1cm | -
in |
- Pouces (inches) | -1in = 2.54cm = 96px | -
pc |
- Picas | -1pc = 1/16e de 1in | -
pt |
- Points | -1pt = 1/72e de 1in | -
px |
- Pixels | -1px = 1/96e de 1in | -
Lorsqu'on utilise une longueur nulle (sa valeur est 0), l'identifiant correspondant à l'unité n'est pas obligatoire. Dans tous les autres cas, l'unité doit être écrite juste après la valeur (sans espace). L'identifiant de l'unité est insensible à la casse.
Les valeurs angulaires sont représentées avec le type {{cssxref("<angle>")}} et peuvent être décrites avec les unités suivantes :
- -| Unité | -Nom | -Description | -
|---|---|---|
deg |
- Degrés | -Un cercle se divise en 360 degrés égaux. | -
grad |
- Grades/Gradians | -Un cercle se compose de 400 grades. | -
rad |
- Radians | -Un cercle se compose de 2π radians. | -
turn |
- Tours | -Un cercle se compose d'un tour. | -
Les valeurs temporelles sont de type {{cssxref("<time>")}} et utilisent les unités suivantes.
- -| Unité | -Nom | -Description | -
|---|---|---|
s |
- Secondes | -- |
ms |
- Millisecondes | -Un millième de seconde. | -
Les valeurs de fréquence ont le type {{cssxref("<frequency>")}} et utilisent les valeurs suivantes.
- -| Unité | -Nom | -Description | -
|---|---|---|
Hz |
- Hertz | -Nombre de fois par seconde. | -
kHz |
- Kilohertz | -1000 Hertz. | -
Les résolutions sont représentées par des valeurs de type {{cssxref("<resolution>")}}. Elles correspondent à la taille d'un point sur une représentation graphique et décrivent la quantité de ces points sur un pixel, pouce ou centimètre CSS.
- -| Unité | -Description | -
|---|---|
dpi |
- Points par pouce. | -
dpcm |
- Points par centimètre. | -
dppx, x |
- Points par unité px. | -
Une valeur de type {{cssxref("<percentage>")}} représente une fraction d'une autre valeur de référence.
- -Les valeurs exprimées en pourcentages sont relatives à d'autres quantités (une longueur par exemple). Chaque propriété qui permet d'utiliser un pourcentage définit également la quantité à laquelle se réfère ce pourcentage. Cette quantité peut être une valeur d'une autre propriété du même élément, la valeur de la propriété sur un élément ancêtre, une caractéristique du bloc englobant ou autre chose.
- -Ainsi, si on utilise {{cssxref("width")}} avec un pourcentage sur une boîte. Ce pourcentage fera référence à la largeur calculée de l'élément parent de la boîte :
- -.box {
- width: 50%;
-}
-
-Certaines propriétés permettent d'utiliser une dimension avec deux types possibles (par exemple une longueur ou un pourcentage). Dans ce cas, la valeur mentionnée dans la spécification a une unité composite (ex. {{cssxref("<length-percentage>")}}). Voici les différentes unités composites qui existent :
- -Une valeur de type {{cssxref("<color>")}} permet de représenter une couleur pour un élément (par exemple la couleur de son arrière-plan). Ce type est défini dans le module de spécification CSS Color.
- -Une valeur de type {{cssxref("<image>")}} permet de représenter une image utilisable en CSS. Ce type est défini dans le module de spécification CSS Image Values and Replaced Content Module.
- -Le type {{cssxref("<position>")}} définit le positionnement, sur deux dimensions, d'un objet sur une zone de positionnement. Ce peut être le positionnement d'une image d'arrière-plan par rapport à son conteneur par exemple. Ce type est interprété comme {{cssxref("background-position")}} et est donc spécifié avec le module CSS Backgrounds and Borders.
- -Les notations fonctionnelles sont des types de valeur qui peuvent représenter des types plus complexes ou qui impliquent un traitement spécifique du moteur de rendu. La syntaxe commence par le nom de la fonction, immédiatement suivi d'une parenthèse gauche ( suivie des arguments de la notation, suivis d'une parenthèse droite). Les fonctions peuvent prendre plusieurs arguments qui ont une forme analogue à celle utilisée pour les valeurs des propriétés.
Les espaces sont optionnels mais autorisés à l'intérieur des parenthèses.
- -Note : Contrairement à d'autres langages, la virgule n'est pas toujours le séparateur utilisé entre les arguments d'une notation fonctionnelle.
-Certaines notations fonctionnelles historiques telles que rgba() utilisent des virgules pour séparer des arguments mais la plupart du temps, les virgules sont uniquement utilisées afin de séparer les éléments d'une liste. Si une virgule est utilisée comme séparateur entre des arguments, on peut ajouter un espace optionnel avant et après la virgule.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Values")}} | -{{Spec2("CSS4 Values")}} | -Ajout des unités vi, vb, ic, cap, lh et rlh.- Ajout des notations fonctionnelles min(), max() et clamp().- Ajout de toggle() |
-
| {{SpecName("CSS3 Values")}} | -{{Spec2("CSS3 Values")}} | -Ajout de calc(), ch, rem, vw, vw, vmin, vmax, Q |
-
| {{SpecName("CSS4 Colors")}} | -{{Spec2("CSS4 Colors")}} | -Ajout des syntaxes sans virgule pour les fonctions rgb(), rgba(), hsl() et hsla(). Ajout des valeurs alpha pour rgb() et hsl(), transformant ainsi rgba() et hsla() en alias respectifs (dépréciés).- Ajout du mot-clé de couleur rebeccapurple.- Ajout des couleurs sur 4 et 8 chiffres hexadécimaux où le dernier chiffre représente la valeur alpha. - Ajout des fonctions hwb(), device-cmyk() et color(). |
-
| {{SpecName("CSS3 Colors")}} | -{{Spec2("CSS3 Colors")}} | -Dépréciation des couleurs système. Ajout des couleurs SVG. Ajout des fonctions rgba(), hsl() et hsla(). |
-
| {{SpecName("CSS4 Images")}} | -{{Spec2("CSS4 Images")}} | -
- Ajout des notations fonctionnelles |
-
| {{SpecName("CSS3 Images")}} | -{{Spec2("CSS3 Images")}} | -Définition initiale du type image. |
-
| {{SpecName("CSS2.1")}} | -{{Spec2("CSS2.1")}} | -- |
| {{SpecName("CSS1")}} | -{{Spec2("CSS1")}} | -Définition initiale. | -
Chaque déclaration CSS inclut une paire constituée d'une propriété et d'une valeur. La plupart de celles-ci sont définies dans le module de spécification CSS Values and Units (Valeurs et unités CSS). Dans cet article, nous verrons ces différents types et valeurs ainsi que des notions de base quant à leur utilisation. Pour obtenir des informattions plus détaillées, vous pouvez consulter la page de chacun de ces types.
+ +<ident>)Une valeur dont le type de donnée est textuel peut être un identifiant CSS (<ident>) ou une chaîne de caractères (<string>). Lorsqu'il s'agit d'un identifiant CSS, celui-ci ne doit pas être entouré de doubles quotes (guillemets anglais). En revanche, les chaînes de caractères (<string>) doivent être délimitées par des quotes ou des doubles quotes.
Dans les spécifications, les valeurs qui peuvent être définies par un développeur web sont indiquées comme {{cssxref("<custom-ident>")}} ; ce type de valeur se comportera comme n'importe quel autre identifiant CSS. Ainsi, pour la propriété {{cssxref("grid-area")}}, on peut utiliser une valeur de type <custom-ident> et si on a une zone de grille nommée content, on l'indiquera sans quotes :
.item {
+ grid-area: content;
+}
+
+
+En revanche, lorsqu'on manipule une valeur de type {{cssxref("<string>")}}, comme ça peut être le cas lorsqu'on utilise la propriété {{cssxref("content")}}, il faut l'entourer de quotes :
+ +.item::after {
+ content: "Voici le contenu.";
+}
+
+
+Si le type indiqué dans la spécification est <custom-ident> | <string>, cela nidiquera que les quotes sont optionnelles. C'est par exemple le cas avec les noms des animations :
@keyframe identifiantValide {
+ /* on place les keyframes ici */
+}
+
+@keyframe 'chaineValide' {
+ /* on place les keyframes ici */
+}
+
+Bien qu'on puisse généralement utiliser presque n'importe nom (y compris en le composant d'emojis), un identifiant ne peut pas être none, unset, initial ou inherit, ne peut pas commencer par un chiffre ou par deux tirets. De façon générale, il ne faut pas qu'un identifiant soit un mot-clé CSS existant. Pour plus d'informations, voir les pages {{cssxref("<custom-ident>")}} et {{cssxref("<string>")}}.
Les spécifications définissent également des mots-clés utilisables comme valeurs pour certaines propriétés. Ces mots-clés sont également des identifiants CSS et ne doivent pas être entourés de guillemets.
+ +Lorsque vous consultez une spécification ou un article de MDN à propos d'une propriété, vous pourrez voir les mots-clés autorisés sous la forme suivante. Voici un exemple avec les valeurs autorisées pour la propriété {{cssxref("break-inside")}}.
+ +auto | avoid | avoid-page | avoid-column | avoid-region+ +
Dans une déclaration, on pourra donc écrire (sans quote) :
+ +.box {
+ break-inside: avoid;
+}
+
+
+En complément des mots-clés définis pour certaines propriétés, il existe trois mots-clés utilisables pour l'ensemble des propriétés CSS : {{cssxref("initial")}}, {{cssxref("inherit")}} et {{cssxref("unset")}}.
+ +Le mot-clé initial représente la valeur définie comme la valeur initiale de la propriété. Le mot-clé inherit correspond à la valeur calculée de la propriété sur l'élément parent si celle-ci est héritée.
Le mot-clé unset agit comme inherit ou initial selon que la propriété soit héritée ou non.
Une quatrième valeur, {{cssxref("revert")}}, a été ajoutée dans le module de spécification de niveau 4 sur la cascade mais sa prise en charge est encore faible et hétérogène (en février 2019).
+ +Une valeur de type {{cssxref("<url>")}} s'utilise avec une notation fonctionnelle qui prend une chaîne de caractères (type <string>) comme argument et qui est une URL. La chaîne de caractères peut être une URL absolue ou relative. Ainsi, si on souhaite inclure une image d'arrière-plan, on pourra utiliser l'une ou l'autre de ces déclarations.
+ +.box { + background-image: url("images/mon-arriere-plan.png"); +}+ +.box { + background-image: url("https://www.exammple.com/images/mon-arriere-plan.png"); +}+
On notera que la valeur passée à url() peut ne pas contenir de quotes. Dans ce cas, elle sera analysée comme une valeur <url-token> et devra respecter certaines règles supplémentaires quant à l'échappement de certains caractères. Voir la page {{cssxref("<url>")}} pour plus d'informations.
Un entier ({{cssxref("<integer>")}}) se compose d'un ou plusieurs chiffres entre 0 et 9 (exemple de valeurs : 1024 ou -55). Un entier peut être précédé d'un signe + ou -.
Un nombre ({{cssxref("<number>")}}) représente un nombre décimal pouvant avoir (ou non) une composante décimale. Le séparateur décimal utilisé est le point. Ainsi, 1 et 1.2 sont des nombres en CSS. Les nombres peuvent être précédés d'un signe + ou -.
Une valeur {{cssxref("<dimension>")}} est un nombre (<number>) suivi directement d'une unité (par exemple 10px). L'identifiant utilisé pour exprimer l'unité est insensible à la casse et est lui-même un identifiant. Il n'y a jamais d'espace entre le nombre et l'unité (1 cm ne sera pas valide). CSS utilise les dimensions pour les types suivants :
Nous verrons chacun de ces types dans les sections suivantes.
+ +Lorsqu'on peut utiliser une distance comme valeur d'une propriété, cette valeur est décrite avec le type {{cssxref("<length>")}}. Il existe deux types de longueur en CSS : les longueurs absolues d'une part et les longueurs relatives d'autre part.
+ +Les unités de longueur relative permettent d'exprimer une distance relative à une autre grandeur. Ainsi, l'unité em sera relative à la taille (corps) de la police pour l'élément ; l'unité vh sera relative à la hauteur de la zone d'affichage (viewport).
| Unité | +Relative à | +
|---|---|
em |
+ La taille (corps) de police de l'élément | +
ex |
+ La hauteur d'un x avec la police utilisée par l'élément | +
cap |
+ La hauteur d'une majuscule nominale avec la police utilisée par l'élément | +
ch |
+ La largeur moyenne d'un glyphe étroit et de l'espace alentour pour la police utilisée par l'élément (le glyphe concerné étant “0” (ZERO, U+0030)). | +
ic |
+ La largeur moyenne d'un glyphe large et de l'espace alentour pour la police utilisée par l'élément (exemple de glyphe “水” ). | +
rem |
+ La taille (corps) de police de l'élément racine | +
lh |
+ La hauteur de la ligne de l'élément | +
rlh |
+ La hauteur de la ligne de l'élément racine | +
vw |
+ 1% de la largeur de la zone d'affichage (viewport) | +
vh |
+ 1% de la hauteur de la zone d'affichage (viewport) | +
vi |
+ 1% de la taille de la zone d'affichage sur l'axe en ligne (inline axis) | +
vb |
+ 1% de la taille de la zone d'affichage sur l'axe de bloc (block axis) | +
vmin |
+ 1% de la zone d'affichage selon sa plus petite dimension | +
vmax |
+ 1% de la zone d'affichage selon sa plus grande dimension | +
Les unités de longueur absolue correspondent à des mesures physiques et sont ainsi particulièrement adaptées lors que le média d'affichage possède une taille fixe (l'impression par exemple). Ainsi, l'unité cm correspond à un centimètre physique.
| Unité | +Nom | +Équivalence | +
|---|---|---|
cm |
+ Centimètre | +1cm = 96px/2.54 | +
mm |
+ Millimètre | +1mm = 1/10e de 1cm | +
Q |
+ Quart de millimètre | +1Q = 1/40e de 1cm | +
in |
+ Pouces (inches) | +1in = 2.54cm = 96px | +
pc |
+ Picas | +1pc = 1/16e de 1in | +
pt |
+ Points | +1pt = 1/72e de 1in | +
px |
+ Pixels | +1px = 1/96e de 1in | +
Lorsqu'on utilise une longueur nulle (sa valeur est 0), l'identifiant correspondant à l'unité n'est pas obligatoire. Dans tous les autres cas, l'unité doit être écrite juste après la valeur (sans espace). L'identifiant de l'unité est insensible à la casse.
Les valeurs angulaires sont représentées avec le type {{cssxref("<angle>")}} et peuvent être décrites avec les unités suivantes :
+ +| Unité | +Nom | +Description | +
|---|---|---|
deg |
+ Degrés | +Un cercle se divise en 360 degrés égaux. | +
grad |
+ Grades/Gradians | +Un cercle se compose de 400 grades. | +
rad |
+ Radians | +Un cercle se compose de 2π radians. | +
turn |
+ Tours | +Un cercle se compose d'un tour. | +
Les valeurs temporelles sont de type {{cssxref("<time>")}} et utilisent les unités suivantes.
+ +| Unité | +Nom | +Description | +
|---|---|---|
s |
+ Secondes | ++ |
ms |
+ Millisecondes | +Un millième de seconde. | +
Les valeurs de fréquence ont le type {{cssxref("<frequency>")}} et utilisent les valeurs suivantes.
+ +| Unité | +Nom | +Description | +
|---|---|---|
Hz |
+ Hertz | +Nombre de fois par seconde. | +
kHz |
+ Kilohertz | +1000 Hertz. | +
Les résolutions sont représentées par des valeurs de type {{cssxref("<resolution>")}}. Elles correspondent à la taille d'un point sur une représentation graphique et décrivent la quantité de ces points sur un pixel, pouce ou centimètre CSS.
+ +| Unité | +Description | +
|---|---|
dpi |
+ Points par pouce. | +
dpcm |
+ Points par centimètre. | +
dppx, x |
+ Points par unité px. | +
Une valeur de type {{cssxref("<percentage>")}} représente une fraction d'une autre valeur de référence.
+ +Les valeurs exprimées en pourcentages sont relatives à d'autres quantités (une longueur par exemple). Chaque propriété qui permet d'utiliser un pourcentage définit également la quantité à laquelle se réfère ce pourcentage. Cette quantité peut être une valeur d'une autre propriété du même élément, la valeur de la propriété sur un élément ancêtre, une caractéristique du bloc englobant ou autre chose.
+ +Ainsi, si on utilise {{cssxref("width")}} avec un pourcentage sur une boîte. Ce pourcentage fera référence à la largeur calculée de l'élément parent de la boîte :
+ +.box {
+ width: 50%;
+}
+
+Certaines propriétés permettent d'utiliser une dimension avec deux types possibles (par exemple une longueur ou un pourcentage). Dans ce cas, la valeur mentionnée dans la spécification a une unité composite (ex. {{cssxref("<length-percentage>")}}). Voici les différentes unités composites qui existent :
+ +Une valeur de type {{cssxref("<color>")}} permet de représenter une couleur pour un élément (par exemple la couleur de son arrière-plan). Ce type est défini dans le module de spécification CSS Color.
+ +Une valeur de type {{cssxref("<image>")}} permet de représenter une image utilisable en CSS. Ce type est défini dans le module de spécification CSS Image Values and Replaced Content Module.
+ +Le type {{cssxref("<position>")}} définit le positionnement, sur deux dimensions, d'un objet sur une zone de positionnement. Ce peut être le positionnement d'une image d'arrière-plan par rapport à son conteneur par exemple. Ce type est interprété comme {{cssxref("background-position")}} et est donc spécifié avec le module CSS Backgrounds and Borders.
+ +Les notations fonctionnelles sont des types de valeur qui peuvent représenter des types plus complexes ou qui impliquent un traitement spécifique du moteur de rendu. La syntaxe commence par le nom de la fonction, immédiatement suivi d'une parenthèse gauche ( suivie des arguments de la notation, suivis d'une parenthèse droite). Les fonctions peuvent prendre plusieurs arguments qui ont une forme analogue à celle utilisée pour les valeurs des propriétés.
Les espaces sont optionnels mais autorisés à l'intérieur des parenthèses.
+ +Note : Contrairement à d'autres langages, la virgule n'est pas toujours le séparateur utilisé entre les arguments d'une notation fonctionnelle.
+Certaines notations fonctionnelles historiques telles que rgba() utilisent des virgules pour séparer des arguments mais la plupart du temps, les virgules sont uniquement utilisées afin de séparer les éléments d'une liste. Si une virgule est utilisée comme séparateur entre des arguments, on peut ajouter un espace optionnel avant et après la virgule.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Values")}} | +{{Spec2("CSS4 Values")}} | +Ajout des unités vi, vb, ic, cap, lh et rlh.+ Ajout des notations fonctionnelles min(), max() et clamp().+ Ajout de toggle() |
+
| {{SpecName("CSS3 Values")}} | +{{Spec2("CSS3 Values")}} | +Ajout de calc(), ch, rem, vw, vw, vmin, vmax, Q |
+
| {{SpecName("CSS4 Colors")}} | +{{Spec2("CSS4 Colors")}} | +Ajout des syntaxes sans virgule pour les fonctions rgb(), rgba(), hsl() et hsla(). Ajout des valeurs alpha pour rgb() et hsl(), transformant ainsi rgba() et hsla() en alias respectifs (dépréciés).+ Ajout du mot-clé de couleur rebeccapurple.+ Ajout des couleurs sur 4 et 8 chiffres hexadécimaux où le dernier chiffre représente la valeur alpha. + Ajout des fonctions hwb(), device-cmyk() et color(). |
+
| {{SpecName("CSS3 Colors")}} | +{{Spec2("CSS3 Colors")}} | +Dépréciation des couleurs système. Ajout des couleurs SVG. Ajout des fonctions rgba(), hsl() et hsla(). |
+
| {{SpecName("CSS4 Images")}} | +{{Spec2("CSS4 Images")}} | +
+ Ajout des notations fonctionnelles |
+
| {{SpecName("CSS3 Images")}} | +{{Spec2("CSS3 Images")}} | +Définition initiale du type image. |
+
| {{SpecName("CSS2.1")}} | +{{Spec2("CSS2.1")}} | ++ |
| {{SpecName("CSS1")}} | +{{Spec2("CSS1")}} | +Définition initiale. | +
CSS Custom Properties for Cascading Variables ou « module des propriétés personnalisées pour les variables CSS » est un module de la spécification CSS qui permet de créer des propriétés personnalisées afin de les utiliser à plusieurs endroits, sans avoir à répéter de valeurs.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Variables")}} | -{{Spec2("CSS3 Variables")}} | -Définition initiale. | -
CSS Custom Properties for Cascading Variables ou « module des propriétés personnalisées pour les variables CSS » est un module de la spécification CSS qui permet de créer des propriétés personnalisées afin de les utiliser à plusieurs endroits, sans avoir à répéter de valeurs.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Variables")}} | +{{Spec2("CSS3 Variables")}} | +Définition initiale. | +
CSS Writing Modes (ou modes d'écriture CSS) est un module qui définit différents modes d'écriture internationaux comme l'écriture de gauche à droite (e.g. utilisée par les langues latines et indiennes), de droite à gauche (e.g. utilisée par l'hébreu ou l'arabe), bidirectionnelle (utilisée quand il y a à la fois des écritures de gauche à droite et de droite à gauche sont ) et verticale (e.g. utilisée par certains écrits asiatiques).
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Writing Modes')}} | -{{Spec2('CSS3 Writing Modes')}} | -- |
| {{SpecName('CSS2.1', 'text.html')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
CSS Writing Modes (ou modes d'écriture CSS) est un module qui définit différents modes d'écriture internationaux comme l'écriture de gauche à droite (e.g. utilisée par les langues latines et indiennes), de droite à gauche (e.g. utilisée par l'hébreu ou l'arabe), bidirectionnelle (utilisée quand il y a à la fois des écritures de gauche à droite et de droite à gauche sont ) et verticale (e.g. utilisée par certains écrits asiatiques).
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Writing Modes')}} | +{{Spec2('CSS3 Writing Modes')}} | ++ |
| {{SpecName('CSS2.1', 'text.html')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
Lorsqu'on définit l'emplacement d'un pixel dans un contexte graphique, on indique les coordonnées de ce point par rapport à un point fixe du contexte qu'on appelle l'origine. La position du pixel est donc indiquée comme le décalage de ce pixel par rapport à l'origine, sur les deux axes du plan.
- -Ce guide décrit les systèmes de coordonnées standard utilisés par le modèle objet de CSS. Les différences entre ces systèmes résident principalement dans l'emplacement de l'origine.
- -Pour les systèmes de coordonnées utilisés sur le Web, on prend comme convention qu'un décalage horizontal est appelé coordonnée en X (une valeur négative indique une position à gauche de l'origine et une valeur positive indique une position à droite de l'origine) et qu'un décalage vertical est appelé coordonnée en Y (une valeur négative indique une position au dessus de l'origine et une valeur positive indique une position en dessous de l'origine).
- -L'origine par défaut, dans les contextes relatifs au Web, est située dans le coin supérieur gauche avec les valeurs verticales positives se situant sous l'origine. Ceci est donc différent des représentations mathématiques généralement utilisées où l'origine se situe en bas à gauche et où les valeurs positives en Y sont situées au dessus de l'origine.
- -Lorsqu'on dessine des graphiques en trois dimensions ou lorsqu'on utilise une troisième dimension pour empiler des objets de l'avant vers l'arrière, on utilise la coordonnée en Z. Celle-ci correspond à la distance entre le spectateur et l'objet. Elle est positive si l'objet est plus éloigné du spectateur que l'origine et négative s'il est plus proche.
- -Note : Il est en fait possible de modifier les définitions et les orientations de ces systèmes de coordonnées grâce à des propriétés CSS telles que {{cssxref("transform")}}. Toutefois, nous évoquerons uniquement le système de coordonnées standard.
-Il existe quatre systèmes de coordonnées standard utilisé par le modèle objet de CSS.
- -Les coordonnées indiquées selon ce modèle se situent relativement au coin supérieur gauche de l'élément qu'on examine ou qui a déclenché un évènement.
- -Ainsi, lorsqu'un {{domxref("MouseEvent", "évènement de souris", "", 1)}} se produit, la position de la souris telle qu'indiquée par les {{domxref("MouseEvent.offsetX", "offsetX")}} et {{domxref("MouseEvent.offsetY", "offsetY")}} est relative au coin supérieur gauche de l'élément sur lequel l'évènement a été produit. L'origine de ce système est décalée vers l'intérieure de la boîte de l'élément selon les distances fournies pour {{cssxref("padding-left")}} et {{cssxref("padding-top")}}.
- -Ce système de coordonnées utilise le coin supérieur gauche de la zone d'affichage (viewport) ou du contexte de navigation comme origine.
- -Sur un ordinateur de bureau, par exemple, les propriétés {{domxref("MouseEvent.clientX")}} et {{domxref("MouseEvent.clientY")}} indiquent la position du curseur de la souris au moment où l'évènement se produit et relativement au coin supérieur gauche de la fenêtre du navigateur. Le coin supérieur gauche de la zone d'affichage fournie par la fenêtre est toujours situé en (0, 0), quel que soit le contenu du document et peu importe le défilement ayant eu lieu. Autrement dit, le défilement du document modifiera les coordonnées d'un élément donné du document.
- -Ce système de coordonnées fournit la position d'un pixel par rapport au coin supérieur gauche de tout le {{domxref("Document")}} sur lequel le pixel est situé. Cela signifie qu'un point donné sur un élément conservera les mêmes coordonnées sur la page (sauf si l'élément est déplacé avec un changement de position ou à cause de l'ajout d'autres éléments sur la page ou à cause d'un redimensionnement d'un autre élément par exemple).
- -Les propriétés pour les évènements de la souris {{domxref("MouseEvent.pageX", "pageX")}} et {{domxref("MouseEvent.pageY", "pageY")}} fournissent la position de la souris au moment de l'évènement, relativement au coin supérieur gauche du document.
- -Pour le système de coordonnées lié à l'écran, l'origine est situé dans le coin supérieur gauche de l'écran. Cela signifie que la position d'un point donné évoluera si l'utilisateur déplace la fenêtre du navigateur ou s'il change de résolution (voire s'il ajoute des écrans).
- -Les propriétés {{domxref("MouseEvent.screenX")}} et {{domxref("MouseEvent.screenY")}} fournissent les coordonnées de la souris lors de l'évènement, relativement à l'origine de l'écran.
- -Dans cet exemple simple, nous allons créé un ensemble de boîtes imbriquées. Lorsque la souris entrera sur la surface de ces boîtes, se déplacera ou quittera la surface correspondante, l'évènement déclenché est géré afin de mettre à jour les messages informatifs au sein de la boîte pour afficher les différentes coordonnées du pointeur selon les quatre systèmes de coordonnées.
- -Décomposons ce script en deux parties. Dans la première, le code permet d'afficher les coordonnées à l'écran. Ce code sera appelé par le gestionnaire d'évènements pour les différents évènements liés à la souris et qui nous intéressent ici.
- -Comme nous le verrons après avec le code HTML, la boîte interne (celle sur laquelle on écoute les évènements) contient plusieurs paragraphes : un pour chacun des systèmes de coordonnées.
- -let inner = document.querySelector(".inner");
-let log = document.querySelector(".log");
-
-function setCoords(e, type) {
- let idX = type + "X";
- let idY = type + "Y";
-
- document.getElementById(idX).innerText = e[idX];
- document.getElementById(idY).innerText = e[idY];
-}
-
-
-Dans inner On récupère une référence à l'élément {{HTMLElement("div")}} situé dans la boîte intérieure et qui contient les paragraphes qui serviront à afficher les informations liées aux coordonnées.
La fonction setCoords() prend en charge deux arguments : l'évènement {{domxref("MouseEvent")}} ainsi que le nom de l'origine utilisée pour obtenir les coordonnées. Les variables idX et idY sont des chaînes de caractères correspondant aux noms des propriétés à utiliser dans le système de coordonnées. Par exemple, si type vaut "page", alors idX vaudra "pageX" et idY vaudra "pageY".
setCoords() est appelé par le gestionnaire d'évènements update() qui est lui même utilisé sur les différents évènements :
function update(e) {
- setCoords(e, "offset");
- setCoords(e, "client");
- setCoords(e, "page");
- setCoords(e, "screen");
-}
-
-inner.addEventListener("mouseenter", update, false);
-inner.addEventListener("mousemove", update, false);
-inner.addEventListener("mouseleave", update, false);
-
-Le gestionnaire d'évènement update() appelle setCoords() pour chacun des systèmes de coordonnées et lui repasse en argument l'évènement qui s'est produit.
Les trois dernières lignes correspondent à l'enregistrement du gestionnaire d'évènements sur la boîte intérieure grâce aux appels de {{domxref("EventTarget.addEventListener", "addEventListener()")}} pour chaque type d'évènement : {{event("mouseenter")}}, {{event("mousemove")}} et {{event("mouseleave")}}.
- -Voici le code HTML utilisé pour l'exemple. On notera qu'à l'intérieur de l'élément <div> avec l'identifiant "log", on dispose d'un paragraphe pour chaque système de coordonnées. Un élément {{domxref("span")}} est utilisé pour chaque paragraphe afin de recevoir et d'afficher les coordonnées dans le système concerné.
<div class="outer"> - <div class="inner"> - <div class="log"> - <p> - Système de coordonnées Offset : <span id="offsetX">0</span>, - <span id="offsetY">0</span> - </p> - <p> - Système de coordonnées Client : <span id="clientX">0</span>, - <span id="clientY">0</span> - </p> - <p> - Système de coordonnées Page : <span id="pageX">0</span>, - <span id="pageY">0</span> - </p> - <p> - Système de coordonnées Écran : <span id="screenX">0</span>, - <span id="screenY">0</span> - </p> - </div> - </div> -</div>- -
Le code CSS est uniquement utilisé à des fins stylistiques. La classe "outer" est utilisée pour la boîte englobante qu'on rend volontairement trop large pour la fenêtre de MDN afin de pouvoir scroller horizontalement. La boîte "inner" est celle sur laquelle on suit les évènements.
.outer {
- width: 1000px;
- height: 200px;
- background-color: red;
-}
-
-.inner {
- position: relative;
- width: 500px;
- height: 150px;
- top: 25px;
- left: 100px;
- background-color: blue;
- color: white;
- cursor: crosshair;
- user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -webkit-user-select: none;
-}
-
-.log {
- position: relative;
- width: 100%;
- text-align: center;
-}
-
-Voici ci-après le résultat obtenu avec ces éléments. Vous pouvez voir comment les coordonnées en X et en Y évoluent lorsque vous déplacez la souris à l'intérieur ou en dehors de la boîte bleue selon les différents systèmes de coordonnées. On peut également voir que le défilement horizontal n'a pas d'impact sur la valeur pageX.
{{EmbedLiveSample("Exemples", 600, 250)}}
- -Lorsqu'on définit l'emplacement d'un pixel dans un contexte graphique, on indique les coordonnées de ce point par rapport à un point fixe du contexte qu'on appelle l'origine. La position du pixel est donc indiquée comme le décalage de ce pixel par rapport à l'origine, sur les deux axes du plan.
+ +Ce guide décrit les systèmes de coordonnées standard utilisés par le modèle objet de CSS. Les différences entre ces systèmes résident principalement dans l'emplacement de l'origine.
+ +Pour les systèmes de coordonnées utilisés sur le Web, on prend comme convention qu'un décalage horizontal est appelé coordonnée en X (une valeur négative indique une position à gauche de l'origine et une valeur positive indique une position à droite de l'origine) et qu'un décalage vertical est appelé coordonnée en Y (une valeur négative indique une position au dessus de l'origine et une valeur positive indique une position en dessous de l'origine).
+ +L'origine par défaut, dans les contextes relatifs au Web, est située dans le coin supérieur gauche avec les valeurs verticales positives se situant sous l'origine. Ceci est donc différent des représentations mathématiques généralement utilisées où l'origine se situe en bas à gauche et où les valeurs positives en Y sont situées au dessus de l'origine.
+ +Lorsqu'on dessine des graphiques en trois dimensions ou lorsqu'on utilise une troisième dimension pour empiler des objets de l'avant vers l'arrière, on utilise la coordonnée en Z. Celle-ci correspond à la distance entre le spectateur et l'objet. Elle est positive si l'objet est plus éloigné du spectateur que l'origine et négative s'il est plus proche.
+ +Note : Il est en fait possible de modifier les définitions et les orientations de ces systèmes de coordonnées grâce à des propriétés CSS telles que {{cssxref("transform")}}. Toutefois, nous évoquerons uniquement le système de coordonnées standard.
+Il existe quatre systèmes de coordonnées standard utilisé par le modèle objet de CSS.
+ +Les coordonnées indiquées selon ce modèle se situent relativement au coin supérieur gauche de l'élément qu'on examine ou qui a déclenché un évènement.
+ +Ainsi, lorsqu'un {{domxref("MouseEvent", "évènement de souris", "", 1)}} se produit, la position de la souris telle qu'indiquée par les {{domxref("MouseEvent.offsetX", "offsetX")}} et {{domxref("MouseEvent.offsetY", "offsetY")}} est relative au coin supérieur gauche de l'élément sur lequel l'évènement a été produit. L'origine de ce système est décalée vers l'intérieure de la boîte de l'élément selon les distances fournies pour {{cssxref("padding-left")}} et {{cssxref("padding-top")}}.
+ +Ce système de coordonnées utilise le coin supérieur gauche de la zone d'affichage (viewport) ou du contexte de navigation comme origine.
+ +Sur un ordinateur de bureau, par exemple, les propriétés {{domxref("MouseEvent.clientX")}} et {{domxref("MouseEvent.clientY")}} indiquent la position du curseur de la souris au moment où l'évènement se produit et relativement au coin supérieur gauche de la fenêtre du navigateur. Le coin supérieur gauche de la zone d'affichage fournie par la fenêtre est toujours situé en (0, 0), quel que soit le contenu du document et peu importe le défilement ayant eu lieu. Autrement dit, le défilement du document modifiera les coordonnées d'un élément donné du document.
+ +Ce système de coordonnées fournit la position d'un pixel par rapport au coin supérieur gauche de tout le {{domxref("Document")}} sur lequel le pixel est situé. Cela signifie qu'un point donné sur un élément conservera les mêmes coordonnées sur la page (sauf si l'élément est déplacé avec un changement de position ou à cause de l'ajout d'autres éléments sur la page ou à cause d'un redimensionnement d'un autre élément par exemple).
+ +Les propriétés pour les évènements de la souris {{domxref("MouseEvent.pageX", "pageX")}} et {{domxref("MouseEvent.pageY", "pageY")}} fournissent la position de la souris au moment de l'évènement, relativement au coin supérieur gauche du document.
+ +Pour le système de coordonnées lié à l'écran, l'origine est situé dans le coin supérieur gauche de l'écran. Cela signifie que la position d'un point donné évoluera si l'utilisateur déplace la fenêtre du navigateur ou s'il change de résolution (voire s'il ajoute des écrans).
+ +Les propriétés {{domxref("MouseEvent.screenX")}} et {{domxref("MouseEvent.screenY")}} fournissent les coordonnées de la souris lors de l'évènement, relativement à l'origine de l'écran.
+ +Dans cet exemple simple, nous allons créé un ensemble de boîtes imbriquées. Lorsque la souris entrera sur la surface de ces boîtes, se déplacera ou quittera la surface correspondante, l'évènement déclenché est géré afin de mettre à jour les messages informatifs au sein de la boîte pour afficher les différentes coordonnées du pointeur selon les quatre systèmes de coordonnées.
+ +Décomposons ce script en deux parties. Dans la première, le code permet d'afficher les coordonnées à l'écran. Ce code sera appelé par le gestionnaire d'évènements pour les différents évènements liés à la souris et qui nous intéressent ici.
+ +Comme nous le verrons après avec le code HTML, la boîte interne (celle sur laquelle on écoute les évènements) contient plusieurs paragraphes : un pour chacun des systèmes de coordonnées.
+ +let inner = document.querySelector(".inner");
+let log = document.querySelector(".log");
+
+function setCoords(e, type) {
+ let idX = type + "X";
+ let idY = type + "Y";
+
+ document.getElementById(idX).innerText = e[idX];
+ document.getElementById(idY).innerText = e[idY];
+}
+
+
+Dans inner On récupère une référence à l'élément {{HTMLElement("div")}} situé dans la boîte intérieure et qui contient les paragraphes qui serviront à afficher les informations liées aux coordonnées.
La fonction setCoords() prend en charge deux arguments : l'évènement {{domxref("MouseEvent")}} ainsi que le nom de l'origine utilisée pour obtenir les coordonnées. Les variables idX et idY sont des chaînes de caractères correspondant aux noms des propriétés à utiliser dans le système de coordonnées. Par exemple, si type vaut "page", alors idX vaudra "pageX" et idY vaudra "pageY".
setCoords() est appelé par le gestionnaire d'évènements update() qui est lui même utilisé sur les différents évènements :
function update(e) {
+ setCoords(e, "offset");
+ setCoords(e, "client");
+ setCoords(e, "page");
+ setCoords(e, "screen");
+}
+
+inner.addEventListener("mouseenter", update, false);
+inner.addEventListener("mousemove", update, false);
+inner.addEventListener("mouseleave", update, false);
+
+Le gestionnaire d'évènement update() appelle setCoords() pour chacun des systèmes de coordonnées et lui repasse en argument l'évènement qui s'est produit.
Les trois dernières lignes correspondent à l'enregistrement du gestionnaire d'évènements sur la boîte intérieure grâce aux appels de {{domxref("EventTarget.addEventListener", "addEventListener()")}} pour chaque type d'évènement : {{event("mouseenter")}}, {{event("mousemove")}} et {{event("mouseleave")}}.
+ +Voici le code HTML utilisé pour l'exemple. On notera qu'à l'intérieur de l'élément <div> avec l'identifiant "log", on dispose d'un paragraphe pour chaque système de coordonnées. Un élément {{domxref("span")}} est utilisé pour chaque paragraphe afin de recevoir et d'afficher les coordonnées dans le système concerné.
<div class="outer"> + <div class="inner"> + <div class="log"> + <p> + Système de coordonnées Offset : <span id="offsetX">0</span>, + <span id="offsetY">0</span> + </p> + <p> + Système de coordonnées Client : <span id="clientX">0</span>, + <span id="clientY">0</span> + </p> + <p> + Système de coordonnées Page : <span id="pageX">0</span>, + <span id="pageY">0</span> + </p> + <p> + Système de coordonnées Écran : <span id="screenX">0</span>, + <span id="screenY">0</span> + </p> + </div> + </div> +</div>+ +
Le code CSS est uniquement utilisé à des fins stylistiques. La classe "outer" est utilisée pour la boîte englobante qu'on rend volontairement trop large pour la fenêtre de MDN afin de pouvoir scroller horizontalement. La boîte "inner" est celle sur laquelle on suit les évènements.
.outer {
+ width: 1000px;
+ height: 200px;
+ background-color: red;
+}
+
+.inner {
+ position: relative;
+ width: 500px;
+ height: 150px;
+ top: 25px;
+ left: 100px;
+ background-color: blue;
+ color: white;
+ cursor: crosshair;
+ user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+}
+
+.log {
+ position: relative;
+ width: 100%;
+ text-align: center;
+}
+
+Voici ci-après le résultat obtenu avec ces éléments. Vous pouvez voir comment les coordonnées en X et en Y évoluent lorsque vous déplacez la souris à l'intérieur ou en dehors de la boîte bleue selon les différents systèmes de coordonnées. On peut également voir que le défilement horizontal n'a pas d'impact sur la valeur pageX.
{{EmbedLiveSample("Exemples", 600, 250)}}
+ +CSSOM View (ou Vue CSSOM) est un module de la spécification CSS qui définit comment manipuler la vue d'un document et notamment le comportement lors du défilement (scrolling).
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSSOM View')}} | -{{Spec2('CSSOM View')}} | -Définition initiale. | -
{{Compat("css.properties.scroll-behavior")}}
diff --git a/files/fr/web/css/cssom_view/index.md b/files/fr/web/css/cssom_view/index.md new file mode 100644 index 0000000000..d052cb0abc --- /dev/null +++ b/files/fr/web/css/cssom_view/index.md @@ -0,0 +1,52 @@ +--- +title: CSSOM View +slug: Web/CSS/CSSOM_View +tags: + - Aperçu + - CSS + - CSSOM + - CSSOM View + - Reference +translation_of: Web/CSS/CSSOM_View +--- +CSSOM View (ou Vue CSSOM) est un module de la spécification CSS qui définit comment manipuler la vue d'un document et notamment le comportement lors du défilement (scrolling).
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSSOM View')}} | +{{Spec2('CSSOM View')}} | +Définition initiale. | +
{{Compat("css.properties.scroll-behavior")}}
diff --git a/files/fr/web/css/cursor/index.html b/files/fr/web/css/cursor/index.html deleted file mode 100644 index 2931c1851a..0000000000 --- a/files/fr/web/css/cursor/index.html +++ /dev/null @@ -1,336 +0,0 @@ ---- -title: cursor -slug: Web/CSS/cursor -tags: - - Arrow - - CSS - - CSS Property - - Cursor - - Custom Cursor - - Reference - - UI - - mouse - - pointer - - recipe:css-property -translation_of: Web/CSS/cursor -browser-compat: css.properties.cursor ---- -La propriété CSS cursor définit la forme du curseur (s'il y en a un) lorsque le pointeur est au-dessus de l'élément.
/* Valeurs avec un mot-clé */ -cursor: pointer; -cursor: auto; - -/* Une valeur d'URL avec un mot-clé par défaut */ -cursor: url(hand.cur), pointer; - -/* Une valeur d'URL avec des coordonnées et un mot-clé par défaut */ -cursor: url(cursor1.png) 4 12, auto; -cursor: url(cursor2.png) 2 2, pointer; - -/* Valeurs globales */ -cursor: inherit; -cursor: initial; -cursor: unset; -- -
La propriété cursor peut être définie grâce à zéro ou plusieurs valeurs <url> séparées par des virgules et suivi par un unique mot-clé obligatoire. Chaque <url> doit pointer vers un fichier image. Le navigateur essaiera de télécharger la première image indiquée et passera à la suivante s'il ne peut pas. Si aucune image ne fonctionne, il utilisera le mot-clé final.
Chaque <url> peut éventuellement être suivi par un couple de nombres séparés par un espace qui représente les coordonnées (abscisse puis ordonnée) <x><y> Ces coordonnées permettent de paramétrer le point d'action (hotspot) du curseur par rapport au coin en haut à gauche de l'image.
Par exemple, on peut indiquer deux images grâce à deux valeurs <url> et fournir des coordonnées <x><y> pour la deuxième. Si aucune des images n'a pu être chargée, on recourt au mot-clé progress :
cursor: url(one.svg), url(two.svg) 5 5, progress;- -
<url>url(…) ou une liste d'URL séparées par des virgules url(…), url(…), … pointant vers un fichier image. On peut utiliser plusieurs url(), au cas où certains types d'images ne sont pas pris en charge. Il est obligatoire qu'une valeur non-URL soit présente à la fin de cette liste.<x> <y> {{experimental_inline}}Vous pouvez déplacer votre souris au-dessus de chaque ligne pour tester.
- -| Catégorie | -Valeur CSS | -Rendu | -Description | -
|---|---|---|---|
| Général | -auto |
- - | Le navigateur détermine le curseur à afficher en fonction du contexte (par exemple, l'effet sera équivalent à text lors du survol du texte). |
-
default |
- ![]() |
- Le curseur par défaut de la plateforme (qui est généralement une flèche). | -|
none |
- - | Aucun curseur n'est affiché. | -|
| Liens & états | -context-menu |
- ![]() |
- Un menu contextuel est disponible sous le curseur. Seul IE 10 et les versions supérieures ont implémenté cette valeur Bur Windows : bug 258960. | -
help |
- ![]() |
- Le pointeur indique qu'une aide est disponible. | -|
pointer |
- ![]() |
- Le curseur est un pointeur qui indique un lien ; généralement c'est une main. | -|
progress |
- ![]() |
- Le programme est occupé en arrière-plan mais l'utilisateur peut toujours interagir avec l'interface (à la différence de wait). |
- |
wait |
- ![]() |
- Le programme est occupé, empêchant toute interaction. | -|
| Sélection | -cell |
- ![]() |
- Le pointeur indique que la ou les cellules du tableau peuvent être sélectionnées. | -
crosshair |
- ![]() |
- Un curseur en forme de croix, généralement utilisé pour indiquer une sélection sur une image. | -|
text |
- ![]() |
- Le pointeur indique que le texte peut être sélectionné. | -|
vertical-text |
- ![]() |
- Le pointeur indique que du texte vertical peut être sélectionné. | -|
| Glisser/déposer | -alias |
- ![]() |
- Le pointeur indique qu'un alias ou qu'un raccourci sera créé. | -
copy |
- ![]() |
- Le pointeur indique que quelque chose devra être copié. | -|
move |
- ![]() |
- L'objet survolé devra être déplacé. | -|
no-drop |
- ![]() |
- Le curseur indique qu'on ne peut pas déposer d'élément à cet endroit. bug 275173 pour Windows et Mac OS X, « no-drop a le même effet que not-allowed ». |
- |
grab |
- ![]() |
-
- Le pointeur indique que le contenu peut être accroché/attrapé ou est accroché/attrapé pour être glissé et déposé quelque part. - |
- |
grabbing |
- ![]() |
- ||
not-allowed |
- ![]() |
- Le curseur indique que quelque chose ne peut pas être fait. | -|
| Redimensionnement & défilement | -all-scroll |
- ![]() |
- Le curseur indique qu'on peut faire défiler le contenu dans n'importe quelle direction. Bug 275174 pour Windows, « all-scroll a le même effet que move". |
-
col-resize |
- ![]() |
- L'élément ou la colonne peut être redimensionné horizontalement. | -|
row-resize |
- ![]() |
- L'élément ou la ligne peut être redimensionné verticalement. | -|
n-resize |
- ![]() |
-
- Un bord peut être déplacé. Par exemple, le curseur Dans certains environnements, un curseur bidirectionnel équivalent est affiché (ex. |
- |
e-resize |
- ![]() |
- ||
s-resize |
- ![]() |
- ||
w-resize |
- ![]() |
- ||
ne-resize |
- ![]() |
- ||
nw-resize |
- ![]() |
- ||
se-resize |
- ![]() |
- ||
sw-resize |
- ![]() |
- ||
ew-resize |
- ![]() |
- Le pointeur indique un redimensionnement bidirectionnel. | -|
ns-resize |
- ![]() |
- ||
nesw-resize |
- ![]() |
- ||
nwse-resize |
- ![]() |
- ||
| Zoom | -zoom-in |
- ![]() |
-
- Le pointeur indique qu'on peut zoomer/dézoomer sur le contenu. - |
-
zoom-out |
- ![]() |
-
Bien que la spécification ne définisse aucune limite de taille pour les curseurs, chaque navigateur/agent utilisateur pourra imposer la sienne. Les images de curseur utilisées qui dépassent les limites prises en charge seront généralement ignorées.
- -Pour plus d'informations, voir le tableau de compatibilité ci-après.
- -.toto {
- cursor: crosshair;
-}
-
-/* On utilise la valeur préfixée */
-/* si "zoom-in" n'est pas prise en */
-/* charge */
-.truc {
- cursor: -webkit-zoom-in;
- cursor: zoom-in;
-}
-
-
-<p class="toto"> - On dirait qu'on pourrait sélectionner une zone. -</p> - -<p class="truc"> - Et là on peut zoomer. -</p>- -
{{EmbedLiveSample("examples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#cursor', 'cursor')}} | -{{Spec2('CSS3 Basic UI')}} | -Ajout de plusieurs mots-clés et de la syntaxe de positionnement pour url(). |
-
| {{SpecName('CSS2.1', 'ui.html#cursor-props', 'cursor')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -cursorpointer-eventsLa propriété CSS cursor définit la forme du curseur (s'il y en a un) lorsque le pointeur est au-dessus de l'élément.
/* Valeurs avec un mot-clé */ +cursor: pointer; +cursor: auto; + +/* Une valeur d'URL avec un mot-clé par défaut */ +cursor: url(hand.cur), pointer; + +/* Une valeur d'URL avec des coordonnées et un mot-clé par défaut */ +cursor: url(cursor1.png) 4 12, auto; +cursor: url(cursor2.png) 2 2, pointer; + +/* Valeurs globales */ +cursor: inherit; +cursor: initial; +cursor: unset; ++ +
La propriété cursor peut être définie grâce à zéro ou plusieurs valeurs <url> séparées par des virgules et suivi par un unique mot-clé obligatoire. Chaque <url> doit pointer vers un fichier image. Le navigateur essaiera de télécharger la première image indiquée et passera à la suivante s'il ne peut pas. Si aucune image ne fonctionne, il utilisera le mot-clé final.
Chaque <url> peut éventuellement être suivi par un couple de nombres séparés par un espace qui représente les coordonnées (abscisse puis ordonnée) <x><y> Ces coordonnées permettent de paramétrer le point d'action (hotspot) du curseur par rapport au coin en haut à gauche de l'image.
Par exemple, on peut indiquer deux images grâce à deux valeurs <url> et fournir des coordonnées <x><y> pour la deuxième. Si aucune des images n'a pu être chargée, on recourt au mot-clé progress :
cursor: url(one.svg), url(two.svg) 5 5, progress;+ +
<url>url(…) ou une liste d'URL séparées par des virgules url(…), url(…), … pointant vers un fichier image. On peut utiliser plusieurs url(), au cas où certains types d'images ne sont pas pris en charge. Il est obligatoire qu'une valeur non-URL soit présente à la fin de cette liste.<x> <y> {{experimental_inline}}Vous pouvez déplacer votre souris au-dessus de chaque ligne pour tester.
+ +| Catégorie | +Valeur CSS | +Rendu | +Description | +
|---|---|---|---|
| Général | +auto |
+ + | Le navigateur détermine le curseur à afficher en fonction du contexte (par exemple, l'effet sera équivalent à text lors du survol du texte). |
+
default |
+ ![]() |
+ Le curseur par défaut de la plateforme (qui est généralement une flèche). | +|
none |
+ + | Aucun curseur n'est affiché. | +|
| Liens & états | +context-menu |
+ ![]() |
+ Un menu contextuel est disponible sous le curseur. Seul IE 10 et les versions supérieures ont implémenté cette valeur Bur Windows : bug 258960. | +
help |
+ ![]() |
+ Le pointeur indique qu'une aide est disponible. | +|
pointer |
+ ![]() |
+ Le curseur est un pointeur qui indique un lien ; généralement c'est une main. | +|
progress |
+ ![]() |
+ Le programme est occupé en arrière-plan mais l'utilisateur peut toujours interagir avec l'interface (à la différence de wait). |
+ |
wait |
+ ![]() |
+ Le programme est occupé, empêchant toute interaction. | +|
| Sélection | +cell |
+ ![]() |
+ Le pointeur indique que la ou les cellules du tableau peuvent être sélectionnées. | +
crosshair |
+ ![]() |
+ Un curseur en forme de croix, généralement utilisé pour indiquer une sélection sur une image. | +|
text |
+ ![]() |
+ Le pointeur indique que le texte peut être sélectionné. | +|
vertical-text |
+ ![]() |
+ Le pointeur indique que du texte vertical peut être sélectionné. | +|
| Glisser/déposer | +alias |
+ ![]() |
+ Le pointeur indique qu'un alias ou qu'un raccourci sera créé. | +
copy |
+ ![]() |
+ Le pointeur indique que quelque chose devra être copié. | +|
move |
+ ![]() |
+ L'objet survolé devra être déplacé. | +|
no-drop |
+ ![]() |
+ Le curseur indique qu'on ne peut pas déposer d'élément à cet endroit. bug 275173 pour Windows et Mac OS X, « no-drop a le même effet que not-allowed ». |
+ |
grab |
+ ![]() |
+
+ Le pointeur indique que le contenu peut être accroché/attrapé ou est accroché/attrapé pour être glissé et déposé quelque part. + |
+ |
grabbing |
+ ![]() |
+ ||
not-allowed |
+ ![]() |
+ Le curseur indique que quelque chose ne peut pas être fait. | +|
| Redimensionnement & défilement | +all-scroll |
+ ![]() |
+ Le curseur indique qu'on peut faire défiler le contenu dans n'importe quelle direction. Bug 275174 pour Windows, « all-scroll a le même effet que move". |
+
col-resize |
+ ![]() |
+ L'élément ou la colonne peut être redimensionné horizontalement. | +|
row-resize |
+ ![]() |
+ L'élément ou la ligne peut être redimensionné verticalement. | +|
n-resize |
+ ![]() |
+
+ Un bord peut être déplacé. Par exemple, le curseur Dans certains environnements, un curseur bidirectionnel équivalent est affiché (ex. |
+ |
e-resize |
+ ![]() |
+ ||
s-resize |
+ ![]() |
+ ||
w-resize |
+ ![]() |
+ ||
ne-resize |
+ ![]() |
+ ||
nw-resize |
+ ![]() |
+ ||
se-resize |
+ ![]() |
+ ||
sw-resize |
+ ![]() |
+ ||
ew-resize |
+ ![]() |
+ Le pointeur indique un redimensionnement bidirectionnel. | +|
ns-resize |
+ ![]() |
+ ||
nesw-resize |
+ ![]() |
+ ||
nwse-resize |
+ ![]() |
+ ||
| Zoom | +zoom-in |
+ ![]() |
+
+ Le pointeur indique qu'on peut zoomer/dézoomer sur le contenu. + |
+
zoom-out |
+ ![]() |
+
Bien que la spécification ne définisse aucune limite de taille pour les curseurs, chaque navigateur/agent utilisateur pourra imposer la sienne. Les images de curseur utilisées qui dépassent les limites prises en charge seront généralement ignorées.
+ +Pour plus d'informations, voir le tableau de compatibilité ci-après.
+ +.toto {
+ cursor: crosshair;
+}
+
+/* On utilise la valeur préfixée */
+/* si "zoom-in" n'est pas prise en */
+/* charge */
+.truc {
+ cursor: -webkit-zoom-in;
+ cursor: zoom-in;
+}
+
+
+<p class="toto"> + On dirait qu'on pourrait sélectionner une zone. +</p> + +<p class="truc"> + Et là on peut zoomer. +</p>+ +
{{EmbedLiveSample("examples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#cursor', 'cursor')}} | +{{Spec2('CSS3 Basic UI')}} | +Ajout de plusieurs mots-clés et de la syntaxe de positionnement pour url(). |
+
| {{SpecName('CSS2.1', 'ui.html#cursor-props', 'cursor')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +cursorpointer-eventsLe type de données CSS <custom-ident> permet de représenter des chaînes de caractères arbitraires définies par l'utilisateur et qui sont utilisées comme identifiants. Ce type de données est sensible à la casse et pour chaque contexte d'utilisation, plusieurs valeurs sont exclues afin d'éviter des ambiguïtés et des erreurs.
La syntaxe est proche de celle utilisée pour les identifiants CSS. Une valeur <custom-ident> est sensible à la casse et est une séquence de caractères dont les caractères peuvent être :
A à Z ou a à z),0 à 9),-)_),\),Le premier caractère de l'identifiant ne doit pas être un chiffre, un tiret suivi d'un chiffre ou un tiret suivi d'un autre tiret. Une valeur <custom-ident> ne doit pas être encadrée entre quotes ou entre doubles quotes car ce serait alors une valeur {{cssxref("<string>")}}.
On notera que id1, Id1, iD1 et ID1 sont des identifiants différents car leurs casses sont différentes. En revanche, il existe plusieurs façons d'échapper un même caractère et toto\? et toto\3F représentent donc le même identifiant.
Afin d'éviter des ambiguïtés dangereuses, chaque propriété qui utilise <custom-ident> définit également une liste de valeurs interdites :
unset, initial et inherit ainsi que la valeur none.unset, initial et inherit ainsi que la valeur none.unset, initial et inherit ainsi que les valeurs none, inline, outside et d'autres valeurs prédéfinies, implémentées par les différents navigateurs : disc, circle, square, decimal, cjk-decimal, decimal-leading-zero, lower-roman, upper-roman, lower-greek, lower-alpha, lower-latin, upper-alpha, upper-latin, arabic-indic, armenian, bengali, cambodian, cjk-earthly-branch, cjk-heavenly-stem, cjk-ideographic, devanagari, ethiopic-numeric, georgian, gujarati, gurmukhi, hebrew, hiragana, hiragana-iroha, japanese-formal, japanese-informal, kannada, katakana, katakana-iroha, khmer, korean-hangul-formal, korean-hanja-formal, korean-hanja-informal, lao, lower-armenian, malayalam, mongolian, myanmar, oriya, persian, simp-chinese-formal, simp-chinese-informal, tamil, telugu, thai, tibetan, trad-chinese-formal, trad-chinese-informal, upper-armenian, disclosure-open et disclosure-close.span.unset, initial et inherit ainsi que les valeurs will-change, auto, scroll-position et contents.Voici des identifiants valides
- -nono79 Un mélange de caractères alphanumériques. -ground-level Un mélange de caractères alphanumériques avec un tiret. --test Un tiret suivi d'un mélange de caractères alphanumériques. -_internal Un tiret bas suivi d'un mélange de caractères alphanumériques. -\22 toto Un caractère Unicode suivi par une série de caractères alphanumériques. -bili\.bob Le point est bien échappé. -- -
Voici des identifiants invalides :
- -34rem Il ne doit pas démarrer par un chiffre.
--12rad Il ne doit pas démarrer par un tiret suivi d'un chiffre.
-bili.bob Il ne doit contenir que des caractères alphanumériques. _ et - n'ont pas besoin d'être échappés.
---toto Il ne doit pas démarrer avec deux tirets.
-'bilibob' Ce n'est pas une valeur <user-ident> mais une {{cssxref("<string>")}}.
-"bilibob" Ce n'est pas une valeur <user-ident> mais une {{cssxref("<string>")}}.
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
{{SpecName('CSS Will Change', '#valdef-will-change-custom-ident', '<custom-ident> for will-change')}} |
- {{Spec2('CSS Will Change')}} | -Définition des valeurs exclues pour {{cssxref("will-change")}}. | -
{{SpecName('CSS3 Counter Styles', '#typedef-counter-style-name', '<custom-ident> for list-style-type')}} |
- {{Spec2('CSS3 Counter Styles')}} | -Utilisation de <custom-ident> à la place d'une liste finie de mots-clés. Définition des valeurs exclues pour {{cssxref("list-style-type")}} et {{cssxref("@counter-style")}}. |
-
{{SpecName('CSS3 Lists', '#counter-properties', '<custom-ident> for counter-*')}} |
- {{Spec2('CSS3 Lists')}} | -<identifier> est renommé en <custom-ident>. Son utilisation est ajoutée pour la propriété counter-set. |
-
{{SpecName('CSS3 Animations', '#typedef-single-animation-name', '<custom-ident> for animation-name')}} |
- {{Spec2('CSS3 Animations')}} | -Définition des valeurs exclues pour {{cssxref("animation-name")}}. | -
{{SpecName('CSS3 Values', '#identifier-value', '<custom-ident>')}} |
- {{Spec2('CSS3 Values')}} | -<identifier> est renommé en <custom-ident>. Devient un pseudo-type et est lié aux différents cas d'utilisation pour la définition des valeurs exclues. |
-
{{SpecName('CSS2.1', 'syndata.html#value-def-identifier', '<identifier>')}} |
- {{Spec2('CSS2.1')}} | -Définition initiale. | -
Ce type de données n'est pas un type de données « réel » mais un type artificiel permettant de simplifier la description des valeurs permises. Il n'y a donc pas de données de compatibilité stricto sensu.
- -Le type de données CSS <custom-ident> permet de représenter des chaînes de caractères arbitraires définies par l'utilisateur et qui sont utilisées comme identifiants. Ce type de données est sensible à la casse et pour chaque contexte d'utilisation, plusieurs valeurs sont exclues afin d'éviter des ambiguïtés et des erreurs.
La syntaxe est proche de celle utilisée pour les identifiants CSS. Une valeur <custom-ident> est sensible à la casse et est une séquence de caractères dont les caractères peuvent être :
A à Z ou a à z),0 à 9),-)_),\),Le premier caractère de l'identifiant ne doit pas être un chiffre, un tiret suivi d'un chiffre ou un tiret suivi d'un autre tiret. Une valeur <custom-ident> ne doit pas être encadrée entre quotes ou entre doubles quotes car ce serait alors une valeur {{cssxref("<string>")}}.
On notera que id1, Id1, iD1 et ID1 sont des identifiants différents car leurs casses sont différentes. En revanche, il existe plusieurs façons d'échapper un même caractère et toto\? et toto\3F représentent donc le même identifiant.
Afin d'éviter des ambiguïtés dangereuses, chaque propriété qui utilise <custom-ident> définit également une liste de valeurs interdites :
unset, initial et inherit ainsi que la valeur none.unset, initial et inherit ainsi que la valeur none.unset, initial et inherit ainsi que les valeurs none, inline, outside et d'autres valeurs prédéfinies, implémentées par les différents navigateurs : disc, circle, square, decimal, cjk-decimal, decimal-leading-zero, lower-roman, upper-roman, lower-greek, lower-alpha, lower-latin, upper-alpha, upper-latin, arabic-indic, armenian, bengali, cambodian, cjk-earthly-branch, cjk-heavenly-stem, cjk-ideographic, devanagari, ethiopic-numeric, georgian, gujarati, gurmukhi, hebrew, hiragana, hiragana-iroha, japanese-formal, japanese-informal, kannada, katakana, katakana-iroha, khmer, korean-hangul-formal, korean-hanja-formal, korean-hanja-informal, lao, lower-armenian, malayalam, mongolian, myanmar, oriya, persian, simp-chinese-formal, simp-chinese-informal, tamil, telugu, thai, tibetan, trad-chinese-formal, trad-chinese-informal, upper-armenian, disclosure-open et disclosure-close.span.unset, initial et inherit ainsi que les valeurs will-change, auto, scroll-position et contents.Voici des identifiants valides
+ +nono79 Un mélange de caractères alphanumériques. +ground-level Un mélange de caractères alphanumériques avec un tiret. +-test Un tiret suivi d'un mélange de caractères alphanumériques. +_internal Un tiret bas suivi d'un mélange de caractères alphanumériques. +\22 toto Un caractère Unicode suivi par une série de caractères alphanumériques. +bili\.bob Le point est bien échappé. ++ +
Voici des identifiants invalides :
+ +34rem Il ne doit pas démarrer par un chiffre.
+-12rad Il ne doit pas démarrer par un tiret suivi d'un chiffre.
+bili.bob Il ne doit contenir que des caractères alphanumériques. _ et - n'ont pas besoin d'être échappés.
+--toto Il ne doit pas démarrer avec deux tirets.
+'bilibob' Ce n'est pas une valeur <user-ident> mais une {{cssxref("<string>")}}.
+"bilibob" Ce n'est pas une valeur <user-ident> mais une {{cssxref("<string>")}}.
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
{{SpecName('CSS Will Change', '#valdef-will-change-custom-ident', '<custom-ident> for will-change')}} |
+ {{Spec2('CSS Will Change')}} | +Définition des valeurs exclues pour {{cssxref("will-change")}}. | +
{{SpecName('CSS3 Counter Styles', '#typedef-counter-style-name', '<custom-ident> for list-style-type')}} |
+ {{Spec2('CSS3 Counter Styles')}} | +Utilisation de <custom-ident> à la place d'une liste finie de mots-clés. Définition des valeurs exclues pour {{cssxref("list-style-type")}} et {{cssxref("@counter-style")}}. |
+
{{SpecName('CSS3 Lists', '#counter-properties', '<custom-ident> for counter-*')}} |
+ {{Spec2('CSS3 Lists')}} | +<identifier> est renommé en <custom-ident>. Son utilisation est ajoutée pour la propriété counter-set. |
+
{{SpecName('CSS3 Animations', '#typedef-single-animation-name', '<custom-ident> for animation-name')}} |
+ {{Spec2('CSS3 Animations')}} | +Définition des valeurs exclues pour {{cssxref("animation-name")}}. | +
{{SpecName('CSS3 Values', '#identifier-value', '<custom-ident>')}} |
+ {{Spec2('CSS3 Values')}} | +<identifier> est renommé en <custom-ident>. Devient un pseudo-type et est lié aux différents cas d'utilisation pour la définition des valeurs exclues. |
+
{{SpecName('CSS2.1', 'syndata.html#value-def-identifier', '<identifier>')}} |
+ {{Spec2('CSS2.1')}} | +Définition initiale. | +
Ce type de données n'est pas un type de données « réel » mais un type artificiel permettant de simplifier la description des valeurs permises. Il n'y a donc pas de données de compatibilité stricto sensu.
+ +Le combinateur de descendance, représenté par un blanc (ou plusieurs blancs à la suite) permet de combiner deux sélecteurs (sous la forme sélecteur₁ sélecteur₂) afin de cibler les éléments qui correspondent au second sélecteur uniquement si ceux-ci ont un élément ancêtre qui correspond au premier sélecteur. Les sélecteurs qui utilisent ce combinateur sont souvent appelés des sélecteurs de descendants.
/* Les éléments <li> qui sont des descendants */
-/* d'un <ul class="mon-truc"> */
-ul.mon-truc li {
- margin: 2em;
-}
-
-Techniquement, le combinateur de descendance est représenté par un ou plusieurs blancs (les caractères qui sont des blancs sont : l'espace, le retour chariot, le saut de ligne, la tabulation verticale, la tabulation horizontale) entre deux sélecteurs lorsqu'il n'y a aucun autre combinateur. Les blancs utilisés pour le combinateur peuvent éventuellement contenir des commentaires CSS.
- -selecteur1 selecteur2 { /* déclarations CSS */ }
-
-
-li {
- list-style-type: disc;
-}
-
-li li {
- list-style-type: circle;
-}
-
-
-<ul> - <li> - <div>Élément 1</div> - <ul> - <li>Sous-élément A</li> - <li>Sous-élément B</li> - </ul> - </li> - <li> - <div>Élément 2</div> - <ul> - <li>Sous-élément A</li> - <li>Sous-élément B</li> - </ul> - </li> -</ul> -- -
{{EmbedLiveSample('Exemples')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Selectors", "#descendant-combinators", "descendant combinator")}} | -{{Spec2("CSS4 Selectors")}} | -- |
| {{SpecName('CSS3 Selectors', '#descendant-combinators', 'descendant combinator')}} | -{{Spec2('CSS3 Selectors')}} | -- |
| {{SpecName('CSS2.1', 'selector.html#descendant-selectors', 'descendant selectors')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS1', '#contextual-selectors', 'contextual selectors')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{Compat("css.selectors.descendant")}}
- -Le combinateur de descendance, représenté par un blanc (ou plusieurs blancs à la suite) permet de combiner deux sélecteurs (sous la forme sélecteur₁ sélecteur₂) afin de cibler les éléments qui correspondent au second sélecteur uniquement si ceux-ci ont un élément ancêtre qui correspond au premier sélecteur. Les sélecteurs qui utilisent ce combinateur sont souvent appelés des sélecteurs de descendants.
/* Les éléments <li> qui sont des descendants */
+/* d'un <ul class="mon-truc"> */
+ul.mon-truc li {
+ margin: 2em;
+}
+
+Techniquement, le combinateur de descendance est représenté par un ou plusieurs blancs (les caractères qui sont des blancs sont : l'espace, le retour chariot, le saut de ligne, la tabulation verticale, la tabulation horizontale) entre deux sélecteurs lorsqu'il n'y a aucun autre combinateur. Les blancs utilisés pour le combinateur peuvent éventuellement contenir des commentaires CSS.
+ +selecteur1 selecteur2 { /* déclarations CSS */ }
+
+
+li {
+ list-style-type: disc;
+}
+
+li li {
+ list-style-type: circle;
+}
+
+
+<ul> + <li> + <div>Élément 1</div> + <ul> + <li>Sous-élément A</li> + <li>Sous-élément B</li> + </ul> + </li> + <li> + <div>Élément 2</div> + <ul> + <li>Sous-élément A</li> + <li>Sous-élément B</li> + </ul> + </li> +</ul> ++ +
{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Selectors", "#descendant-combinators", "descendant combinator")}} | +{{Spec2("CSS4 Selectors")}} | ++ |
| {{SpecName('CSS3 Selectors', '#descendant-combinators', 'descendant combinator')}} | +{{Spec2('CSS3 Selectors')}} | ++ |
| {{SpecName('CSS2.1', 'selector.html#descendant-selectors', 'descendant selectors')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS1', '#contextual-selectors', 'contextual selectors')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{Compat("css.selectors.descendant")}}
+ +Le type de donnée <dimension> représente une valeur de type {{CSSxRef("<number>")}} directement suivie d'une unité : par exemple 10px.
CSS utilise des dimensions pour définir des distances (type {{CSSxRef("<length>")}}), des durées (type {{CSSxRef("<time>")}}), des fréquences (type {{CSSxRef("<frequency>")}}), des résolutions (type {{CSSxRef("<resolution>")}}) ainsi que d'autres quantités.
- -La syntaxe d'une valeur de type <dimension> est un nombre (valeur de type {{CSSxRef("<number>")}}) immédiatement suivi d'une unité représentée par son identifiant. Les identifiants utilisés pour les unités sont insensibles à la casse.
12px 12 pixels -1rem 1 rem -1.2pt 1.2 points -2200ms 2200 millisecondes -200hz 200 Hertz -200Hz 200 Hertz (les unités sont insensibles à la casse) -- -
12 px L'unité doit immédiatement être indiquée après le nombre -12"px" Les unités sont des identifiants et ne doivent pas être entourées de quotes -- -
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Values", "#dimensions", "<dimension>")}} | -{{Spec2("CSS4 Values")}} | -Adds cap, ic, lh, rlh, vi, vb |
-
| {{SpecName("CSS3 Values", "#dimensions", "<dimension>")}} | -{{Spec2("CSS3 Values")}} | -Adds ch, rem, vw, vw, vmin, vmax, Q |
-
| {{SpecName("CSS2.1", "syndata.html#numbers", "<dimension>")}} | -{{Spec2("CSS2.1")}} | -Defined under Numbers and Length | -
| {{SpecName("CSS1", "", "<dimension>")}} | -{{Spec2("CSS1")}} | -Initial definition under "length units" | -
{{Compat("css.types.dimension")}}
diff --git a/files/fr/web/css/dimension/index.md b/files/fr/web/css/dimension/index.md new file mode 100644 index 0000000000..6be0130cde --- /dev/null +++ b/files/fr/web/css/dimension/index.md @@ -0,0 +1,74 @@ +--- +title:Le type de donnée <dimension> représente une valeur de type {{CSSxRef("<number>")}} directement suivie d'une unité : par exemple 10px.
CSS utilise des dimensions pour définir des distances (type {{CSSxRef("<length>")}}), des durées (type {{CSSxRef("<time>")}}), des fréquences (type {{CSSxRef("<frequency>")}}), des résolutions (type {{CSSxRef("<resolution>")}}) ainsi que d'autres quantités.
+ +La syntaxe d'une valeur de type <dimension> est un nombre (valeur de type {{CSSxRef("<number>")}}) immédiatement suivi d'une unité représentée par son identifiant. Les identifiants utilisés pour les unités sont insensibles à la casse.
12px 12 pixels +1rem 1 rem +1.2pt 1.2 points +2200ms 2200 millisecondes +200hz 200 Hertz +200Hz 200 Hertz (les unités sont insensibles à la casse) ++ +
12 px L'unité doit immédiatement être indiquée après le nombre +12"px" Les unités sont des identifiants et ne doivent pas être entourées de quotes ++ +
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Values", "#dimensions", "<dimension>")}} | +{{Spec2("CSS4 Values")}} | +Adds cap, ic, lh, rlh, vi, vb |
+
| {{SpecName("CSS3 Values", "#dimensions", "<dimension>")}} | +{{Spec2("CSS3 Values")}} | +Adds ch, rem, vw, vw, vmin, vmax, Q |
+
| {{SpecName("CSS2.1", "syndata.html#numbers", "<dimension>")}} | +{{Spec2("CSS2.1")}} | +Defined under Numbers and Length | +
| {{SpecName("CSS1", "", "<dimension>")}} | +{{Spec2("CSS1")}} | +Initial definition under "length units" | +
{{Compat("css.types.dimension")}}
diff --git a/files/fr/web/css/direction/index.html b/files/fr/web/css/direction/index.html deleted file mode 100644 index 8ffd33d2de..0000000000 --- a/files/fr/web/css/direction/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: direction -slug: Web/CSS/direction -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/direction ---- -La propriété direction doit être paramétrée afin de correspondre à la direction du texte: rtl (Right To Left pour droite à gauche) pour les textes en hébreu ou en arabe et ltr (Left To Right pour gauche à droite) pour les autres. Cela doit normalement être fait dans le document (par exemple, en utilisant l'attribut dir en HTML) plutôt qu'avec une feuille de style CSS.
La propriété définit la direction principale du texte des éléments de type bloc et celle des éléments incorporés créés par la propriété {{cssxref("unicode-bidi")}}. Elle définit également l'alignement par défaut du texte et des éléments de type bloc, ainsi que le sens de progression des cellules dans une ligne de tableau.
- -Contrairement à l'attribut HTML dir, la propriété direction n'est pas héritée pour les cellules depuis les colonnes d'un tableau car l'héritage CSS suit l'arborescence du document et les cellules sont à l'intérieur des lignes et non à l'intérieur des colonnes.
Les propriétés direction et {{cssxref("unicode-bidi")}} sont les deux seuls propriétés qui ne sont pas affectés par la propriété raccourcie {{cssxref("all")}}.
direction: ltr; -direction: rtl; - -/* Valeurs globales */ -direction: inherit; -direction: initial; -direction: unset; -- -
ltrrtlAfin que la propriété direction ait un effet sur les éléments en ligne, il faut que la valeur de la propriété {{cssxref("unicode-bidi")}} soit embed ou override.
blockquote {
- direction: rtl;
-}
-
-
-<blockquote> - Du reste, depuis son bain dans la mare aux larmes, - tout était changé : la salle, la table de verre, et - la petite porte avaient complétement disparu. -</blockquote>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Writing Modes', '#direction', 'direction')}} | -{{Spec2('CSS3 Writing Modes')}} | -Aucune modification. | -
| {{SpecName('CSS2.1', 'visuren.html#direction', 'direction')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.direction")}}
- -La propriété direction doit être paramétrée afin de correspondre à la direction du texte: rtl (Right To Left pour droite à gauche) pour les textes en hébreu ou en arabe et ltr (Left To Right pour gauche à droite) pour les autres. Cela doit normalement être fait dans le document (par exemple, en utilisant l'attribut dir en HTML) plutôt qu'avec une feuille de style CSS.
La propriété définit la direction principale du texte des éléments de type bloc et celle des éléments incorporés créés par la propriété {{cssxref("unicode-bidi")}}. Elle définit également l'alignement par défaut du texte et des éléments de type bloc, ainsi que le sens de progression des cellules dans une ligne de tableau.
+ +Contrairement à l'attribut HTML dir, la propriété direction n'est pas héritée pour les cellules depuis les colonnes d'un tableau car l'héritage CSS suit l'arborescence du document et les cellules sont à l'intérieur des lignes et non à l'intérieur des colonnes.
Les propriétés direction et {{cssxref("unicode-bidi")}} sont les deux seuls propriétés qui ne sont pas affectés par la propriété raccourcie {{cssxref("all")}}.
direction: ltr; +direction: rtl; + +/* Valeurs globales */ +direction: inherit; +direction: initial; +direction: unset; ++ +
ltrrtlAfin que la propriété direction ait un effet sur les éléments en ligne, il faut que la valeur de la propriété {{cssxref("unicode-bidi")}} soit embed ou override.
blockquote {
+ direction: rtl;
+}
+
+
+<blockquote> + Du reste, depuis son bain dans la mare aux larmes, + tout était changé : la salle, la table de verre, et + la petite porte avaient complétement disparu. +</blockquote>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Writing Modes', '#direction', 'direction')}} | +{{Spec2('CSS3 Writing Modes')}} | +Aucune modification. | +
| {{SpecName('CSS2.1', 'visuren.html#direction', 'direction')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.direction")}}
+ +Ces mots-clés définissent si un élément génère des boîtes d'affichage ou aucune.
- -contents {{Experimental_Inline}}contents affecte les éléments « inhabituels » tels que les éléments remplacés. Voir Appendix B: Effects of display: contents on Unusual Elements pour plus de détails.display: contents sont retirés de l'arbre d'accessibilité et ne sont donc pas parcourus par les lecteurs d'écran.nonedisplay: nonep.secret {
- display: none;
-}
-
-<p>Texte visible</p> -<p class="secret">Texte invisible</p>- -
{{EmbedLiveSample("display_none", "100%", 60)}}
- -display: contentsDans cet exemple, l'élément {{htmlelement("div")}} externe a une bordure rouge sur 2 pixels et mesure 300 pixels de large. Toutefois, cet élément est ciblé avec display: contents et l'élément <div> ne sera pas affiché tel quel : la bordure et la largeur ne s'appliqueront pas et l'élément fils sera affiché comme si le parent n'avait pas existé.
.outer {
- border: 2px solid red;
- width: 300px;
- display: contents;
-}
-
-.outer > div {
- border: 1px solid green;
-}
-
-
-<div class="outer"> - <div>Inner div.</div> -</div> -- -
{{EmbedLiveSample("Display_contents", 300, 60)}}
- -Via leur implémentation, la plupart des navigation retireront un élément de l'arbre d'accessibilité si celui-ci reçoit display: contents. Cet élément (ainsi que ses descendants pour certains navigateurs) ne sera plus annoncé par les outils de lecture d'écran. Ce comportement est incorrect selon la spécification CSSWG.
display: contents, par Hidde de Vries (en anglais)display: contents n'est pas un outil de réinitialisation CSS, par Adrian Roselli (en anglais)contents{{Compat("css.properties.display.contents", 10)}}
- -display: contents n'est pas un outil de réinitialisation CSS (en anglais)display: contents (en anglais)Ces mots-clés définissent si un élément génère des boîtes d'affichage ou aucune.
+ +contents {{Experimental_Inline}}contents affecte les éléments « inhabituels » tels que les éléments remplacés. Voir Appendix B: Effects of display: contents on Unusual Elements pour plus de détails.display: contents sont retirés de l'arbre d'accessibilité et ne sont donc pas parcourus par les lecteurs d'écran.nonedisplay: nonep.secret {
+ display: none;
+}
+
+<p>Texte visible</p> +<p class="secret">Texte invisible</p>+ +
{{EmbedLiveSample("display_none", "100%", 60)}}
+ +display: contentsDans cet exemple, l'élément {{htmlelement("div")}} externe a une bordure rouge sur 2 pixels et mesure 300 pixels de large. Toutefois, cet élément est ciblé avec display: contents et l'élément <div> ne sera pas affiché tel quel : la bordure et la largeur ne s'appliqueront pas et l'élément fils sera affiché comme si le parent n'avait pas existé.
.outer {
+ border: 2px solid red;
+ width: 300px;
+ display: contents;
+}
+
+.outer > div {
+ border: 1px solid green;
+}
+
+
+<div class="outer"> + <div>Inner div.</div> +</div> ++ +
{{EmbedLiveSample("Display_contents", 300, 60)}}
+ +Via leur implémentation, la plupart des navigation retireront un élément de l'arbre d'accessibilité si celui-ci reçoit display: contents. Cet élément (ainsi que ses descendants pour certains navigateurs) ne sera plus annoncé par les outils de lecture d'écran. Ce comportement est incorrect selon la spécification CSSWG.
display: contents, par Hidde de Vries (en anglais)display: contents n'est pas un outil de réinitialisation CSS, par Adrian Roselli (en anglais)contents{{Compat("css.properties.display.contents", 10)}}
+ +display: contents n'est pas un outil de réinitialisation CSS (en anglais)display: contents (en anglais)Ces mots-clés définissent le type d'affichage ({{CSSxRef("display")}}) pour l'intérieur de l'élément. Ce type servira à la disposition du contenu de l'élément (si ce contenu n'est pas un élément remplacé). Ces mots-clés sont des valeurs de la propriété display et peuvent, historiquement être utilisé seul, ou plus récemment (cf. la spécification de niveau 3), être utilisé en combinaison avec un mot-clé {{CSSxRef("<display-outside>")}}.
Une valeur <display-inside> est définie avec l'un des mots-clés suivants :
flow {{Experimental_Inline}}Si le type d'affichage extérieur est inline ou run-in et que l'élément participe à un contexte de formatage bloc ou en ligne, il génèrera une boîte en ligne. Sinon, il génèrera un conteneur de bloc.
Selon la valeur d'autres propriétés (telles que {{CSSxRef("position")}}, {{CSSxRef("float")}}, ou {{CSSxRef("overflow")}}) et selon que l'élément partcipe à un contexte de mise en forme de bloc ou en ligne, l'élément crée un nouveau contexte de formatage de bloc (BFC) pour son contenu ou intègre son contenu dans le contexte parent.
-flow-root {{Experimental_Inline}}tableflexgridruby {{Experimental_Inline}}Note : Les navigateurs qui prennent en charge la syntaxe avec deux valeurs peuvent n'utiliser que <display-inside> lorsque c'est cohérent. Ainsi, avec display: flex ou display: grid, la valeur utilisée de <display-outside> sera nécessairement block. On a ainsi le résultat attendu car on doit avoir display: grid avec un conteneur qui soit un bloc.
Dans l'exemple qui suit, la boîte parente est ciblée avec display: flow-root et crée donc un nouveau contexte de formatage de bloc qui contient l'élément flottant.
.box {
- background-color: rgb(224, 206, 247);
- border: 5px solid rebeccapurple;
- display: flow-root;
-}
-
-.float {
- float: left;
- width: 200px;
- height: 150px;
- background-color: white;
- border:1px solid black;
- padding: 10px;
-}
-
-<div class="box"> - <div class="float">I am a floated box!</div> - <p>I am content inside the container.</p> -</div> -- -
{{EmbedLiveSample("Exemples", "100%", 180)}}
- -{{Compat("css.properties.display.multi-keyword_values", 10)}}
- -flow-root{{Compat("css.properties.display.flow-root", 10)}}
- -{{Compat("css.properties.display.table_values", 10)}}
- -{{Compat("css.properties.display.grid", 10)}}
- -{{Compat("css.properties.display.flex", 10)}}
- -{{Compat("css.properties.display.ruby_values", 10)}}
- -Ces mots-clés définissent le type d'affichage ({{CSSxRef("display")}}) pour l'intérieur de l'élément. Ce type servira à la disposition du contenu de l'élément (si ce contenu n'est pas un élément remplacé). Ces mots-clés sont des valeurs de la propriété display et peuvent, historiquement être utilisé seul, ou plus récemment (cf. la spécification de niveau 3), être utilisé en combinaison avec un mot-clé {{CSSxRef("<display-outside>")}}.
Une valeur <display-inside> est définie avec l'un des mots-clés suivants :
flow {{Experimental_Inline}}Si le type d'affichage extérieur est inline ou run-in et que l'élément participe à un contexte de formatage bloc ou en ligne, il génèrera une boîte en ligne. Sinon, il génèrera un conteneur de bloc.
Selon la valeur d'autres propriétés (telles que {{CSSxRef("position")}}, {{CSSxRef("float")}}, ou {{CSSxRef("overflow")}}) et selon que l'élément partcipe à un contexte de mise en forme de bloc ou en ligne, l'élément crée un nouveau contexte de formatage de bloc (BFC) pour son contenu ou intègre son contenu dans le contexte parent.
+flow-root {{Experimental_Inline}}tableflexgridruby {{Experimental_Inline}}Note : Les navigateurs qui prennent en charge la syntaxe avec deux valeurs peuvent n'utiliser que <display-inside> lorsque c'est cohérent. Ainsi, avec display: flex ou display: grid, la valeur utilisée de <display-outside> sera nécessairement block. On a ainsi le résultat attendu car on doit avoir display: grid avec un conteneur qui soit un bloc.
Dans l'exemple qui suit, la boîte parente est ciblée avec display: flow-root et crée donc un nouveau contexte de formatage de bloc qui contient l'élément flottant.
.box {
+ background-color: rgb(224, 206, 247);
+ border: 5px solid rebeccapurple;
+ display: flow-root;
+}
+
+.float {
+ float: left;
+ width: 200px;
+ height: 150px;
+ background-color: white;
+ border:1px solid black;
+ padding: 10px;
+}
+
+<div class="box"> + <div class="float">I am a floated box!</div> + <p>I am content inside the container.</p> +</div> ++ +
{{EmbedLiveSample("Exemples", "100%", 180)}}
+ +{{Compat("css.properties.display.multi-keyword_values", 10)}}
+ +flow-root{{Compat("css.properties.display.flow-root", 10)}}
+ +{{Compat("css.properties.display.table_values", 10)}}
+ +{{Compat("css.properties.display.grid", 10)}}
+ +{{Compat("css.properties.display.flex", 10)}}
+ +{{Compat("css.properties.display.ruby_values", 10)}}
+ +Certains modes de disposition tels que table et ruby possèdent une structure interne complexe avec différents roles pour les éléments enfants et descendants. Cette page décrit ces valeurs « internes » pour display et qui s'appliquent dans un mode donné.
Sauf mention contraire, le type d'affichage intérieur et extérieur sont définis simultanément par le mot-clé indiqué.
- -table-row-grouptable-header-grouptable-footer-grouptable-rowtable-celltable-column-grouptable-columntable-captionruby-base {{Experimental_Inline}}ruby-text {{Experimental_Inline}}ruby-base-container {{Experimental_Inline}}ruby-text-container {{Experimental_Inline}}tabletable, table-cell, table-column, table-column-group, table-footer-group, table-header-group, table-row et table-row-group
{{Compat("css.properties.display.table_values", 10)}}
- -rubyruby, ruby-base, ruby-base-container, ruby-text et ruby-text-container
{{Compat("css.properties.display.ruby_values", 10)}}
- -Certains modes de disposition tels que table et ruby possèdent une structure interne complexe avec différents roles pour les éléments enfants et descendants. Cette page décrit ces valeurs « internes » pour display et qui s'appliquent dans un mode donné.
Sauf mention contraire, le type d'affichage intérieur et extérieur sont définis simultanément par le mot-clé indiqué.
+ +table-row-grouptable-header-grouptable-footer-grouptable-rowtable-celltable-column-grouptable-columntable-captionruby-base {{Experimental_Inline}}ruby-text {{Experimental_Inline}}ruby-base-container {{Experimental_Inline}}ruby-text-container {{Experimental_Inline}}tabletable, table-cell, table-column, table-column-group, table-footer-group, table-header-group, table-row et table-row-group
{{Compat("css.properties.display.table_values", 10)}}
+ +rubyruby, ruby-base, ruby-base-container, ruby-text et ruby-text-container
{{Compat("css.properties.display.ruby_values", 10)}}
+ +CSS 2 utilisant une syntaxe avec un seul mot-clé comme valeur pour la propriété display, il fallait plusieurs mots-clés pour les différentes variantes bloc/en ligne d'un même mode. Cette page décrit ces valeurs.
inline-blockinline flow-root.inline-tableinline-table n'a pas de correspondance directe en HTML. Un tel élément se comporte comme un élément HTML {{HTMLElement("table")}} avec une boîte en ligne et pas de bloc. À l'intérieur de la boîte de tableau, on aura un contexte de bloc.inline table.inline-flexinline flex.inline-gridinline grid.Dans l'exemple qui suit, on définit un conteneur flexible en ligne en utilisant le mot-clé historique inline-flex.
.container {
- display: inline-flex;
-}
-
-
-<div class="container"> - <div>Élément flexible</div> - <div>Élément flexible</div> -</div> - -Pas d'élément flexible -- -
{{EmbedLiveSample("Exemples", 300, 150)}}
- - -Avec la nouvelle syntaxe, on peut décrire le conteneur avec deux valeurs : la première pour le mode d'affichage extérieure (inline) et la seconde pour le mode d'affichage intérieur (flex).
.container {
- display: inline flex;
-}
-
-inline-block{{Compat("css.properties.display.inline-block", 10)}}
- -inline-table{{Compat("css.properties.display.inline-table", 10)}}
- -inline-flex{{Compat("css.properties.display.inline-flex", 10)}}
- -inline-grid{{Compat("css.properties.display.inline-grid", 10)}}
- -CSS 2 utilisant une syntaxe avec un seul mot-clé comme valeur pour la propriété display, il fallait plusieurs mots-clés pour les différentes variantes bloc/en ligne d'un même mode. Cette page décrit ces valeurs.
inline-blockinline flow-root.inline-tableinline-table n'a pas de correspondance directe en HTML. Un tel élément se comporte comme un élément HTML {{HTMLElement("table")}} avec une boîte en ligne et pas de bloc. À l'intérieur de la boîte de tableau, on aura un contexte de bloc.inline table.inline-flexinline flex.inline-gridinline grid.Dans l'exemple qui suit, on définit un conteneur flexible en ligne en utilisant le mot-clé historique inline-flex.
.container {
+ display: inline-flex;
+}
+
+
+<div class="container"> + <div>Élément flexible</div> + <div>Élément flexible</div> +</div> + +Pas d'élément flexible ++ +
{{EmbedLiveSample("Exemples", 300, 150)}}
+ + +Avec la nouvelle syntaxe, on peut décrire le conteneur avec deux valeurs : la première pour le mode d'affichage extérieure (inline) et la seconde pour le mode d'affichage intérieur (flex).
.container {
+ display: inline flex;
+}
+
+inline-block{{Compat("css.properties.display.inline-block", 10)}}
+ +inline-table{{Compat("css.properties.display.inline-table", 10)}}
+ +inline-flex{{Compat("css.properties.display.inline-flex", 10)}}
+ +inline-grid{{Compat("css.properties.display.inline-grid", 10)}}
+ +Le mot-clé list-item permet à un élément de générer un pseudo-élément ::marker dont le contenu est défini par les propriétés {{cssxref("list-style")}} (pour afficher une puce par exemple) avec une boîte principale du type indiquée pour organiser le contenu de l'élément.
Une valeur list-item indiquera à l'élément de se comporter comme un élément d'une liste. Cette valeur peut être utilisée avec les propriétés {{CSSxRef("list-style-type")}} et {{CSSxRef("list-style-position")}}.
Note : Pour les navigateurs qui prennent en charge la syntaxe avec deux valeurs, si aucune valeur pour le mode intérieur n'est indiquée, sa valeur par défaut sera flow. Si aucune valeur n'est fournie pour le mode extérieur, la boîte principale aura un mode extérieur block.
.fausse-liste {
- display: list-item;
- list-style-position: inside;
-}
-
-<div class="fausse-liste">Je vais m'afficher comme un élément de liste</div> -- -
{{EmbedLiveSample("Exemples", "100%", 150)}}
- -list-item{{Compat("css.properties.display.list-item", 10)}}
- -Le mot-clé list-item permet à un élément de générer un pseudo-élément ::marker dont le contenu est défini par les propriétés {{cssxref("list-style")}} (pour afficher une puce par exemple) avec une boîte principale du type indiquée pour organiser le contenu de l'élément.
Une valeur list-item indiquera à l'élément de se comporter comme un élément d'une liste. Cette valeur peut être utilisée avec les propriétés {{CSSxRef("list-style-type")}} et {{CSSxRef("list-style-position")}}.
Note : Pour les navigateurs qui prennent en charge la syntaxe avec deux valeurs, si aucune valeur pour le mode intérieur n'est indiquée, sa valeur par défaut sera flow. Si aucune valeur n'est fournie pour le mode extérieur, la boîte principale aura un mode extérieur block.
.fausse-liste {
+ display: list-item;
+ list-style-position: inside;
+}
+
+<div class="fausse-liste">Je vais m'afficher comme un élément de liste</div> ++ +
{{EmbedLiveSample("Exemples", "100%", 150)}}
+ +list-item{{Compat("css.properties.display.list-item", 10)}}
+ +Les mots-clés de type <display-outside> définissent le mode de disposition extérieure de l'élément. Autrement dit, ces mots-clés précisent le rôle de l'élément dans le flux. Ces valeurs peuvent être utilisées pour la propriété display. La syntaxe historique (avant CSS 3) prendra une seule valeur et la nouvelle syntaxe combinera cette valeur avec une valeur {{CSSxRef("<display-inside>")}}.
Une valeur <display-outside> peut être l'un des mots-clés suivants.
blockinlinerun-in {{Experimental_Inline}}run-in devient la première boîte en ligne qui suit cette boîte de bloc.Note : Browsers that support the two value syntax, on finding the outer value only, such as when display: block or display: inline is specified, will set the inner value to flow. This will result in expected behavior; for example if you specify an element to be block, you would expect that the children of that element would participate in block and inline normal flow layout.
Note : Les navigateurs qui prennent en charge la syntaxe avec deux valeurs utiliseront la valeur par défaut flow pour le mode intérieur si display: block ou display: inline. On a ainsi le résultat attendu (si on souhaite qu'un élément se comporte comme un bloc, on s'attend à ce que les éléments fils de cet élément contribuent à la disposition normale en bloc et en ligne).
Dans l'exemple suivant, les éléments {{HTMLElement("span")}}, normalement affichés comme des éléments en ligne, sont paramétrés avec display: block et passent à la ligne en étendant leur conteneur selon l'axe en ligne.
- -
span {
- display: block;
- border: 1px solid rebeccapurple;
-}
-
-- -
<span>span 1</span> -<span>span 2</span>- -
{{EmbedLiveSample("Exemples", 300, 60)}}
- -run-in{{Compat("css.properties.display.run-in", 10)}}
- -Les mots-clés de type <display-outside> définissent le mode de disposition extérieure de l'élément. Autrement dit, ces mots-clés précisent le rôle de l'élément dans le flux. Ces valeurs peuvent être utilisées pour la propriété display. La syntaxe historique (avant CSS 3) prendra une seule valeur et la nouvelle syntaxe combinera cette valeur avec une valeur {{CSSxRef("<display-inside>")}}.
Une valeur <display-outside> peut être l'un des mots-clés suivants.
blockinlinerun-in {{Experimental_Inline}}run-in devient la première boîte en ligne qui suit cette boîte de bloc.Note : Browsers that support the two value syntax, on finding the outer value only, such as when display: block or display: inline is specified, will set the inner value to flow. This will result in expected behavior; for example if you specify an element to be block, you would expect that the children of that element would participate in block and inline normal flow layout.
Note : Les navigateurs qui prennent en charge la syntaxe avec deux valeurs utiliseront la valeur par défaut flow pour le mode intérieur si display: block ou display: inline. On a ainsi le résultat attendu (si on souhaite qu'un élément se comporte comme un bloc, on s'attend à ce que les éléments fils de cet élément contribuent à la disposition normale en bloc et en ligne).
Dans l'exemple suivant, les éléments {{HTMLElement("span")}}, normalement affichés comme des éléments en ligne, sont paramétrés avec display: block et passent à la ligne en étendant leur conteneur selon l'axe en ligne.
+ +
span {
+ display: block;
+ border: 1px solid rebeccapurple;
+}
+
++ +
<span>span 1</span> +<span>span 2</span>+ +
{{EmbedLiveSample("Exemples", 300, 60)}}
+ +run-in{{Compat("css.properties.display.run-in", 10)}}
+ +La propriété display définit le type d'affichage utilisée pour le rendu d'un élément (de bloc ou en ligne) et la disposition utilisée pour ses éléments fils : grille ou boîtes flexibles.
Le type d'affichage donné par display possède deux composantes : le type d'affichage extérieur qui définit comment la boîte participe au flux et le type d'affichage intérieur qui définit l'organisation des éléments enfants.
Certaines valeurs de display sont définies dans des spécifications séparées. Pour plus d'informations, voir la section Spécifications ci-après.
/* Valeurs de type <display-outside> */ -display: block; -display: inline; -display: run-in; - -/* Valeurs de type <display-inside> */ -display: flow; -display: flow-root; -display: table; -display: flex; -display: grid; -display: ruby; - -/* Combinaison de valeurs */ -/* <display-outside> et <display-inside> */ -display: block flow; -display: inline table; -display: flex run-in; - -/* Valeurs de type <display-listitem> */ -display: list-item; -display: list-item block; -display: list-item inline; -display: list-item flow; -display: list-item flow-root; -display: list-item block flow; -display: list-item block flow-root; -display: flow list-item block; - -/* Valeurs de type <display-internal> */ -display: table-row-group; -display: table-header-group; -display: table-footer-group; -display: table-row; -display: table-cell; -display: table-column-group; -display: table-column; -display: table-caption; -display: ruby-base; -display: ruby-text; -display: ruby-base-container; -display: ruby-text-container; - -/* Valeurs de type <display-box> */ -display: contents; -display: none; - -/* Valeurs de type <display-legacy> */ -display: inline-block; -display: inline-table; -display: inline-flex; -display: inline-grid; - -/* Valeurs globales */ -display: inherit; -display: initial; -display: unset; -- -
La propriété display est définie à l'aide de mots-clés. Ces valeurs sont rangées selon six catégories.
table et ruby possèdent une structure interne complexe avec différents rôles possibles pour les éléments descendants. Cette section définit ces rôles internes qui s'appliquent uniquement pour un mode de disposition donné.display et il faut donc des mots-clés distincts pour les variantes bloc/en ligne d'un même mode de disposition.displayLa spécification de niveau 3 permet d'utiliser deux valeurs pour définir la propriété display afin de définir explicitement le type d'affichage intérieur et le type d'affichage extérieur. Toutefois, cette syntaxe sur deux valeurs n'est pas encore prise en charge de façon homogène par les navigateurs.
Les méthodes d'affichage historiques permettent d'obtenir les mêmes résultats avec un seul mot-clé. Ces valeurs devraient être privilégiées tant que la prise en charge de la syntaxe sur deux valeurs n'est pas mieux prise en charge. Ainsi, il est possible d'utiliseur deux valeur afin de définir un conteneur flexible en ligne :
- -.container {
- display: inline flex;
-}
-
-On pourra obtenir un comportement équivalent en écrivant cela avec une seule valeur.
- -.container {
- display: inline-flex;
-}
-
-
-En plus de l'exemple qui suit, vous pouvez voir d'autres exemples sur les sections dédiées aux différents modes de disposition :
- - - -<p> - Texte visible -</p> -<p class="secret"> - Texte invisible -</p>- -
p.secret {
- display: none;
-}
-
-{{EmbedLiveSample("Exemples", 300, 60)}}
- -display: none;Utiliser la propriété display avec la valeur none sur un élément entraînera son retrait de l'arbre d'accessibilité. Cet élément ainsi que ses descendants ne seront plus annoncés par les lecteurs d'écrans.
Si vous souhaitez masquer un élément visuellement, une alternative plus accessible consiste à utiliser une combinaison de propriétés afin de le retirer de l'écran mais de le conserver lisible pour les technologies d'assistance.
- -display: contents;Tout élément ciblé avec display: contents sera retiré de l'arbre d'accessibilité par la plupart des navigateurs. Ainsi, l'élément et ses descendants ne seront plus annoncés par les outils d'assistance tels que les lecteurs d'écran. Ce comportement est incorrect selon la spécification CSSWG.
display: contents n'est pas un outil de réinitialisation CSS, par Adrian Roselli, en anglaisdisplay: contents, en anglais, par Hidde de VriesModifier la valeur de display pour un élément de tableau afin d'utiliser la valeur block, grid ou flex modifiera sa représentation au sein de l'arbre d'accessibilité. Aussi, le tableau ne sera plus correctement annoncé par les technologies d'assistance.
display sur la sémantique des tableaux — The Paciello Group (en anglais)| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Display', '#the-display-properties', 'display')}} | -{{Spec2('CSS3 Display')}} | -Ajout des valeurs run-in, contents, flow, flow-root et des valeurs avec plusieurs mots-clés. |
-
| {{SpecName('CSS3 Ruby', '#ruby-display', 'display')}} | -{{Spec2('CSS3 Ruby')}} | -Ajout des valeurs ruby, ruby-base, ruby-text, ruby-base-container et ruby-text-container. |
-
| {{SpecName('CSS3 Grid', '#grid-containers', 'display')}} | -{{Spec2('CSS3 Grid')}} | -Ajout des valeurs pour le modèle de boîtes en grille. | -
| {{SpecName('CSS3 Flexbox', '#flex-containers', 'display')}} | -{{Spec2('CSS3 Flexbox')}} | -Ajout des valeurs pour le modèle de boîtes flexibles. | -
| {{SpecName('CSS2.1', 'visuren.html#display-prop', 'display')}} | -{{Spec2('CSS2.1')}} | -Ajout des valeurs pour le modèle de boîte pour les tableaux et de la valeur inline-block. |
-
| {{SpecName('CSS1', '#display', 'display')}} | -{{Spec2('CSS1')}} | -Définition initiale. Définitions des valeurs basiques : none, block, inline, et list-item. |
-
{{cssinfo}}
- -{{Compat("css.properties.display",10)}}
- -La propriété display définit le type d'affichage utilisée pour le rendu d'un élément (de bloc ou en ligne) et la disposition utilisée pour ses éléments fils : grille ou boîtes flexibles.
Le type d'affichage donné par display possède deux composantes : le type d'affichage extérieur qui définit comment la boîte participe au flux et le type d'affichage intérieur qui définit l'organisation des éléments enfants.
Certaines valeurs de display sont définies dans des spécifications séparées. Pour plus d'informations, voir la section Spécifications ci-après.
/* Valeurs de type <display-outside> */ +display: block; +display: inline; +display: run-in; + +/* Valeurs de type <display-inside> */ +display: flow; +display: flow-root; +display: table; +display: flex; +display: grid; +display: ruby; + +/* Combinaison de valeurs */ +/* <display-outside> et <display-inside> */ +display: block flow; +display: inline table; +display: flex run-in; + +/* Valeurs de type <display-listitem> */ +display: list-item; +display: list-item block; +display: list-item inline; +display: list-item flow; +display: list-item flow-root; +display: list-item block flow; +display: list-item block flow-root; +display: flow list-item block; + +/* Valeurs de type <display-internal> */ +display: table-row-group; +display: table-header-group; +display: table-footer-group; +display: table-row; +display: table-cell; +display: table-column-group; +display: table-column; +display: table-caption; +display: ruby-base; +display: ruby-text; +display: ruby-base-container; +display: ruby-text-container; + +/* Valeurs de type <display-box> */ +display: contents; +display: none; + +/* Valeurs de type <display-legacy> */ +display: inline-block; +display: inline-table; +display: inline-flex; +display: inline-grid; + +/* Valeurs globales */ +display: inherit; +display: initial; +display: unset; ++ +
La propriété display est définie à l'aide de mots-clés. Ces valeurs sont rangées selon six catégories.
table et ruby possèdent une structure interne complexe avec différents rôles possibles pour les éléments descendants. Cette section définit ces rôles internes qui s'appliquent uniquement pour un mode de disposition donné.display et il faut donc des mots-clés distincts pour les variantes bloc/en ligne d'un même mode de disposition.displayLa spécification de niveau 3 permet d'utiliser deux valeurs pour définir la propriété display afin de définir explicitement le type d'affichage intérieur et le type d'affichage extérieur. Toutefois, cette syntaxe sur deux valeurs n'est pas encore prise en charge de façon homogène par les navigateurs.
Les méthodes d'affichage historiques permettent d'obtenir les mêmes résultats avec un seul mot-clé. Ces valeurs devraient être privilégiées tant que la prise en charge de la syntaxe sur deux valeurs n'est pas mieux prise en charge. Ainsi, il est possible d'utiliseur deux valeur afin de définir un conteneur flexible en ligne :
+ +.container {
+ display: inline flex;
+}
+
+On pourra obtenir un comportement équivalent en écrivant cela avec une seule valeur.
+ +.container {
+ display: inline-flex;
+}
+
+
+En plus de l'exemple qui suit, vous pouvez voir d'autres exemples sur les sections dédiées aux différents modes de disposition :
+ + + +<p> + Texte visible +</p> +<p class="secret"> + Texte invisible +</p>+ +
p.secret {
+ display: none;
+}
+
+{{EmbedLiveSample("Exemples", 300, 60)}}
+ +display: none;Utiliser la propriété display avec la valeur none sur un élément entraînera son retrait de l'arbre d'accessibilité. Cet élément ainsi que ses descendants ne seront plus annoncés par les lecteurs d'écrans.
Si vous souhaitez masquer un élément visuellement, une alternative plus accessible consiste à utiliser une combinaison de propriétés afin de le retirer de l'écran mais de le conserver lisible pour les technologies d'assistance.
+ +display: contents;Tout élément ciblé avec display: contents sera retiré de l'arbre d'accessibilité par la plupart des navigateurs. Ainsi, l'élément et ses descendants ne seront plus annoncés par les outils d'assistance tels que les lecteurs d'écran. Ce comportement est incorrect selon la spécification CSSWG.
display: contents n'est pas un outil de réinitialisation CSS, par Adrian Roselli, en anglaisdisplay: contents, en anglais, par Hidde de VriesModifier la valeur de display pour un élément de tableau afin d'utiliser la valeur block, grid ou flex modifiera sa représentation au sein de l'arbre d'accessibilité. Aussi, le tableau ne sera plus correctement annoncé par les technologies d'assistance.
display sur la sémantique des tableaux — The Paciello Group (en anglais)| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Display', '#the-display-properties', 'display')}} | +{{Spec2('CSS3 Display')}} | +Ajout des valeurs run-in, contents, flow, flow-root et des valeurs avec plusieurs mots-clés. |
+
| {{SpecName('CSS3 Ruby', '#ruby-display', 'display')}} | +{{Spec2('CSS3 Ruby')}} | +Ajout des valeurs ruby, ruby-base, ruby-text, ruby-base-container et ruby-text-container. |
+
| {{SpecName('CSS3 Grid', '#grid-containers', 'display')}} | +{{Spec2('CSS3 Grid')}} | +Ajout des valeurs pour le modèle de boîtes en grille. | +
| {{SpecName('CSS3 Flexbox', '#flex-containers', 'display')}} | +{{Spec2('CSS3 Flexbox')}} | +Ajout des valeurs pour le modèle de boîtes flexibles. | +
| {{SpecName('CSS2.1', 'visuren.html#display-prop', 'display')}} | +{{Spec2('CSS2.1')}} | +Ajout des valeurs pour le modèle de boîte pour les tableaux et de la valeur inline-block. |
+
| {{SpecName('CSS1', '#display', 'display')}} | +{{Spec2('CSS1')}} | +Définition initiale. Définitions des valeurs basiques : none, block, inline, et list-item. |
+
{{cssinfo}}
+ +{{Compat("css.properties.display",10)}}
+ +Le type de données CSS <easing-function> indique une fonction mathématique qui décrit la façon dont une valeur numérique évolue.
Cette transition entre deux valeurs peut être appliquées dans différentes situations. Elle peut être utilisée pour décrire la rapidité selon laquelle les valeurs évoluent durant les animations. Elle permet ainsi de faire varier la vitesse de l'animation au fur et à mesure de sa progression. Elle peut aussi être utilisée pour interpoler deux couleurs au sein d'un dégradé.
- -Les fonctions d'évolution qui appartiennent au sous ensemble des courbes de Bézier cubiques sont souvent appelées des fonctions « douces » car elles permettent d'avoir des évolutions légères en début et en fin d'interpolation. Les fonctions d'évolution relient un ratio d'entrée à un ratio de sortie, tous les deux exprimés comme des nombres (<number>). Pour ces valeurs, 0.0 représente l'état initial et 1.0 représente l'état final.
Selon la fonction utilisée, la sortie calculée peut parfois être supérieure à 1.0 ou être inférieure à 0.0 pendant le cours de l'animation. Cela placera la valeur plus loin que son état final puis la fera revenir. Pour les animations de certaines propriétés (comme left ou right), cela crée un effet de rebond.
-
-Toutefois, certaines propriétés restreindront la valeur de sortie au sein d'un intervalle acceptable. Ainsi, pour une valeur représentant la composante d'une couleur, celle-ci sera écrétée pour rester dans l'intervalle autorisé 0-255. Certaines courbes cubic-bezier() illustrent cette propriété.
-
-Il existe trois types de fonctions de transition : linéaires, courbes de Bézier cubiques et les fonctions en escalier. Une valeur du type <easing-function> décrit la fonction de transition en utilisant l'un de ces trois types.
CSS prend en charge trois sortes de fonction de transition : les fonctions linéaires, le sous ensemble des courbes cubiques de Bézier qui sont des fonctions et les fonctions en escalier. Les fonctions les plus utiles peuvent être facilement utilisées grâce à des mots-clés.
- -
-
-L'interpolation se fait à évolution constante, du début jusqu'à la fin. Ce mot-clé représente la fonction de transition décrite par cubic-bezier(0.0, 0.0, 1.0, 1.0).
-
-La notation fonctionnelle cubic-bezier() définit une courbe de Bézier cubique. Ces courbes étant continues, elles sont souvent utilisées afin de démarrer et de finir progressivement une interpolation. Elles sont parfois appelées fonctions de transition.
Une courbe de Bézier cubique est définie par quatre points P0, P1, P2 et P3. P0 et P3 représentent les points de début et de fin de la courbe. Pour les fonctions de transition CSS, ces points sont fixes, car les coordonnées représentent des ratios (sur les abscisses, le ratio en temps et sur les ordonnées, le ratio en sortie). P0 est donc situé en (0, 0) et représente l'état initial. P3 est en (1, 1) et réprésente l'état final.
Toutes les courbes de Bézier cubiques ne sont pas des fonctions de transition, car toutes ne sont pas des fonctions mathématiques (c'est-à-dire des courbes qui, pour une abscisse donnée, ont une seule ou zéro valeur). Avec les contraintes imposées sur P0 et P3 en CSS, une courbe de Bézier cubique sera une fonction mathématique et pourra être utilisée comme fonction de transition, si et seulement si les abscisses de P1 et P2 appartiennent, tous les deux, à l'intervalle [0, 1].
Les courbes de Bézier cubiques pour lesquelles les ordonnées des points P1 ou P2 sont en dehors de l'intervalle [0, 1] pourront générer un effet de rebond.
Si on utilise une déclaration cubic-bezier avec une fonction invalide, CSS ignorera l'ensemble de la propriété.
cubic-bezier(x1, y1, x2, y2) -- -
avec :
- -<number>) qui représentent les abscisses et ordonnées des points P1 et P2 qui définissent la courbe de Bézier cubique. x1 et x2 doivent appartenir à l'intervalle [0, 1] afin que la valeur soit valide.
L'interpolation démarre doucement puis accélère vivement avant de ralentir vers la fin. Ce mot-clé représente la fonction de transition cubic-bezier(0.25, 0.1, 0.25, 1.0). Cette valeur est semblable à ease-in-out, bien qu'elle accélère plus rapidement au début.

L'interpolation démarre lentement puis s'accélère progressivement jusqu'à la fin où elle s'arrête de façon abrutpe. Ce mot-clé représente la fonction de transition cubic-bezier(0.42, 0.0, 1.0, 1.0).
ease-in-out
L'interpolation démarre lentement puis accélère avant de ralentir vers la fin. Ce mot-clé représente la fonction de transition cubic-bezier(0.42, 0.0, 0.58, 1.0). Au début, elle se comporte comme ease-in et à la fin, elle se comporte comme ease-out.

L'interpolation démarre abruptement puis ralentit progressivement vers la fin. Ce mot-clé correspond à la fonction de transition cubic-bezier(0.0, 0.0, 0.58, 1.0).
La notation fonctionnelle steps() définit une fonction en escalier qui divise le domaine des valeurs de sorties en marches équidistantes.
steps(nombre_de_marches, direction) -- -
avec :
- -<integer>) strictement positif qui représente le nombre de segments équidistants qui composent la fonction en escalier.Un mot-clé qui indique si la fonction est continue à gauche ou continue à droite :
-jump-start indique une fonction continue à gauche : le premier saut a lieu au début de l'interpolation ;jump-end indique une fonction continue à droite : le dernier saut a lieu à la fin de l'interpolation ;jump-both indique une fonction continue à droite et à gauche avec des pauses au début et à la fin, ce qui se traduit par l'ajout d'une étape lors de l'itération de l'interpolation ;jump-none indique qu'il n'y a pas de saut au début ou à la fin mais une temporisation de 1/n de la durée totale à chaque extrêmité.start est équivalent à jump-startend est équivalent à jump-endend est la valeur par défaut.
steps(2, jump-start)
- steps(2, start)

steps(4, jump-end)
- steps(4, end)

steps(5, jump-none)

steps(3, jump-both)

L'interpolation saute directement à l'état final et reste ainsi jusqu'à la fin. Ce mot-clé correspond à la fonction de transition steps(1, jump-start) ou steps(1, start).
L'interpolation reste dans son état initial jusqu'à la fin où elle saute directement à l'état final. Ce mot-clé représente la fonction de transition steps(1, jump-end) ou steps(1, end).
Dans cet exemple, on crée une animation qui peut être démarrée ou stoppée à l'aide du bouton fourni et un menu est affiché pour choisir la fonction de transition à utiliser : différents mots-clés sont disponibles ainsi que des exemples utilisant cubic-bezier() et steps(). L'idée est de fournir un outil de comparaison simple entre ces fonctions.
<div> - <div></div> -</div> -<ul> - <li> - <button class="animation-button">Démarrer l'animation</button> - </li> - <li> - <label for="easing-select">Choisir une fonction de transition :</label> - <select id="easing-select"> - <option selected>linear</option> - <option>ease</option> - <option>ease-in</option> - <option>ease-in-out</option> - <option>ease-out</option> - <option>cubic-bezier(0.1, -0.6, 0.2, 0)</option> - <option>cubic-bezier(0, 1.1, 0.8, 4)</option> - <option>steps(5, end)</option> - <option>steps(3, start)</option> - <option>steps(4)</option> - </select> - </li> -</ul>- -
body > div {
- position: relative;
- height: 100px;
-}
-
-div > div {
- position: absolute;
- width: 50px;
- height: 50px;
- background-color: blue;
- background-image: radial-gradient(circle at 10px 10px, rgba(25,255,255,0.8),rgba(25,255,255,0.4));
- border-radius: 50%;
- top: 25px;
- animation: 1.5s infinite alternate;
-}
-
-@keyframes move-right {
- from {
- left: 10%;
- }
-
- to {
- left: 90%;
- }
-}
-
-li {
- display: flex;
- align-items: center;
- justify-content: center;
- margin-bottom: 20px;
-}
-
-const selectElem = document.querySelector("select");
-const startBtn = document.querySelector("button");
-const divElem = document.querySelector("div > div");
-
-startBtn.addEventListener("click", () => {
- if(startBtn.textContent === "Démarrer l'animation") {
- divElem.style.animationName = "move-right";
- startBtn.textContent = "Arrêter l'animation";
- divElem.style.animationTimingFunction = selectElem.value;
- } else {
- divElem.style.animationName = "unset";
- startBtn.textContent = "Démarrer l'animation";
- }
-});
-
-selectElem.addEventListener("change", () => {
- divElem.style.animationTimingFunction = selectElem.value;
-});
-
-{{EmbedLiveSample('comparaison_des_fonctions_de_transition', '100%', 300)}}
- -Ces courbes de Bézier cubiques sont valides pour être utilisées en CSS :
- -/* La courbe de Bézier canonique avec quatre nombres dans l'intervalle [0,1]. */ -cubic-bezier(0.1, 0.7, 1.0, 0.1) - -/* On peut aussi utiliser des valeurs entières (<integer>) car ce sont des nombres. */ -cubic-bezier(0, 0, 1, 1) - -/* Les valeurs négatives pour les ordonnées sont valides et créent un effet de rebond.*/ -cubic-bezier(0.1, -0.6, 0.2, 0) - -/* Les valeurs supérieures à 1.0 pour les ordonnées sont aussi valides. */ -cubic-bezier(0, 1.1, 0.8, 4) -- -
Ces courbes de Bézier cubiques sont invalides en CSS :
- --/* Bien que les valeurs animées puissent être des couleurs, - les courbes de Bézier ne fonctionnent qu'avec des ratios numériques.*/ -cubic-bezier(0.1, red, 1.0, green) - -/* Les abscisses doivent être dans l'intervalle [0, 1] car sinon l'intervalle - couvert par la courbe n'est pas valide. */ -cubic-bezier(2.45, 0.6, 4, 0.1) - -/* Les deux points doivent être explicitement définis, il n'y a pas de valeur - par défaut. */ -cubic-bezier(0.3, 2.1) - -/* Les abscisses doivent être dans l'intervalle [0, 1], sinon la courbe - ne représente pas une fonction du temps. */ -cubic-bezier(-1.9, 0.3, -0.2, 2.1)- -
Ces fonctions de transition sont valides :
- --/* Il y a 5 étapes, la dernière se produit juste avant - la fin de l'animation. */ -steps(5, end) - -/* Un escalier à deux marches, la première se produisant - au début de l'animation. */ -steps(2, start) - -/* Le deuxième paramètre est optionnel. */ -steps(2) -- -
Note : Si l'animation contient plusieurs arrêts, les marches décrites dans la fonction steps() s'appliqueront à chaque section. Ainsi, pour une animation avec trois segments et steps(2), on aura au total 6 étapes, 2 pour chaque segment.
Les fonctions de transitions qui suivent sont invalides :
- --/* Le premier paramètre doit être un entier et ne peut pas être - une valeur décimale (même si celle-ci est égale à une valeur entière). */ -steps(2.0, jump-end) - -/* La quantité de marches ne doit pas être négative. */ -steps(-3, start) - -/* Il doit y avoir au moins une marche.*/ -steps(0, jump-none)- -
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Easing 1', '#typedef-easing-function', '<easing-function>')}} | -{{Spec2('CSS Easing 1')}} | -Définition initiale. | -
{{Compat("css.types.easing-function", 2)}}
- -Le type de données CSS <easing-function> indique une fonction mathématique qui décrit la façon dont une valeur numérique évolue.
Cette transition entre deux valeurs peut être appliquées dans différentes situations. Elle peut être utilisée pour décrire la rapidité selon laquelle les valeurs évoluent durant les animations. Elle permet ainsi de faire varier la vitesse de l'animation au fur et à mesure de sa progression. Elle peut aussi être utilisée pour interpoler deux couleurs au sein d'un dégradé.
+ +Les fonctions d'évolution qui appartiennent au sous ensemble des courbes de Bézier cubiques sont souvent appelées des fonctions « douces » car elles permettent d'avoir des évolutions légères en début et en fin d'interpolation. Les fonctions d'évolution relient un ratio d'entrée à un ratio de sortie, tous les deux exprimés comme des nombres (<number>). Pour ces valeurs, 0.0 représente l'état initial et 1.0 représente l'état final.
Selon la fonction utilisée, la sortie calculée peut parfois être supérieure à 1.0 ou être inférieure à 0.0 pendant le cours de l'animation. Cela placera la valeur plus loin que son état final puis la fera revenir. Pour les animations de certaines propriétés (comme left ou right), cela crée un effet de rebond.
+
+Toutefois, certaines propriétés restreindront la valeur de sortie au sein d'un intervalle acceptable. Ainsi, pour une valeur représentant la composante d'une couleur, celle-ci sera écrétée pour rester dans l'intervalle autorisé 0-255. Certaines courbes cubic-bezier() illustrent cette propriété.
+
+Il existe trois types de fonctions de transition : linéaires, courbes de Bézier cubiques et les fonctions en escalier. Une valeur du type <easing-function> décrit la fonction de transition en utilisant l'un de ces trois types.
CSS prend en charge trois sortes de fonction de transition : les fonctions linéaires, le sous ensemble des courbes cubiques de Bézier qui sont des fonctions et les fonctions en escalier. Les fonctions les plus utiles peuvent être facilement utilisées grâce à des mots-clés.
+ +
+
+L'interpolation se fait à évolution constante, du début jusqu'à la fin. Ce mot-clé représente la fonction de transition décrite par cubic-bezier(0.0, 0.0, 1.0, 1.0).
+
+La notation fonctionnelle cubic-bezier() définit une courbe de Bézier cubique. Ces courbes étant continues, elles sont souvent utilisées afin de démarrer et de finir progressivement une interpolation. Elles sont parfois appelées fonctions de transition.
Une courbe de Bézier cubique est définie par quatre points P0, P1, P2 et P3. P0 et P3 représentent les points de début et de fin de la courbe. Pour les fonctions de transition CSS, ces points sont fixes, car les coordonnées représentent des ratios (sur les abscisses, le ratio en temps et sur les ordonnées, le ratio en sortie). P0 est donc situé en (0, 0) et représente l'état initial. P3 est en (1, 1) et réprésente l'état final.
Toutes les courbes de Bézier cubiques ne sont pas des fonctions de transition, car toutes ne sont pas des fonctions mathématiques (c'est-à-dire des courbes qui, pour une abscisse donnée, ont une seule ou zéro valeur). Avec les contraintes imposées sur P0 et P3 en CSS, une courbe de Bézier cubique sera une fonction mathématique et pourra être utilisée comme fonction de transition, si et seulement si les abscisses de P1 et P2 appartiennent, tous les deux, à l'intervalle [0, 1].
Les courbes de Bézier cubiques pour lesquelles les ordonnées des points P1 ou P2 sont en dehors de l'intervalle [0, 1] pourront générer un effet de rebond.
Si on utilise une déclaration cubic-bezier avec une fonction invalide, CSS ignorera l'ensemble de la propriété.
cubic-bezier(x1, y1, x2, y2) ++ +
avec :
+ +<number>) qui représentent les abscisses et ordonnées des points P1 et P2 qui définissent la courbe de Bézier cubique. x1 et x2 doivent appartenir à l'intervalle [0, 1] afin que la valeur soit valide.
L'interpolation démarre doucement puis accélère vivement avant de ralentir vers la fin. Ce mot-clé représente la fonction de transition cubic-bezier(0.25, 0.1, 0.25, 1.0). Cette valeur est semblable à ease-in-out, bien qu'elle accélère plus rapidement au début.

L'interpolation démarre lentement puis s'accélère progressivement jusqu'à la fin où elle s'arrête de façon abrutpe. Ce mot-clé représente la fonction de transition cubic-bezier(0.42, 0.0, 1.0, 1.0).
ease-in-out
L'interpolation démarre lentement puis accélère avant de ralentir vers la fin. Ce mot-clé représente la fonction de transition cubic-bezier(0.42, 0.0, 0.58, 1.0). Au début, elle se comporte comme ease-in et à la fin, elle se comporte comme ease-out.

L'interpolation démarre abruptement puis ralentit progressivement vers la fin. Ce mot-clé correspond à la fonction de transition cubic-bezier(0.0, 0.0, 0.58, 1.0).
La notation fonctionnelle steps() définit une fonction en escalier qui divise le domaine des valeurs de sorties en marches équidistantes.
steps(nombre_de_marches, direction) ++ +
avec :
+ +<integer>) strictement positif qui représente le nombre de segments équidistants qui composent la fonction en escalier.Un mot-clé qui indique si la fonction est continue à gauche ou continue à droite :
+jump-start indique une fonction continue à gauche : le premier saut a lieu au début de l'interpolation ;jump-end indique une fonction continue à droite : le dernier saut a lieu à la fin de l'interpolation ;jump-both indique une fonction continue à droite et à gauche avec des pauses au début et à la fin, ce qui se traduit par l'ajout d'une étape lors de l'itération de l'interpolation ;jump-none indique qu'il n'y a pas de saut au début ou à la fin mais une temporisation de 1/n de la durée totale à chaque extrêmité.start est équivalent à jump-startend est équivalent à jump-endend est la valeur par défaut.
steps(2, jump-start)
+ steps(2, start)

steps(4, jump-end)
+ steps(4, end)

steps(5, jump-none)

steps(3, jump-both)

L'interpolation saute directement à l'état final et reste ainsi jusqu'à la fin. Ce mot-clé correspond à la fonction de transition steps(1, jump-start) ou steps(1, start).
L'interpolation reste dans son état initial jusqu'à la fin où elle saute directement à l'état final. Ce mot-clé représente la fonction de transition steps(1, jump-end) ou steps(1, end).
Dans cet exemple, on crée une animation qui peut être démarrée ou stoppée à l'aide du bouton fourni et un menu est affiché pour choisir la fonction de transition à utiliser : différents mots-clés sont disponibles ainsi que des exemples utilisant cubic-bezier() et steps(). L'idée est de fournir un outil de comparaison simple entre ces fonctions.
<div> + <div></div> +</div> +<ul> + <li> + <button class="animation-button">Démarrer l'animation</button> + </li> + <li> + <label for="easing-select">Choisir une fonction de transition :</label> + <select id="easing-select"> + <option selected>linear</option> + <option>ease</option> + <option>ease-in</option> + <option>ease-in-out</option> + <option>ease-out</option> + <option>cubic-bezier(0.1, -0.6, 0.2, 0)</option> + <option>cubic-bezier(0, 1.1, 0.8, 4)</option> + <option>steps(5, end)</option> + <option>steps(3, start)</option> + <option>steps(4)</option> + </select> + </li> +</ul>+ +
body > div {
+ position: relative;
+ height: 100px;
+}
+
+div > div {
+ position: absolute;
+ width: 50px;
+ height: 50px;
+ background-color: blue;
+ background-image: radial-gradient(circle at 10px 10px, rgba(25,255,255,0.8),rgba(25,255,255,0.4));
+ border-radius: 50%;
+ top: 25px;
+ animation: 1.5s infinite alternate;
+}
+
+@keyframes move-right {
+ from {
+ left: 10%;
+ }
+
+ to {
+ left: 90%;
+ }
+}
+
+li {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 20px;
+}
+
+const selectElem = document.querySelector("select");
+const startBtn = document.querySelector("button");
+const divElem = document.querySelector("div > div");
+
+startBtn.addEventListener("click", () => {
+ if(startBtn.textContent === "Démarrer l'animation") {
+ divElem.style.animationName = "move-right";
+ startBtn.textContent = "Arrêter l'animation";
+ divElem.style.animationTimingFunction = selectElem.value;
+ } else {
+ divElem.style.animationName = "unset";
+ startBtn.textContent = "Démarrer l'animation";
+ }
+});
+
+selectElem.addEventListener("change", () => {
+ divElem.style.animationTimingFunction = selectElem.value;
+});
+
+{{EmbedLiveSample('comparaison_des_fonctions_de_transition', '100%', 300)}}
+ +Ces courbes de Bézier cubiques sont valides pour être utilisées en CSS :
+ +/* La courbe de Bézier canonique avec quatre nombres dans l'intervalle [0,1]. */ +cubic-bezier(0.1, 0.7, 1.0, 0.1) + +/* On peut aussi utiliser des valeurs entières (<integer>) car ce sont des nombres. */ +cubic-bezier(0, 0, 1, 1) + +/* Les valeurs négatives pour les ordonnées sont valides et créent un effet de rebond.*/ +cubic-bezier(0.1, -0.6, 0.2, 0) + +/* Les valeurs supérieures à 1.0 pour les ordonnées sont aussi valides. */ +cubic-bezier(0, 1.1, 0.8, 4) ++ +
Ces courbes de Bézier cubiques sont invalides en CSS :
+ ++/* Bien que les valeurs animées puissent être des couleurs, + les courbes de Bézier ne fonctionnent qu'avec des ratios numériques.*/ +cubic-bezier(0.1, red, 1.0, green) + +/* Les abscisses doivent être dans l'intervalle [0, 1] car sinon l'intervalle + couvert par la courbe n'est pas valide. */ +cubic-bezier(2.45, 0.6, 4, 0.1) + +/* Les deux points doivent être explicitement définis, il n'y a pas de valeur + par défaut. */ +cubic-bezier(0.3, 2.1) + +/* Les abscisses doivent être dans l'intervalle [0, 1], sinon la courbe + ne représente pas une fonction du temps. */ +cubic-bezier(-1.9, 0.3, -0.2, 2.1)+ +
Ces fonctions de transition sont valides :
+ ++/* Il y a 5 étapes, la dernière se produit juste avant + la fin de l'animation. */ +steps(5, end) + +/* Un escalier à deux marches, la première se produisant + au début de l'animation. */ +steps(2, start) + +/* Le deuxième paramètre est optionnel. */ +steps(2) ++ +
Note : Si l'animation contient plusieurs arrêts, les marches décrites dans la fonction steps() s'appliqueront à chaque section. Ainsi, pour une animation avec trois segments et steps(2), on aura au total 6 étapes, 2 pour chaque segment.
Les fonctions de transitions qui suivent sont invalides :
+ ++/* Le premier paramètre doit être un entier et ne peut pas être + une valeur décimale (même si celle-ci est égale à une valeur entière). */ +steps(2.0, jump-end) + +/* La quantité de marches ne doit pas être négative. */ +steps(-3, start) + +/* Il doit y avoir au moins une marche.*/ +steps(0, jump-none)+ +
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Easing 1', '#typedef-easing-function', '<easing-function>')}} | +{{Spec2('CSS Easing 1')}} | +Définition initiale. | +
{{Compat("css.types.easing-function", 2)}}
+ +La fonction element() définit une valeur {{cssxref("<image>")}} générée à partir d'un élément HTML arbitraire. L'image est calculée dynamiquement : si l'élément HTML change, les propriétés CSS utilisant la valeur seront automatiquement mis à jour.
Un scénario pour lequel cette fonction est particulièrement utile : on génère une image dans un élément HTML {{HTMLElement("canvas")}} et on l'utilise comme arrière-plan.
- -Pour les navigateurs basés sur Gecko, on peut utiliser la méthode {{domxref("document.mozSetImageElement()")}} pour modifier l'élément utilisé comme arrière-plan pour un background CSS donné.
element(id)- -
id.exemple {
- width: 400px;
- height: 400px;
- background: -moz-element(#monArrierePlan) no-repeat;
-
-}
-
-.paragraphe {
- transform-origin: 0 0;
- transform: rotate(45deg);
- color: white;
-}
-
-#monArrierePlan{
- width: 1024px;
- height: 1024px;
- background-image: linear-gradient(to right, red, orange, yellow, white);
-}
-.cache {
- overflow: hidden;
- height: 0;
-}
-
-
-<div class="exemple"> - <p> - Cet élément utilise l'élément - #monArrierePlan comme image - de fond ! - </p> -</div> - -<div class="cache"> - <div id="monArrierePlan"> - <p class="paragraphe"> - Et voici un texte inscrit sur - l'arrière-plan. - </p> - <div> -<div>- -
Pour les navigateurs qui prennent en charge element, on peut ici voir un arrière-plan généré avec un paragraphe HTML.
{{EmbedLiveSample("Un_premier_exemple_réaliste","400","400")}}
- -.exemple {
- width: 400px;
- height: 100px;
- background: -moz-element(#monArrierePlan);
-}
-
-.cache {
- overflow: hidden;
- height: 0;
-}
-
-<div class="exemple"></div> - -<div class="cache"> - <button id="monArrierePlan" type="button"> - Méchant bouton - </button> -</div>- -
{{EmbedLiveSample("Un_second_exemple_plus_méchant","400","400")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Images', '#element-notation', 'Using Elements as Images: the element() notation')}} | -{{Spec2('CSS4 Images')}} | -Reporté pour CSS4 | -
{{Compat("css.types.image.element")}}
- -La fonction element() définit une valeur {{cssxref("<image>")}} générée à partir d'un élément HTML arbitraire. L'image est calculée dynamiquement : si l'élément HTML change, les propriétés CSS utilisant la valeur seront automatiquement mis à jour.
Un scénario pour lequel cette fonction est particulièrement utile : on génère une image dans un élément HTML {{HTMLElement("canvas")}} et on l'utilise comme arrière-plan.
+ +Pour les navigateurs basés sur Gecko, on peut utiliser la méthode {{domxref("document.mozSetImageElement()")}} pour modifier l'élément utilisé comme arrière-plan pour un background CSS donné.
element(id)+ +
id.exemple {
+ width: 400px;
+ height: 400px;
+ background: -moz-element(#monArrierePlan) no-repeat;
+
+}
+
+.paragraphe {
+ transform-origin: 0 0;
+ transform: rotate(45deg);
+ color: white;
+}
+
+#monArrierePlan{
+ width: 1024px;
+ height: 1024px;
+ background-image: linear-gradient(to right, red, orange, yellow, white);
+}
+.cache {
+ overflow: hidden;
+ height: 0;
+}
+
+
+<div class="exemple"> + <p> + Cet élément utilise l'élément + #monArrierePlan comme image + de fond ! + </p> +</div> + +<div class="cache"> + <div id="monArrierePlan"> + <p class="paragraphe"> + Et voici un texte inscrit sur + l'arrière-plan. + </p> + <div> +<div>+ +
Pour les navigateurs qui prennent en charge element, on peut ici voir un arrière-plan généré avec un paragraphe HTML.
{{EmbedLiveSample("Un_premier_exemple_réaliste","400","400")}}
+ +.exemple {
+ width: 400px;
+ height: 100px;
+ background: -moz-element(#monArrierePlan);
+}
+
+.cache {
+ overflow: hidden;
+ height: 0;
+}
+
+<div class="exemple"></div> + +<div class="cache"> + <button id="monArrierePlan" type="button"> + Méchant bouton + </button> +</div>+ +
{{EmbedLiveSample("Un_second_exemple_plus_méchant","400","400")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Images', '#element-notation', 'Using Elements as Images: the element() notation')}} | +{{Spec2('CSS4 Images')}} | +Reporté pour CSS4 | +
{{Compat("css.types.image.element")}}
+ +La propriété empty-cells définit la façon dont l'agent utilisateur doit afficher les bordures et l'arrière-plan des cellules d'un tableau ({{HTMLElement("table")}}) qui n'ont aucun contenu visible.
Cette propriété est uniquement appliquée lorsque border-collapse vaut separate.
/* Valeurs avec mot-clé */ -empty-cells: show; -empty-cells: hide; - -/* Valeurs globales */ -empty-cells: inherit; -empty-cells: initial; -empty-cells: unset; -- -
Cette propriété se définit avec l'un des mots-clés suivants.
- -showhide<table class="table_1"> - <tr> - <td>Jean</td> - <td>Biche</td> - </tr> - <tr> - <td>Alice</td> - <td></td> - </tr> -</table> -<table class="table_2"> - <tr> - <td>Jean</td> - <td>Biche</td> - </tr> - <tr> - <td>Alice</td> - <td></td> - </tr> -</table> -- -
.table_1 {
- empty-cells: show;
-}
-.table_2 {
- empty-cells: hide;
-}
-
-td, th {
- border: 1px solid #999;
- padding: 0.5rem;
-}
-
-
-{{EmbedLiveSample('Exemples', '100%', '200')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS2.1', 'tables.html#empty-cells', 'empty-cells')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.empty-cells")}}
diff --git a/files/fr/web/css/empty-cells/index.md b/files/fr/web/css/empty-cells/index.md new file mode 100644 index 0000000000..dc25ad57ab --- /dev/null +++ b/files/fr/web/css/empty-cells/index.md @@ -0,0 +1,113 @@ +--- +title: empty-cells +slug: Web/CSS/empty-cells +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/empty-cells +--- +La propriété empty-cells définit la façon dont l'agent utilisateur doit afficher les bordures et l'arrière-plan des cellules d'un tableau ({{HTMLElement("table")}}) qui n'ont aucun contenu visible.
Cette propriété est uniquement appliquée lorsque border-collapse vaut separate.
/* Valeurs avec mot-clé */ +empty-cells: show; +empty-cells: hide; + +/* Valeurs globales */ +empty-cells: inherit; +empty-cells: initial; +empty-cells: unset; ++ +
Cette propriété se définit avec l'un des mots-clés suivants.
+ +showhide<table class="table_1"> + <tr> + <td>Jean</td> + <td>Biche</td> + </tr> + <tr> + <td>Alice</td> + <td></td> + </tr> +</table> +<table class="table_2"> + <tr> + <td>Jean</td> + <td>Biche</td> + </tr> + <tr> + <td>Alice</td> + <td></td> + </tr> +</table> ++ +
.table_1 {
+ empty-cells: show;
+}
+.table_2 {
+ empty-cells: hide;
+}
+
+td, th {
+ border: 1px solid #999;
+ padding: 0.5rem;
+}
+
+
+{{EmbedLiveSample('Exemples', '100%', '200')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS2.1', 'tables.html#empty-cells', 'empty-cells')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.empty-cells")}}
diff --git a/files/fr/web/css/env()/index.html b/files/fr/web/css/env()/index.html deleted file mode 100644 index d155dcdd77..0000000000 --- a/files/fr/web/css/env()/index.html +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: env() -slug: Web/CSS/env() -tags: - - CSS - - CSS Function - - CSS Variables - - Fonction - - Reference - - env() -translation_of: Web/CSS/env() ---- -La fonction CSS env() peut être utilisée afin d'insérer la valeur d'une variable d'environnement dans une règle. Les variables d'environnement sont globales pour un document donné, à la différence des propriétés personnalisées. Les variables d'environnement sont définies au niveau de l'agent utilisateur et non par l'utilisateur/le concepteur.
env() peut être utilisée aux endroits où on souhaite remplacer la valeur, à la façon de la fonction var().
body {
- padding:
- env(safe-area-inset-top, 20px)
- env(safe-area-inset-right, 20px)
- env(safe-area-inset-bottom, 20px)
- env(safe-area-inset-left, 20px);
-}
-
-La fonction env() peut être utilisée à n'importe quel endroit où une valeur peut être associée à une propriété, à n'importe quel endroit où une valeur peut être utilisée dans un descripteur d'une règle @ (ex. dans une requête média) et, de façon générale, à n'importe quel endroit où les valeurs CSS sont autorisées. Selon les évolutions de la spécification, cette fonction pourrait également être utilisées à d'autres endroits comme les sélecteurs.
Note : Les variables d'environnement furent initialement fournies par le navigateur iOS afin de permettre aux développeurs de placer le contenu sur une zone sûre de la zone d'affichage (viewport) et d'éviter le décrochement formé en haut de l'écran sur certains des appareils.
-/* Utilisation des quatre zones sûres */ -env(safe-area-inset-top) -env(safe-area-inset-right) -env(safe-area-inset-bottom) -env(safe-area-inset-left) - -/* Utilisation du deuxième paramètre pour une valeur de recours */ -env(safe-area-inset-top, 20px); -env(safe-area-inset-right, 1em); -env(safe-area-inset-bottom, 0.5vh); -env(safe-area-inset-left, 1.4rem); -- -
safe-area-inset-top, safe-area-inset-right, safe-area-inset-bottom, safe-area-inset-leftNote : À la différence des autres propriétés CSS, les identifiants provenant de l'agent utilisateur sont sensibles à la casse.
-Dans l'exemple qui suit, on utilise le deuxième paramètre de la notation fonctionnelle env() afin de fournir une valeur de recours lorsque la variable d'environnement n'est pas disponible.
<p> - Si la fonction <code>env()</code> est prise en charge dans votre - navigateur, le texte de ce paragraphe aura 50 pixels de padding avec - la bordure gauche mais pas la droite / basse et haute. - En effet, le code CSS associé est équivalent à <code>padding: 0 0 0 50px</code> - car les noms des propriétés CSS associées aux agents utilisateurs sont - sensibles à la casse (contrairement aux autres propriétés). -</p>- -
p {
- width: 300px;
- border: 2px solid red;
- padding:
- env(safe-area-inset-top, 50px)
- env(safe-area-inset-right, 50px)
- env(safe-area-inset-bottom, 50px)
- env(SAFE-AREA-INSET-LEFT, 50px);
-}
-
-{{EmbedLiveSample("Exemples")}}
- -/* zéro pour les agents utilisateurs rectangulaires */ -padding: env(safe-area-inset-bottom, 50px); - -/* 50px car les propriétés de l'agent sont sensibles à la casse */ -padding: env(Safe-area-inset-bottom, 50px); - -/* correspond à padding: 50px 20px car x n'est pas une variable - d'environnement valide */ -padding: env(x, 50px 20px); - -/* ignorée car '50px, 20px' n'est pas une valeur de padding correcte - et que x n'est pas une variable d'environnement */ -padding: env(x, 50px, 20px); -- -
Pour la deuxième valeur, il est possible d'utiliser des virgules afin de fournir un ensemble composite de valeurs à la propriété. Toutefois, si la propriété en question ne permet pas de gérer plusieurs valeurs, la déclaration sera invalide.
- -Note : Les propriétés relatives à l'agent utilisateur ne sont pas réinitialisées avec la propriété {{cssxref("all")}}.
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Environment Variables", "#env-function", "env()")}} | -{{Spec2("CSS3 Environment Variables")}} | -Définition initiale. | -
{{Compat("css.properties.custom-property.env")}}
- -La fonction CSS env() peut être utilisée afin d'insérer la valeur d'une variable d'environnement dans une règle. Les variables d'environnement sont globales pour un document donné, à la différence des propriétés personnalisées. Les variables d'environnement sont définies au niveau de l'agent utilisateur et non par l'utilisateur/le concepteur.
env() peut être utilisée aux endroits où on souhaite remplacer la valeur, à la façon de la fonction var().
body {
+ padding:
+ env(safe-area-inset-top, 20px)
+ env(safe-area-inset-right, 20px)
+ env(safe-area-inset-bottom, 20px)
+ env(safe-area-inset-left, 20px);
+}
+
+La fonction env() peut être utilisée à n'importe quel endroit où une valeur peut être associée à une propriété, à n'importe quel endroit où une valeur peut être utilisée dans un descripteur d'une règle @ (ex. dans une requête média) et, de façon générale, à n'importe quel endroit où les valeurs CSS sont autorisées. Selon les évolutions de la spécification, cette fonction pourrait également être utilisées à d'autres endroits comme les sélecteurs.
Note : Les variables d'environnement furent initialement fournies par le navigateur iOS afin de permettre aux développeurs de placer le contenu sur une zone sûre de la zone d'affichage (viewport) et d'éviter le décrochement formé en haut de l'écran sur certains des appareils.
+/* Utilisation des quatre zones sûres */ +env(safe-area-inset-top) +env(safe-area-inset-right) +env(safe-area-inset-bottom) +env(safe-area-inset-left) + +/* Utilisation du deuxième paramètre pour une valeur de recours */ +env(safe-area-inset-top, 20px); +env(safe-area-inset-right, 1em); +env(safe-area-inset-bottom, 0.5vh); +env(safe-area-inset-left, 1.4rem); ++ +
safe-area-inset-top, safe-area-inset-right, safe-area-inset-bottom, safe-area-inset-leftNote : À la différence des autres propriétés CSS, les identifiants provenant de l'agent utilisateur sont sensibles à la casse.
+Dans l'exemple qui suit, on utilise le deuxième paramètre de la notation fonctionnelle env() afin de fournir une valeur de recours lorsque la variable d'environnement n'est pas disponible.
<p> + Si la fonction <code>env()</code> est prise en charge dans votre + navigateur, le texte de ce paragraphe aura 50 pixels de padding avec + la bordure gauche mais pas la droite / basse et haute. + En effet, le code CSS associé est équivalent à <code>padding: 0 0 0 50px</code> + car les noms des propriétés CSS associées aux agents utilisateurs sont + sensibles à la casse (contrairement aux autres propriétés). +</p>+ +
p {
+ width: 300px;
+ border: 2px solid red;
+ padding:
+ env(safe-area-inset-top, 50px)
+ env(safe-area-inset-right, 50px)
+ env(safe-area-inset-bottom, 50px)
+ env(SAFE-AREA-INSET-LEFT, 50px);
+}
+
+{{EmbedLiveSample("Exemples")}}
+ +/* zéro pour les agents utilisateurs rectangulaires */ +padding: env(safe-area-inset-bottom, 50px); + +/* 50px car les propriétés de l'agent sont sensibles à la casse */ +padding: env(Safe-area-inset-bottom, 50px); + +/* correspond à padding: 50px 20px car x n'est pas une variable + d'environnement valide */ +padding: env(x, 50px 20px); + +/* ignorée car '50px, 20px' n'est pas une valeur de padding correcte + et que x n'est pas une variable d'environnement */ +padding: env(x, 50px, 20px); ++ +
Pour la deuxième valeur, il est possible d'utiliser des virgules afin de fournir un ensemble composite de valeurs à la propriété. Toutefois, si la propriété en question ne permet pas de gérer plusieurs valeurs, la déclaration sera invalide.
+ +Note : Les propriétés relatives à l'agent utilisateur ne sont pas réinitialisées avec la propriété {{cssxref("all")}}.
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Environment Variables", "#env-function", "env()")}} | +{{Spec2("CSS3 Environment Variables")}} | +Définition initiale. | +
{{Compat("css.properties.custom-property.env")}}
+ +La fonction CSS blur() permet d'appliquer une flou gaussien sur l'image d'entrée. Le résultat de cette fonction est une valeur {{cssxref("<filter-function>")}}.
blur(rayon)- -
rayon0, l'image ne sera pas modifiée. La valeur utilisée par défaut lors d'une interpolation est 0.blur(0); /* Aucun effet */ -blur(8px); /* Un flou avec un rayon de 8px */ -blur(1.17rem); /* Un flou avec un rayon de 1.17rem */- -
La fonction CSS blur() permet d'appliquer une flou gaussien sur l'image d'entrée. Le résultat de cette fonction est une valeur {{cssxref("<filter-function>")}}.
blur(rayon)+ +
rayon0, l'image ne sera pas modifiée. La valeur utilisée par défaut lors d'une interpolation est 0.blur(0); /* Aucun effet */ +blur(8px); /* Un flou avec un rayon de 8px */ +blur(1.17rem); /* Un flou avec un rayon de 1.17rem */+ +
La fonction CSS brightness() applique un multiplicateur linéaire sur une image afin de la rendre plus claire ou plus sombre. Le résultat obtenu est une valeur de type {{cssxref("<filter-function>")}}.
brightness(multiplicateur)- -
multiplicateur100% assombrira l'image alors qu'une valeur supérieure à 100% la rendra plus claire. Une valeur de 0% permettra d'obtenir une image complètement noire et une valeur de 100% laissera l'image inchangée. La valeur par défaut utilisée lors de l'interpolation est 1.brightness(0%) /* Complètement noir */ -brightness(0.4) /* 40% de la clarté */ -brightness(1) /* Aucun effet */ -brightness(200%) /* Double la clarté */- -
La fonction CSS brightness() applique un multiplicateur linéaire sur une image afin de la rendre plus claire ou plus sombre. Le résultat obtenu est une valeur de type {{cssxref("<filter-function>")}}.
brightness(multiplicateur)+ +
multiplicateur100% assombrira l'image alors qu'une valeur supérieure à 100% la rendra plus claire. Une valeur de 0% permettra d'obtenir une image complètement noire et une valeur de 100% laissera l'image inchangée. La valeur par défaut utilisée lors de l'interpolation est 1.brightness(0%) /* Complètement noir */ +brightness(0.4) /* 40% de la clarté */ +brightness(1) /* Aucun effet */ +brightness(200%) /* Double la clarté */+ +
La fonction CSS contrast() permet d'ajuster le contraste d'une image. Le résultat de cette fonction est une valeur de type {{cssxref("<filter-function>")}}.
contrast(multiplicateur)- -
multiplicateur100% réduira le contraste et une valeur supérieure à 100% accentuera le contraste. Une valeur de 0% permettra d'obtenir une image complètement grise et une valeur de 100% laissera l'image inchangée. La valeur par défaut utilisée pour les interpolations est 1.contrast(0); /* Completely gray */ -contrast(65%); /* 65% contrast */ -contrast(1); /* No effect */ -contrast(200%); /* Double contrast */- -
La fonction CSS contrast() permet d'ajuster le contraste d'une image. Le résultat de cette fonction est une valeur de type {{cssxref("<filter-function>")}}.
contrast(multiplicateur)+ +
multiplicateur100% réduira le contraste et une valeur supérieure à 100% accentuera le contraste. Une valeur de 0% permettra d'obtenir une image complètement grise et une valeur de 100% laissera l'image inchangée. La valeur par défaut utilisée pour les interpolations est 1.contrast(0); /* Completely gray */ +contrast(65%); /* 65% contrast */ +contrast(1); /* No effect */ +contrast(200%); /* Double contrast */+ +
La fonction CSS drop-shadow() permet d'appliquer une ombre portée sur une image. Le résultat obtenu par cette fonction est une valeur {{cssxref("<filter-function>")}}.
En pratique, une ombre portée correspond à une version floutée et décalée du masque alpha de l'image, dessiné dans une couleur donnée et fusionné sous l'image.
- -Note : Cette fonction s'apparente à la propriété {{cssxref("box-shadow")}}. La propriété box-shadow permet de créer une ombre rectangulaire sous la boîte entière d'un élément. En revanche, la fonction drop-shadow() permet de créer un ombre qui épouse la forme (le canal alpha) de l'image même.
drop-shadow(décalage-x, décalage-y, rayon-flou, rayon-étalement, couleur)- -
La fonction drop-shadow() accepte un paramètre de type <shadow> (défini avec la propriété {{cssxref("box-shadow")}}), mais où le mot-clé inset n'est pas autorisé.
décalage-x décalage-ydécalage-x indique la distance horizontale (les valeurs négatives décalent l'ombre vers la gauche et les valeurs positives la décalent vers la droite). décalage-y indique la distance verticale (les valeurs négatives décalent l'ombre vers le haut et les valeurs positives vers le bas). Si les deux valeurs sont égales à 0, l'ombre est directement placée sous l'image.rayon-flou {{optional_inline}}0 ce qui correspond à un contour net, sans flou. Il n'est pas possible d'utiliser des valeurs négativesrayon-étalement{{optional_inline}}0 : l'ombre a alors la même taille que l'image.
- Attention : Chrome et Safari (basés sur WebKit) ne prennent pas en charge ce paramètre. S'il est utilisé, l'effet ne sera pas applique du tout.
couleur{{optional_inline}}/* Une ombre noire avec un flou de 10px de rayon. */ -drop-shadow(16px 16px 10px black) - -/* Une ombre rouge avec un flou de 1rem de rayon et de .3rem d'étalement */ -/* Attention, à l'heure actuelle, ce type d'ombre n'est pas pris en charge */ -/* par l'ensemble des navigateurs */ -drop-shadow(.5rem .5rem 1rem .3rem #e23)- -
La fonction CSS drop-shadow() permet d'appliquer une ombre portée sur une image. Le résultat obtenu par cette fonction est une valeur {{cssxref("<filter-function>")}}.
En pratique, une ombre portée correspond à une version floutée et décalée du masque alpha de l'image, dessiné dans une couleur donnée et fusionné sous l'image.
+ +Note : Cette fonction s'apparente à la propriété {{cssxref("box-shadow")}}. La propriété box-shadow permet de créer une ombre rectangulaire sous la boîte entière d'un élément. En revanche, la fonction drop-shadow() permet de créer un ombre qui épouse la forme (le canal alpha) de l'image même.
drop-shadow(décalage-x, décalage-y, rayon-flou, rayon-étalement, couleur)+ +
La fonction drop-shadow() accepte un paramètre de type <shadow> (défini avec la propriété {{cssxref("box-shadow")}}), mais où le mot-clé inset n'est pas autorisé.
décalage-x décalage-ydécalage-x indique la distance horizontale (les valeurs négatives décalent l'ombre vers la gauche et les valeurs positives la décalent vers la droite). décalage-y indique la distance verticale (les valeurs négatives décalent l'ombre vers le haut et les valeurs positives vers le bas). Si les deux valeurs sont égales à 0, l'ombre est directement placée sous l'image.rayon-flou {{optional_inline}}0 ce qui correspond à un contour net, sans flou. Il n'est pas possible d'utiliser des valeurs négativesrayon-étalement{{optional_inline}}0 : l'ombre a alors la même taille que l'image.
+ Attention : Chrome et Safari (basés sur WebKit) ne prennent pas en charge ce paramètre. S'il est utilisé, l'effet ne sera pas applique du tout.
couleur{{optional_inline}}/* Une ombre noire avec un flou de 10px de rayon. */ +drop-shadow(16px 16px 10px black) + +/* Une ombre rouge avec un flou de 1rem de rayon et de .3rem d'étalement */ +/* Attention, à l'heure actuelle, ce type d'ombre n'est pas pris en charge */ +/* par l'ensemble des navigateurs */ +drop-shadow(.5rem .5rem 1rem .3rem #e23)+ +
La fonction CSS grayscale() convertit une image en niveaux de gris. Le résultat de cette fonction est une valeur {{cssxref("<filter-function>")}}.
grayscale(multiplicateur)- -
multiplicateur100%, l'image obtenue sera complètement en niveaux de gris. Avec une valeur égale à 0%, l'image source restera inchangée. Les valeurs comprises entre 0% et 100% auront un effet intermédiaire (progression linéaire). Dans le cas d'une interpolation, la valeur par défaut utilisée est 0.grayscale(0) /* Aucun effet */ -grayscale(.7) /* Converti à 70% en niveaux de gris */ -grayscale(100%) /* Uniquement en niveaux de gris */- -
La fonction CSS grayscale() convertit une image en niveaux de gris. Le résultat de cette fonction est une valeur {{cssxref("<filter-function>")}}.
grayscale(multiplicateur)+ +
multiplicateur100%, l'image obtenue sera complètement en niveaux de gris. Avec une valeur égale à 0%, l'image source restera inchangée. Les valeurs comprises entre 0% et 100% auront un effet intermédiaire (progression linéaire). Dans le cas d'une interpolation, la valeur par défaut utilisée est 0.grayscale(0) /* Aucun effet */ +grayscale(.7) /* Converti à 70% en niveaux de gris */ +grayscale(100%) /* Uniquement en niveaux de gris */+ +
La fonction CSS hue-rotate() permet d'appliquer une rotation de teinte sur une image. Le résultat de cette fonction est une valeur {{cssxref("<filter-function>")}}.
hue-rotate(angle)- -
angle0deg laissera l'image inchangée. La valeur utilisée par défaut pour une interpolation sera 0. Bien qu'il n'y ait pas de valeur maximale, la valeur de l'angle est toujours ramenée entre 360deg et 0deg.hue-rotate(-90deg); /* Correspond à une rotation de 270deg */ -hue-rotate(0deg); /* Sans effet */ -hue-rotate(90deg); /* Rotation de 90deg */ -hue-rotate(.5turn); /* Rotation de 180deg */ -hue-rotate(405deg); /* Correspond à une rotation de 45deg */ -- -
La fonction CSS hue-rotate() permet d'appliquer une rotation de teinte sur une image. Le résultat de cette fonction est une valeur {{cssxref("<filter-function>")}}.
hue-rotate(angle)+ +
angle0deg laissera l'image inchangée. La valeur utilisée par défaut pour une interpolation sera 0. Bien qu'il n'y ait pas de valeur maximale, la valeur de l'angle est toujours ramenée entre 360deg et 0deg.hue-rotate(-90deg); /* Correspond à une rotation de 270deg */ +hue-rotate(0deg); /* Sans effet */ +hue-rotate(90deg); /* Rotation de 90deg */ +hue-rotate(.5turn); /* Rotation de 180deg */ +hue-rotate(405deg); /* Correspond à une rotation de 45deg */ ++ +
Le type de donnée <filter-function> représente un effet graphique qui peut modifier l'apparence d'une image. Il est notamment utilisé avec les propriétés {{cssxref("filter")}} et {{cssxref("backdrop-filter")}}.
Une valeur de type <filter-function> se construit avec l'une des fonctions listées ci-après. Chaque fonction utilise un argument et si celui-ci est invalide, aucun filtre n'est appliqué.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Filters 1.0', '#typedef-filter-function', '<filter-function>')}} | -{{Spec2('Filters 1.0')}} | -Définition initiale. | -
Le type de donnée <filter-function> représente un effet graphique qui peut modifier l'apparence d'une image. Il est notamment utilisé avec les propriétés {{cssxref("filter")}} et {{cssxref("backdrop-filter")}}.
Une valeur de type <filter-function> se construit avec l'une des fonctions listées ci-après. Chaque fonction utilise un argument et si celui-ci est invalide, aucun filtre n'est appliqué.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Filters 1.0', '#typedef-filter-function', '<filter-function>')}} | +{{Spec2('Filters 1.0')}} | +Définition initiale. | +
La fonction CSS invert() permet d'inverser les couleurs de l'image. La valeur obtenue par cette fonction est de type {{cssxref("<filter-function>")}}.
invert(multiplicateur)- -
multiplicateur100%, les couleurs seront entièrement inversées (ce sera un négatif de l'image originale). Une valeur de 0% ne modifiera pas l'image. Les valeurs intermédiaires auront un effet proportionnel. Lors d'une interpolation, la valeur utilisée par défaut est 0.invert(0); /* Aucun effet */ -invert(.6); /* Inversion à 60% */ -invert(100%); /* Négatif de l'image originale */- -
La fonction CSS invert() permet d'inverser les couleurs de l'image. La valeur obtenue par cette fonction est de type {{cssxref("<filter-function>")}}.
invert(multiplicateur)+ +
multiplicateur100%, les couleurs seront entièrement inversées (ce sera un négatif de l'image originale). Une valeur de 0% ne modifiera pas l'image. Les valeurs intermédiaires auront un effet proportionnel. Lors d'une interpolation, la valeur utilisée par défaut est 0.invert(0); /* Aucun effet */ +invert(.6); /* Inversion à 60% */ +invert(100%); /* Négatif de l'image originale */+ +
La fonction CSS opacity() permet de modifier la transparence de l'image. Le résultat obtenu par cette fonction est une valeur {{cssxref("<filter-function>")}}.
Note : Cette fonction est proche de la propriété {{cssxref("opacity")}} mais, selon le navigateur, les filtres CSS peuvent bénéficier de l'accélération matérielle pour de meilleures performances.
-opacity(multiplicateur)- -
multiplicateur0% entraînera une image complètement transparente. Une valeur de 100% laissera l'image inchangée. Les valeurs intermédiaires auront un effet proportionnel. Lors d'une interpolation, la valeur par défaut utilisée sera 1.opacity(0%); /* Complètement transparente */ -opacity(50%); /* 50% transparent */ -opacity(1); /* Aucun effet */- -
La fonction CSS opacity() permet de modifier la transparence de l'image. Le résultat obtenu par cette fonction est une valeur {{cssxref("<filter-function>")}}.
Note : Cette fonction est proche de la propriété {{cssxref("opacity")}} mais, selon le navigateur, les filtres CSS peuvent bénéficier de l'accélération matérielle pour de meilleures performances.
+opacity(multiplicateur)+ +
multiplicateur0% entraînera une image complètement transparente. Une valeur de 100% laissera l'image inchangée. Les valeurs intermédiaires auront un effet proportionnel. Lors d'une interpolation, la valeur par défaut utilisée sera 1.opacity(0%); /* Complètement transparente */ +opacity(50%); /* 50% transparent */ +opacity(1); /* Aucun effet */+ +
La fonction CSS saturate() permet d'accentuer ou de réduire la saturation d'une image. La valeur obtenue par cette fonction est une valeur de type {{cssxref("<filter-function>")}}.
saturate(multiplicateur)- -
multiplicateur100% réduira la saturation et une valeur supérieure accentuera la saturation. Une valeur de 0% désaturera complètement l'image alors qu'une valeur de 100% laissera l'image inchangée. Lors d'une interpolation, la valeur par défaut est 1.saturate(0); /* Complètement sous-saturée */ -saturate(.4); /* Sous-saturée à 40% */ -saturate(100%); /* Aucun effet */ -saturate(200%); /* Saturation doublée */- -
La fonction CSS saturate() permet d'accentuer ou de réduire la saturation d'une image. La valeur obtenue par cette fonction est une valeur de type {{cssxref("<filter-function>")}}.
saturate(multiplicateur)+ +
multiplicateur100% réduira la saturation et une valeur supérieure accentuera la saturation. Une valeur de 0% désaturera complètement l'image alors qu'une valeur de 100% laissera l'image inchangée. Lors d'une interpolation, la valeur par défaut est 1.saturate(0); /* Complètement sous-saturée */ +saturate(.4); /* Sous-saturée à 40% */ +saturate(100%); /* Aucun effet */ +saturate(200%); /* Saturation doublée */+ +
La fonction CSS sepia() convertit une image en sépia, lui donnant un aspect plus jaune/marron, voire vielli. Le résultat obtenu est une valeur de type {{cssxref("<filter-function>")}}.
sepia(multiplicateur)- -
multiplicateur100% permttra d'obtenir une image complètement sépia tandis qu'une valeur de 0% laissera l'image inchangée. Les valeurs entre 0% et 100% représenteront des conversions proportionnelles. Lors d'une interpolation, la valeur par défaut sera 0.sepia(0); /* Aucun effet */ -sepia(.65); /* 65% de sépia */ -sepia(100%); /* Complètement sépia */- -
La fonction CSS sepia() convertit une image en sépia, lui donnant un aspect plus jaune/marron, voire vielli. Le résultat obtenu est une valeur de type {{cssxref("<filter-function>")}}.
sepia(multiplicateur)+ +
multiplicateur100% permttra d'obtenir une image complètement sépia tandis qu'une valeur de 0% laissera l'image inchangée. Les valeurs entre 0% et 100% représenteront des conversions proportionnelles. Lors d'une interpolation, la valeur par défaut sera 0.sepia(0); /* Aucun effet */ +sepia(.65); /* 65% de sépia */ +sepia(100%); /* Complètement sépia */+ +
La propriété filter permet d'appliquer des filtres et d'obtenir des effets graphiques de flou, de saturation, etc. Les filtres sont généralement utilisés pour ajuster le rendu d'une image, d'un arrière-plan ou des bordures.
Plusieurs fonctions sont inclues dans le standard CSS et permettent d'obtenir des effets prédéfinis. Il est également possible d'utiliser un filtre SVG via une URL référençant un élément SVG filter.
/* URL vers un filtre SVG */
-filter: url("filters.svg#filter-id");
-
-/* Fonctions de filtre */
-filter: blur(5px);
-filter: brightness(0.4);
-filter: contrast(200%);
-filter: drop-shadow(16px 16px 20px blue);
-filter: grayscale(50%);
-filter: hue-rotate(90deg);
-filter: invert(75%);
-filter: opacity(25%);
-filter: saturate(30%);
-filter: sepia(60%);
-
-/* On applique plusieurs filtres */
-filter: contrast(175%) brightness(3%);
-
-/* On utilise aucun filtre */
-filter: none;
-
-/* Valeurs globales */
-filter: inherit;
-filter: initial;
-filter: unset;
-
-
-Avec une fonction, on utilisera la forme suivante :
- -filter: <filter-function> [<filter-function>]* | none -- -
En utilisant un élément SVG {{SVGElement("filter")}}, on utilisera la forme suivante :
- -filter: url(file.svg#filter-element-id) -- -
Si les deux filtres possèdent chacun une liste de même longueur (sans {{cssxref("<url>")}}, chacune des fonctions est interpolée selon ses propres règles. Si les deux listes ont des longueurs différentes, les derniers filtres de la liste la plus longue sont utilisés avec leurs valeurs par défaut afin de compléter la liste la plus courte, ensuite chaque fonction est interpolée selon ses propres règles. Si un filtre vaut none, il est remplacé avec la fonction de filtre (avec ses valeurs par défaut) de l'autre liste puis l'ensemble des fonctions est interpolé selon les règles de chacune. Dans les autres cas, on utilise un interpolation discrète.
Voici un rapide exemple de filtre fonctionnel. Chaque fonction est illustrée en détail par la suite.
- -.mydiv { filter: grayscale(50%) }
-
-/* on applique un niveau de gris à 50% */
-/* et un flou dont le rayon vaut 10px */
-img {
- filter: grayscale(0.5) blur(10px);
-}
-
-Voici un rapide exemple de filtre utilisant une ressource SVG :
- -.target { filter: url(#c1); }
-
-.mydiv { filter: url(commonfilters.xml#large-blur) }
-
-
-Pour utiliser la propriété CSS filter, on utilisera none ou une ou plusieurs des fonctions listées ci-après avec, pour chacune, un argument. Si la valeur est invalide, la fonction renverra none. Sauf mention contraire, les fonctions qui acceptent des valeurs exprimées en pourcentages (34%) acceptent également des valeurs décimales (0.34).
url()La fonction url() prend comme argument l'emplacement d'un fichier XML qui définit le filtre SVG à appliquer. L'URL peut faire référence à une ancre d'un élément spécifique.
filter: url(resources.svg#c1) -- -
blur()Cette fonction applique un flou gaussien à l'image d'entrée. La valeur du paramètre correspond au rayon de flou (l'écart-type de la gaussienne) utilisé. Plus la valeur est importante, plus le flou sera prononcé. La valeur par défaut du paramètre est 0. Selon la spécification, le paramètre est une valeur de type {{cssxref("<length>")}} mais la fonction n'accepte pas de valeurs exprimées en pourcentages.
- -filter: blur(5px) -- - - - - -
<svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg"> - <filter id="svgBlur" x="-5%" y="-5%" width="110%" height="110%"> - <feGaussianBlur in="SourceGraphic" stdDeviation="5"/> - </filter> -</svg>- -
{{EmbedLiveSample('blur','100%','236px','')}}
- -Note : Voir {{cssxref("filter-function/blur()", "blur()")}} pour plus d'informations.
-brightness()La fonction permet de modifier la luminosité d'une image grâce à un facteur linéaire. Un argument égal 0% créera une image totalement noire et une valeur de 100% conservera l'image d'entrée telle quelle. Il est possible d'utiliser des valeurs supérieures à 100% afin d'obtenir des images saturées en luminosité. La valeur par défaut pour l'argument est 1.
filter: brightness(0.5)- -
<svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg"> - <filter id="brightness"> - <feComponentTransfer> - <feFuncR type="linear" slope="[amount]"/> - <feFuncG type="linear" slope="[amount]"/> - <feFuncB type="linear" slope="[amount]"/> - </feComponentTransfer> - </filter> -</svg>- - - - - -
{{EmbedLiveSample('brightness','100%','231px','')}}
- -Note : Voir {{cssxref("filter-function/brightness()", "brightness()")}} pour plus d'informations.
-contrast()Cette fonction permet d'ajuster le contraste de l'image d'entrée. Une valeur de 0% créera une image entièrement grise. Une valeur de 100% conservera l'image d'entrée telle quelle. Il est possible d'utiliser des valeurs supérieures à 100% pour augmenter le contraste. La valeur par défaut de l'argument est 1.
filter: contrast(200%) -- -
<svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg"> - <filter id="contrast"> - <feComponentTransfer> - <feFuncR type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/> - <feFuncG type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/> - <feFuncB type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/> - </feComponentTransfer> - </filter> -</svg>- - - - - -
{{EmbedLiveSample('contrast','100%','203px','')}}
- -Note : Voir {{cssxref("filter-function/contrast()", "contrast()")}} pour plus d'informations.
-drop-shadow()Cette fonction permet d'appliquer une ombre portée à l'image d'entrée. Une ombre portée est une version décalée, dans une couleur donnée, du canal alpha de l'image qui est affiché sous celle-ci. La fonction peut accepter une valeur de type {{cssxref("<shadow>")}} (définie dans la spécification CSS3 sur les arrière-plans), une exception : le mot-clé inset n'est pas autorisée. Cette fonction est semblable à la propriété {{cssxref("box-shadow")}} plus répandue ; seule différence : les navigateurs utilisent parfois l'accélération matérielle pour les filtres ce qui peut permettre d'obtenir de meilleurs performances. Les paramètres de l'argument <shadow> sont les suivants :
<offset-x> <offset-y> (nécessaire)<offset-x> définit la distance horizontale : des valeurs négatives décaleront l'ombre à gauche de l'élément. <offset-y> définit la distance verticale : des valeurs négatives décaleront l'ombre au-dessus de l'élément. Se référer à la page {{cssxref("<length>")}} pour les différentes unités utilisables.<blur-radius> et/ou <spread-radius> sont utilisés).<blur-radius> (optionnel)0, le bord de l'ombre sera droit.<spread-radius> (optionnel)0 (l'ombre aura la même taille que l'élément). Note: Webkit, and maybe other browsers, do not support this 4th length; it will not render if added.<color> (optionnel)filter: drop-shadow(16px 16px 10px black)- -
<svg style="position: absolute; top: -999999px" xmlns="http://www.w3.org/2000/svg"> - <filter id="drop-shadow"> - <feGaussianBlur in="SourceAlpha" stdDeviation="[radius]"/> - <feOffset dx="[offset-x]" dy="[offset-y]" result="offsetblur"/> - <feFlood flood-color="[color]"/> - <feComposite in2="offsetblur" operator="in"/> - <feMerge> - <feMergeNode/> - <feMergeNode in="SourceGraphic"/> - </feMerge> - </filter> -</svg>- - - - - -
{{EmbedLiveSample('drop-shadow','100%','300px','')}}
- -Note : Voir {{cssxref("filter-function/drop-shadow()", "drop-shadow()")}} pour plus d'informations.
-grayscale()L'image d'entrée est convertie en niveau de gris. La valeur de l'argument définit la force de cette conversion. En utilisant une valeur de 100% sera complètement en niveaux de gris. 0% conservera l'image telle quelle. La valeur par défaut du paramètre est 0.
filter: grayscale(100%)- - - - - -
{{EmbedLiveSample('grayscale','100%','209px','')}}
- -Note : Voir {{cssxref("filter-function/grayscale()", "grayscale()")}} pour plus d'informations.
-hue-rotate()Cette fonction applique une rotation de teinte à l'image d'entrée. La valeur de l'angle passé en argument définit le nombre de degrés parcouru sur le cercle des couleurs. Une valeur de 0deg conservera l'image telle quelle. La valeur par défaut du paramètre est 0deg. Il n'y a pas de valeur maximale pour l'argument, si une valeur supérieure à 360deg est utilisée, ce sera la mesure de l'angle correspondante qui sera utilisée.
filter: hue-rotate(90deg)- - - - - - -
<svg style="position: absolute; top: -999999px" xmlns="http://www.w3.org/2000/svg"> - <filter id="svgHueRotate" > - <feColorMatrix type="hueRotate" values="[angle]" /> - <filter /> -</svg>- -
{{EmbedLiveSample('hue-rotate','100%','221px','')}}
- -Note : Voir {{cssxref("filter-function/hue-rotate()", "hue-rotate()")}} pour plus d'informations.
-invert()Cette fonction permet d'inverser les couleurs de l'image d'entrée. La valeur de l'argument définit la force de cette inversion. Une valeur de 100% inversera complètement les couleurs (tel un négatif) et une valeur 0% conservera l'image d'entrée telle quelle. La valeur par défaut de l'argument est 0.
filter: invert(100%)- - - - - -
{{EmbedLiveSample('invert','100%','407px','')}}
- -Note : Voir {{cssxref("filter-function/invert()", "invert()")}} pour plus d'informations.
-opacity()Cette fonction permet de régler l'opacité de l'image d'entrée. La valeur de l'argument indique la force de l'opacité. Ainsi, une valeur de 0% rendra l'image complètement transparente et une valeur de 100% conservera l'image telle quelle. Les valeurs intermédiaires appliqueront des effets proportionnels. La valeur par défaut de l'argument est 1. Cette fonction est proche de la propriété {{cssxref("opacity")}}, toutefois, avec les filtres, certains navigateurs utilisent l'accélération matérielle, ce qui permet d'obtenir de meilleures performances.
filter: opacity(50%)- - - - - -
{{EmbedLiveSample('opacity','100%','210px','')}}
- -Note : Voir {{cssxref("filter-function/opacity()", "opacity()")}} pour plus d'informations.
-saturate()L'image d'entrée est saturée. La valeur de l'argument indique la force de la saturation. Une valeur de 0% fera que l'image sera totalement désaturée et une valeur de 100% conservera l'image d'entrée telle quelle. Les valeurs intermédiaires auront un effet linéaire. Il est possible d'utiliser des valeurs supérieures à 100% pour obtenir un effet de sursaturation. La valeur par défaut de l'argument est 1.
filter: saturate(200%)- - - - - -
{{EmbedLiveSample('saturate','100%','332px','')}}
- -Note : Voir {{cssxref("filter-function/saturate()", "saturate()")}} pour plus d'informations.
-sepia()L'image d'entrée est convertie en sépia. La valeur de l'argument définit la proportion de la conversion. Ainsi, si on utilise un argument égal à 100%, le résultat sera entièrement sépia et si on utilise une valeur de 0%, l'image d'entrée sera inchangée. Les valeurs comprises entre 0% et 100% appliquent l'effet de façon linéaire. La valeur par défaut de l'argument est 0.
filter: sepia(100%)- - - - - -
{{EmbedLiveSample('sepia','100%','229px','')}}
- -Note : Voir {{cssxref("filter-function/sepia()", "sepia()")}} pour plus d'informations.
-On peut appliquer autant de fonction que nécessaire pour manipuler le rendu obtenu. Dans l'exemple suivant, on augmente le contraste et la luminosité de l'image :
- -filter: contrast(175%) brightness(103%)- - - - - -
{{EmbedLiveSample('Enchaîner_les_fonctions','100%','209px','')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Filters 1.0', '#FilterProperty', 'filter')}} | -{{Spec2('Filters 1.0')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.filter")}}
- -La propriété filter permet d'appliquer des filtres et d'obtenir des effets graphiques de flou, de saturation, etc. Les filtres sont généralement utilisés pour ajuster le rendu d'une image, d'un arrière-plan ou des bordures.
Plusieurs fonctions sont inclues dans le standard CSS et permettent d'obtenir des effets prédéfinis. Il est également possible d'utiliser un filtre SVG via une URL référençant un élément SVG filter.
/* URL vers un filtre SVG */
+filter: url("filters.svg#filter-id");
+
+/* Fonctions de filtre */
+filter: blur(5px);
+filter: brightness(0.4);
+filter: contrast(200%);
+filter: drop-shadow(16px 16px 20px blue);
+filter: grayscale(50%);
+filter: hue-rotate(90deg);
+filter: invert(75%);
+filter: opacity(25%);
+filter: saturate(30%);
+filter: sepia(60%);
+
+/* On applique plusieurs filtres */
+filter: contrast(175%) brightness(3%);
+
+/* On utilise aucun filtre */
+filter: none;
+
+/* Valeurs globales */
+filter: inherit;
+filter: initial;
+filter: unset;
+
+
+Avec une fonction, on utilisera la forme suivante :
+ +filter: <filter-function> [<filter-function>]* | none ++ +
En utilisant un élément SVG {{SVGElement("filter")}}, on utilisera la forme suivante :
+ +filter: url(file.svg#filter-element-id) ++ +
Si les deux filtres possèdent chacun une liste de même longueur (sans {{cssxref("<url>")}}, chacune des fonctions est interpolée selon ses propres règles. Si les deux listes ont des longueurs différentes, les derniers filtres de la liste la plus longue sont utilisés avec leurs valeurs par défaut afin de compléter la liste la plus courte, ensuite chaque fonction est interpolée selon ses propres règles. Si un filtre vaut none, il est remplacé avec la fonction de filtre (avec ses valeurs par défaut) de l'autre liste puis l'ensemble des fonctions est interpolé selon les règles de chacune. Dans les autres cas, on utilise un interpolation discrète.
Voici un rapide exemple de filtre fonctionnel. Chaque fonction est illustrée en détail par la suite.
+ +.mydiv { filter: grayscale(50%) }
+
+/* on applique un niveau de gris à 50% */
+/* et un flou dont le rayon vaut 10px */
+img {
+ filter: grayscale(0.5) blur(10px);
+}
+
+Voici un rapide exemple de filtre utilisant une ressource SVG :
+ +.target { filter: url(#c1); }
+
+.mydiv { filter: url(commonfilters.xml#large-blur) }
+
+
+Pour utiliser la propriété CSS filter, on utilisera none ou une ou plusieurs des fonctions listées ci-après avec, pour chacune, un argument. Si la valeur est invalide, la fonction renverra none. Sauf mention contraire, les fonctions qui acceptent des valeurs exprimées en pourcentages (34%) acceptent également des valeurs décimales (0.34).
url()La fonction url() prend comme argument l'emplacement d'un fichier XML qui définit le filtre SVG à appliquer. L'URL peut faire référence à une ancre d'un élément spécifique.
filter: url(resources.svg#c1) ++ +
blur()Cette fonction applique un flou gaussien à l'image d'entrée. La valeur du paramètre correspond au rayon de flou (l'écart-type de la gaussienne) utilisé. Plus la valeur est importante, plus le flou sera prononcé. La valeur par défaut du paramètre est 0. Selon la spécification, le paramètre est une valeur de type {{cssxref("<length>")}} mais la fonction n'accepte pas de valeurs exprimées en pourcentages.
+ +filter: blur(5px) ++ + + + + +
<svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg"> + <filter id="svgBlur" x="-5%" y="-5%" width="110%" height="110%"> + <feGaussianBlur in="SourceGraphic" stdDeviation="5"/> + </filter> +</svg>+ +
{{EmbedLiveSample('blur','100%','236px','')}}
+ +Note : Voir {{cssxref("filter-function/blur()", "blur()")}} pour plus d'informations.
+brightness()La fonction permet de modifier la luminosité d'une image grâce à un facteur linéaire. Un argument égal 0% créera une image totalement noire et une valeur de 100% conservera l'image d'entrée telle quelle. Il est possible d'utiliser des valeurs supérieures à 100% afin d'obtenir des images saturées en luminosité. La valeur par défaut pour l'argument est 1.
filter: brightness(0.5)+ +
<svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg"> + <filter id="brightness"> + <feComponentTransfer> + <feFuncR type="linear" slope="[amount]"/> + <feFuncG type="linear" slope="[amount]"/> + <feFuncB type="linear" slope="[amount]"/> + </feComponentTransfer> + </filter> +</svg>+ + + + + +
{{EmbedLiveSample('brightness','100%','231px','')}}
+ +Note : Voir {{cssxref("filter-function/brightness()", "brightness()")}} pour plus d'informations.
+contrast()Cette fonction permet d'ajuster le contraste de l'image d'entrée. Une valeur de 0% créera une image entièrement grise. Une valeur de 100% conservera l'image d'entrée telle quelle. Il est possible d'utiliser des valeurs supérieures à 100% pour augmenter le contraste. La valeur par défaut de l'argument est 1.
filter: contrast(200%) ++ +
<svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg"> + <filter id="contrast"> + <feComponentTransfer> + <feFuncR type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/> + <feFuncG type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/> + <feFuncB type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/> + </feComponentTransfer> + </filter> +</svg>+ + + + + +
{{EmbedLiveSample('contrast','100%','203px','')}}
+ +Note : Voir {{cssxref("filter-function/contrast()", "contrast()")}} pour plus d'informations.
+drop-shadow()Cette fonction permet d'appliquer une ombre portée à l'image d'entrée. Une ombre portée est une version décalée, dans une couleur donnée, du canal alpha de l'image qui est affiché sous celle-ci. La fonction peut accepter une valeur de type {{cssxref("<shadow>")}} (définie dans la spécification CSS3 sur les arrière-plans), une exception : le mot-clé inset n'est pas autorisée. Cette fonction est semblable à la propriété {{cssxref("box-shadow")}} plus répandue ; seule différence : les navigateurs utilisent parfois l'accélération matérielle pour les filtres ce qui peut permettre d'obtenir de meilleurs performances. Les paramètres de l'argument <shadow> sont les suivants :
<offset-x> <offset-y> (nécessaire)<offset-x> définit la distance horizontale : des valeurs négatives décaleront l'ombre à gauche de l'élément. <offset-y> définit la distance verticale : des valeurs négatives décaleront l'ombre au-dessus de l'élément. Se référer à la page {{cssxref("<length>")}} pour les différentes unités utilisables.<blur-radius> et/ou <spread-radius> sont utilisés).<blur-radius> (optionnel)0, le bord de l'ombre sera droit.<spread-radius> (optionnel)0 (l'ombre aura la même taille que l'élément). Note: Webkit, and maybe other browsers, do not support this 4th length; it will not render if added.<color> (optionnel)filter: drop-shadow(16px 16px 10px black)+ +
<svg style="position: absolute; top: -999999px" xmlns="http://www.w3.org/2000/svg"> + <filter id="drop-shadow"> + <feGaussianBlur in="SourceAlpha" stdDeviation="[radius]"/> + <feOffset dx="[offset-x]" dy="[offset-y]" result="offsetblur"/> + <feFlood flood-color="[color]"/> + <feComposite in2="offsetblur" operator="in"/> + <feMerge> + <feMergeNode/> + <feMergeNode in="SourceGraphic"/> + </feMerge> + </filter> +</svg>+ + + + + +
{{EmbedLiveSample('drop-shadow','100%','300px','')}}
+ +Note : Voir {{cssxref("filter-function/drop-shadow()", "drop-shadow()")}} pour plus d'informations.
+grayscale()L'image d'entrée est convertie en niveau de gris. La valeur de l'argument définit la force de cette conversion. En utilisant une valeur de 100% sera complètement en niveaux de gris. 0% conservera l'image telle quelle. La valeur par défaut du paramètre est 0.
filter: grayscale(100%)+ + + + + +
{{EmbedLiveSample('grayscale','100%','209px','')}}
+ +Note : Voir {{cssxref("filter-function/grayscale()", "grayscale()")}} pour plus d'informations.
+hue-rotate()Cette fonction applique une rotation de teinte à l'image d'entrée. La valeur de l'angle passé en argument définit le nombre de degrés parcouru sur le cercle des couleurs. Une valeur de 0deg conservera l'image telle quelle. La valeur par défaut du paramètre est 0deg. Il n'y a pas de valeur maximale pour l'argument, si une valeur supérieure à 360deg est utilisée, ce sera la mesure de l'angle correspondante qui sera utilisée.
filter: hue-rotate(90deg)+ + + + + + +
<svg style="position: absolute; top: -999999px" xmlns="http://www.w3.org/2000/svg"> + <filter id="svgHueRotate" > + <feColorMatrix type="hueRotate" values="[angle]" /> + <filter /> +</svg>+ +
{{EmbedLiveSample('hue-rotate','100%','221px','')}}
+ +Note : Voir {{cssxref("filter-function/hue-rotate()", "hue-rotate()")}} pour plus d'informations.
+invert()Cette fonction permet d'inverser les couleurs de l'image d'entrée. La valeur de l'argument définit la force de cette inversion. Une valeur de 100% inversera complètement les couleurs (tel un négatif) et une valeur 0% conservera l'image d'entrée telle quelle. La valeur par défaut de l'argument est 0.
filter: invert(100%)+ + + + + +
{{EmbedLiveSample('invert','100%','407px','')}}
+ +Note : Voir {{cssxref("filter-function/invert()", "invert()")}} pour plus d'informations.
+opacity()Cette fonction permet de régler l'opacité de l'image d'entrée. La valeur de l'argument indique la force de l'opacité. Ainsi, une valeur de 0% rendra l'image complètement transparente et une valeur de 100% conservera l'image telle quelle. Les valeurs intermédiaires appliqueront des effets proportionnels. La valeur par défaut de l'argument est 1. Cette fonction est proche de la propriété {{cssxref("opacity")}}, toutefois, avec les filtres, certains navigateurs utilisent l'accélération matérielle, ce qui permet d'obtenir de meilleures performances.
filter: opacity(50%)+ + + + + +
{{EmbedLiveSample('opacity','100%','210px','')}}
+ +Note : Voir {{cssxref("filter-function/opacity()", "opacity()")}} pour plus d'informations.
+saturate()L'image d'entrée est saturée. La valeur de l'argument indique la force de la saturation. Une valeur de 0% fera que l'image sera totalement désaturée et une valeur de 100% conservera l'image d'entrée telle quelle. Les valeurs intermédiaires auront un effet linéaire. Il est possible d'utiliser des valeurs supérieures à 100% pour obtenir un effet de sursaturation. La valeur par défaut de l'argument est 1.
filter: saturate(200%)+ + + + + +
{{EmbedLiveSample('saturate','100%','332px','')}}
+ +Note : Voir {{cssxref("filter-function/saturate()", "saturate()")}} pour plus d'informations.
+sepia()L'image d'entrée est convertie en sépia. La valeur de l'argument définit la proportion de la conversion. Ainsi, si on utilise un argument égal à 100%, le résultat sera entièrement sépia et si on utilise une valeur de 0%, l'image d'entrée sera inchangée. Les valeurs comprises entre 0% et 100% appliquent l'effet de façon linéaire. La valeur par défaut de l'argument est 0.
filter: sepia(100%)+ + + + + +
{{EmbedLiveSample('sepia','100%','229px','')}}
+ +Note : Voir {{cssxref("filter-function/sepia()", "sepia()")}} pour plus d'informations.
+On peut appliquer autant de fonction que nécessaire pour manipuler le rendu obtenu. Dans l'exemple suivant, on augmente le contraste et la luminosité de l'image :
+ +filter: contrast(175%) brightness(103%)+ + + + + +
{{EmbedLiveSample('Enchaîner_les_fonctions','100%','209px','')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Filters 1.0', '#FilterProperty', 'filter')}} | +{{Spec2('Filters 1.0')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.filter")}}
+ +Filter Effects ou « module des effets de filtre » (ou plus communément « filtres CSS ») est un module de la spécification CSS qui définit une façon de traiter le rendu d'un élément avant que celui-ci soit affiché dans le document.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Filters 1.0', '#FilterProperty', 'filter')}} | -{{ Spec2('Filters 1.0') }} | -Définition initiale. | -
backdrop-filter{{Compat("css.properties.backdrop-filter")}}
- -filter{{Compat("css.properties.filter")}}
diff --git a/files/fr/web/css/filter_effects/index.md b/files/fr/web/css/filter_effects/index.md new file mode 100644 index 0000000000..d1865662cc --- /dev/null +++ b/files/fr/web/css/filter_effects/index.md @@ -0,0 +1,57 @@ +--- +title: Filter Effects +slug: Web/CSS/Filter_Effects +tags: + - Aperçu + - CSS + - Filter Effects + - Reference +translation_of: Web/CSS/Filter_Effects +--- +Filter Effects ou « module des effets de filtre » (ou plus communément « filtres CSS ») est un module de la spécification CSS qui définit une façon de traiter le rendu d'un élément avant que celui-ci soit affiché dans le document.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Filters 1.0', '#FilterProperty', 'filter')}} | +{{ Spec2('Filters 1.0') }} | +Définition initiale. | +
backdrop-filter{{Compat("css.properties.backdrop-filter")}}
+ +filter{{Compat("css.properties.filter")}}
diff --git a/files/fr/web/css/fit-content/index.html b/files/fr/web/css/fit-content/index.html deleted file mode 100644 index 822f7d15ea..0000000000 --- a/files/fr/web/css/fit-content/index.html +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: fit-content() -slug: Web/CSS/fit-content -tags: - - CSS - - Experimental - - Fonction - - Reference - - Web -translation_of: Web/CSS/fit-content ---- -La fonction CSS fit-content() permet d'obtenir une dimension restreinte à un intervalle donnée (en utilisant la formule min(taille maximale, max(taille minimale, argument)).
/* Valeurs de type <length> */ -fit-content(200px) -fit-content(5cm) -fit-content(30vw) -fit-content(100ch) - -/* Valeurs de type <percentage> */ -fit-content(40%) -- -
Cette fonction peut être utilisée pour définir la taille d'une piste via les propriétés relatives aux grilles CSS où la taille maximale est définie par max-content et où la taille minimale est définie par auto et qui est calculée de façon similaire à auto (i.e. minmax(auto, max-content)), sauf que la taille de la piste est ramenée à argument si celui-ci est supérieur à auto.
Elle peut également être utilisée pour définir la taille d'une boîte avec {{cssxref("width")}}, {{cssxref("height")}}, {{cssxref("min-width")}}, {{cssxref("min-height")}}, {{cssxref("max-width")}} et {{cssxref("max-height")}} où la taille maximale fait référence à la taille maximale du contenu et où la taille minimale fait référence à la taille minimale du contenu.
- -<length><percentage>#container {
- display: grid;
- grid-template-columns: fit-content(300px) fit-content(300px) 1fr;
- grid-gap: 5px;
- box-sizing: border-box;
- height: 200px;
- width: 100%;
- background-color: #8cffa0;
- padding: 10px;
-}
-
-#container > div {
- background-color: #8ca0ff;
- padding: 5px;
-}
-
-
-<div id="container"> - <div>Item as wide as the content.</div> - <div> - Item with more text in it. Because the contents of it are - wider than the maximum width, it is clamped at 300 pixels. - </div> - <div>Flexible item</div> -</div>- -
{{EmbedLiveSample("Exemples", "100%", 200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Sizing", "#valdef-width-fit-content-length-percentage", "fit-content()")}} | -{{Spec2("CSS3 Sizing")}} | -Définition de la fonction pour les dimensions de boîte avec les propriétés {{cssxref("width")}}, {{cssxref("height")}}, {{cssxref("min-width")}}, {{cssxref("min-height")}}, {{cssxref("max-width")}} et {{cssxref("max-height")}}. | -
| {{SpecName("CSS Grid", "#valdef-grid-template-columns-fit-content", "fit-content()")}} | -{{Spec2("CSS Grid")}} | -Définition initiale, la fonction peut être utilisée pour définir la taille d'une piste au sein d'une grille CSS. | -
{{Compat("css.properties.grid-template-columns.fit-content")}}
diff --git a/files/fr/web/css/fit-content/index.md b/files/fr/web/css/fit-content/index.md new file mode 100644 index 0000000000..822f7d15ea --- /dev/null +++ b/files/fr/web/css/fit-content/index.md @@ -0,0 +1,107 @@ +--- +title: fit-content() +slug: Web/CSS/fit-content +tags: + - CSS + - Experimental + - Fonction + - Reference + - Web +translation_of: Web/CSS/fit-content +--- +La fonction CSS fit-content() permet d'obtenir une dimension restreinte à un intervalle donnée (en utilisant la formule min(taille maximale, max(taille minimale, argument)).
/* Valeurs de type <length> */ +fit-content(200px) +fit-content(5cm) +fit-content(30vw) +fit-content(100ch) + +/* Valeurs de type <percentage> */ +fit-content(40%) ++ +
Cette fonction peut être utilisée pour définir la taille d'une piste via les propriétés relatives aux grilles CSS où la taille maximale est définie par max-content et où la taille minimale est définie par auto et qui est calculée de façon similaire à auto (i.e. minmax(auto, max-content)), sauf que la taille de la piste est ramenée à argument si celui-ci est supérieur à auto.
Elle peut également être utilisée pour définir la taille d'une boîte avec {{cssxref("width")}}, {{cssxref("height")}}, {{cssxref("min-width")}}, {{cssxref("min-height")}}, {{cssxref("max-width")}} et {{cssxref("max-height")}} où la taille maximale fait référence à la taille maximale du contenu et où la taille minimale fait référence à la taille minimale du contenu.
+ +<length><percentage>#container {
+ display: grid;
+ grid-template-columns: fit-content(300px) fit-content(300px) 1fr;
+ grid-gap: 5px;
+ box-sizing: border-box;
+ height: 200px;
+ width: 100%;
+ background-color: #8cffa0;
+ padding: 10px;
+}
+
+#container > div {
+ background-color: #8ca0ff;
+ padding: 5px;
+}
+
+
+<div id="container"> + <div>Item as wide as the content.</div> + <div> + Item with more text in it. Because the contents of it are + wider than the maximum width, it is clamped at 300 pixels. + </div> + <div>Flexible item</div> +</div>+ +
{{EmbedLiveSample("Exemples", "100%", 200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Sizing", "#valdef-width-fit-content-length-percentage", "fit-content()")}} | +{{Spec2("CSS3 Sizing")}} | +Définition de la fonction pour les dimensions de boîte avec les propriétés {{cssxref("width")}}, {{cssxref("height")}}, {{cssxref("min-width")}}, {{cssxref("min-height")}}, {{cssxref("max-width")}} et {{cssxref("max-height")}}. | +
| {{SpecName("CSS Grid", "#valdef-grid-template-columns-fit-content", "fit-content()")}} | +{{Spec2("CSS Grid")}} | +Définition initiale, la fonction peut être utilisée pour définir la taille d'une piste au sein d'une grille CSS. | +
{{Compat("css.properties.grid-template-columns.fit-content")}}
diff --git a/files/fr/web/css/flex-basis/index.html b/files/fr/web/css/flex-basis/index.html deleted file mode 100644 index 03d16b111d..0000000000 --- a/files/fr/web/css/flex-basis/index.html +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: flex-basis -slug: Web/CSS/flex-basis -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/flex-basis ---- -La propriété flex-basis détermine la base de flexibilité utilisée comme taille initiale principale pour un élément flexible. Cette propriété détermine la taille de la boîte de contenu sauf si une autre boîte est visée par {{cssxref("box-sizing")}}.
Note : Dans le cas où flex-basis (avec une valeur différente de auto) et width (ou height si flex-direction: column) sont définis pour un élément, c'est flex-basis qui a la priorité.
/* On définit une largeur */ -flex-basis: 10em; -flex-basis: 3px; -flex-basis: auto; - -/* On utilise les dimensions */ -/* intrinsèques avec des mots-clés */ -flex-basis: fill; -flex-basis: max-content; -flex-basis: min-content; -flex-basis: fit-content; - -/* La taille se calcule automatiquement */ -/* en fonction du contenu de l'élément */ -flex-basis: content; - -/* Valeurs globales */ -flex-basis: inherit; -flex-basis: initial; -flex-basis: unset; -- -
La propriété flex-basis est définie grâce au mot-clé content ou grâce à une valeur de type <'width'>.
<'width'>auto. Les valeurs négatives ne sont pas autorisées. La valeur par défaut est auto.contentNote : Cette valeur n'était pas définie par la première version de la spécification sur les boîtes flexibles. Aussi, certaines anciennes implémentations se basant sur cette version de la spécification ne prendront pas cette valeur en charge. Un effet équivalent peut être obtenu en réglant la taille principale ({{cssxref("width")}} ou {{cssxref("height")}}) avec auto.
Note : Voici un rapide historique pour cette propriété : - -
flex-basis:auto signifiait « se référer à ma propriété width ou height »flex-basis:auto a été modifiée pour indiquer un dimensionnement automatique et le mot-clé main-size fut introduit pour faire référence à la propriété width ou height. L'implémentation dans Gecko a été suivie avec le bug {{bug("1032922")}}.auto fasse à nouveau référence à la propriété height ou width. Le mot-clé content a été introduit pour déclencher un dimensionnement automatique (c'est le bug {{bug("1105111")}} qui couvre cette implémentation).<ul class="container"> - <li class="flex flex1">1: flex-basis test</li> - <li class="flex flex2">2: flex-basis test</li> - <li class="flex flex3">3: flex-basis test</li> - <li class="flex flex4">4: flex-basis test</li> - <li class="flex flex5">5: flex-basis test</li> -</ul> - -<ul class="container"> - <li class="flex flex6">6: flex-basis test</li> -</ul> -- -
.container {
- font-family: arial, sans-serif;
- margin: 0;
- padding: 0;
- list-style-type: none;
- display: flex;
- flex-wrap: wrap;
-}
-
-.flex {
- background: #6AB6D8;
- padding: 10px;
- margin-bottom: 50px;
- border: 3px solid #2E86BB;
- color: white;
- font-size: 20px;
- text-align: center;
- position: relative;
-}
-
-.flex:after {
- position: absolute;
- z-index: 1;
- left: 0;
- top: 100%;
- margin-top: 10px;
- width: 100%;
- color: #333;
- font-size: 18px;
-}
-
-.flex1 {
- flex-basis: auto;
-}
-
-.flex1:after {
- content: 'auto';
-}
-
-.flex2 {
- flex-basis: max-content;
-}
-
-.flex2:after {
- content: 'max-content';
-}
-
-.flex3 {
- flex-basis: min-content;
-}
-
-.flex3:after {
- content: 'min-content';
-}
-
-.flex4 {
- flex-basis: fit-content;
-}
-
-.flex4:after {
- content: 'fit-content';
-}
-
-.flex5 {
- flex-basis: content;
-}
-
-.flex5:after {
- content: 'content';
-}
-
-.flex6 {
- flex-basis: fill;
-}
-
-.flex6:after {
- content: 'fill';
-}
-
-
-{{EmbedLiveSample('Exemples', '860', '360')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#propdef-flex-basis', 'flex-basis')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.flex-basis")}}
- -La propriété flex-basis détermine la base de flexibilité utilisée comme taille initiale principale pour un élément flexible. Cette propriété détermine la taille de la boîte de contenu sauf si une autre boîte est visée par {{cssxref("box-sizing")}}.
Note : Dans le cas où flex-basis (avec une valeur différente de auto) et width (ou height si flex-direction: column) sont définis pour un élément, c'est flex-basis qui a la priorité.
/* On définit une largeur */ +flex-basis: 10em; +flex-basis: 3px; +flex-basis: auto; + +/* On utilise les dimensions */ +/* intrinsèques avec des mots-clés */ +flex-basis: fill; +flex-basis: max-content; +flex-basis: min-content; +flex-basis: fit-content; + +/* La taille se calcule automatiquement */ +/* en fonction du contenu de l'élément */ +flex-basis: content; + +/* Valeurs globales */ +flex-basis: inherit; +flex-basis: initial; +flex-basis: unset; ++ +
La propriété flex-basis est définie grâce au mot-clé content ou grâce à une valeur de type <'width'>.
<'width'>auto. Les valeurs négatives ne sont pas autorisées. La valeur par défaut est auto.contentNote : Cette valeur n'était pas définie par la première version de la spécification sur les boîtes flexibles. Aussi, certaines anciennes implémentations se basant sur cette version de la spécification ne prendront pas cette valeur en charge. Un effet équivalent peut être obtenu en réglant la taille principale ({{cssxref("width")}} ou {{cssxref("height")}}) avec auto.
Note : Voici un rapide historique pour cette propriété : + +
flex-basis:auto signifiait « se référer à ma propriété width ou height »flex-basis:auto a été modifiée pour indiquer un dimensionnement automatique et le mot-clé main-size fut introduit pour faire référence à la propriété width ou height. L'implémentation dans Gecko a été suivie avec le bug {{bug("1032922")}}.auto fasse à nouveau référence à la propriété height ou width. Le mot-clé content a été introduit pour déclencher un dimensionnement automatique (c'est le bug {{bug("1105111")}} qui couvre cette implémentation).<ul class="container"> + <li class="flex flex1">1: flex-basis test</li> + <li class="flex flex2">2: flex-basis test</li> + <li class="flex flex3">3: flex-basis test</li> + <li class="flex flex4">4: flex-basis test</li> + <li class="flex flex5">5: flex-basis test</li> +</ul> + +<ul class="container"> + <li class="flex flex6">6: flex-basis test</li> +</ul> ++ +
.container {
+ font-family: arial, sans-serif;
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.flex {
+ background: #6AB6D8;
+ padding: 10px;
+ margin-bottom: 50px;
+ border: 3px solid #2E86BB;
+ color: white;
+ font-size: 20px;
+ text-align: center;
+ position: relative;
+}
+
+.flex:after {
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ top: 100%;
+ margin-top: 10px;
+ width: 100%;
+ color: #333;
+ font-size: 18px;
+}
+
+.flex1 {
+ flex-basis: auto;
+}
+
+.flex1:after {
+ content: 'auto';
+}
+
+.flex2 {
+ flex-basis: max-content;
+}
+
+.flex2:after {
+ content: 'max-content';
+}
+
+.flex3 {
+ flex-basis: min-content;
+}
+
+.flex3:after {
+ content: 'min-content';
+}
+
+.flex4 {
+ flex-basis: fit-content;
+}
+
+.flex4:after {
+ content: 'fit-content';
+}
+
+.flex5 {
+ flex-basis: content;
+}
+
+.flex5:after {
+ content: 'content';
+}
+
+.flex6 {
+ flex-basis: fill;
+}
+
+.flex6:after {
+ content: 'fill';
+}
+
+
+{{EmbedLiveSample('Exemples', '860', '360')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#propdef-flex-basis', 'flex-basis')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.flex-basis")}}
+ +La propriété flex-direction définit la façon dont les éléments flexibles sont placés dans un conteneur flexible : elle définit l'axe principal et la direction des éléments (normale ou inversée).
On notera que les valeurs row et row-reverse sont impactées par la direction du conteneur. Si {{htmlattrxref("dir")}} vaut ltr, row représente l'axe horizontal allant de la gauche vers la droite et row-reverse représente le même axe allant de la droite vers la gauche. Si dir vaut rtl, row correspondra à l'axe horizontal orienté de la droite vers la gauche et row-reverse de la gauche vers la droite.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
- -/* La direction suit une ligne */ -flex-direction: row; - -/* Semblable à <row> mais dans */ -/* la direction opposée */ -flex-direction: row-reverse; - -/* Les lignes de texte sont */ -/* empilées */ -flex-direction: column; - -/* Semblable à <column> mais dans */ -/* la direction opposée */ -flex-direction: column-reverse; - -/* Valeurs globales */ -flex-direction: inherit; -flex-direction: initial; -flex-direction: unset; -- -
rowrow-reversecolumncolumn-reversecolumn mais main-start et main-end sont échangés.<h4>Un exemple avec column-reverse</h4> -<div id="content"> - <div class="box" style="background-color:red;">A</div> - <div class="box" style="background-color:lightblue;">B</div> - <div class="box" style="background-color:yellow;">C</div> -</div> -<h4>Un exemple avec row-reverse</h4> -<div id="content1"> - <div class="box" style="background-color:red;">A</div> - <div class="box" style="background-color:lightblue;">B</div> - <div class="box" style="background-color:yellow;">C</div> -</div> -- -
#content {
- width: 200px;
- height: 200px;
- border: 1px solid #c3c3c3;
- display: flex;
- flex-direction: column-reverse;
-}
-
-#content1 {
- width: 200px;
- height: 200px;
- border: 1px solid #c3c3c3;
- display: flex;
- flex-direction: row-reverse;
-}
-
-.box {
- width: 50px;
- height: 50px;
-}
-
-{{EmbedLiveSample('Exemples', '', '300')}}
- -Lorsqu'on utilise flex-direction avec les valeurs row-reverse ou column-reverse, on crée une déconnexion entre la présentation visuelle du contenu et l'ordre du DOM. Cela aura un impact négatif pour les utilisateurs qui naviguent à l'aide d'outils d'assistance tels que les les lecteurs d'écran. Si l'ordre visuel est important, les utilisateurs de lecteurs d'écran n'auront pas accès à l'ordre correct pour la lecture.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-direction', 'flex-direction')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.flex-direction")}}
- -La propriété flex-direction définit la façon dont les éléments flexibles sont placés dans un conteneur flexible : elle définit l'axe principal et la direction des éléments (normale ou inversée).
On notera que les valeurs row et row-reverse sont impactées par la direction du conteneur. Si {{htmlattrxref("dir")}} vaut ltr, row représente l'axe horizontal allant de la gauche vers la droite et row-reverse représente le même axe allant de la droite vers la gauche. Si dir vaut rtl, row correspondra à l'axe horizontal orienté de la droite vers la gauche et row-reverse de la gauche vers la droite.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
+ +/* La direction suit une ligne */ +flex-direction: row; + +/* Semblable à <row> mais dans */ +/* la direction opposée */ +flex-direction: row-reverse; + +/* Les lignes de texte sont */ +/* empilées */ +flex-direction: column; + +/* Semblable à <column> mais dans */ +/* la direction opposée */ +flex-direction: column-reverse; + +/* Valeurs globales */ +flex-direction: inherit; +flex-direction: initial; +flex-direction: unset; ++ +
rowrow-reversecolumncolumn-reversecolumn mais main-start et main-end sont échangés.<h4>Un exemple avec column-reverse</h4> +<div id="content"> + <div class="box" style="background-color:red;">A</div> + <div class="box" style="background-color:lightblue;">B</div> + <div class="box" style="background-color:yellow;">C</div> +</div> +<h4>Un exemple avec row-reverse</h4> +<div id="content1"> + <div class="box" style="background-color:red;">A</div> + <div class="box" style="background-color:lightblue;">B</div> + <div class="box" style="background-color:yellow;">C</div> +</div> ++ +
#content {
+ width: 200px;
+ height: 200px;
+ border: 1px solid #c3c3c3;
+ display: flex;
+ flex-direction: column-reverse;
+}
+
+#content1 {
+ width: 200px;
+ height: 200px;
+ border: 1px solid #c3c3c3;
+ display: flex;
+ flex-direction: row-reverse;
+}
+
+.box {
+ width: 50px;
+ height: 50px;
+}
+
+{{EmbedLiveSample('Exemples', '', '300')}}
+ +Lorsqu'on utilise flex-direction avec les valeurs row-reverse ou column-reverse, on crée une déconnexion entre la présentation visuelle du contenu et l'ordre du DOM. Cela aura un impact négatif pour les utilisateurs qui naviguent à l'aide d'outils d'assistance tels que les les lecteurs d'écran. Si l'ordre visuel est important, les utilisateurs de lecteurs d'écran n'auront pas accès à l'ordre correct pour la lecture.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-direction', 'flex-direction')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.flex-direction")}}
+ +La propriété CSS flex-flow est une propriété raccourcie pour les propriétés {{cssxref("flex-direction")}} et {{cssxref("flex-wrap")}}.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
- -/* flex-flow: <'flex-direction'> */ -flex-flow: row; -flex-flow: row-reverse; -flex-flow: column; -flex-flow: column-reverse; - -/* flex-flow: <'flex-wrap'> */ -flex-flow: nowrap; -flex-flow: wrap; -flex-flow: wrap-reverse; - -/* flex-flow: <'flex-direction'> et <'flex-wrap'> */ -flex-flow: row nowrap; -flex-flow: column wrap; -flex-flow: column-reverse wrap-reverse; - -/* Valeurs globales */ -flex-flow: inherit; -flex-flow: initial; -flex-flow: unset; -- -
Voir {{cssxref("flex-direction")}} et {{cssxref("flex-wrap")}} pour plus d'informations sur les valeurs que peuvent prendre ces deux propriétés.
- -element {
-
- /* L'axe principal sera la direction de bloc */
- /* et on commencera par le bas (main-start et */
- /* main-end inversés. Les éléments flexibles */
- /* passent sur une nouvelle ligne si besoin */
-
- flex-flow: column-reverse wrap;
-
-}
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox','#flex-flow-property','flex-flow')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.flex-flow")}}
- -La propriété CSS flex-flow est une propriété raccourcie pour les propriétés {{cssxref("flex-direction")}} et {{cssxref("flex-wrap")}}.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
+ +/* flex-flow: <'flex-direction'> */ +flex-flow: row; +flex-flow: row-reverse; +flex-flow: column; +flex-flow: column-reverse; + +/* flex-flow: <'flex-wrap'> */ +flex-flow: nowrap; +flex-flow: wrap; +flex-flow: wrap-reverse; + +/* flex-flow: <'flex-direction'> et <'flex-wrap'> */ +flex-flow: row nowrap; +flex-flow: column wrap; +flex-flow: column-reverse wrap-reverse; + +/* Valeurs globales */ +flex-flow: inherit; +flex-flow: initial; +flex-flow: unset; ++ +
Voir {{cssxref("flex-direction")}} et {{cssxref("flex-wrap")}} pour plus d'informations sur les valeurs que peuvent prendre ces deux propriétés.
+ +element {
+
+ /* L'axe principal sera la direction de bloc */
+ /* et on commencera par le bas (main-start et */
+ /* main-end inversés. Les éléments flexibles */
+ /* passent sur une nouvelle ligne si besoin */
+
+ flex-flow: column-reverse wrap;
+
+}
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox','#flex-flow-property','flex-flow')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.flex-flow")}}
+ +La propriété CSS flex-grow définit le facteur d'expansion d'un élément flexible selon sa dimension principale. Elle indique la quantité d'espace restant que l'élément devrait consommer dans un conteneur flexible relativement à la taille des autres éléments du même conteneur.
La dimension principale correspond à la hauteur ou à la largeur de l'élément selon la valeur de {{cssxref("flex-direction")}}.
- -L'espace restant qui est réparti correspond à la taille du conteneur flexible moins la somme des tailles des éléments flexibles. Si tous les éléments voisins possèdent le même facteur d'expansion, ils recevront tous la même part d'espace.
- -La plupart du temps flex-grow est utilisé avec les autres propriétés flexibles {{cssxref("flex-shrink")}} et {{cssxref("flex-basis")}}. On pourra utiliser la propriété raccourcie {{cssxref("flex")}} afin de s'assurer que toutes les valeurs des propriétés flexibles auront été définies.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
- -flex-grow: 2; -flex-grow: 0.6; - -/* Valeurs globales */ -flex-shrink: inherit; -flex-shrink: initial; -flex-shrink: unset; -- -
La propriété flex-grow se définit avec une valeur de type <number>.
<number><h4>A,B,C et F ont flex-shrink:1 . D et E ont flex-grow:1 .</h4> -<div id="content"> - <div class="box" style="background-color:red;">A</div> - <div class="box" style="background-color:lightblue;">B</div> - <div class="box" style="background-color:yellow;">C</div> - <div class="box1" style="background-color:brown;">D</div> - <div class="box1" style="background-color:lightgreen;">E</div> - <div class="box" style="background-color:brown;">F</div> -</div> -- -
#content {
- display: flex;
-
- justify-content: space-around;
- flex-flow: row wrap;
- align-items: stretch;
-}
-
-.box {
- flex-shrink: 1;
- border: 3px solid rgba(0,0,0,.2);
-}
-
-.box1 {
- flex-grow: 1;
- border: 3px solid rgba(0,0,0,.2);
-}
-
-
-{{EmbedLiveSample('Exemples', '700px', '300px')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox','#flex-grow-property','flex-grow')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.flex-grow")}}
- -flex-grow est étrange ? un article (en anglais) écrit par Manuel Matuzovic sur CSS-Tricks et qui illustre le fonctionnement de flex-growLa propriété CSS flex-grow définit le facteur d'expansion d'un élément flexible selon sa dimension principale. Elle indique la quantité d'espace restant que l'élément devrait consommer dans un conteneur flexible relativement à la taille des autres éléments du même conteneur.
La dimension principale correspond à la hauteur ou à la largeur de l'élément selon la valeur de {{cssxref("flex-direction")}}.
+ +L'espace restant qui est réparti correspond à la taille du conteneur flexible moins la somme des tailles des éléments flexibles. Si tous les éléments voisins possèdent le même facteur d'expansion, ils recevront tous la même part d'espace.
+ +La plupart du temps flex-grow est utilisé avec les autres propriétés flexibles {{cssxref("flex-shrink")}} et {{cssxref("flex-basis")}}. On pourra utiliser la propriété raccourcie {{cssxref("flex")}} afin de s'assurer que toutes les valeurs des propriétés flexibles auront été définies.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
+ +flex-grow: 2; +flex-grow: 0.6; + +/* Valeurs globales */ +flex-shrink: inherit; +flex-shrink: initial; +flex-shrink: unset; ++ +
La propriété flex-grow se définit avec une valeur de type <number>.
<number><h4>A,B,C et F ont flex-shrink:1 . D et E ont flex-grow:1 .</h4> +<div id="content"> + <div class="box" style="background-color:red;">A</div> + <div class="box" style="background-color:lightblue;">B</div> + <div class="box" style="background-color:yellow;">C</div> + <div class="box1" style="background-color:brown;">D</div> + <div class="box1" style="background-color:lightgreen;">E</div> + <div class="box" style="background-color:brown;">F</div> +</div> ++ +
#content {
+ display: flex;
+
+ justify-content: space-around;
+ flex-flow: row wrap;
+ align-items: stretch;
+}
+
+.box {
+ flex-shrink: 1;
+ border: 3px solid rgba(0,0,0,.2);
+}
+
+.box1 {
+ flex-grow: 1;
+ border: 3px solid rgba(0,0,0,.2);
+}
+
+
+{{EmbedLiveSample('Exemples', '700px', '300px')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox','#flex-grow-property','flex-grow')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.flex-grow")}}
+ +flex-grow est étrange ? un article (en anglais) écrit par Manuel Matuzovic sur CSS-Tricks et qui illustre le fonctionnement de flex-growLa propriété flex-shrink définit le facteur de rétrécissement d'un élément flexible. Si la taille de l'ensemble des éléments flexibles est supérieure à la taille du conteneur, les éléments seront comprimés selon leur facteur flex-shrink.
flex-shrink est généralement utilisé avec les propriétés {{cssxref("flex-grow")}} et {{cssxref("flex-basis")}}. Elle est souvent définie grâce à la propriété raccourcie {{cssxref("flex")}}.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
- -/* Valeurs numériques */ -/* Type <number> */ -flex-shrink: 2; -flex-shrink: 0.6; - -/* Valeurs globales */ -flex-shrink: inherit; -flex-shrink: initial; -flex-shrink: unset; -- -
La propriété flex-shrink est définie grâce à une valeur de type <number>.
<number>1.<p>A,B,C ont flex-shrink: 1. D et E ont flex-shrink: 2.</p> -<div id="content"> - <div class="box" style="background-color:red;">A</div> - <div class="box" style="background-color:lightblue;">B</div> - <div class="box" style="background-color:yellow;">C</div> - <div class="box1" style="background-color:brown;">D</div> - <div class="box1" style="background-color:lightgreen;">E</div> -</div> -- -
#content {
- display: flex;
- width: 500px;
-}
-
-#content div {
- flex-basis: 120px;
- border: 3px solid rgba(0,0,0.2);
-}
-
-.box {
- flex-shrink: 1;
-}
-
-.box1 {
- flex-shrink: 2;
-}
-
-
-{{EmbedLiveSample('Exemples', 500, 300)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-shrink', 'flex-shrink')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.flex-shrink")}}
- -La propriété flex-shrink définit le facteur de rétrécissement d'un élément flexible. Si la taille de l'ensemble des éléments flexibles est supérieure à la taille du conteneur, les éléments seront comprimés selon leur facteur flex-shrink.
flex-shrink est généralement utilisé avec les propriétés {{cssxref("flex-grow")}} et {{cssxref("flex-basis")}}. Elle est souvent définie grâce à la propriété raccourcie {{cssxref("flex")}}.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
+ +/* Valeurs numériques */ +/* Type <number> */ +flex-shrink: 2; +flex-shrink: 0.6; + +/* Valeurs globales */ +flex-shrink: inherit; +flex-shrink: initial; +flex-shrink: unset; ++ +
La propriété flex-shrink est définie grâce à une valeur de type <number>.
<number>1.<p>A,B,C ont flex-shrink: 1. D et E ont flex-shrink: 2.</p> +<div id="content"> + <div class="box" style="background-color:red;">A</div> + <div class="box" style="background-color:lightblue;">B</div> + <div class="box" style="background-color:yellow;">C</div> + <div class="box1" style="background-color:brown;">D</div> + <div class="box1" style="background-color:lightgreen;">E</div> +</div> ++ +
#content {
+ display: flex;
+ width: 500px;
+}
+
+#content div {
+ flex-basis: 120px;
+ border: 3px solid rgba(0,0,0.2);
+}
+
+.box {
+ flex-shrink: 1;
+}
+
+.box1 {
+ flex-shrink: 2;
+}
+
+
+{{EmbedLiveSample('Exemples', 500, 300)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-shrink', 'flex-shrink')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.flex-shrink")}}
+ +La propriété flex-wrap indique si les éléments flexibles sont contraints à être disposés sur une seule ligne ou s'ils peuvent être affichés sur plusieurs lignes avec un retour automatique. Si le retour à la ligne est autorisé, la propriété permet également de contrôler la direction dans laquelle les lignes sont empilées.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
- -/* Valeurs avec un mot-clé */ -flex-wrap: nowrap; /* Valeur par défaut */ -flex-wrap: wrap; -flex-wrap: wrap-reverse; - -/* Valeurs globales */ -flex-wrap: inherit; -flex-wrap: initial; -flex-wrap: unset; -- -
La propriété flex-wrap peut être défini grâce à l'un des mots-clés suivants.
nowrapwrapflex-direction et la ligne cross-end est à l'opposée cross-start.wrap-reversewrap mais cross-start et cross-end sont permutées.{{csssyntax}}
- -<h4>Un exemple de flex-wrap:wrap </h4> -<div class="contenu"> - <div class="rouge">1</div> - <div class="vert">2</div> - <div class="bleu">3</div> -</div> - -<h4>Un exemple de flex-wrap:nowrap </h4> -<div class="contenu1"> - <div class="rouge">1</div> - <div class="vert">2</div> - <div class="bleu">3</div> -</div> - -<h4>Un exemple de flex-wrap:wrap-reverse </h4> -<div class="contenu2"> - <div class="rouge">1</div> - <div class="vert">2</div> - <div class="bleu">3</div> -</div> -- -
.contenu,
-.contenu1,
-.contenu2 {
- color: #fff;
- font: 100 24px/100px sans-serif;
- height: 150px;
- text-align: center;
-}
-
-.contenu div,
-.contenu1 div,
-.contenu2 div {
- height: 50%;
- width: 300px;
-}
-.rouge {
- background: orangered;
-}
-.vert {
- background: yellowgreen;
-}
-.bleu {
- background: steelblue;
-}
-
-/* Styles pour les boîtes flexibles*/
-.contenu {
- display: flex;
- flex-wrap: wrap;
-}
-.contenu1 {
- display: flex;
- flex-wrap: nowrap;
-}
-.contenu2 {
- display: flex;
- flex-wrap: wrap-reverse;
-}
-
-
-
-{{EmbedLiveSample('Examples', '700px', '700px', '', 'Web/CSS/flex-wrap')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-wrap-property', 'flex-wrap')}} | -{{Spec2('CSS3 Flexbox')}} | -- |
{{cssinfo}}
- -{{Compat("css.properties.flex-wrap")}}
- -La propriété flex-wrap indique si les éléments flexibles sont contraints à être disposés sur une seule ligne ou s'ils peuvent être affichés sur plusieurs lignes avec un retour automatique. Si le retour à la ligne est autorisé, la propriété permet également de contrôler la direction dans laquelle les lignes sont empilées.
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
+ +/* Valeurs avec un mot-clé */ +flex-wrap: nowrap; /* Valeur par défaut */ +flex-wrap: wrap; +flex-wrap: wrap-reverse; + +/* Valeurs globales */ +flex-wrap: inherit; +flex-wrap: initial; +flex-wrap: unset; ++ +
La propriété flex-wrap peut être défini grâce à l'un des mots-clés suivants.
nowrapwrapflex-direction et la ligne cross-end est à l'opposée cross-start.wrap-reversewrap mais cross-start et cross-end sont permutées.{{csssyntax}}
+ +<h4>Un exemple de flex-wrap:wrap </h4> +<div class="contenu"> + <div class="rouge">1</div> + <div class="vert">2</div> + <div class="bleu">3</div> +</div> + +<h4>Un exemple de flex-wrap:nowrap </h4> +<div class="contenu1"> + <div class="rouge">1</div> + <div class="vert">2</div> + <div class="bleu">3</div> +</div> + +<h4>Un exemple de flex-wrap:wrap-reverse </h4> +<div class="contenu2"> + <div class="rouge">1</div> + <div class="vert">2</div> + <div class="bleu">3</div> +</div> ++ +
.contenu,
+.contenu1,
+.contenu2 {
+ color: #fff;
+ font: 100 24px/100px sans-serif;
+ height: 150px;
+ text-align: center;
+}
+
+.contenu div,
+.contenu1 div,
+.contenu2 div {
+ height: 50%;
+ width: 300px;
+}
+.rouge {
+ background: orangered;
+}
+.vert {
+ background: yellowgreen;
+}
+.bleu {
+ background: steelblue;
+}
+
+/* Styles pour les boîtes flexibles*/
+.contenu {
+ display: flex;
+ flex-wrap: wrap;
+}
+.contenu1 {
+ display: flex;
+ flex-wrap: nowrap;
+}
+.contenu2 {
+ display: flex;
+ flex-wrap: wrap-reverse;
+}
+
+
+
+{{EmbedLiveSample('Examples', '700px', '700px', '', 'Web/CSS/flex-wrap')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-wrap-property', 'flex-wrap')}} | +{{Spec2('CSS3 Flexbox')}} | ++ |
{{cssinfo}}
+ +{{Compat("css.properties.flex-wrap")}}
+ +La propriété flex est une propriété raccourcie qui définit la capacité d'un élément flexible à modifier ses dimensions afin de remplir l'espace disponible de son conteneur.
Les propriétés détaillées correspondantes à cette propriété raccourcie sont {{cssxref("flex-grow")}}, {{cssxref("flex-shrink")}} et {{cssxref("flex-basis")}}.
- -Les éléments flexibles peuvent être étirés ou réduits pour utiliser un espace proportionnel à leur coefficient de grossissement ou de rétrécissement afin de ne pas dépasser d'un conteneur.
- -Pour la plupart des cas, on utilisera une des valeurs suivantes : auto, initial, none ou un nombre positif sans unité. Pour voir l'effet de ces valeurs, essayez de redimensionner les conteneurs flexibles ci-après :
<div class="flex-container"> - - <div class="item auto">auto</div> - <div class="item auto">auto</div> - <div class="item auto">auto</div> - -</div> - -<div class="flex-container"> - - <div class="item auto">auto</div> - <div class="item initial">initial</div> - <div class="item initial">initial</div> - -</div> - -<div class="flex-container"> - - <div class="item auto">auto</div> - <div class="item auto">auto</div> - <div class="item none">none</div> - -</div> - -<div class="flex-container"> - - <div class="item initial">initial</div> - <div class="item none">none</div> - <div class="item none">none</div> - -</div> - -<div class="flex-container"> - - <div class="item four">4</div> - <div class="item two">2</div> - <div class="item one">1</div> - -</div> -- -
* {
- box-sizing: border-box;
-}
-
-.flex-container {
- background-color: #F4F7F8;
- resize: horizontal;
- overflow: hidden;
- display: flex;
- margin: 1em;
-}
-
-.item {
- margin: 1em;
- padding: 0.5em;
- width: 110px;
- min-width: 0;
- background-color: #1B5385;
- color: white;
- font-family: monospace;
-}
-
-.initial {
- flex: initial;
-}
-
-.auto {
- flex: auto;
-}
-
-.none {
- flex: none;
-}
-
-.four {
- flex: 4;
-}
-
-.two {
- flex: 2;
-}
-
-.one {
- flex: 1;
-}
-
-
-{{EmbedLiveSample("description", "100%","370")}}
- -Par défaut, les éléments flexibles ne se rétrécissent pas en dessous de la taille minimale du contenu. Pour modifier ce comportement, il faudra paramétrer {{cssxref("min-width")}} ou {{cssxref("min-height")}}.
- -Voir la page Utiliser les boîtes flexibles (flexbox) CSS pour plus d'informations.
- -/* Valeurs de base */ -flex: auto; -flex: initial; -flex: none; - -/* Une valeur sans unité pour flex-grow */ -/* flex-basis vaut alors 0 */ -flex: 2; - -/* Une valeur, largeur/hauteur: flex-basis */ -flex: 10em; -flex: 30px; -flex: content; - -/* Deux valeurs : flex-grow | flex-basis */ -flex: 1 30px; - -/* Deux valeurs : flex-grow | flex-shrink */ -/* flex-basis vaut alors 0 */ -flex: 2 2; - -/* Trois valeurs : flex-grow | flex-shrink | flex-basis */ -flex: 2 2 10%; - -/* Valeurs globales */ -flex: inherit; -flex: initial; -flex: unset; -- -
La propriété flex peut être définie avec une, deux ou trois valeurs.
<flex-grow><flex-basis>none.<flex-grow>.<flex-shrink><flex-basis><flex-grow><flex-shrink><flex-basis>autowidth et height mais peut grandir pour absorber l'espace libre disponible dans le conteneur flexible ou rétrécir à sa taille minimale pour rentrer dans le conteneur. Cette valeur est équivalente à "flex: 1 1 auto".initialwidth et height. Ce comportement est équivalent à la valeur par défaut (0 1 auto). Si besoin, l'élément rétrécit à sa taille minimale pour rentrer dans le conteneur mais il ne grandira pas s'il y a de l'espace disponible dans ce conteneur. Ce mot-clé est équivalent à "flex: 0 1 auto".nonewidth et height. Il n'est pas flexible : il ne peut ni rétrécir ni grandir selon l'espace du conteneur flexible. Ce mot-clé est équivalent à "flex: 0 0 auto".<'flex-grow'>1.<'flex-shrink'>1.<'flex-basis'>0.Note : Lorsqu'on utilise une ou deux valeurs sans unité dans la règle, flex-basis vaudra 0. Pour plus d'informations, voir le brouillon de spécification du module des boîtes flexibles.
#flex-container {
- display: flex;
- flex-direction: row;
-}
-
-#flex-container > .flex-item {
- flex: auto;
-}
-
-#flex-container > .raw-item {
- width: 5rem;
-}
-
-
-<div id="flex-container"> - <div class="flex-item" id="flex">Boîte flexible (cliquer pour passer à la boîte « normale »)</div> - <div class="raw-item" id="raw">Boîte « normale » </div> -</div> -- -
var flex = document.getElementById("flex");
-var raw = document.getElementById("raw");
-flex.addEventListener("click", function() {
- raw.style.display = raw.style.display == "none" ? "block" : "none";
-});
-
-
-#flex-container {
- width: 100%;
- font-family: Consolas, Arial, sans-serif;
-}
-
-#flex-container > div {
- border: 1px solid #f00;
- padding: 1rem;
-}
-
-#flex-container > .raw-item {
- border: 1px solid #000;
-}
-
-
-{{EmbedLiveSample('Exemples','100%','60')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-property', 'flex')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.flex")}}
- -La propriété flex est une propriété raccourcie qui définit la capacité d'un élément flexible à modifier ses dimensions afin de remplir l'espace disponible de son conteneur.
Les propriétés détaillées correspondantes à cette propriété raccourcie sont {{cssxref("flex-grow")}}, {{cssxref("flex-shrink")}} et {{cssxref("flex-basis")}}.
+ +Les éléments flexibles peuvent être étirés ou réduits pour utiliser un espace proportionnel à leur coefficient de grossissement ou de rétrécissement afin de ne pas dépasser d'un conteneur.
+ +Pour la plupart des cas, on utilisera une des valeurs suivantes : auto, initial, none ou un nombre positif sans unité. Pour voir l'effet de ces valeurs, essayez de redimensionner les conteneurs flexibles ci-après :
<div class="flex-container"> + + <div class="item auto">auto</div> + <div class="item auto">auto</div> + <div class="item auto">auto</div> + +</div> + +<div class="flex-container"> + + <div class="item auto">auto</div> + <div class="item initial">initial</div> + <div class="item initial">initial</div> + +</div> + +<div class="flex-container"> + + <div class="item auto">auto</div> + <div class="item auto">auto</div> + <div class="item none">none</div> + +</div> + +<div class="flex-container"> + + <div class="item initial">initial</div> + <div class="item none">none</div> + <div class="item none">none</div> + +</div> + +<div class="flex-container"> + + <div class="item four">4</div> + <div class="item two">2</div> + <div class="item one">1</div> + +</div> ++ +
* {
+ box-sizing: border-box;
+}
+
+.flex-container {
+ background-color: #F4F7F8;
+ resize: horizontal;
+ overflow: hidden;
+ display: flex;
+ margin: 1em;
+}
+
+.item {
+ margin: 1em;
+ padding: 0.5em;
+ width: 110px;
+ min-width: 0;
+ background-color: #1B5385;
+ color: white;
+ font-family: monospace;
+}
+
+.initial {
+ flex: initial;
+}
+
+.auto {
+ flex: auto;
+}
+
+.none {
+ flex: none;
+}
+
+.four {
+ flex: 4;
+}
+
+.two {
+ flex: 2;
+}
+
+.one {
+ flex: 1;
+}
+
+
+{{EmbedLiveSample("description", "100%","370")}}
+ +Par défaut, les éléments flexibles ne se rétrécissent pas en dessous de la taille minimale du contenu. Pour modifier ce comportement, il faudra paramétrer {{cssxref("min-width")}} ou {{cssxref("min-height")}}.
+ +Voir la page Utiliser les boîtes flexibles (flexbox) CSS pour plus d'informations.
+ +/* Valeurs de base */ +flex: auto; +flex: initial; +flex: none; + +/* Une valeur sans unité pour flex-grow */ +/* flex-basis vaut alors 0 */ +flex: 2; + +/* Une valeur, largeur/hauteur: flex-basis */ +flex: 10em; +flex: 30px; +flex: content; + +/* Deux valeurs : flex-grow | flex-basis */ +flex: 1 30px; + +/* Deux valeurs : flex-grow | flex-shrink */ +/* flex-basis vaut alors 0 */ +flex: 2 2; + +/* Trois valeurs : flex-grow | flex-shrink | flex-basis */ +flex: 2 2 10%; + +/* Valeurs globales */ +flex: inherit; +flex: initial; +flex: unset; ++ +
La propriété flex peut être définie avec une, deux ou trois valeurs.
<flex-grow><flex-basis>none.<flex-grow>.<flex-shrink><flex-basis><flex-grow><flex-shrink><flex-basis>autowidth et height mais peut grandir pour absorber l'espace libre disponible dans le conteneur flexible ou rétrécir à sa taille minimale pour rentrer dans le conteneur. Cette valeur est équivalente à "flex: 1 1 auto".initialwidth et height. Ce comportement est équivalent à la valeur par défaut (0 1 auto). Si besoin, l'élément rétrécit à sa taille minimale pour rentrer dans le conteneur mais il ne grandira pas s'il y a de l'espace disponible dans ce conteneur. Ce mot-clé est équivalent à "flex: 0 1 auto".nonewidth et height. Il n'est pas flexible : il ne peut ni rétrécir ni grandir selon l'espace du conteneur flexible. Ce mot-clé est équivalent à "flex: 0 0 auto".<'flex-grow'>1.<'flex-shrink'>1.<'flex-basis'>0.Note : Lorsqu'on utilise une ou deux valeurs sans unité dans la règle, flex-basis vaudra 0. Pour plus d'informations, voir le brouillon de spécification du module des boîtes flexibles.
#flex-container {
+ display: flex;
+ flex-direction: row;
+}
+
+#flex-container > .flex-item {
+ flex: auto;
+}
+
+#flex-container > .raw-item {
+ width: 5rem;
+}
+
+
+<div id="flex-container"> + <div class="flex-item" id="flex">Boîte flexible (cliquer pour passer à la boîte « normale »)</div> + <div class="raw-item" id="raw">Boîte « normale » </div> +</div> ++ +
var flex = document.getElementById("flex");
+var raw = document.getElementById("raw");
+flex.addEventListener("click", function() {
+ raw.style.display = raw.style.display == "none" ? "block" : "none";
+});
+
+
+#flex-container {
+ width: 100%;
+ font-family: Consolas, Arial, sans-serif;
+}
+
+#flex-container > div {
+ border: 1px solid #f00;
+ padding: 1rem;
+}
+
+#flex-container > .raw-item {
+ border: 1px solid #000;
+}
+
+
+{{EmbedLiveSample('Exemples','100%','60')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#flex-property', 'flex')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.flex")}}
+ +Le type de donnée CSS <flex> permet de représenter une longueur flexible à l'intérieur d'un conteneur en grille, qui est déclarée comme une dimension d'unité fr. Il est notamment utilisé pour les propriétés {{cssxref("grid-template-columns")}}, {{cssxref("grid-template-rows")}} ainsi que d'autres.
Le type de donnée <flex> est défini par un nombre ({{cssxref("<number>")}} suivi de l'unité fr. L'unité fr représente une fraction de l'espace restant dans le conteneur en grille. Comme pour les autres dimensions, il n'y a pas d'espace entre la valeur et l'unité.
1fr /* Utilisation d'une valeur entière */ -2.5fr /* Utilisation d'une valeur flottante */ -- -
| Spécification | -État | -Commentaire | -
|---|---|---|
| {{SpecName("CSS Grid", "#typedef-flex", "<flex>")}} | -{{Spec2("CSS Grid")}} | -Définition initiale | -
{{Compat("css.types.flex")}}
- -Le type de donnée CSS <flex> permet de représenter une longueur flexible à l'intérieur d'un conteneur en grille, qui est déclarée comme une dimension d'unité fr. Il est notamment utilisé pour les propriétés {{cssxref("grid-template-columns")}}, {{cssxref("grid-template-rows")}} ainsi que d'autres.
Le type de donnée <flex> est défini par un nombre ({{cssxref("<number>")}} suivi de l'unité fr. L'unité fr représente une fraction de l'espace restant dans le conteneur en grille. Comme pour les autres dimensions, il n'y a pas d'espace entre la valeur et l'unité.
1fr /* Utilisation d'une valeur entière */ +2.5fr /* Utilisation d'une valeur flottante */ ++ +
| Spécification | +État | +Commentaire | +
|---|---|---|
| {{SpecName("CSS Grid", "#typedef-flex", "<flex>")}} | +{{Spec2("CSS Grid")}} | +Définition initiale | +
{{Compat("css.types.flex")}}
+ +La propriété float indique qu'un élément doit être retiré du flux normal et doit être placé sur le côté droit ou sur le côté gauche de son conteneur. Le texte et les autres éléments en ligne (inline) entoureront alors l'élément flottant. L'élément est retiré du flux normal de la page mais s'inscrit toujours dans le flux (contrairement au positionnement absolu).
Un élément flottant est un élément pour lequel la valeur calculée de float est différente de none.
float implique l'utilisation d'une disposition en bloc, cette propriété modifie donc la valeur de {{cssxref("display")}} dans certains cas :
| Valeur spécifiée | -Valeur calculée | -
|---|---|
inline |
- block |
-
inline-block |
- block |
-
inline-table |
- table |
-
table-row |
- block |
-
table-row-group |
- block |
-
table-column |
- block |
-
table-column-group |
- block |
-
table-cell |
- block |
-
table-caption |
- block |
-
table-header-group |
- block |
-
table-footer-group |
- block |
-
inline-flex |
- flex |
-
inline-grid |
- grid |
-
| autre | -inchangée | -
Note :Si vous utilisez cette propriété via JavaScript, comme propriété de l'objet {{domxref("HTMLElement.style")}}, la plupart des navigateurs récents permettra d'utiliser float mais il faudra utiliser cssFloat (attention à la casse) pour les navigateurs plus anciens. Pour Internet Explorer 8 et les versions antérieures, elle était appelée styleFloat. Le terme float étant réservé en JavaScript, ce cas de figure était une exception à la règle qui définit que le nom de la propriété DOM est une version CamelCase de la propriété CSS construite avec des tirets. De même, class sera échappée en className et le for des éléments <label> sera converti en htmlFor).
float: left; -float: right; -float: none; -float: inline-start; -float: inline-end; - -/* Valeurs globales */ -float: inherit; -float: initial; -float: unset;- -
leftrightnoneinline-startinline-enddiv {
- border: solid red;
- max-width: 70ex;
-}
-
-h4 {
- float: left;
- margin: 0;
-}
-
-<div> - <h4>Coucou !</h4> - Voici du texte. Voici du texte. Voici du texte. - Voici du texte. Voici du texte. Voici du texte. - Voici du texte. Voici du texte. Voici du texte. - Voici du texte. Voici du texte. Voici du texte. -</div>- -
{{EmbedLiveSample('Exemples')}}
- -Comme évoqué ci-avant, lorsqu'un élément flotte, il est retiré du flux normal du document et il est décalé vers la droite ou vers la gauche jusqu'à ce qu'il touche le bord de son conteneur ou un autre élément flottant.
- -Dans l'image suivante, on voit trois carrés rouges. Deux flottent à gauche et un flotte à droite. On voit que le deuxième carré à gauche est placé à droite du premier. Si on ajoutait d'autres carrés, ils s'empileraient sur la gauche jusqu'à remplir le conteneur, ensuite, on passerait sur une autre ligne.
- -
Dans l'illustration précédente, les éléments flottants sont verticalement plus courts que le texte sur lequel ils flottent. Cependant, si le texte n'était pas aussi long et ne dépassait pas des blocs, on pourrait avoir des effets indésirables. Par exemple, si le paragraphe ne contenait que « Lorem ipsum dolor sit amet » et était suivi d'un autre titre (semblable à « Floats Example »), le deuxième titre apparaîtrait entre les boîtes rouges. Or, la plupart du temps, on veut que le titre soit aligné tout à gauche. Pour cela, il faut dégager (clear) l'élément.
- -Pour cela, on pourra utiliser la propriété {{cssxref("clear")}} sur ce deuxième titre afin de s'assurer qu'il est aligné à gauche :
- -h2.deuxiemeTitre { clear: both; }
-
-
-Cela dit, cette méthode fonctionne uniquement s'il n'y a pas d'autres éléments dans le même contexte de formatage de bloc pour lesquels on voudrait que l'élément apparaisse à droite. Par exemple, si l'élément H2 est entourée de barres latérales à gauche et à droite et qu'on utilise clear, le titre apparaîtra alors en bas, sous les barres, plutôt qu'entre elles.
Aussi, si on ne peut pas dégager un élément, on peut limiter le formatage en bloc au conteneur des éléments flottants. Pour reprendre l'exemple précédent, on voit que toutes les boîtes rouges sont dans un élément {{HTMLElement("p")}}. On peut alors utiliser {{cssxref("overflow")}} avec hidden ou auto afin que l'élément s'agrandisse pour les contenir, sans les faire tomber en bas :
p.avecBoitesRouges { overflow: hidden; height: auto; }
-
-
-Note : En utilisant overflow: scroll on contiendra également les éléments fils flottants mais cela affichera des barres de défilement quelle que soit la hauteur du contenu. Ici, nous utilisons auto pour height afin d'indiquer que le conteneur doit s'agrandir si nécessaire.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties', '#float-clear', 'float and clear')}} | -{{Spec2('CSS Logical Properties')}} | -Les valeurs inline-start et inline-end sont ajoutées. |
-
| {{SpecName('CSS3 Box', '#float', 'float')}} | -{{Spec2('CSS3 Box')}} | -Introduction de nouvelles valeurs, pas encore clairement définies. | -
| {{SpecName('CSS2.1', 'visuren.html#float-position', 'float')}} | -{{Spec2('CSS2.1')}} | -Aucune modification. | -
| {{SpecName('CSS1', '#float', 'float')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.float")}}
- -La propriété float indique qu'un élément doit être retiré du flux normal et doit être placé sur le côté droit ou sur le côté gauche de son conteneur. Le texte et les autres éléments en ligne (inline) entoureront alors l'élément flottant. L'élément est retiré du flux normal de la page mais s'inscrit toujours dans le flux (contrairement au positionnement absolu).
Un élément flottant est un élément pour lequel la valeur calculée de float est différente de none.
float implique l'utilisation d'une disposition en bloc, cette propriété modifie donc la valeur de {{cssxref("display")}} dans certains cas :
| Valeur spécifiée | +Valeur calculée | +
|---|---|
inline |
+ block |
+
inline-block |
+ block |
+
inline-table |
+ table |
+
table-row |
+ block |
+
table-row-group |
+ block |
+
table-column |
+ block |
+
table-column-group |
+ block |
+
table-cell |
+ block |
+
table-caption |
+ block |
+
table-header-group |
+ block |
+
table-footer-group |
+ block |
+
inline-flex |
+ flex |
+
inline-grid |
+ grid |
+
| autre | +inchangée | +
Note :Si vous utilisez cette propriété via JavaScript, comme propriété de l'objet {{domxref("HTMLElement.style")}}, la plupart des navigateurs récents permettra d'utiliser float mais il faudra utiliser cssFloat (attention à la casse) pour les navigateurs plus anciens. Pour Internet Explorer 8 et les versions antérieures, elle était appelée styleFloat. Le terme float étant réservé en JavaScript, ce cas de figure était une exception à la règle qui définit que le nom de la propriété DOM est une version CamelCase de la propriété CSS construite avec des tirets. De même, class sera échappée en className et le for des éléments <label> sera converti en htmlFor).
float: left; +float: right; +float: none; +float: inline-start; +float: inline-end; + +/* Valeurs globales */ +float: inherit; +float: initial; +float: unset;+ +
leftrightnoneinline-startinline-enddiv {
+ border: solid red;
+ max-width: 70ex;
+}
+
+h4 {
+ float: left;
+ margin: 0;
+}
+
+<div> + <h4>Coucou !</h4> + Voici du texte. Voici du texte. Voici du texte. + Voici du texte. Voici du texte. Voici du texte. + Voici du texte. Voici du texte. Voici du texte. + Voici du texte. Voici du texte. Voici du texte. +</div>+ +
{{EmbedLiveSample('Exemples')}}
+ +Comme évoqué ci-avant, lorsqu'un élément flotte, il est retiré du flux normal du document et il est décalé vers la droite ou vers la gauche jusqu'à ce qu'il touche le bord de son conteneur ou un autre élément flottant.
+ +Dans l'image suivante, on voit trois carrés rouges. Deux flottent à gauche et un flotte à droite. On voit que le deuxième carré à gauche est placé à droite du premier. Si on ajoutait d'autres carrés, ils s'empileraient sur la gauche jusqu'à remplir le conteneur, ensuite, on passerait sur une autre ligne.
+ +
Dans l'illustration précédente, les éléments flottants sont verticalement plus courts que le texte sur lequel ils flottent. Cependant, si le texte n'était pas aussi long et ne dépassait pas des blocs, on pourrait avoir des effets indésirables. Par exemple, si le paragraphe ne contenait que « Lorem ipsum dolor sit amet » et était suivi d'un autre titre (semblable à « Floats Example »), le deuxième titre apparaîtrait entre les boîtes rouges. Or, la plupart du temps, on veut que le titre soit aligné tout à gauche. Pour cela, il faut dégager (clear) l'élément.
+ +Pour cela, on pourra utiliser la propriété {{cssxref("clear")}} sur ce deuxième titre afin de s'assurer qu'il est aligné à gauche :
+ +h2.deuxiemeTitre { clear: both; }
+
+
+Cela dit, cette méthode fonctionne uniquement s'il n'y a pas d'autres éléments dans le même contexte de formatage de bloc pour lesquels on voudrait que l'élément apparaisse à droite. Par exemple, si l'élément H2 est entourée de barres latérales à gauche et à droite et qu'on utilise clear, le titre apparaîtra alors en bas, sous les barres, plutôt qu'entre elles.
Aussi, si on ne peut pas dégager un élément, on peut limiter le formatage en bloc au conteneur des éléments flottants. Pour reprendre l'exemple précédent, on voit que toutes les boîtes rouges sont dans un élément {{HTMLElement("p")}}. On peut alors utiliser {{cssxref("overflow")}} avec hidden ou auto afin que l'élément s'agrandisse pour les contenir, sans les faire tomber en bas :
p.avecBoitesRouges { overflow: hidden; height: auto; }
+
+
+Note : En utilisant overflow: scroll on contiendra également les éléments fils flottants mais cela affichera des barres de défilement quelle que soit la hauteur du contenu. Ici, nous utilisons auto pour height afin d'indiquer que le conteneur doit s'agrandir si nécessaire.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties', '#float-clear', 'float and clear')}} | +{{Spec2('CSS Logical Properties')}} | +Les valeurs inline-start et inline-end sont ajoutées. |
+
| {{SpecName('CSS3 Box', '#float', 'float')}} | +{{Spec2('CSS3 Box')}} | +Introduction de nouvelles valeurs, pas encore clairement définies. | +
| {{SpecName('CSS2.1', 'visuren.html#float-position', 'float')}} | +{{Spec2('CSS2.1')}} | +Aucune modification. | +
| {{SpecName('CSS1', '#float', 'float')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.float")}}
+ +La propriété font-family permet de définir une liste, ordonnée par priorité, de polices à utiliser pour mettre en forme le texte de l'élément ciblé.
Les valeurs sont séparées par des virgules, indiquant chacune une police alternative. Le moteur choisira la première valeur pour laquelle la police correspondante est installée sur l'ordinateur ou qui peut être téléchargée via la règle @ {{cssxref("@font-face")}} définie.
- -Pour fixer font-family et d'autres propriétés liées aux polices de caractères, on pourra utiliser la propriété raccourcie {{cssxref("font")}}.
Les auteurs doivent toujours inclure une famille de police générique dans cette liste car il n'y a aucune certitude qu'une police donnée aura été installée sur l'ordinateur ni qu'elle pourra être téléchargée grâce à {{cssxref("@font-face")}}. L'utilisation d'une famille de police générique permet au navigateur d'utiliser une police acceptable en recours si besoin.
- -Note : La propriété font-family définit une liste de police, ordonnée par priorité, de la plus haute à la plus basse. La sélection de la police ne se fait pas pour l'ensemble du texte mais caractère par caractère. Ainsi si une police ne dispose pas du caractère à représenter, ce sera la police suivante qui sera utilisée pour représenter le caractère. Pour Internet Explorer, cela ne fonctionne pas avec la version 6 et les version antérieures.
Les propriétés {{cssxref("font-style")}}, {{cssxref("font-variant")}} et {{cssxref("font-size")}} permettront d'influencer le choix en fonction du style, de la variante ou de la taille disponible parmi les polices de la liste.
-/* Un nom de police suivi d'un nom de famille générique */ -font-family: "Gill Sans Extrabold", sans-serif; -font-family: "Goudy Bookletter 1911", sans-serif; - -/* Un nom de famille de polices générique */ -font-family: serif; -font-family: sans-serif; -font-family: monospace; -font-family: cursive; -font-family: fantasy; -font-family: system-ui; -font-family: emoji; -font-family: math; -font-family: fangsong; - -/* Valeurs globales */ -font-family: inherit; -font-family: initial; -font-family: unset; -- -
La propriété font-family permet de lister différentes familles de police, séparées par des virgules. Chaque nom de famille est une valeur <family-name> ou <generic-name>.
Dans l'exemple suivant, on liste deux familles de police, la première utilise une valeur <family-name> et la seconde utilise une valeur <generic-name> :
font-family: Gill Sans Extrabold, sans-serif;- -
<family-name><generic-name>Les noms de famille génériques sont utilisés comme mécanisme de secours pour conserver l'intention de mise en forme de l'auteur lorsqu'aucune des polices indiquées n'est disponible. Les noms de famille génériques sont des mots-clés et ne doivent pas être encadrés par des doubles quotes. Un nom de famille générique devrait être utilisé comme dernier élément de la liste des noms. Les mots-clés suivants sont définis :
- -serifsans-serifmonospacecursivefantasysystem-uimathemojifangsongLes noms de famille de polices doivent être encadrés par des doubles ou doivent former une série d'un ou plusieurs identifiants valides. Cela signifie que les signes de ponctuation et les chiffres débutant chaque fragment doivent être échappés pour les noms de famille qui ne sont pas encadrés par des quotes.
- -Les déclarations suivantes sont valides :
- -font-family: "Gill Sans Extrabold", sans-serif; -font-family: "Goudy Bookletter 1911", sans-serif;- -
Et ces déclarations sont invalides :
- -font-family: Goudy Bookletter 1911, sans-serif; -font-family: Red/Black, sans-serif; -font-family: "Lucida" Grande, sans-serif; -font-family: Ahem!, sans-serif; -font-family: test@foo, sans-serif; -font-family: #POUND, sans-serif; -font-family: Hawaii 5-0, sans-serif;- -
.exempleserif {
- font-family: Times, "Times New Roman", Georgia, serif;
-}
-
-.exemplesansserif {
- font-family: Verdana, Arial, Helvetica, sans-serif;
-}
-
-.exemplemonospace {
- font-family: "Lucida Console", Courier, monospace;
-}
-
-.exemplecursive {
- font-family: cursive;
-}
-
-.exemplefantasy {
- font-family: fantasy;
-}
-
-.exempleemoji {
- font-family: emoji;
-}
-
-.exemplemath {
- font-family: math;
-}
-
-.exemplefangsong {
- font-family: fangsong;
-}
-
-
-<div class="exempleserif"> -Voici un exemple de police avec empattement (serif). -</div> - -<div class="exemplesansserif"> -Voici un exemple de police sans empattement (sans-serif). -</div> - -<div class="exemplemonospace"> -Voici un exemple de police à chasse fixe (monospace). -</div> - -<div class="exemplecursive"> -Voici un exemple de police cursive. -</div> - -<div class="exemplefantasy"> -Voici un exemple de police fantaisie. -</div> - -<div class="exemplemath"> -Voici un exemple de police mathématique. -</div> - -<div class="exempleemoji"> -Voici un exemple de police emoji. -</div> - -<div class="exemplefangsong"> -Voici un exemple de police fangsong. -</div>- -
{{EmbedLiveSample('Exemples',600,120)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Fonts', '#generic-font-families', 'generic font families')}} | -{{Spec2('CSS4 Fonts')}} | -Ajout de nouvelles familles génériques dont : system-ui, emoji, math et fangsong. |
-
| {{SpecName('CSS3 Fonts', '#font-family-prop', 'font-family')}} | -{{Spec2('CSS3 Fonts')}} | -Aucune modification significative. | -
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-family', 'font-family')}} | -{{Spec2('CSS2.1')}} | -Aucune modification significative. | -
| {{SpecName('CSS1', '#font-family', 'font-family')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-family")}}
diff --git a/files/fr/web/css/font-family/index.md b/files/fr/web/css/font-family/index.md new file mode 100644 index 0000000000..7761699259 --- /dev/null +++ b/files/fr/web/css/font-family/index.md @@ -0,0 +1,229 @@ +--- +title: font-family +slug: Web/CSS/font-family +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-family +--- +La propriété font-family permet de définir une liste, ordonnée par priorité, de polices à utiliser pour mettre en forme le texte de l'élément ciblé.
Les valeurs sont séparées par des virgules, indiquant chacune une police alternative. Le moteur choisira la première valeur pour laquelle la police correspondante est installée sur l'ordinateur ou qui peut être téléchargée via la règle @ {{cssxref("@font-face")}} définie.
+ +Pour fixer font-family et d'autres propriétés liées aux polices de caractères, on pourra utiliser la propriété raccourcie {{cssxref("font")}}.
Les auteurs doivent toujours inclure une famille de police générique dans cette liste car il n'y a aucune certitude qu'une police donnée aura été installée sur l'ordinateur ni qu'elle pourra être téléchargée grâce à {{cssxref("@font-face")}}. L'utilisation d'une famille de police générique permet au navigateur d'utiliser une police acceptable en recours si besoin.
+ +Note : La propriété font-family définit une liste de police, ordonnée par priorité, de la plus haute à la plus basse. La sélection de la police ne se fait pas pour l'ensemble du texte mais caractère par caractère. Ainsi si une police ne dispose pas du caractère à représenter, ce sera la police suivante qui sera utilisée pour représenter le caractère. Pour Internet Explorer, cela ne fonctionne pas avec la version 6 et les version antérieures.
Les propriétés {{cssxref("font-style")}}, {{cssxref("font-variant")}} et {{cssxref("font-size")}} permettront d'influencer le choix en fonction du style, de la variante ou de la taille disponible parmi les polices de la liste.
+/* Un nom de police suivi d'un nom de famille générique */ +font-family: "Gill Sans Extrabold", sans-serif; +font-family: "Goudy Bookletter 1911", sans-serif; + +/* Un nom de famille de polices générique */ +font-family: serif; +font-family: sans-serif; +font-family: monospace; +font-family: cursive; +font-family: fantasy; +font-family: system-ui; +font-family: emoji; +font-family: math; +font-family: fangsong; + +/* Valeurs globales */ +font-family: inherit; +font-family: initial; +font-family: unset; ++ +
La propriété font-family permet de lister différentes familles de police, séparées par des virgules. Chaque nom de famille est une valeur <family-name> ou <generic-name>.
Dans l'exemple suivant, on liste deux familles de police, la première utilise une valeur <family-name> et la seconde utilise une valeur <generic-name> :
font-family: Gill Sans Extrabold, sans-serif;+ +
<family-name><generic-name>Les noms de famille génériques sont utilisés comme mécanisme de secours pour conserver l'intention de mise en forme de l'auteur lorsqu'aucune des polices indiquées n'est disponible. Les noms de famille génériques sont des mots-clés et ne doivent pas être encadrés par des doubles quotes. Un nom de famille générique devrait être utilisé comme dernier élément de la liste des noms. Les mots-clés suivants sont définis :
+ +serifsans-serifmonospacecursivefantasysystem-uimathemojifangsongLes noms de famille de polices doivent être encadrés par des doubles ou doivent former une série d'un ou plusieurs identifiants valides. Cela signifie que les signes de ponctuation et les chiffres débutant chaque fragment doivent être échappés pour les noms de famille qui ne sont pas encadrés par des quotes.
+ +Les déclarations suivantes sont valides :
+ +font-family: "Gill Sans Extrabold", sans-serif; +font-family: "Goudy Bookletter 1911", sans-serif;+ +
Et ces déclarations sont invalides :
+ +font-family: Goudy Bookletter 1911, sans-serif; +font-family: Red/Black, sans-serif; +font-family: "Lucida" Grande, sans-serif; +font-family: Ahem!, sans-serif; +font-family: test@foo, sans-serif; +font-family: #POUND, sans-serif; +font-family: Hawaii 5-0, sans-serif;+ +
.exempleserif {
+ font-family: Times, "Times New Roman", Georgia, serif;
+}
+
+.exemplesansserif {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+.exemplemonospace {
+ font-family: "Lucida Console", Courier, monospace;
+}
+
+.exemplecursive {
+ font-family: cursive;
+}
+
+.exemplefantasy {
+ font-family: fantasy;
+}
+
+.exempleemoji {
+ font-family: emoji;
+}
+
+.exemplemath {
+ font-family: math;
+}
+
+.exemplefangsong {
+ font-family: fangsong;
+}
+
+
+<div class="exempleserif"> +Voici un exemple de police avec empattement (serif). +</div> + +<div class="exemplesansserif"> +Voici un exemple de police sans empattement (sans-serif). +</div> + +<div class="exemplemonospace"> +Voici un exemple de police à chasse fixe (monospace). +</div> + +<div class="exemplecursive"> +Voici un exemple de police cursive. +</div> + +<div class="exemplefantasy"> +Voici un exemple de police fantaisie. +</div> + +<div class="exemplemath"> +Voici un exemple de police mathématique. +</div> + +<div class="exempleemoji"> +Voici un exemple de police emoji. +</div> + +<div class="exemplefangsong"> +Voici un exemple de police fangsong. +</div>+ +
{{EmbedLiveSample('Exemples',600,120)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Fonts', '#generic-font-families', 'generic font families')}} | +{{Spec2('CSS4 Fonts')}} | +Ajout de nouvelles familles génériques dont : system-ui, emoji, math et fangsong. |
+
| {{SpecName('CSS3 Fonts', '#font-family-prop', 'font-family')}} | +{{Spec2('CSS3 Fonts')}} | +Aucune modification significative. | +
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-family', 'font-family')}} | +{{Spec2('CSS2.1')}} | +Aucune modification significative. | +
| {{SpecName('CSS1', '#font-family', 'font-family')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-family")}}
diff --git a/files/fr/web/css/font-feature-settings/index.html b/files/fr/web/css/font-feature-settings/index.html deleted file mode 100644 index 3297622581..0000000000 --- a/files/fr/web/css/font-feature-settings/index.html +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: font-feature-settings -slug: Web/CSS/font-feature-settings -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-feature-settings ---- -La propriété font-feature-settings permet de contrôler les fonctionnalités typographiques des polices OpenType.
Note : Lorsque c'est possible, les auteurs devraient utiliser la propriété raccourcie {{cssxref("font-variant")}} ou l'une des propriétés détaillées correspondantes parmi {{cssxref("font-variant-ligatures")}}, {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-east-asian")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-numeric")}} ou {{cssxref("font-variant-position")}}.
-Cette propriété est une fonctionnalité bas-niveau permettant de gérer des cas particuliers où il n'y a aucun moyen d'accéder à une fonctionnalité OpenType donnée. Cette propriété CSS ne devrait notamment pas être utilisée pour activer les petites majuscules.
-/* On utilise le réglage par défaut */ -font-feature-settings: normal; - -/* On définit la valeur des étiquettes OpenType */ -font-feature-settings: "smcp"; -font-feature-settings: "smcp" on; -font-feature-settings: "swsh" 2; -font-feature-settings: "smcp", "swsh" 2; - -/* Valeurs globales */ -font-feature-settings: inherit; -font-feature-settings: initial; -font-feature-settings: unset; -- -
normal<feature-tag-value>on et off sont des synonymes respectifs des valeurs 1 et 0. Si aucune valeur n'est donnée pour une étiquette, la valeur par défaut sera 1. Pour les fonctionnalités OpenType qui ne sont pas booléennees, la valeur implique qu'un glyphe donné soit sélectionné./* on utilise les glyphes alternatifs en small-cap */
-.smallcaps { font-feature-settings: "smcp" on; }
-
-/* on convertit les majuscules et minuscules en petites
- capitales */
-.allsmallcaps { font-feature-settings: "c2sc", "smcp"; }
-
-/* on utilise les zéros barrés d'une barre oblique afin de
- les différencier de "O" */
-.nicezero { font-feature-settings: "zero"; }
-
-/* on active les formes historiques */
-.hist { font-feature-settings: "hist"; }
-
-/* on désactive les ligatures communément utilisées */
-.noligs { font-feature-settings: "liga" 0; }
-
-/* on active les chiffres tabulaires (chasse fixe) */
-td.tabular { font-feature-settings: "tnum"; }
-
-/* on active les fractions automatiques */
-.fractions { font-feature-settings: "frac"; }
-
-/* on utilise le deuxième caractère de « swash » */
-.swash { font-feature-settings: "swsh" 2; }
-
-/* On active l'ensemble stylistique 7 */
-.fancystyle {
- font-family: Gabriola; /* Windows 7 et Mac OS */
- font-feature-settings: "ss07";
-}
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-feature-settings', 'font-feature-settings')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-feature-settings")}}
- -La propriété font-feature-settings permet de contrôler les fonctionnalités typographiques des polices OpenType.
Note : Lorsque c'est possible, les auteurs devraient utiliser la propriété raccourcie {{cssxref("font-variant")}} ou l'une des propriétés détaillées correspondantes parmi {{cssxref("font-variant-ligatures")}}, {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-east-asian")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-numeric")}} ou {{cssxref("font-variant-position")}}.
+Cette propriété est une fonctionnalité bas-niveau permettant de gérer des cas particuliers où il n'y a aucun moyen d'accéder à une fonctionnalité OpenType donnée. Cette propriété CSS ne devrait notamment pas être utilisée pour activer les petites majuscules.
+/* On utilise le réglage par défaut */ +font-feature-settings: normal; + +/* On définit la valeur des étiquettes OpenType */ +font-feature-settings: "smcp"; +font-feature-settings: "smcp" on; +font-feature-settings: "swsh" 2; +font-feature-settings: "smcp", "swsh" 2; + +/* Valeurs globales */ +font-feature-settings: inherit; +font-feature-settings: initial; +font-feature-settings: unset; ++ +
normal<feature-tag-value>on et off sont des synonymes respectifs des valeurs 1 et 0. Si aucune valeur n'est donnée pour une étiquette, la valeur par défaut sera 1. Pour les fonctionnalités OpenType qui ne sont pas booléennees, la valeur implique qu'un glyphe donné soit sélectionné./* on utilise les glyphes alternatifs en small-cap */
+.smallcaps { font-feature-settings: "smcp" on; }
+
+/* on convertit les majuscules et minuscules en petites
+ capitales */
+.allsmallcaps { font-feature-settings: "c2sc", "smcp"; }
+
+/* on utilise les zéros barrés d'une barre oblique afin de
+ les différencier de "O" */
+.nicezero { font-feature-settings: "zero"; }
+
+/* on active les formes historiques */
+.hist { font-feature-settings: "hist"; }
+
+/* on désactive les ligatures communément utilisées */
+.noligs { font-feature-settings: "liga" 0; }
+
+/* on active les chiffres tabulaires (chasse fixe) */
+td.tabular { font-feature-settings: "tnum"; }
+
+/* on active les fractions automatiques */
+.fractions { font-feature-settings: "frac"; }
+
+/* on utilise le deuxième caractère de « swash » */
+.swash { font-feature-settings: "swsh" 2; }
+
+/* On active l'ensemble stylistique 7 */
+.fancystyle {
+ font-family: Gabriola; /* Windows 7 et Mac OS */
+ font-feature-settings: "ss07";
+}
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-feature-settings', 'font-feature-settings')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-feature-settings")}}
+ +La propriété font-kerning contrôle le crénage de la police ; c'est-à-dire l'espace créé entre les lettres. L'information de crénage est stockée dans la police et si la police est bien crénée, cette caractéristique permet aux caractères, quels qu'ils soient, d'être espacés de manière semblable.
font-kerning: auto; -font-kerning: normal; -font-kerning: none; - -/* Valeurs globales */ -font-kerning: inherit; -font-kerning: initial; -font-kerning: unset; -- -
autonormalnone#nokern, #kern {
- font-size: 2rem;
- font-family: serif;
-}
-#nokern {
- font-kerning: none;
-}
-#kern {
- font-kerning: normal;
-}
-
-<div id="kern"></div> -<div id="nokern"></div> -<textarea id="input">AV T. ij</textarea>- -
var input = document.getElementById('input'),
- kern = document.getElementById('kern'),
- nokern = document.getElementById('nokern');
-input.addEventListener('keyup', function() {
- kern.textContent = input.value; /* On met à jour le contenu */
- nokern.textContent = input.value;
-});
-kern.textContent = input.value; /* On initialise le contenu */
-nokern.textContent = input.value;
-
-
-{{EmbedLiveSample('Exemples')}}
- -| Spécification | -État | -Commentaire | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-kerning', 'font-kerning')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.font-kerning")}}
- -La propriété font-kerning contrôle le crénage de la police ; c'est-à-dire l'espace créé entre les lettres. L'information de crénage est stockée dans la police et si la police est bien crénée, cette caractéristique permet aux caractères, quels qu'ils soient, d'être espacés de manière semblable.
font-kerning: auto; +font-kerning: normal; +font-kerning: none; + +/* Valeurs globales */ +font-kerning: inherit; +font-kerning: initial; +font-kerning: unset; ++ +
autonormalnone#nokern, #kern {
+ font-size: 2rem;
+ font-family: serif;
+}
+#nokern {
+ font-kerning: none;
+}
+#kern {
+ font-kerning: normal;
+}
+
+<div id="kern"></div> +<div id="nokern"></div> +<textarea id="input">AV T. ij</textarea>+ +
var input = document.getElementById('input'),
+ kern = document.getElementById('kern'),
+ nokern = document.getElementById('nokern');
+input.addEventListener('keyup', function() {
+ kern.textContent = input.value; /* On met à jour le contenu */
+ nokern.textContent = input.value;
+});
+kern.textContent = input.value; /* On initialise le contenu */
+nokern.textContent = input.value;
+
+
+{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +État | +Commentaire | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-kerning', 'font-kerning')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.font-kerning")}}
+ +La propriété font-language-override permet de contrôler l'utilisation des glyphes spécifiques à une langue pour une police.
/* Valeur avec un mot-clé */ -font-language-override: normal; - -/* <string> values */ -font-language-override: "ENG"; /* Use English glyphs */ -font-language-override: "TRK"; /* Use Turkish glyphs */ -/* Valeurs globales */ -font-language-override: initial; -font-language-override: inherit; -font-language-override: unset; -- -
Par défaut, les navigateurs utilisent l'attribut global {{htmlattrxref("lang")}} pour déterminer la langue du texte d'un élément. Grâce à cette information, certains glyphes spéciaux, conçus pour cette langue, peuvent être utilisés. Ainsi, de nombreuses polices possèdent un caractère spécial pour la ligature fi afin que le point du i fusionne avec le caractère précédent. Cette ligature ne devrait pas être utilisée en turc, car il existe deux formes pour le i, avec et sans point : i et ı.
Quelques fois, l'auteur d'un document peut vouloir surcharger la langue. Ainsi, si la fonte ne sait pas que la langue azérie possède un i sans point, comme le turc, on pourra utiliser font-language-override pour forcer l'utilisation des glyphes turcs qui seront plus adaptés que les glyphes par défaut.
Cette propriété est définie avec le mot-clé normal ou avec une chaîne de caractères (<string>).
normal<string>p.para1 {
- font-language-override: normal;
-}
-
-p.para2 {
- font-language-override: "DAN";
-}
-
-<p class="para1">Réglage par défaut.</p> -<p class="para2"> - Un paragraphe pour lequel <code>font-language-override</code> - cible le danois -</p> -- -
{{EmbedLiveSample('Exemples', '600')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-language-override', 'font-language-override')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-language-override")}}
- -La propriété font-language-override permet de contrôler l'utilisation des glyphes spécifiques à une langue pour une police.
/* Valeur avec un mot-clé */ +font-language-override: normal; + +/* <string> values */ +font-language-override: "ENG"; /* Use English glyphs */ +font-language-override: "TRK"; /* Use Turkish glyphs */ +/* Valeurs globales */ +font-language-override: initial; +font-language-override: inherit; +font-language-override: unset; ++ +
Par défaut, les navigateurs utilisent l'attribut global {{htmlattrxref("lang")}} pour déterminer la langue du texte d'un élément. Grâce à cette information, certains glyphes spéciaux, conçus pour cette langue, peuvent être utilisés. Ainsi, de nombreuses polices possèdent un caractère spécial pour la ligature fi afin que le point du i fusionne avec le caractère précédent. Cette ligature ne devrait pas être utilisée en turc, car il existe deux formes pour le i, avec et sans point : i et ı.
Quelques fois, l'auteur d'un document peut vouloir surcharger la langue. Ainsi, si la fonte ne sait pas que la langue azérie possède un i sans point, comme le turc, on pourra utiliser font-language-override pour forcer l'utilisation des glyphes turcs qui seront plus adaptés que les glyphes par défaut.
Cette propriété est définie avec le mot-clé normal ou avec une chaîne de caractères (<string>).
normal<string>p.para1 {
+ font-language-override: normal;
+}
+
+p.para2 {
+ font-language-override: "DAN";
+}
+
+<p class="para1">Réglage par défaut.</p> +<p class="para2"> + Un paragraphe pour lequel <code>font-language-override</code> + cible le danois +</p> ++ +
{{EmbedLiveSample('Exemples', '600')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-language-override', 'font-language-override')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-language-override")}}
+ +La propriété CSS font-optical-sizing permet de contrôler la façon dont l'agent utilisateur rend le texte avec (ou non) différentes représentations visuelles en fonction de la taille. Cette propriété ne fonctionne qu'avec les polices qui disposent d'un axe de variation pour la taille optique.
Par exemple, les textes de petites tailles sont généralement affichés avec des traits plus épais et des empattements (serifs) plus grands. En revanche, les textes plus grands sont souvent plus fins et utilisent plus de contrastes entre les traits fins et épais.
- -Note : L'axe de variation pour la taille optique est représenté par opsz dans {{cssxref("font-variation-settings")}}.
/* Valeurs avec un mot-clé */ -font-optical-sizing: none; -font-optical-sizing: auto; /* valeur initiale */ - -/* Valeurs globales */ -font-optical-sizing: inherit; -font-optical-sizing: initial; -font-optical-sizing: unset; -- -
noneauto@font-face {
- src: url('AmstelvarAlpha-VF.ttf');
- font-family:'Amstelvar';
- font-style: normal;
-}
-
-p {
- font-size: 36px;
- font-family: Amstelvar;
-}
-
-.no-optical-sizing {
- font-optical-sizing: none;
-}
-
-<p class="optical-sizing">Ce paragraphe est dimensionné pour une meilleure - lecture. C'est le comportement par défaut.</p> - -<p class="no-optical-sizing">Ce paragraphe n'est pas adapté pour une - meilleure lecture. Vous devriez voir une différence avec les navigateurs - qui prennent en charge cette fonctionnalité.</p>- -
Note : La police utilisée dans cet exemple possède un dimensionnement optique et est disponible sous licence libre en téléchargement sur GitHub.
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Fonts', '#font-optical-sizing-def', 'font-optical-sizing')}} | -{{Spec2('CSS4 Fonts')}} | -- |
{{cssinfo}}
- -{{Compat("css.properties.font-optical-sizing")}}
diff --git a/files/fr/web/css/font-optical-sizing/index.md b/files/fr/web/css/font-optical-sizing/index.md new file mode 100644 index 0000000000..8ec9caeaf0 --- /dev/null +++ b/files/fr/web/css/font-optical-sizing/index.md @@ -0,0 +1,100 @@ +--- +title: font-optical-sizing +slug: Web/CSS/font-optical-sizing +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-optical-sizing +--- +La propriété CSS font-optical-sizing permet de contrôler la façon dont l'agent utilisateur rend le texte avec (ou non) différentes représentations visuelles en fonction de la taille. Cette propriété ne fonctionne qu'avec les polices qui disposent d'un axe de variation pour la taille optique.
Par exemple, les textes de petites tailles sont généralement affichés avec des traits plus épais et des empattements (serifs) plus grands. En revanche, les textes plus grands sont souvent plus fins et utilisent plus de contrastes entre les traits fins et épais.
+ +Note : L'axe de variation pour la taille optique est représenté par opsz dans {{cssxref("font-variation-settings")}}.
/* Valeurs avec un mot-clé */ +font-optical-sizing: none; +font-optical-sizing: auto; /* valeur initiale */ + +/* Valeurs globales */ +font-optical-sizing: inherit; +font-optical-sizing: initial; +font-optical-sizing: unset; ++ +
noneauto@font-face {
+ src: url('AmstelvarAlpha-VF.ttf');
+ font-family:'Amstelvar';
+ font-style: normal;
+}
+
+p {
+ font-size: 36px;
+ font-family: Amstelvar;
+}
+
+.no-optical-sizing {
+ font-optical-sizing: none;
+}
+
+<p class="optical-sizing">Ce paragraphe est dimensionné pour une meilleure + lecture. C'est le comportement par défaut.</p> + +<p class="no-optical-sizing">Ce paragraphe n'est pas adapté pour une + meilleure lecture. Vous devriez voir une différence avec les navigateurs + qui prennent en charge cette fonctionnalité.</p>+ +
Note : La police utilisée dans cet exemple possède un dimensionnement optique et est disponible sous licence libre en téléchargement sur GitHub.
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Fonts', '#font-optical-sizing-def', 'font-optical-sizing')}} | +{{Spec2('CSS4 Fonts')}} | ++ |
{{cssinfo}}
+ +{{Compat("css.properties.font-optical-sizing")}}
diff --git a/files/fr/web/css/font-size-adjust/index.html b/files/fr/web/css/font-size-adjust/index.html deleted file mode 100644 index 19af669501..0000000000 --- a/files/fr/web/css/font-size-adjust/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: font-size-adjust -slug: Web/CSS/font-size-adjust -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-size-adjust ---- -La propriété font-size-adjust permet de choisir une taille de police selon la taille des caractères en minuscules plutôt que selon la taille des majuscules.
/* On utilise la taille de fonte définie */ -font-size-adjust: none; - -/* On utilise une fonte pour laquelle - les minuscules font la moitié de la - taille définie */ -/* Type <number> */ -font-size-adjust: 0.5; - -/* Valeurs globales */ -font-size-adjust: inherit; -font-size-adjust: initial; -font-size-adjust: unset; -- -
Cela est particulièrement utile lorsque la lisibilité des fontes, notamment celles de petite taille, est déterminée par la taille des minuscules plutôt que par celle des majuscules.
- -La lisibilité peut devenir un problème lorsque la première police indiquée par {{cssxref("font-family")}} n'est pas disponible et que la police de remplacement possède un facteur de forme très différent (ce facteur correspond au ratio de la taille des minuscules sur la taille de la fonte).
- -Pour utiliser cette propriété d'une façon compatible avec les navigateurs qui ne prennent pas en charge font-size-adjust, on définira le facteur par lequel on multiplie la valeur de la propriété {{Cssxref("font-size")}}. Cela signifie généralement que la propriété doit correspondre au facteur de forme de la première fonte. Ainsi, lorsqu'une feuille de style définit :
font-size: 14px; -font-size-adjust: 0.5; -- -
On indique en fait que les minuscules de la fonte utilisée doivent mesurer 7px de haut (0.5 × 14px).
none<number>La taille de la fonte est choisie afin que les minuscules (selon la taille horizontale de la fonte) mesurent X fois {{cssxref("font-size")}}.
- -Le nombre indiqué (cf. le type {{cssxref("<number>")}}) devrait la plupart du temps correspondre au facteur de forme de la première fonte listée avec {{cssxref("font-family")}}. Cela permet d'obtenir le même résultat dans les différents navigateurs, qu'ils supportent font-size-adjust ou non.
0 entraînera une haute nulle pour le texte (qui sera donc caché). Pour d'anciens navigateurs, comme Firefox avant la version 40, 0 était géré comme none.
<p>Exemples pour <code>font-size-adjust</code></p> - -<p class="times"> - Voici la fonte Times sur 10 px, - difficile à lire en petit. -</p> - -<p class="verdana"> - Voici la fonte Verdana sur 10px, - plus lisible car sans empattement - (serif). -</p> - -<p class="adjtimes"> - et voilà le texte ajusté pour - avoir le même facteur de forme - qu'avec Verdana. -</p>- -
.times {
- font-family: Times, serif;
- font-size: 10 px;
-}
-
-.verdana {
- font-family: Verdana, sans-serif;
- font-size: 10 px;
-}
-
-.adjtimes {
- font-family: Times, serif;
- font-size-adjust: 0.58;
-}
-
-
-{{EmbedLiveSample('Exemples', '500', '300')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-size-adjust', 'font-size-adjust')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
La propriété CSS font-size-adjust fut initialement définie avec CSS 2 mais a été abandonnée dans CSS 2.1. Elle a de nouveau été définie avec CSS 3.
{{cssinfo}}
- -{{Compat("css.properties.font-size-adjust")}}
- -La propriété font-size-adjust permet de choisir une taille de police selon la taille des caractères en minuscules plutôt que selon la taille des majuscules.
/* On utilise la taille de fonte définie */ +font-size-adjust: none; + +/* On utilise une fonte pour laquelle + les minuscules font la moitié de la + taille définie */ +/* Type <number> */ +font-size-adjust: 0.5; + +/* Valeurs globales */ +font-size-adjust: inherit; +font-size-adjust: initial; +font-size-adjust: unset; ++ +
Cela est particulièrement utile lorsque la lisibilité des fontes, notamment celles de petite taille, est déterminée par la taille des minuscules plutôt que par celle des majuscules.
+ +La lisibilité peut devenir un problème lorsque la première police indiquée par {{cssxref("font-family")}} n'est pas disponible et que la police de remplacement possède un facteur de forme très différent (ce facteur correspond au ratio de la taille des minuscules sur la taille de la fonte).
+ +Pour utiliser cette propriété d'une façon compatible avec les navigateurs qui ne prennent pas en charge font-size-adjust, on définira le facteur par lequel on multiplie la valeur de la propriété {{Cssxref("font-size")}}. Cela signifie généralement que la propriété doit correspondre au facteur de forme de la première fonte. Ainsi, lorsqu'une feuille de style définit :
font-size: 14px; +font-size-adjust: 0.5; ++ +
On indique en fait que les minuscules de la fonte utilisée doivent mesurer 7px de haut (0.5 × 14px).
none<number>La taille de la fonte est choisie afin que les minuscules (selon la taille horizontale de la fonte) mesurent X fois {{cssxref("font-size")}}.
+ +Le nombre indiqué (cf. le type {{cssxref("<number>")}}) devrait la plupart du temps correspondre au facteur de forme de la première fonte listée avec {{cssxref("font-family")}}. Cela permet d'obtenir le même résultat dans les différents navigateurs, qu'ils supportent font-size-adjust ou non.
0 entraînera une haute nulle pour le texte (qui sera donc caché). Pour d'anciens navigateurs, comme Firefox avant la version 40, 0 était géré comme none.
<p>Exemples pour <code>font-size-adjust</code></p> + +<p class="times"> + Voici la fonte Times sur 10 px, + difficile à lire en petit. +</p> + +<p class="verdana"> + Voici la fonte Verdana sur 10px, + plus lisible car sans empattement + (serif). +</p> + +<p class="adjtimes"> + et voilà le texte ajusté pour + avoir le même facteur de forme + qu'avec Verdana. +</p>+ +
.times {
+ font-family: Times, serif;
+ font-size: 10 px;
+}
+
+.verdana {
+ font-family: Verdana, sans-serif;
+ font-size: 10 px;
+}
+
+.adjtimes {
+ font-family: Times, serif;
+ font-size-adjust: 0.58;
+}
+
+
+{{EmbedLiveSample('Exemples', '500', '300')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-size-adjust', 'font-size-adjust')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
La propriété CSS font-size-adjust fut initialement définie avec CSS 2 mais a été abandonnée dans CSS 2.1. Elle a de nouveau été définie avec CSS 3.
{{cssinfo}}
+ +{{Compat("css.properties.font-size-adjust")}}
+ +La propriété font-size définit la taille de fonte utilisée pour le texte. La modification de cette taille peut entraîner la modification de la taille d'autres éléments car elle est utilisée pour calculer les valeurs des longueurs relatives (type {{cssxref("<length>")}}) (par exemple exprimées avec les unités em ou ex).
/* Valeurs dont la taille est absolue */ -font-size: xx-small; -font-size: x-small; -font-size: small; -font-size: medium; -font-size: large; -font-size: x-large; -font-size: xx-large; - -/* Valeurs relatives */ -font-size: larger; -font-size: smaller; - -/* Valeurs de longueurs */ -/* Type <length> */ -font-size: 12px; -font-size: 0.8em; - -/* Valeurs proportionnelles */ -/* Type <percentage> */ -font-size: 80%; - -/* Valeurs globales */ -font-size: inherit; -font-size: initial; -font-size: unset; -- -
La propriété font-size peut être définie de deux façons :
<length> ou de <percentage>xx-small, x-small, small, medium, large, x-large, xx-largemedium). Le comportement est analogue à ce qu'on obtient en utilisant le code HTML <font size="1"> à <font size="7"> lorsque la taille par défaut de l'utilisateur vaut <font size="4">.larger, smallerlarger) ou plus petite (smaller) que celle de l'élément parent. Le ratio d'agrandissement/réduction est le même que celui qui sépare les mots-clés présentés avant.<length>em ou ex, la taille est alors relative à la taille de la fonte de l'élément parent. Ainsi, une valeur de 0.5em indiquera que la taille de fonte pour l'élément courant est la moitié de celle utilisée pour l'élément parent. Lorsque l'unité utilisée est rem, la taille est alors relative à la taille de la fonte utilisée pour l'élément racine html.<percentage>Note : Il est généralement préférable d'utiliser des valeurs relatives à la taille par défaut choisie par l'utilisateur.
-Plusieurs méthodes existent pour définir la taille de fonte utilisée : des mots-clés ou des valeurs numériques exprimées en pixels ou en ems. Selon les besoins, on utilisera une méthode différente.
- -Les mots-clés sont une méthode simple et efficace pour déterminer la taille de fonte à utiliser. En utilisant un mot-clé sur l'élément {{HTMLElement("body")}}, on peut définir des tailles relatives sur toute la page et réduire ou augmenter la taille de la fonte en conséquence.
- -L'utilisation des pixels (px) permet d'obtenir un résultat statique, absolu et indépendant du système d'exploitation et du navigateur. Cependant, cette méthode est déconseillée car elle n'est pas accessible. Ainsi, les utilisateurs ne peuvent pas adapter la taille du texte avec leurs réglages si besoin.
On peut également définir la taille de la fonte en em. La taille d'une valeur exprimée en em est dynamique. Lorsqu'on définit la propriété font-size, un em est équivalent à la taille de fonte appliquée à l'élément parent de l'élément courant. Si cette taille n'a pas été définie pour l'élément parent, elle correspondra à la taille par défaut du navigateur (généralement 16px). Ainsi, si on définit font-size avec une valeur de 20px sur l'élément body, 1em correspondra à 20px et 2em à 40px. Ici, la valeur 2 est un facteur multiplicateur de la taille.
Pour calculer une équivalence entre em et un résultat exprimé en pixels, on peut utiliser cette formule :
em = taille visée en px / font-size du parent en pixels- -
Ainsi, si la taille font-size de body vaut 1em et que l'échelle par défaut du navigateur indique 1em = 16px et qu'on souhaite obtenir une font-size équivalente à 12px, on pourra utiliser la valeur 0.75em (car 12/16 = 0.75). De même, si on veut une taille analogue à 10px, on utilisera 0.625em (10/16 = 0.625).
L'unité em est très utile car elle s'adapte automatiquement à la taille de fonte choisie par l'utilisateur.
Un autre aspect important est la composition des valeurs exprimées avec cette unité. Si on prend le fragment HTML suivant :
- -<div> - <span> - Extérieur - <span>Intérieur</span> - Extérieur - </span> -</div> -- -
Et qu'on applique la feuille de style suivante :
- -body {
- font-size: 62.5%;
-}
-span {
- font-size: 1.6em;
-}
-
-On obtiendra le résultat suivant :
- -{{EmbedLiveSample("Les_ems", 400, 40)}}
- -Si la taille par défaut du navigateur est 16px, le mot « Extérieur » sera affiché avec 16 pixels et le mot « Intérieur » sera affiché avec 25.6 pixes. En effet, la taille de font-size pour le bloc span vaut 1.6em et cette valeur est relative à la valeur de font-size pour son élément parent, elle-même relative à la valeur de font-size pour son élément parent. C'est ce qu'on appelle la composition.
L'unité rem a été conçue pour régler les problèmes engendrés par la composition. Les valeurs exprimées en rem sont relatives à l'élément {{HTMLElement("html")}} et pas à l'élément parent. Autrement dit, cette unité permet d'exprimer une taille relative sans être impacté par la taille de l'élément parent, court-circuitant ainsi la composition.
La feuille de style qui suit ressemble fortement à celle utilisée dans l'exemple précédent, on a simplement remplacé l'unité par rem.
html {
- font-size: 62.5%;
-}
-span {
- font-size: 1.6rem;
-}
-
-
-On utilisera le même fragment de HTML :
- -<span> - Extérieur - <span>Intérieur</span> - Extérieur -</span>- -
{{EmbedLiveSample("Les_rems", 400, 40)}}
- -Dans cet exemple, si la taille par défaut du navigateur vaut 16px, tous les mots seront affichés avec une hauteur de 16px.
/* Le paragraphe sera écrit avec une grande */
-/* fonte. */
-p { font-size: xx-large }
-
-/* La taille du texte des h1 sera 2.5 fois plus */
-/* grande que le texte autour. */
-h1 { font-size: 250% }
-
-/* Le texte contenu dans des éléments span */
-/* mesurera 16px */
-span { font-size: 16px; }
-
-
-.small {
- font-size: xx-small;
-}
-.larger {
- font-size: larger;
-}
-.point {
- font-size: 24pt;
-}
-.percent {
- font-size: 200%;
-}
-
-
-<h1 class="small">Petit H1</h1> -<h1 class="larger">H1 plus grand</h1> -<h1 class="point">H1 de 24 points</h1> -<h1 class="percent">H1 à 200%</h1>- -
{{EmbedLiveSample('Démonstration','600','200')}}
- -Les unités em et ex pour la propriété {{Cssxref("font-size")}} sont relatives à la taille de la fonte de l'élément parent. Pour les autres propriétés, en utilisant ces unités, on aura une valeur relative à la taille de fonte de l'élément courant. Cela signifie que les valeurs exprimées en em ou en pourcents ont le même comportement pour {{cssxref("font-size")}}.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#font-size-prop', 'font-size')}} | -{{Spec2('CSS3 Fonts')}} | -Aucune modification. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'font-size')}} | -{{Spec2('CSS3 Transitions')}} | -font-size peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-size', 'font-size')}} | -{{Spec2('CSS2.1')}} | -Aucune modification. | -
| {{SpecName('CSS1', '#font-size', 'font-size')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-size")}}
diff --git a/files/fr/web/css/font-size/index.md b/files/fr/web/css/font-size/index.md new file mode 100644 index 0000000000..09160e80d0 --- /dev/null +++ b/files/fr/web/css/font-size/index.md @@ -0,0 +1,238 @@ +--- +title: font-size +slug: Web/CSS/font-size +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-size +--- +La propriété font-size définit la taille de fonte utilisée pour le texte. La modification de cette taille peut entraîner la modification de la taille d'autres éléments car elle est utilisée pour calculer les valeurs des longueurs relatives (type {{cssxref("<length>")}}) (par exemple exprimées avec les unités em ou ex).
/* Valeurs dont la taille est absolue */ +font-size: xx-small; +font-size: x-small; +font-size: small; +font-size: medium; +font-size: large; +font-size: x-large; +font-size: xx-large; + +/* Valeurs relatives */ +font-size: larger; +font-size: smaller; + +/* Valeurs de longueurs */ +/* Type <length> */ +font-size: 12px; +font-size: 0.8em; + +/* Valeurs proportionnelles */ +/* Type <percentage> */ +font-size: 80%; + +/* Valeurs globales */ +font-size: inherit; +font-size: initial; +font-size: unset; ++ +
La propriété font-size peut être définie de deux façons :
<length> ou de <percentage>xx-small, x-small, small, medium, large, x-large, xx-largemedium). Le comportement est analogue à ce qu'on obtient en utilisant le code HTML <font size="1"> à <font size="7"> lorsque la taille par défaut de l'utilisateur vaut <font size="4">.larger, smallerlarger) ou plus petite (smaller) que celle de l'élément parent. Le ratio d'agrandissement/réduction est le même que celui qui sépare les mots-clés présentés avant.<length>em ou ex, la taille est alors relative à la taille de la fonte de l'élément parent. Ainsi, une valeur de 0.5em indiquera que la taille de fonte pour l'élément courant est la moitié de celle utilisée pour l'élément parent. Lorsque l'unité utilisée est rem, la taille est alors relative à la taille de la fonte utilisée pour l'élément racine html.<percentage>Note : Il est généralement préférable d'utiliser des valeurs relatives à la taille par défaut choisie par l'utilisateur.
+Plusieurs méthodes existent pour définir la taille de fonte utilisée : des mots-clés ou des valeurs numériques exprimées en pixels ou en ems. Selon les besoins, on utilisera une méthode différente.
+ +Les mots-clés sont une méthode simple et efficace pour déterminer la taille de fonte à utiliser. En utilisant un mot-clé sur l'élément {{HTMLElement("body")}}, on peut définir des tailles relatives sur toute la page et réduire ou augmenter la taille de la fonte en conséquence.
+ +L'utilisation des pixels (px) permet d'obtenir un résultat statique, absolu et indépendant du système d'exploitation et du navigateur. Cependant, cette méthode est déconseillée car elle n'est pas accessible. Ainsi, les utilisateurs ne peuvent pas adapter la taille du texte avec leurs réglages si besoin.
On peut également définir la taille de la fonte en em. La taille d'une valeur exprimée en em est dynamique. Lorsqu'on définit la propriété font-size, un em est équivalent à la taille de fonte appliquée à l'élément parent de l'élément courant. Si cette taille n'a pas été définie pour l'élément parent, elle correspondra à la taille par défaut du navigateur (généralement 16px). Ainsi, si on définit font-size avec une valeur de 20px sur l'élément body, 1em correspondra à 20px et 2em à 40px. Ici, la valeur 2 est un facteur multiplicateur de la taille.
Pour calculer une équivalence entre em et un résultat exprimé en pixels, on peut utiliser cette formule :
em = taille visée en px / font-size du parent en pixels+ +
Ainsi, si la taille font-size de body vaut 1em et que l'échelle par défaut du navigateur indique 1em = 16px et qu'on souhaite obtenir une font-size équivalente à 12px, on pourra utiliser la valeur 0.75em (car 12/16 = 0.75). De même, si on veut une taille analogue à 10px, on utilisera 0.625em (10/16 = 0.625).
L'unité em est très utile car elle s'adapte automatiquement à la taille de fonte choisie par l'utilisateur.
Un autre aspect important est la composition des valeurs exprimées avec cette unité. Si on prend le fragment HTML suivant :
+ +<div> + <span> + Extérieur + <span>Intérieur</span> + Extérieur + </span> +</div> ++ +
Et qu'on applique la feuille de style suivante :
+ +body {
+ font-size: 62.5%;
+}
+span {
+ font-size: 1.6em;
+}
+
+On obtiendra le résultat suivant :
+ +{{EmbedLiveSample("Les_ems", 400, 40)}}
+ +Si la taille par défaut du navigateur est 16px, le mot « Extérieur » sera affiché avec 16 pixels et le mot « Intérieur » sera affiché avec 25.6 pixes. En effet, la taille de font-size pour le bloc span vaut 1.6em et cette valeur est relative à la valeur de font-size pour son élément parent, elle-même relative à la valeur de font-size pour son élément parent. C'est ce qu'on appelle la composition.
L'unité rem a été conçue pour régler les problèmes engendrés par la composition. Les valeurs exprimées en rem sont relatives à l'élément {{HTMLElement("html")}} et pas à l'élément parent. Autrement dit, cette unité permet d'exprimer une taille relative sans être impacté par la taille de l'élément parent, court-circuitant ainsi la composition.
La feuille de style qui suit ressemble fortement à celle utilisée dans l'exemple précédent, on a simplement remplacé l'unité par rem.
html {
+ font-size: 62.5%;
+}
+span {
+ font-size: 1.6rem;
+}
+
+
+On utilisera le même fragment de HTML :
+ +<span> + Extérieur + <span>Intérieur</span> + Extérieur +</span>+ +
{{EmbedLiveSample("Les_rems", 400, 40)}}
+ +Dans cet exemple, si la taille par défaut du navigateur vaut 16px, tous les mots seront affichés avec une hauteur de 16px.
/* Le paragraphe sera écrit avec une grande */
+/* fonte. */
+p { font-size: xx-large }
+
+/* La taille du texte des h1 sera 2.5 fois plus */
+/* grande que le texte autour. */
+h1 { font-size: 250% }
+
+/* Le texte contenu dans des éléments span */
+/* mesurera 16px */
+span { font-size: 16px; }
+
+
+.small {
+ font-size: xx-small;
+}
+.larger {
+ font-size: larger;
+}
+.point {
+ font-size: 24pt;
+}
+.percent {
+ font-size: 200%;
+}
+
+
+<h1 class="small">Petit H1</h1> +<h1 class="larger">H1 plus grand</h1> +<h1 class="point">H1 de 24 points</h1> +<h1 class="percent">H1 à 200%</h1>+ +
{{EmbedLiveSample('Démonstration','600','200')}}
+ +Les unités em et ex pour la propriété {{Cssxref("font-size")}} sont relatives à la taille de la fonte de l'élément parent. Pour les autres propriétés, en utilisant ces unités, on aura une valeur relative à la taille de fonte de l'élément courant. Cela signifie que les valeurs exprimées en em ou en pourcents ont le même comportement pour {{cssxref("font-size")}}.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#font-size-prop', 'font-size')}} | +{{Spec2('CSS3 Fonts')}} | +Aucune modification. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'font-size')}} | +{{Spec2('CSS3 Transitions')}} | +font-size peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-size', 'font-size')}} | +{{Spec2('CSS2.1')}} | +Aucune modification. | +
| {{SpecName('CSS1', '#font-size', 'font-size')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-size")}}
diff --git a/files/fr/web/css/font-smooth/index.html b/files/fr/web/css/font-smooth/index.html deleted file mode 100644 index f70c9d9e4f..0000000000 --- a/files/fr/web/css/font-smooth/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: font-smooth -slug: Web/CSS/font-smooth -tags: - - CSS - - Non-standard - - Propriété - - Reference -translation_of: Web/CSS/font-smooth ---- -La propriété font-smooth permet de contrôler l'application d'algorithmes anti-crénelage (anti-aliasing) sur le rendu des fontes de caractères.
/* Valeurs avec mot-clé */ -font-smooth: auto; -font-smooth: never; -font-smooth: always; - -/* Valeurs de type <length> */ -font-smooth: 2em; -- -
Note : Webkit implémente -webkit-font-smoothing avec d'autres valeurs, là aussi c'est une propriété non-standard qui ne devrait pas être utilisée.
auto : c'est le navigateur qui décide la meilleure approchenone - l'anti-crénelage est désactivé.antialiased - lisse les caractères au niveau du pixel (et non par sous-échantillonnage). Pour des textes clairs sur fonds sombres, cette méthode fait paraître le texte plus clair.subpixel-antialiased - sur la plupart des affichages non-Retina, cela donnera le texte le plus lisse.Note : Firefox implémente -moz-osx-font-smoothing avec d'autres valeurs, là aussi c'est une propriété non-standard qui ne devrait pas être utilisée.
auto - le choix est laissé au navigateur. Cela correspond généralement à grayscale.grayscale - On applique un anti-crénelage par niveau de gris (et non par sous-échantillonnage). Pour des textes clairs sur fonds sombres, cette méthode fait paraître le texte plus clair.Bien que mentionnée dans les premiers brouillons pour CSS3 Fonts, font-smooth a été retirée de cette spécification et ne fait plus partie du standard.
- -
auto- -
{{Compat("css.properties.font-smooth")}}
- -La propriété font-smooth permet de contrôler l'application d'algorithmes anti-crénelage (anti-aliasing) sur le rendu des fontes de caractères.
/* Valeurs avec mot-clé */ +font-smooth: auto; +font-smooth: never; +font-smooth: always; + +/* Valeurs de type <length> */ +font-smooth: 2em; ++ +
Note : Webkit implémente -webkit-font-smoothing avec d'autres valeurs, là aussi c'est une propriété non-standard qui ne devrait pas être utilisée.
auto : c'est le navigateur qui décide la meilleure approchenone - l'anti-crénelage est désactivé.antialiased - lisse les caractères au niveau du pixel (et non par sous-échantillonnage). Pour des textes clairs sur fonds sombres, cette méthode fait paraître le texte plus clair.subpixel-antialiased - sur la plupart des affichages non-Retina, cela donnera le texte le plus lisse.Note : Firefox implémente -moz-osx-font-smoothing avec d'autres valeurs, là aussi c'est une propriété non-standard qui ne devrait pas être utilisée.
auto - le choix est laissé au navigateur. Cela correspond généralement à grayscale.grayscale - On applique un anti-crénelage par niveau de gris (et non par sous-échantillonnage). Pour des textes clairs sur fonds sombres, cette méthode fait paraître le texte plus clair.Bien que mentionnée dans les premiers brouillons pour CSS3 Fonts, font-smooth a été retirée de cette spécification et ne fait plus partie du standard.
+ +
auto+ +
{{Compat("css.properties.font-smooth")}}
+ +La propriété font-stretch permet de choisir entre la forme normale, condensée ou étendue d'une police.
/* Valeurs avec un mot-clé */ -font-stretch: ultra-condensed; -font-stretch: extra-condensed; -font-stretch: condensed; -font-stretch: semi-condensed; -font-stretch: normal; -font-stretch: semi-expanded; -font-stretch: expanded; -font-stretch: extra-expanded; -font-stretch: ultra-expanded; - -/* Valeurs en pourcentage */ -font-stretch: 50%; -font-stretch: 100%; -font-stretch: 200%; - -/* Valeurs globales */ -font-stretch: inherit; -font-stretch: initial; -font-stretch: unset; -- -
Certaines polices possèdent différentes fontes pour lesquelles les caractères sont plus étroits (fontes condensées) et d'autres pour lesquelles les caractères sont plus amples (fontes étendues).
- -font-stretch permet de choisir entre les versions condensées ou étendues d'une police. Si la police utilisée ne possède pas de fonte utilisant cet axe de variation, elle n'aura aucun effet.
Voir la section ci-après qui illustre l'effet de cette propriété sur certaines polices.
- -Cette propriété peut être définie avec un mot-clé ou avec une valeur exprimée en pourcentages (cf. {{cssxref("<percentage>")}}).
- -normalsemi-condensed, condensed, extra-condensed, ultra-condensedultra-condensed correspond à la forme la plus condensée.semi-expanded, expanded, extra-expanded, ultra-expandedultra-expanded correspond à la forme la plus étirée.<percentage>Dans les anciennes versions de la spécification de font-stretch, seuls les mots-clés étaient acceptés comme valeurs. Avec la spécification CSS Fonts de niveau 4, cette propriété peut également être définie avec un pourcentage. Cela permet d'obtenir un contrôle plus fin sur la largeur. Attention toutefois à la compatibilité car certains navigateurs ne prennent pas encore en charge cette fonctionnalité (cf. la section en fin d'article).
Le tableau suivant indique les correspondances entre les valeurs sous la forme de mots-clés et celles exprimées en pourcentages :
- -| Mot-clé | -Pourcentage | -
|---|---|
ultra-condensed |
- 50% | -
extra-condensed |
- 62.5% | -
condensed |
- 75% | -
semi-condensed |
- 87.5% | -
normal |
- 100% | -
semi-expanded |
- 112.5% | -
expanded |
- 125% | -
extra-expanded |
- 150% | -
ultra-expanded |
- 200% | -
La fonte sélectionnée pour une valeur font-stretch dépend des fontes prises en charge par la police. Si la police ne fournit pas de fonte qui corresponde à la valeur exacte, le navigateur utilisera une fonte condensée si la valeur est inférieure à 100% et une fonte étendue si la valeur est supérieure à 100%.
Le tableau qui suit illustre l'effet des différents pourcentage avec deux polices possédant différentes fontes :
- -| - | 50% | -62.5% | -75% | -87.5% | -100% | -112.5% | -125% | -150% | -200% | -
|---|---|---|---|---|---|---|---|---|---|
| Helvetica Neue | -![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
-
| League Mono Variable | -![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
- ![]() |
-
font-stretch inférieures à 100% utilisent une fonte condensée alors que les autres valeurs utilisent la fonte normale.font-stretch selon les pourcentages choisis.Pour les polices variables TrueType ou OpenType, c'est l'axe de variation wdth qui implémente ces largeurs variables.
<p class="stretch">Le texte est plus étiré.</p> -<p class="condensed">Le texte est plus resserré.</div>- -
.stretch {
- font-stretch: extra-expanded;
-}
-
-.condensed {
- font-stretch: condensed;
-}
-
-{{EmbedLiveSample('Avec_un_mot-clé', '500')}}
- -Note : cet exemple ne fonctionnera uniquement avec les navigateurs qui prennent en charge les valeurs <percentage>.
<div class="container"> - <p class="condensed">an elephantine lizard</p> - <p class="normal">an elephantine lizard</p> - <p class="expanded">an elephantine lizard</p> -</div> -- -
/*
-Cet exemple utilise la police League Mono Variable, développée par
-Tyler Finck (https://www.tylerfinck.com/) et utilisée ici selon
-la licence SIL Open Font, Version 1.1 :
-http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web
-*/
-
-@font-face {
- src: url('https://mdn.mozillademos.org/files/16014/LeagueMonoVariable.ttf');
- font-family:'LeagueMonoVariable';
- font-style: normal;
- font-stretch: 1% 500%; /* Nécessaire pour Chrome */
-}
-
-.container {
- border: 10px solid #f5f9fa;
- padding: 0 1rem;
- font: 1.5rem 'LeagueMonoVariable', sans-serif;
-}
-
-.condensed {
- font-stretch: 50%;
-}
-
-.normal {
- font-stretch: 100%;
-}
-
-.expanded {
- font-stretch: 200%;
-}
-
-
-
-{{EmbedLiveSample("Avec_un_pourcentage", 1200, 250, "", "", "example-outcome-frame")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Fonts', '#propdef-font-stretch', 'font-stretch')}} | -{{Spec2('CSS4 Fonts')}} | -Ajout des valeurs <percentage> pour les polices variables. |
-
| {{SpecName('CSS3 Fonts', '#propdef-font-stretch', 'font-stretch')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
Note : La propriété CSS font-stretch fut d'abord définie par CSS 2, mais elle a été abandonnée avec CSS 2.1 par manque d'implémentation. Elle fut redéfinie avec CSS 3.
{{cssinfo}}
- -{{Compat("css.properties.font-stretch")}}
diff --git a/files/fr/web/css/font-stretch/index.md b/files/fr/web/css/font-stretch/index.md new file mode 100644 index 0000000000..12889ebfbd --- /dev/null +++ b/files/fr/web/css/font-stretch/index.md @@ -0,0 +1,282 @@ +--- +title: font-stretch +slug: Web/CSS/font-stretch +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-stretch +--- +La propriété font-stretch permet de choisir entre la forme normale, condensée ou étendue d'une police.
/* Valeurs avec un mot-clé */ +font-stretch: ultra-condensed; +font-stretch: extra-condensed; +font-stretch: condensed; +font-stretch: semi-condensed; +font-stretch: normal; +font-stretch: semi-expanded; +font-stretch: expanded; +font-stretch: extra-expanded; +font-stretch: ultra-expanded; + +/* Valeurs en pourcentage */ +font-stretch: 50%; +font-stretch: 100%; +font-stretch: 200%; + +/* Valeurs globales */ +font-stretch: inherit; +font-stretch: initial; +font-stretch: unset; ++ +
Certaines polices possèdent différentes fontes pour lesquelles les caractères sont plus étroits (fontes condensées) et d'autres pour lesquelles les caractères sont plus amples (fontes étendues).
+ +font-stretch permet de choisir entre les versions condensées ou étendues d'une police. Si la police utilisée ne possède pas de fonte utilisant cet axe de variation, elle n'aura aucun effet.
Voir la section ci-après qui illustre l'effet de cette propriété sur certaines polices.
+ +Cette propriété peut être définie avec un mot-clé ou avec une valeur exprimée en pourcentages (cf. {{cssxref("<percentage>")}}).
+ +normalsemi-condensed, condensed, extra-condensed, ultra-condensedultra-condensed correspond à la forme la plus condensée.semi-expanded, expanded, extra-expanded, ultra-expandedultra-expanded correspond à la forme la plus étirée.<percentage>Dans les anciennes versions de la spécification de font-stretch, seuls les mots-clés étaient acceptés comme valeurs. Avec la spécification CSS Fonts de niveau 4, cette propriété peut également être définie avec un pourcentage. Cela permet d'obtenir un contrôle plus fin sur la largeur. Attention toutefois à la compatibilité car certains navigateurs ne prennent pas encore en charge cette fonctionnalité (cf. la section en fin d'article).
Le tableau suivant indique les correspondances entre les valeurs sous la forme de mots-clés et celles exprimées en pourcentages :
+ +| Mot-clé | +Pourcentage | +
|---|---|
ultra-condensed |
+ 50% | +
extra-condensed |
+ 62.5% | +
condensed |
+ 75% | +
semi-condensed |
+ 87.5% | +
normal |
+ 100% | +
semi-expanded |
+ 112.5% | +
expanded |
+ 125% | +
extra-expanded |
+ 150% | +
ultra-expanded |
+ 200% | +
La fonte sélectionnée pour une valeur font-stretch dépend des fontes prises en charge par la police. Si la police ne fournit pas de fonte qui corresponde à la valeur exacte, le navigateur utilisera une fonte condensée si la valeur est inférieure à 100% et une fonte étendue si la valeur est supérieure à 100%.
Le tableau qui suit illustre l'effet des différents pourcentage avec deux polices possédant différentes fontes :
+ +| + | 50% | +62.5% | +75% | +87.5% | +100% | +112.5% | +125% | +150% | +200% | +
|---|---|---|---|---|---|---|---|---|---|
| Helvetica Neue | +![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+
| League Mono Variable | +![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+ ![]() |
+
font-stretch inférieures à 100% utilisent une fonte condensée alors que les autres valeurs utilisent la fonte normale.font-stretch selon les pourcentages choisis.Pour les polices variables TrueType ou OpenType, c'est l'axe de variation wdth qui implémente ces largeurs variables.
<p class="stretch">Le texte est plus étiré.</p> +<p class="condensed">Le texte est plus resserré.</div>+ +
.stretch {
+ font-stretch: extra-expanded;
+}
+
+.condensed {
+ font-stretch: condensed;
+}
+
+{{EmbedLiveSample('Avec_un_mot-clé', '500')}}
+ +Note : cet exemple ne fonctionnera uniquement avec les navigateurs qui prennent en charge les valeurs <percentage>.
<div class="container"> + <p class="condensed">an elephantine lizard</p> + <p class="normal">an elephantine lizard</p> + <p class="expanded">an elephantine lizard</p> +</div> ++ +
/*
+Cet exemple utilise la police League Mono Variable, développée par
+Tyler Finck (https://www.tylerfinck.com/) et utilisée ici selon
+la licence SIL Open Font, Version 1.1 :
+http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web
+*/
+
+@font-face {
+ src: url('https://mdn.mozillademos.org/files/16014/LeagueMonoVariable.ttf');
+ font-family:'LeagueMonoVariable';
+ font-style: normal;
+ font-stretch: 1% 500%; /* Nécessaire pour Chrome */
+}
+
+.container {
+ border: 10px solid #f5f9fa;
+ padding: 0 1rem;
+ font: 1.5rem 'LeagueMonoVariable', sans-serif;
+}
+
+.condensed {
+ font-stretch: 50%;
+}
+
+.normal {
+ font-stretch: 100%;
+}
+
+.expanded {
+ font-stretch: 200%;
+}
+
+
+
+{{EmbedLiveSample("Avec_un_pourcentage", 1200, 250, "", "", "example-outcome-frame")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Fonts', '#propdef-font-stretch', 'font-stretch')}} | +{{Spec2('CSS4 Fonts')}} | +Ajout des valeurs <percentage> pour les polices variables. |
+
| {{SpecName('CSS3 Fonts', '#propdef-font-stretch', 'font-stretch')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
Note : La propriété CSS font-stretch fut d'abord définie par CSS 2, mais elle a été abandonnée avec CSS 2.1 par manque d'implémentation. Elle fut redéfinie avec CSS 3.
{{cssinfo}}
+ +{{Compat("css.properties.font-stretch")}}
diff --git a/files/fr/web/css/font-style/index.html b/files/fr/web/css/font-style/index.html deleted file mode 100644 index 69952fea4f..0000000000 --- a/files/fr/web/css/font-style/index.html +++ /dev/null @@ -1,227 +0,0 @@ ---- -title: font-style -slug: Web/CSS/font-style -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-style ---- -La propriété font-style permet de sélectionner une fonte italique (italic) ou (oblique) parmi celles listées par {{cssxref("font-family")}}.
La forme italique est généralement une forme cursive qui utilise moins d'espace horizontal que les autres formes classiques. La forme oblique quant à elle est simplement une version penchée de la forme normale. Les formes italique et oblique peuvent être synthétisées par le navigateur si elles sont absente (le moteur penche alors les glyphes de la forme normale), pour plus d'informations sur l'activation de cette synthèse, voir la propriété {{cssxref("font-synthesis")}}.
- -La propriété font-style peut être définie avec l'un des mots-clés suivants.
font-style: normal; -font-style: italic; -font-style: oblique; -font-style: oblique 10deg; - -/* Valeurs globales */ -font-style: inherit; -font-style: initial; -font-style: unset; -- -
La propriété font-style s'utilise avec un mot-clé parmi ceux qui suivent. Si ce mot-clé est oblique, il peut également être suivi de l' angle.
normalnormal parmi celles de {{cssxref("font-family")}}.italicitalic, s'il n'y a pas de version italique, une version oblique sera sélectionnée à la place.obliqueoblique, s'il n'y a pas de version oblique, une version italic sera sélectionnée à la place.oblique <angle>oblique et indique l'angle à utiliser pour la pente du texte. Si plusieurs fontes sont disponible pour la police, c'est la fonte avec la pente la plus proche qui est utilisée. Si aucune police oblique n'est disponible, le navigateur synthétisera une police penchée en tournant les caractères d'une fonte normale.-90deg et 90deg. Si aucun angle n'est indiqué, la valeur par défaut utilisée sera 14deg. Les valeurs positives correspondent à une pente où le haut des caractères penche vers la fin de la ligne et les valeurs négatives permettent d'obtenir une pente orientée vers le début de la ligne.Les polices variables permettent d'obtenir un contrôle fin sur la pente appliqué à la fonte. Pour cela, on pourra utiliser une police variable et font-style avec le mot-clé oblique suivi d'une valeur d'angle.
Pour les polices variables TrueType ou OpenType, c'est l'axe de variation "slnt" qui est utilisé afin d'implémenter les variations de pente. C'est l'axe "ital" qui est utilisé avec une valeur de 1 pour implémenter les fontes italiques. Voir {{cssxref("font-variation-settings")}}.
Afin que l'exemple suivant fonctionne, votre navigateur doit prendre en charge la syntaxe CSS Fonts Level 4 qui permet d'utiliser font-style: oblique suivi d'un angle.
{{EmbedLiveSample("Variable_fonts", 1200, 180, "", "", "example-outcome-frame")}}
- -<header> - <input type="range" id="slant" name="slant" min="-90" max="90" /> - <label for="slant">Slant</label> -</header> -<div class="container"> - <p class="sample">...it would not be wonderful to meet a Megalosaurus, forty feet long or so, waddling like an elephantine lizard up Holborn Hill.</p> -</div> -- -
/*
-AmstelvarAlpha-VF is created by David Berlow (https://github.com/TypeNetwork/Amstelvar)
-and is used here under the terms of its license:
-https://github.com/TypeNetwork/Amstelvar/blob/master/OFL.txt
-*/
-
-@font-face {
- src: url('https://mdn.mozillademos.org/files/16044/AmstelvarAlpha-VF.ttf');
- font-family:'AmstelvarAlpha';
- font-style: normal;
-}
-
-label {
- font: 1rem monospace;
-}
-
-.container {
- max-height: 150px;
- overflow: scroll;
-}
-
-.sample {
- font: 2rem 'AmstelvarAlpha', sans-serif;
-}
-
-
-
-
-
-let slantLabel = document.querySelector('label[for="slant"]');
-let slantInput = document.querySelector('#slant');
-let sampleText = document.querySelector('.sample');
-
-function update() {
- let slant = `oblique ${slantInput.value}deg`;
- slantLabel.textContent = `font-style: ${slant};`;
- sampleText.style.fontStyle = slant;
-}
-
-slantInput.addEventListener('input', update);
-
-update();
-
-
-.normal {
- font-style: normal;
-}
-
-.italic {
- font-style: italic;
-}
-
-.oblique {
- font-style: oblique;
-}
-
-<p class="normal">Un paragraphe normale.</p> -<p class="italic">Un paragraphe italique.</p> -<p class="oblique">Un paragraphe oblique.</p> -- -
{{EmbedLiveSample('Exemples')}}
- -Note : Toutes les polices ne disposent pas nécessairement de formes pour oblique et italic, si ces formes sont absentes, le moteur simulera la forme absente à partir de celle qui est disponible. Voici un exemple du rendu d'une police qui dispose des différentes formes :

L'utilisation de grandes portions de textes avec font-style: italic peut rendre la lecture difficile pour les personnes dyslexiques ou ayant des troubles cognitifs.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Fonts', '#font-style-prop', 'font-style')}} | -{{Spec2('CSS4 Fonts')}} | -Permet d'indiquer un angle après le mot-clé oblique |
-
| {{SpecName('CSS3 Fonts', '#font-style-prop', 'font-style')}} | -{{Spec2('CSS3 Fonts')}} | -Aucune modification. | -
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-style', 'font-style')}} | -{{Spec2('CSS2.1')}} | -Aucune modification. | -
| {{SpecName('CSS1', '#font-style', 'font-style')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-style")}}
diff --git a/files/fr/web/css/font-style/index.md b/files/fr/web/css/font-style/index.md new file mode 100644 index 0000000000..69952fea4f --- /dev/null +++ b/files/fr/web/css/font-style/index.md @@ -0,0 +1,227 @@ +--- +title: font-style +slug: Web/CSS/font-style +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-style +--- +La propriété font-style permet de sélectionner une fonte italique (italic) ou (oblique) parmi celles listées par {{cssxref("font-family")}}.
La forme italique est généralement une forme cursive qui utilise moins d'espace horizontal que les autres formes classiques. La forme oblique quant à elle est simplement une version penchée de la forme normale. Les formes italique et oblique peuvent être synthétisées par le navigateur si elles sont absente (le moteur penche alors les glyphes de la forme normale), pour plus d'informations sur l'activation de cette synthèse, voir la propriété {{cssxref("font-synthesis")}}.
+ +La propriété font-style peut être définie avec l'un des mots-clés suivants.
font-style: normal; +font-style: italic; +font-style: oblique; +font-style: oblique 10deg; + +/* Valeurs globales */ +font-style: inherit; +font-style: initial; +font-style: unset; ++ +
La propriété font-style s'utilise avec un mot-clé parmi ceux qui suivent. Si ce mot-clé est oblique, il peut également être suivi de l' angle.
normalnormal parmi celles de {{cssxref("font-family")}}.italicitalic, s'il n'y a pas de version italique, une version oblique sera sélectionnée à la place.obliqueoblique, s'il n'y a pas de version oblique, une version italic sera sélectionnée à la place.oblique <angle>oblique et indique l'angle à utiliser pour la pente du texte. Si plusieurs fontes sont disponible pour la police, c'est la fonte avec la pente la plus proche qui est utilisée. Si aucune police oblique n'est disponible, le navigateur synthétisera une police penchée en tournant les caractères d'une fonte normale.-90deg et 90deg. Si aucun angle n'est indiqué, la valeur par défaut utilisée sera 14deg. Les valeurs positives correspondent à une pente où le haut des caractères penche vers la fin de la ligne et les valeurs négatives permettent d'obtenir une pente orientée vers le début de la ligne.Les polices variables permettent d'obtenir un contrôle fin sur la pente appliqué à la fonte. Pour cela, on pourra utiliser une police variable et font-style avec le mot-clé oblique suivi d'une valeur d'angle.
Pour les polices variables TrueType ou OpenType, c'est l'axe de variation "slnt" qui est utilisé afin d'implémenter les variations de pente. C'est l'axe "ital" qui est utilisé avec une valeur de 1 pour implémenter les fontes italiques. Voir {{cssxref("font-variation-settings")}}.
Afin que l'exemple suivant fonctionne, votre navigateur doit prendre en charge la syntaxe CSS Fonts Level 4 qui permet d'utiliser font-style: oblique suivi d'un angle.
{{EmbedLiveSample("Variable_fonts", 1200, 180, "", "", "example-outcome-frame")}}
+ +<header> + <input type="range" id="slant" name="slant" min="-90" max="90" /> + <label for="slant">Slant</label> +</header> +<div class="container"> + <p class="sample">...it would not be wonderful to meet a Megalosaurus, forty feet long or so, waddling like an elephantine lizard up Holborn Hill.</p> +</div> ++ +
/*
+AmstelvarAlpha-VF is created by David Berlow (https://github.com/TypeNetwork/Amstelvar)
+and is used here under the terms of its license:
+https://github.com/TypeNetwork/Amstelvar/blob/master/OFL.txt
+*/
+
+@font-face {
+ src: url('https://mdn.mozillademos.org/files/16044/AmstelvarAlpha-VF.ttf');
+ font-family:'AmstelvarAlpha';
+ font-style: normal;
+}
+
+label {
+ font: 1rem monospace;
+}
+
+.container {
+ max-height: 150px;
+ overflow: scroll;
+}
+
+.sample {
+ font: 2rem 'AmstelvarAlpha', sans-serif;
+}
+
+
+
+
+
+let slantLabel = document.querySelector('label[for="slant"]');
+let slantInput = document.querySelector('#slant');
+let sampleText = document.querySelector('.sample');
+
+function update() {
+ let slant = `oblique ${slantInput.value}deg`;
+ slantLabel.textContent = `font-style: ${slant};`;
+ sampleText.style.fontStyle = slant;
+}
+
+slantInput.addEventListener('input', update);
+
+update();
+
+
+.normal {
+ font-style: normal;
+}
+
+.italic {
+ font-style: italic;
+}
+
+.oblique {
+ font-style: oblique;
+}
+
+<p class="normal">Un paragraphe normale.</p> +<p class="italic">Un paragraphe italique.</p> +<p class="oblique">Un paragraphe oblique.</p> ++ +
{{EmbedLiveSample('Exemples')}}
+ +Note : Toutes les polices ne disposent pas nécessairement de formes pour oblique et italic, si ces formes sont absentes, le moteur simulera la forme absente à partir de celle qui est disponible. Voici un exemple du rendu d'une police qui dispose des différentes formes :

L'utilisation de grandes portions de textes avec font-style: italic peut rendre la lecture difficile pour les personnes dyslexiques ou ayant des troubles cognitifs.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Fonts', '#font-style-prop', 'font-style')}} | +{{Spec2('CSS4 Fonts')}} | +Permet d'indiquer un angle après le mot-clé oblique |
+
| {{SpecName('CSS3 Fonts', '#font-style-prop', 'font-style')}} | +{{Spec2('CSS3 Fonts')}} | +Aucune modification. | +
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-style', 'font-style')}} | +{{Spec2('CSS2.1')}} | +Aucune modification. | +
| {{SpecName('CSS1', '#font-style', 'font-style')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-style")}}
diff --git a/files/fr/web/css/font-synthesis/index.html b/files/fr/web/css/font-synthesis/index.html deleted file mode 100644 index db3390cd3b..0000000000 --- a/files/fr/web/css/font-synthesis/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: font-synthesis -slug: Web/CSS/font-synthesis -tags: - - CSS - - CSS Fonts - - Fontes CSS - - Propriété - - Reference - - 'recipe: css-property' -translation_of: Web/CSS/font-synthesis ---- -La propriété font-synthesis indique au navigateur s'il peut synthétiser la graisse ou la mise en italique des polices utilisées si ces variantes sont absentes.
font-synthesis: none; -font-synthesis: weight; -font-synthesis: style; -font-synthesis: weight style; - -/* Valeurs globales */ -font-synthesis: initial; -font-synthesis: inherit; -font-synthesis: unset; -- -
La plupart des polices occidentales incluent les variantes de graisse et d'italique mais certaines polices récentes ou utilisées pour le chinois, le japonais, le coréen ou d'autres scripts ont tendance à ne pas inclure ces éléments. La synthèse automatique du gras ou de l'italique par le navigateur peut réduire la lisibilité du texte et il est alors préférable de désactiver l'émulation du gras et de l'italique du navigateur.
- -Cette propriété peut prendre l'une des formes suivantes :
- -noneweight ou le mot-clé styleweight stylenoneweightstyle<div class="syn">Ne me synthétisez pas !</div>- -
.syn {font-synthesis: none;}
-
-
-{{EmbedLiveSample('Exemples')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-synthesis', 'font-synthesis')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.font-synthesis")}}
diff --git a/files/fr/web/css/font-synthesis/index.md b/files/fr/web/css/font-synthesis/index.md new file mode 100644 index 0000000000..db3390cd3b --- /dev/null +++ b/files/fr/web/css/font-synthesis/index.md @@ -0,0 +1,93 @@ +--- +title: font-synthesis +slug: Web/CSS/font-synthesis +tags: + - CSS + - CSS Fonts + - Fontes CSS + - Propriété + - Reference + - 'recipe: css-property' +translation_of: Web/CSS/font-synthesis +--- +La propriété font-synthesis indique au navigateur s'il peut synthétiser la graisse ou la mise en italique des polices utilisées si ces variantes sont absentes.
font-synthesis: none; +font-synthesis: weight; +font-synthesis: style; +font-synthesis: weight style; + +/* Valeurs globales */ +font-synthesis: initial; +font-synthesis: inherit; +font-synthesis: unset; ++ +
La plupart des polices occidentales incluent les variantes de graisse et d'italique mais certaines polices récentes ou utilisées pour le chinois, le japonais, le coréen ou d'autres scripts ont tendance à ne pas inclure ces éléments. La synthèse automatique du gras ou de l'italique par le navigateur peut réduire la lisibilité du texte et il est alors préférable de désactiver l'émulation du gras et de l'italique du navigateur.
+ +Cette propriété peut prendre l'une des formes suivantes :
+ +noneweight ou le mot-clé styleweight stylenoneweightstyle<div class="syn">Ne me synthétisez pas !</div>+ +
.syn {font-synthesis: none;}
+
+
+{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-synthesis', 'font-synthesis')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.font-synthesis")}}
diff --git a/files/fr/web/css/font-variant-alternates/index.html b/files/fr/web/css/font-variant-alternates/index.html deleted file mode 100644 index 02f1d94305..0000000000 --- a/files/fr/web/css/font-variant-alternates/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: font-variant-alternates -slug: Web/CSS/font-variant-alternates -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-variant-alternates ---- -La propriété font-variant-alternates contrôle l'utilisation de glyphes alternatifs. Ces glyphes peuvent être référencé par les noms définis avec la règle @ {{cssxref("@font-feature-values")}}.
/* Valeurs avec un mot-clé */ -font-variant-alternates: normal; -font-variant-alternates: historical-forms; - -/* Valeurs avec une notation fonctionnelle */ -font-variant-alternates: stylistic(identifiant-utilisateur); -font-variant-alternates: styleset(identifiant-utilisateur); -font-variant-alternates: character-variant(identifiant-utilisateur); -font-variant-alternates: swash(identifiant-utilisateur); -font-variant-alternates: ornaments(identifiant-utilisateur); -font-variant-alternates: annotation(identifiant-utilisateur); -font-variant-alternates: swash(ident1) annotation(ident2); - -/* Valeurs globales */ -font-variant-alternates: initial; -font-variant-alternates: inherit; -font-variant-alternates: unset; -- -
Ces règles @ définissent les noms associés aux valeurs OpenType pour les différents types de glyphes alternatifs (stylistic, styleset, character-variant, swash, ornament ou annotation). Ces propriétés permettent d'utiliser des noms adaptés (définis avec {{cssxref("@font-feature-values")}}) dans la feuille de style.
Cette propriété peut être définie selon deux formes :
- -normalnormalhistorical-formshist.stylistic()salt, par exemple salt 2.styleset()ssXY (par exemple ss02).character-variant()styleset() mais n'implique pas de cohérence entre les différents caractères. Avec cette valeur, les différents caractères peuvent avoir un style indépendant qui peut ne pas être cohérent. Le paramètre passé à la fonction est un nom lié à la fonte auquel est associé un nombre. Elle correspond à la valeur OpenType cvXY (par exemple cv02).swash()swsh et cswh (par exemple swsh 2 ou cswh 2).ornaments()ornm (par exemple ornm 2).
- Note : afin de préserver la sémantique de la fonte, les fondeurs sont invités à ne pas créer de casseaux qui correspondent aux caractères Unicode déjà définis comme variantes d'ornement pour la puce (U+2022). De nombreuses fontes passent outre cette règle et perdent ainsi en qualité.
annotation()nalt (par exemple nalt 2).<p>MDN c'est là !</p> -<p class="variant">MDN c'est là !</p> -- -
@font-feature-values "Leitura Display Swashes" {
- @swash { fancy: 1 }
-}
-
-p {
- font-size: 1.5rem;
-}
-
-.variant {
- font-family: Leitura Display Swashes;
- font-variant-alternates: swash(fancy);
-}
-
-Pour que cet exemple fonctionne, il faut avoir installé la fonte Open Type Leitura Display Swashes. Une version de test est disponible sur fontsgeek.com.
- -{{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/font-variant-alternates')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-alternates', 'font-variant-alternates')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variant-alternates")}}
diff --git a/files/fr/web/css/font-variant-alternates/index.md b/files/fr/web/css/font-variant-alternates/index.md new file mode 100644 index 0000000000..02f1d94305 --- /dev/null +++ b/files/fr/web/css/font-variant-alternates/index.md @@ -0,0 +1,124 @@ +--- +title: font-variant-alternates +slug: Web/CSS/font-variant-alternates +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-variant-alternates +--- +La propriété font-variant-alternates contrôle l'utilisation de glyphes alternatifs. Ces glyphes peuvent être référencé par les noms définis avec la règle @ {{cssxref("@font-feature-values")}}.
/* Valeurs avec un mot-clé */ +font-variant-alternates: normal; +font-variant-alternates: historical-forms; + +/* Valeurs avec une notation fonctionnelle */ +font-variant-alternates: stylistic(identifiant-utilisateur); +font-variant-alternates: styleset(identifiant-utilisateur); +font-variant-alternates: character-variant(identifiant-utilisateur); +font-variant-alternates: swash(identifiant-utilisateur); +font-variant-alternates: ornaments(identifiant-utilisateur); +font-variant-alternates: annotation(identifiant-utilisateur); +font-variant-alternates: swash(ident1) annotation(ident2); + +/* Valeurs globales */ +font-variant-alternates: initial; +font-variant-alternates: inherit; +font-variant-alternates: unset; ++ +
Ces règles @ définissent les noms associés aux valeurs OpenType pour les différents types de glyphes alternatifs (stylistic, styleset, character-variant, swash, ornament ou annotation). Ces propriétés permettent d'utiliser des noms adaptés (définis avec {{cssxref("@font-feature-values")}}) dans la feuille de style.
Cette propriété peut être définie selon deux formes :
+ +normalnormalhistorical-formshist.stylistic()salt, par exemple salt 2.styleset()ssXY (par exemple ss02).character-variant()styleset() mais n'implique pas de cohérence entre les différents caractères. Avec cette valeur, les différents caractères peuvent avoir un style indépendant qui peut ne pas être cohérent. Le paramètre passé à la fonction est un nom lié à la fonte auquel est associé un nombre. Elle correspond à la valeur OpenType cvXY (par exemple cv02).swash()swsh et cswh (par exemple swsh 2 ou cswh 2).ornaments()ornm (par exemple ornm 2).
+ Note : afin de préserver la sémantique de la fonte, les fondeurs sont invités à ne pas créer de casseaux qui correspondent aux caractères Unicode déjà définis comme variantes d'ornement pour la puce (U+2022). De nombreuses fontes passent outre cette règle et perdent ainsi en qualité.
annotation()nalt (par exemple nalt 2).<p>MDN c'est là !</p> +<p class="variant">MDN c'est là !</p> ++ +
@font-feature-values "Leitura Display Swashes" {
+ @swash { fancy: 1 }
+}
+
+p {
+ font-size: 1.5rem;
+}
+
+.variant {
+ font-family: Leitura Display Swashes;
+ font-variant-alternates: swash(fancy);
+}
+
+Pour que cet exemple fonctionne, il faut avoir installé la fonte Open Type Leitura Display Swashes. Une version de test est disponible sur fontsgeek.com.
+ +{{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/font-variant-alternates')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-alternates', 'font-variant-alternates')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variant-alternates")}}
diff --git a/files/fr/web/css/font-variant-caps/index.html b/files/fr/web/css/font-variant-caps/index.html deleted file mode 100644 index f182b3f024..0000000000 --- a/files/fr/web/css/font-variant-caps/index.html +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: font-variant-caps -slug: Web/CSS/font-variant-caps -tags: - - CSS - - CSS Fonts - - Propriété - - Reference -translation_of: Web/CSS/font-variant-caps ---- -La propriété font-variant-caps permet de contrôler les glyphes utilisés pour représenter les lettres en capitales. Les scripts peuvent avoir différents glyphes de différentes tailles pour les différentes représentations des capitales et cette propriété permet de choisir une de ces formes.
Quand une fonte inclut des glyphes de lettres capitales avec différents corps (taille), cette propriété sélectionne la plus appropriée. Si les très petites capitales ne sont pas toutes présentes pour cette fonte, ce seront les petites capitales qui seront utilisées. Si celles-ci ne sont pas présentes, le moteur les synthétisera à partir des glyphes des capitales.
- -Certains caractères sans casse (comme les caractères de ponctuation) peuvent être représentés avec différents glyphes afin de mieux les représenter avec les caractères environnants. Les caractères sans casse ne sont pas synthétisés par le navigateur s'il n'y a pas de petite capitales.
- -Les règles liées à chaque langue/locale sont prises en compte avec les valeurs. Par exemple :
- -i/İ et ı/I.ß devient ẞ (U+1E9E) en majuscule.ά/Α), sauf pour le êta disjonctif (ή/Ή). Les diphthongues avec un accent sur la première voyellle perdent l'accent et ajoutent une diacritique sur la deuxième voyelle (άι/ΑΪ)./* Valeurs avec un mot-clé */ -font-variant-caps: normal; -font-variant-caps: small-caps; -font-variant-caps: all-small-caps; -font-variant-caps: petite-caps; -font-variant-caps: all-petite-caps; -font-variant-caps: unicase; -font-variant-caps: titling-caps; - -/* Valeurs globales */ -font-variant-caps: inherit; -font-variant-caps: initial; -font-variant-caps: unset; -- -
La valeur de cette propriété peut être l'un des mots-clés définis ci-après.
- -normalsmall-capssmcp ; si la fonte ne supporte pas cette option, le moteur synthétisera les glyphes.all-small-capssmcp et c2sc ; si la fonte ne supporte pas cette option, le moteur synthétisera les glyphes.petite-capspcap ; si la fonte ne supporte pas cette option, le moteur utilisera les petites capitales.all-petite-capspcap et c2pc ; si la fonte ne supporte pas cette option, le moteur utilisera les petites capitales.unicaseunic.titling-capstitl ; si la fonte ne supporte pas ce cas, le mot-clé n'aura pas d'action visible..exemple {
- font-variant-caps: small-caps;
-}
-
-<p> - La Reine devint pourpre de colère et - après l’avoir considérée un moment avec - des yeux flamboyants comme ceux d’une - bête fauve, elle se mit à crier : - « <span class="exemple">Qu’on lui coupe la tête !</span> » -</p> -- -
{{EmbedLiveSample("Exemples")}}
- -L'utilisation de grandes portions de textes avec font-style: all-small-caps ou font-style: all-petite-caps peut rendre la lecture difficile pour les personnes dyslexiques ou ayant des troubles cognitifs.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-caps', 'font-variant-caps')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variant-caps")}}
diff --git a/files/fr/web/css/font-variant-caps/index.md b/files/fr/web/css/font-variant-caps/index.md new file mode 100644 index 0000000000..f182b3f024 --- /dev/null +++ b/files/fr/web/css/font-variant-caps/index.md @@ -0,0 +1,128 @@ +--- +title: font-variant-caps +slug: Web/CSS/font-variant-caps +tags: + - CSS + - CSS Fonts + - Propriété + - Reference +translation_of: Web/CSS/font-variant-caps +--- +La propriété font-variant-caps permet de contrôler les glyphes utilisés pour représenter les lettres en capitales. Les scripts peuvent avoir différents glyphes de différentes tailles pour les différentes représentations des capitales et cette propriété permet de choisir une de ces formes.
Quand une fonte inclut des glyphes de lettres capitales avec différents corps (taille), cette propriété sélectionne la plus appropriée. Si les très petites capitales ne sont pas toutes présentes pour cette fonte, ce seront les petites capitales qui seront utilisées. Si celles-ci ne sont pas présentes, le moteur les synthétisera à partir des glyphes des capitales.
+ +Certains caractères sans casse (comme les caractères de ponctuation) peuvent être représentés avec différents glyphes afin de mieux les représenter avec les caractères environnants. Les caractères sans casse ne sont pas synthétisés par le navigateur s'il n'y a pas de petite capitales.
+ +Les règles liées à chaque langue/locale sont prises en compte avec les valeurs. Par exemple :
+ +i/İ et ı/I.ß devient ẞ (U+1E9E) en majuscule.ά/Α), sauf pour le êta disjonctif (ή/Ή). Les diphthongues avec un accent sur la première voyellle perdent l'accent et ajoutent une diacritique sur la deuxième voyelle (άι/ΑΪ)./* Valeurs avec un mot-clé */ +font-variant-caps: normal; +font-variant-caps: small-caps; +font-variant-caps: all-small-caps; +font-variant-caps: petite-caps; +font-variant-caps: all-petite-caps; +font-variant-caps: unicase; +font-variant-caps: titling-caps; + +/* Valeurs globales */ +font-variant-caps: inherit; +font-variant-caps: initial; +font-variant-caps: unset; ++ +
La valeur de cette propriété peut être l'un des mots-clés définis ci-après.
+ +normalsmall-capssmcp ; si la fonte ne supporte pas cette option, le moteur synthétisera les glyphes.all-small-capssmcp et c2sc ; si la fonte ne supporte pas cette option, le moteur synthétisera les glyphes.petite-capspcap ; si la fonte ne supporte pas cette option, le moteur utilisera les petites capitales.all-petite-capspcap et c2pc ; si la fonte ne supporte pas cette option, le moteur utilisera les petites capitales.unicaseunic.titling-capstitl ; si la fonte ne supporte pas ce cas, le mot-clé n'aura pas d'action visible..exemple {
+ font-variant-caps: small-caps;
+}
+
+<p> + La Reine devint pourpre de colère et + après l’avoir considérée un moment avec + des yeux flamboyants comme ceux d’une + bête fauve, elle se mit à crier : + « <span class="exemple">Qu’on lui coupe la tête !</span> » +</p> ++ +
{{EmbedLiveSample("Exemples")}}
+ +L'utilisation de grandes portions de textes avec font-style: all-small-caps ou font-style: all-petite-caps peut rendre la lecture difficile pour les personnes dyslexiques ou ayant des troubles cognitifs.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-caps', 'font-variant-caps')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variant-caps")}}
diff --git a/files/fr/web/css/font-variant-east-asian/index.html b/files/fr/web/css/font-variant-east-asian/index.html deleted file mode 100644 index 280c061758..0000000000 --- a/files/fr/web/css/font-variant-east-asian/index.html +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: font-variant-east-asian -slug: Web/CSS/font-variant-east-asian -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-variant-east-asian ---- -La propriété font-variant-east-asian contrôle l'utilisation des glyphes alternatifs pour les scripts japonais, chinois et d'Asie orientale.
font-variant-east-asian: normal; -font-variant-east-asian: ruby; -font-variant-east-asian: jis78; /* <east-asian-variant-values> */ -font-variant-east-asian: jis83; /* <east-asian-variant-values> */ -font-variant-east-asian: jis90; /* <east-asian-variant-values> */ -font-variant-east-asian: jis04; /* <east-asian-variant-values> */ -font-variant-east-asian: simplified; /* <east-asian-variant-values> */ -font-variant-east-asian: traditional; /* <east-asian-variant-values> */ -font-variant-east-asian: full-width; /* <east-asian-width-values> */ -font-variant-east-asian: proportional-width; /* <east-asian-width-values> */ -font-variant-east-asian: ruby full-width jis83; - -/* Valeurs globales */ -font-variant-east-asian: inherit; -font-variant-east-asian: initial; -font-variant-east-asian: unset; -- -
normalrubyruby.<east-asian-variant-values>| Mot-clé | -Standard dans lequel sont définis les glyphs | -Équivalent OpenType | -
|---|---|---|
jis78 |
- JIS X 0208:1978 | -jp78 |
-
jis83 |
- JIS X 0208:1983 | -jp83 |
-
jis90 |
- JIS X 0208:1990 | -jp90 |
-
jis04 |
- JIS X 0213:2004 | -jp04 |
-
simplified |
- Aucun, ce sont les glyphes chinois simplifiés qui sont utilisés. | -smpl |
-
traditional |
- Aucun, ce sont les glyphes chinois traditionnels qui sont utilisés. | -trad |
-
proportional-width qui active l'ensemble de caractères d'Asie orientale qui n'ont pas tous la même largeur. Elle correspond aux valeurs OpenType pwid.full-width qui active l'ensemble de caractères d'Asie orientale où les caractères ont tous la même taille et forme carrée. Elle correspond aux valeurs OpenType fwid.exemple {
- font-variant-east-asian: ruby;
-}
-
-<p class="exemple">!</p>- -
{{EmbedLiveSample("Exemples")}}
- -{{LiveSampleLink("Exemples","Lien vers l'exemple")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-east-asian', 'font-variant-east-asian')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variant-east-asian")}}
diff --git a/files/fr/web/css/font-variant-east-asian/index.md b/files/fr/web/css/font-variant-east-asian/index.md new file mode 100644 index 0000000000..280c061758 --- /dev/null +++ b/files/fr/web/css/font-variant-east-asian/index.md @@ -0,0 +1,137 @@ +--- +title: font-variant-east-asian +slug: Web/CSS/font-variant-east-asian +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-variant-east-asian +--- +La propriété font-variant-east-asian contrôle l'utilisation des glyphes alternatifs pour les scripts japonais, chinois et d'Asie orientale.
font-variant-east-asian: normal; +font-variant-east-asian: ruby; +font-variant-east-asian: jis78; /* <east-asian-variant-values> */ +font-variant-east-asian: jis83; /* <east-asian-variant-values> */ +font-variant-east-asian: jis90; /* <east-asian-variant-values> */ +font-variant-east-asian: jis04; /* <east-asian-variant-values> */ +font-variant-east-asian: simplified; /* <east-asian-variant-values> */ +font-variant-east-asian: traditional; /* <east-asian-variant-values> */ +font-variant-east-asian: full-width; /* <east-asian-width-values> */ +font-variant-east-asian: proportional-width; /* <east-asian-width-values> */ +font-variant-east-asian: ruby full-width jis83; + +/* Valeurs globales */ +font-variant-east-asian: inherit; +font-variant-east-asian: initial; +font-variant-east-asian: unset; ++ +
normalrubyruby.<east-asian-variant-values>| Mot-clé | +Standard dans lequel sont définis les glyphs | +Équivalent OpenType | +
|---|---|---|
jis78 |
+ JIS X 0208:1978 | +jp78 |
+
jis83 |
+ JIS X 0208:1983 | +jp83 |
+
jis90 |
+ JIS X 0208:1990 | +jp90 |
+
jis04 |
+ JIS X 0213:2004 | +jp04 |
+
simplified |
+ Aucun, ce sont les glyphes chinois simplifiés qui sont utilisés. | +smpl |
+
traditional |
+ Aucun, ce sont les glyphes chinois traditionnels qui sont utilisés. | +trad |
+
proportional-width qui active l'ensemble de caractères d'Asie orientale qui n'ont pas tous la même largeur. Elle correspond aux valeurs OpenType pwid.full-width qui active l'ensemble de caractères d'Asie orientale où les caractères ont tous la même taille et forme carrée. Elle correspond aux valeurs OpenType fwid.exemple {
+ font-variant-east-asian: ruby;
+}
+
+<p class="exemple">!</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +{{LiveSampleLink("Exemples","Lien vers l'exemple")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-east-asian', 'font-variant-east-asian')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variant-east-asian")}}
diff --git a/files/fr/web/css/font-variant-ligatures/index.html b/files/fr/web/css/font-variant-ligatures/index.html deleted file mode 100644 index f22176a920..0000000000 --- a/files/fr/web/css/font-variant-ligatures/index.html +++ /dev/null @@ -1,208 +0,0 @@ ---- -title: font-variant-ligatures -slug: Web/CSS/font-variant-ligatures -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-variant-ligatures ---- -La propriété font-variant-ligatures contrôle quelles {{Glossary("ligatures")}} et {{Glossary("formes contextuelles")}} sont utilisées dans les éléments textuels auxquels elle s'applique. Ceci vise à harmoniser l'affichage du texte.
font-variant-ligatures: normal; -font-variant-ligatures: none; -font-variant-ligatures: common-ligatures; /* <common-lig-values> */ -font-variant-ligatures: no-common-ligatures; /* <common-lig-values> */ -font-variant-ligatures: discretionary-ligatures; /* <discretionary-lig-values> */ -font-variant-ligatures: no-discretionary-ligatures; /* <discretionary-lig-values> */ -font-variant-ligatures: historical-ligatures; /* <historical-lig-values> */ -font-variant-ligatures: no-historical-ligatures; /* <historical-lig-values> */ -font-variant-ligatures: contextual; /* <contextual-alt-values> */ -font-variant-ligatures: no-contextual; /* <contextual-alt-values> */ -font-variant-ligatures: contextual; /* <no-historical-ligatures> <common-ligatures> */ - -/* Valeurs globales */ -font-variant-ligatures: inherit; -font-variant-ligatures: initial; -font-variant-ligatures: unset; -- -
La valeur de cette propriété peut être l'un des mots-clés définis ci-après.
- -normalnonefi, ffi, th et autres. Elles correspondent aux valeurs OpenType liga and clig. Deux valeurs sont possibles:
- common-ligatures active ces ligatures. Notez que la valeur normal active ces ligatures.no-common-ligatures désactive ces ligatures.dlig. Deux valeurs sont possibles:
- discretionary-ligatures active ces ligatures.no-discretionary-ligatures désactive ces ligatures. Notez que la valeur normal désactive ces ligatures.hlig. Deux valeurs sont possibles:
- historical-ligatures active ces ligatures.no-historical-ligatures désactive ces ligatures. Notez que la valeur normal désactive ces ligatures.calt. Deux valeurs sont possibles:
- contextual précise que des alternatives contextuelles peuvent être utilisées. Notez que la valeur normal active ces ligatures.no-contextual interdit leur utilisation.p {
- font-size: 2rem;
- font-family: Lora, serif;
-}
-.normal {
- font-variant-ligatures: normal;
-}
-
-.none {
- font-variant-ligatures: none;
-}
-
-.common-ligatures {
- font-variant-ligatures: common-ligatures;
-}
-
-.no-common-ligatures {
- font-variant-ligatures: no-common-ligatures;
-}
-
-.discretionary-ligatures {
- font-variant-ligatures: discretionary-ligatures;
-}
-
-.no-discretionary-ligatures {
- font-variant-ligatures: no-discretionary-ligatures;
-}
-
-.historical-ligatures {
- font-variant-ligatures: historical-ligatures;
-}
-
-.no-historical-ligatures {
- font-variant-ligatures: no-historical-ligatures;
-}
-
-.contextual {
- font-variant-ligatures: contextual;
-}
-
-.no-contextual {
- font-variant-ligatures: no-contextual;
-}
-
-.contextual {
- font-variant-ligatures: contextual;
-}
-
-
-<link href="//fonts.googleapis.com/css?family=Lora" rel="stylesheet"> -<p class="normal"> - normal<br> - if fi ff tf ft jf fj -</p> -<p class="none"> - none<br> - if fi ff tf ft jf fj -</p> -<p class="common-ligatures"> - common-ligatures<br> - if fi ff tf ft jf fj -</p> -<p class="no-common-ligatures"> - no-common-ligatures<br> - if fi ff tf ft jf fj -</p> -<p class="discretionary-ligatures"> - discretionary-ligatures<br> - if fi ff tf ft jf fj -</p> -<p class="no-discretionary-ligatures"> - no-discretionary-ligatures<br> - if fi ff tf ft jf fj -</p> -<p class="historical-ligatures"> - historical-ligatures<br> - if fi ff tf ft jf fj -</p> -<p class="no-historical-ligatures"> - no-historical-ligatures<br> - if fi ff tf ft jf fj -</p> -<p class="contextual"> - contextual<br> - if fi ff tf ft jf fj -</p> -<p class="no-contextual"> - no-contextual<br> - if fi ff tf ft jf fj -</p> -<p class="contextual"> - contextual<br> - if fi ff tf ft jf fj -</p> -- -
{{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/font-variant-ligatures')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-ligatures', 'font-variant-ligatures')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variant-ligatures")}}
diff --git a/files/fr/web/css/font-variant-ligatures/index.md b/files/fr/web/css/font-variant-ligatures/index.md new file mode 100644 index 0000000000..f22176a920 --- /dev/null +++ b/files/fr/web/css/font-variant-ligatures/index.md @@ -0,0 +1,208 @@ +--- +title: font-variant-ligatures +slug: Web/CSS/font-variant-ligatures +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-variant-ligatures +--- +La propriété font-variant-ligatures contrôle quelles {{Glossary("ligatures")}} et {{Glossary("formes contextuelles")}} sont utilisées dans les éléments textuels auxquels elle s'applique. Ceci vise à harmoniser l'affichage du texte.
font-variant-ligatures: normal; +font-variant-ligatures: none; +font-variant-ligatures: common-ligatures; /* <common-lig-values> */ +font-variant-ligatures: no-common-ligatures; /* <common-lig-values> */ +font-variant-ligatures: discretionary-ligatures; /* <discretionary-lig-values> */ +font-variant-ligatures: no-discretionary-ligatures; /* <discretionary-lig-values> */ +font-variant-ligatures: historical-ligatures; /* <historical-lig-values> */ +font-variant-ligatures: no-historical-ligatures; /* <historical-lig-values> */ +font-variant-ligatures: contextual; /* <contextual-alt-values> */ +font-variant-ligatures: no-contextual; /* <contextual-alt-values> */ +font-variant-ligatures: contextual; /* <no-historical-ligatures> <common-ligatures> */ + +/* Valeurs globales */ +font-variant-ligatures: inherit; +font-variant-ligatures: initial; +font-variant-ligatures: unset; ++ +
La valeur de cette propriété peut être l'un des mots-clés définis ci-après.
+ +normalnonefi, ffi, th et autres. Elles correspondent aux valeurs OpenType liga and clig. Deux valeurs sont possibles:
+ common-ligatures active ces ligatures. Notez que la valeur normal active ces ligatures.no-common-ligatures désactive ces ligatures.dlig. Deux valeurs sont possibles:
+ discretionary-ligatures active ces ligatures.no-discretionary-ligatures désactive ces ligatures. Notez que la valeur normal désactive ces ligatures.hlig. Deux valeurs sont possibles:
+ historical-ligatures active ces ligatures.no-historical-ligatures désactive ces ligatures. Notez que la valeur normal désactive ces ligatures.calt. Deux valeurs sont possibles:
+ contextual précise que des alternatives contextuelles peuvent être utilisées. Notez que la valeur normal active ces ligatures.no-contextual interdit leur utilisation.p {
+ font-size: 2rem;
+ font-family: Lora, serif;
+}
+.normal {
+ font-variant-ligatures: normal;
+}
+
+.none {
+ font-variant-ligatures: none;
+}
+
+.common-ligatures {
+ font-variant-ligatures: common-ligatures;
+}
+
+.no-common-ligatures {
+ font-variant-ligatures: no-common-ligatures;
+}
+
+.discretionary-ligatures {
+ font-variant-ligatures: discretionary-ligatures;
+}
+
+.no-discretionary-ligatures {
+ font-variant-ligatures: no-discretionary-ligatures;
+}
+
+.historical-ligatures {
+ font-variant-ligatures: historical-ligatures;
+}
+
+.no-historical-ligatures {
+ font-variant-ligatures: no-historical-ligatures;
+}
+
+.contextual {
+ font-variant-ligatures: contextual;
+}
+
+.no-contextual {
+ font-variant-ligatures: no-contextual;
+}
+
+.contextual {
+ font-variant-ligatures: contextual;
+}
+
+
+<link href="//fonts.googleapis.com/css?family=Lora" rel="stylesheet"> +<p class="normal"> + normal<br> + if fi ff tf ft jf fj +</p> +<p class="none"> + none<br> + if fi ff tf ft jf fj +</p> +<p class="common-ligatures"> + common-ligatures<br> + if fi ff tf ft jf fj +</p> +<p class="no-common-ligatures"> + no-common-ligatures<br> + if fi ff tf ft jf fj +</p> +<p class="discretionary-ligatures"> + discretionary-ligatures<br> + if fi ff tf ft jf fj +</p> +<p class="no-discretionary-ligatures"> + no-discretionary-ligatures<br> + if fi ff tf ft jf fj +</p> +<p class="historical-ligatures"> + historical-ligatures<br> + if fi ff tf ft jf fj +</p> +<p class="no-historical-ligatures"> + no-historical-ligatures<br> + if fi ff tf ft jf fj +</p> +<p class="contextual"> + contextual<br> + if fi ff tf ft jf fj +</p> +<p class="no-contextual"> + no-contextual<br> + if fi ff tf ft jf fj +</p> +<p class="contextual"> + contextual<br> + if fi ff tf ft jf fj +</p> ++ +
{{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/font-variant-ligatures')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-ligatures', 'font-variant-ligatures')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variant-ligatures")}}
diff --git a/files/fr/web/css/font-variant-numeric/index.html b/files/fr/web/css/font-variant-numeric/index.html deleted file mode 100644 index b76c7896db..0000000000 --- a/files/fr/web/css/font-variant-numeric/index.html +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: font-variant-numeric -slug: Web/CSS/font-variant-numeric -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-variant-numeric ---- -La propriété font-variant-numeric permet de contrôler l'utilisation de glyphes alternatifs pour les nombres, fractions et les marqueurs ordinaux.
font-variant-numeric: normal; -font-variant-numeric: ordinal; -font-variant-numeric: slashed-zero; -font-variant-numeric: lining-nums; /* <numeric-figure-values> */ -font-variant-numeric: oldstyle-nums; /* <numeric-figure-values> */ -font-variant-numeric: proportional-nums; /* <numeric-spacing-values> */ -font-variant-numeric: tabular-nums; /* <numeric-spacing-values> */ -font-variant-numeric: diagonal-fractions; /* <numeric-fraction-values> */ -font-variant-numeric: stacked-fractions; /* <numeric-fraction-values> */ -font-variant-numeric: oldstyle-nums stacked-fractions; - -/* Valeurs globales */ -font-variant-numeric: inherit; -font-variant-numeric: initial; -font-variant-numeric: unset; -- -
La valeur de cette propriété peut être définie selon deux formes :
- -normalnormalordinalordn.slashed-zerozero.lining-nums permet d'activer l'ensemble de chiffres pour lequel tous les nombres sont apposés sur la ligne de base. Elle correspond aux valeurs OpenType lnum.oldstyle-nums permet d'activer l'ensemble de chiffres pour lequel certains nombres, comme 3, 4, 7, 9, ont un jambage. Elle correspond aux valleurs OpenType onum.proportional-nums permet d'activer l'ensemble où les chiffres ne sont pas tous de la même taille. Elle correspond aux valeurs OpenType pnum.tabular-nums permet d'activer l'ensemble où les chiffres ont la même taille (ce qui leur permet d'être facilement alignés dans des tableaux). Elle correspond aux valeurs OpenType tnum.diagonal-fractions permet d'utiliser l'ensemble où le numérateur et le dénominateur sont plus petits et séparés par une barre oblique. Elle correspond aux valeurs OpenType frac.stacked-fractions permet d'utiliser l'ensemble où les chiffres du numérateur et du dénominateur sont plus petits et séparés par une ligne horizontale. Elle correspond aux valeurs OpenType afrc./*
-Cet exemple utilise la police Source Sans Pro OpenType développée par Adobe
-et utilisée ici sous les termes de la licence SIL Open Font en Version 1.1 :
-http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web
-*/
-
-@font-face {
- font-family: "Source Sans Pro";
- font-style: normal;
- font-weight: 400;
- src: url("https://mdn.mozillademos.org/files/15757/SourceSansPro-Regular.otf") format("opentype");
-}
-
-.ordinal {
- font-variant-numeric: ordinal;
- font-family: "Source Sans Pro";
-}
-
-
-<p class="ordinal">Premier, deuxième, troisième, quatrième, cinquième</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-numeric', 'font-variant-numeric')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variant-numeric")}}
diff --git a/files/fr/web/css/font-variant-numeric/index.md b/files/fr/web/css/font-variant-numeric/index.md new file mode 100644 index 0000000000..b76c7896db --- /dev/null +++ b/files/fr/web/css/font-variant-numeric/index.md @@ -0,0 +1,132 @@ +--- +title: font-variant-numeric +slug: Web/CSS/font-variant-numeric +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-variant-numeric +--- +La propriété font-variant-numeric permet de contrôler l'utilisation de glyphes alternatifs pour les nombres, fractions et les marqueurs ordinaux.
font-variant-numeric: normal; +font-variant-numeric: ordinal; +font-variant-numeric: slashed-zero; +font-variant-numeric: lining-nums; /* <numeric-figure-values> */ +font-variant-numeric: oldstyle-nums; /* <numeric-figure-values> */ +font-variant-numeric: proportional-nums; /* <numeric-spacing-values> */ +font-variant-numeric: tabular-nums; /* <numeric-spacing-values> */ +font-variant-numeric: diagonal-fractions; /* <numeric-fraction-values> */ +font-variant-numeric: stacked-fractions; /* <numeric-fraction-values> */ +font-variant-numeric: oldstyle-nums stacked-fractions; + +/* Valeurs globales */ +font-variant-numeric: inherit; +font-variant-numeric: initial; +font-variant-numeric: unset; ++ +
La valeur de cette propriété peut être définie selon deux formes :
+ +normalnormalordinalordn.slashed-zerozero.lining-nums permet d'activer l'ensemble de chiffres pour lequel tous les nombres sont apposés sur la ligne de base. Elle correspond aux valeurs OpenType lnum.oldstyle-nums permet d'activer l'ensemble de chiffres pour lequel certains nombres, comme 3, 4, 7, 9, ont un jambage. Elle correspond aux valleurs OpenType onum.proportional-nums permet d'activer l'ensemble où les chiffres ne sont pas tous de la même taille. Elle correspond aux valeurs OpenType pnum.tabular-nums permet d'activer l'ensemble où les chiffres ont la même taille (ce qui leur permet d'être facilement alignés dans des tableaux). Elle correspond aux valeurs OpenType tnum.diagonal-fractions permet d'utiliser l'ensemble où le numérateur et le dénominateur sont plus petits et séparés par une barre oblique. Elle correspond aux valeurs OpenType frac.stacked-fractions permet d'utiliser l'ensemble où les chiffres du numérateur et du dénominateur sont plus petits et séparés par une ligne horizontale. Elle correspond aux valeurs OpenType afrc./*
+Cet exemple utilise la police Source Sans Pro OpenType développée par Adobe
+et utilisée ici sous les termes de la licence SIL Open Font en Version 1.1 :
+http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web
+*/
+
+@font-face {
+ font-family: "Source Sans Pro";
+ font-style: normal;
+ font-weight: 400;
+ src: url("https://mdn.mozillademos.org/files/15757/SourceSansPro-Regular.otf") format("opentype");
+}
+
+.ordinal {
+ font-variant-numeric: ordinal;
+ font-family: "Source Sans Pro";
+}
+
+
+<p class="ordinal">Premier, deuxième, troisième, quatrième, cinquième</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-numeric', 'font-variant-numeric')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variant-numeric")}}
diff --git a/files/fr/web/css/font-variant-position/index.html b/files/fr/web/css/font-variant-position/index.html deleted file mode 100644 index 8616d88374..0000000000 --- a/files/fr/web/css/font-variant-position/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: font-variant-position -slug: Web/CSS/font-variant-position -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-variant-position ---- -La propriété font-variant-position permet d'utiliser des glyphes de plus petite taille positionnés en exposant ou en indice par rapport à la ligne de base utilisée (qui reste la même).
Généralement, les glyphes utilisés sont ceux utilisés pour les éléments HTML {{HTMLElement("sub")}} et {{HTMLElement("sup")}}.
- -/* Valeurs avec un mot-clé */ -font-variant-position: normal; -font-variant-position: sub; -font-variant-position: super; - -/* Valeurs globales */ -font-variant-position: inherit; -font-variant-position: initial; -font-variant-position: unset; -- -
Lorsque ces glyphes alternatifs sont activés, si un caractère de l'ensemble concerné ne possède pas de glyphe correspondant, l'ensemble des caractères est affiché avec une méthode de secours qui synthétise ces glyphes.
- -Ces glyphes alternatifs possèdent la même boîte em et la même ligne de base que le reste du texte. La modification est purement graphique et il n'y a pas d'impact sur la hauteur de ligne ou sur les autres caractéristiques liées aux boîtes.
- -La valeur de cette propriété est définie grâce à l'un des mots-clés définis ci-après.
- -normalsubsuper.exemple {
- font-variant-position: super;
-}
-
-<p> Alice <span class="exemple">ne s’était pas fait le moindre mal.</span> - Vite elle se remet sur ses pieds et regarde en l’air ; mais tout - est noir là-haut. Elle voit devant elle un long passage et le Lapin - Blanc qui court à toutes jambes. -</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-position', 'font-variant-position')}} | -{{Spec2('CSS3 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variant-position")}}
diff --git a/files/fr/web/css/font-variant-position/index.md b/files/fr/web/css/font-variant-position/index.md new file mode 100644 index 0000000000..8616d88374 --- /dev/null +++ b/files/fr/web/css/font-variant-position/index.md @@ -0,0 +1,93 @@ +--- +title: font-variant-position +slug: Web/CSS/font-variant-position +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-variant-position +--- +La propriété font-variant-position permet d'utiliser des glyphes de plus petite taille positionnés en exposant ou en indice par rapport à la ligne de base utilisée (qui reste la même).
Généralement, les glyphes utilisés sont ceux utilisés pour les éléments HTML {{HTMLElement("sub")}} et {{HTMLElement("sup")}}.
+ +/* Valeurs avec un mot-clé */ +font-variant-position: normal; +font-variant-position: sub; +font-variant-position: super; + +/* Valeurs globales */ +font-variant-position: inherit; +font-variant-position: initial; +font-variant-position: unset; ++ +
Lorsque ces glyphes alternatifs sont activés, si un caractère de l'ensemble concerné ne possède pas de glyphe correspondant, l'ensemble des caractères est affiché avec une méthode de secours qui synthétise ces glyphes.
+ +Ces glyphes alternatifs possèdent la même boîte em et la même ligne de base que le reste du texte. La modification est purement graphique et il n'y a pas d'impact sur la hauteur de ligne ou sur les autres caractéristiques liées aux boîtes.
+ +La valeur de cette propriété est définie grâce à l'un des mots-clés définis ci-après.
+ +normalsubsuper.exemple {
+ font-variant-position: super;
+}
+
+<p> Alice <span class="exemple">ne s’était pas fait le moindre mal.</span> + Vite elle se remet sur ses pieds et regarde en l’air ; mais tout + est noir là-haut. Elle voit devant elle un long passage et le Lapin + Blanc qui court à toutes jambes. +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant-position', 'font-variant-position')}} | +{{Spec2('CSS3 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variant-position")}}
diff --git a/files/fr/web/css/font-variant/index.html b/files/fr/web/css/font-variant/index.html deleted file mode 100644 index 86e59df336..0000000000 --- a/files/fr/web/css/font-variant/index.html +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: font-variant -slug: Web/CSS/font-variant -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/font-variant ---- -La propriété font-variant est une propriété raccourcie représentant les propriétés : {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-ligatures")}} et {{cssxref("font-variant-east-asian")}}. On peut aussi utiliser les valeurs de la propriété font-variant définies avec CSS Level 2 (normal ou small-caps), en utilisant la propriété raccourcie {{cssxref("font")}}.
font-variant: small-caps; -font-variant: common-ligatures small-caps; - -/* Valeurs globales */ -font-variant: inherit; -font-variant: initial; -font-variant: unset; -- -
normalnormal. Ces propriétés sont {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-ligatures")}}, et {{cssxref("font-variant-east-asian")}}.nonenone et les valeurs des autres propriétés à normal, leur valeur initiale.common-ligatures,no-common-ligatures, discretionary-ligatures, no-discretionary-ligatures, historical-ligatures, no-historical-ligatures,contextual, et no-contextual.stylistic(), historical-forms, styleset(), character-variant(), swash(), ornaments(), annotation()small-caps, all-small-caps, petite-caps, all-petite-caps, unicase, titling-caps<numeric-figure-values>, <numeric-spacing-values>, <numeric-fraction-values>, ordinal, slashed-zerolining-nums, oldstyle-nums, proportional-nums, tabular-nums, diagonal-fractions, stacked-fractions, ordinal, et slashed-zero.<east-asian-variant-values>, <east-asian-width-values>, rubyjis78, jis83,jis90, jis04, simplified, traditional, full-width, proportional-width, ruby.<p class="normal">Firefox normal</p> -<p class="small">Firefox petit</p> -- -
p.normal {
- font-variant: normal;
-}
-p.small {
- font-variant: small-caps;
-}
-
-
-{{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/font-variant')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant', 'font-variant')}} | -{{Spec2('CSS3 Fonts')}} | -La propriété est désormais une propriété raccourcie pour les nouvelles propriétés font-variant-*. |
-
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-variant', 'font-variant')}} | -{{Spec2('CSS2.1')}} | -Aucun changement. | -
| {{SpecName('CSS1', '#font-variant', 'font-variant')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variant")}}
- -La propriété font-variant est une propriété raccourcie représentant les propriétés : {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-ligatures")}} et {{cssxref("font-variant-east-asian")}}. On peut aussi utiliser les valeurs de la propriété font-variant définies avec CSS Level 2 (normal ou small-caps), en utilisant la propriété raccourcie {{cssxref("font")}}.
font-variant: small-caps; +font-variant: common-ligatures small-caps; + +/* Valeurs globales */ +font-variant: inherit; +font-variant: initial; +font-variant: unset; ++ +
normalnormal. Ces propriétés sont {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-ligatures")}}, et {{cssxref("font-variant-east-asian")}}.nonenone et les valeurs des autres propriétés à normal, leur valeur initiale.common-ligatures,no-common-ligatures, discretionary-ligatures, no-discretionary-ligatures, historical-ligatures, no-historical-ligatures,contextual, et no-contextual.stylistic(), historical-forms, styleset(), character-variant(), swash(), ornaments(), annotation()small-caps, all-small-caps, petite-caps, all-petite-caps, unicase, titling-caps<numeric-figure-values>, <numeric-spacing-values>, <numeric-fraction-values>, ordinal, slashed-zerolining-nums, oldstyle-nums, proportional-nums, tabular-nums, diagonal-fractions, stacked-fractions, ordinal, et slashed-zero.<east-asian-variant-values>, <east-asian-width-values>, rubyjis78, jis83,jis90, jis04, simplified, traditional, full-width, proportional-width, ruby.<p class="normal">Firefox normal</p> +<p class="small">Firefox petit</p> ++ +
p.normal {
+ font-variant: normal;
+}
+p.small {
+ font-variant: small-caps;
+}
+
+
+{{EmbedLiveSample('Exemples', '', '', '', 'Web/CSS/font-variant')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#propdef-font-variant', 'font-variant')}} | +{{Spec2('CSS3 Fonts')}} | +La propriété est désormais une propriété raccourcie pour les nouvelles propriétés font-variant-*. |
+
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-variant', 'font-variant')}} | +{{Spec2('CSS2.1')}} | +Aucun changement. | +
| {{SpecName('CSS1', '#font-variant', 'font-variant')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variant")}}
+ +La propriété CSS font-variation-settings permet de contrôler les caractéristiques typographiques de bas niveau OpenType ou TrueType en utilisant les quatres lettres représentant les axes des caractéristiques qu'on souhaite faire varier, ainsi que les valeurs pour les variations associées.
Cette propriété fonctionne à un niveau plus bas que {{cssxref("font-feature-settings")}} qui permet de définir les valeurs et les étiquettes (tags) pour les caractéristiques des polices.
- -Note : Si possible, les auteurs web devraient utiliser d'autres méthodes pour contrôler l'affichage des polices de caractères et notamment la propriété raccourcie {{cssxref("font-variant")}} ou une des propriétés détaillée associée. Cette propriété est une fonctionnalité de bas niveau destinée à gérer les cas spécifiques pour lesquels il est autrement impossible d'activer ou de paramétrer une caractéristique OpenType existante.
Note : Les caractéristiques définies avec font-variation-settings l'emporteront sur celles définies par les autres propriétés relatives aux polices (ex. font-weight), où qu'elles soient dans la cascade. Pour certains navigateurs, cela se vérifie uniquement lorsque la déclaration @font-face inclut un intervalle font-weight.
/* Valeur pour les réglages par défaut */ -font-variation-settings: normal; - -/* Utilisation des valeurs */ -/* pour les axes OpenType */ -font-variation-settings: "XHGT" 0.7; - -/* Valeurs globales */ -font-variation-settings: inherit; -font-variation-settings: initial; -font-variation-settings: unset; -- -
La valeur de cette propriété peut être définie selon deux formes :
- -normal<string>) suivi d'un nombre (<number>). Ce motif peut être répété tant qu'une virgule sépare chacun des tuples.normal<string> <number><string> a plus ou moins de 4 caractères et contient des caractères en dehors de l'intervalle U+20 - U+7E, la propriété sera considérée comme invalide. La valeur numérique <number> n'est pas nécessairement entière et positive, ce peut être un nombre décimal ou un nombre négatif.Les axes des polices variables sont rangés selon deux catégories : les axes enregistrés et les axes spécifiques.
- -Les axes enregistrés représentent les variations les plus fréquemment utilisées. Si ces axes sont suffisamment fréquents pour avoir été standardisés, cela ne signifie pas qu'un créateur de police doive tous les gérer pour créer une police.
- -Voici la liste des axes enregistrés et les propriétés CSS correspondantes, qui permettent de jouer sur ces axes :
- -| Étiquette pour l'axe | -Propriété | -
|---|---|
| "wght" | -{{cssxref("font-weight")}} | -
| "wdth" | -{{cssxref("font-stretch")}} | -
| "slnt" (slant) | -{{cssxref("font-style")}}: oblique + angle |
-
| "ital" | -{{cssxref("font-style")}}: italic |
-
| "opsz" | -
- {{cssxref("font-optical-sizing")}} - |
-
Les axes spécifiques peuvent correspondre à n'importe quel axe que le concepteur de la police souhaite faire varier (ce peut par exemple être la hauteur des hampes et des jambages, la taille des empattements ou tout autre chose). N'importe quel axe peut être utilisé tant qu'il a une étiquette unique sur quatre caractères. Il est possible que, si des axes spécifiques deviennent majoritairement présents, ils soient intégrés parmi les axes enregistrés.
- -Note : Les étiquettes des axes enregistrés sont écrits en minuscules et les axes spécifiques doivent être écrits en majuscules. On notera que rien n'oblige à suivre cette règle et qu'il est tout à fait possible que des concepteurs de polices donnent des étiquettes en minuscules à des axes spécifiques. Quoiqu'il en soit, on retiendra que les étiquettes des axes sont sensibles à la casse.
-Attention : Afin de pouvoir utiliser les polices variables, votre système d'exploitation doit être à jour et votre navigateur doit prendre en charge ces fonctionnalités. Ainsi, les systèmes basés sur Linux requièrent la dernière version de Linux Freetype et les systèmes macOS antérieurs à 10.13 ne prennent pas en charge les polices variables.
-wght)L'exemple suivant peut être édité afin de voir l'effet de la modification des valeurs pour la graisse du texte.
- -slnt)L'exemple suivant peut être édite afin de voir l'effet de la modification des valeurs pour la pente (à ne pas confondre avec l'italique) du texte.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Fonts', '#low-level-font-variation-settings-control-the-font-variation-settings-property', 'font-variation-settings')}} | -{{Spec2('CSS4 Fonts')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-variation-settings")}}
- -La propriété CSS font-variation-settings permet de contrôler les caractéristiques typographiques de bas niveau OpenType ou TrueType en utilisant les quatres lettres représentant les axes des caractéristiques qu'on souhaite faire varier, ainsi que les valeurs pour les variations associées.
Cette propriété fonctionne à un niveau plus bas que {{cssxref("font-feature-settings")}} qui permet de définir les valeurs et les étiquettes (tags) pour les caractéristiques des polices.
+ +Note : Si possible, les auteurs web devraient utiliser d'autres méthodes pour contrôler l'affichage des polices de caractères et notamment la propriété raccourcie {{cssxref("font-variant")}} ou une des propriétés détaillée associée. Cette propriété est une fonctionnalité de bas niveau destinée à gérer les cas spécifiques pour lesquels il est autrement impossible d'activer ou de paramétrer une caractéristique OpenType existante.
Note : Les caractéristiques définies avec font-variation-settings l'emporteront sur celles définies par les autres propriétés relatives aux polices (ex. font-weight), où qu'elles soient dans la cascade. Pour certains navigateurs, cela se vérifie uniquement lorsque la déclaration @font-face inclut un intervalle font-weight.
/* Valeur pour les réglages par défaut */ +font-variation-settings: normal; + +/* Utilisation des valeurs */ +/* pour les axes OpenType */ +font-variation-settings: "XHGT" 0.7; + +/* Valeurs globales */ +font-variation-settings: inherit; +font-variation-settings: initial; +font-variation-settings: unset; ++ +
La valeur de cette propriété peut être définie selon deux formes :
+ +normal<string>) suivi d'un nombre (<number>). Ce motif peut être répété tant qu'une virgule sépare chacun des tuples.normal<string> <number><string> a plus ou moins de 4 caractères et contient des caractères en dehors de l'intervalle U+20 - U+7E, la propriété sera considérée comme invalide. La valeur numérique <number> n'est pas nécessairement entière et positive, ce peut être un nombre décimal ou un nombre négatif.Les axes des polices variables sont rangés selon deux catégories : les axes enregistrés et les axes spécifiques.
+ +Les axes enregistrés représentent les variations les plus fréquemment utilisées. Si ces axes sont suffisamment fréquents pour avoir été standardisés, cela ne signifie pas qu'un créateur de police doive tous les gérer pour créer une police.
+ +Voici la liste des axes enregistrés et les propriétés CSS correspondantes, qui permettent de jouer sur ces axes :
+ +| Étiquette pour l'axe | +Propriété | +
|---|---|
| "wght" | +{{cssxref("font-weight")}} | +
| "wdth" | +{{cssxref("font-stretch")}} | +
| "slnt" (slant) | +{{cssxref("font-style")}}: oblique + angle |
+
| "ital" | +{{cssxref("font-style")}}: italic |
+
| "opsz" | +
+ {{cssxref("font-optical-sizing")}} + |
+
Les axes spécifiques peuvent correspondre à n'importe quel axe que le concepteur de la police souhaite faire varier (ce peut par exemple être la hauteur des hampes et des jambages, la taille des empattements ou tout autre chose). N'importe quel axe peut être utilisé tant qu'il a une étiquette unique sur quatre caractères. Il est possible que, si des axes spécifiques deviennent majoritairement présents, ils soient intégrés parmi les axes enregistrés.
+ +Note : Les étiquettes des axes enregistrés sont écrits en minuscules et les axes spécifiques doivent être écrits en majuscules. On notera que rien n'oblige à suivre cette règle et qu'il est tout à fait possible que des concepteurs de polices donnent des étiquettes en minuscules à des axes spécifiques. Quoiqu'il en soit, on retiendra que les étiquettes des axes sont sensibles à la casse.
+Attention : Afin de pouvoir utiliser les polices variables, votre système d'exploitation doit être à jour et votre navigateur doit prendre en charge ces fonctionnalités. Ainsi, les systèmes basés sur Linux requièrent la dernière version de Linux Freetype et les systèmes macOS antérieurs à 10.13 ne prennent pas en charge les polices variables.
+wght)L'exemple suivant peut être édité afin de voir l'effet de la modification des valeurs pour la graisse du texte.
+ +slnt)L'exemple suivant peut être édite afin de voir l'effet de la modification des valeurs pour la pente (à ne pas confondre avec l'italique) du texte.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Fonts', '#low-level-font-variation-settings-control-the-font-variation-settings-property', 'font-variation-settings')}} | +{{Spec2('CSS4 Fonts')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-variation-settings")}}
+ +La propriété CSS font-weight permet de définir la graisse utilisée pour le texte. Les niveaux de graisse disponibles dépendent de la police (cf. {{cssxref("font-family")}}). Certaines fontes n'existent qu'avec les niveaux de graisses normal et bold.
/* Valeurs avec un mot-clé */ -font-weight: normal; -font-weight: bold; - -/* Valeurs relatives à l'élément parent */ -font-weight: lighter; -font-weight: bolder; - -/* Valeurs numériques */ -font-weight: 1; -font-weight: 100; -font-weight: 100.6; -font-weight: 123; -font-weight: 200; -font-weight: 300; -font-weight: 321; -font-weight: 400; -font-weight: 500; -font-weight: 600; -font-weight: 700; -font-weight: 800; -font-weight: 900; -font-weight: 1000; - -/* Valeurs globales */ -font-weight: inherit; -font-weight: initial; -font-weight: unset; -- -
La propriété font-weight peut être définie grâce à l'une des valeurs suivantes.
normal400.bold700.lighterbolder<number>normal et bold.Pour d'anciennes versions de la spécification, font-weight n'acceptait que les mots-clés et les valeurs numériques 100, 200, 300, 400, 500, 600, 700, 800 et 900. Les polices non-variables ne peuvent utiliser que ces valeurs (les valeurs plus fines seront converties cf. ci-après).
Le module de spécification CSS Fonts de niveau 4 a étendu la syntaxe afin de pouvoir utiliser n'importe quel nombre entre 1 et 1000. Cela permet aux polices variables d'avoir une meilleur précision quant aux tailles utilisables. On notera que cette fonctionnalité n'est pas encore prise en charge (à date de juin 2018) par tous les navigateurs.
- -Si une fonte avec la graisse demandée n'est pas disponible, le moteur suit la méthode suivante pour déterminer la fonte qui sera affichée :
- -500 est utilisé, c'est la graisse la plus sombre et la plus proche qui sera utilisée (la plus proche s'il n'y a pas de graisse plus forte)400 est utilisé, c'est la graisse la plus claire la plus proche qui est utilisée (la plus proche s'il n'y a pas de graisse plus claire)400 est utilisé, 500 sera utilisé. Si 500 n'est pas disponible, on utilisera la méthode de calcul sur un niveau inférieur à 400.500 est utilisé, 400 sera utilisé. Si 400 n'est pas disponible, on utilisera la méthode de calcul sur un niveau inférieur à 400.Autrement dit, pour les fontes dont les niveaux de graisse sont uniquement normal et bold, 100-500 seront considérés équivalents à normal et 600-900 à bold.
Lorsqu'on utilise les valeurs lighter ou bolder, on peut utiliser le tableau suivant pour calculer le poids absolu de l'élément :
| Valeur héritée | -bolder |
- lighter |
-
|---|---|---|
| 100 | -400 | -100 | -
| 200 | -400 | -100 | -
| 300 | -400 | -100 | -
| 400 | -700 | -100 | -
| 500 | -700 | -100 | -
| 600 | -900 | -400 | -
| 700 | -900 | -400 | -
| 800 | -900 | -700 | -
| 900 | -900 | -700 | -
Les valeurs allant de 100 à 900 correspondent environ aux noms suivants, communément utilisés pour désigner les variantes de fonte, selon la graisse, d'une même police (NdT : les noms sont laissés en anglais car généralement utilisés tels quels) :
- -| Valeur | -Nom communément utilisé | -
|---|---|
| 100 | -Thin (Hairline) | -
| 200 | -Extra Light (Ultra Light) | -
| 300 | -Light | -
| 400 | -Normal | -
| 500 | -Medium | -
| 600 | -Semi Bold (Demi Bold) | -
| 700 | -Bold | -
| 800 | -Extra Bold (Ultra Bold) | -
| 900 | -Black (Heavy) | -
Une valeur font-weight est interpolée de façon discrète (par multiple de 100). L'interpolation se produit sur des valeurs réelles puis la valeur est convertie au multiple de 100 le plus proche. Les valeurs à égale distance entre deux multiples de 100 sont arrondies à la valeur supérieure.
La plupart des polices possèdent des niveaux de graisses qui correspondent aux niveaux communément utilisés. Toutefois, certaines polices, appelées « polices variables » prennent en charge un intervalle de niveaux avec plus ou moins de détail, ce qui permet à l'éditeur du document de mieux contrôler la graisse utilisée.
- -Pour les polices variables TrueType ou OpenType, c'est l'axe de variation wght qui est utilisé afin d'implémenter les variations de largeur.
Pour que l'exemple suivant fonctionne, il est nécessaire d'utiliser un navigateur qui prend en charge la spécification CSS Fonts de niveau 4.
- -<header> - <input type="range" id="weight" name="weight" min="1" max="1000" /> - <label for="weight">Weight</label> -</header> -<div class="container"> - <p class="sample">...it would not be wonderful to meet a Megalosaurus, forty feet long or so, waddling like an elephantine lizard up Holborn Hill.</p> -</div> -- -
/*
-Mutator Sans is created by LettError (https://github.com/LettError/mutatorSans)
-and is used here under the terms of its license:
-https://github.com/LettError/mutatorSans/blob/master/LICENSE
-*/
-
-@font-face {
- src: url('https://mdn.mozillademos.org/files/16011/MutatorSans.ttf');
- font-family:'MutatorSans';
- font-style: normal;
-}
-
-label {
- font: 1rem monospace;
- white-space: nowrap;
-}
-
-.container {
- max-height: 150px;
- overflow-y: auto;
-}
-
-.sample {
- text-transform: uppercase;
- font: 1.5rem 'MutatorSans', sans-serif;
-}
-
-
-
-
-let weightLabel = document.querySelector('label[for="weight"]');
-let weightInput = document.querySelector('#weight');
-let sampleText = document.querySelector('.sample');
-
-function update() {
- weightLabel.textContent = `font-weight: ${weightInput.value};`;
- sampleText.style.fontWeight = weightInput.value;
-}
-
-weightInput.addEventListener('input', update);
-
-update();
-
-
-<p> - Alice was beginning to get very tired of sitting by her sister on the - bank, and of having nothing to do: once or twice she had peeped into the - book her sister was reading, but it had no pictures or conversations in - it, 'and what is the use of a book,' thought Alice 'without pictures or - conversations?' -</p> - -<div>I'm heavy<br/> - <span>I'm lighter</span> -</div> -- -
/* Le texte du paragraphe est gras. */
-p {
- font-weight: bold;
-}
-
-/* Le texte du div est deux niveaux plus sombres
- mais moins gras qu'une graisse normale. */
-div {
- font-weight: 600;
-}
-
-/* Le texte dans le span est un niveau plus
- clair que le parent. */
-span {
- font-weight: lighter;
-}
-
-{{EmbedLiveSample("Exemples","400","300")}}
- -Pour les personnes ayant une vision faible, il peut être extrêmement difficile de lire un texte avec font-weight qui vaut 100 ou 200, notamment si le contraste entre le texte et l'arrière-plan est faible.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Fonts', '#font-weight-prop', 'font-weight')}} | -{{Spec2('CSS4 Fonts')}} | -Définition de font-weight qui précise que la propriété peut utiliser des valeurs comprises entre 1 et 1000. |
-
| {{SpecName('CSS3 Fonts', '#font-weight-prop', 'font-weight')}} | -{{Spec2('CSS3 Fonts')}} | -Aucun changement. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'font-weight')}} | -{{Spec2('CSS3 Transitions')}} | -font-weight peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-weight', 'font-weight')}} | -{{Spec2('CSS2.1')}} | -Aucun changement. | -
| {{SpecName('CSS1', '#font-weight', 'font-weight')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font-weight")}}
diff --git a/files/fr/web/css/font-weight/index.md b/files/fr/web/css/font-weight/index.md new file mode 100644 index 0000000000..f31a368277 --- /dev/null +++ b/files/fr/web/css/font-weight/index.md @@ -0,0 +1,386 @@ +--- +title: font-weight +slug: Web/CSS/font-weight +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/font-weight +--- +La propriété CSS font-weight permet de définir la graisse utilisée pour le texte. Les niveaux de graisse disponibles dépendent de la police (cf. {{cssxref("font-family")}}). Certaines fontes n'existent qu'avec les niveaux de graisses normal et bold.
/* Valeurs avec un mot-clé */ +font-weight: normal; +font-weight: bold; + +/* Valeurs relatives à l'élément parent */ +font-weight: lighter; +font-weight: bolder; + +/* Valeurs numériques */ +font-weight: 1; +font-weight: 100; +font-weight: 100.6; +font-weight: 123; +font-weight: 200; +font-weight: 300; +font-weight: 321; +font-weight: 400; +font-weight: 500; +font-weight: 600; +font-weight: 700; +font-weight: 800; +font-weight: 900; +font-weight: 1000; + +/* Valeurs globales */ +font-weight: inherit; +font-weight: initial; +font-weight: unset; ++ +
La propriété font-weight peut être définie grâce à l'une des valeurs suivantes.
normal400.bold700.lighterbolder<number>normal et bold.Pour d'anciennes versions de la spécification, font-weight n'acceptait que les mots-clés et les valeurs numériques 100, 200, 300, 400, 500, 600, 700, 800 et 900. Les polices non-variables ne peuvent utiliser que ces valeurs (les valeurs plus fines seront converties cf. ci-après).
Le module de spécification CSS Fonts de niveau 4 a étendu la syntaxe afin de pouvoir utiliser n'importe quel nombre entre 1 et 1000. Cela permet aux polices variables d'avoir une meilleur précision quant aux tailles utilisables. On notera que cette fonctionnalité n'est pas encore prise en charge (à date de juin 2018) par tous les navigateurs.
+ +Si une fonte avec la graisse demandée n'est pas disponible, le moteur suit la méthode suivante pour déterminer la fonte qui sera affichée :
+ +500 est utilisé, c'est la graisse la plus sombre et la plus proche qui sera utilisée (la plus proche s'il n'y a pas de graisse plus forte)400 est utilisé, c'est la graisse la plus claire la plus proche qui est utilisée (la plus proche s'il n'y a pas de graisse plus claire)400 est utilisé, 500 sera utilisé. Si 500 n'est pas disponible, on utilisera la méthode de calcul sur un niveau inférieur à 400.500 est utilisé, 400 sera utilisé. Si 400 n'est pas disponible, on utilisera la méthode de calcul sur un niveau inférieur à 400.Autrement dit, pour les fontes dont les niveaux de graisse sont uniquement normal et bold, 100-500 seront considérés équivalents à normal et 600-900 à bold.
Lorsqu'on utilise les valeurs lighter ou bolder, on peut utiliser le tableau suivant pour calculer le poids absolu de l'élément :
| Valeur héritée | +bolder |
+ lighter |
+
|---|---|---|
| 100 | +400 | +100 | +
| 200 | +400 | +100 | +
| 300 | +400 | +100 | +
| 400 | +700 | +100 | +
| 500 | +700 | +100 | +
| 600 | +900 | +400 | +
| 700 | +900 | +400 | +
| 800 | +900 | +700 | +
| 900 | +900 | +700 | +
Les valeurs allant de 100 à 900 correspondent environ aux noms suivants, communément utilisés pour désigner les variantes de fonte, selon la graisse, d'une même police (NdT : les noms sont laissés en anglais car généralement utilisés tels quels) :
+ +| Valeur | +Nom communément utilisé | +
|---|---|
| 100 | +Thin (Hairline) | +
| 200 | +Extra Light (Ultra Light) | +
| 300 | +Light | +
| 400 | +Normal | +
| 500 | +Medium | +
| 600 | +Semi Bold (Demi Bold) | +
| 700 | +Bold | +
| 800 | +Extra Bold (Ultra Bold) | +
| 900 | +Black (Heavy) | +
Une valeur font-weight est interpolée de façon discrète (par multiple de 100). L'interpolation se produit sur des valeurs réelles puis la valeur est convertie au multiple de 100 le plus proche. Les valeurs à égale distance entre deux multiples de 100 sont arrondies à la valeur supérieure.
La plupart des polices possèdent des niveaux de graisses qui correspondent aux niveaux communément utilisés. Toutefois, certaines polices, appelées « polices variables » prennent en charge un intervalle de niveaux avec plus ou moins de détail, ce qui permet à l'éditeur du document de mieux contrôler la graisse utilisée.
+ +Pour les polices variables TrueType ou OpenType, c'est l'axe de variation wght qui est utilisé afin d'implémenter les variations de largeur.
Pour que l'exemple suivant fonctionne, il est nécessaire d'utiliser un navigateur qui prend en charge la spécification CSS Fonts de niveau 4.
+ +<header> + <input type="range" id="weight" name="weight" min="1" max="1000" /> + <label for="weight">Weight</label> +</header> +<div class="container"> + <p class="sample">...it would not be wonderful to meet a Megalosaurus, forty feet long or so, waddling like an elephantine lizard up Holborn Hill.</p> +</div> ++ +
/*
+Mutator Sans is created by LettError (https://github.com/LettError/mutatorSans)
+and is used here under the terms of its license:
+https://github.com/LettError/mutatorSans/blob/master/LICENSE
+*/
+
+@font-face {
+ src: url('https://mdn.mozillademos.org/files/16011/MutatorSans.ttf');
+ font-family:'MutatorSans';
+ font-style: normal;
+}
+
+label {
+ font: 1rem monospace;
+ white-space: nowrap;
+}
+
+.container {
+ max-height: 150px;
+ overflow-y: auto;
+}
+
+.sample {
+ text-transform: uppercase;
+ font: 1.5rem 'MutatorSans', sans-serif;
+}
+
+
+
+
+let weightLabel = document.querySelector('label[for="weight"]');
+let weightInput = document.querySelector('#weight');
+let sampleText = document.querySelector('.sample');
+
+function update() {
+ weightLabel.textContent = `font-weight: ${weightInput.value};`;
+ sampleText.style.fontWeight = weightInput.value;
+}
+
+weightInput.addEventListener('input', update);
+
+update();
+
+
+<p> + Alice was beginning to get very tired of sitting by her sister on the + bank, and of having nothing to do: once or twice she had peeped into the + book her sister was reading, but it had no pictures or conversations in + it, 'and what is the use of a book,' thought Alice 'without pictures or + conversations?' +</p> + +<div>I'm heavy<br/> + <span>I'm lighter</span> +</div> ++ +
/* Le texte du paragraphe est gras. */
+p {
+ font-weight: bold;
+}
+
+/* Le texte du div est deux niveaux plus sombres
+ mais moins gras qu'une graisse normale. */
+div {
+ font-weight: 600;
+}
+
+/* Le texte dans le span est un niveau plus
+ clair que le parent. */
+span {
+ font-weight: lighter;
+}
+
+{{EmbedLiveSample("Exemples","400","300")}}
+ +Pour les personnes ayant une vision faible, il peut être extrêmement difficile de lire un texte avec font-weight qui vaut 100 ou 200, notamment si le contraste entre le texte et l'arrière-plan est faible.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Fonts', '#font-weight-prop', 'font-weight')}} | +{{Spec2('CSS4 Fonts')}} | +Définition de font-weight qui précise que la propriété peut utiliser des valeurs comprises entre 1 et 1000. |
+
| {{SpecName('CSS3 Fonts', '#font-weight-prop', 'font-weight')}} | +{{Spec2('CSS3 Fonts')}} | +Aucun changement. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'font-weight')}} | +{{Spec2('CSS3 Transitions')}} | +font-weight peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'fonts.html#propdef-font-weight', 'font-weight')}} | +{{Spec2('CSS2.1')}} | +Aucun changement. | +
| {{SpecName('CSS1', '#font-weight', 'font-weight')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font-weight")}}
diff --git a/files/fr/web/css/font/index.html b/files/fr/web/css/font/index.html deleted file mode 100644 index 0b2d7f2356..0000000000 --- a/files/fr/web/css/font/index.html +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: font -slug: Web/CSS/font -tags: - - CSS - - Polices CSS - - Propriété - - Reference -translation_of: Web/CSS/font ---- -La propriété font est :
Comme pour les autres propriétés CSS, les valeurs qui ne sont pas définies avec la propriété raccourcie sont définies avec leur valeur initiale, ce qui peut surcharger les valeurs définies précédemment avec les propriétés « détaillées ». Bien qu'elles ne puissent pas directement être paramétrées avec font, les propriétés détaillées, {{cssxref("font-size-adjust")}}, et {{cssxref("font-kerning")}} sont également réinitialisées avec leurs valeurs initiales.
/* size | family */ -font: 2em "Open Sans", sans-serif; - -/* style | size | family */ -font: italic 2em "Open Sans", sans-serif; - -/* style | variant | weight | size/line-height | family */ -font: italic small-caps bolder 16px/3 cursive; - -/* style | variant | weight | stretch | size/line-height | family */ -font: italic small-caps bolder condensed 16px/3 cursive; - -/* Mots-clés indiquant la police à utiliser */ -/* pour les boîtes de dialogue système */ -font: message-box; -font: icon; - -/* Valeurs globales */ -font: inherit; -font: initial; -font: unset; -- -
La propriété font peut être définie avec un seul mot-clé (qui sélectionnera la police système à utiliser) ou comme propriété raccourcie pour paramétrer les différentes propriétés relatives aux polices.
Si font est définie grâce à un mot-clé, ce mot-clé doit être : caption, icon, menu, message-box, small-caption ou status-bar.
Si font est définie comme une propriété raccourcie :
font-style, font-variant et font-weight doivent précéder la valeur pour font-sizefont-variant ne peut utiliser que les valeurs définies en CSS 2.1 : normal et small-capsfont-stretch ne peut être qu'un mot-clé.line-height doit immédiatement suivre la valeur pour font-size, séparée par une barre oblique (par exemple "16px/3")font-family doit être la dernière fournie.<'font-style'><'font-variant'><'font-weight'><'font-stretch'><'font-size'><'line-height'><'font-family'>caption icon menu message-box small-caption status-barcaption |
- La police système utilisée pour les libellés des contrôles (par exemples les boutons, listes déroulantes, etc.). | -
icon |
- La police système utilisée pour les textes accompagnant les icônes. | -
menu |
- La police système utilisée pour les menus. | -
message-box |
- La police système utilisée dans les boîtes de dialogue. | -
small-caption |
- La police système utilisée pour les libellés des contrôles de petite taille. | -
status-bar |
- La police système utilisée dans les barres de statut de la fenêtre. | -
-moz-window, -moz-document, -moz-desktop, -moz-info, -moz-dialog, -moz-button, -moz-pull-down-menu, -moz-list and -moz-field./* La corps de la police sera 12px */
-/* La hauteur de ligne 14px et la */
-/* famille de polices sans-serif */
-
-.exemple1 {
- font: 12px/14px sans-serif;
-}
-
-/* La taille de la police mesurera */
-/* 80% de celle de l'élément parent */
-/* ou la valeur par défaut et la */
-/* famille de police sera sans-serif */
-
-.exemple2 {
- font: 80% sans-serif;
-}
-
-/* La graisse est activée, le style */
-/* est italique, la taille est grande */
-/* et la famille est serif. */
-
-.gras_italique_serif {
- font: bold italic large serif;
-}
-
-/* On utilise la même police que pour */
-/* la barre de statut de la fenêtre. */
-.statut {
- font: status-bar;
-}
-
-<p class="exemple1"> - « Toujours aussi mouillée, » dit Alice tristement. - « Je ne sèche que d’ennui. » -</p> - -<p class="exemple2"> - « Dans ce cas, » dit le Dodo avec emphase, se - dressant sur ses pattes, « je propose l’ajournement, - et l’adoption immédiate de mesures énergiques. » -</p> - -<p class="gras_italique_serif"> - « Parlez français, » dit l’Aiglon ; « je ne - comprends pas la moitié de ces grands mots, et, qui - plus est, je ne crois pas que vous les compreniez - vous-même. » L’Aiglon baissa la tête pour cacher - un sourire, et quelques-uns des autres oiseaux - ricanèrent tout haut. -</p> - -<p class="statut"> - « J’allais proposer, » dit le Dodo d’un ton vexé, - « une course cocasse ; c’est ce que nous pouvons - faire de mieux pour nous sécher. » -</p>- -
{{EmbedLiveSample("Exemples","300","500")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fonts', '#font-prop', 'font')}} | -{{Spec2('CSS3 Fonts')}} | -Prise en charge des valeurs de font-stretch. |
-
| {{SpecName('CSS2.1', 'fonts.html#font-shorthand', 'font-weight')}} | -{{Spec2('CSS2.1')}} | -Prise en charge des mots-clés. | -
| {{SpecName('CSS1', '#font', 'font')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.font")}}
diff --git a/files/fr/web/css/font/index.md b/files/fr/web/css/font/index.md new file mode 100644 index 0000000000..0b2d7f2356 --- /dev/null +++ b/files/fr/web/css/font/index.md @@ -0,0 +1,232 @@ +--- +title: font +slug: Web/CSS/font +tags: + - CSS + - Polices CSS + - Propriété + - Reference +translation_of: Web/CSS/font +--- +La propriété font est :
Comme pour les autres propriétés CSS, les valeurs qui ne sont pas définies avec la propriété raccourcie sont définies avec leur valeur initiale, ce qui peut surcharger les valeurs définies précédemment avec les propriétés « détaillées ». Bien qu'elles ne puissent pas directement être paramétrées avec font, les propriétés détaillées, {{cssxref("font-size-adjust")}}, et {{cssxref("font-kerning")}} sont également réinitialisées avec leurs valeurs initiales.
/* size | family */ +font: 2em "Open Sans", sans-serif; + +/* style | size | family */ +font: italic 2em "Open Sans", sans-serif; + +/* style | variant | weight | size/line-height | family */ +font: italic small-caps bolder 16px/3 cursive; + +/* style | variant | weight | stretch | size/line-height | family */ +font: italic small-caps bolder condensed 16px/3 cursive; + +/* Mots-clés indiquant la police à utiliser */ +/* pour les boîtes de dialogue système */ +font: message-box; +font: icon; + +/* Valeurs globales */ +font: inherit; +font: initial; +font: unset; ++ +
La propriété font peut être définie avec un seul mot-clé (qui sélectionnera la police système à utiliser) ou comme propriété raccourcie pour paramétrer les différentes propriétés relatives aux polices.
Si font est définie grâce à un mot-clé, ce mot-clé doit être : caption, icon, menu, message-box, small-caption ou status-bar.
Si font est définie comme une propriété raccourcie :
font-style, font-variant et font-weight doivent précéder la valeur pour font-sizefont-variant ne peut utiliser que les valeurs définies en CSS 2.1 : normal et small-capsfont-stretch ne peut être qu'un mot-clé.line-height doit immédiatement suivre la valeur pour font-size, séparée par une barre oblique (par exemple "16px/3")font-family doit être la dernière fournie.<'font-style'><'font-variant'><'font-weight'><'font-stretch'><'font-size'><'line-height'><'font-family'>caption icon menu message-box small-caption status-barcaption |
+ La police système utilisée pour les libellés des contrôles (par exemples les boutons, listes déroulantes, etc.). | +
icon |
+ La police système utilisée pour les textes accompagnant les icônes. | +
menu |
+ La police système utilisée pour les menus. | +
message-box |
+ La police système utilisée dans les boîtes de dialogue. | +
small-caption |
+ La police système utilisée pour les libellés des contrôles de petite taille. | +
status-bar |
+ La police système utilisée dans les barres de statut de la fenêtre. | +
-moz-window, -moz-document, -moz-desktop, -moz-info, -moz-dialog, -moz-button, -moz-pull-down-menu, -moz-list and -moz-field./* La corps de la police sera 12px */
+/* La hauteur de ligne 14px et la */
+/* famille de polices sans-serif */
+
+.exemple1 {
+ font: 12px/14px sans-serif;
+}
+
+/* La taille de la police mesurera */
+/* 80% de celle de l'élément parent */
+/* ou la valeur par défaut et la */
+/* famille de police sera sans-serif */
+
+.exemple2 {
+ font: 80% sans-serif;
+}
+
+/* La graisse est activée, le style */
+/* est italique, la taille est grande */
+/* et la famille est serif. */
+
+.gras_italique_serif {
+ font: bold italic large serif;
+}
+
+/* On utilise la même police que pour */
+/* la barre de statut de la fenêtre. */
+.statut {
+ font: status-bar;
+}
+
+<p class="exemple1"> + « Toujours aussi mouillée, » dit Alice tristement. + « Je ne sèche que d’ennui. » +</p> + +<p class="exemple2"> + « Dans ce cas, » dit le Dodo avec emphase, se + dressant sur ses pattes, « je propose l’ajournement, + et l’adoption immédiate de mesures énergiques. » +</p> + +<p class="gras_italique_serif"> + « Parlez français, » dit l’Aiglon ; « je ne + comprends pas la moitié de ces grands mots, et, qui + plus est, je ne crois pas que vous les compreniez + vous-même. » L’Aiglon baissa la tête pour cacher + un sourire, et quelques-uns des autres oiseaux + ricanèrent tout haut. +</p> + +<p class="statut"> + « J’allais proposer, » dit le Dodo d’un ton vexé, + « une course cocasse ; c’est ce que nous pouvons + faire de mieux pour nous sécher. » +</p>+ +
{{EmbedLiveSample("Exemples","300","500")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fonts', '#font-prop', 'font')}} | +{{Spec2('CSS3 Fonts')}} | +Prise en charge des valeurs de font-stretch. |
+
| {{SpecName('CSS2.1', 'fonts.html#font-shorthand', 'font-weight')}} | +{{Spec2('CSS2.1')}} | +Prise en charge des mots-clés. | +
| {{SpecName('CSS1', '#font', 'font')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.font")}}
diff --git a/files/fr/web/css/forced-color-adjust/index.html b/files/fr/web/css/forced-color-adjust/index.html deleted file mode 100644 index 6ce5f780c3..0000000000 --- a/files/fr/web/css/forced-color-adjust/index.html +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: forced-color-adjust -slug: Web/CSS/forced-color-adjust -browser-compat: css.properties.forced-color-adjust -translation_of: 'Web/CSS/forced-color-adjust' ---- -La propriété CSS forced-color-adjust permet aux auteurs de ne pas activer les modes de couleurs forcées sur certains éléments. Cela restaure la possibilité de contrôler ces valeurs en CSS.
forced-color-adjust: auto; -forced-color-adjust: none; - -/* Valeurs globales */ -forced-color-adjust: inherit; -forced-color-adjust: initial; -forced-color-adjust: revert; -forced-color-adjust: unset;- -
La valeur de la propriété forced-color-adjust doit être l'un des mots-clés suivants.
autononeCette propriété ne devrait être utilisée que pour faire des modifications qui prendront en charge les pré-requis de couleurs et de contrastes. Par exemple, si vous savez que les optimisations de couleur faites par l'{{Glossary("user agent", "agent utilisateur")}} conduisent à une mauvaise expérience en mode contrasté ou en mode sombre. L'utilisation de cette propriété vous permettra alors de modifier le résultat dans ce mode pour proposer une meilleure expérience. Elle ne devrait pas être utilisée dans le but d'empêcher les choix de l'utilisateur d'être respectés.
- -Cette propriété est une version standard de la propriété -ms-high-contrast-adjust (en anglais). La propriété préfixée peut être utilisée pour obtenir un résultat similaire sur Internet Explorer 10 et sur les versions EdgeHTML de Microsoft Edge.
{{cssinfo}}
- -{{csssyntax}}
- -Dans l'exemple ci-dessous, la première boîte utilise le jeu de couleur définit par l'utilisateur. Par exemple, dans le mode à forts contrastes sombre de Windows, cela donnera du texte blanc sur fond noir. La seconde boîte conservera quant à elle les couleurs du site définies par la classe .box.
En utilisant la fonctionnalité média forced-colors, vous pouvez ajouter n'importe qu'elle autre optimisation pour le mode de couleurs forcées aux côtés de la propriété forced-color-adjust.
.box {
- border: 5px solid grey;
- background-color: #ccc;
- width: 300px;
- margin: 20px;
- padding: 10px;
-}
-
-@media (forced-colors: active) {
- .forced {
- forced-color-adjust: none;
- }
-}
-
-<div class="box"> - <p>Voici une boîte qui utilisera vos préférences de couleurs.</p> -</div> - -<div class="box forced"> - <p>Voici une boîte qui conservera les couleurs définies par le site.</p> -</div>- -
{{EmbedLiveSample("preserving_colors", 640, 260)}}
- -
-
-{{Specifications}}
- -{{Compat}}
- -La propriété CSS forced-color-adjust permet aux auteurs de ne pas activer les modes de couleurs forcées sur certains éléments. Cela restaure la possibilité de contrôler ces valeurs en CSS.
forced-color-adjust: auto; +forced-color-adjust: none; + +/* Valeurs globales */ +forced-color-adjust: inherit; +forced-color-adjust: initial; +forced-color-adjust: revert; +forced-color-adjust: unset;+ +
La valeur de la propriété forced-color-adjust doit être l'un des mots-clés suivants.
autononeCette propriété ne devrait être utilisée que pour faire des modifications qui prendront en charge les pré-requis de couleurs et de contrastes. Par exemple, si vous savez que les optimisations de couleur faites par l'{{Glossary("user agent", "agent utilisateur")}} conduisent à une mauvaise expérience en mode contrasté ou en mode sombre. L'utilisation de cette propriété vous permettra alors de modifier le résultat dans ce mode pour proposer une meilleure expérience. Elle ne devrait pas être utilisée dans le but d'empêcher les choix de l'utilisateur d'être respectés.
+ +Cette propriété est une version standard de la propriété -ms-high-contrast-adjust (en anglais). La propriété préfixée peut être utilisée pour obtenir un résultat similaire sur Internet Explorer 10 et sur les versions EdgeHTML de Microsoft Edge.
{{cssinfo}}
+ +{{csssyntax}}
+ +Dans l'exemple ci-dessous, la première boîte utilise le jeu de couleur définit par l'utilisateur. Par exemple, dans le mode à forts contrastes sombre de Windows, cela donnera du texte blanc sur fond noir. La seconde boîte conservera quant à elle les couleurs du site définies par la classe .box.
En utilisant la fonctionnalité média forced-colors, vous pouvez ajouter n'importe qu'elle autre optimisation pour le mode de couleurs forcées aux côtés de la propriété forced-color-adjust.
.box {
+ border: 5px solid grey;
+ background-color: #ccc;
+ width: 300px;
+ margin: 20px;
+ padding: 10px;
+}
+
+@media (forced-colors: active) {
+ .forced {
+ forced-color-adjust: none;
+ }
+}
+
+<div class="box"> + <p>Voici une boîte qui utilisera vos préférences de couleurs.</p> +</div> + +<div class="box forced"> + <p>Voici une boîte qui conservera les couleurs définies par le site.</p> +</div>+ +
{{EmbedLiveSample("preserving_colors", 640, 260)}}
+ +
+
+{{Specifications}}
+ +{{Compat}}
+ +Le type de donnée <frequency-percentage> représente une valeur qui peut être une valeur de type {{Cssxref("frequency")}} ou une valeur de type {{Cssxref("percentage")}}.
Se référer à la documentation des types {{Cssxref("frequency")}} et {{Cssxref("percentage")}} pour plus de détails sur les syntaxes possibles avec chacun de ces types.
- -calc()Lorsqu'une valeur de type <frequency-percentage> peut être utilisée dans une déclaration, cela signifie que le pourcentage sera résolu comme une fréquence et qu'il peut alors être utilisé dans une expression calc().
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#mixed-percentages', '<frequency-percentage>')}} | -{{Spec2('CSS4 Values')}} | -- |
| {{SpecName('CSS3 Values', '#mixed-percentages', '<frequency-percentage>')}} | -{{Spec2('CSS3 Values')}} | -Définition du type <frequency-percentage>. Ajout de calc() |
-
{{Compat("css.types.frequency-percentage")}}
diff --git a/files/fr/web/css/frequency-percentage/index.md b/files/fr/web/css/frequency-percentage/index.md new file mode 100644 index 0000000000..a09e6817fd --- /dev/null +++ b/files/fr/web/css/frequency-percentage/index.md @@ -0,0 +1,48 @@ +--- +title:Le type de donnée <frequency-percentage> représente une valeur qui peut être une valeur de type {{Cssxref("frequency")}} ou une valeur de type {{Cssxref("percentage")}}.
Se référer à la documentation des types {{Cssxref("frequency")}} et {{Cssxref("percentage")}} pour plus de détails sur les syntaxes possibles avec chacun de ces types.
+ +calc()Lorsqu'une valeur de type <frequency-percentage> peut être utilisée dans une déclaration, cela signifie que le pourcentage sera résolu comme une fréquence et qu'il peut alors être utilisé dans une expression calc().
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#mixed-percentages', '<frequency-percentage>')}} | +{{Spec2('CSS4 Values')}} | ++ |
| {{SpecName('CSS3 Values', '#mixed-percentages', '<frequency-percentage>')}} | +{{Spec2('CSS3 Values')}} | +Définition du type <frequency-percentage>. Ajout de calc() |
+
{{Compat("css.types.frequency-percentage")}}
diff --git a/files/fr/web/css/frequency/index.html b/files/fr/web/css/frequency/index.html deleted file mode 100644 index f59efc67ae..0000000000 --- a/files/fr/web/css/frequency/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title:Le type de donnée CSS <frequency> permet de représenter des fréquences (par exemple la hauteur d'une voie). Ce type n'est actuellement utilisé pour aucune propriété CSS.
Une valeur de type <frequency> se compose d'une valeur {{cssxref("<number>")}} suivi immédiatement d'une unité de fréquence. Comme pour les autres dimensions CSS, il n'y a pas d'espace entre le nombre et le littéral de l'unité.
Hz0Hz, 1500Hz, 10000Hz)kHz0kHz, 1.5kHz, 10kHz).Bien que la valeur nulle puisse être représentée avec le même littéral pour les deux unités, l'unité ne doit pas être absente sinon la valeur sera interprétée comme une valeur de longueur (type {{cssxref("length")}}) et ne représentera ni 0Hz ni 0kHz. Bien que les unités CSS soient insensibles à la casse, c'est une bonne pratique que d'utiliser un H majuscule pour Hz et kHz car selon le système international, Hertz est un nom de famille.
12Hz Entier positif -4.3Hz Flottant -14KhZ Unité insensible à la casse -+0Hz Zero avec un signe + et une unité --0kHz Zero avec un signe - et une unité- -
12.0 Cette valeur est un nombre pas une fréquence (il manque l'unité). -7 Hz Aucun espace n'est autorisé entre le nombre et l'unité. -0 Bien qu'un zéro puisse être utilisé sans unité pour une longueur, ce n'est pas le cas pour une fréquence.- -
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Values', '#frequency', '<frequency>')}} | -{{Spec2('CSS3 Values')}} | -Définition initiale. | -
Ce type de donnés fut initialement introduit avec la spécification CSS Niveau 2 pour le groupe de média aural qui est désormais obsolète. Ce type de données a donc été déprécié puis réintroduit avec CSS3 bien qu'aucune propriété ne l'utilise à l'heure actuelle.
- -{{Compat("css.types.frequency")}}
diff --git a/files/fr/web/css/frequency/index.md b/files/fr/web/css/frequency/index.md new file mode 100644 index 0000000000..f59efc67ae --- /dev/null +++ b/files/fr/web/css/frequency/index.md @@ -0,0 +1,68 @@ +--- +title:Le type de donnée CSS <frequency> permet de représenter des fréquences (par exemple la hauteur d'une voie). Ce type n'est actuellement utilisé pour aucune propriété CSS.
Une valeur de type <frequency> se compose d'une valeur {{cssxref("<number>")}} suivi immédiatement d'une unité de fréquence. Comme pour les autres dimensions CSS, il n'y a pas d'espace entre le nombre et le littéral de l'unité.
Hz0Hz, 1500Hz, 10000Hz)kHz0kHz, 1.5kHz, 10kHz).Bien que la valeur nulle puisse être représentée avec le même littéral pour les deux unités, l'unité ne doit pas être absente sinon la valeur sera interprétée comme une valeur de longueur (type {{cssxref("length")}}) et ne représentera ni 0Hz ni 0kHz. Bien que les unités CSS soient insensibles à la casse, c'est une bonne pratique que d'utiliser un H majuscule pour Hz et kHz car selon le système international, Hertz est un nom de famille.
12Hz Entier positif +4.3Hz Flottant +14KhZ Unité insensible à la casse ++0Hz Zero avec un signe + et une unité +-0kHz Zero avec un signe - et une unité+ +
12.0 Cette valeur est un nombre pas une fréquence (il manque l'unité). +7 Hz Aucun espace n'est autorisé entre le nombre et l'unité. +0 Bien qu'un zéro puisse être utilisé sans unité pour une longueur, ce n'est pas le cas pour une fréquence.+ +
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Values', '#frequency', '<frequency>')}} | +{{Spec2('CSS3 Values')}} | +Définition initiale. | +
Ce type de donnés fut initialement introduit avec la spécification CSS Niveau 2 pour le groupe de média aural qui est désormais obsolète. Ce type de données a donc été déprécié puis réintroduit avec CSS3 bien qu'aucune propriété ne l'utilise à l'heure actuelle.
+ +{{Compat("css.types.frequency")}}
diff --git a/files/fr/web/css/gap/index.html b/files/fr/web/css/gap/index.html deleted file mode 100644 index a4e27262ac..0000000000 --- a/files/fr/web/css/gap/index.html +++ /dev/null @@ -1,222 +0,0 @@ ---- -title: gap (grid-gap) -slug: Web/CSS/gap -tags: - - CSS - - Propriété - - Propriété raccourcie - - Reference -translation_of: Web/CSS/gap ---- -La propriété gap est une propriété raccourcie pour {{cssxref("row-gap")}} et {{cssxref("column-gap")}} qui permet de définir les espaces entre les lignes et entre les colonnes d'une grille.
Note : La propriété {{cssxref("grid-gap")}} a initialement été définie dans le module de spécification CSS Grid Layout. Cette version préfixée a été remplacée par gap. Toutefois, à des fins de compatibilité envers les navigateurs qui n'implémentent pas encore la version non-préfixée, mieux vaut utiliser les deux versions.
/* Une valeur de longueur */ -/* Type <length> */ -gap: 20px; -gap: 1em; -gap: 3vmin; -gap: 0.5cm; - -/* Une valeur proportionnelle */ -/* Type <percentage> */ -gap: 16%; -gap: 100%; - -/* Deux valeurs de longueur */ -gap: 20px 10px; -gap: 1em 0.5em; -gap: 3vmin 2vmax; -gap: 0.5cm 2mm; - -/* Une ou deux valeurs proportionnelles */ -/* Type <percentage> */ -gap: 16% 100%; -gap: 21px 82%; - -/* Valeurs calc() */ -gap: calc(10% + 20px); -gap: calc(20px + 10%) calc(10% - 5px); - -/* Valeurs globales */ -gap: inherit; -gap: initial; -gap: unset; -- -
Cette propriété est définie avec une valeur <'row-gap'>, éventuellement suivi d'une valeur <'column-gap'>. Si <'column-gap'> n'est pas utilisée, la valeur utilisée sera la même que <'row-gap'>.
<'row-gap'> et <'column-gap'> sont des valeurs de type <length> ou <percentage>.
<length><percentage>{{SeeCompatTable}}
- -<div id="flexbox"> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> -</div> -- -
#flexbox {
- display: flex;
- flex-wrap: wrap;
- width: 300px;
- gap: 20px 5px;
-}
-
-#flexbox > div {
- border: 1px solid green;
- background-color: lime;
- flex: 1 1 auto;
- width: 100px;
- height: 50px;
-
-}
-
-
-{{EmbedLiveSample("Disposition_flexible", "auto", "120px")}}
- -<div id="grid"> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> -</div>- -
#grid {
- display: grid;
- height: 200px;
- grid-template: repeat(3, 1fr) / repeat(3, 1fr);
- gap: 20px 5px;
-}
-
-#grid > div {
- border: 1px solid green;
- background-color: lime;
-}
-
-
-{{EmbedLiveSample("Grilles_CSS", "auto", "120px")}}
- -<p class="content-box"> - voici un texte en multi-colonne sur des colonnes avec - une gouttière de 40 pixels créée grâce à la propriété - CSS <code>gap</code>. Est-ce que c'est pas trop génial ? -</p> -- -
.content-box {
- column-count: 3;
- gap: 40px;
-}
-
-
-{{EmbedLiveSample("Multi-column_layout", "auto", "120px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-gap", "gap")}} | -{{Spec2("CSS3 Box Alignment")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.gap.flex_context")}}
- -{{Compat("css.properties.gap.grid_context")}}
- -{{Compat("css.properties.gap.multicol_context")}}
- -La propriété gap est une propriété raccourcie pour {{cssxref("row-gap")}} et {{cssxref("column-gap")}} qui permet de définir les espaces entre les lignes et entre les colonnes d'une grille.
Note : La propriété {{cssxref("grid-gap")}} a initialement été définie dans le module de spécification CSS Grid Layout. Cette version préfixée a été remplacée par gap. Toutefois, à des fins de compatibilité envers les navigateurs qui n'implémentent pas encore la version non-préfixée, mieux vaut utiliser les deux versions.
/* Une valeur de longueur */ +/* Type <length> */ +gap: 20px; +gap: 1em; +gap: 3vmin; +gap: 0.5cm; + +/* Une valeur proportionnelle */ +/* Type <percentage> */ +gap: 16%; +gap: 100%; + +/* Deux valeurs de longueur */ +gap: 20px 10px; +gap: 1em 0.5em; +gap: 3vmin 2vmax; +gap: 0.5cm 2mm; + +/* Une ou deux valeurs proportionnelles */ +/* Type <percentage> */ +gap: 16% 100%; +gap: 21px 82%; + +/* Valeurs calc() */ +gap: calc(10% + 20px); +gap: calc(20px + 10%) calc(10% - 5px); + +/* Valeurs globales */ +gap: inherit; +gap: initial; +gap: unset; ++ +
Cette propriété est définie avec une valeur <'row-gap'>, éventuellement suivi d'une valeur <'column-gap'>. Si <'column-gap'> n'est pas utilisée, la valeur utilisée sera la même que <'row-gap'>.
<'row-gap'> et <'column-gap'> sont des valeurs de type <length> ou <percentage>.
<length><percentage>{{SeeCompatTable}}
+ +<div id="flexbox"> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> +</div> ++ +
#flexbox {
+ display: flex;
+ flex-wrap: wrap;
+ width: 300px;
+ gap: 20px 5px;
+}
+
+#flexbox > div {
+ border: 1px solid green;
+ background-color: lime;
+ flex: 1 1 auto;
+ width: 100px;
+ height: 50px;
+
+}
+
+
+{{EmbedLiveSample("Disposition_flexible", "auto", "120px")}}
+ +<div id="grid"> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> +</div>+ +
#grid {
+ display: grid;
+ height: 200px;
+ grid-template: repeat(3, 1fr) / repeat(3, 1fr);
+ gap: 20px 5px;
+}
+
+#grid > div {
+ border: 1px solid green;
+ background-color: lime;
+}
+
+
+{{EmbedLiveSample("Grilles_CSS", "auto", "120px")}}
+ +<p class="content-box"> + voici un texte en multi-colonne sur des colonnes avec + une gouttière de 40 pixels créée grâce à la propriété + CSS <code>gap</code>. Est-ce que c'est pas trop génial ? +</p> ++ +
.content-box {
+ column-count: 3;
+ gap: 40px;
+}
+
+
+{{EmbedLiveSample("Multi-column_layout", "auto", "120px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-gap", "gap")}} | +{{Spec2("CSS3 Box Alignment")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.gap.flex_context")}}
+ +{{Compat("css.properties.gap.grid_context")}}
+ +{{Compat("css.properties.gap.multicol_context")}}
+ +Le combinateur ~ permet de séparer deux sélecteurs et de cibler un élément si celui-ci correspond au second sélecteur et est précédé (mais pas forcément voisin immédiat) d'un autre élément correspondant au premier sélecteur qui partage le même parent. Les deux éléments sont des fils d'un même parent {{domxref("Element")}}, voisins immédiats ou pas.
/* Parmi tous les éléments <img>, cibler tous
- éléments <p> qui les suivent. */
-img ~ p {
- color: red;
-}
-
-premier_element ~ second_element { propriétés de style }
-
-
-p ~ span {
- color: red;
-}
-
-<span>Ici, ce n'est pas rouge.</span> -<p>Voici un paragraphe.</p> -<code>Un peu de code.</code> -<span>Et un autre span.</span> -<code>Encore du code</code> -<span>Ici aussi, c'est rouge</span>- -
{{EmbedLiveSample('Exemples', 280, 120)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Selectors', '#general-sibling-combinators', 'following-sibling combinator')}} | -{{Spec2('CSS4 Selectors')}} | -Ce combinateur est renommé en « subsequent-sibling combinator ». | -
| {{SpecName('CSS3 Selectors', '#general-sibling-combinators', 'general sibling combinator')}} | -{{Spec2('CSS3 Selectors')}} | -Définition initiale. | -
{{Compat("css.selectors.general_sibling")}}
- -Le combinateur ~ permet de séparer deux sélecteurs et de cibler un élément si celui-ci correspond au second sélecteur et est précédé (mais pas forcément voisin immédiat) d'un autre élément correspondant au premier sélecteur qui partage le même parent. Les deux éléments sont des fils d'un même parent {{domxref("Element")}}, voisins immédiats ou pas.
/* Parmi tous les éléments <img>, cibler tous
+ éléments <p> qui les suivent. */
+img ~ p {
+ color: red;
+}
+
+premier_element ~ second_element { propriétés de style }
+
+
+p ~ span {
+ color: red;
+}
+
+<span>Ici, ce n'est pas rouge.</span> +<p>Voici un paragraphe.</p> +<code>Un peu de code.</code> +<span>Et un autre span.</span> +<code>Encore du code</code> +<span>Ici aussi, c'est rouge</span>+ +
{{EmbedLiveSample('Exemples', 280, 120)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Selectors', '#general-sibling-combinators', 'following-sibling combinator')}} | +{{Spec2('CSS4 Selectors')}} | +Ce combinateur est renommé en « subsequent-sibling combinator ». | +
| {{SpecName('CSS3 Selectors', '#general-sibling-combinators', 'general sibling combinator')}} | +{{Spec2('CSS3 Selectors')}} | +Définition initiale. | +
{{Compat("css.selectors.general_sibling")}}
+ +Le type de donnée CSS <gradient> permet de représenter une {{cssxref("<image>")}} contenant un dégradé entre deux ou plusieurs couleurs. Un dégradé CSS n'est pas une couleur CSS (type {{cssxref("<color>")}}) mais une image sans dimension intrinsèque (elle n'a aucune taille naturelle ou ratio), sa taille réelle sera celle de l'élément auquel elle est appliquée.
Comme pour l'interpolation des autres couleurs, les dégradés sont calculés dans l'espace de couleurs alpha prémultiplié. Cela permet d'éviter l'apparition de nuances de gris lorsque la couleur et l'opacité varient (on peut constater ce problème avec le mot-clé transparent dans d'anciens navigateurs).
Ils sont générés à partir de la fonction {{cssxref("linear-gradient", "linear-gradient()")}} : la couleur évolue suivant un axe imaginaire :
- - - -body {
- background: -moz-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
- background: -webkit-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
- background: -ms-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
- background: -o-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
- background: linear-gradient(to right,red,orange,yellow, green, blue,indigo,violet);
-}
-
-{{EmbedLiveSample('Les_dégradés_linéaires', 600, 20)}}
- -Ils sont générés à partir de la fonction {{cssxref("radial-gradient", "radial-gradient()")}}. Plus on s'éloigne du point d'origine, plus la couleur varie par rapport à la couleur d'origine :
- - - -body {
- background: -moz-radial-gradient(red, yellow, rgb(30, 144, 255)) repeat scroll 0% 0% transparent;
- background: radial-gradient(red, yellow, rgb(30, 144, 255));
-}
-
-
-{{EmbedLiveSample('Les_dégradés_radiaux', 600, 20)}}
- -Ce sont des dégradés linéaires de taille fixe ou des dégradés radiaux qui sont répétés autant que nécessaire pour remplir la boîte visée :
- - - -body {
- background: -moz-repeating-linear-gradient(top left -45deg, red, red 5px, white 5px, white 10px);
- background: repeating-linear-gradient(to top left, red, red 5px, white 5px, white 10px);
-}
-
-{{EmbedLiveSample('Les_dégradés_répétés', 600, 20)}}
- -Les couleurs de transitions s'appliquent progressivement autour d'un cercle. Un tel dégradé est généré avec la fonction {{cssref("conic-gradient","conic-gradient()")}}.
- - - - - -.conic-gradient {
- background: conic-gradient(lightpink, white, powderblue);
-}
-
-
-{{EmbedLiveSample('dégradé_conique', 240, 80)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Images', '#gradients', '<gradient>')}} | -{{Spec2('CSS3 Images')}} | -Définition initiale. | -
| {{SpecName('CSS4 Images', '#gradients', '<gradient>')}} | -{{Spec2('CSS4 Images')}} | -Ajout des dégradés coniques. | -
{{Compat("css.types.image.gradient")}}
- -Le type de donnée CSS <gradient> permet de représenter une {{cssxref("<image>")}} contenant un dégradé entre deux ou plusieurs couleurs. Un dégradé CSS n'est pas une couleur CSS (type {{cssxref("<color>")}}) mais une image sans dimension intrinsèque (elle n'a aucune taille naturelle ou ratio), sa taille réelle sera celle de l'élément auquel elle est appliquée.
Comme pour l'interpolation des autres couleurs, les dégradés sont calculés dans l'espace de couleurs alpha prémultiplié. Cela permet d'éviter l'apparition de nuances de gris lorsque la couleur et l'opacité varient (on peut constater ce problème avec le mot-clé transparent dans d'anciens navigateurs).
Ils sont générés à partir de la fonction {{cssxref("linear-gradient", "linear-gradient()")}} : la couleur évolue suivant un axe imaginaire :
+ + + +body {
+ background: -moz-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
+ background: -webkit-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
+ background: -ms-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
+ background: -o-linear-gradient(left,red,orange,yellow, green, blue,indigo,violet);
+ background: linear-gradient(to right,red,orange,yellow, green, blue,indigo,violet);
+}
+
+{{EmbedLiveSample('Les_dégradés_linéaires', 600, 20)}}
+ +Ils sont générés à partir de la fonction {{cssxref("radial-gradient", "radial-gradient()")}}. Plus on s'éloigne du point d'origine, plus la couleur varie par rapport à la couleur d'origine :
+ + + +body {
+ background: -moz-radial-gradient(red, yellow, rgb(30, 144, 255)) repeat scroll 0% 0% transparent;
+ background: radial-gradient(red, yellow, rgb(30, 144, 255));
+}
+
+
+{{EmbedLiveSample('Les_dégradés_radiaux', 600, 20)}}
+ +Ce sont des dégradés linéaires de taille fixe ou des dégradés radiaux qui sont répétés autant que nécessaire pour remplir la boîte visée :
+ + + +body {
+ background: -moz-repeating-linear-gradient(top left -45deg, red, red 5px, white 5px, white 10px);
+ background: repeating-linear-gradient(to top left, red, red 5px, white 5px, white 10px);
+}
+
+{{EmbedLiveSample('Les_dégradés_répétés', 600, 20)}}
+ +Les couleurs de transitions s'appliquent progressivement autour d'un cercle. Un tel dégradé est généré avec la fonction {{cssref("conic-gradient","conic-gradient()")}}.
+ + + + + +.conic-gradient {
+ background: conic-gradient(lightpink, white, powderblue);
+}
+
+
+{{EmbedLiveSample('dégradé_conique', 240, 80)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Images', '#gradients', '<gradient>')}} | +{{Spec2('CSS3 Images')}} | +Définition initiale. | +
| {{SpecName('CSS4 Images', '#gradients', '<gradient>')}} | +{{Spec2('CSS4 Images')}} | +Ajout des dégradés coniques. | +
{{Compat("css.types.image.gradient")}}
+ +La propriété grid-area est une propriété raccourcie pour {{cssxref("grid-row-start")}}, {{cssxref("grid-column-start")}}, {{cssxref("grid-row-end")}} et {{cssxref("grid-column-end")}} qui permet de définir la taille d'un objet de la grille et son emplacement via les bords de sa zone de grille.
Si quatre valeurs <grid-line> sont fournies, la première sera appliquée à grid-row-start, la deuxième à grid-column-start, la troisième à grid-row-end et la quatrième à grid-column-end.
Lorsqu'il n'y a pas de valeur pour grid-column-end, si grid-column-start est un identifiant de zone ({{cssxref("<custom-ident>")}}, grid-column-end sera défini avec cet identifiant, sinon il sera défini avec auto.
Lorsqu'il n'y a pas de valeur pour grid-row-end, si grid-row-start est un identifiant de zone, grid-row-end sera défini avec cet identifiant, sinon il sera défini avec auto.
Lorsqu'il n'y a pas de valeur pour grid-column-start, si grid-row-start est un identifiant de zone, les quatres propriétés seront définies avec cette valeur. Sinon, elles vaudront auto.
La propriété grid-area peut également prendre comme valeur un identifiant personnalisé ({{cssxref("<custom-ident>")}}) qui pourra être utilisé comme nom pour une zone de la grille placée grâce à la propriété {{cssxref("grid-template-areas")}}.
/* Valeurs avec un mot-clé */ -grid-area: auto; -grid-area: auto / auto; -grid-area: auto / auto / auto; -grid-area: auto / auto / auto / auto; - -/* Valeurs de type <custom-ident> */ -grid-area: une-zone-de-grille; -grid-area: une-zone-de-grille / une-autre-zone; - -/* Forme : <integer> && <custom-ident>? */ -grid-area: une-zone-de-grille 4; -grid-area: une-zone-de-grille 4 / 2 une-autre-zone; - -/* Forme span && [ <integer> || <custom-ident> ] */ -grid-area: span 3; -grid-area: span 3 / span une-zone-de-grille; -grid-area: 2 span / une-autre-zone span; - -/* Valeurs globales */ -grid-area: inherit; -grid-area: initial; -grid-area: unset;- -
auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-area: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
- -Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
- -Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
#grid {
- display: grid;
- height: 100px;
- grid-template: repeat(4, 1fr) / 50px 100px;
-}
-
-#item1 {
- background-color: lime;
- grid-area: 2 / 2 / auto / span 3;
-}
-
-#item2 {
- background-color: yellow;
-}
-
-#item3 {
- background-color: blue;
-}
-
-<div id="grid"> - <div id="item1"></div> - <div id="item2"></div> - <div id="item3"></div> -</div>- -
{{EmbedLiveSample("Exemples", "100%", "150px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-area", "grid-area")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-area")}}
- -La propriété grid-area est une propriété raccourcie pour {{cssxref("grid-row-start")}}, {{cssxref("grid-column-start")}}, {{cssxref("grid-row-end")}} et {{cssxref("grid-column-end")}} qui permet de définir la taille d'un objet de la grille et son emplacement via les bords de sa zone de grille.
Si quatre valeurs <grid-line> sont fournies, la première sera appliquée à grid-row-start, la deuxième à grid-column-start, la troisième à grid-row-end et la quatrième à grid-column-end.
Lorsqu'il n'y a pas de valeur pour grid-column-end, si grid-column-start est un identifiant de zone ({{cssxref("<custom-ident>")}}, grid-column-end sera défini avec cet identifiant, sinon il sera défini avec auto.
Lorsqu'il n'y a pas de valeur pour grid-row-end, si grid-row-start est un identifiant de zone, grid-row-end sera défini avec cet identifiant, sinon il sera défini avec auto.
Lorsqu'il n'y a pas de valeur pour grid-column-start, si grid-row-start est un identifiant de zone, les quatres propriétés seront définies avec cette valeur. Sinon, elles vaudront auto.
La propriété grid-area peut également prendre comme valeur un identifiant personnalisé ({{cssxref("<custom-ident>")}}) qui pourra être utilisé comme nom pour une zone de la grille placée grâce à la propriété {{cssxref("grid-template-areas")}}.
/* Valeurs avec un mot-clé */ +grid-area: auto; +grid-area: auto / auto; +grid-area: auto / auto / auto; +grid-area: auto / auto / auto / auto; + +/* Valeurs de type <custom-ident> */ +grid-area: une-zone-de-grille; +grid-area: une-zone-de-grille / une-autre-zone; + +/* Forme : <integer> && <custom-ident>? */ +grid-area: une-zone-de-grille 4; +grid-area: une-zone-de-grille 4 / 2 une-autre-zone; + +/* Forme span && [ <integer> || <custom-ident> ] */ +grid-area: span 3; +grid-area: span 3 / span une-zone-de-grille; +grid-area: 2 span / une-autre-zone span; + +/* Valeurs globales */ +grid-area: inherit; +grid-area: initial; +grid-area: unset;+ +
auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-area: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
+ +Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ +Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
#grid {
+ display: grid;
+ height: 100px;
+ grid-template: repeat(4, 1fr) / 50px 100px;
+}
+
+#item1 {
+ background-color: lime;
+ grid-area: 2 / 2 / auto / span 3;
+}
+
+#item2 {
+ background-color: yellow;
+}
+
+#item3 {
+ background-color: blue;
+}
+
+<div id="grid"> + <div id="item1"></div> + <div id="item2"></div> + <div id="item3"></div> +</div>+ +
{{EmbedLiveSample("Exemples", "100%", "150px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-area", "grid-area")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-area")}}
+ +La propriété grid-auto-columns définit la taille d'une colonne de grille créée de façon implicite.
Si un élément de la grille est positionné sur une colonne dont la taille n'est pas explicitement définie avec {{cssxref("grid-template-columns")}}, une piste implicite est créée pour contenir l'élément. Cela peut se produire lorsqu'on positionne un élément sur une ligne inexistante ou lorsque l'algorithme de placement automatique ajoute des colonnes supplémentaires.
- -/* Valeurs avec un mot-clé */ -grid-auto-columns: min-content; -grid-auto-columns: max-content; -grid-auto-columns: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -grid-auto-columns: 100px; -grid-auto-columns: 20cm; -grid-auto-columns: 50vmax; - -/* Valeurs proportionnelles */ -/* Type <percentage> */ -grid-auto-columns: 10%; -grid-auto-columns: 33.3%; - -/* Valeurs <flex> */ -grid-auto-columns: 0.5fr; -grid-auto-columns: 3fr; - -/* Valeurs minmax() */ -grid-auto-columns: minmax(100px, auto); -grid-auto-columns: minmax(max-content, 2fr); -grid-auto-columns: minmax(20%, 80vmax); - -/* Valeurs fit-content() */ -grid-auto-columns: fit-content(400px); -grid-auto-columns: fit-content(5cm); -grid-auto-columns: fit-content(20%); - -/* Gestion de plusieurs pistes */ -grid-auto-columns: min-content max-content auto; -grid-auto-columns: 100px 150px 390px; -grid-auto-columns: 10% 33.3%; -grid-auto-columns: 0.5fr 3fr 1fr; -grid-auto-columns: minmax(100px, auto) minmax(max-content, 2fr) minmax(20%, 80vmax); -grid-auto-columns: 100px minmax(100px, auto) 10% 0.5fr fit-content(400px); - -/* Valeurs globales */ -grid-auto-columns: inherit; -grid-auto-columns: initial; -grid-auto-columns: unset; -- -
<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
- Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)).
max-contentmin-contentminmax(min, max)min et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. En tant que minimum, elle est gérée comme zéro (ou comme le contenu minimal si le conteneur de la grille impose une contrainte de contenu minimal).fit-content(argument)min(max-content, max(auto, argument)) qui est calculée de façon semblable à auto, sauf qu'ici, la taille de la piste est écrétée à argument s'i elle est plus grande que le minimum auto.autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
#grid {
- width: 100px;
- display: grid;
- grid-template-areas: "a a";
- grid-gap: 10px;
- grid-auto-columns: 200px;
-}
-
-#grid > div {
- background-color: lime;
-}
-
-<div id="grid"> - <div id="item1"></div> - <div id="item2"></div> - <div id="item3"></div> -</div>- -
{{EmbedLiveSample("Exemples", "410px", "100px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-auto-columns", "grid-auto-columns")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-auto-columns")}}
- -La propriété grid-auto-columns définit la taille d'une colonne de grille créée de façon implicite.
Si un élément de la grille est positionné sur une colonne dont la taille n'est pas explicitement définie avec {{cssxref("grid-template-columns")}}, une piste implicite est créée pour contenir l'élément. Cela peut se produire lorsqu'on positionne un élément sur une ligne inexistante ou lorsque l'algorithme de placement automatique ajoute des colonnes supplémentaires.
+ +/* Valeurs avec un mot-clé */ +grid-auto-columns: min-content; +grid-auto-columns: max-content; +grid-auto-columns: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +grid-auto-columns: 100px; +grid-auto-columns: 20cm; +grid-auto-columns: 50vmax; + +/* Valeurs proportionnelles */ +/* Type <percentage> */ +grid-auto-columns: 10%; +grid-auto-columns: 33.3%; + +/* Valeurs <flex> */ +grid-auto-columns: 0.5fr; +grid-auto-columns: 3fr; + +/* Valeurs minmax() */ +grid-auto-columns: minmax(100px, auto); +grid-auto-columns: minmax(max-content, 2fr); +grid-auto-columns: minmax(20%, 80vmax); + +/* Valeurs fit-content() */ +grid-auto-columns: fit-content(400px); +grid-auto-columns: fit-content(5cm); +grid-auto-columns: fit-content(20%); + +/* Gestion de plusieurs pistes */ +grid-auto-columns: min-content max-content auto; +grid-auto-columns: 100px 150px 390px; +grid-auto-columns: 10% 33.3%; +grid-auto-columns: 0.5fr 3fr 1fr; +grid-auto-columns: minmax(100px, auto) minmax(max-content, 2fr) minmax(20%, 80vmax); +grid-auto-columns: 100px minmax(100px, auto) 10% 0.5fr fit-content(400px); + +/* Valeurs globales */ +grid-auto-columns: inherit; +grid-auto-columns: initial; +grid-auto-columns: unset; ++ +
<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
+ Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)).
max-contentmin-contentminmax(min, max)min et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. En tant que minimum, elle est gérée comme zéro (ou comme le contenu minimal si le conteneur de la grille impose une contrainte de contenu minimal).fit-content(argument)min(max-content, max(auto, argument)) qui est calculée de façon semblable à auto, sauf qu'ici, la taille de la piste est écrétée à argument s'i elle est plus grande que le minimum auto.autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
#grid {
+ width: 100px;
+ display: grid;
+ grid-template-areas: "a a";
+ grid-gap: 10px;
+ grid-auto-columns: 200px;
+}
+
+#grid > div {
+ background-color: lime;
+}
+
+<div id="grid"> + <div id="item1"></div> + <div id="item2"></div> + <div id="item3"></div> +</div>+ +
{{EmbedLiveSample("Exemples", "410px", "100px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-auto-columns", "grid-auto-columns")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-auto-columns")}}
+ +La propriété grid-auto-flow permet de contrôler la façon dont fonctionne l'algorithme de placement automatique. Celui-ci définit exactement comme les objets placés automatiquement s'inscrivent dans la grille.
/* Valeurs avec un mot-clé */ -grid-auto-flow: row; -grid-auto-flow: column; -grid-auto-flow: dense; -grid-auto-flow: row dense; -grid-auto-flow: column dense; - -/* Valeurs globales */ -grid-auto-flow: inherit; -grid-auto-flow: initial; -grid-auto-flow: unset; -- -
Cette propriété peut prendre deux formes :
- -row, column ou denserow dense ou column dense.rowrow ou column n'est fournie, row sera la valeur par défaut.columndenseSi cette valeur est absente, le moteur utilisera un algorithme simple qui ne fait que se déplacer vers l'avant, sans revenir vers les espaces vides. De cette façon, les éléments apparaitront nécessairement dans l'ordre mais pourront laisser des trous.
-#grid {
- height: 200px;
- width: 200px;
- display: grid;
- grid-gap: 10px;
- grid-template: repeat(4, 1fr) / repeat(2, 1fr);
- grid-auto-flow: column; /* ou 'row', 'row dense', 'column dense' */
-}
-
-#item1 {
- background-color: lime;
- grid-row-start: 3;
-}
-
-#item2 {
- background-color: yellow;
-}
-
-#item3 {
- background-color: blue;
-}
-
-#item4 {
- grid-column-start: 2;
- background-color: red;
-}
-
-#item5 {
- background-color: aqua;
-}
-
-<div id="grid"> - <div id="item1"></div> - <div id="item2"></div> - <div id="item3"></div> - <div id="item4"></div> - <div id="item5"></div> -</div> -<select id="direction" onchange="changeGridAutoFlow()"> - <option value="column">column</option> - <option value="row">row</option> -</select> -<input id="dense" type="checkbox" onchange="changeGridAutoFlow()"> -<label for="dense">dense</label> -- -
function changeGridAutoFlow() {
- var grid = document.getElementById("grid");
- var direction = document.getElementById("direction");
- var dense = document.getElementById("dense");
- var gridAutoFlow = direction.value === "row" ? "row" : "column";
-
- if (dense.checked) {
- gridAutoFlow += " dense";
- }
-
- grid.style.gridAutoFlow = gridAutoFlow;
-}
-
-{{EmbedLiveSample("Exemples", "200px", "230px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-auto-flow", "grid-auto-flow")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-auto-flow")}}
- -La propriété grid-auto-flow permet de contrôler la façon dont fonctionne l'algorithme de placement automatique. Celui-ci définit exactement comme les objets placés automatiquement s'inscrivent dans la grille.
/* Valeurs avec un mot-clé */ +grid-auto-flow: row; +grid-auto-flow: column; +grid-auto-flow: dense; +grid-auto-flow: row dense; +grid-auto-flow: column dense; + +/* Valeurs globales */ +grid-auto-flow: inherit; +grid-auto-flow: initial; +grid-auto-flow: unset; ++ +
Cette propriété peut prendre deux formes :
+ +row, column ou denserow dense ou column dense.rowrow ou column n'est fournie, row sera la valeur par défaut.columndenseSi cette valeur est absente, le moteur utilisera un algorithme simple qui ne fait que se déplacer vers l'avant, sans revenir vers les espaces vides. De cette façon, les éléments apparaitront nécessairement dans l'ordre mais pourront laisser des trous.
+#grid {
+ height: 200px;
+ width: 200px;
+ display: grid;
+ grid-gap: 10px;
+ grid-template: repeat(4, 1fr) / repeat(2, 1fr);
+ grid-auto-flow: column; /* ou 'row', 'row dense', 'column dense' */
+}
+
+#item1 {
+ background-color: lime;
+ grid-row-start: 3;
+}
+
+#item2 {
+ background-color: yellow;
+}
+
+#item3 {
+ background-color: blue;
+}
+
+#item4 {
+ grid-column-start: 2;
+ background-color: red;
+}
+
+#item5 {
+ background-color: aqua;
+}
+
+<div id="grid"> + <div id="item1"></div> + <div id="item2"></div> + <div id="item3"></div> + <div id="item4"></div> + <div id="item5"></div> +</div> +<select id="direction" onchange="changeGridAutoFlow()"> + <option value="column">column</option> + <option value="row">row</option> +</select> +<input id="dense" type="checkbox" onchange="changeGridAutoFlow()"> +<label for="dense">dense</label> ++ +
function changeGridAutoFlow() {
+ var grid = document.getElementById("grid");
+ var direction = document.getElementById("direction");
+ var dense = document.getElementById("dense");
+ var gridAutoFlow = direction.value === "row" ? "row" : "column";
+
+ if (dense.checked) {
+ gridAutoFlow += " dense";
+ }
+
+ grid.style.gridAutoFlow = gridAutoFlow;
+}
+
+{{EmbedLiveSample("Exemples", "200px", "230px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-auto-flow", "grid-auto-flow")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-auto-flow")}}
+ +La propriété grid-auto-rows définit la taille d'une ligne de grille créée de façon implicite.
Si un élément de la grille est positionné sur une ligne dont la taille n'est pas explicitement définie avec {{cssxref("grid-template-rows")}}, une piste implicite est créée pour contenir l'élément. Cela peut se produire lorsqu'on positionne un élément sur une ligne inexistante ou lorsque l'algorithme de placement automatique ajoute des lignes supplémentaires.
- -/* Valeurs avec un mot-clé */ -grid-auto-rows: min-content; -grid-auto-rows: max-content; -grid-auto-rows: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -grid-auto-rows: 100px; -grid-auto-rows: 20cm; -grid-auto-rows: 50vmax; - -/* Valeurs proportionnelles */ -/* Type <percentage> */ -grid-auto-rows: 10%; -grid-auto-rows: 33.3%; - -/* Valeurs <flex> */ -grid-auto-rows: 0.5fr; -grid-auto-rows: 3fr; - -/* Valeurs minmax() */ -grid-auto-rows: minmax(100px, auto); -grid-auto-rows: minmax(max-content, 2fr); -grid-auto-rows: minmax(20%, 80vmax); - -/* Gestion de plusieurs pistes */ -grid-auto-rows: min-content max-content auto; -grid-auto-rows: 100px 150px 390px; -grid-auto-rows: 10% 33.3%; -grid-auto-rows: 0.5fr 3fr 1fr; -grid-auto-rows: minmax(100px, auto) minmax(max-content, 2fr) minmax(20%, 80vmax); -grid-auto-rows: 100px minmax(100px, auto) 10% 0.5fr fit-content(400px); - - -/* Valeurs globales */ -grid-auto-rows: inherit; -grid-auto-rows: initial; -grid-auto-rows: unset; -- -
<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
- Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)).
max-contentmin-contentminmax(min, max)min et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. En tant que minimum, elle est gérée comme zéro (ou comme le contenu minimal si le conteneur de la grille impose une contrainte de contenu minimal).autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
#grid {
- width: 200px;
- display: grid;
- grid-template-areas: "a a";
- grid-gap: 10px;
- grid-auto-rows: 100px;
-}
-
-#grid > div {
- background-color: lime;
-}
-
-<div id="grid"> - <div id="item1"></div> - <div id="item2"></div> - <div id="item3"></div> -</div>- -
{{EmbedLiveSample("Exemples", "210px", "210px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-auto-rows", "grid-auto-rows")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-auto-rows")}}
- -La propriété grid-auto-rows définit la taille d'une ligne de grille créée de façon implicite.
Si un élément de la grille est positionné sur une ligne dont la taille n'est pas explicitement définie avec {{cssxref("grid-template-rows")}}, une piste implicite est créée pour contenir l'élément. Cela peut se produire lorsqu'on positionne un élément sur une ligne inexistante ou lorsque l'algorithme de placement automatique ajoute des lignes supplémentaires.
+ +/* Valeurs avec un mot-clé */ +grid-auto-rows: min-content; +grid-auto-rows: max-content; +grid-auto-rows: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +grid-auto-rows: 100px; +grid-auto-rows: 20cm; +grid-auto-rows: 50vmax; + +/* Valeurs proportionnelles */ +/* Type <percentage> */ +grid-auto-rows: 10%; +grid-auto-rows: 33.3%; + +/* Valeurs <flex> */ +grid-auto-rows: 0.5fr; +grid-auto-rows: 3fr; + +/* Valeurs minmax() */ +grid-auto-rows: minmax(100px, auto); +grid-auto-rows: minmax(max-content, 2fr); +grid-auto-rows: minmax(20%, 80vmax); + +/* Gestion de plusieurs pistes */ +grid-auto-rows: min-content max-content auto; +grid-auto-rows: 100px 150px 390px; +grid-auto-rows: 10% 33.3%; +grid-auto-rows: 0.5fr 3fr 1fr; +grid-auto-rows: minmax(100px, auto) minmax(max-content, 2fr) minmax(20%, 80vmax); +grid-auto-rows: 100px minmax(100px, auto) 10% 0.5fr fit-content(400px); + + +/* Valeurs globales */ +grid-auto-rows: inherit; +grid-auto-rows: initial; +grid-auto-rows: unset; ++ +
<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
+ Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)).
max-contentmin-contentminmax(min, max)min et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. En tant que minimum, elle est gérée comme zéro (ou comme le contenu minimal si le conteneur de la grille impose une contrainte de contenu minimal).autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
#grid {
+ width: 200px;
+ display: grid;
+ grid-template-areas: "a a";
+ grid-gap: 10px;
+ grid-auto-rows: 100px;
+}
+
+#grid > div {
+ background-color: lime;
+}
+
+<div id="grid"> + <div id="item1"></div> + <div id="item2"></div> + <div id="item3"></div> +</div>+ +
{{EmbedLiveSample("Exemples", "210px", "210px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-auto-rows", "grid-auto-rows")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-auto-rows")}}
+ +La propriété grid-column-end définit la position de la fin d'un élément de la grille dans une zone donnée ou sur un fragment de colonne donné.
/* Valeur avec un mot-clé */ -grid-column-end: auto; - -/* Valers <custom-ident> */ -grid-column-end: somegridarea; - -/* Valeurs <integer> + <custom-ident> */ -grid-column-end: 2; -grid-column-end: somegridarea 4; - -/* Valeurs span + <integer> + <custom-ident> */ -grid-column-end: span 3; -grid-column-end: span somegridarea; -grid-column-end: 5 somegridarea span; - -/* Valeurs globales */ -grid-column-end: inherit; -grid-column-end: initial; -grid-column-end: unset; -- -
auto1 s'il n'y a pas d'autres contraintes.<custom-ident>Note : Les noms de zones génèrent automatiquement les noms de colonnes sous cette forme. Ainsi, grid-column-end: foo; permettra de désigner l'extrêmité (à la fin) de la zone nommée (sauf si une autre colonne a explicitement été nommée avec foo-end).
Si aucune zone ne correspond, la valeur est traitée comme la combinaison de l'entier 1 et de <custom-ident> (cf. définition suivante).
<integer> && <custom-ident>?Un entier nul ne peut pas être utilisé (la règle est invalide).
-span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
- -Si <integer> est absent, la valeur par défaut sera 1. Les entiers négatifs ou nuls ne sont pas autorisés.
- -<custom-ident> ne peut pas prendre la valeur span.
<div class="wrapper"> - <div class="box1">One</div> - <div class="box2">Two</div> - <div class="box3">Three</div> - <div class="box4">Four</div> - <div class="box5">Five</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-
-.box2 {
- grid-column-start: 1;
- grid-row-start: 3;
- grid-row-end: 5;
-}
-
-
-
-
-{{EmbedLiveSample('Exemples', '230', '420')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-column-end", "grid-column-end")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-column-end")}}
- -La propriété grid-column-end définit la position de la fin d'un élément de la grille dans une zone donnée ou sur un fragment de colonne donné.
/* Valeur avec un mot-clé */ +grid-column-end: auto; + +/* Valers <custom-ident> */ +grid-column-end: somegridarea; + +/* Valeurs <integer> + <custom-ident> */ +grid-column-end: 2; +grid-column-end: somegridarea 4; + +/* Valeurs span + <integer> + <custom-ident> */ +grid-column-end: span 3; +grid-column-end: span somegridarea; +grid-column-end: 5 somegridarea span; + +/* Valeurs globales */ +grid-column-end: inherit; +grid-column-end: initial; +grid-column-end: unset; ++ +
auto1 s'il n'y a pas d'autres contraintes.<custom-ident>Note : Les noms de zones génèrent automatiquement les noms de colonnes sous cette forme. Ainsi, grid-column-end: foo; permettra de désigner l'extrêmité (à la fin) de la zone nommée (sauf si une autre colonne a explicitement été nommée avec foo-end).
Si aucune zone ne correspond, la valeur est traitée comme la combinaison de l'entier 1 et de <custom-ident> (cf. définition suivante).
<integer> && <custom-ident>?Un entier nul ne peut pas être utilisé (la règle est invalide).
+span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ +Si <integer> est absent, la valeur par défaut sera 1. Les entiers négatifs ou nuls ne sont pas autorisés.
+ +<custom-ident> ne peut pas prendre la valeur span.
<div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> + <div class="box4">Four</div> + <div class="box5">Five</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+
+.box2 {
+ grid-column-start: 1;
+ grid-row-start: 3;
+ grid-row-end: 5;
+}
+
+
+
+
+{{EmbedLiveSample('Exemples', '230', '420')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-column-end", "grid-column-end")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-column-end")}}
+ +La propriété grid-column-start définit la position du début d'un élément (au sens des propriétés logiques *-block-start) en définissant la ligne ou la taille de fragment occupé sur la grille.
/* Valeur avec un mot-clé */ -grid-column-start: auto; - -/* Valeur <custom-ident> */ -grid-column-start: unezonedegrille; - -/* Valeurs <integer> + <custom-ident> */ -grid-column-start: 2; -grid-column-start: unezonedegrille 4; - -/* Valeurs span + <integer> + <custom-ident> */ -grid-column-start: span 3; -grid-column-start: span unezonedegrille; -grid-column-start: span unezonedegrille 5; - -/* Valeurs globales */ -grid-column-start: inherit; -grid-column-start: initial; -grid-column-start: unset; -- -
La valeur de cette propriété prend la forme d'une seule valeur <grid-line>. Une telle valeur peut être définie avec :
auto<custom-ident><integer><custom-ident> et un <integer> séparés par un espacespan avec une valeur <custom-ident> ou un <integer> ou les deux.auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-column-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
- -Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
- -Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
<custom-ident> ne peut pas prendre la valeur span.
<div class="wrapper"> - <div class="box1">One</div> - <div class="box2">Two</div> - <div class="box3">Three</div> - <div class="box4">Four</div> - <div class="box5">Five</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-
-.box2 {
- grid-column-start: 1;
- grid-row-start: 3;
- grid-row-end: 5;
-}
-
-
-
-
-{{EmbedLiveSample('Exemples', '230', '420')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-column-start", "grid-column-start")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-column-start")}}
- -La propriété grid-column-start définit la position du début d'un élément (au sens des propriétés logiques *-block-start) en définissant la ligne ou la taille de fragment occupé sur la grille.
/* Valeur avec un mot-clé */ +grid-column-start: auto; + +/* Valeur <custom-ident> */ +grid-column-start: unezonedegrille; + +/* Valeurs <integer> + <custom-ident> */ +grid-column-start: 2; +grid-column-start: unezonedegrille 4; + +/* Valeurs span + <integer> + <custom-ident> */ +grid-column-start: span 3; +grid-column-start: span unezonedegrille; +grid-column-start: span unezonedegrille 5; + +/* Valeurs globales */ +grid-column-start: inherit; +grid-column-start: initial; +grid-column-start: unset; ++ +
La valeur de cette propriété prend la forme d'une seule valeur <grid-line>. Une telle valeur peut être définie avec :
auto<custom-ident><integer><custom-ident> et un <integer> séparés par un espacespan avec une valeur <custom-ident> ou un <integer> ou les deux.auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-column-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
+ +Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ +Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
<custom-ident> ne peut pas prendre la valeur span.
<div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> + <div class="box4">Four</div> + <div class="box5">Five</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+
+.box2 {
+ grid-column-start: 1;
+ grid-row-start: 3;
+ grid-row-end: 5;
+}
+
+
+
+
+{{EmbedLiveSample('Exemples', '230', '420')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-column-start", "grid-column-start")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-column-start")}}
+ +La propriété grid-column est une propriété raccourcie pour {{cssxref("grid-column-start")}} et {{cssxref("grid-column-end")}}. Elle permet de définir la taille et l'emplacement d'un élément sur la grille en indiquant l'emplacement du début, de la fin et/ou sa taille.
Si deux valeurs <grid-line> sont utilisées pour la propriété, la valeur de grid-column-start sera définie avec la première valeur avant la barre oblique et la valeur de grid-column-end sera définie avec celle qui est située après la barre oblique.
/* Valeurs avec un mot-clé */ -grid-column: auto; -grid-column: auto / auto; - -/* Valeurs <custom-ident> */ -grid-column: unezonedegrille; -grid-column: unezonedegrille / unezonedegrille; - -/* Valeurs <integer> + <custom-ident> */ -grid-column: unezonedegrille 4; -grid-column: 4 unezonedegrille / 6; - -/* Valeurs span + <integer> + <custom-ident> */ -grid-column: span 3; -grid-column: span unezonedegrille; -grid-column: 5 unezonedegrille span; -grid-column: span 3 / 6; -grid-column: span unezonedegrille / span unezonedegrille; -grid-column: 5 unezonedegrille span / 2 span; - -/* Valeurs globales */ -grid-column: inherit; -grid-column: initial; -grid-column: unset; -- -
Cette propriété est définie grâce à une ou deux valeurs <grid-line>. Si deux valeurs <grid-line> sont fournies, elles doivent être séparées par une barre oblique (/)
Une valeur <grid-line> peut être définie avec :
auto<custom-ident><integer><custom-ident> et un <integer> séparés par un espacespan avec une valeur <custom-ident> ou un <integer> ou les deux.auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-column-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre colonne foo-start/foo-end a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
- -Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
- -Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
#grid {
- display: grid;
- height: 100px;
- grid-template-columns: repeat(6, 1fr);
- grid-template-rows: 100px;
-}
-
-#item1 {
- background-color: lime;
-}
-
-#item2 {
- background-color: yellow;
- grid-column: 2 / 4;
-}
-
-#item3 {
- background-color: blue;
- grid-column: span 2 / 7;
-}
-
-<div id="grid"> - <div id="item1"></div> - <div id="item2"></div> - <div id="item3"></div> -</div>- -
{{EmbedLiveSample("Exemples", "100%", "100px")}}
- -IE11 ne prend pas en charge le placement automatique des objets sur la grille.Tous les objets finiront sur la première colonne / ligne si ceux-ci ne sont pas marqués avec les propriétés -ms-{{cssxref("grid-column")}} et -ms-{{cssxref("grid-row")}}. Pour effectuer cette annotation automatiquement, on peut utiliser du JavaScript (cf. ce dépôt).
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-column", "grid-column")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-column")}}
- -La propriété grid-column est une propriété raccourcie pour {{cssxref("grid-column-start")}} et {{cssxref("grid-column-end")}}. Elle permet de définir la taille et l'emplacement d'un élément sur la grille en indiquant l'emplacement du début, de la fin et/ou sa taille.
Si deux valeurs <grid-line> sont utilisées pour la propriété, la valeur de grid-column-start sera définie avec la première valeur avant la barre oblique et la valeur de grid-column-end sera définie avec celle qui est située après la barre oblique.
/* Valeurs avec un mot-clé */ +grid-column: auto; +grid-column: auto / auto; + +/* Valeurs <custom-ident> */ +grid-column: unezonedegrille; +grid-column: unezonedegrille / unezonedegrille; + +/* Valeurs <integer> + <custom-ident> */ +grid-column: unezonedegrille 4; +grid-column: 4 unezonedegrille / 6; + +/* Valeurs span + <integer> + <custom-ident> */ +grid-column: span 3; +grid-column: span unezonedegrille; +grid-column: 5 unezonedegrille span; +grid-column: span 3 / 6; +grid-column: span unezonedegrille / span unezonedegrille; +grid-column: 5 unezonedegrille span / 2 span; + +/* Valeurs globales */ +grid-column: inherit; +grid-column: initial; +grid-column: unset; ++ +
Cette propriété est définie grâce à une ou deux valeurs <grid-line>. Si deux valeurs <grid-line> sont fournies, elles doivent être séparées par une barre oblique (/)
Une valeur <grid-line> peut être définie avec :
auto<custom-ident><integer><custom-ident> et un <integer> séparés par un espacespan avec une valeur <custom-ident> ou un <integer> ou les deux.auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-column-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre colonne foo-start/foo-end a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
+ +Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ +Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
#grid {
+ display: grid;
+ height: 100px;
+ grid-template-columns: repeat(6, 1fr);
+ grid-template-rows: 100px;
+}
+
+#item1 {
+ background-color: lime;
+}
+
+#item2 {
+ background-color: yellow;
+ grid-column: 2 / 4;
+}
+
+#item3 {
+ background-color: blue;
+ grid-column: span 2 / 7;
+}
+
+<div id="grid"> + <div id="item1"></div> + <div id="item2"></div> + <div id="item3"></div> +</div>+ +
{{EmbedLiveSample("Exemples", "100%", "100px")}}
+ +IE11 ne prend pas en charge le placement automatique des objets sur la grille.Tous les objets finiront sur la première colonne / ligne si ceux-ci ne sont pas marqués avec les propriétés -ms-{{cssxref("grid-column")}} et -ms-{{cssxref("grid-row")}}. Pour effectuer cette annotation automatiquement, on peut utiliser du JavaScript (cf. ce dépôt).
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-column", "grid-column")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-column")}}
+ +La propriété grid-row-end définit la position de la fin d'un élément de la grille dans une zone donnée ou sur un fragment de ligne donné.
/* Valeurs avec un mot-clé */ -grid-row-end: auto; - -/* Valeurs <custom-ident> */ -grid-row-end: somegridarea; - -/* Valeurs <integer> + <custom-ident> */ -grid-row-end: 2; -grid-row-end: somegridarea 4; - -/* Valeurs span + <integer> + <custom-ident> */ -grid-row-end: span 3; -grid-row-end: span somegridarea; -grid-row-end: 5 somegridarea span; - -/* Valeurs globales */ -grid-row-end: inherit; -grid-row-end: initial; -grid-row-end: unset; -- -
auto1 s'il n'y a pas d'autres contraintes.<custom-ident>Note : Les noms de zones génèrent automatiquement les noms de lignes sous cette forme. Ainsi, grid-row-end: foo; permettra de désigner l'extrêmité (à la fin) de la zone nommée (sauf si une autre ligne a explicitement été nommée avec foo-end).
Si aucune zone ne correspond, la valeur est traitée comme la combinaison de l'entier 1 et de <custom-ident> (cf. définition suivante).
<custom-ident> ne peut pas prendre la valeur span.
<integer> && <custom-ident>?Un entier nul ne peut pas être utilisé (la règle est invalide).
-span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
- -Si <integer> est absent, la valeur par défaut sera 1. Les entiers négatifs ou nuls ne sont pas autorisés.
-<div class="wrapper"> - <div class="box1">One</div> - <div class="box2">Two</div> - <div class="box3">Three</div> - <div class="box4">Four</div> - <div class="box5">Five</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-
-.box2 {
- grid-column-start: 1;
- grid-row-start: 3;
- grid-row-end: 5;
-}
-
-
-
-
-{{EmbedLiveSample('Exemples', '230', '420')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-row-end", "grid-row-end")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.grid-row-end")}}
- -La propriété grid-row-end définit la position de la fin d'un élément de la grille dans une zone donnée ou sur un fragment de ligne donné.
/* Valeurs avec un mot-clé */ +grid-row-end: auto; + +/* Valeurs <custom-ident> */ +grid-row-end: somegridarea; + +/* Valeurs <integer> + <custom-ident> */ +grid-row-end: 2; +grid-row-end: somegridarea 4; + +/* Valeurs span + <integer> + <custom-ident> */ +grid-row-end: span 3; +grid-row-end: span somegridarea; +grid-row-end: 5 somegridarea span; + +/* Valeurs globales */ +grid-row-end: inherit; +grid-row-end: initial; +grid-row-end: unset; ++ +
auto1 s'il n'y a pas d'autres contraintes.<custom-ident>Note : Les noms de zones génèrent automatiquement les noms de lignes sous cette forme. Ainsi, grid-row-end: foo; permettra de désigner l'extrêmité (à la fin) de la zone nommée (sauf si une autre ligne a explicitement été nommée avec foo-end).
Si aucune zone ne correspond, la valeur est traitée comme la combinaison de l'entier 1 et de <custom-ident> (cf. définition suivante).
<custom-ident> ne peut pas prendre la valeur span.
<integer> && <custom-ident>?Un entier nul ne peut pas être utilisé (la règle est invalide).
+span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ +Si <integer> est absent, la valeur par défaut sera 1. Les entiers négatifs ou nuls ne sont pas autorisés.
+<div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> + <div class="box4">Four</div> + <div class="box5">Five</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+
+.box2 {
+ grid-column-start: 1;
+ grid-row-start: 3;
+ grid-row-end: 5;
+}
+
+
+
+
+{{EmbedLiveSample('Exemples', '230', '420')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-row-end", "grid-row-end")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-row-end")}}
+ +La propriété grid-row-start définit le début de la position, sur une ligne, d'un élément placé sur la grille qui participe à une ligne, à un fragment de ligne ou rien (automatique). Par conséquent, cela définit également le début de la zone de la grille pour cet élément.
/* Valeur avec un mot-clé */ -grid-row-start: auto; - -/* Valeurs <custom-ident>*/ -grid-row-start: unezonedegrille; - -/* Valeurs <integer> + <custom-ident> */ -grid-row-start: 2; -grid-row-start: unezonedegrille 4; - -/* Valeurs span + <integer> + <custom-ident> */ -grid-row-start: span 3; -grid-row-start: span unezonedegrille; -grid-row-start: 5 unezonedegrille span; - -/* Valeurs globales */ -grid-row-start: inherit; -grid-row-start: initial; -grid-row-start: unset; -- -
La valeur de cette propriété prend la forme d'une seule valeur <grid-line>. Une telle valeur peut être définie avec :
auto<custom-ident><integer><custom-ident> et un <integer> séparés par un espacespan avec une valeur <custom-ident> ou un <integer> ou les deux.auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-row-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
- -Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
- -Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
<custom-ident> ne peut pas prendre la valeur span.
<div class="wrapper"> - <div class="box1">One</div> - <div class="box2">Two</div> - <div class="box3">Three</div> - <div class="box4">Four</div> - <div class="box5">Five</div> -</div> -- -
.wrapper {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-auto-rows: 100px;
-}
-
-.box1 {
- grid-column-start: 1;
- grid-column-end: 4;
- grid-row-start: 1;
- grid-row-end: 3;
-}
-
-.box2 {
- grid-column-start: 1;
- grid-row-start: 3;
- grid-row-end: 5;
-}
-
-
-
-
-{{ EmbedLiveSample('Exemples', '230', '420') }}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-row-start", "grid-row-start")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-row-start")}}
- -La propriété grid-row-start définit le début de la position, sur une ligne, d'un élément placé sur la grille qui participe à une ligne, à un fragment de ligne ou rien (automatique). Par conséquent, cela définit également le début de la zone de la grille pour cet élément.
/* Valeur avec un mot-clé */ +grid-row-start: auto; + +/* Valeurs <custom-ident>*/ +grid-row-start: unezonedegrille; + +/* Valeurs <integer> + <custom-ident> */ +grid-row-start: 2; +grid-row-start: unezonedegrille 4; + +/* Valeurs span + <integer> + <custom-ident> */ +grid-row-start: span 3; +grid-row-start: span unezonedegrille; +grid-row-start: 5 unezonedegrille span; + +/* Valeurs globales */ +grid-row-start: inherit; +grid-row-start: initial; +grid-row-start: unset; ++ +
La valeur de cette propriété prend la forme d'une seule valeur <grid-line>. Une telle valeur peut être définie avec :
auto<custom-ident><integer><custom-ident> et un <integer> séparés par un espacespan avec une valeur <custom-ident> ou un <integer> ou les deux.auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-row-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
+ +Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ +Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
<custom-ident> ne peut pas prendre la valeur span.
<div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> + <div class="box4">Four</div> + <div class="box5">Five</div> +</div> ++ +
.wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-auto-rows: 100px;
+}
+
+.box1 {
+ grid-column-start: 1;
+ grid-column-end: 4;
+ grid-row-start: 1;
+ grid-row-end: 3;
+}
+
+.box2 {
+ grid-column-start: 1;
+ grid-row-start: 3;
+ grid-row-end: 5;
+}
+
+
+
+
+{{ EmbedLiveSample('Exemples', '230', '420') }}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-row-start", "grid-row-start")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-row-start")}}
+ +La propriété grid-row est une propriété raccourcie pour {{cssxref("grid-row-start")}} et {{cssxref("grid-row-end")}}. Elle permet de définir la taille et l'emplacement d'un élément sur la grille en indiquant l'emplacement du début, de la fin et/ou sa taille.
Si deux valeurs <grid-line> sont utilisées pour la propriété, la valeur de grid-row-start sera définie avec la première valeur avant la barre oblique et la valeur de grid-row-end sera définie avec celle qui est située après la barre oblique.
/* Valeurs avec un mot-clé */ -grid-row: auto; -grid-row: auto / auto; - -/* Valeurs <custom-ident> */ -grid-row: unezonedegrille; -grid-row: unezonedegrille / unezonedegrille; - -/* Valeurs <integer> + <custom-ident> */ -grid-row: unezonedegrille 4; -grid-row: 4 unezonedegrille / 6; - -/* Valeurs span + <integer> + <custom-ident> */ -grid-row: span 3; -grid-row: span unezonedegrille; -grid-row: 5 unezonedegrille span; -grid-row: span 3 / 6; -grid-row: span unezonedegrille / span unezonedegrille; -grid-row: 5 unezonedegrille span / 2 span; - -/* Valeurs globales */ -grid-row: inherit; -grid-row: initial; -grid-row: unset; -- -
auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-row-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start/foo-end a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
- -Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
- -Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
#grid {
- display: grid;
- height: 200px;
- grid-template-columns: 200px;
- grid-template-rows: repeat(6, 1fr);
-}
-
-#item1 {
- background-color: lime;
-}
-
-#item2 {
- background-color: yellow;
- grid-row: 2 / 4;
-}
-
-#item3 {
- background-color: blue;
- grid-row: span 2 / 7;
-}
-
-
-<div id="grid"> - <div id="item1"></div> - <div id="item2"></div> - <div id="item3"></div> -</div>- -
{{EmbedLiveSample("Exemples", "200px", "200px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-row", "grid-row")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-row")}}
- -La propriété grid-row est une propriété raccourcie pour {{cssxref("grid-row-start")}} et {{cssxref("grid-row-end")}}. Elle permet de définir la taille et l'emplacement d'un élément sur la grille en indiquant l'emplacement du début, de la fin et/ou sa taille.
Si deux valeurs <grid-line> sont utilisées pour la propriété, la valeur de grid-row-start sera définie avec la première valeur avant la barre oblique et la valeur de grid-row-end sera définie avec celle qui est située après la barre oblique.
/* Valeurs avec un mot-clé */ +grid-row: auto; +grid-row: auto / auto; + +/* Valeurs <custom-ident> */ +grid-row: unezonedegrille; +grid-row: unezonedegrille / unezonedegrille; + +/* Valeurs <integer> + <custom-ident> */ +grid-row: unezonedegrille 4; +grid-row: 4 unezonedegrille / 6; + +/* Valeurs span + <integer> + <custom-ident> */ +grid-row: span 3; +grid-row: span unezonedegrille; +grid-row: 5 unezonedegrille span; +grid-row: span 3 / 6; +grid-row: span unezonedegrille / span unezonedegrille; +grid-row: 5 unezonedegrille span / 2 span; + +/* Valeurs globales */ +grid-row: inherit; +grid-row: initial; +grid-row: unset; ++ +
auto1.<custom-ident>Note : Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant grid-row-start: foo; cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne foo-start/foo-end a été explicitement déclarée).
Sinon, la valeur est traitée comme si on avait utilisé <custom-ident> et la valeur 1.
<integer> && <custom-ident>?Si un nom est fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
+ +Si la valeur entière utilisée est 0, la règle est invalide.
span && [ <integer> || <custom-ident> ]Si un nom fourni pour <custom-ident>, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ +Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera 1. Les entiers négatifs ou nuls sont invalides.
#grid {
+ display: grid;
+ height: 200px;
+ grid-template-columns: 200px;
+ grid-template-rows: repeat(6, 1fr);
+}
+
+#item1 {
+ background-color: lime;
+}
+
+#item2 {
+ background-color: yellow;
+ grid-row: 2 / 4;
+}
+
+#item3 {
+ background-color: blue;
+ grid-row: span 2 / 7;
+}
+
+
+<div id="grid"> + <div id="item1"></div> + <div id="item2"></div> + <div id="item3"></div> +</div>+ +
{{EmbedLiveSample("Exemples", "200px", "200px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-row", "grid-row")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-row")}}
+ +La propriété grid-template-areas permet de définir des zones de grille nommées.
Ces zones ne sont pas associées à un objet de la grille mais peuvent être utilisées avec les propriétés de placement : {{cssxref("grid-row-start")}}, {{cssxref("grid-row-end")}}, {{cssxref("grid-column-start")}}, {{cssxref("grid-column-end")}} et les méthodes de raccourci correspondantes {{cssxref("grid-row")}}, {{cssxref("grid-column")}}, and {{cssxref("grid-area")}}.
- -/* Valeur avec un mot-clé */ -grid-template-areas: none; - -/* Valeurs de chaînes */ -/* Type <string> */ -grid-template-areas: "a b"; -grid-template-areas: "a b b" - "a c d"; - -/* Valeurs globales */ -grid-template-areas: inherit; -grid-template-areas: initial; -grid-template-areas: unset; -- -
none<string>+<section id="page"> - <header>En-tête</header> - <nav>Navigation</nav> - <main>Zone principale</main> - <footer>Pied de page</footer> -</section>- -
#page {
- display: grid;
- width: 100%;
- height: 250px;
- grid-template-areas: "head head"
- "nav main"
- "nav foot";
- grid-template-rows: 50px 1fr 30px;
- grid-template-columns: 150px 1fr;
-}
-
-#page > header {
- grid-area: head;
- background-color: #8ca0ff;
-}
-
-#page > nav {
- grid-area: nav;
- background-color: #ffa08c;
-}
-
-#page > main {
- grid-area: main;
- background-color: #ffff64;
-}
-
-#page > footer {
- grid-area: foot;
- background-color: #8cffa0;
-}
-
-
-{{EmbedLiveSample("Exemple", "100%", "250px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template-areas", "grid-template-areas")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-template-areas")}}
- -La propriété grid-template-areas permet de définir des zones de grille nommées.
Ces zones ne sont pas associées à un objet de la grille mais peuvent être utilisées avec les propriétés de placement : {{cssxref("grid-row-start")}}, {{cssxref("grid-row-end")}}, {{cssxref("grid-column-start")}}, {{cssxref("grid-column-end")}} et les méthodes de raccourci correspondantes {{cssxref("grid-row")}}, {{cssxref("grid-column")}}, and {{cssxref("grid-area")}}.
+ +/* Valeur avec un mot-clé */ +grid-template-areas: none; + +/* Valeurs de chaînes */ +/* Type <string> */ +grid-template-areas: "a b"; +grid-template-areas: "a b b" + "a c d"; + +/* Valeurs globales */ +grid-template-areas: inherit; +grid-template-areas: initial; +grid-template-areas: unset; ++ +
none<string>+<section id="page"> + <header>En-tête</header> + <nav>Navigation</nav> + <main>Zone principale</main> + <footer>Pied de page</footer> +</section>+ +
#page {
+ display: grid;
+ width: 100%;
+ height: 250px;
+ grid-template-areas: "head head"
+ "nav main"
+ "nav foot";
+ grid-template-rows: 50px 1fr 30px;
+ grid-template-columns: 150px 1fr;
+}
+
+#page > header {
+ grid-area: head;
+ background-color: #8ca0ff;
+}
+
+#page > nav {
+ grid-area: nav;
+ background-color: #ffa08c;
+}
+
+#page > main {
+ grid-area: main;
+ background-color: #ffff64;
+}
+
+#page > footer {
+ grid-area: foot;
+ background-color: #8cffa0;
+}
+
+
+{{EmbedLiveSample("Exemple", "100%", "250px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template-areas", "grid-template-areas")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-template-areas")}}
+ +La propriété grid-template-columns définit les noms des lignes et les fonctions de taille (track sizing) pour les colonnes de la grille.
/* Valeur avec un mot-clé */ -grid-template-columns: none; - -/* Valeurs <track-list> */ -grid-template-columns: 100px 1fr; -grid-template-columns: [linename] 100px; -grid-template-columns: [linename1] 100px [linename2 linename3]; -grid-template-columns: minmax(100px, 1fr); -grid-template-columns: fit-content(40%); -grid-template-columns: repeat(3, 200px); - -/* Valeurs <auto-track-list> */ -grid-template-columns: 200px repeat(auto-fill, 100px) 300px; -grid-template-columns: minmax(100px, max-content) - repeat(auto-fill, 200px) 20%; -grid-template-columns: [linename1] 100px [linename2] - repeat(auto-fit, [linename3 linename4] 300px) - 100px; -grid-template-columns: [linename1 linename2] 100px - repeat(auto-fit, [linename1] 300px) [linename3]; - -/* Valeurs globales */ -grid-template-columns: inherit; -grid-template-columns: initial; -grid-template-columns: unset; -- -
none<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
- Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)). Voir {{cssxref("<flex>")}}.
max-contentmin-contentmin et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. Cette valeur est invalide en tant que minimum.autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
min(max-content, max(auto, argument)) qui est calculée comme pour auto (i.e. minmax(auto, max-content)) sauf que la taille de la piste est ramenée à argument si elle est plus grande que le minimum fourni par auto.#grid {
- display: grid;
- width: 100%;
- grid-template-columns: 50px 1fr;
-}
-
-#areaA {
- background-color: lime;
-}
-
-#areaB {
- background-color: yellow;
-}
-
-<div id="grid"> - <div id="areaA">A</div> - <div id="areaB">B</div> -</div>- -
{{EmbedLiveSample("Exemples", "100%", "20px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template-columns", "grid-template-columns")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-template-columns")}}
- -La propriété grid-template-columns définit les noms des lignes et les fonctions de taille (track sizing) pour les colonnes de la grille.
/* Valeur avec un mot-clé */ +grid-template-columns: none; + +/* Valeurs <track-list> */ +grid-template-columns: 100px 1fr; +grid-template-columns: [linename] 100px; +grid-template-columns: [linename1] 100px [linename2 linename3]; +grid-template-columns: minmax(100px, 1fr); +grid-template-columns: fit-content(40%); +grid-template-columns: repeat(3, 200px); + +/* Valeurs <auto-track-list> */ +grid-template-columns: 200px repeat(auto-fill, 100px) 300px; +grid-template-columns: minmax(100px, max-content) + repeat(auto-fill, 200px) 20%; +grid-template-columns: [linename1] 100px [linename2] + repeat(auto-fit, [linename3 linename4] 300px) + 100px; +grid-template-columns: [linename1 linename2] 100px + repeat(auto-fit, [linename1] 300px) [linename3]; + +/* Valeurs globales */ +grid-template-columns: inherit; +grid-template-columns: initial; +grid-template-columns: unset; ++ +
none<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
+ Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)). Voir {{cssxref("<flex>")}}.
max-contentmin-contentmin et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. Cette valeur est invalide en tant que minimum.autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
min(max-content, max(auto, argument)) qui est calculée comme pour auto (i.e. minmax(auto, max-content)) sauf que la taille de la piste est ramenée à argument si elle est plus grande que le minimum fourni par auto.#grid {
+ display: grid;
+ width: 100%;
+ grid-template-columns: 50px 1fr;
+}
+
+#areaA {
+ background-color: lime;
+}
+
+#areaB {
+ background-color: yellow;
+}
+
+<div id="grid"> + <div id="areaA">A</div> + <div id="areaB">B</div> +</div>+ +
{{EmbedLiveSample("Exemples", "100%", "20px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template-columns", "grid-template-columns")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-template-columns")}}
+ +La propriété grid-template-rows définit les noms des lignes et les fonctions de taille (track sizing) pour les lignes de la grille.
/* Valeur avec un mot-clé */ -grid-template-rows: none; - -/* Valeurs avec une liste de pistes */ -/* Type <track-list> */ -grid-template-rows: 100px 1fr; -grid-template-rows: [linename] 100px; -grid-template-rows: [linename1] 100px [linename2 linename3]; -grid-template-rows: minmax(100px, 1fr); -grid-template-rows: fit-content(40%); -grid-template-rows: repeat(3, 200px); - -/* Valeurs <auto-track-list> */ -grid-template-rows: 200px repeat(auto-fill, 100px) 300px; -grid-template-rows: minmax(100px, max-content) - repeat(auto-fill, 200px) 20%; -grid-template-rows: [linename1] 100px [linename2] - repeat(auto-fit, [linename3 linename4] 300px) - 100px; -grid-template-rows: [linename1 linename2] 100px - repeat(auto-fit, [linename1] 300px) [linename3]; - - -/* Valeurs globales */ -grid-template-rows: inherit; -grid-template-rows: initial; -grid-template-rows: unset; -- -
Cette propriété peut être définie avec le mot-clé none ou avec une valeur de type <track-list> ou avec une valeur de type <auto-track-list>.
none<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
- Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)). Voir {{cssxref("<flex_value>")}}.
max-contentmin-contentmin et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. Cette notation est invalide en tant que minimum.autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
min(max-content, max(auto, argument)) qui est calculée comme pour auto (i.e. minmax(auto, max-content)) sauf que la taille de la piste est ramenée à argument si elle est plus grande que le minimum fourni par auto.#grid {
- display: grid;
- height: 100px;
- grid-template-rows: 30px 1fr;
-}
-
-#areaA {
- background-color: lime;
-}
-
-#areaB {
- background-color: yellow;
-}
-
-<div id="grid"> - <div id="areaA">A</div> - <div id="areaB">B</div> -</div>- -
{{EmbedLiveSample("Exemples", "40px", "100px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template-rows", "grid-template-rows")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-template-rows")}}
- -La propriété grid-template-rows définit les noms des lignes et les fonctions de taille (track sizing) pour les lignes de la grille.
/* Valeur avec un mot-clé */ +grid-template-rows: none; + +/* Valeurs avec une liste de pistes */ +/* Type <track-list> */ +grid-template-rows: 100px 1fr; +grid-template-rows: [linename] 100px; +grid-template-rows: [linename1] 100px [linename2 linename3]; +grid-template-rows: minmax(100px, 1fr); +grid-template-rows: fit-content(40%); +grid-template-rows: repeat(3, 200px); + +/* Valeurs <auto-track-list> */ +grid-template-rows: 200px repeat(auto-fill, 100px) 300px; +grid-template-rows: minmax(100px, max-content) + repeat(auto-fill, 200px) 20%; +grid-template-rows: [linename1] 100px [linename2] + repeat(auto-fit, [linename3 linename4] 300px) + 100px; +grid-template-rows: [linename1 linename2] 100px + repeat(auto-fit, [linename1] 300px) [linename3]; + + +/* Valeurs globales */ +grid-template-rows: inherit; +grid-template-rows: initial; +grid-template-rows: unset; ++ +
Cette propriété peut être définie avec le mot-clé none ou avec une valeur de type <track-list> ou avec une valeur de type <auto-track-list>.
none<length><percentage>auto.<flex>fr indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec <flex> occupera une partie de l'espace restant en fonction de ce facteur.
+ Lorsque cette valeur apparaît en dehors de la notation minmax(), la valeur minimale auto est implicite (la valeur signifie minmax(auto, <flex>)). Voir {{cssxref("<flex_value>")}}.
max-contentmin-contentmin et max. Si max est inférieur à min, max est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur <flex> qui définit le facteur de flexibilité de la piste. Cette notation est invalide en tant que minimum.autoNote : Les pistes de taille auto (et uniquement celles-ci) peuvent être étirées grâce aux propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}.
min(max-content, max(auto, argument)) qui est calculée comme pour auto (i.e. minmax(auto, max-content)) sauf que la taille de la piste est ramenée à argument si elle est plus grande que le minimum fourni par auto.#grid {
+ display: grid;
+ height: 100px;
+ grid-template-rows: 30px 1fr;
+}
+
+#areaA {
+ background-color: lime;
+}
+
+#areaB {
+ background-color: yellow;
+}
+
+<div id="grid"> + <div id="areaA">A</div> + <div id="areaB">B</div> +</div>+ +
{{EmbedLiveSample("Exemples", "40px", "100px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template-rows", "grid-template-rows")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-template-rows")}}
+ +La propriété grid-template est une propriété raccourcie permettant de définir les colonnes, grilles et zones d'une grille.
Les propriétés détaillées sont {{cssxref("grid-template-rows")}}, {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-areas")}}.
- -/* Valeur avec un mot-clé */ -grid-template: none; - -/* Valeurs utilisant grid-template-rows / grid-template-columns */ -grid-template: 100px 1fr / 50px 1fr; -grid-template: auto 1fr / auto 1fr auto; -grid-template: [linename] 100px / [columnname1] 30% [columnname2] 70%; -grid-template: fit-content(100px) / fit-content(40%); - -/* Valeurs utilisant grid-template-areas grid-template-rows / grid-template-column */ -grid-template: "a a a" - "b b b"; -grid-template: "a a a" 20% - "b b b" auto; -grid-template: [header-top] "a a a" [header-bottom] - [main-top] "b b b" 1fr [main-bottom] - / auto 1fr auto; - -/* Valeurs globales */ -grid-template: inherit; -grid-template: initial; -grid-template: unset; -- -
nonenone sur les trois propriétés détaillées et qui indique qu'il n'y a pas de grille explicite. Il n'y a pas de zone de grille nommée. Les lignes et les colonnes seront générées de façon implicite et leurs tailles seront déterminées par les propriétés {{cssxref("grid-auto-rows")}} et {{cssxref("grid-auto-columns")}}.<'grid-template-rows'> / <'grid-template-columns'>none.[ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <track-list> ]?auto sera utilisé pour les tailles manquantes), les lignes seront découpées selon les noms avant et après chaque taille. {{cssxref("grid-template-columns")}} sera définie avec la valeur listée après la barre oblique (ou none sinon).
- Note : La fonction {{cssxref("repeat()")}} n'est pas autorisée parmi les listes de pistes car les pistes sont conçues pour correspondre à la disposition finale (à la façon d'un dessin en ASCII).
Note : La propriété raccourcie {{cssxref("grid")}} accepte la même syntaxe mais réinitialise également les propriétés implicites avec leurs valeurs initiales. On pourra utiliser grid (plutôt que grid-template) pour empêcher les valeurs de suivre la cascade de façon séparée.
#page {
- display: grid;
- width: 100%;
- height: 200px;
- grid-template: [header-left] "head head" 30px [header-right]
- [main-left] "nav main" 1fr [main-right]
- [footer-left] "nav foot" 30px [footer-right]
- / 120px 1fr;
-}
-
-header {
- background-color: lime;
- grid-area: head;
-}
-
-nav {
- background-color: lightblue;
- grid-area: nav;
-}
-
-main {
- background-color: yellow;
- grid-area: main;
-}
-
-footer {
- background-color: red;
- grid-column: foot;
-}
-
-<section id="page"> - <header>En-tête</header> - <nav>Navigation</nav> - <main>Zone principale</main> - <footer>Bas de page</footer> -</section>- -
{{EmbedLiveSample("Exemples", "100%", "200px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template", "grid-template")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid-template")}}
- -La propriété grid-template est une propriété raccourcie permettant de définir les colonnes, grilles et zones d'une grille.
Les propriétés détaillées sont {{cssxref("grid-template-rows")}}, {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-areas")}}.
+ +/* Valeur avec un mot-clé */ +grid-template: none; + +/* Valeurs utilisant grid-template-rows / grid-template-columns */ +grid-template: 100px 1fr / 50px 1fr; +grid-template: auto 1fr / auto 1fr auto; +grid-template: [linename] 100px / [columnname1] 30% [columnname2] 70%; +grid-template: fit-content(100px) / fit-content(40%); + +/* Valeurs utilisant grid-template-areas grid-template-rows / grid-template-column */ +grid-template: "a a a" + "b b b"; +grid-template: "a a a" 20% + "b b b" auto; +grid-template: [header-top] "a a a" [header-bottom] + [main-top] "b b b" 1fr [main-bottom] + / auto 1fr auto; + +/* Valeurs globales */ +grid-template: inherit; +grid-template: initial; +grid-template: unset; ++ +
nonenone sur les trois propriétés détaillées et qui indique qu'il n'y a pas de grille explicite. Il n'y a pas de zone de grille nommée. Les lignes et les colonnes seront générées de façon implicite et leurs tailles seront déterminées par les propriétés {{cssxref("grid-auto-rows")}} et {{cssxref("grid-auto-columns")}}.<'grid-template-rows'> / <'grid-template-columns'>none.[ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <track-list> ]?auto sera utilisé pour les tailles manquantes), les lignes seront découpées selon les noms avant et après chaque taille. {{cssxref("grid-template-columns")}} sera définie avec la valeur listée après la barre oblique (ou none sinon).
+ Note : La fonction {{cssxref("repeat()")}} n'est pas autorisée parmi les listes de pistes car les pistes sont conçues pour correspondre à la disposition finale (à la façon d'un dessin en ASCII).
Note : La propriété raccourcie {{cssxref("grid")}} accepte la même syntaxe mais réinitialise également les propriétés implicites avec leurs valeurs initiales. On pourra utiliser grid (plutôt que grid-template) pour empêcher les valeurs de suivre la cascade de façon séparée.
#page {
+ display: grid;
+ width: 100%;
+ height: 200px;
+ grid-template: [header-left] "head head" 30px [header-right]
+ [main-left] "nav main" 1fr [main-right]
+ [footer-left] "nav foot" 30px [footer-right]
+ / 120px 1fr;
+}
+
+header {
+ background-color: lime;
+ grid-area: head;
+}
+
+nav {
+ background-color: lightblue;
+ grid-area: nav;
+}
+
+main {
+ background-color: yellow;
+ grid-area: main;
+}
+
+footer {
+ background-color: red;
+ grid-column: foot;
+}
+
+<section id="page"> + <header>En-tête</header> + <nav>Navigation</nav> + <main>Zone principale</main> + <footer>Bas de page</footer> +</section>+ +
{{EmbedLiveSample("Exemples", "100%", "200px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid-template", "grid-template")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid-template")}}
+ +La propriété grid est une propriété raccourcie qui permet de définir toutes les propriétés liées aux grilles CSS, qu'elles soient explicites ({{cssxref("grid-template-rows")}}, {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-areas")}}), implicites ({{cssxref("grid-auto-rows")}}, {{cssxref("grid-auto-columns")}} et {{cssxref("grid-auto-flow")}}).
Note : Une seule déclaration grid permettra uniquement de définir les propriétés explicites ou implicites. Les propriétés qui ne sont pas définies via la propriété raccourcie prendront leurs valeurs initiales. Les propriétés d'espacement ne sont pas surchargées par cette propriété raccourcie.
/* Valeurs <'grid-template'> */ -grid: none; -grid: "a" 100px "b" 1fr; -grid: [linename1] "a" 100px [linename2]; -grid: "a" 200px "b" min-content; -grid: "a" minmax(100px, max-content) "b" 20%; -grid: 100px / 200px; -grid: minmax(400px, min-content) / repeat(auto-fill, 50px); - -/* <'grid-template-rows'> / - [ auto-flow && dense? ] <'grid-auto-columns'>? values */ -grid: 200px / auto-flow; -grid: 30% / auto-flow dense; -grid: repeat(3, [line1 line2 line3] 200px) / auto-flow 300px; -grid: [line1] minmax(20em, max-content) / auto-flow dense 40%; - -/* [ auto-flow && dense? ] <'grid-auto-rows'>? / - <'grid-template-columns'> values */ -grid: auto-flow / 200px; -grid: auto-flow dense / 30%; -grid: auto-flow 300px / repeat(3, [line1 line2 line3] 200px); -grid: auto-flow dense 40% / [line1] minmax(20em, max-content); - -/* Valeurs globales */ -grid: inherit; -grid: initial; -grid: unset;- -
Pour plus de détails, voir les pages de chacune des propriétés : {{cssxref("grid-template")}}, {{cssxref("grid-auto-flow")}}, {{cssxref("grid-auto-rows")}}, {{cssxref("grid-auto-columns")}}.
- -<'grid-template'><'grid-auto-flow'><'grid-auto-rows'><'grid-auto-columns'>#container {
- display: grid;
- grid: repeat(2, 60px) / auto-flow 80px;
-}
-
-#container > div {
- background-color: #8ca0ff;
- width: 50px;
- height: 50px;
-}
-
-<div id="container"> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> -</div>- -
{{EmbedLiveSample("Exemples", "100%", 150)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid", "grid")}} | -{{Spec2("CSS3 Grid")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.grid")}}
- -La propriété grid est une propriété raccourcie qui permet de définir toutes les propriétés liées aux grilles CSS, qu'elles soient explicites ({{cssxref("grid-template-rows")}}, {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-areas")}}), implicites ({{cssxref("grid-auto-rows")}}, {{cssxref("grid-auto-columns")}} et {{cssxref("grid-auto-flow")}}).
Note : Une seule déclaration grid permettra uniquement de définir les propriétés explicites ou implicites. Les propriétés qui ne sont pas définies via la propriété raccourcie prendront leurs valeurs initiales. Les propriétés d'espacement ne sont pas surchargées par cette propriété raccourcie.
/* Valeurs <'grid-template'> */ +grid: none; +grid: "a" 100px "b" 1fr; +grid: [linename1] "a" 100px [linename2]; +grid: "a" 200px "b" min-content; +grid: "a" minmax(100px, max-content) "b" 20%; +grid: 100px / 200px; +grid: minmax(400px, min-content) / repeat(auto-fill, 50px); + +/* <'grid-template-rows'> / + [ auto-flow && dense? ] <'grid-auto-columns'>? values */ +grid: 200px / auto-flow; +grid: 30% / auto-flow dense; +grid: repeat(3, [line1 line2 line3] 200px) / auto-flow 300px; +grid: [line1] minmax(20em, max-content) / auto-flow dense 40%; + +/* [ auto-flow && dense? ] <'grid-auto-rows'>? / + <'grid-template-columns'> values */ +grid: auto-flow / 200px; +grid: auto-flow dense / 30%; +grid: auto-flow 300px / repeat(3, [line1 line2 line3] 200px); +grid: auto-flow dense 40% / [line1] minmax(20em, max-content); + +/* Valeurs globales */ +grid: inherit; +grid: initial; +grid: unset;+ +
Pour plus de détails, voir les pages de chacune des propriétés : {{cssxref("grid-template")}}, {{cssxref("grid-auto-flow")}}, {{cssxref("grid-auto-rows")}}, {{cssxref("grid-auto-columns")}}.
+ +<'grid-template'><'grid-auto-flow'><'grid-auto-rows'><'grid-auto-columns'>#container {
+ display: grid;
+ grid: repeat(2, 60px) / auto-flow 80px;
+}
+
+#container > div {
+ background-color: #8ca0ff;
+ width: 50px;
+ height: 50px;
+}
+
+<div id="container"> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> +</div>+ +
{{EmbedLiveSample("Exemples", "100%", 150)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Grid", "#propdef-grid", "grid")}} | +{{Spec2("CSS3 Grid")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.grid")}}
+ +La propriété hanging-punctuation indique si un signe de ponctuation se situant au début ou à la fin d'une ligne de texte doit rester sur cette ligne, quitte à sortir de la boîte qui représente la ligne.
/* Valeurs avec un mot-clé */ -hanging-punctuation: none; -hanging-punctuation: first; -hanging-punctuation: last; -hanging-punctuation: force-end; -hanging-punctuation: allow-end; - -/* Valeurs avec deux mots-clés */ -hanging-punctuation: first force-end; -hanging-punctuation: first allow-end; -hanging-punctuation: first last; -hanging-punctuation: last force-end; -hanging-punctuation: last allow-end; - -/* Valeurs avec trois mots-clés */ -hanging-punctuation: first force-end last; -hanging-punctuation: first allow-end last; - -/* Valeurs globales */ -hanging-punctuation: inherit; -hanging-punctuation: initial; -hanging-punctuation: unset; -- -
Cette propriété peut être définie grâce à une, deux ou trois valeurs :
- -first avec un des mots-clés parmi : last, allow-end ou force-endlast avec un des mots-clés parmi : last, allow-end ou force-endfirst, allow-end et lastfirst, force-end et lastnonefirstlastforce-endallow-end<p> - Lorem ipsum dolor sit amet, consectetur - adipiscing elit. Curabitur dignissim nunc - mauris, et sollicitudin est scelerisque - sed. Praesent laoreet tortor massa, sit - amet vulputate nulla pharetra ut. Proin - ornare commodo sodales. Class aptent - taciti sociosqu ad litora torquent per - conubia nostra, per inceptos himenaeos. -</p>- -
p {
- hanging-punctuation: first;
- margin: .5rem;
-}
-
-{{EmbedLiveSample('Exemple')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#hanging-punctuation-property', 'hanging-punctuation')}} | -{{Spec2('CSS3 Text')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.hanging-punctuation")}}
diff --git a/files/fr/web/css/hanging-punctuation/index.md b/files/fr/web/css/hanging-punctuation/index.md new file mode 100644 index 0000000000..02e0d2bafc --- /dev/null +++ b/files/fr/web/css/hanging-punctuation/index.md @@ -0,0 +1,127 @@ +--- +title: hanging-punctuation +slug: Web/CSS/hanging-punctuation +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/hanging-punctuation +--- +La propriété hanging-punctuation indique si un signe de ponctuation se situant au début ou à la fin d'une ligne de texte doit rester sur cette ligne, quitte à sortir de la boîte qui représente la ligne.
/* Valeurs avec un mot-clé */ +hanging-punctuation: none; +hanging-punctuation: first; +hanging-punctuation: last; +hanging-punctuation: force-end; +hanging-punctuation: allow-end; + +/* Valeurs avec deux mots-clés */ +hanging-punctuation: first force-end; +hanging-punctuation: first allow-end; +hanging-punctuation: first last; +hanging-punctuation: last force-end; +hanging-punctuation: last allow-end; + +/* Valeurs avec trois mots-clés */ +hanging-punctuation: first force-end last; +hanging-punctuation: first allow-end last; + +/* Valeurs globales */ +hanging-punctuation: inherit; +hanging-punctuation: initial; +hanging-punctuation: unset; ++ +
Cette propriété peut être définie grâce à une, deux ou trois valeurs :
+ +first avec un des mots-clés parmi : last, allow-end ou force-endlast avec un des mots-clés parmi : last, allow-end ou force-endfirst, allow-end et lastfirst, force-end et lastnonefirstlastforce-endallow-end<p> + Lorem ipsum dolor sit amet, consectetur + adipiscing elit. Curabitur dignissim nunc + mauris, et sollicitudin est scelerisque + sed. Praesent laoreet tortor massa, sit + amet vulputate nulla pharetra ut. Proin + ornare commodo sodales. Class aptent + taciti sociosqu ad litora torquent per + conubia nostra, per inceptos himenaeos. +</p>+ +
p {
+ hanging-punctuation: first;
+ margin: .5rem;
+}
+
+{{EmbedLiveSample('Exemple')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#hanging-punctuation-property', 'hanging-punctuation')}} | +{{Spec2('CSS3 Text')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.hanging-punctuation")}}
diff --git a/files/fr/web/css/height/index.html b/files/fr/web/css/height/index.html deleted file mode 100644 index e1e0f46885..0000000000 --- a/files/fr/web/css/height/index.html +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: height -slug: Web/CSS/height -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/height ---- -La propriété height définit la hauteur de la boîte de contenu d'un élément. La boîte de contenu est à l'intérieur de la boîte de remplissage (padding) qui est à l'intérieur de la boîte de bordure qui est elle-même à l'intérieur de la boîte de marge de l'élément. Si la propriété {{cssxref("box-sizing")}} vaut border-box, cette propriété détermine la hauteur de la boîte de marge.
Les propriétés {{cssxref("min-height")}} et {{cssxref("max-height")}} surchargent la propriété height.
/* Valeur avec un mot-clé */ -height: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -height: 120px; -height: 10em; - -/* Valeurs relatives proportionnelles */ -/* Type <percentage> */ -height: 75%; - -/* Valeurs globales */ -height: inherit; -height: initial; -height: unset; -- -
<length><percentage>border-box {{experimental_inline}}content-box {{experimental_inline}}autofill {{experimental_inline}}fill-available dans l'axe du sens de lecture ou la taille fill-available dans l'axe perpendiculaire au sens de lecture selon le mode d'écriture.max-content {{experimental_inline}}min-content {{experimental_inline}}available {{experimental_inline}}fit-content {{experimental_inline}}div {
- width: 250px;
- margin-bottom: 5px;
- border: 3px solid #999999;
-}
-
-#red {
- height: 50px;
-}
-
-#green {
- height: 25px;
-}
-
-#parent {
- height: 100px;
-}
-
-#child {
- height: 50%;
- width: 75%;
-}
-
-<div id="red"> - <span>Je mesure 50 pixels de haut.</span> -</div> -<div id="green"> - <span>Et moi je mesure 25 pixels de haut.</span> -</div> -<div id="parent"> - <div id="child"> - <span>Je suis moitié moins haut que mon parent.</span> - </div> -</div> -- -
{{EmbedLiveSample('Exemple')}}
- -Veiller à s'assurer que les éléments ciblés avec une règle utilisant height ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'width')}} | -{{Spec2('CSS3 Sizing')}} | -Ajout des mots-clés max-content, min-content, available, fit-content. |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'height')}} | -{{Spec2('CSS3 Transitions')}} | -height peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'visudet.html#the-height-property', 'height')}} | -{{Spec2('CSS2.1')}} | -Ajout de la prise en charge des valeurs de type {{cssxref("<length>")}} et précision sur les éléments auxquels la propriété s'applique. | -
| {{SpecName('CSS1', '#height', 'height')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.height")}}
- -La propriété height définit la hauteur de la boîte de contenu d'un élément. La boîte de contenu est à l'intérieur de la boîte de remplissage (padding) qui est à l'intérieur de la boîte de bordure qui est elle-même à l'intérieur de la boîte de marge de l'élément. Si la propriété {{cssxref("box-sizing")}} vaut border-box, cette propriété détermine la hauteur de la boîte de marge.
Les propriétés {{cssxref("min-height")}} et {{cssxref("max-height")}} surchargent la propriété height.
/* Valeur avec un mot-clé */ +height: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +height: 120px; +height: 10em; + +/* Valeurs relatives proportionnelles */ +/* Type <percentage> */ +height: 75%; + +/* Valeurs globales */ +height: inherit; +height: initial; +height: unset; ++ +
<length><percentage>border-box {{experimental_inline}}content-box {{experimental_inline}}autofill {{experimental_inline}}fill-available dans l'axe du sens de lecture ou la taille fill-available dans l'axe perpendiculaire au sens de lecture selon le mode d'écriture.max-content {{experimental_inline}}min-content {{experimental_inline}}available {{experimental_inline}}fit-content {{experimental_inline}}div {
+ width: 250px;
+ margin-bottom: 5px;
+ border: 3px solid #999999;
+}
+
+#red {
+ height: 50px;
+}
+
+#green {
+ height: 25px;
+}
+
+#parent {
+ height: 100px;
+}
+
+#child {
+ height: 50%;
+ width: 75%;
+}
+
+<div id="red"> + <span>Je mesure 50 pixels de haut.</span> +</div> +<div id="green"> + <span>Et moi je mesure 25 pixels de haut.</span> +</div> +<div id="parent"> + <div id="child"> + <span>Je suis moitié moins haut que mon parent.</span> + </div> +</div> ++ +
{{EmbedLiveSample('Exemple')}}
+ +Veiller à s'assurer que les éléments ciblés avec une règle utilisant height ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'width')}} | +{{Spec2('CSS3 Sizing')}} | +Ajout des mots-clés max-content, min-content, available, fit-content. |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'height')}} | +{{Spec2('CSS3 Transitions')}} | +height peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'visudet.html#the-height-property', 'height')}} | +{{Spec2('CSS2.1')}} | +Ajout de la prise en charge des valeurs de type {{cssxref("<length>")}} et précision sur les éléments auxquels la propriété s'applique. | +
| {{SpecName('CSS1', '#height', 'height')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.height")}}
+ +La propriété hyphens indique au navigateur comment gérer les traits d'union lors des sauts de ligne. Grâce à elle, on peut empêcher l'utilisation des traits d'union en fin de ligne, contrôler quand ils sont ajoutés ou laisser le navigateur décider.
Les règles relatives aux traits d'union en fin de ligne dépendent de la langue utilisée. En HTML, la langue est définie grâce à l'attribut lang et les navigateurs n'appliqueront les règles que si cet attribut est présent et que le dictionnaire correspondant (pour la gestion des traits d'union et des fins de ligne) est disponible. Pour des documents XML, on utilisera l'attribut xml:lang.
Note : Les règles exactes qui définissent l'application des traits d'union en fin de ligne ne sont pas explicitement définies par la spécification, aussi, le comportement peut varier entre les navigateurs.
-/* Valeurs avec un mot-clé */ -hyphens: none; -hyphens: manual; -hyphens: auto; - -/* Valeurs globales */ -hyphens: inherit; -hyphens: initial; -hyphens: unset; -- -
nonemanualautoNote : Le comportement défini par auto dépend de la langue indiquée par le document. Aussi, il faut indiquer la langue via l'attribut HTML lang pour s'assurer que les fins de ligne et les traits d'union sont bien gérés selon la langue indiquée.
Deux caractères Unicode peuvent être utilisés manuellement pour indiquer des emplacement où effectuer des sauts de ligne :
- -­ pour insérer ce caractère.Dans cet exemple, on crée trois classes CSS pour illustrer chacune des configurations possibles pour la propriété hyphens.
p {
- width: 55px;
- border: 1px solid black;
- }
-p.none {
- -webkit-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
-}
-p.manual {
- -webkit-hyphens: manual;
- -ms-hyphens: manual;
- hyphens: manual;
-}
-p.auto {
- -webkit-hyphens: auto;
- -ms-hyphens: auto;
- hyphens: auto;
-}
-
-<ul> - <li><code>none</code>: aucun trait d'union, dépassement si nécessaire - <p lang="en" class="none">An extreme­ly long English word</p> - </li> - <li><code>manual</code>: un trait d'union uniquement à &hyphen; ou &shy; (si nécessaire) - <p lang="en" class="manual">An extreme­ly long English word</p> - </li> - <li><code>auto</code>: un trait d'union où l'algorithme l'estime nécessaire - <p lang="en" class="auto">An extreme­ly long English word</p> - </li> -</ul> -- -
{{EmbedLiveSample("Exemples", "100%", "490'")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Text", "#hyphens-property", "hyphens")}} | -{{Spec2("CSS3 Text")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.hyphens")}}
- -La propriété hyphens indique au navigateur comment gérer les traits d'union lors des sauts de ligne. Grâce à elle, on peut empêcher l'utilisation des traits d'union en fin de ligne, contrôler quand ils sont ajoutés ou laisser le navigateur décider.
Les règles relatives aux traits d'union en fin de ligne dépendent de la langue utilisée. En HTML, la langue est définie grâce à l'attribut lang et les navigateurs n'appliqueront les règles que si cet attribut est présent et que le dictionnaire correspondant (pour la gestion des traits d'union et des fins de ligne) est disponible. Pour des documents XML, on utilisera l'attribut xml:lang.
Note : Les règles exactes qui définissent l'application des traits d'union en fin de ligne ne sont pas explicitement définies par la spécification, aussi, le comportement peut varier entre les navigateurs.
+/* Valeurs avec un mot-clé */ +hyphens: none; +hyphens: manual; +hyphens: auto; + +/* Valeurs globales */ +hyphens: inherit; +hyphens: initial; +hyphens: unset; ++ +
nonemanualautoNote : Le comportement défini par auto dépend de la langue indiquée par le document. Aussi, il faut indiquer la langue via l'attribut HTML lang pour s'assurer que les fins de ligne et les traits d'union sont bien gérés selon la langue indiquée.
Deux caractères Unicode peuvent être utilisés manuellement pour indiquer des emplacement où effectuer des sauts de ligne :
+ +­ pour insérer ce caractère.Dans cet exemple, on crée trois classes CSS pour illustrer chacune des configurations possibles pour la propriété hyphens.
p {
+ width: 55px;
+ border: 1px solid black;
+ }
+p.none {
+ -webkit-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+p.manual {
+ -webkit-hyphens: manual;
+ -ms-hyphens: manual;
+ hyphens: manual;
+}
+p.auto {
+ -webkit-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+<ul> + <li><code>none</code>: aucun trait d'union, dépassement si nécessaire + <p lang="en" class="none">An extreme­ly long English word</p> + </li> + <li><code>manual</code>: un trait d'union uniquement à &hyphen; ou &shy; (si nécessaire) + <p lang="en" class="manual">An extreme­ly long English word</p> + </li> + <li><code>auto</code>: un trait d'union où l'algorithme l'estime nécessaire + <p lang="en" class="auto">An extreme­ly long English word</p> + </li> +</ul> ++ +
{{EmbedLiveSample("Exemples", "100%", "490'")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Text", "#hyphens-property", "hyphens")}} | +{{Spec2("CSS3 Text")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.hyphens")}}
+ +Un sélecteur d'identifiant (ID selector) permet, pour un document HTML, de cibler un élément grâce à la valeur de son attribut {{htmlattrxref("ID")}}. Il faut que la valeur soit exactement la même que celle du sélecteur pour que l'élément soit effectivement ciblé.
- -/* L'élément avec l'identifiant id="demo" */
-#demo {
- border: red 2px solid;
-}
-
-#valeur_identifiant { déclarations }
-
-Note : Cela est équivalent à la notation suivante qui utilise un {{cssxref("Sélecteurs_d_attribut", "sélecteur d'attribut")}}:
- -[id=valeur_identifiant] { déclarations }
-#identifie {
- background-color: blue;
-}
-
-
-<span id="identifie">Voici un span avec du texte.</span> -<span>Et un autre (mais sans identifiant).</span> -- -
{{EmbedLiveSample("Exemples", 200, 50)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Selectors", "#id-selectors", "ID selectors")}} | -{{Spec2("CSS4 Selectors")}} | -- |
| {{SpecName("CSS3 Selectors", "#id-selectors", "ID selectors")}} | -{{Spec2("CSS3 Selectors")}} | -- |
| {{SpecName("CSS2.1", "selector.html#id-selectors", "ID selectors")}} | -{{Spec2("CSS2.1")}} | -- |
| {{SpecName("CSS1", "#id-as-selector", "ID selectors")}} | -{{Spec2("CSS1")}} | -Définition initiale. | -
{{Compat("css.selectors.id")}}
diff --git a/files/fr/web/css/id_selectors/index.md b/files/fr/web/css/id_selectors/index.md new file mode 100644 index 0000000000..ee74a72867 --- /dev/null +++ b/files/fr/web/css/id_selectors/index.md @@ -0,0 +1,86 @@ +--- +title: Sélecteurs d'ID +slug: Web/CSS/ID_selectors +tags: + - CSS + - Débutant + - Reference + - Sélecteur +translation_of: Web/CSS/ID_selectors +original_slug: Web/CSS/Sélecteurs_d_ID +--- +Un sélecteur d'identifiant (ID selector) permet, pour un document HTML, de cibler un élément grâce à la valeur de son attribut {{htmlattrxref("ID")}}. Il faut que la valeur soit exactement la même que celle du sélecteur pour que l'élément soit effectivement ciblé.
+ +/* L'élément avec l'identifiant id="demo" */
+#demo {
+ border: red 2px solid;
+}
+
+#valeur_identifiant { déclarations }
+
+Note : Cela est équivalent à la notation suivante qui utilise un {{cssxref("Sélecteurs_d_attribut", "sélecteur d'attribut")}}:
+ +[id=valeur_identifiant] { déclarations }
+#identifie {
+ background-color: blue;
+}
+
+
+<span id="identifie">Voici un span avec du texte.</span> +<span>Et un autre (mais sans identifiant).</span> ++ +
{{EmbedLiveSample("Exemples", 200, 50)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Selectors", "#id-selectors", "ID selectors")}} | +{{Spec2("CSS4 Selectors")}} | ++ |
| {{SpecName("CSS3 Selectors", "#id-selectors", "ID selectors")}} | +{{Spec2("CSS3 Selectors")}} | ++ |
| {{SpecName("CSS2.1", "selector.html#id-selectors", "ID selectors")}} | +{{Spec2("CSS2.1")}} | ++ |
| {{SpecName("CSS1", "#id-as-selector", "ID selectors")}} | +{{Spec2("CSS1")}} | +Définition initiale. | +
{{Compat("css.selectors.id")}}
diff --git a/files/fr/web/css/image-orientation/index.html b/files/fr/web/css/image-orientation/index.html deleted file mode 100644 index 1e5b7e4b90..0000000000 --- a/files/fr/web/css/image-orientation/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: image-orientation -slug: Web/CSS/image-orientation -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/image-orientation ---- -La propriété image-orientation décrit la façon d'obtenir l'orientation correcte d'une image quelle que soit la disposition du document. Cette propriété ne doit pas être utilisée afin de tourner l'image pour d'autres cas, si besoin, on pourra utiliser la propriété {{cssxref("transform")}} avec la fonction rotate.
Attention : Cette propriété sera vraisemblablement dépréciée prochainement. Les fonctionnalités associées deviendront des propriétés de l'élément {{HTMLElement("img")}} et/ou de l'élément {{HTMLElement("picture")}} (excepté peut-être from-image).
/* Valeurs d'angle */ -/* Type <angle> */ -image-orientation: 0deg; -image-orientation: 6.4deg; /* Arrondie à 0deg */ -image-orientation: -90deg; /* Équivalent à 270deg, la - valeur calculée normalisée */ - -/* Valeurs avec un mot-clé */ -image-orientation: from-image; /* Utilise les données EXIF - de l'image */ -image-orientation: flip; /* Pas de rotation mais un - retournement horizontal */ - -/* Valeurs avec deux arguments */ -image-orientation: 90deg flip; /* Rotation de 90deg, puis - retournement horizontal */ - -/* Valeurs globales */ -image-orientation: inherit; -image-orientation: initial; -image-orientation: unset; -- -
from-image<angle>flip0deg sera utilisée.Cette propriété n'est pas conçue pour appliquer une rotation arbitraire sur une image. Elle permet uniquement de corriger un orientation erronée. C'est pour cette raison que la valeur est arrondie au quart de tour le plus proche.
- -De la même façon, cette propriété n'est pas conçue pour gérer le passage de paysage en portrait. image-orientation ne modifie que les images, il faudrait apporter les modifications au niveau de la disposition.
#image {
- /* Peut-être modifiée dans l'exemple */
- image-orientation: flip;
-}
-
-
-
-
-
-
-{{EmbedLiveSample("Exemples", "100%", 240)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Images', '#image-orientation', 'image-orientation')}} | -{{Spec2('CSS4 Images')}} | -Ajout des mots-clés from-image et flip. |
-
| {{SpecName('CSS3 Images', '#image-orientation', 'image-orientation')}} | -{{Spec2('CSS3 Images')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.image-orientation")}}
- -La propriété image-orientation décrit la façon d'obtenir l'orientation correcte d'une image quelle que soit la disposition du document. Cette propriété ne doit pas être utilisée afin de tourner l'image pour d'autres cas, si besoin, on pourra utiliser la propriété {{cssxref("transform")}} avec la fonction rotate.
Attention : Cette propriété sera vraisemblablement dépréciée prochainement. Les fonctionnalités associées deviendront des propriétés de l'élément {{HTMLElement("img")}} et/ou de l'élément {{HTMLElement("picture")}} (excepté peut-être from-image).
/* Valeurs d'angle */ +/* Type <angle> */ +image-orientation: 0deg; +image-orientation: 6.4deg; /* Arrondie à 0deg */ +image-orientation: -90deg; /* Équivalent à 270deg, la + valeur calculée normalisée */ + +/* Valeurs avec un mot-clé */ +image-orientation: from-image; /* Utilise les données EXIF + de l'image */ +image-orientation: flip; /* Pas de rotation mais un + retournement horizontal */ + +/* Valeurs avec deux arguments */ +image-orientation: 90deg flip; /* Rotation de 90deg, puis + retournement horizontal */ + +/* Valeurs globales */ +image-orientation: inherit; +image-orientation: initial; +image-orientation: unset; ++ +
from-image<angle>flip0deg sera utilisée.Cette propriété n'est pas conçue pour appliquer une rotation arbitraire sur une image. Elle permet uniquement de corriger un orientation erronée. C'est pour cette raison que la valeur est arrondie au quart de tour le plus proche.
+ +De la même façon, cette propriété n'est pas conçue pour gérer le passage de paysage en portrait. image-orientation ne modifie que les images, il faudrait apporter les modifications au niveau de la disposition.
#image {
+ /* Peut-être modifiée dans l'exemple */
+ image-orientation: flip;
+}
+
+
+
+
+
+
+{{EmbedLiveSample("Exemples", "100%", 240)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Images', '#image-orientation', 'image-orientation')}} | +{{Spec2('CSS4 Images')}} | +Ajout des mots-clés from-image et flip. |
+
| {{SpecName('CSS3 Images', '#image-orientation', 'image-orientation')}} | +{{Spec2('CSS3 Images')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.image-orientation")}}
+ +La propriété image-rendering fournit une indication au navigateur à propos de l'algorithme qui devrait être utilisé pour redimensionner les images. Elle s'applique à l'élément visé, aux images fournies via les autres propriétés CSS et aux éléments fils.
L'agent utilisateur redimensionnera une image si l'auteur de la page indique des dimensions différentes que la taille naturelle de l'image ou si l'utilisateur interagit en zoomant par exemple. Cette propriété n'a aucun effet sur les images qui ne sont pas redimensionnées. Si, par exemple, la taille naturelle de l'image est 100px par 100px et que l'auteur indique les dimensions 200px par 200px (ou 50px par 50px), l'image sera agrandie (ou réduite) aux nouvelles dimensions via l'algorithme indiqué. Le redimensionnement peut aussi avoir lieu suite aux interactions utilisateurs (avec un zoom par exemple).
/*Valeurs avec un mot-clé*/ -image-rendering: auto; -image-rendering: crisp-edges; -image-rendering: pixelated; - -/* Valeurs globales */ -image-rendering: inherit; -image-rendering: initial; -image-rendering: unset; -- -
autocrisp-edgeshigh-quality{{Experimental_inline}}smooth mais favorise un redimensionnement avec une qualité élevée. Si les ressources du système sont limitées, ce sont les images ciblées avec high-quality qui devraient être priorisées par rapport aux autres s'il est nécessaire de dégrader la qualité.pixelatedauto.smooth{{Experimental_inline}}Note : Les valeurs optimizeQuality et optimizeSpeed qui étaient présentes dans un brouillon de la spécification (et qui provenaient de la spécification équivalente pour SVG) sont synonymes respectifs de smooth et pixelated.
.pixels_petits {
- height: 50px;
- width: 50px;
-}
-
-.pixels_grands {
- height: 69px;
- width: 69px;
-}
-
-.chapeau_petit {
- height: 89px;
- width: 89px;
-}
-.defaut {
- image-rendering: auto;
-}
-
-.contraste {
- image-rendering: crisp-edges;
-}
-
-
-<p>Avec <code>auto</code> :</p> -<img class="pixels_petits defaut" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> -<img class="pixels_grands defaut" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> -<img class="chapeau_petit defaut" alt="chapeau" src="https://mdn.mozillademos.org/files/2767/hut.jpg"/> - -<p>Avec <code>crisp-edges</code> :</p> -<img class="pixels_petits contraste" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> -<img class="pixels_grands contraste" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> -<img class="chapeau_petit contraste" alt="chapeau" src="https://mdn.mozillademos.org/files/2767/hut.jpg"/> -- -
{{EmbedLiveSample("Exemples","100%","100%")}}
- -Note : En pratique, les règles pixelated et crisp-edges peuvent être combinées en cas de besoin (l'une pouvant combler les éventuelles manques de l'autre et vice versa). Si besoin, un {{HTMLElement("canvas")}} peut fournir une alternative pour les valeurs crisp-edge et optimize-contrast via la manipulation manuelle des données de l'image ou avec imageSmoothingEnabled.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Images', '#the-image-rendering', 'image-rendering')}} | -{{Spec2('CSS3 Images')}} | -Définition initiale. | -
Note : Cette valeur était, initialement, proche de la propriété SVG image-rendering. Cependant, ces valeurs ont « divergé » et sont assez différentes désormais.
{{cssinfo}}
- -{{Compat("css.properties.image-rendering")}}
diff --git a/files/fr/web/css/image-rendering/index.md b/files/fr/web/css/image-rendering/index.md new file mode 100644 index 0000000000..d0aef4a32e --- /dev/null +++ b/files/fr/web/css/image-rendering/index.md @@ -0,0 +1,127 @@ +--- +title: image-rendering +slug: Web/CSS/Image-rendering +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/image-rendering +--- +La propriété image-rendering fournit une indication au navigateur à propos de l'algorithme qui devrait être utilisé pour redimensionner les images. Elle s'applique à l'élément visé, aux images fournies via les autres propriétés CSS et aux éléments fils.
L'agent utilisateur redimensionnera une image si l'auteur de la page indique des dimensions différentes que la taille naturelle de l'image ou si l'utilisateur interagit en zoomant par exemple. Cette propriété n'a aucun effet sur les images qui ne sont pas redimensionnées. Si, par exemple, la taille naturelle de l'image est 100px par 100px et que l'auteur indique les dimensions 200px par 200px (ou 50px par 50px), l'image sera agrandie (ou réduite) aux nouvelles dimensions via l'algorithme indiqué. Le redimensionnement peut aussi avoir lieu suite aux interactions utilisateurs (avec un zoom par exemple).
/*Valeurs avec un mot-clé*/ +image-rendering: auto; +image-rendering: crisp-edges; +image-rendering: pixelated; + +/* Valeurs globales */ +image-rendering: inherit; +image-rendering: initial; +image-rendering: unset; ++ +
autocrisp-edgeshigh-quality{{Experimental_inline}}smooth mais favorise un redimensionnement avec une qualité élevée. Si les ressources du système sont limitées, ce sont les images ciblées avec high-quality qui devraient être priorisées par rapport aux autres s'il est nécessaire de dégrader la qualité.pixelatedauto.smooth{{Experimental_inline}}Note : Les valeurs optimizeQuality et optimizeSpeed qui étaient présentes dans un brouillon de la spécification (et qui provenaient de la spécification équivalente pour SVG) sont synonymes respectifs de smooth et pixelated.
.pixels_petits {
+ height: 50px;
+ width: 50px;
+}
+
+.pixels_grands {
+ height: 69px;
+ width: 69px;
+}
+
+.chapeau_petit {
+ height: 89px;
+ width: 89px;
+}
+.defaut {
+ image-rendering: auto;
+}
+
+.contraste {
+ image-rendering: crisp-edges;
+}
+
+
+<p>Avec <code>auto</code> :</p> +<img class="pixels_petits defaut" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> +<img class="pixels_grands defaut" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> +<img class="chapeau_petit defaut" alt="chapeau" src="https://mdn.mozillademos.org/files/2767/hut.jpg"/> + +<p>Avec <code>crisp-edges</code> :</p> +<img class="pixels_petits contraste" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> +<img class="pixels_grands contraste" alt="damier" src="https://mdn.mozillademos.org/files/2766/squares.gif"/> +<img class="chapeau_petit contraste" alt="chapeau" src="https://mdn.mozillademos.org/files/2767/hut.jpg"/> ++ +
{{EmbedLiveSample("Exemples","100%","100%")}}
+ +Note : En pratique, les règles pixelated et crisp-edges peuvent être combinées en cas de besoin (l'une pouvant combler les éventuelles manques de l'autre et vice versa). Si besoin, un {{HTMLElement("canvas")}} peut fournir une alternative pour les valeurs crisp-edge et optimize-contrast via la manipulation manuelle des données de l'image ou avec imageSmoothingEnabled.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Images', '#the-image-rendering', 'image-rendering')}} | +{{Spec2('CSS3 Images')}} | +Définition initiale. | +
Note : Cette valeur était, initialement, proche de la propriété SVG image-rendering. Cependant, ces valeurs ont « divergé » et sont assez différentes désormais.
{{cssinfo}}
+ +{{Compat("css.properties.image-rendering")}}
diff --git a/files/fr/web/css/image/index.html b/files/fr/web/css/image/index.html deleted file mode 100644 index ae7382c629..0000000000 --- a/files/fr/web/css/image/index.html +++ /dev/null @@ -1,189 +0,0 @@ ---- -title:Le type de donnée CSS <image> représente une image en deux dimensions. Il existe deux types d'images en CSS : les images statiques (souvent utilisées via une URL (cf. {{cssxref("<url>")}})), et les images générées dynamiquement comme les dégradés (cf. {{cssxref("<gradient>")}}) ou les images construites à partir de fragments de l'arbre du DOM ({{CSSxRef("element()")}}). D'autres fonctions peuvent être utilisées pour créer des images comme {{CSSxRef("imagefunction", "image()")}}, {{CSSxRef("image-set")}} et {{CSSxRef("cross-fade()")}}.
Les images peuvent être utilisées pour de nombreuses propriétés CSS dont, par exemple, {{cssxref("background-image")}}, {{cssxref("border-image")}}, {{cssxref("content")}}, {{cssxref("list-style-image")}} et {{cssxref("cursor")}}.
- -Le CSS permet de manipuler différentes sortes d'images :
- -Le CSS détermine la taille concrète de l'objet en utilisant ces dimensions intrinsèques, la taille spécifiée définie par les propriétés CSS comme {{cssxref("width")}}, {{cssxref("height")}} ou {{cssxref("background-size")}}, et la taille par défaut de l'objet définie en fonction de la propriété utilisée :
- -| Type d'objet | -Taille par défaut de l'objet | -
|---|---|
| {{cssxref("background-image")}} | -La taille de la zone de positionnement de l'arrière-plan | -
| {{cssxref("list-style-image")}} | -La taille d'un caractère de 1em |
-
| {{cssxref("border-image-source")}} | -La taille de la zone de bordure de l'élément | -
| {{cssxref("cursor")}} | -La dimension correspondant à la taille d'un curseur sur le système utilisé | -
| {{cssxref("mask-image")}} | -? | -
| {{cssxref("shape-outside")}} | -? | -
| {{cssxref("mask-border-source")}} | -? | -
{{cssxref("symbols()")}} pour @counter-style |
- Une fonctionnalité en cours de discussion. Si elle est prise en charge, la taille utilisée sera celle des curseurs utilisés par le système. | -
| {{cssxref("content")}} avec les pseudo-éléments {{cssxref("::after")}} et {{cssxref("::before")}} | -Un rectangle de 300px × 150px |
-
La taille concrète de l'objet est calculée selon l'algorithme suivant :
- -Les images peuvent être utilisées pour de nombreuses propriétés CSS comme {{cssxref("background-image")}}, {{cssxref("border-image")}}, {{cssxref("content")}}, {{cssxref("list-style-image")}} ou {{cssxref("cursor")}}.
- -Note : tous les navigateurs ne supportent pas n'importe quel type d'image sur n'importe quelle propriété. Voir la section compatibilité des navigateurs pour une liste explicative.
-Un type de donnée CSS <image> peut représenter un type parmi les suivants :
url() ;Voici des exemples valides d'images :
- -url(test.jpg) /* La fonction url() fonctionne tant que test.jpg est bien une image */
-linear-gradient(blue, red) /* Un dégradé (<gradient>) */
-element(#colonne3) /* Utilisation d'un élément de la page via la fonction element(),
- si colonne3 est bien un identifiant CSS existant. */
-image(ltr 'arrow.png#xywh=0,0,16,16', red)
- /* Une section de 16x16 pixels de l'image arrow.png et qui démarre au coin
- supérieur gauche de l'image et qui sera utilisée si arrow.png est à un
- format pris en charge. Sinon, ce sera un fond rouge qui sera utilisé.
- Si la langue est écrite de gauche à droite, l'image sera inversée
- horizontalement. */
-cross-fade(20% url(vingt.png), url(quatrevingt.png));
- /* Deux images superposées où « vingt » est 20%
- opaque et « quatrevingt » compose les 80%
- restants. */
-image-set('test.jpg' 1x, 'text-2x.jpg' 2x);
- /* Un ensemble d'images avec différentes résolutions. */
-
-
-Voici des exemples invalides :
- -nourl.jpg /* Le fichier de l'image doit être ciblé via la fonction url(). */
-url(report.pdf) /* Le fichier référencé par la fonction url() doit être une image. */
-element(#fakeid) /* Ne fonctionne pas si 'fakeid' n'est pas un identifiant existant. */
-image(z.jpg#xy=0,0) /* L'indicateur de fragment doit avoir la forme xywh=#,#,#,# */
-image-set('chat.jpg' 1x, 'chien.jpg' 1x) /* Chaque image doit avoir une résolution différente */
-
-
-Les navigateurs ne fournissent pas d'information aux outils d'assistance pour les images d'arrière-plan. Cela est particulièrement important pour les lecteurs d'écran car ces derniers ne pourront pas annoncer la présence de ces informations aux utilisateurs. Si l'image contient des informations critiques pour la compréhension générale de la page, mieux vaudra décrire ces informations de façon sémantique dans le document.
- - - -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Images", "#typedef-image", "<image>")}} | -{{Spec2('CSS3 Images')}} | -Définition initiale. Avant CSS3, il n'existait pas de type défini de façon explicite pour les images. Celles-ci pouvaient uniquement être utilisées via la notation fonctionnelle url(). |
-
| {{SpecName("CSS4 Images", "#typedef-image", "<image>")}} | -{{Spec2('CSS4 Images')}} | -Ajout de {{cssxref("element()")}}, {{cssxref("image()")}}, {{cssxref("image-set()")}}, {{cssxref("conic-gradient")}}, {{cssxref("repeating-conic-gradient", "repeating-conic-gradient()")}} et {{cssxref("image-resolution")}}. | -
{{Compat("css.types.image")}}
- -Le type de donnée CSS <image> représente une image en deux dimensions. Il existe deux types d'images en CSS : les images statiques (souvent utilisées via une URL (cf. {{cssxref("<url>")}})), et les images générées dynamiquement comme les dégradés (cf. {{cssxref("<gradient>")}}) ou les images construites à partir de fragments de l'arbre du DOM ({{CSSxRef("element()")}}). D'autres fonctions peuvent être utilisées pour créer des images comme {{CSSxRef("imagefunction", "image()")}}, {{CSSxRef("image-set")}} et {{CSSxRef("cross-fade()")}}.
Les images peuvent être utilisées pour de nombreuses propriétés CSS dont, par exemple, {{cssxref("background-image")}}, {{cssxref("border-image")}}, {{cssxref("content")}}, {{cssxref("list-style-image")}} et {{cssxref("cursor")}}.
+ +Le CSS permet de manipuler différentes sortes d'images :
+ +Le CSS détermine la taille concrète de l'objet en utilisant ces dimensions intrinsèques, la taille spécifiée définie par les propriétés CSS comme {{cssxref("width")}}, {{cssxref("height")}} ou {{cssxref("background-size")}}, et la taille par défaut de l'objet définie en fonction de la propriété utilisée :
+ +| Type d'objet | +Taille par défaut de l'objet | +
|---|---|
| {{cssxref("background-image")}} | +La taille de la zone de positionnement de l'arrière-plan | +
| {{cssxref("list-style-image")}} | +La taille d'un caractère de 1em |
+
| {{cssxref("border-image-source")}} | +La taille de la zone de bordure de l'élément | +
| {{cssxref("cursor")}} | +La dimension correspondant à la taille d'un curseur sur le système utilisé | +
| {{cssxref("mask-image")}} | +? | +
| {{cssxref("shape-outside")}} | +? | +
| {{cssxref("mask-border-source")}} | +? | +
{{cssxref("symbols()")}} pour @counter-style |
+ Une fonctionnalité en cours de discussion. Si elle est prise en charge, la taille utilisée sera celle des curseurs utilisés par le système. | +
| {{cssxref("content")}} avec les pseudo-éléments {{cssxref("::after")}} et {{cssxref("::before")}} | +Un rectangle de 300px × 150px |
+
La taille concrète de l'objet est calculée selon l'algorithme suivant :
+ +Les images peuvent être utilisées pour de nombreuses propriétés CSS comme {{cssxref("background-image")}}, {{cssxref("border-image")}}, {{cssxref("content")}}, {{cssxref("list-style-image")}} ou {{cssxref("cursor")}}.
+ +Note : tous les navigateurs ne supportent pas n'importe quel type d'image sur n'importe quelle propriété. Voir la section compatibilité des navigateurs pour une liste explicative.
+Un type de donnée CSS <image> peut représenter un type parmi les suivants :
url() ;Voici des exemples valides d'images :
+ +url(test.jpg) /* La fonction url() fonctionne tant que test.jpg est bien une image */
+linear-gradient(blue, red) /* Un dégradé (<gradient>) */
+element(#colonne3) /* Utilisation d'un élément de la page via la fonction element(),
+ si colonne3 est bien un identifiant CSS existant. */
+image(ltr 'arrow.png#xywh=0,0,16,16', red)
+ /* Une section de 16x16 pixels de l'image arrow.png et qui démarre au coin
+ supérieur gauche de l'image et qui sera utilisée si arrow.png est à un
+ format pris en charge. Sinon, ce sera un fond rouge qui sera utilisé.
+ Si la langue est écrite de gauche à droite, l'image sera inversée
+ horizontalement. */
+cross-fade(20% url(vingt.png), url(quatrevingt.png));
+ /* Deux images superposées où « vingt » est 20%
+ opaque et « quatrevingt » compose les 80%
+ restants. */
+image-set('test.jpg' 1x, 'text-2x.jpg' 2x);
+ /* Un ensemble d'images avec différentes résolutions. */
+
+
+Voici des exemples invalides :
+ +nourl.jpg /* Le fichier de l'image doit être ciblé via la fonction url(). */
+url(report.pdf) /* Le fichier référencé par la fonction url() doit être une image. */
+element(#fakeid) /* Ne fonctionne pas si 'fakeid' n'est pas un identifiant existant. */
+image(z.jpg#xy=0,0) /* L'indicateur de fragment doit avoir la forme xywh=#,#,#,# */
+image-set('chat.jpg' 1x, 'chien.jpg' 1x) /* Chaque image doit avoir une résolution différente */
+
+
+Les navigateurs ne fournissent pas d'information aux outils d'assistance pour les images d'arrière-plan. Cela est particulièrement important pour les lecteurs d'écran car ces derniers ne pourront pas annoncer la présence de ces informations aux utilisateurs. Si l'image contient des informations critiques pour la compréhension générale de la page, mieux vaudra décrire ces informations de façon sémantique dans le document.
+ + + +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Images", "#typedef-image", "<image>")}} | +{{Spec2('CSS3 Images')}} | +Définition initiale. Avant CSS3, il n'existait pas de type défini de façon explicite pour les images. Celles-ci pouvaient uniquement être utilisées via la notation fonctionnelle url(). |
+
| {{SpecName("CSS4 Images", "#typedef-image", "<image>")}} | +{{Spec2('CSS4 Images')}} | +Ajout de {{cssxref("element()")}}, {{cssxref("image()")}}, {{cssxref("image-set()")}}, {{cssxref("conic-gradient")}}, {{cssxref("repeating-conic-gradient", "repeating-conic-gradient()")}} et {{cssxref("image-resolution")}}. | +
{{Compat("css.types.image")}}
+ +La propriété ime-mode contrôle l'état de l'éditeur de méthode d'entrée (IME) pour la saisie des champs textuels.
/* Valeurs avec un mot-clé */ -ime-mode: auto; -ime-mode: normal; -ime-mode: active; -ime-mode: inactive; -ime-mode: disabled; - -/* Valeurs globales */ -ime-mode: inherit; -ime-mode: initial; -ime-mode: unset; -- -
Selon la spécification :
- -« ime-mode » est en quelques sortes une propriété implémentée par quelques navigateurs, qui pose problème et qui est officiellement rendue obsolète par cette spécification
Aussi, la spécification indique aux agents utilisateurs de ne pas prendre en charge ime-mode et il est déconseillé d'utiliser cette propriété dans des feuilles de styles.
La propriété ime-mode est partiellement implémentée et de façon hétérogène entre les différents navigateurs. Elle est apparue sous la forme d'une extension Microsoft avec Internet Explorer 5 : {{spec("http://msdn.microsoft.com/library/ms530767(VS.85).aspx","-ms-ime-mode Attribute | imeMode Property")}}.
Note : Il n'est, en général, pas pertinent de modifier le mode IME d'un site. Cette propriété ne devrait être utilisée que pour des applications web privées ou pour annuler une modification de cette propriété par du code historique.
-La valeur de cette propriété peut être l'un des mots-clés définis ci-après.
- -autonormalactiveinactivedisabled<input type="text" name="name" value="initial value" style="ime-mode: disabled">- -
Cet exemple désactive l'IME pour un champ donné (par exemple pour saisir des données dans une base de données qui ne supporte pas certains jeux de caractères).
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#input-method-editor', 'ime-mode')}} | -{{Spec2('CSS3 Basic UI')}} | -Définition initiale. Rend ime-mode obsolète. |
-
{{cssinfo}}
- -{{Compat("css.properties.ime-mode")}}
- -La propriété ime-mode contrôle l'état de l'éditeur de méthode d'entrée (IME) pour la saisie des champs textuels.
/* Valeurs avec un mot-clé */ +ime-mode: auto; +ime-mode: normal; +ime-mode: active; +ime-mode: inactive; +ime-mode: disabled; + +/* Valeurs globales */ +ime-mode: inherit; +ime-mode: initial; +ime-mode: unset; ++ +
Selon la spécification :
+ +« ime-mode » est en quelques sortes une propriété implémentée par quelques navigateurs, qui pose problème et qui est officiellement rendue obsolète par cette spécification
Aussi, la spécification indique aux agents utilisateurs de ne pas prendre en charge ime-mode et il est déconseillé d'utiliser cette propriété dans des feuilles de styles.
La propriété ime-mode est partiellement implémentée et de façon hétérogène entre les différents navigateurs. Elle est apparue sous la forme d'une extension Microsoft avec Internet Explorer 5 : {{spec("http://msdn.microsoft.com/library/ms530767(VS.85).aspx","-ms-ime-mode Attribute | imeMode Property")}}.
Note : Il n'est, en général, pas pertinent de modifier le mode IME d'un site. Cette propriété ne devrait être utilisée que pour des applications web privées ou pour annuler une modification de cette propriété par du code historique.
+La valeur de cette propriété peut être l'un des mots-clés définis ci-après.
+ +autonormalactiveinactivedisabled<input type="text" name="name" value="initial value" style="ime-mode: disabled">+ +
Cet exemple désactive l'IME pour un champ donné (par exemple pour saisir des données dans une base de données qui ne supporte pas certains jeux de caractères).
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#input-method-editor', 'ime-mode')}} | +{{Spec2('CSS3 Basic UI')}} | +Définition initiale. Rend ime-mode obsolète. |
+
{{cssinfo}}
+ +{{Compat("css.properties.ime-mode")}}
+ +{{CSSRef}}
- -CSS est l'un des langages principaux du Web ouvert et a été standardisé par le W3C. Ce standard évolue sous forme de niveaux (levels), CSS1 est désormais considéré comme obsolète, CSS2.1 correspond à la recommandation et CSS3, qui est découpé en modules plus petits, est en voie de standardisation.
- -La section Apprendre le Web fournit différents modules qui permettent d'apprendre CSS sans connaissance particulière préalable.
- -Le livre de recettes de disposition CSS contient différentes recettes pour mettre en place différentes dispositions courantes. En plus de fournir du code pouvant servir de point de départ, ces recettes illustrent les différentes façons dont les spécifications CSS liées à la disposition peuvent être utilisées ainsi que les choix à faire en tant que développeur.
- -{{CSSRef}}
+ +CSS est l'un des langages principaux du Web ouvert et a été standardisé par le W3C. Ce standard évolue sous forme de niveaux (levels), CSS1 est désormais considéré comme obsolète, CSS2.1 correspond à la recommandation et CSS3, qui est découpé en modules plus petits, est en voie de standardisation.
+ +La section Apprendre le Web fournit différents modules qui permettent d'apprendre CSS sans connaissance particulière préalable.
+ +Le livre de recettes de disposition CSS contient différentes recettes pour mettre en place différentes dispositions courantes. En plus de fournir du code pouvant servir de point de départ, ces recettes illustrent les différentes façons dont les spécifications CSS liées à la disposition peuvent être utilisées ainsi que les choix à faire en tant que développeur.
+ +Le mot-clé inherit est une valeur qui peut être utilisée pour qu'une propriété prenne la valeur calculée de la propriété pour l'élément parent. Cette valeur peut être utilisée sur n'importe quelle propriété CSS, y compris sur la propriété raccourcie {{cssxref("all")}}.
Pour les propriétés héritées, cela accentue le comportement par défaut et ce mot-clé n'est nécessaire que pour surcharger une autre règle.
- -Pour les propriétés non-héritées, cela permettra d'obtenir le comportement indiqué. Ce comportement a peu d'intérêt dans ces cas et mieux vaudra utiliser {{cssxref("initial")}} ou {{cssxref("unset")}}.
- -L'héritage provient toujours de l'élément parent par rapport à l'arbre du document, même si cet élément n'est pas le bloc englobant.
- -p {
- color: green;
-}
-
-.exemple {
- color: inherit;
-}
-
-
-<p>Alice remarqua, avec quelque surprise, qu’en - tombant sur le plancher les cailloux se changeaient - en petits gâteaux, et une brillante idée lui - traversa l’esprit.</p> -<p class="exemple">Elle avala un des gâteaux, et s’aperçut avec - joie qu’elle diminuait rapidement</p> -- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Cascade', '#inherit', 'inherit')}} | -{{Spec2('CSS4 Cascade')}} | -Aucun changement. | -
| {{SpecName('CSS3 Values', "#common-keywords", "inherit")}} | -{{Spec2('CSS3 Values')}} | -Aucun changement {{SpecName('CSS2.1')}} | -
| {{SpecName('CSS2.1', "cascade.html#value-def-inherit", "inherit")}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{Compat("css.types.global_keywords.inherit")}}
- -Le mot-clé inherit est une valeur qui peut être utilisée pour qu'une propriété prenne la valeur calculée de la propriété pour l'élément parent. Cette valeur peut être utilisée sur n'importe quelle propriété CSS, y compris sur la propriété raccourcie {{cssxref("all")}}.
Pour les propriétés héritées, cela accentue le comportement par défaut et ce mot-clé n'est nécessaire que pour surcharger une autre règle.
+ +Pour les propriétés non-héritées, cela permettra d'obtenir le comportement indiqué. Ce comportement a peu d'intérêt dans ces cas et mieux vaudra utiliser {{cssxref("initial")}} ou {{cssxref("unset")}}.
+ +L'héritage provient toujours de l'élément parent par rapport à l'arbre du document, même si cet élément n'est pas le bloc englobant.
+ +p {
+ color: green;
+}
+
+.exemple {
+ color: inherit;
+}
+
+
+<p>Alice remarqua, avec quelque surprise, qu’en + tombant sur le plancher les cailloux se changeaient + en petits gâteaux, et une brillante idée lui + traversa l’esprit.</p> +<p class="exemple">Elle avala un des gâteaux, et s’aperçut avec + joie qu’elle diminuait rapidement</p> ++ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Cascade', '#inherit', 'inherit')}} | +{{Spec2('CSS4 Cascade')}} | +Aucun changement. | +
| {{SpecName('CSS3 Values', "#common-keywords", "inherit")}} | +{{Spec2('CSS3 Values')}} | +Aucun changement {{SpecName('CSS2.1')}} | +
| {{SpecName('CSS2.1', "cascade.html#value-def-inherit", "inherit")}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{Compat("css.types.global_keywords.inherit")}}
+ +Pour chaque propriété CSS, la spécification indique si, par défaut, cette propriété est héritée ou non. Cela permet de définir le comportement qu'on observera lorsqu'aucune valeur n'est spécifiée pour une propriété pour un élément donné.
- -Lorsqu'aucune valeur n'est spécifiée pour une propriété héritée sur un élément, l'élément récupère la valeur calculée de cette propriété appliquée à son élément parent. Seul l'élément racine du document possède la valeur initiale donnée via la spécification.
- -Un exemple caractéristique d'une propriété héritée est la propriété {{cssxref("color")}}. En définissant la règle de style :
- - p { color: green; }
-
-
-Sur le fragment HTML suivant :
- -<p>Ce paragraphe contient du <em>texte mis en emphase text</em>.</p> -- -
On obtient le résultat suivant :
- -{{EmbedLiveSample("Propriétés_héritées")}}
- -Les mots « texte mis en emphase » apparaîtront en vert, car l'élément em a hérité de la valeur de la propriété {{cssxref("color")}} de l'élément p. Il n'obtient pas la valeur initiale de la propriété (qui est la couleur utilisée par l'élément racine lorsque la page ne spécifie aucune couleur).
Lorsqu'aucune valeur n'est définie pour un élément, pour une propriété non héritée, l'élément prendra la valeur initiale de cette propriété (telle qu'indiquée par la spécification).
- -Un exemple caractéristique de propriété non héritée est la propriété {{cssxref("border")}}. En définissant la règle de style :
- - p { border: medium solid; }
-
-
-Sur le fragment de code HTML :
- -<p>Ce paragraphe contient du <em>texte mis en emphase text</em>.</p> -- -
On obtient le résultat suivant :
- -{{EmbedLiveSample("Propriétés_non_héritées")}}
- -Les mots « texte mis en emphase » n'auront pas de bordure (car la valeur initiale de la propriété {{cssxref("border-style") }} est none).
Le mot-clé {{cssxref("inherit") }} permet aux auteurs de pages web de définir l'héritage de façon explicite. Il fonctionne aussi bien pour les propriétés héritées que pour celles qui ne sont pas héritées.
- -Il est possible de contrôler l'héritage de toutes les propriétés grâce à la propriété raccourcie {{cssxref("all")}} afin d'appliquer la valeur indiquée sur toutes les propriétés.
- -Ainsi :
- -font: {
- all: revert;
- font-size: 200%;
- font-weight: bold;
-}
-
-permettra d'annuler la mise en forme de l'agent utilisateur pour l'ensemble des propriétés sauf si celles-ci sont fournies via une feuille de styles de l'utilisateur (qui sont alors utilisées). Ensuite, la taille du texte est doublée et celui-ci est mis en gras.
- -Pour chaque propriété CSS, la spécification indique si, par défaut, cette propriété est héritée ou non. Cela permet de définir le comportement qu'on observera lorsqu'aucune valeur n'est spécifiée pour une propriété pour un élément donné.
+ +Lorsqu'aucune valeur n'est spécifiée pour une propriété héritée sur un élément, l'élément récupère la valeur calculée de cette propriété appliquée à son élément parent. Seul l'élément racine du document possède la valeur initiale donnée via la spécification.
+ +Un exemple caractéristique d'une propriété héritée est la propriété {{cssxref("color")}}. En définissant la règle de style :
+ + p { color: green; }
+
+
+Sur le fragment HTML suivant :
+ +<p>Ce paragraphe contient du <em>texte mis en emphase text</em>.</p> ++ +
On obtient le résultat suivant :
+ +{{EmbedLiveSample("Propriétés_héritées")}}
+ +Les mots « texte mis en emphase » apparaîtront en vert, car l'élément em a hérité de la valeur de la propriété {{cssxref("color")}} de l'élément p. Il n'obtient pas la valeur initiale de la propriété (qui est la couleur utilisée par l'élément racine lorsque la page ne spécifie aucune couleur).
Lorsqu'aucune valeur n'est définie pour un élément, pour une propriété non héritée, l'élément prendra la valeur initiale de cette propriété (telle qu'indiquée par la spécification).
+ +Un exemple caractéristique de propriété non héritée est la propriété {{cssxref("border")}}. En définissant la règle de style :
+ + p { border: medium solid; }
+
+
+Sur le fragment de code HTML :
+ +<p>Ce paragraphe contient du <em>texte mis en emphase text</em>.</p> ++ +
On obtient le résultat suivant :
+ +{{EmbedLiveSample("Propriétés_non_héritées")}}
+ +Les mots « texte mis en emphase » n'auront pas de bordure (car la valeur initiale de la propriété {{cssxref("border-style") }} est none).
Le mot-clé {{cssxref("inherit") }} permet aux auteurs de pages web de définir l'héritage de façon explicite. Il fonctionne aussi bien pour les propriétés héritées que pour celles qui ne sont pas héritées.
+ +Il est possible de contrôler l'héritage de toutes les propriétés grâce à la propriété raccourcie {{cssxref("all")}} afin d'appliquer la valeur indiquée sur toutes les propriétés.
+ +Ainsi :
+ +font: {
+ all: revert;
+ font-size: 200%;
+ font-weight: bold;
+}
+
+permettra d'annuler la mise en forme de l'agent utilisateur pour l'ensemble des propriétés sauf si celles-ci sont fournies via une feuille de styles de l'utilisateur (qui sont alors utilisées). Ensuite, la taille du texte est doublée et celui-ci est mis en gras.
+ +La propriété initial-letter-align définit l'alignement des premières lettres d'un paragraphe lorsque celles-ci sont mises en avant grâce à {{cssxref("initial-letter")}} pour former une lettrine.
/* Valeurs avec un mot-clé */ -initial-letter-align: auto; -initial-letter-align: alphabetic; -initial-letter-align: border-box; -initial-letter-align: hanging; -initial-letter-align: hebrew; -initial-letter-align: ideographic; - -/* Valeurs globales */ -initial-letter-align: inherit; -initial-letter-align: initial; -initial-letter-align: unset; -- -
La valeur de cette propriété peut être l'un des mots-clés parmi ceux définis ci-après.
- -autoalphabetic, pour les langues hébraïques hebrew, pour les langues CJK ideographic et pour certaines langues indo-aryennes, cela correspondra à hanging.alphabeticborder-boxhanginghebrewideographic.exemple {
- initial-letter: 3 1;
- initial-letter-align: hanging;
-}
-
-
-<p class="exemple"> - Tombe, tombe, tombe ! « Cette chute n’en finira - donc pas ! Je suis curieuse de savoir combien de - milles j’ai déjà faits, » dit-elle tout haut. « Je - dois être bien près du centre de la terre. Voyons - donc, cela serait à quatre mille milles de profondeur, - il me semble. » </p>- -
{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Inline', '#aligning-initial-letter', 'initial-letter-align')}} | -{{Spec2('CSS3 Inline')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.initial-letter-align")}}
diff --git a/files/fr/web/css/initial-letter-align/index.md b/files/fr/web/css/initial-letter-align/index.md new file mode 100644 index 0000000000..711fdbf890 --- /dev/null +++ b/files/fr/web/css/initial-letter-align/index.md @@ -0,0 +1,102 @@ +--- +title: initial-letter-align +slug: Web/CSS/initial-letter-align +tags: + - Alignement + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/initial-letter-align +--- +La propriété initial-letter-align définit l'alignement des premières lettres d'un paragraphe lorsque celles-ci sont mises en avant grâce à {{cssxref("initial-letter")}} pour former une lettrine.
/* Valeurs avec un mot-clé */ +initial-letter-align: auto; +initial-letter-align: alphabetic; +initial-letter-align: border-box; +initial-letter-align: hanging; +initial-letter-align: hebrew; +initial-letter-align: ideographic; + +/* Valeurs globales */ +initial-letter-align: inherit; +initial-letter-align: initial; +initial-letter-align: unset; ++ +
La valeur de cette propriété peut être l'un des mots-clés parmi ceux définis ci-après.
+ +autoalphabetic, pour les langues hébraïques hebrew, pour les langues CJK ideographic et pour certaines langues indo-aryennes, cela correspondra à hanging.alphabeticborder-boxhanginghebrewideographic.exemple {
+ initial-letter: 3 1;
+ initial-letter-align: hanging;
+}
+
+
+<p class="exemple"> + Tombe, tombe, tombe ! « Cette chute n’en finira + donc pas ! Je suis curieuse de savoir combien de + milles j’ai déjà faits, » dit-elle tout haut. « Je + dois être bien près du centre de la terre. Voyons + donc, cela serait à quatre mille milles de profondeur, + il me semble. » </p>+ +
{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Inline', '#aligning-initial-letter', 'initial-letter-align')}} | +{{Spec2('CSS3 Inline')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.initial-letter-align")}}
diff --git a/files/fr/web/css/initial-letter/index.html b/files/fr/web/css/initial-letter/index.html deleted file mode 100644 index be99d42123..0000000000 --- a/files/fr/web/css/initial-letter/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: initial-letter -slug: Web/CSS/initial-letter -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/initial-letter ---- -La propriété initial-letter permet de définir la mise en forme pour les lettrines (qu'elles soient abaissées, surélevées ou autre).
/* Valeurs avec un mot-clé */ -initial-letter: normal; - -/* Valeurs numériques */ -/* Types <number> puis <integer> */ -initial-letter: 1.5; /* La première lettre occupe 1.5 lignes */ -initial-letter: 3.0; /* La première lettre occupe 3 lignes */ -initial-letter: 3.0 2; /* La première lettre occupe 3 lignes et - s'enfonce de deux lignes vers le bas */ - -/* Valeurs globales */ -initial-letter: inherit; -initial-letter: initial; -initial-letter: unset; -- -
La valeur de cette propriété peut être le mot-clé normal ou un nombre (<number>) éventuellement suivi d'un entier (<integer>).
normal<number><integer>.exemple {
- -webkit-initial-letter: 3.0 2;
- initial-letter: 3.0 2;
-}
-
-
-<p class="exemple"> - Un grand rosier se trouvait à l’entrée du jardin ; - les roses qu’il portait étaient blanches, mais trois - jardiniers étaient en train de les peindre en rouge. -</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Inline', '#sizing-drop-initials', 'initial-letter')}} | -{{Spec2('CSS3 Inline')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.initial-letter")}}
diff --git a/files/fr/web/css/initial-letter/index.md b/files/fr/web/css/initial-letter/index.md new file mode 100644 index 0000000000..be99d42123 --- /dev/null +++ b/files/fr/web/css/initial-letter/index.md @@ -0,0 +1,95 @@ +--- +title: initial-letter +slug: Web/CSS/initial-letter +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/initial-letter +--- +La propriété initial-letter permet de définir la mise en forme pour les lettrines (qu'elles soient abaissées, surélevées ou autre).
/* Valeurs avec un mot-clé */ +initial-letter: normal; + +/* Valeurs numériques */ +/* Types <number> puis <integer> */ +initial-letter: 1.5; /* La première lettre occupe 1.5 lignes */ +initial-letter: 3.0; /* La première lettre occupe 3 lignes */ +initial-letter: 3.0 2; /* La première lettre occupe 3 lignes et + s'enfonce de deux lignes vers le bas */ + +/* Valeurs globales */ +initial-letter: inherit; +initial-letter: initial; +initial-letter: unset; ++ +
La valeur de cette propriété peut être le mot-clé normal ou un nombre (<number>) éventuellement suivi d'un entier (<integer>).
normal<number><integer>.exemple {
+ -webkit-initial-letter: 3.0 2;
+ initial-letter: 3.0 2;
+}
+
+
+<p class="exemple"> + Un grand rosier se trouvait à l’entrée du jardin ; + les roses qu’il portait étaient blanches, mais trois + jardiniers étaient en train de les peindre en rouge. +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Inline', '#sizing-drop-initials', 'initial-letter')}} | +{{Spec2('CSS3 Inline')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.initial-letter")}}
diff --git a/files/fr/web/css/initial/index.html b/files/fr/web/css/initial/index.html deleted file mode 100644 index 2409da98e9..0000000000 --- a/files/fr/web/css/initial/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: initial -slug: Web/CSS/initial -tags: - - CSS - - Cascade - - Mot-clé - - Reference -translation_of: Web/CSS/initial ---- -Le mot-clé initial applique la valeur initiale d'une propriété à un élément. La valeur initiale est fournie par le navigateur et peut être utilisée pour chaque propriété CSS. Cette propriété prendra alors la valeur initiale spécifiée pour cette la propriété.
La propriété {{cssxref("all")}} peut être utilisée avec cette valeur afin de réinitialiser l'ensemble des propriétés CSS.
- -Note : Pour les propriétés héritées, la valeur initiale peut donner des résultats étranges et mieux vaudra utiliser les mots-clés {{cssxref("inherit")}}, {{cssxref("unset")}} ou {{cssxref("revert")}}. Attention également à ne pas confondre la valeur initiale avec la valeur décrite dans la feuille de style portée par le navigateur.
-/* On écrit le texte en rouge */
-.exemple {
- color: red;
-}
-
-/* Et on veut que le texte mis en avant
- prenne la valeur initiale de
- color */
-.exemple em {
- color: initial;
-}
-
-
-<p class="exemple"> - Texte rouge - <em> - ce texte est avec la couleur initiale (noire) - </em> - ce texte est rouge aussi - </p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Cascade', '#initial', 'initial')}} | -{{Spec2('CSS4 Cascade')}} | -Aucun changement. | -
| {{SpecName('CSS3 Cascade', '#initial', 'initial')}} | -{{Spec2('CSS3 Cascade')}} | -Définition initiale. | -
{{Compat("css.types.global_keywords.initial")}}
- -Le mot-clé initial applique la valeur initiale d'une propriété à un élément. La valeur initiale est fournie par le navigateur et peut être utilisée pour chaque propriété CSS. Cette propriété prendra alors la valeur initiale spécifiée pour cette la propriété.
La propriété {{cssxref("all")}} peut être utilisée avec cette valeur afin de réinitialiser l'ensemble des propriétés CSS.
+ +Note : Pour les propriétés héritées, la valeur initiale peut donner des résultats étranges et mieux vaudra utiliser les mots-clés {{cssxref("inherit")}}, {{cssxref("unset")}} ou {{cssxref("revert")}}. Attention également à ne pas confondre la valeur initiale avec la valeur décrite dans la feuille de style portée par le navigateur.
+/* On écrit le texte en rouge */
+.exemple {
+ color: red;
+}
+
+/* Et on veut que le texte mis en avant
+ prenne la valeur initiale de
+ color */
+.exemple em {
+ color: initial;
+}
+
+
+<p class="exemple"> + Texte rouge + <em> + ce texte est avec la couleur initiale (noire) + </em> + ce texte est rouge aussi + </p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Cascade', '#initial', 'initial')}} | +{{Spec2('CSS4 Cascade')}} | +Aucun changement. | +
| {{SpecName('CSS3 Cascade', '#initial', 'initial')}} | +{{Spec2('CSS3 Cascade')}} | +Définition initiale. | +
{{Compat("css.types.global_keywords.initial")}}
+ +La valeur initiale d'une propriété CSS est définie par la spécification et varie selon qu'une propriété est héritée ou non.
- -Le mot-clé {{cssxref("initial")}} a été ajouté en CSS3 afin de permettre aux auteurs d'utiliser cette valeur de façon explicite.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| CSS Cascade 4 | -- | Définition formelle. | -
| {{SpecName("CSS2.1", "cascade.html#specified-value", "initial value")}} | -{{Spec2("CSS2.1")}} | -Définition implicite. | -
La valeur initiale d'une propriété CSS est définie par la spécification et varie selon qu'une propriété est héritée ou non.
+ +Le mot-clé {{cssxref("initial")}} a été ajouté en CSS3 afin de permettre aux auteurs d'utiliser cette valeur de façon explicite.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| CSS Cascade 4 | ++ | Définition formelle. | +
| {{SpecName("CSS2.1", "cascade.html#specified-value", "initial value")}} | +{{Spec2("CSS2.1")}} | +Définition implicite. | +
La propriété inline-size définit la taille verticale ou horizontale d'un élément de bloc selon son mode d'écriture. Selon la valeur de {{cssxref("writing-mode")}}, cette propriété correspond à {{cssxref("width")}} quand le mode d'écriture n'est pas vertical ou à {{cssxref("height")}} sinon.
Cette propriété est à rapprocher de {{cssxref("block-size")}} qui définit l'autre dimension de l'élément.
- -/* Valeurs de longueur */ -/* Type <length> */ -inline-size: 300px; -inline-size: 25em; - -/* Valeurs proportionnelles relatives */ -/* Type <percentage> */ -inline-size: 75%; - -/* Valeurs avec un mot-clé */ -inline-size: 25em border-box; -inline-size: 75% content-box; -inline-size: max-content; -inline-size: min-content; -inline-size: available; -inline-size: fit-content; -inline-size: auto; - -/* Valeurs globales */ -inline-size: inherit; -inline-size: initial; -inline-size: unset; -- -
La propriété inline-size peut prendre les mêmes valeurs que les propriétés {{cssxref("width")}} et {{cssxref("height")}}.
.exemple {
- writing-mode: vertical-rl;
- background-color: yellow;
- inline-size: 110px;
-}
-
-<p class="exemple">Texte d'exemple</p> -- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#logical-dimension-properties", "inline-size")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inline-size")}}
- -La propriété inline-size définit la taille verticale ou horizontale d'un élément de bloc selon son mode d'écriture. Selon la valeur de {{cssxref("writing-mode")}}, cette propriété correspond à {{cssxref("width")}} quand le mode d'écriture n'est pas vertical ou à {{cssxref("height")}} sinon.
Cette propriété est à rapprocher de {{cssxref("block-size")}} qui définit l'autre dimension de l'élément.
+ +/* Valeurs de longueur */ +/* Type <length> */ +inline-size: 300px; +inline-size: 25em; + +/* Valeurs proportionnelles relatives */ +/* Type <percentage> */ +inline-size: 75%; + +/* Valeurs avec un mot-clé */ +inline-size: 25em border-box; +inline-size: 75% content-box; +inline-size: max-content; +inline-size: min-content; +inline-size: available; +inline-size: fit-content; +inline-size: auto; + +/* Valeurs globales */ +inline-size: inherit; +inline-size: initial; +inline-size: unset; ++ +
La propriété inline-size peut prendre les mêmes valeurs que les propriétés {{cssxref("width")}} et {{cssxref("height")}}.
.exemple {
+ writing-mode: vertical-rl;
+ background-color: yellow;
+ inline-size: 110px;
+}
+
+<p class="exemple">Texte d'exemple</p> ++ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#logical-dimension-properties", "inline-size")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inline-size")}}
+ +{{CSSRef}}
- -Dans cet article, nous allons voir ce qu'est le contexte de formatage en ligne (inline formatting context).
- -Le contexte de formatage en ligne est une des méthodes permettant de créer le rendu visuel d'une page web. Les boîtes en ligne sont disposées les unes après les autres selon le mode d'écriture utilisé :
- -Dans l'exemple qui suit, on a deux éléments ({{HTMLElement("div")}}) avec une bordure noire qui forment chacuns un contexte de formatage de bloc au sein duquel chaque mot contribue à un contexte de formatage en ligne. Les boîtes utilisées dans le mode d'écriture horizontal sont organisées horizontalement tandis que celles dans l'élément avec un mode d'écriture vertical sont disposées verticalement.
- -{{EmbedGHLiveSample("css-examples/inline-formatting/inline.html", '100%', 720)}}
- -Les boîtes qui forment une ligne sont contenues dans une zone rectangulaire qu'on appelle boîte de ligne (line box). Cette boîte sera assez grande pour contenir l'ensemble des boîtes en ligne de cette ligne. Lorsqu'il n'y a plus de place disponible sur l'axe en ligne, une autre ligne est créée. Ainsi, un paragraphe est formé par un ensemble de boîtes de ligne, empilées le long de l'axe de bloc.
- -Lorsqu'une boîte en ligne est découpée en deux, les marges, bordures et le remplissage (padding) n'ont pas d'impact visuel à l'emplacement de la séparation. Dans le prochain exemple, on peut voir un élément ({{HTMLElement("span")}}) enveloppant un ensemble de mots s'étirant sur deux lignes. On voit que la bordure sur <span> est coupée au passage à la ligne.
{{EmbedGHLiveSample("css-examples/inline-formatting/break.html", '100%', 720)}}
- -Les marges, les bordures et le remplissage (padding) le long de la direction en ligne sont respectés. Dans l'exemple suivant, on peut voir comment sont ajoutés les marges, bordures et le remplissage à l'élément en ligne <span> qui a été ajouté.
{{EmbedGHLiveSample("css-examples/inline-formatting/mbp.html", '100%', 920)}}
- -Note : Dans ces exemples, on utilise les propriétés logiques (relatives à la direction du flux avec le mode d'écriture et la directionnalité) (ex. {{cssxref("padding-inline-start")}} plutôt que {{cssxref("padding-left")}}) afin qu'elles s'appliquent le long de la direction en ligne, que le texte soit horizontal ou vertical. Pour en savoir plus sur ces propriétés, voir les propriétés et les valeurs logiques en CSS.
-Les boîtes en ligne peuvent être alignées sur la direction de bloc de différentes façons avec la propriété {{cssxref("vertical-align")}}. Celle-ci permettra d'aligner le contenu sur l'axe de bloc (lorsque le mode d'écriture est vertical, vertical-align ne permet pas d'aligner sur l'axe vertical !). Dans l'exemple qui suit, une portion de texte plus grande rend la boîte de ligne plus grande pour la première phrase. On peut alors utiliser vertical-align afin d'aligner les boîtes en ligne. L'exemple utilise initialement la valeur top mais vous pouvez le modifier en utilisant middle, bottom ou encore baseline.
{{EmbedGHLiveSample("css-examples/inline-formatting/align.html", '100%', 920)}}
- -S'il reste de l'espace le long de la direction en ligne, la propriété {{cssxref("text-align")}} permetra d'aligner le contenu des boîtes en lignes au sein des boîtes de ligne. Dans l'exemple qui suit, vous pouvez notamment changer la valeur de text-align afin d'utiliser end.
{{EmbedGHLiveSample("css-examples/inline-formatting/text-align.html", '100%', 920)}}
- -float)Les boîtes de ligne ont généralement la même taille sur l'axe en ligne (c'est-à-dire la même largeur quand on utilise un mode d'écriture horizontal ou la même hauteur si on utilise un mode d'écriture vertical). S'il existe un élément flottant ({{cssxref("float")}}) au sein du même contexte de formatage de bloc, cet élément entraînera la diminution de la taille des boîtes de ligne pour celles qui entourent l'élément flottant.
- -{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/float.html", '100%', 720)}}
- -{{CSSRef}}
+ +Dans cet article, nous allons voir ce qu'est le contexte de formatage en ligne (inline formatting context).
+ +Le contexte de formatage en ligne est une des méthodes permettant de créer le rendu visuel d'une page web. Les boîtes en ligne sont disposées les unes après les autres selon le mode d'écriture utilisé :
+ +Dans l'exemple qui suit, on a deux éléments ({{HTMLElement("div")}}) avec une bordure noire qui forment chacuns un contexte de formatage de bloc au sein duquel chaque mot contribue à un contexte de formatage en ligne. Les boîtes utilisées dans le mode d'écriture horizontal sont organisées horizontalement tandis que celles dans l'élément avec un mode d'écriture vertical sont disposées verticalement.
+ +{{EmbedGHLiveSample("css-examples/inline-formatting/inline.html", '100%', 720)}}
+ +Les boîtes qui forment une ligne sont contenues dans une zone rectangulaire qu'on appelle boîte de ligne (line box). Cette boîte sera assez grande pour contenir l'ensemble des boîtes en ligne de cette ligne. Lorsqu'il n'y a plus de place disponible sur l'axe en ligne, une autre ligne est créée. Ainsi, un paragraphe est formé par un ensemble de boîtes de ligne, empilées le long de l'axe de bloc.
+ +Lorsqu'une boîte en ligne est découpée en deux, les marges, bordures et le remplissage (padding) n'ont pas d'impact visuel à l'emplacement de la séparation. Dans le prochain exemple, on peut voir un élément ({{HTMLElement("span")}}) enveloppant un ensemble de mots s'étirant sur deux lignes. On voit que la bordure sur <span> est coupée au passage à la ligne.
{{EmbedGHLiveSample("css-examples/inline-formatting/break.html", '100%', 720)}}
+ +Les marges, les bordures et le remplissage (padding) le long de la direction en ligne sont respectés. Dans l'exemple suivant, on peut voir comment sont ajoutés les marges, bordures et le remplissage à l'élément en ligne <span> qui a été ajouté.
{{EmbedGHLiveSample("css-examples/inline-formatting/mbp.html", '100%', 920)}}
+ +Note : Dans ces exemples, on utilise les propriétés logiques (relatives à la direction du flux avec le mode d'écriture et la directionnalité) (ex. {{cssxref("padding-inline-start")}} plutôt que {{cssxref("padding-left")}}) afin qu'elles s'appliquent le long de la direction en ligne, que le texte soit horizontal ou vertical. Pour en savoir plus sur ces propriétés, voir les propriétés et les valeurs logiques en CSS.
+Les boîtes en ligne peuvent être alignées sur la direction de bloc de différentes façons avec la propriété {{cssxref("vertical-align")}}. Celle-ci permettra d'aligner le contenu sur l'axe de bloc (lorsque le mode d'écriture est vertical, vertical-align ne permet pas d'aligner sur l'axe vertical !). Dans l'exemple qui suit, une portion de texte plus grande rend la boîte de ligne plus grande pour la première phrase. On peut alors utiliser vertical-align afin d'aligner les boîtes en ligne. L'exemple utilise initialement la valeur top mais vous pouvez le modifier en utilisant middle, bottom ou encore baseline.
{{EmbedGHLiveSample("css-examples/inline-formatting/align.html", '100%', 920)}}
+ +S'il reste de l'espace le long de la direction en ligne, la propriété {{cssxref("text-align")}} permetra d'aligner le contenu des boîtes en lignes au sein des boîtes de ligne. Dans l'exemple qui suit, vous pouvez notamment changer la valeur de text-align afin d'utiliser end.
{{EmbedGHLiveSample("css-examples/inline-formatting/text-align.html", '100%', 920)}}
+ +float)Les boîtes de ligne ont généralement la même taille sur l'axe en ligne (c'est-à-dire la même largeur quand on utilise un mode d'écriture horizontal ou la même hauteur si on utilise un mode d'écriture vertical). S'il existe un élément flottant ({{cssxref("float")}}) au sein du même contexte de formatage de bloc, cet élément entraînera la diminution de la taille des boîtes de ligne pour celles qui entourent l'élément flottant.
+ +{{EmbedGHLiveSample("css-examples/flow/formatting-contexts/float.html", '100%', 720)}}
+ +La propriété inset-block-end définit la fin du décalage logique en bloc (block) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-block-end. Firefox 63 a mis à jour le nom de la propriété afin de s'accorder avec les modifications apportées à la spécification.
/* Valeurs de longueur */ -/* Type <length> */ -inset-block-end: 3px; -inset-block-end: 2.4em; - -/* Valeurs relatives à la largeur */ -/* du bloc englobant */ -/* Type <percentage> */ -inset-block-end: 10%; - -/* Valeurs avec un mot-clé */ -inset-block-end: auto; - -/* Valeurs globales */ -inset-block-end: inherit; -inset-block-end: initial; -inset-block-end: unset; -- -
Elle est liée aux propriétés {{cssxref("inset-block-start")}}, {{cssxref("inset-inline-end")}} et {{cssxref("inset-inline-start")}} qui permettent de définir les autres décalages de l'élément.
- -La propriété inset-block-end peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> - <p class="exemple">Texte pour l'exemple</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- position: relative;
- inset-block-end: 20px;
- background-color: #c8c800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-block-end", "inset-block-end")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inset-block-end")}}
- -La propriété inset-block-end définit la fin du décalage logique en bloc (block) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-block-end. Firefox 63 a mis à jour le nom de la propriété afin de s'accorder avec les modifications apportées à la spécification.
/* Valeurs de longueur */ +/* Type <length> */ +inset-block-end: 3px; +inset-block-end: 2.4em; + +/* Valeurs relatives à la largeur */ +/* du bloc englobant */ +/* Type <percentage> */ +inset-block-end: 10%; + +/* Valeurs avec un mot-clé */ +inset-block-end: auto; + +/* Valeurs globales */ +inset-block-end: inherit; +inset-block-end: initial; +inset-block-end: unset; ++ +
Elle est liée aux propriétés {{cssxref("inset-block-start")}}, {{cssxref("inset-inline-end")}} et {{cssxref("inset-inline-start")}} qui permettent de définir les autres décalages de l'élément.
+ +La propriété inset-block-end peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> + <p class="exemple">Texte pour l'exemple</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ position: relative;
+ inset-block-end: 20px;
+ background-color: #c8c800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-block-end", "inset-block-end")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inset-block-end")}}
+ +La propriété inset-block-start définit le début du décalage logique en bloc (block) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-block-start. Firefox 63 a mis à jour son implémentation afin de suivre les modifications apportées à la spécification.
/* Valeurs de longueur */ -/* Type <length> */ -inset-block-start: 3px; -inset-block-start: 2.4em; - -/* Valeurs relatives à la largeur */ -/* du bloc englobant */ -/* Type <percentage> */ -inset-block-start: 10%; - -/* Valeurs avec un mot-clé */ -inset-block-start: auto; - -/* Valeurs globales */ -inset-block-start: inherit; -inset-block-start: initial; -inset-block-start: unset; -- -
La propriété inset-block-start peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> - <p class="exemple">Texte pour l'exemple</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- position: relative;
- inset-block-start: 20px;
- background-color: #c8c800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-block-start", "inset-block-start")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inset-block-start")}}
- -La propriété inset-block-start définit le début du décalage logique en bloc (block) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-block-start. Firefox 63 a mis à jour son implémentation afin de suivre les modifications apportées à la spécification.
/* Valeurs de longueur */ +/* Type <length> */ +inset-block-start: 3px; +inset-block-start: 2.4em; + +/* Valeurs relatives à la largeur */ +/* du bloc englobant */ +/* Type <percentage> */ +inset-block-start: 10%; + +/* Valeurs avec un mot-clé */ +inset-block-start: auto; + +/* Valeurs globales */ +inset-block-start: inherit; +inset-block-start: initial; +inset-block-start: unset; ++ +
La propriété inset-block-start peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> + <p class="exemple">Texte pour l'exemple</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ position: relative;
+ inset-block-start: 20px;
+ background-color: #c8c800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-block-start", "inset-block-start")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inset-block-start")}}
+ +La propriété inset-block définit le décalage d'un élément par rapport au début et à la fin de l'axe de bloc de l'élément. Cette propriété logique correspond à une propriété physique donnée selon le mode d'écriture de l'élément, sa direction et l'orientation de son texte. Autrement dit, cette propriété peut correspondre à {{cssxref("top")}} et {{cssxref("bottom")}} ou à {{cssxref("right")}} et {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ -/* Type <length> */ -inset-block: 3px 10px; -inset-block: 2.4em 3em; -inset-block: 10px; /* La valeur est appliquée des deux côtés */ - -/* Les valeurs en pourcentage sont relatives à la */ -/* largeur ou à la hauteur du bloc englobant */ -/* Type <percentage> */ -inset-block: 10% 5%; - -/* Valeur avec un mot-clé */ -inset-block: auto; - -/* Valeurs globales */ -inset-block: inherit; -inset-block: initial; -inset-block: unset; -- -
Pour gérer les décalages sur la dimension orthogonale, on pourra utiliser la propriété logique {{cssxref("inset-inline")}} qui est une propriété raccourcie pour {{cssxref("inset-inline-start")}}, and {{cssxref("inset-inline-end")}}.
- -La propriété inset-block peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- position: relative;
- inset-block: 20px 50px;
- background-color: #c8c800;
-}
-
-<div> - <p class="texteExemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-block", "inset-block")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inset-block")}}
- -La propriété inset-block définit le décalage d'un élément par rapport au début et à la fin de l'axe de bloc de l'élément. Cette propriété logique correspond à une propriété physique donnée selon le mode d'écriture de l'élément, sa direction et l'orientation de son texte. Autrement dit, cette propriété peut correspondre à {{cssxref("top")}} et {{cssxref("bottom")}} ou à {{cssxref("right")}} et {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ +/* Type <length> */ +inset-block: 3px 10px; +inset-block: 2.4em 3em; +inset-block: 10px; /* La valeur est appliquée des deux côtés */ + +/* Les valeurs en pourcentage sont relatives à la */ +/* largeur ou à la hauteur du bloc englobant */ +/* Type <percentage> */ +inset-block: 10% 5%; + +/* Valeur avec un mot-clé */ +inset-block: auto; + +/* Valeurs globales */ +inset-block: inherit; +inset-block: initial; +inset-block: unset; ++ +
Pour gérer les décalages sur la dimension orthogonale, on pourra utiliser la propriété logique {{cssxref("inset-inline")}} qui est une propriété raccourcie pour {{cssxref("inset-inline-start")}}, and {{cssxref("inset-inline-end")}}.
+ +La propriété inset-block peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ position: relative;
+ inset-block: 20px 50px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="texteExemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-block", "inset-block")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inset-block")}}
+ +La propriété inset-inline-end définit la fin du décalage logique en ligne (inline) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-inline-end. Firefox 63 a mis à jour son implémentation afin de suivre les modifications apportées à la spécification.
/* Valeurs de longueur */ -/* Type <length> */ -inset-inline-end: 3px; -inset-inline-end: 2.4em; - -/* Valeurs relatives à la largeur */ -/* du bloc englobant */ -/* Type <percentage> */ -inset-inline-end: 10%; - -/* Valeurs avec un mot-clé */ -inset-inline-end: auto; - -/* Valeurs globales */ -inset-inline-end: inherit; -inset-inline-end: initial; -inset-inline-end: unset; -- -
Elle est liée aux propriétés {{cssxref("inset-block-start")}}, {{cssxref("inset-block-end")}} et {{cssxref("inset-inline-start")}} qui permettent de définir les autres décalages de l'élément.
- -La propriété inset-inline-end peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> - <p class="exemple">Texte pour l'exemple</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- position: relative;
- inset-inline-end: 20px;
- background-color: #c8c800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-inline-end", "inset-inline-end")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inset-inline-end")}}
- -La propriété inset-inline-end définit la fin du décalage logique en ligne (inline) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-inline-end. Firefox 63 a mis à jour son implémentation afin de suivre les modifications apportées à la spécification.
/* Valeurs de longueur */ +/* Type <length> */ +inset-inline-end: 3px; +inset-inline-end: 2.4em; + +/* Valeurs relatives à la largeur */ +/* du bloc englobant */ +/* Type <percentage> */ +inset-inline-end: 10%; + +/* Valeurs avec un mot-clé */ +inset-inline-end: auto; + +/* Valeurs globales */ +inset-inline-end: inherit; +inset-inline-end: initial; +inset-inline-end: unset; ++ +
Elle est liée aux propriétés {{cssxref("inset-block-start")}}, {{cssxref("inset-block-end")}} et {{cssxref("inset-inline-start")}} qui permettent de définir les autres décalages de l'élément.
+ +La propriété inset-inline-end peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> + <p class="exemple">Texte pour l'exemple</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ position: relative;
+ inset-inline-end: 20px;
+ background-color: #c8c800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-inline-end", "inset-inline-end")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inset-inline-end")}}
+ +La propriété inset-inline-start définit le début du décalage logique en ligne (inline) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-inline-start. Firefox 63 a mis à jour son implémentation afin de suivre les modifications apportées à la spécification.
/* Valeurs de longueur */ -/* Type <length> */ -inset-inline-start: 3px; -inset-inline-start: 2.4em; - -/* Valeurs relatives à la largeur */ -/* du bloc englobant */ -/* Type <percentage> */ -inset-inline-start: 10%; - -/* Valeurs avec un mot-clé */ -inset-inline-start: auto; - -/* Valeurs globales */ -inset-inline-start: inherit; -inset-inline-start: initial; -inset-inline-start: unset; -- -
Elle est liée aux propriétés {{cssxref("inset-block-start")}}, {{cssxref("inset-block-end")}} et {{cssxref("inset-inline-end")}} qui permettent de définir les autres décalages de l'élément.
- -La propriété inset-inline-start peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> - <p class="exemple">Texte pour l'exemple</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- position: relative;
- inset-inline-start: 20px;
- background-color: #c8c800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-inline-start", "inset-inline-start")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inset-inline-start")}}
- -La propriété inset-inline-start définit le début du décalage logique en ligne (inline) d'un élément, selon le mode d'écriture, la directionnalité et l'orientation. Elle correspond à une des propriétés parmi {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} ou {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Note : Avant Firefox 63, cette propriété était implémentée avec le nom offset-inline-start. Firefox 63 a mis à jour son implémentation afin de suivre les modifications apportées à la spécification.
/* Valeurs de longueur */ +/* Type <length> */ +inset-inline-start: 3px; +inset-inline-start: 2.4em; + +/* Valeurs relatives à la largeur */ +/* du bloc englobant */ +/* Type <percentage> */ +inset-inline-start: 10%; + +/* Valeurs avec un mot-clé */ +inset-inline-start: auto; + +/* Valeurs globales */ +inset-inline-start: inherit; +inset-inline-start: initial; +inset-inline-start: unset; ++ +
Elle est liée aux propriétés {{cssxref("inset-block-start")}}, {{cssxref("inset-block-end")}} et {{cssxref("inset-inline-end")}} qui permettent de définir les autres décalages de l'élément.
+ +La propriété inset-inline-start peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
<div> + <p class="exemple">Texte pour l'exemple</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ position: relative;
+ inset-inline-start: 20px;
+ background-color: #c8c800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-inline-start", "inset-inline-start")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inset-inline-start")}}
+ +La propriété inset-inline définit le décalage d'un élément par rapport au début et à la fin de l'axe en ligne de l'élément. Cette propriété logique correspond à une propriété physique donnée selon le mode d'écriture de l'élément, sa direction et l'orientation de son texte. Autrement dit, cette propriété peut correspondre à {{cssxref("top")}} et {{cssxref("bottom")}} ou à {{cssxref("right")}} et {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ -/* Type <length> */ -inset-inline: 3px 10px; -inset-inline: 2.4em 3em; -inset-inline: 10px; /* La valeur est appliquée des deux côtés */ - -/* Les valeurs en pourcentage sont relatives à la */ -/* largeur ou à la hauteur du bloc englobant */ -/* Type <percentage> */ -inset-inline: 10% 5%; - -/* Valeur avec un mot-clé */ -inset-inline: auto; - -/* Valeurs globales */ -inset-inline: inherit; -inset-inline: initial; -inset-inline: unset; -- -
Pour gérer les décalages sur la dimension orthogonale, on pourra utiliser la propriété logique {{cssxref("inset-block")}} qui est une propriété raccourcie pour {{cssxref("inset-block-start")}}, and {{cssxref("inset-block-end")}}.
- -La propriété inset-inline peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- position: relative;
- inset-inline: 20px 50px;
- background-color: #c8c800;
-}
-
-<div> - <p class="texteExemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-inline", "inset-inline")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inset-inline")}}
- -La propriété inset-inline définit le décalage d'un élément par rapport au début et à la fin de l'axe en ligne de l'élément. Cette propriété logique correspond à une propriété physique donnée selon le mode d'écriture de l'élément, sa direction et l'orientation de son texte. Autrement dit, cette propriété peut correspondre à {{cssxref("top")}} et {{cssxref("bottom")}} ou à {{cssxref("right")}} et {{cssxref("left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ +/* Type <length> */ +inset-inline: 3px 10px; +inset-inline: 2.4em 3em; +inset-inline: 10px; /* La valeur est appliquée des deux côtés */ + +/* Les valeurs en pourcentage sont relatives à la */ +/* largeur ou à la hauteur du bloc englobant */ +/* Type <percentage> */ +inset-inline: 10% 5%; + +/* Valeur avec un mot-clé */ +inset-inline: auto; + +/* Valeurs globales */ +inset-inline: inherit; +inset-inline: initial; +inset-inline: unset; ++ +
Pour gérer les décalages sur la dimension orthogonale, on pourra utiliser la propriété logique {{cssxref("inset-block")}} qui est une propriété raccourcie pour {{cssxref("inset-block-start")}}, and {{cssxref("inset-block-end")}}.
+ +La propriété inset-inline peut prendre les mêmes valeurs que la propriété {{cssxref("left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ position: relative;
+ inset-inline: 20px 50px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="texteExemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset-inline", "inset-inline")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inset-inline")}}
+ +La propriété inset définit les décalages physiques d'un élément. Bien qu'elle fasse partie de la spécification sur les propriétés logiques, sa valeur ne dépend pas du mode d'écriture de l'élément, de sa direction ou de l'orientation du texte. La syntaxe de cette propriété suit la même structure que {{cssxref("margin")}}, inset est une propriété raccourcie permettant de définir les propriétés {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} et/ou {{cssxref("left")}}.
/* Valeurs de longueurs */ -/* Type <length> */ -inset: 10px; /* la valeur est appliquée à l'ensemble des côtés */ -inset: 4px 8px; /* haut/bas gauche/droit */ -inset: 5px 15px 10px; /* haut gauche/droit bas */ -inset: 2.4em 3em 3em 3em; /* haut droit bas gauche */ - -/* pourcentages de la largeur/hauteur du bloc englobant */ -inset: 10% 5% 5% 5%; - -/* Valeur avec un mot-clé */ -inset: auto; - -/* Valeurs globales */ -inset: inherit; -inset: initial; -inset: unset; - -- -
La propriété inset prend les mêmes valeurs que la propriété {{cssxref("left")}}.
div {
- background-color: yellow;
- width: 150px;
- height: 120px;
- position: relative;
-}
-
-.texteExemple {
- writing-mode: vertical-lr;
- position: absolute;
- inset: 20px 40px 30px 10px;
- background-color: #c8c800;
-}
-
-<div> - <span class="texteExemple">Texte d'exemple</span> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset", "inset")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.inset")}}
- -La propriété inset définit les décalages physiques d'un élément. Bien qu'elle fasse partie de la spécification sur les propriétés logiques, sa valeur ne dépend pas du mode d'écriture de l'élément, de sa direction ou de l'orientation du texte. La syntaxe de cette propriété suit la même structure que {{cssxref("margin")}}, inset est une propriété raccourcie permettant de définir les propriétés {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} et/ou {{cssxref("left")}}.
/* Valeurs de longueurs */ +/* Type <length> */ +inset: 10px; /* la valeur est appliquée à l'ensemble des côtés */ +inset: 4px 8px; /* haut/bas gauche/droit */ +inset: 5px 15px 10px; /* haut gauche/droit bas */ +inset: 2.4em 3em 3em 3em; /* haut droit bas gauche */ + +/* pourcentages de la largeur/hauteur du bloc englobant */ +inset: 10% 5% 5% 5%; + +/* Valeur avec un mot-clé */ +inset: auto; + +/* Valeurs globales */ +inset: inherit; +inset: initial; +inset: unset; + ++ +
La propriété inset prend les mêmes valeurs que la propriété {{cssxref("left")}}.
div {
+ background-color: yellow;
+ width: 150px;
+ height: 120px;
+ position: relative;
+}
+
+.texteExemple {
+ writing-mode: vertical-lr;
+ position: absolute;
+ inset: 20px 40px 30px 10px;
+ background-color: #c8c800;
+}
+
+<div> + <span class="texteExemple">Texte d'exemple</span> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-inset", "inset")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.inset")}}
+ +Le type de donnée CSS <integer> permet de représenter des nombres entiers positifs ou négatifs. Aucune unité n'est liée à la valeur. Les entiers sont utilisés dans de nombreuses propriétés CSS comme {{cssxref("z-index")}}, {{cssxref("line-height")}}, {{cssxref("counter-increment")}}, {{cssxref("column-count")}}, {{cssxref("grid-row")}}, {{cssxref("repeat()")}}. Ce type est un sous-type de {{cssxref("number")}}.
Un entier se compose d'un ou de plusieurs chiffres, de 0 à 9, éventuellement précédés par un seul signe + ou -. Il n'y a pas d'unité pour ce type de donnée.
Toutes les valeurs de type <integer> sont également des valeurs de type {{cssxref("<number>")}}, bien que l'inverse ne soit pas vrai.
Note : Il n'y a pas de bornes à l'ensemble des valeurs de type <entier> valides. Opera supporte des valeurs jusqu'à 2^15-1, IE jusqu'à 2^20-1 et d'autres navigateurs des valeurs encore plus hautes. Durant le cycle CSS3 Values, il y a eu de nombreuses discussions pour définir une valeur minimale à supporter : la dernière décision, en date d'avril 2012 pendant la phase LC, était [-2^27-1; 2^27-1] # mais d'autres valeurs comme 2^24-1 et 2^30-1 ont aussi été proposées # #. Le dernier brouillon ne fait plus apparaître de limite.
Les valeurs du type <entier> peuvent être interpolées de manière à rendre les animations possibles. Dans ce cas l'interpolation se fait par incrémentation discrète. Le calcul est réalisé comme si les valeurs étaient des nombres réels, en virgule flottante et la valeur discrète est obtenue en utilisant la fonction partie entière. La rapidité de l'interpolation est déterminée par la {{cssxref("easing-function","fonction de temporisation")}} associée à l'animation.
Ces valeurs sont des entiers valides :
- -12 Entier positif (sans le signe + à l'avant) -+123 Entier positif (avec le signe + à l'avant) --456 Entier négatif -0 Zéro -+0 Zéro, avec un signe + à l'avant --0 Zéro, avec un signe - à l'avant (bien qu'étrange, cette valeur est acceptée) -- -
Ces valeurs sont des entiers non valides :
- -12.0 Ceci est un {{cssxref("<number>")}}, pas un <entier>, bien qu'il représente un entier
-12. Le point ne peut pas faire partie d'un <entier>
-+---12 Un seul +/- à l'avant est accepté
-ten Les lettres ne sont pas acceptées
-_5 Les caractères spéciaux ne sont pas acceptés
-\35 Les caractères Unicode échappés ne sont pas acceptés, même s'ils sont un entier (ici : 5)
-\4E94 Les chiffres non-arabes ne sont pas acceptés, même échappés (ici : le 5 japonais, 五)
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#integers', '<integer>')}} | -{{Spec2('CSS4 Values')}} | -Aucune modification significative. | -
| {{SpecName('CSS3 Values', '#integers', '<integer>')}} | -{{Spec2('CSS3 Values')}} | -Aucune modification depuis la spécification CSS de niveau 2 (première révision) | -
| {{SpecName('CSS2.1', 'syndata.html#numbers', '<integer>')}} | -{{Spec2('CSS2.1')}} | -Définition implicite. | -
| {{SpecName('CSS1', '', '<integer>')}} | -{{Spec2('CSS1')}} | -Définition implicite. | -
{{Compat("css.types.integer")}}
- -Le type de donnée CSS <integer> permet de représenter des nombres entiers positifs ou négatifs. Aucune unité n'est liée à la valeur. Les entiers sont utilisés dans de nombreuses propriétés CSS comme {{cssxref("z-index")}}, {{cssxref("line-height")}}, {{cssxref("counter-increment")}}, {{cssxref("column-count")}}, {{cssxref("grid-row")}}, {{cssxref("repeat()")}}. Ce type est un sous-type de {{cssxref("number")}}.
Un entier se compose d'un ou de plusieurs chiffres, de 0 à 9, éventuellement précédés par un seul signe + ou -. Il n'y a pas d'unité pour ce type de donnée.
Toutes les valeurs de type <integer> sont également des valeurs de type {{cssxref("<number>")}}, bien que l'inverse ne soit pas vrai.
Note : Il n'y a pas de bornes à l'ensemble des valeurs de type <entier> valides. Opera supporte des valeurs jusqu'à 2^15-1, IE jusqu'à 2^20-1 et d'autres navigateurs des valeurs encore plus hautes. Durant le cycle CSS3 Values, il y a eu de nombreuses discussions pour définir une valeur minimale à supporter : la dernière décision, en date d'avril 2012 pendant la phase LC, était [-2^27-1; 2^27-1] # mais d'autres valeurs comme 2^24-1 et 2^30-1 ont aussi été proposées # #. Le dernier brouillon ne fait plus apparaître de limite.
Les valeurs du type <entier> peuvent être interpolées de manière à rendre les animations possibles. Dans ce cas l'interpolation se fait par incrémentation discrète. Le calcul est réalisé comme si les valeurs étaient des nombres réels, en virgule flottante et la valeur discrète est obtenue en utilisant la fonction partie entière. La rapidité de l'interpolation est déterminée par la {{cssxref("easing-function","fonction de temporisation")}} associée à l'animation.
Ces valeurs sont des entiers valides :
+ +12 Entier positif (sans le signe + à l'avant) ++123 Entier positif (avec le signe + à l'avant) +-456 Entier négatif +0 Zéro ++0 Zéro, avec un signe + à l'avant +-0 Zéro, avec un signe - à l'avant (bien qu'étrange, cette valeur est acceptée) ++ +
Ces valeurs sont des entiers non valides :
+ +12.0 Ceci est un {{cssxref("<number>")}}, pas un <entier>, bien qu'il représente un entier
+12. Le point ne peut pas faire partie d'un <entier>
++---12 Un seul +/- à l'avant est accepté
+ten Les lettres ne sont pas acceptées
+_5 Les caractères spéciaux ne sont pas acceptés
+\35 Les caractères Unicode échappés ne sont pas acceptés, même s'ils sont un entier (ici : 5)
+\4E94 Les chiffres non-arabes ne sont pas acceptés, même échappés (ici : le 5 japonais, 五)
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#integers', '<integer>')}} | +{{Spec2('CSS4 Values')}} | +Aucune modification significative. | +
| {{SpecName('CSS3 Values', '#integers', '<integer>')}} | +{{Spec2('CSS3 Values')}} | +Aucune modification depuis la spécification CSS de niveau 2 (première révision) | +
| {{SpecName('CSS2.1', 'syndata.html#numbers', '<integer>')}} | +{{Spec2('CSS2.1')}} | +Définition implicite. | +
| {{SpecName('CSS1', '', '<integer>')}} | +{{Spec2('CSS1')}} | +Définition implicite. | +
{{Compat("css.types.integer")}}
+ +La propriété isolation indique que l'élément crée un nouveau contexte d'empilement (stacking context).
Cette propriété s'avère particulièrement utile avec {{cssxref("mix-blend-mode")}} afin de ne mélanger que l'arrière plan d'un contexte d'empilement particulier.
- -/* Valeurs avec mots-clés */ -isolation: auto; -isolation: isolate; - -/* Valeurs globales */ -isolation: inherit; -isolation: initial; -isolation: unset; -- -
La propriété isolation est définie avec l'un des mots-clés suivants.
autoisolate.a {
- background-color: rgb(0,255,0);
-}
-#b {
- width: 200px;
- height: 210px;
-}
-.c {
- width: 100px;
- height: 100px;
- border: 1px solid black;
- padding: 2px;
- mix-blend-mode: difference;
-}
-#d {
- isolation: auto;
-}
-#e {
- isolation: isolate;
-}
-
-<div id="b" class="a"> - <div id="d"> - <div class="a c">auto</div> - </div> - <div id="e"> - <div class="a c">isolate</div> - </div> -</div> -- -
{{EmbedLiveSample('Exemples', 230, 230)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Compositing', '#isolation', 'Isolation')}} | -{{Spec2('Compositing')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.isolation")}}
- -La propriété isolation indique que l'élément crée un nouveau contexte d'empilement (stacking context).
Cette propriété s'avère particulièrement utile avec {{cssxref("mix-blend-mode")}} afin de ne mélanger que l'arrière plan d'un contexte d'empilement particulier.
+ +/* Valeurs avec mots-clés */ +isolation: auto; +isolation: isolate; + +/* Valeurs globales */ +isolation: inherit; +isolation: initial; +isolation: unset; ++ +
La propriété isolation est définie avec l'un des mots-clés suivants.
autoisolate.a {
+ background-color: rgb(0,255,0);
+}
+#b {
+ width: 200px;
+ height: 210px;
+}
+.c {
+ width: 100px;
+ height: 100px;
+ border: 1px solid black;
+ padding: 2px;
+ mix-blend-mode: difference;
+}
+#d {
+ isolation: auto;
+}
+#e {
+ isolation: isolate;
+}
+
+<div id="b" class="a"> + <div id="d"> + <div class="a c">auto</div> + </div> + <div id="e"> + <div class="a c">isolate</div> + </div> +</div> ++ +
{{EmbedLiveSample('Exemples', 230, 230)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Compositing', '#isolation', 'Isolation')}} | +{{Spec2('Compositing')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.isolation")}}
+ +La propriété CSS justify-content indique la façon dont l'espace doit être réparti entre et autour des éléments selon l'axe principal d'un conteneur flexible ou selon l'axe en ligne lorsque le conteneur est une grille.
L'exemple suivant illustre le fonctionnement des valeurs de cette propriété au sein d'une grille CSS.
- -L'alignement est appliqué après que les longueurs et les marges automatiques ont été appliquées. Dans une disposition utilisant les boîtes flexibles, cela signifie que s'il existe au moins un élément flexible pour lequel {{cssxref("flex-grow")}} est différent de 0, justify-content n'aura aucun effet car il n'y aura plus d'espace disponible.
/* Alignement « géométrique » */ -justify-content: center; /* Éléments groupés au centre */ -justify-content: start; /* Éléments groupés au début */ -justify-content: end; /* Éléments groupés à la fin */ -justify-content: flex-start; /* Éléments flexibles groupés au début */ -justify-content: flex-end; /* Éléments flexibles groupés à la fin */ -justify-content: left; /* Éléments groupés à gauche */ -justify-content: right; /* Éléments groupés à droite */ - -/* Alignement par rapport à la ligne de base */ -/* justify-content ne prend pas de valeurs relatives à la ligne de base */ - -/* Alignement normal */ -justify-content: normal; - -/* Alignement distribué */ -justify-content: space-between; /* Les éléments sont répartis équitablement - Le bord du premier est aligné sur le - début du conteneur et la fin du dernier - est alignée sur la fin du conteneur */ -justify-content: space-around; /* Les éléments sont répartis équitablement - À chaque extrémité, entre le bord du - conteneur et le premier/dernier élément - on a la moitié de l'espace appliqué entre - chaque élément */ -justify-content: space-evenly; /* Les éléments sont répartis équitablement - Tous les éléments sont séparés par le même - espace */ -justify-content: stretch; /* Les éléments sont répartis équitablement et - les éléments dimensionnés avec 'auto' sont - étirés afin de remplir le conteneur */ - -/* Alignement pour le dépassement */ -justify-content: safe center; -justify-content: unsafe center; - -/* Valeurs globales */ -justify-content: inherit; -justify-content: initial; -justify-content: unset; -- -
startendflex-startstart.flex-endend.centerleftstart.rightstart.normaljustify-content n'avait pas été utilisé. Cette valeur se comporte comme stretch dans les conteneurs de grille et les conteneurs flexibles.space-betweenspace-aroundspace-evenlystretchauto sont agrandis avec le même supplément, tout en respectant les contraintes imposées par {{cssxref("max-height")}}/{{cssxref("max-width")}} (ou par les fonctionnalités analogues). Ainsi, l'ensemble des éléments remplit exactement le conteneur sur l'axe principal.stretch n'est pas prise en charge pour les boîtes flexibles (flexbox)safestart.unsafe#container {
- display: flex;
- /* Cette valeur peut être changée dans l'exemple */
- justify-content: space-between;
-}
-
-#container > div {
- width: 100px;
- height: 100px;
- background: linear-gradient(-45deg, #788cff, #b4c8ff);
-}
-
-
-
-
-
-
-{{EmbedLiveSample("Exemples", "100%", 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#propdef-justify-content', 'justify-content')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
| {{SpecName('CSS3 Box Alignment', '#propdef-justify-content', 'justify-content')}} | -{{Spec2('CSS3 Box Alignment')}} | -Ajout des valeurs space-evenly, [ first | last ]? baseline, start, end, left, right, safe et unsafe. |
-
{{Compat("css.properties.justify-content.flex_context")}}
- -{{Compat("css.properties.justify-content.grid_context")}}
- -La propriété CSS justify-content indique la façon dont l'espace doit être réparti entre et autour des éléments selon l'axe principal d'un conteneur flexible ou selon l'axe en ligne lorsque le conteneur est une grille.
L'exemple suivant illustre le fonctionnement des valeurs de cette propriété au sein d'une grille CSS.
+ +L'alignement est appliqué après que les longueurs et les marges automatiques ont été appliquées. Dans une disposition utilisant les boîtes flexibles, cela signifie que s'il existe au moins un élément flexible pour lequel {{cssxref("flex-grow")}} est différent de 0, justify-content n'aura aucun effet car il n'y aura plus d'espace disponible.
/* Alignement « géométrique » */ +justify-content: center; /* Éléments groupés au centre */ +justify-content: start; /* Éléments groupés au début */ +justify-content: end; /* Éléments groupés à la fin */ +justify-content: flex-start; /* Éléments flexibles groupés au début */ +justify-content: flex-end; /* Éléments flexibles groupés à la fin */ +justify-content: left; /* Éléments groupés à gauche */ +justify-content: right; /* Éléments groupés à droite */ + +/* Alignement par rapport à la ligne de base */ +/* justify-content ne prend pas de valeurs relatives à la ligne de base */ + +/* Alignement normal */ +justify-content: normal; + +/* Alignement distribué */ +justify-content: space-between; /* Les éléments sont répartis équitablement + Le bord du premier est aligné sur le + début du conteneur et la fin du dernier + est alignée sur la fin du conteneur */ +justify-content: space-around; /* Les éléments sont répartis équitablement + À chaque extrémité, entre le bord du + conteneur et le premier/dernier élément + on a la moitié de l'espace appliqué entre + chaque élément */ +justify-content: space-evenly; /* Les éléments sont répartis équitablement + Tous les éléments sont séparés par le même + espace */ +justify-content: stretch; /* Les éléments sont répartis équitablement et + les éléments dimensionnés avec 'auto' sont + étirés afin de remplir le conteneur */ + +/* Alignement pour le dépassement */ +justify-content: safe center; +justify-content: unsafe center; + +/* Valeurs globales */ +justify-content: inherit; +justify-content: initial; +justify-content: unset; ++ +
startendflex-startstart.flex-endend.centerleftstart.rightstart.normaljustify-content n'avait pas été utilisé. Cette valeur se comporte comme stretch dans les conteneurs de grille et les conteneurs flexibles.space-betweenspace-aroundspace-evenlystretchauto sont agrandis avec le même supplément, tout en respectant les contraintes imposées par {{cssxref("max-height")}}/{{cssxref("max-width")}} (ou par les fonctionnalités analogues). Ainsi, l'ensemble des éléments remplit exactement le conteneur sur l'axe principal.stretch n'est pas prise en charge pour les boîtes flexibles (flexbox)safestart.unsafe#container {
+ display: flex;
+ /* Cette valeur peut être changée dans l'exemple */
+ justify-content: space-between;
+}
+
+#container > div {
+ width: 100px;
+ height: 100px;
+ background: linear-gradient(-45deg, #788cff, #b4c8ff);
+}
+
+
+
+
+
+
+{{EmbedLiveSample("Exemples", "100%", 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#propdef-justify-content', 'justify-content')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
| {{SpecName('CSS3 Box Alignment', '#propdef-justify-content', 'justify-content')}} | +{{Spec2('CSS3 Box Alignment')}} | +Ajout des valeurs space-evenly, [ first | last ]? baseline, start, end, left, right, safe et unsafe. |
+
{{Compat("css.properties.justify-content.flex_context")}}
+ +{{Compat("css.properties.justify-content.grid_context")}}
+ +La propriété CSS justify-items définit la valeur par défaut de {{cssxref("justify-self")}} pour tous les éléments d'une boîte et permet ainsi de définir le comportement par défaut pour la justification des éléments d'une boîte le long de l'axe en ligne (c'est-à-dire l'axe correspondant au sens d'écriture).
L'effet de cette propriété sera différent selon le type de disposition utilisé :
- -/* Mots-clés de base */ -justify-items: auto; -justify-items: normal; -justify-items: stretch; - -/* Alignement par rapport à l'axe */ -justify-items: center; /* Les éléments sont regroupés au centre */ -justify-items: start; /* Les éléments sont regroupés au début */ -justify-items: end; /* Les éléments sont regroupés à la fin */ -justify-items: flex-start; /* Les éléments sont regroupés au début de l'axe */ -justify-items: flex-end; /* Les éléments sont regroupés à la fin de l'axe */ -justify-items: self-start; -justify-items: self-end; -justify-items: left; /* Les éléments sont regroupés à gauche */ -justify-items: right; /* Les éléments sont regroupés à droite */ - -/* Alignement par rapport à la ligne de base */ -justify-items: baseline; -justify-items: first baseline; -justify-items: last baseline; - -/* Gestion du dépassement */ -justify-items: safe center; -justify-items: unsafe center; - -/* Valeurs historiques */ -justify-items: legacy right; -justify-items: legacy left; -justify-items: legacy center; - -/* Valeurs globales */ -justify-items: inherit; -justify-items: initial; -justify-items: unset; -- -
Cette propriété peut être définie selon trois formes différentes :
- -normal, auto ou stretch.baseline éventuellement suivi de first ou de lastcenter, start, end, flex-start, flex-end, self-start, self-end, left ou rightsafe ou unsafe legacy suivi de left ou de right.autojustify-items pour la boîte parente. Si la boîte n'a pas de parent ou est positionnée de façon absolue, auto sera synonyme de normal.normalnormal est synonyme de start.start pour les boîtes des éléments remplacés ou comme stretch pour les autres boîtes positionnées de façon absolue.stretch, sauf pour les boîtes qui ont des dimensions intrinsèques, dans ce cas, il est synonyme de start.startendflex-startstart.flex-endend.self-startself-endcenterleftrightbaseline
- first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretchsafestart avait été utilisée.unsafelegacyjustify-self: auto, le mot-clé legacy ne sera pas pris en compte mais uniquement la valeur left, right, ou center..wrapper {
- display: grid;
- grid-template-columns: repeat(3, 100px);
- grid-template-rows: repeat(3,100px);
- height: 500px;
- width: 500px;
- grid-gap: 10px;
- grid-template-areas:
- "a a b"
- "a a b"
- "c d d";
- align-content: space-between;
- justify-items: start;
-}
-.item1 {
- grid-area: a;
-}
-.item2 {
- grid-area: b;
-}
-.item3 {
- grid-area: c;
-}
-.item4 {
- grid-area: d;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('Exemples', '500', '500')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-justify-items", "justify-items")}} | -{{Spec2("CSS3 Box Alignment")}} | -Définition initiale. | -
{{CSSInfo}}
- -{{Compat("css.properties.justify-items.flex_context")}}
- -{{Compat("css.properties.justify-items.grid_context")}}
- -La propriété CSS justify-items définit la valeur par défaut de {{cssxref("justify-self")}} pour tous les éléments d'une boîte et permet ainsi de définir le comportement par défaut pour la justification des éléments d'une boîte le long de l'axe en ligne (c'est-à-dire l'axe correspondant au sens d'écriture).
L'effet de cette propriété sera différent selon le type de disposition utilisé :
+ +/* Mots-clés de base */ +justify-items: auto; +justify-items: normal; +justify-items: stretch; + +/* Alignement par rapport à l'axe */ +justify-items: center; /* Les éléments sont regroupés au centre */ +justify-items: start; /* Les éléments sont regroupés au début */ +justify-items: end; /* Les éléments sont regroupés à la fin */ +justify-items: flex-start; /* Les éléments sont regroupés au début de l'axe */ +justify-items: flex-end; /* Les éléments sont regroupés à la fin de l'axe */ +justify-items: self-start; +justify-items: self-end; +justify-items: left; /* Les éléments sont regroupés à gauche */ +justify-items: right; /* Les éléments sont regroupés à droite */ + +/* Alignement par rapport à la ligne de base */ +justify-items: baseline; +justify-items: first baseline; +justify-items: last baseline; + +/* Gestion du dépassement */ +justify-items: safe center; +justify-items: unsafe center; + +/* Valeurs historiques */ +justify-items: legacy right; +justify-items: legacy left; +justify-items: legacy center; + +/* Valeurs globales */ +justify-items: inherit; +justify-items: initial; +justify-items: unset; ++ +
Cette propriété peut être définie selon trois formes différentes :
+ +normal, auto ou stretch.baseline éventuellement suivi de first ou de lastcenter, start, end, flex-start, flex-end, self-start, self-end, left ou rightsafe ou unsafe legacy suivi de left ou de right.autojustify-items pour la boîte parente. Si la boîte n'a pas de parent ou est positionnée de façon absolue, auto sera synonyme de normal.normalnormal est synonyme de start.start pour les boîtes des éléments remplacés ou comme stretch pour les autres boîtes positionnées de façon absolue.stretch, sauf pour les boîtes qui ont des dimensions intrinsèques, dans ce cas, il est synonyme de start.startendflex-startstart.flex-endend.self-startself-endcenterleftrightbaseline
+ first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretchsafestart avait été utilisée.unsafelegacyjustify-self: auto, le mot-clé legacy ne sera pas pris en compte mais uniquement la valeur left, right, ou center..wrapper {
+ display: grid;
+ grid-template-columns: repeat(3, 100px);
+ grid-template-rows: repeat(3,100px);
+ height: 500px;
+ width: 500px;
+ grid-gap: 10px;
+ grid-template-areas:
+ "a a b"
+ "a a b"
+ "c d d";
+ align-content: space-between;
+ justify-items: start;
+}
+.item1 {
+ grid-area: a;
+}
+.item2 {
+ grid-area: b;
+}
+.item3 {
+ grid-area: c;
+}
+.item4 {
+ grid-area: d;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('Exemples', '500', '500')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-justify-items", "justify-items")}} | +{{Spec2("CSS3 Box Alignment")}} | +Définition initiale. | +
{{CSSInfo}}
+ +{{Compat("css.properties.justify-items.flex_context")}}
+ +{{Compat("css.properties.justify-items.grid_context")}}
+ +La propriété CSS justify-self définit la façon dont une boîte est alignée sur l'axe en ligne du conteneur.
/* Mots-clés de base */ -justify-self: auto; -justify-self: normal; -justify-self: stretch; - -/* Alignement par rapport à l'axe */ -justify-self: center; /* L'élément est aligné au centre */ -justify-self: start; /* L'élément est aligné au début */ -justify-self: end; /* L'élément est aligné à la fin */ -justify-self: flex-start; /* L'élément est aligné au début de l'axe */ -justify-self: flex-end; /* L'élément est aligné à la fin de l'axe */ -justify-self: self-start; -justify-self: self-end; -justify-self: left; /* L'élément est aligné à gauche */ -justify-self: right; /* L'élément est aligné à droite */ - -/* Alignement par rapport à la ligne de base */ -justify-self: baseline; -justify-self: first baseline; -justify-self: last baseline; - -/* Gestion du dépassement */ -justify-self: safe center; -justify-self: unsafe center; - -/* Valeurs globales */ -justify-self: inherit; -justify-self: initial; -justify-self: unset; -- -
Cette propriété peut être définie selon trois formes différentes :
- -normal, auto ou stretch.baseline éventuellement suivi de first ou de lastcenter, start, end, flex-start, flex-end, self-start, self-end, left ou rightsafe ou unsafeautojustify-items définie pour la boîte parente. Si la boîte n'a pas de parent ou est positionnée de façon absolue, auto sera synonyme de normal.normalnormal est synonyme de start.start pour les boîtes des éléments remplacés ou comme stretch pour les autres boîtes positionnées de façon absolue.stretch, sauf pour les boîtes qui ont des dimensions intrinsèques, dans ce cas, il est synonyme de start.startendflex-startstart.flex-endend.self-startself-endcenterleftrightbaseline
- first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretchsafestart avait été utilisée.unsafe.wrapper {
- display: grid;
- grid-template-columns: repeat(2, 100px);
- grid-template-rows: repeat(2,100px);
- height: 300px;
- width: 300px;
- grid-gap: 10px;
- align-content: space-between;
-}
-.item1 {
- justify-self: start;
-}
-.item3 {
- justify-self: end;
-}
-
-
-<div class="wrapper"> - <div class="item1">Objet 1</div> - <div class="item2">Objet 2</div> - <div class="item3">Objet 3</div> - <div class="item4">Objet 4</div> -</div> -- -
{{EmbedLiveSample('Exemples', '300', '300')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box Alignment', '#propdef-justify-slef', 'justify-self')}} | -{{Spec2('CSS3 Box Alignment')}} | -Définition initiale. | -
{{CSSInfo}}
- -{{Compat("css.properties.justify-self.flex_context")}}
- -{{Compat("css.properties.justify-self.grid_context")}}
- -La propriété CSS justify-self définit la façon dont une boîte est alignée sur l'axe en ligne du conteneur.
/* Mots-clés de base */ +justify-self: auto; +justify-self: normal; +justify-self: stretch; + +/* Alignement par rapport à l'axe */ +justify-self: center; /* L'élément est aligné au centre */ +justify-self: start; /* L'élément est aligné au début */ +justify-self: end; /* L'élément est aligné à la fin */ +justify-self: flex-start; /* L'élément est aligné au début de l'axe */ +justify-self: flex-end; /* L'élément est aligné à la fin de l'axe */ +justify-self: self-start; +justify-self: self-end; +justify-self: left; /* L'élément est aligné à gauche */ +justify-self: right; /* L'élément est aligné à droite */ + +/* Alignement par rapport à la ligne de base */ +justify-self: baseline; +justify-self: first baseline; +justify-self: last baseline; + +/* Gestion du dépassement */ +justify-self: safe center; +justify-self: unsafe center; + +/* Valeurs globales */ +justify-self: inherit; +justify-self: initial; +justify-self: unset; ++ +
Cette propriété peut être définie selon trois formes différentes :
+ +normal, auto ou stretch.baseline éventuellement suivi de first ou de lastcenter, start, end, flex-start, flex-end, self-start, self-end, left ou rightsafe ou unsafeautojustify-items définie pour la boîte parente. Si la boîte n'a pas de parent ou est positionnée de façon absolue, auto sera synonyme de normal.normalnormal est synonyme de start.start pour les boîtes des éléments remplacés ou comme stretch pour les autres boîtes positionnées de façon absolue.stretch, sauf pour les boîtes qui ont des dimensions intrinsèques, dans ce cas, il est synonyme de start.startendflex-startstart.flex-endend.self-startself-endcenterleftrightbaseline
+ first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretchsafestart avait été utilisée.unsafe.wrapper {
+ display: grid;
+ grid-template-columns: repeat(2, 100px);
+ grid-template-rows: repeat(2,100px);
+ height: 300px;
+ width: 300px;
+ grid-gap: 10px;
+ align-content: space-between;
+}
+.item1 {
+ justify-self: start;
+}
+.item3 {
+ justify-self: end;
+}
+
+
+<div class="wrapper"> + <div class="item1">Objet 1</div> + <div class="item2">Objet 2</div> + <div class="item3">Objet 3</div> + <div class="item4">Objet 4</div> +</div> ++ +
{{EmbedLiveSample('Exemples', '300', '300')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box Alignment', '#propdef-justify-slef', 'justify-self')}} | +{{Spec2('CSS3 Box Alignment')}} | +Définition initiale. | +
{{CSSInfo}}
+ +{{Compat("css.properties.justify-self.flex_context")}}
+ +{{Compat("css.properties.justify-self.grid_context")}}
+ +La navigation avec un fil d'Ariane (breadcrumb) permet à un utilisateur de comprendre l'emplacement auquel il se trouve au sein du site web en fournissant un fil d'Ariane permettant de revenir à la page de départ.
- -
Les différents éléments formant le chemin sont affichés sur une ligne avec un séparateur qui permet d'identifier la hiérarchie entre les pages.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/breadcrumb-navigation.html", '100%', 530)}}
- -Note : Télécharger cet exemple
-L'ensemble est organisé dans un conteneur flexible. Les séparateurs sont générés à partir de pseudo-éléments et le séparateur choisi ici peut être modifié à votre convenance.
- -On utilise ici les attributs aria-label et aria-current afin d'aider les utilisateurs à comprendre cette navigation et l'emplacement de la page actuelle dans la structure. Pour plus d'informations, voir les liens ci-après.
{{Compat("css.properties.flex")}}
- -La navigation avec un fil d'Ariane (breadcrumb) permet à un utilisateur de comprendre l'emplacement auquel il se trouve au sein du site web en fournissant un fil d'Ariane permettant de revenir à la page de départ.
+ +
Les différents éléments formant le chemin sont affichés sur une ligne avec un séparateur qui permet d'identifier la hiérarchie entre les pages.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/breadcrumb-navigation.html", '100%', 530)}}
+ +Note : Télécharger cet exemple
+L'ensemble est organisé dans un conteneur flexible. Les séparateurs sont générés à partir de pseudo-éléments et le séparateur choisi ici peut être modifié à votre convenance.
+ +On utilise ici les attributs aria-label et aria-current afin d'aider les utilisateurs à comprendre cette navigation et l'emplacement de la page actuelle dans la structure. Pour plus d'informations, voir les liens ci-après.
{{Compat("css.properties.flex")}}
+ +{{CSSRef}}
- -Dans ce guide, nous verrons comment créer des cartes (cards en anglais), disposant éventuellement d'un pied de page, qui peuvent être organisée en listes.
- -
Une carte peut contenir différents éléments tels qu'un titre, une image, un contenu texte et un pied de page.
- -Chaque carte devrait avoir la même hauteur et les pied de page devrait être placés en bas de la carte.
- -Lorsqu'on ajoute des cartes à un ensemble de cartes, celles-ci devraient s'organiser sur deux dimensions.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/card.html", '100%', 1720)}}
- -Note : Télécharger cet exemple.
-Chaque carte est organisée en utilisant une grille CSS bien qu'elle ne soit que sur une seule dimension. Cela permet en effet d'utiliser le dimensionnement du contenu pour les pistes de la grille. Pour avoir une grille avec une seule colonne, on utilise ce fragment de CSS :
- -.card {
- display: grid;
- grid-template-rows: max-content 200px 1fr;
-}
-
-La piste pour le titre est définie avec {{cssxref("max-content")}} ce qui empêche de l'étirer. On décide ensuite que l'image puisse occuper la piste au maximum sur 200 pixels. On définit ensuite la prochaine piste (où le contenu texte se trouve) avec une dimension de 1fr. Autrement dit, la piste dédiée au contenu occupera tout l'espace restant.
Si la carte possède un pied de page, celui-ci sera dimensionné automatiquement car les lignes ajoutées sur la grille implicite sont dimensionnés automatiquement. Aussi, le pied de page sera suffisamment grand pour contenir l'ensemble de son texte.
- -Note : Les éléments de différentes cartes ne seront pas alignés les uns avec les autres car chaque carte est une grille indépendante. La fonctionnalité de sous-grille (subgrid), proposée pour la version de niveau 2 du module de spécification CSS Grid, pourrait apporter une solution à ce problème.
-On pourrait également utiliser les boîtes flexibles pour organiser le contenu d'une carte. Dans cette configuration, il faut laisser la zone dédiée au contenu s'étendre et ne pas rendre les autres éléments flexibles. On pourrait ainsi obtenir simplement cette disposition. Les grilles permettent de dimensionner les pistes au niveau du conteneur, pour les boîtes flexibles, il faut dimensionner chaque élément séparément.
- -Pour l'organisation de l'ensemble des cartes (et pas des cartes individuelles), on pourrait également utiliser les boîtes flexibles mais on aurait alors la dernière carte qui occuperait tout le reste d'une ligne et qui serait potentiellement plus larges que les autres cartes. Une autre méthode consisterait à utiliser une disposition multi-colonnes où les cartes s'empileraient sur les différentes colonnes (un point qui peut être souhaitable ou indésirable selon l'effet désiré).
- -Voir la recette sur les colonnes pour observer ces méthodes en action.
- -Selon le contenu des cartes, il est possible voire souhaitable d'appliquer quelques traitements pour améliorer l'accessibilité. Voir l'article Inclusive Components: Card (en anglais), écrit par Heydon Pickering, pour des explications détaillées à ce propos.
- -Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
- -{{Compat("css.properties.grid-template-columns")}}
- -{{Compat("css.properties.grid-template-rows")}}
- -{{CSSRef}}
+ +Dans ce guide, nous verrons comment créer des cartes (cards en anglais), disposant éventuellement d'un pied de page, qui peuvent être organisée en listes.
+ +
Une carte peut contenir différents éléments tels qu'un titre, une image, un contenu texte et un pied de page.
+ +Chaque carte devrait avoir la même hauteur et les pied de page devrait être placés en bas de la carte.
+ +Lorsqu'on ajoute des cartes à un ensemble de cartes, celles-ci devraient s'organiser sur deux dimensions.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/card.html", '100%', 1720)}}
+ +Note : Télécharger cet exemple.
+Chaque carte est organisée en utilisant une grille CSS bien qu'elle ne soit que sur une seule dimension. Cela permet en effet d'utiliser le dimensionnement du contenu pour les pistes de la grille. Pour avoir une grille avec une seule colonne, on utilise ce fragment de CSS :
+ +.card {
+ display: grid;
+ grid-template-rows: max-content 200px 1fr;
+}
+
+La piste pour le titre est définie avec {{cssxref("max-content")}} ce qui empêche de l'étirer. On décide ensuite que l'image puisse occuper la piste au maximum sur 200 pixels. On définit ensuite la prochaine piste (où le contenu texte se trouve) avec une dimension de 1fr. Autrement dit, la piste dédiée au contenu occupera tout l'espace restant.
Si la carte possède un pied de page, celui-ci sera dimensionné automatiquement car les lignes ajoutées sur la grille implicite sont dimensionnés automatiquement. Aussi, le pied de page sera suffisamment grand pour contenir l'ensemble de son texte.
+ +Note : Les éléments de différentes cartes ne seront pas alignés les uns avec les autres car chaque carte est une grille indépendante. La fonctionnalité de sous-grille (subgrid), proposée pour la version de niveau 2 du module de spécification CSS Grid, pourrait apporter une solution à ce problème.
+On pourrait également utiliser les boîtes flexibles pour organiser le contenu d'une carte. Dans cette configuration, il faut laisser la zone dédiée au contenu s'étendre et ne pas rendre les autres éléments flexibles. On pourrait ainsi obtenir simplement cette disposition. Les grilles permettent de dimensionner les pistes au niveau du conteneur, pour les boîtes flexibles, il faut dimensionner chaque élément séparément.
+ +Pour l'organisation de l'ensemble des cartes (et pas des cartes individuelles), on pourrait également utiliser les boîtes flexibles mais on aurait alors la dernière carte qui occuperait tout le reste d'une ligne et qui serait potentiellement plus larges que les autres cartes. Une autre méthode consisterait à utiliser une disposition multi-colonnes où les cartes s'empileraient sur les différentes colonnes (un point qui peut être souhaitable ou indésirable selon l'effet désiré).
+ +Voir la recette sur les colonnes pour observer ces méthodes en action.
+ +Selon le contenu des cartes, il est possible voire souhaitable d'appliquer quelques traitements pour améliorer l'accessibilité. Voir l'article Inclusive Components: Card (en anglais), écrit par Heydon Pickering, pour des explications détaillées à ce propos.
+ +Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
+ +{{Compat("css.properties.grid-template-columns")}}
+ +{{Compat("css.properties.grid-template-rows")}}
+ +Comment centrer une boîte dans une autre boîte ? Centrer à la fois horizontalement et verticalement était difficile avant l'arrivée des boîtes flexibles (flexbox), mais c'est désormais beaucoup plus simple grâce aux propriétés du module de spécification Box Alignment.
- -
Centrer un élément à la fois horizontalement et verticalement dans un autre élément.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/center.html", '100%', 720)}}
- -Note : Télécharger cet exemple
-Pour centrer une boîte dans une autre, on a donné au contenant une propriété display: flex.
Ensuite, on a paramétré {{cssxref("align-items")}} avec la valeur center pour centrer la boîte verticalement, et {{cssxref("justify-content")}} avec la valeur center pour centrer horizontalement.
À l'avenir, nous pourrons peut-être centrer les éléments sans avoir à transformer le parent en contenant flexible, puisque les propriétés de Box Alignment utilisées ici sont aussi faites pour s'appliquer à une disposition en bloc classique.
- Cependant, sa prise en charge dans ce cas (disposition en bloc) est actuellement limitée ; l'utilisation de Flexbox pour centrer est donc, pour le moment, la technique la plus robuste.
Les différentes méthodes de layout ont chacune leur compatibilité avec les navigateurs. Les tableaux ci-dessous détaillent le support de base pour chaque propriété.
- -align-items{{Compat("css.properties.align-items")}}
- -justify-content{{Compat("css.properties.justify-content")}}
- -Comment centrer une boîte dans une autre boîte ? Centrer à la fois horizontalement et verticalement était difficile avant l'arrivée des boîtes flexibles (flexbox), mais c'est désormais beaucoup plus simple grâce aux propriétés du module de spécification Box Alignment.
+ +
Centrer un élément à la fois horizontalement et verticalement dans un autre élément.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/center.html", '100%', 720)}}
+ +Note : Télécharger cet exemple
+Pour centrer une boîte dans une autre, on a donné au contenant une propriété display: flex.
Ensuite, on a paramétré {{cssxref("align-items")}} avec la valeur center pour centrer la boîte verticalement, et {{cssxref("justify-content")}} avec la valeur center pour centrer horizontalement.
À l'avenir, nous pourrons peut-être centrer les éléments sans avoir à transformer le parent en contenant flexible, puisque les propriétés de Box Alignment utilisées ici sont aussi faites pour s'appliquer à une disposition en bloc classique.
+ Cependant, sa prise en charge dans ce cas (disposition en bloc) est actuellement limitée ; l'utilisation de Flexbox pour centrer est donc, pour le moment, la technique la plus robuste.
Les différentes méthodes de layout ont chacune leur compatibilité avec les navigateurs. Les tableaux ci-dessous détaillent le support de base pour chaque propriété.
+ +align-items{{Compat("css.properties.align-items")}}
+ +justify-content{{Compat("css.properties.justify-content")}}
+ +Vous aurez souvent à créer des dispositions organisées en colonnes. CSS fournit différentes méthodes pour parvenir à de telles dispositions. Les grilles CSS ou les boîtes flexibles ou encore les dispositions multi-colonnes peuvent être utilisées et choisir l'une de ces méthodes dépend de ce que l'on veut obtenir. Dans ce guide, nous verrons ces différentes options.
- -
Il existe plusieurs « motifs » qu'on peut vouloir réaliser avec des colonnes :
- -Selon le scénario souhaité, on utilisera différentes méthodes de disposition.
- -En créant des colonnes avec une disposition multi-colonne, le texte pourra former un flux continu qui remplira chacune des colonnes à la suite des autres. Les colonnes auront toutes la même taille et il ne sera pas possible de cibler une colonne en particulier ou le contenu d'une colonne en particulier.
- -L'espacement entre les colonnes peut être géré avec la propriété {{cssxref("column-gap")}} et il est possible d'ajouter une ligne de délimitation grâce à {{cssxref("column-rule")}}.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/columns-multicol.html", '100%', 720)}}
- -Note : Télécharger cet exemple
-On utilisera une disposition multi-colonnes lorsque :
- -Les boîtes flexibles peuvent être utilisées afin de diviser du contenu en colonnes grâce à la propriété {{cssxref("flex-direction")}} utilisée avec la valeur row. Toutefois, une boîte flexible cible les éléments à l'intérieur du conteneur flexible et placera chaque enfant direct dans une nouvelle colonne. On a donc un comportement différent de celui vu précédemment avec les multi-colonnes.
À l'heure actuelle, il n'existe pas de méthode qui permette de créer une ligne entre les objets flexibles et la prise en charge des navigateurs pour les propriétés {{cssxref("column-gap")}} et {{cssxref("row-gap")}} est limitée. Pour créer un espace entre les éléments, il faudra donc utiliser une marge.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/columns-flexbox.html", '100%', 720)}}
- -Note : Télécharger cet exemple
-Les boîtes flexibles peuvent également être utilisées afin de créer des dispositions où les objets flexibles « passent à la ligne » en utilisant la propriété {{cssxref("flex-wrap")}} et la valeur wrap sur le conteneur. Les nouvelles lignes répartiront l'espace pour cette ligne uniquement, il n'y aura pas d'alignement d'une ligne à l'autre (comme on peut le voir dans l'exemple qui suit). C'est pour cette raison qu'on décrit les boîtes flexibles comme étant une méthode de disposition sur une seul dimension : cette méthode permet de contrôler la disposition en ligne ou en colonne mais pas de gérer les deux à la fois.
{{EmbedGHLiveSample("css-examples/css-cookbook/columns-flexbox-wrapping.html", '100%', 720)}}
- -Note : Télécharger cet exemple
-On utilisera les boîtes flexibles pour :
- -Si on souhaite organiser des objets sur des lignes et sur des colonnes, alors on choisira une grille CSS. La disposition à l'aide d'une grille permet d'organiser les éléments fils d'un contener de la même façon que les boîtes flexibles mais on peut également aligner les lignes et les colonnes. Aussi, si les boîtes flexibles sont une méthode unidimensionnelle, les grilles CSS permettent de jouer sur les deux dimensions.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/columns-grid.html", '100%', 720)}}
- -Note : Télécharger cet exemple
-On utiliser les grilles CSS lorsque :
- -Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
- -{{Compat("css.properties.column-width")}}
- -{{Compat("css.properties.column-rule")}}
- -{{Compat("css.properties.flex")}}
- -{{Compat("css.properties.flex-wrap")}}
- -{{Compat("css.properties.grid-template-columns")}}
- -Vous aurez souvent à créer des dispositions organisées en colonnes. CSS fournit différentes méthodes pour parvenir à de telles dispositions. Les grilles CSS ou les boîtes flexibles ou encore les dispositions multi-colonnes peuvent être utilisées et choisir l'une de ces méthodes dépend de ce que l'on veut obtenir. Dans ce guide, nous verrons ces différentes options.
+ +
Il existe plusieurs « motifs » qu'on peut vouloir réaliser avec des colonnes :
+ +Selon le scénario souhaité, on utilisera différentes méthodes de disposition.
+ +En créant des colonnes avec une disposition multi-colonne, le texte pourra former un flux continu qui remplira chacune des colonnes à la suite des autres. Les colonnes auront toutes la même taille et il ne sera pas possible de cibler une colonne en particulier ou le contenu d'une colonne en particulier.
+ +L'espacement entre les colonnes peut être géré avec la propriété {{cssxref("column-gap")}} et il est possible d'ajouter une ligne de délimitation grâce à {{cssxref("column-rule")}}.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/columns-multicol.html", '100%', 720)}}
+ +Note : Télécharger cet exemple
+On utilisera une disposition multi-colonnes lorsque :
+ +Les boîtes flexibles peuvent être utilisées afin de diviser du contenu en colonnes grâce à la propriété {{cssxref("flex-direction")}} utilisée avec la valeur row. Toutefois, une boîte flexible cible les éléments à l'intérieur du conteneur flexible et placera chaque enfant direct dans une nouvelle colonne. On a donc un comportement différent de celui vu précédemment avec les multi-colonnes.
À l'heure actuelle, il n'existe pas de méthode qui permette de créer une ligne entre les objets flexibles et la prise en charge des navigateurs pour les propriétés {{cssxref("column-gap")}} et {{cssxref("row-gap")}} est limitée. Pour créer un espace entre les éléments, il faudra donc utiliser une marge.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/columns-flexbox.html", '100%', 720)}}
+ +Note : Télécharger cet exemple
+Les boîtes flexibles peuvent également être utilisées afin de créer des dispositions où les objets flexibles « passent à la ligne » en utilisant la propriété {{cssxref("flex-wrap")}} et la valeur wrap sur le conteneur. Les nouvelles lignes répartiront l'espace pour cette ligne uniquement, il n'y aura pas d'alignement d'une ligne à l'autre (comme on peut le voir dans l'exemple qui suit). C'est pour cette raison qu'on décrit les boîtes flexibles comme étant une méthode de disposition sur une seul dimension : cette méthode permet de contrôler la disposition en ligne ou en colonne mais pas de gérer les deux à la fois.
{{EmbedGHLiveSample("css-examples/css-cookbook/columns-flexbox-wrapping.html", '100%', 720)}}
+ +Note : Télécharger cet exemple
+On utilisera les boîtes flexibles pour :
+ +Si on souhaite organiser des objets sur des lignes et sur des colonnes, alors on choisira une grille CSS. La disposition à l'aide d'une grille permet d'organiser les éléments fils d'un contener de la même façon que les boîtes flexibles mais on peut également aligner les lignes et les colonnes. Aussi, si les boîtes flexibles sont une méthode unidimensionnelle, les grilles CSS permettent de jouer sur les deux dimensions.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/columns-grid.html", '100%', 720)}}
+ +Note : Télécharger cet exemple
+On utiliser les grilles CSS lorsque :
+ +Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
+ +{{Compat("css.properties.column-width")}}
+ +{{Compat("css.properties.column-rule")}}
+ +{{Compat("css.properties.flex")}}
+ +{{Compat("css.properties.flex-wrap")}}
+ +{{Compat("css.properties.grid-template-columns")}}
+ +{{CSSRef}}
- -Note : Voici un modèle de contenu pour les pages de « recette » CSS. Vous êtes invité⋅e à utiliser cette page comme modèle lorsque vous créez une nouvelle recette.
-Les commentaires en italiques sont des informations sur l'utilisation de telle ou telle partie du modèle. -
Une description du problème qu'on souhaite résoudre ou du motif qu'on illustre avec cette recette.
- -Que cherche-t-on à faire avec cette recette ? Quel problème résout-on ici ? Il faut expliquer de façon concise ce que l'on souhaite faire.
- -Il faudra changer le chemin de la macro pour correspondre à celui de votre exemple une fois que celui-ci a été fusionné sur le dépôt principal. Le dernier paramètre correspond à la hauteur qui peut être adaptée si besoin.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/center.html", '100%', 720)}}
- -Il faut modifier le lien pour cibler la version téléchargeable de votre exemple.
- -Note : Télécharger cet exemple.
-Expliquez ici les décisions prises pour réaliser cette recette. Pourquoi avez-vous choisi telle méthode de disposition ? Vous pouvez inclure ici d'autres exemples. Cette section est assez flexible car la complexité d'une recette peut varier grandement.
- -S'il existe d'autres méthodes ou des méthodes qui permettent une amélioration progressive pour les navigateurs qui ne prennent pas en charge les fonctionnalités récentes utilisées, vous pouvez les décrire ici.
- -Inclure ici les aspects spécifiquement liés à l'accessibilité pour cette recette. Cette section peut être omise si rien de notable ne concerne l'accessiblité pour cette recette.
- -Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
- -Inclure ici les données de compatibilité pour les principales propriétés utilisées. Comme exemple, voici comment faire pour inclure les données concernant align-items.
{{Compat("css.properties.align-items")}}
- -{{CSSRef}}
+ +Note : Voici un modèle de contenu pour les pages de « recette » CSS. Vous êtes invité⋅e à utiliser cette page comme modèle lorsque vous créez une nouvelle recette.
+Les commentaires en italiques sont des informations sur l'utilisation de telle ou telle partie du modèle. +
Une description du problème qu'on souhaite résoudre ou du motif qu'on illustre avec cette recette.
+ +Que cherche-t-on à faire avec cette recette ? Quel problème résout-on ici ? Il faut expliquer de façon concise ce que l'on souhaite faire.
+ +Il faudra changer le chemin de la macro pour correspondre à celui de votre exemple une fois que celui-ci a été fusionné sur le dépôt principal. Le dernier paramètre correspond à la hauteur qui peut être adaptée si besoin.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/center.html", '100%', 720)}}
+ +Il faut modifier le lien pour cibler la version téléchargeable de votre exemple.
+ +Note : Télécharger cet exemple.
+Expliquez ici les décisions prises pour réaliser cette recette. Pourquoi avez-vous choisi telle méthode de disposition ? Vous pouvez inclure ici d'autres exemples. Cette section est assez flexible car la complexité d'une recette peut varier grandement.
+ +S'il existe d'autres méthodes ou des méthodes qui permettent une amélioration progressive pour les navigateurs qui ne prennent pas en charge les fonctionnalités récentes utilisées, vous pouvez les décrire ici.
+ +Inclure ici les aspects spécifiquement liés à l'accessibilité pour cette recette. Cette section peut être omise si rien de notable ne concerne l'accessiblité pour cette recette.
+ +Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
+ +Inclure ici les données de compatibilité pour les principales propriétés utilisées. Comme exemple, voici comment faire pour inclure les données concernant align-items.
{{Compat("css.properties.align-items")}}
+ +Si vous souhaitez contribuer en ajoutant une recette à celles présentées dans cette section de MDN, nous vous expliquons ici quelles étapes suivre pour que vos exemples soient publiés.
- -Une bonne recette consiste en la version la plus simple possible d'un motif utile pour concevoir une page web. Chaque ligne de CSS écrite dans la recette doit servir à illustrer le motif. Tout ce qui est purement décoratif pour l'exemple doit être exclus. L'idée est que la recette puisse servir de base à n'importe qui et de pouvoir appliquer ses propres styles sur l'exemple si besoin.
- -Note : Quant à la traduction et aux recettes en anglais, une recette (l'exemple interactif, la version téléchargeable et la page MDN) doit d'abord être créée en anglais avant de pouvoir être mise à disposition en français. La suite de ce guide explique en français ce qu'il faut réaliser mais la majeure partie du contenu produit devra être en anglais.
-Une recette se décompose comme suit :
- -Avant de passer de l'exemple à la recette, commencez par écrire votre motif sous la forme d'une simple page HTML. Pensez à ce que vous voulez démontrer/illustrer et visez un résultat aussi simple que possible. Évitez d'utiliser des conventions CSS spécifiques qui ne seraient pas nécessairement connues et qui pourraient complexifier inutilement l'exemple.
- -Assurez-vous que le code HTML et CSS soit valide et testez le dans différents navigateurs. Vous pouvez tout à fait utiliser des propriétés CSS qui ne sont pas prises en charge par l'ensemble des navigateurs. Vous pourrez inclure les informations de compatibilité dans la page dédiée. Dans certains cas, il pourra être utile de fournir une deuxième version de l'exemple qui illustre des techniques qui permettent de prendre en charge des navigateurs plus anciens.
- -Les exemples interactifs que vous voyez sur ces recettes et dans d'autres articles MDN permettent aux visiteurs de modifier le code et d'en voir le résultat sans être submergé⋅e de code superflu. Votre recette pourra utiliser un ou plusieurs exemples interactifs.
- -Créez un fork du dépôt des exemples CSS puis étudiez le dossier css-cookbook. Ce dernier contient un fichier cookbook-template.html dont vous pouvez repartir pour réaliser votre exemple. Enregistrez le nouveau fichier dans le répertoire css-cookbook avec un nom pertinent. Le modèle de base est commenté afin de vous aider à situer les différentes parties.
Voici les quelques éléments importants.
- -Il y a une feuille de style pour les panneaux des éditeurs, quelques règles pour la mise en forme de base et un fichier JavaScript qui contient les fonctionnalités de l'éditeur. Ces fichiers doivent être laissés tels quels.
- -Dans l'en-tête, il y a deux blocs pour le style. Le premier concerne les éléments que le visiteur n'a pas besoin de voir ou de changer pour modifier l'exemple. Le second correspond à ce qui pourra être modifié dans l'exemple. Généralement, on ajoute l'ensemble du CSS provenant de l'exemple dans le premier bloc puis on choisit les règles qu'on souhaite reproduire dans le deuxième bloc. Les règles du deuxième bloc doivent être celles qui illustrent l'essence de l'exemple et qu'un utilisateur pourra modifier afin d'en voir l'effet sur le motif.
- -Le HTML du composant doit être ajouté deux fois. Pour commencer dans la section avec la classe preview puis dans l'élément textarea playable-html.
Le CSS éditable (celui du second bloc de l'en-tête) doit également être recopié dans la section playable-css.
Pour voir un exemple existant et comprendre les différentes parties, vous pouvez consulter center.html qui est utilisé sur la page Comment centrer un élément.
- -Si vous avez créé un fork du dépôt et que vous avez les fichiers CSS et JavaScript avec votre exemple, vous pouvez ouvrir la page dans un navigateur et l'ensemble devrait fonctionner de la même manière que lorsqu'il sera inclus dans une page.
- -textarea par rapport à l'ensemble du document HTML mais reprenez l'indentation depuis la première colonne (voir center.html par exemple).textarea en modifiant la hauteur dans les styles inline/en incise.L'exemple intégré à la page contient tout le code mais seule la partie nécessaire est affichée. Faites une copie du fichier en ajoutant --download au nom. Ainsi, center.html possède une version téléchargeable intitulée center--download.html. Ce fichier devra ressembler à l'exemple initial et contenir une version basique du motif, sur une seule page HTML. Il peut être utile d'inclure les règles CSS applliquées à body et qui sont dans la feuille de style intégrée. Vous pouvez consulter cookbook-template--download.html comme exemple et point de départ.
Ouvrez une pull request depuis votre fork vers le dépôt des exemples CSS. Nous pourrons ainsi vous aider à apporter les modifications nécessaires pour la créations de la page. De plus, l'exemple devra être fusionné afin de pouvoir être affiché sur une page. Dans la pull request, veuillez écrire une présentation de cette recette et des concepts que vous illustrez.
- -Une fois l'exemple fusionné, vous pouvez créer l'article correspondant sur MDN. Pour cela, vous aurez besoin d'un compte et des permissions pour la création de page. Vous pourrez alors créer une page comme sous-page de la section. Cette page modèle pourra vous servir de point de départ pour votre contenu.
- -Le modèle explique le contenu de chaque section. Vous pouvez également consulter les recettes existantes comme références. Si vous cliquez sur le bouton d'édition en haut de page, vous pourrez ainsi accéder au contenu « brut » de la page et voir comment les macros sont utilisées afin d'intégrer les données de compatibilité ou les exemples interactifs.
- -Note : Si vous souhaitez effectuer la traduction d'une recette existante, vous pouvez consulter la page modèle en français.
-Si vous avez besoin d'une aide générale sur l'utilisation de MDN, vous pouvez consulter les pages d'aide.
- -Si vous avez des questions ou que vous souhaitez que quelqu'un vérifie votre page, n'hésitez pas à demander sur le forum Discourse de MDN ou à venir discuter sur IRC (ces deux canaux sont principalement anglophones).
- -Si vous souhaitez contribuer en ajoutant une recette à celles présentées dans cette section de MDN, nous vous expliquons ici quelles étapes suivre pour que vos exemples soient publiés.
+ +Une bonne recette consiste en la version la plus simple possible d'un motif utile pour concevoir une page web. Chaque ligne de CSS écrite dans la recette doit servir à illustrer le motif. Tout ce qui est purement décoratif pour l'exemple doit être exclus. L'idée est que la recette puisse servir de base à n'importe qui et de pouvoir appliquer ses propres styles sur l'exemple si besoin.
+ +Note : Quant à la traduction et aux recettes en anglais, une recette (l'exemple interactif, la version téléchargeable et la page MDN) doit d'abord être créée en anglais avant de pouvoir être mise à disposition en français. La suite de ce guide explique en français ce qu'il faut réaliser mais la majeure partie du contenu produit devra être en anglais.
+Une recette se décompose comme suit :
+ +Avant de passer de l'exemple à la recette, commencez par écrire votre motif sous la forme d'une simple page HTML. Pensez à ce que vous voulez démontrer/illustrer et visez un résultat aussi simple que possible. Évitez d'utiliser des conventions CSS spécifiques qui ne seraient pas nécessairement connues et qui pourraient complexifier inutilement l'exemple.
+ +Assurez-vous que le code HTML et CSS soit valide et testez le dans différents navigateurs. Vous pouvez tout à fait utiliser des propriétés CSS qui ne sont pas prises en charge par l'ensemble des navigateurs. Vous pourrez inclure les informations de compatibilité dans la page dédiée. Dans certains cas, il pourra être utile de fournir une deuxième version de l'exemple qui illustre des techniques qui permettent de prendre en charge des navigateurs plus anciens.
+ +Les exemples interactifs que vous voyez sur ces recettes et dans d'autres articles MDN permettent aux visiteurs de modifier le code et d'en voir le résultat sans être submergé⋅e de code superflu. Votre recette pourra utiliser un ou plusieurs exemples interactifs.
+ +Créez un fork du dépôt des exemples CSS puis étudiez le dossier css-cookbook. Ce dernier contient un fichier cookbook-template.html dont vous pouvez repartir pour réaliser votre exemple. Enregistrez le nouveau fichier dans le répertoire css-cookbook avec un nom pertinent. Le modèle de base est commenté afin de vous aider à situer les différentes parties.
Voici les quelques éléments importants.
+ +Il y a une feuille de style pour les panneaux des éditeurs, quelques règles pour la mise en forme de base et un fichier JavaScript qui contient les fonctionnalités de l'éditeur. Ces fichiers doivent être laissés tels quels.
+ +Dans l'en-tête, il y a deux blocs pour le style. Le premier concerne les éléments que le visiteur n'a pas besoin de voir ou de changer pour modifier l'exemple. Le second correspond à ce qui pourra être modifié dans l'exemple. Généralement, on ajoute l'ensemble du CSS provenant de l'exemple dans le premier bloc puis on choisit les règles qu'on souhaite reproduire dans le deuxième bloc. Les règles du deuxième bloc doivent être celles qui illustrent l'essence de l'exemple et qu'un utilisateur pourra modifier afin d'en voir l'effet sur le motif.
+ +Le HTML du composant doit être ajouté deux fois. Pour commencer dans la section avec la classe preview puis dans l'élément textarea playable-html.
Le CSS éditable (celui du second bloc de l'en-tête) doit également être recopié dans la section playable-css.
Pour voir un exemple existant et comprendre les différentes parties, vous pouvez consulter center.html qui est utilisé sur la page Comment centrer un élément.
+ +Si vous avez créé un fork du dépôt et que vous avez les fichiers CSS et JavaScript avec votre exemple, vous pouvez ouvrir la page dans un navigateur et l'ensemble devrait fonctionner de la même manière que lorsqu'il sera inclus dans une page.
+ +textarea par rapport à l'ensemble du document HTML mais reprenez l'indentation depuis la première colonne (voir center.html par exemple).textarea en modifiant la hauteur dans les styles inline/en incise.L'exemple intégré à la page contient tout le code mais seule la partie nécessaire est affichée. Faites une copie du fichier en ajoutant --download au nom. Ainsi, center.html possède une version téléchargeable intitulée center--download.html. Ce fichier devra ressembler à l'exemple initial et contenir une version basique du motif, sur une seule page HTML. Il peut être utile d'inclure les règles CSS applliquées à body et qui sont dans la feuille de style intégrée. Vous pouvez consulter cookbook-template--download.html comme exemple et point de départ.
Ouvrez une pull request depuis votre fork vers le dépôt des exemples CSS. Nous pourrons ainsi vous aider à apporter les modifications nécessaires pour la créations de la page. De plus, l'exemple devra être fusionné afin de pouvoir être affiché sur une page. Dans la pull request, veuillez écrire une présentation de cette recette et des concepts que vous illustrez.
+ +Une fois l'exemple fusionné, vous pouvez créer l'article correspondant sur MDN. Pour cela, vous aurez besoin d'un compte et des permissions pour la création de page. Vous pourrez alors créer une page comme sous-page de la section. Cette page modèle pourra vous servir de point de départ pour votre contenu.
+ +Le modèle explique le contenu de chaque section. Vous pouvez également consulter les recettes existantes comme références. Si vous cliquez sur le bouton d'édition en haut de page, vous pourrez ainsi accéder au contenu « brut » de la page et voir comment les macros sont utilisées afin d'intégrer les données de compatibilité ou les exemples interactifs.
+ +Note : Si vous souhaitez effectuer la traduction d'une recette existante, vous pouvez consulter la page modèle en français.
+Si vous avez besoin d'une aide générale sur l'utilisation de MDN, vous pouvez consulter les pages d'aide.
+ +Si vous avez des questions ou que vous souhaitez que quelqu'un vérifie votre page, n'hésitez pas à demander sur le forum Discourse de MDN ou à venir discuter sur IRC (ces deux canaux sont principalement anglophones).
+ +Ce motif permet d'aligner le contenu d'une grille au centre grâce à un élément qui l'enveloppe. On peut également choisir quels éléments aligner au centre et lesquels adosser aux côtés.
- -Les éléments placés sur la grille devraient pouvoir être alignés au centre et/ou sur les bords.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/grid-wrapper.html", '100%', 720)}}
- -Note : Télécharger cet exemple.
-Cette recette utilise la fonction {{cssxref("minmax()")}} afin de définir les tailles des pistes pour la propriété {{cssxref("grid-template-columns")}}.
- -Les deux colonnes extérieures ont une taille maximale de 1fr, ce qui signifie qu'elles occuperont tout l'espace disponible dans le conteneur de grille.
Si cette recette est utilisée pour une page entière, il peut s'avérer utile de définir max-width et des marges horzontales avec auto afin que le contenu soit centré horizontalement :
.grid {
- max-width: 1200px;
- margin: 0 auto; // on centre le conteneur en horizontal
- display: grid;
- /* Other grid code goes here */
-}
-
-/* On retire max-width et les marges si le navigateur */
-/* prend en charge les grilles */
-@supports (display: grid) {
- .grid {
- max-width: none;
- margin: 0;
- }
-}
-
-Pour qu'un élément soit isolé et colle au bord du viewport, on peut utiliser cette astuce de Una Kravets :
- -.item {
- width: 100vw;
- margin-left: 50%;
- transform: translate3d(-50%, 0, 0);
-}
-
-On a ainsi une méthode plus compatible mais qui ne permet pas d'aligner les éléments aussi facilement que sur une grille CSS.
- -Bien que les grilles CSS nous permettent potentiellement de positionner n'importe où on le souhaite, il est important que l'ordre des éléments dans le document soit le même que l'ordre visuel, utilisé pour la navigation (voir les grilles CSS et l'accessibilité pour plus de détails).
- -grid-template-columns{{Compat("css.properties.grid-template-columns")}}
- -minmax() (en anglais)Ce motif permet d'aligner le contenu d'une grille au centre grâce à un élément qui l'enveloppe. On peut également choisir quels éléments aligner au centre et lesquels adosser aux côtés.
+ +Les éléments placés sur la grille devraient pouvoir être alignés au centre et/ou sur les bords.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/grid-wrapper.html", '100%', 720)}}
+ +Note : Télécharger cet exemple.
+Cette recette utilise la fonction {{cssxref("minmax()")}} afin de définir les tailles des pistes pour la propriété {{cssxref("grid-template-columns")}}.
+ +Les deux colonnes extérieures ont une taille maximale de 1fr, ce qui signifie qu'elles occuperont tout l'espace disponible dans le conteneur de grille.
Si cette recette est utilisée pour une page entière, il peut s'avérer utile de définir max-width et des marges horzontales avec auto afin que le contenu soit centré horizontalement :
.grid {
+ max-width: 1200px;
+ margin: 0 auto; // on centre le conteneur en horizontal
+ display: grid;
+ /* Other grid code goes here */
+}
+
+/* On retire max-width et les marges si le navigateur */
+/* prend en charge les grilles */
+@supports (display: grid) {
+ .grid {
+ max-width: none;
+ margin: 0;
+ }
+}
+
+Pour qu'un élément soit isolé et colle au bord du viewport, on peut utiliser cette astuce de Una Kravets :
+ +.item {
+ width: 100vw;
+ margin-left: 50%;
+ transform: translate3d(-50%, 0, 0);
+}
+
+On a ainsi une méthode plus compatible mais qui ne permet pas d'aligner les éléments aussi facilement que sur une grille CSS.
+ +Bien que les grilles CSS nous permettent potentiellement de positionner n'importe où on le souhaite, il est important que l'ordre des éléments dans le document soit le même que l'ordre visuel, utilisé pour la navigation (voir les grilles CSS et l'accessibilité pour plus de détails).
+ +grid-template-columns{{Compat("css.properties.grid-template-columns")}}
+ +minmax() (en anglais)Le livre de recettes CSS vise à illustrer différents motifs qu'on retrouve fréquemment sur le Web et qu'on pourrait souhaiter implémenter pour son propre site. En plus de fournir du code qui peut servir de point de départ, ces recettes mettent en avant les différents outils et dispositions qui peuvent être utilisées et les choix à effectuer lors du développement.
- -Note : Si vous débutez en CSS, nous vous conseillons de consulter notre module sur l'apprentissage de la disposition en CSS. Ce guide vous fournira les informations de base pour comprendre le fonctionnement de chacune de ces recettes.
-| Recette | -Description | -Méthodes de disposition utilisées | -
|---|---|---|
| Objets avec média | -Une boîte constituée de deux colonnes avec une image d'un côté et un texte descriptif de l'autre (par exemple un tweet ou une publication Facebook intégrée à une page). | -Grilles CSS, {{cssxref("float")}} pour une méthode de recours, dimensionnement avec {{cssxref("fit-content")}} | -
| Colonnes | -Comment choisir entre une disposition multi-colonnes, les boites flexibles (flexbox) ou les grilles CSS pour organiser des colonnes de contenu. | -Grilles CSS, Disposition multi-colonnes, Flexbox | -
| Centrer un élément | -Comment centrer un élément horizontalement et verticalement. | -Flexbox, Alignement des boîtes | -
| Bas de page adhérant | -Créer un pied de page qui se situe en bas du conteneur ou de la zone d'affichage (viewport) lorsque le contenu est plus petit que la zone ou le conteneur. | -Grilles CSS, Flexbox | -
| Navigation segmentée | -Un motif de navigation où certains liens sont séparés des autres. | -Flexbox, {{cssxref("margin")}} | -
| Navigation avec un fil d'Ariane (breadcrumb) | -Créer une liste de liens qui permette au visiteur de naviguer selon la hiérarchie des pages. | -Flexbox | -
| Liste de groupes avec indicateurs | -Afficher une liste d'éléments avec chacun un indicateur numérique. | -Flexbox, Alignement des boîtes | -
| Pagination | -Comment créer des liens pour différentes pages, ordonnées, de contenu (les résultats d'une recherche par exemple). | -Flexbox, Alignement des boîtes | -
| Carte | -Un composant sous forme de carte. L'assemblage de tels composants formera une grille de cartes. | -Grilles CSS | -
| Envelopper une grille (grid wrapper) | -Comment aligner certains éléments au centre d'une grille et permettre à d'autres d'être alignés sur les bords. | -Grilles CSS | -
MDN est un wiki auquel vous pouvez contribuer, y compris en ajoutant une recette à celles-ci ! Voir cette page pour un modèle ainsi que les règles à suivre pour créer votre propre exemple.
diff --git a/files/fr/web/css/layout_cookbook/index.md b/files/fr/web/css/layout_cookbook/index.md new file mode 100644 index 0000000000..f3debbc018 --- /dev/null +++ b/files/fr/web/css/layout_cookbook/index.md @@ -0,0 +1,84 @@ +--- +title: CSS Layout cookbook +slug: Web/CSS/Layout_cookbook +tags: + - CSS + - Guide + - recettes +translation_of: Web/CSS/Layout_cookbook +--- +Le livre de recettes CSS vise à illustrer différents motifs qu'on retrouve fréquemment sur le Web et qu'on pourrait souhaiter implémenter pour son propre site. En plus de fournir du code qui peut servir de point de départ, ces recettes mettent en avant les différents outils et dispositions qui peuvent être utilisées et les choix à effectuer lors du développement.
+ +Note : Si vous débutez en CSS, nous vous conseillons de consulter notre module sur l'apprentissage de la disposition en CSS. Ce guide vous fournira les informations de base pour comprendre le fonctionnement de chacune de ces recettes.
+| Recette | +Description | +Méthodes de disposition utilisées | +
|---|---|---|
| Objets avec média | +Une boîte constituée de deux colonnes avec une image d'un côté et un texte descriptif de l'autre (par exemple un tweet ou une publication Facebook intégrée à une page). | +Grilles CSS, {{cssxref("float")}} pour une méthode de recours, dimensionnement avec {{cssxref("fit-content")}} | +
| Colonnes | +Comment choisir entre une disposition multi-colonnes, les boites flexibles (flexbox) ou les grilles CSS pour organiser des colonnes de contenu. | +Grilles CSS, Disposition multi-colonnes, Flexbox | +
| Centrer un élément | +Comment centrer un élément horizontalement et verticalement. | +Flexbox, Alignement des boîtes | +
| Bas de page adhérant | +Créer un pied de page qui se situe en bas du conteneur ou de la zone d'affichage (viewport) lorsque le contenu est plus petit que la zone ou le conteneur. | +Grilles CSS, Flexbox | +
| Navigation segmentée | +Un motif de navigation où certains liens sont séparés des autres. | +Flexbox, {{cssxref("margin")}} | +
| Navigation avec un fil d'Ariane (breadcrumb) | +Créer une liste de liens qui permette au visiteur de naviguer selon la hiérarchie des pages. | +Flexbox | +
| Liste de groupes avec indicateurs | +Afficher une liste d'éléments avec chacun un indicateur numérique. | +Flexbox, Alignement des boîtes | +
| Pagination | +Comment créer des liens pour différentes pages, ordonnées, de contenu (les résultats d'une recherche par exemple). | +Flexbox, Alignement des boîtes | +
| Carte | +Un composant sous forme de carte. L'assemblage de tels composants formera une grille de cartes. | +Grilles CSS | +
| Envelopper une grille (grid wrapper) | +Comment aligner certains éléments au centre d'une grille et permettre à d'autres d'être alignés sur les bords. | +Grilles CSS | +
MDN est un wiki auquel vous pouvez contribuer, y compris en ajoutant une recette à celles-ci ! Voir cette page pour un modèle ainsi que les règles à suivre pour créer votre propre exemple.
diff --git a/files/fr/web/css/layout_cookbook/list_group_with_badges/index.html b/files/fr/web/css/layout_cookbook/list_group_with_badges/index.html deleted file mode 100644 index 98a8a06891..0000000000 --- a/files/fr/web/css/layout_cookbook/list_group_with_badges/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Liste de groupes avec indicateurs -slug: Web/CSS/Layout_cookbook/List_group_with_badges -tags: - - CSS - - Guide - - Intermédiaire -translation_of: Web/CSS/Layout_cookbook/List_group_with_badges -original_slug: Web/CSS/Layout_cookbook/Liste_groupes_avec_indicateurs ---- -{{CSSRef}}
- -Dans cet article, nous verrons comment créer une liste de groupes dont chaque élément possède un compteur sous la forme d'un indicateur (badge).
- -
Les éléments de la liste doivent être affichés avec les indicateurs alignés à droite, quel que soit le volume de contenu pour un élément. L'indicateur doit être centré verticalement s'il y a plus d'une ligne de contenu.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/list-group-badges.html", '100%', 720)}}
- -Note : Télécharger l'exemple.
-Les boîtes flexibles sont un outil plutôt pratique pour constituer ce motif et permettent d'adapter simplement la disposition.
- -Pour s'assurer que le texte et l'indicateur soient bien alignés, on utilise la propriété justify-content avec la valeur space-between. Ainsi, l'espace supplémentaire est placé entre les éléments. Vous pouvez retirer cette propriété dans l'exemple ci-avant pour voir le badge se déplacer à la fin du texte.
Pour aligner le contenu horizontalement, on utilise la propriété align-items afin d'aligner le texte et l'indicateur sur l'axe secondaire. Si on veut que l'indicateur soit aligné en haut du contenu, on pourra utiliser align-items: flex-start à la place.
Les différentes méthodes utilisées ici peuvent avoir une prise en charge différentes par les navigateurs. Se référer à chacun des tableaux pour avoir plus de détails.
- -{{Compat("css.properties.justify-content")}}
- -{{Compat("css.properties.align-items")}}
- -{{CSSRef}}
+ +Dans cet article, nous verrons comment créer une liste de groupes dont chaque élément possède un compteur sous la forme d'un indicateur (badge).
+ +
Les éléments de la liste doivent être affichés avec les indicateurs alignés à droite, quel que soit le volume de contenu pour un élément. L'indicateur doit être centré verticalement s'il y a plus d'une ligne de contenu.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/list-group-badges.html", '100%', 720)}}
+ +Note : Télécharger l'exemple.
+Les boîtes flexibles sont un outil plutôt pratique pour constituer ce motif et permettent d'adapter simplement la disposition.
+ +Pour s'assurer que le texte et l'indicateur soient bien alignés, on utilise la propriété justify-content avec la valeur space-between. Ainsi, l'espace supplémentaire est placé entre les éléments. Vous pouvez retirer cette propriété dans l'exemple ci-avant pour voir le badge se déplacer à la fin du texte.
Pour aligner le contenu horizontalement, on utilise la propriété align-items afin d'aligner le texte et l'indicateur sur l'axe secondaire. Si on veut que l'indicateur soit aligné en haut du contenu, on pourra utiliser align-items: flex-start à la place.
Les différentes méthodes utilisées ici peuvent avoir une prise en charge différentes par les navigateurs. Se référer à chacun des tableaux pour avoir plus de détails.
+ +{{Compat("css.properties.justify-content")}}
+ +{{Compat("css.properties.align-items")}}
+ +Le motif Media Object (qu'on peut traduire en « objet avec média ») est un motif qu'on rencontre fréquemment sur le Web. Intitulé ainsi par Nicole Sullivan, cela fait référence à une boîte organisée en deux colonnes dont l'une contient une image d'un côté et un texte descriptif de l'autre (par exemple l'image de profil de quelqu'un à gauche et un billet à droite).
- -
Voici ce qu'on souhaite obtenir :
- -{{EmbedGHLiveSample("css-examples/css-cookbook/media-objects.html", '100%', 1200)}}
- -Note : Télécharger cet exemple.
-On a ici choisi d'utiliser une grille pour réaliser cet objet. cela permet de contrôler les deux dimensions lorsqu'on en a besoin. Ainsi, si on a besoin d'un pied de page avec un contenu au dessus, le pied de page peut être poussé sous l'objet.
- -La grille permet également d'utiliser {{cssxref("fit-content")}} pour la piste contenant l'image. En utilisant fit-content avec une taille maximale de 200 pixels, lorsqu'on a une petite image (une icône), la piste est réduite à la taille de cette image. Si l'image est plus grande, la piste ne sera pas plus large que 200 pixels, de plus, l'image ayant {{cssxref("max-width ")}} avec 100%, elle sera redimensionnée afin de pouvoir tenir dans la colonne.
En utilisant {{cssxref("grid-template-areas")}} pour dessiner la disposition, on peut voir le motif dans la feuille de style CSS. La grille est définie lorsqu'on a max-width qui vaut au moins 500 pixels et on a donc un empilement pour les plus petits écrans.
En ajoutant une classe media-flip, on fournit une disposition alternative qui permet de changer le côté sur lequel l'image est affichée.
Lorsqu'on imbrique un objet dans un autre, il faut le placer dans la deuxième piste en mode normal et sur la première lorsqu'on choisit d'inverser le côté de l'image.
- -Il existe différentes méthodes alternatives permettant d'obtenir ce résultat selon les navigateurs que vous souhaitez prendre en charge. Une méthode assez générique consiste à placer l'image en flottante à gauche et d'ajouter un dégagement sur la boîte afin qu'elle contienne bien tous les éléments flottants.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/media-objects-fallback.html", '100%', 1200)}}
- -Note : Télécharger cet exemple.
-Une fois que les éléments flottants sont des éléments de grille, les dégagements ne s'appliquent plus et il n'est donc pas nécessaire de retirer quoi que ce soit sur les dégagements.
- -En revanche, il faudra retirer les marges appliquées aux objets et les largeurs superflues pour la grille (la propriété {{cssxref("gap")}} permet de contrôler l'espace entre et les pistes gèrent le reste du dimensionnement).
- -Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
- -{{Compat("css.properties.grid-template-areas")}}
- -{{Compat("css.properties.float")}}
- -fit-contentgrid-template-areasdiff --git a/files/fr/web/css/layout_cookbook/media_objects/index.md b/files/fr/web/css/layout_cookbook/media_objects/index.md new file mode 100644 index 0000000000..8c2ca3ae1e --- /dev/null +++ b/files/fr/web/css/layout_cookbook/media_objects/index.md @@ -0,0 +1,87 @@ +--- +title: Objets avec média +slug: Web/CSS/Layout_cookbook/Media_objects +tags: + - CSS + - Guide + - Recette +translation_of: Web/CSS/Layout_cookbook/Media_objects +--- +
Le motif Media Object (qu'on peut traduire en « objet avec média ») est un motif qu'on rencontre fréquemment sur le Web. Intitulé ainsi par Nicole Sullivan, cela fait référence à une boîte organisée en deux colonnes dont l'une contient une image d'un côté et un texte descriptif de l'autre (par exemple l'image de profil de quelqu'un à gauche et un billet à droite).
+ +
Voici ce qu'on souhaite obtenir :
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/media-objects.html", '100%', 1200)}}
+ +Note : Télécharger cet exemple.
+On a ici choisi d'utiliser une grille pour réaliser cet objet. cela permet de contrôler les deux dimensions lorsqu'on en a besoin. Ainsi, si on a besoin d'un pied de page avec un contenu au dessus, le pied de page peut être poussé sous l'objet.
+ +La grille permet également d'utiliser {{cssxref("fit-content")}} pour la piste contenant l'image. En utilisant fit-content avec une taille maximale de 200 pixels, lorsqu'on a une petite image (une icône), la piste est réduite à la taille de cette image. Si l'image est plus grande, la piste ne sera pas plus large que 200 pixels, de plus, l'image ayant {{cssxref("max-width ")}} avec 100%, elle sera redimensionnée afin de pouvoir tenir dans la colonne.
En utilisant {{cssxref("grid-template-areas")}} pour dessiner la disposition, on peut voir le motif dans la feuille de style CSS. La grille est définie lorsqu'on a max-width qui vaut au moins 500 pixels et on a donc un empilement pour les plus petits écrans.
En ajoutant une classe media-flip, on fournit une disposition alternative qui permet de changer le côté sur lequel l'image est affichée.
Lorsqu'on imbrique un objet dans un autre, il faut le placer dans la deuxième piste en mode normal et sur la première lorsqu'on choisit d'inverser le côté de l'image.
+ +Il existe différentes méthodes alternatives permettant d'obtenir ce résultat selon les navigateurs que vous souhaitez prendre en charge. Une méthode assez générique consiste à placer l'image en flottante à gauche et d'ajouter un dégagement sur la boîte afin qu'elle contienne bien tous les éléments flottants.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/media-objects-fallback.html", '100%', 1200)}}
+ +Note : Télécharger cet exemple.
+Une fois que les éléments flottants sont des éléments de grille, les dégagements ne s'appliquent plus et il n'est donc pas nécessaire de retirer quoi que ce soit sur les dégagements.
+ +En revanche, il faudra retirer les marges appliquées aux objets et les largeurs superflues pour la grille (la propriété {{cssxref("gap")}} permet de contrôler l'espace entre et les pistes gèrent le reste du dimensionnement).
+ +Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
+ +{{Compat("css.properties.grid-template-areas")}}
+ +{{Compat("css.properties.float")}}
+ +fit-contentgrid-template-areasdiff --git a/files/fr/web/css/layout_cookbook/pagination/index.html b/files/fr/web/css/layout_cookbook/pagination/index.html deleted file mode 100644 index eacc793faa..0000000000 --- a/files/fr/web/css/layout_cookbook/pagination/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Pagination -slug: Web/CSS/Layout_cookbook/Pagination -tags: - - CSS - - Guide - - Recette - - flexbox -translation_of: Web/CSS/Layout_cookbook/Pagination ---- -
{{CSSRef}}
- -Dans cette recette, nous verrons comment utiliser une méthode de navigation où l'utilisateur peut passer d'une page à une autre pour un ensemble donné via les numéros de ces pages (généralement affichés en bas de page).
- -
Pour cette méthode de navigation, les éléments sont généralement affichés sur une ligne. Afin de s'assurer que la pagination est compréhensible pour les utilisateurs d'outils d'assistance, on balise les éléments dans une liste avec un élément {{htmlelement("nav")}} et on utilise CSS afin d'organiser visuellement l'ensemble sur une ligne.
- -Généralement, l'outil de navigation sera centré horizontalement et placé sous le contenu.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/pagination.html", '100%', 720)}}
- -Note : Télécharger cet exemple.
-Pour obtenir ce résultat, on utilise les boîtes flexibles avec une conteneur flexible imbriqué dans un autre. L'élément {{htmlelement("nav")}} est utilisé comme conteneur flexible afin de pouvoir en centrer le contenu grâce à la propriété {{cssxref("justify-content")}}.
- -La liste est elle-même un conteneur flexible qui permet d'organiser ces éléments sur une lignes. Pour espacer les éléments, on utilise la propriété {{cssxref("margin")}} pour espacer les éléments entre eux.
- -Lorsque la propriété {{cssxref("column-gap")}} sera plus largement implémentée par les navigateurs, celle-ci pourra être utilisée à la place des marges pour espacer les éléments flexibles.
- -.pagination {
- list-style: none;
- margin: 0;
- padding: 0;
- display: flex;
- column-gap: 2px;
-}
-
-
-Il est nécessaire qu'une personne utilisant un lecteur d'écran comprenne comment la navigation fonctionne et que cliquer sur un lien envoie vers une autre page. Aussi, on ajoute aria-label="pagination" sur l'élément <nav>.
On a également ajouté du contenu qui pourra être lu par le lecteur d'écran mais qui est masqué visuellement et on a ajouter l'attribut aria-hidden sur les flèches de pagination.
Voir la section « Voir aussi » en fin d'article pour divers liens portants sur l'accessibilité.
- -Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
- -{{Compat("css.properties.justify-content")}}
- -{{Compat("css.properties.column-gap.flex_context")}}
- -{{CSSRef}}
+ +Dans cette recette, nous verrons comment utiliser une méthode de navigation où l'utilisateur peut passer d'une page à une autre pour un ensemble donné via les numéros de ces pages (généralement affichés en bas de page).
+ +
Pour cette méthode de navigation, les éléments sont généralement affichés sur une ligne. Afin de s'assurer que la pagination est compréhensible pour les utilisateurs d'outils d'assistance, on balise les éléments dans une liste avec un élément {{htmlelement("nav")}} et on utilise CSS afin d'organiser visuellement l'ensemble sur une ligne.
+ +Généralement, l'outil de navigation sera centré horizontalement et placé sous le contenu.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/pagination.html", '100%', 720)}}
+ +Note : Télécharger cet exemple.
+Pour obtenir ce résultat, on utilise les boîtes flexibles avec une conteneur flexible imbriqué dans un autre. L'élément {{htmlelement("nav")}} est utilisé comme conteneur flexible afin de pouvoir en centrer le contenu grâce à la propriété {{cssxref("justify-content")}}.
+ +La liste est elle-même un conteneur flexible qui permet d'organiser ces éléments sur une lignes. Pour espacer les éléments, on utilise la propriété {{cssxref("margin")}} pour espacer les éléments entre eux.
+ +Lorsque la propriété {{cssxref("column-gap")}} sera plus largement implémentée par les navigateurs, celle-ci pourra être utilisée à la place des marges pour espacer les éléments flexibles.
+ +.pagination {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ column-gap: 2px;
+}
+
+
+Il est nécessaire qu'une personne utilisant un lecteur d'écran comprenne comment la navigation fonctionne et que cliquer sur un lien envoie vers une autre page. Aussi, on ajoute aria-label="pagination" sur l'élément <nav>.
On a également ajouté du contenu qui pourra être lu par le lecteur d'écran mais qui est masqué visuellement et on a ajouter l'attribut aria-hidden sur les flèches de pagination.
Voir la section « Voir aussi » en fin d'article pour divers liens portants sur l'accessibilité.
+ +Les différentes méthodes évoquées plus haut peuvent disposer d'une prise en charge différente selon les navigateurs, se référer à chacun des tableaux suivant pour plus de détails sur la prise en charge de chaque propriété.
+ +{{Compat("css.properties.justify-content")}}
+ +{{Compat("css.properties.column-gap.flex_context")}}
+ +Une barre de navigation divisée consiste en un ou plusieurs éléments de navigation séparés des autres éléments de navigation.
- -
Une telle barre de navigation consiste généralement à avoir un élément écarté des autres. Pour cela, on va pouvoir utiliser les boîtes flexibles sans avoir besoin de deux conteneurs flexibles.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/split-navigation.html", '100%', 520)}}
- -Note : Télécharger cet exemple.
-Ce composant utilise les marges automatiques et les boîtes flexibles pour séparer l'élément voulu.
- -Une marge automatique absorbe tout l'espace disponible sur la direction à laquelle elle est appliquée. C'est comme cela qu'on peut centrer un bloc avec des marges automatiques, de chaque côté du bloc, la marge essaye de consommer le plus d'espace possible et pousse le bloc au milieu.
- -Dans notre exemple, c'est la marge à gauche du dernier élément qui est automatique et qui consomme l'espace, poussant ainsi l'élément sur la droite. Pour déplacer la séparation, on peut appliquer la classe push à n'importe quel élément de la liste.
{{Compat("css.properties.flex")}}
- -Une barre de navigation divisée consiste en un ou plusieurs éléments de navigation séparés des autres éléments de navigation.
+ +
Une telle barre de navigation consiste généralement à avoir un élément écarté des autres. Pour cela, on va pouvoir utiliser les boîtes flexibles sans avoir besoin de deux conteneurs flexibles.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/split-navigation.html", '100%', 520)}}
+ +Note : Télécharger cet exemple.
+Ce composant utilise les marges automatiques et les boîtes flexibles pour séparer l'élément voulu.
+ +Une marge automatique absorbe tout l'espace disponible sur la direction à laquelle elle est appliquée. C'est comme cela qu'on peut centrer un bloc avec des marges automatiques, de chaque côté du bloc, la marge essaye de consommer le plus d'espace possible et pousse le bloc au milieu.
+ +Dans notre exemple, c'est la marge à gauche du dernier élément qui est automatique et qui consomme l'espace, poussant ainsi l'élément sur la droite. Pour déplacer la séparation, on peut appliquer la classe push à n'importe quel élément de la liste.
{{Compat("css.properties.flex")}}
+ +Un bas de page adhérant est un motif où le bas de page reste en bas de la zone d'affichage (viewport) lorsque le contenu est moins haut que la zone d'affichage. Dans cet article, nous verrons quelques techniques pour parvenir à ce résultat.
- -
Voici les spécifications rapides pour décrire le résultat qu'on souhaite obtenir :
- -{{EmbedGHLiveSample("css-examples/css-cookbook/sticky-footer.html", '100%', 720)}}
- -Note : Télécharger cet exemple
-Note : Dans cet exemple, ainsi que dans le suivant, on utilise un élément enveloppant avec min-height: 100% afin que l'exemple intégré à la page fonctionne. Pour reproduire cela sur une page complète, on peut utiliser {{cssxref("min-height")}} avec la valeur 100vh sur l'élément {{htmlelement("body")}} qu'on utilise comme conteneur de grille.
Dans l'exemple précédent, on utilise une grille CSS pour réaliser ce bas de page adhérant. L'élément .wrapper a une hauteur minimale de 100%, ce qui signifie qu'il est aussi grand que le conteneur dans lequel il est placé. On crée ensuite une grille avec une seule colonne et trois lignes, une pour chaque partie de la disposition.
Le placement automatique de la grille placera les objets selon l'ordre du document source. Le titre vient donc se placer sur la première piste (dimensionnée automatiquement), le contenu vient se placer sur la piste 1fr et le pied de page se retrouve dans la troisième région (dimensionnée automatiquement). La piste du milieu, dimensionnée avec 1fr, occupera tout l'espace disponible et grandira pour remplir l'espace disponible.
Si vous devez prendre en charge des navigateurs qui ne permettent pas d'utiliser les grilles CSS, vous pouvez utiliser les boîtes flexibles (flexbox) pour avoir une note de bas de page adhérante.
- -{{EmbedGHLiveSample("css-examples/css-cookbook/sticky-footer-flexbox.html", '100%', 720)}}
- -On commence de la même façon mais on utilise display:flex plutôt que display:grid sur .wrapper. On définit flex-direction avec la valeur column afin d'avoir une organisation verticale. Pour le contenu principal, on utilise flex-grow: 1 et pour les deux autres éléments, on utilise flex-shrink: 0. Cela évite de les réduire encore lorsque le contenu remplit la zone principale.
{{Compat("css.properties.grid-template-rows")}}
- -{{Compat("css.properties.flex-direction")}}
- -{{Compat("css.properties.flex-grow")}}
- -{{Compat("css.properties.flex-shrink")}}
- -Un bas de page adhérant est un motif où le bas de page reste en bas de la zone d'affichage (viewport) lorsque le contenu est moins haut que la zone d'affichage. Dans cet article, nous verrons quelques techniques pour parvenir à ce résultat.
+ +
Voici les spécifications rapides pour décrire le résultat qu'on souhaite obtenir :
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/sticky-footer.html", '100%', 720)}}
+ +Note : Télécharger cet exemple
+Note : Dans cet exemple, ainsi que dans le suivant, on utilise un élément enveloppant avec min-height: 100% afin que l'exemple intégré à la page fonctionne. Pour reproduire cela sur une page complète, on peut utiliser {{cssxref("min-height")}} avec la valeur 100vh sur l'élément {{htmlelement("body")}} qu'on utilise comme conteneur de grille.
Dans l'exemple précédent, on utilise une grille CSS pour réaliser ce bas de page adhérant. L'élément .wrapper a une hauteur minimale de 100%, ce qui signifie qu'il est aussi grand que le conteneur dans lequel il est placé. On crée ensuite une grille avec une seule colonne et trois lignes, une pour chaque partie de la disposition.
Le placement automatique de la grille placera les objets selon l'ordre du document source. Le titre vient donc se placer sur la première piste (dimensionnée automatiquement), le contenu vient se placer sur la piste 1fr et le pied de page se retrouve dans la troisième région (dimensionnée automatiquement). La piste du milieu, dimensionnée avec 1fr, occupera tout l'espace disponible et grandira pour remplir l'espace disponible.
Si vous devez prendre en charge des navigateurs qui ne permettent pas d'utiliser les grilles CSS, vous pouvez utiliser les boîtes flexibles (flexbox) pour avoir une note de bas de page adhérante.
+ +{{EmbedGHLiveSample("css-examples/css-cookbook/sticky-footer-flexbox.html", '100%', 720)}}
+ +On commence de la même façon mais on utilise display:flex plutôt que display:grid sur .wrapper. On définit flex-direction avec la valeur column afin d'avoir une organisation verticale. Pour le contenu principal, on utilise flex-grow: 1 et pour les deux autres éléments, on utilise flex-shrink: 0. Cela évite de les réduire encore lorsque le contenu remplit la zone principale.
{{Compat("css.properties.grid-template-rows")}}
+ +{{Compat("css.properties.flex-direction")}}
+ +{{Compat("css.properties.flex-grow")}}
+ +{{Compat("css.properties.flex-shrink")}}
+ +Un mode de disposition CSS (layout mode), parfois raccourci en « disposition » est un algorithme qui détermine la position et la taille des boîtes des éléments en fonction des interactions avec leurs voisins et leurs ancêtres. Il existe plusieurs modes de disposition :
- -Note : Les propriétés CSS ne s'appliquent toutes à tous les modes de disposition. La plupart des propriétés n'ont d'effet que pour un ou deux de ces modes et seront sans effet pour un élément qui s'inscrit dans un autre mode de disposition.
-Un mode de disposition CSS (layout mode), parfois raccourci en « disposition » est un algorithme qui détermine la position et la taille des boîtes des éléments en fonction des interactions avec leurs voisins et leurs ancêtres. Il existe plusieurs modes de disposition :
+ +Note : Les propriétés CSS ne s'appliquent toutes à tous les modes de disposition. La plupart des propriétés n'ont d'effet que pour un ou deux de ces modes et seront sans effet pour un élément qui s'inscrit dans un autre mode de disposition.
+La propriété left permet de définir une partie de la position des éléments positionnés. Elle n'a aucun effet pour les éléments non-positionnés.
Pour les éléments positionnés de façon absolue (ceux pour lesquels {{cssxref("position")}}: absolute ou position: fixed), elle définit la distance entre le bord gauche de la marge de l'élément et le bord gauche de son bloc englobant (le bloc englobant étant l'ancêtre par rapport auquel l'élément est positionné de façon relative).
Pour les éléments positionnés grâce à {{cssxref("position")}}: relative, c'est le décalage ajouté à gauche de l'élément (qui est donc déplacé vers la droite de sa position normale).
Pour les éléments positionnés grâce à {{cssxref("position")}}: sticky, cette propriété se comportera comme avec relative lorsque l'élément fait partie de la zone d'affichage (viewport) et comme avec fixed lorsque l'élément est en dehors de la zone d'affichage.
Lorsque {{cssxref("position")}}: static, la propriété left n'a aucun effet.
Si les deux propriétés left et {{cssxref("right")}} sont définies et que l'élément ne peut pas s'étendre afin de satisfaire ces contraintes, la position de l'élément est « sur-définie ». Dans ce cas, la valeur left aura la priorité si le conteneur est orienté de gauche à droite (dans ce cas, la valeur calculée de right vaudra -left) et si le conteneur est orienté de droite à gauche, c'est la valeur right qui aura la priorité (auquel cas, la valeur calculée de left vaudra -right).
/* Valeurs de longueur */ -/* Type <length> */ -left: 3px; -left: 2.4em; - -/* Valeurs proportionnelles à */ -/* la largeur du bloc englobant */ -/* Type <percentage> */ -left: 10%; - -/* Valeur avec un mot-clé */ -left: auto; - -/* Valeurs globales */ -left: inherit; -left: initial; -left: unset; -- -
<length>Pour plus d'informations sur les valeurs possibles, voir {{cssxref("<length>")}}.
-<percentage>autowidth: auto comme une largeur basée sur le contenu.right vaut également auto, il n'y a aucun décalage.#wrap {
- width: 700px;
- margin: 0 auto;
- background: #5C5C5C;
-}
-
-pre {
- white-space: pre;
- white-space: pre-wrap;
- white-space: pre-line;
- word-wrap: break-word;
-}
-
-#exemple_1 {
- width: 200px;
- height: 200px;
- position: absolute;
- left: 20px;
- top: 20px;
- background-color: #D8F5FF;
-}
-
-#exemple_2 {
- width: 200px;
- height: 200px;
- position: relative;
- top: 0;
- right: 0;
- background-color: #C1FFDB;
-
-}
-#exemple_3 {
- width: 600px;
- height: 400px;
- position: relative;
- top: 20px;
- left: 20px;
- background-color: #FFD7C2;
-}
-
-#exemple_4 {
- width:200px;
- height:200px;
- position:absolute;
- bottom:10px;
- right:20px;
- background-color:#FFC7E4;
-}
-
-<div id="wrap"> - <div id="exemple_1"> - <pre> - position: absolute; - left: 20px; - top: 20px; - </pre> - <p>Le seul élément englobant pour ce div est la fenêtre principale. Elle se positionne par rapport à elle.</p> - </div> - - <div id="exemple_2"> - <pre> - position: relative; - top: 0; - right: 0; - </pre> - <p>La position est relative par rapport aux voisins.</p> - </div> - - <div id="exemple_3"> - <pre> - float: right; - position: relative; - top: 20px; - left: 20px; - </pre> - <p>La position est relative par rapport au div voisin mais on le retire du flux.</p> - - <div id="exemple_4"> - <pre> - position: absolute; - bottom: 10px; - right: 20px; - </pre> - <p>La position est absolue à l'intérieur d'un parent positionné de façon relative.</p> - </div> - </div> -</div>- -
{{EmbedLiveSample('Exemples',1200,650)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'left')}} | -{{Spec2('CSS3 Transitions')}} | -left peut désormais être animée. |
-
| {{SpecName('CSS3 Positioning', '#propdef-left', 'left')}} | -{{Spec2('CSS3 Positioning')}} | -Décrit le comportement pour le positionnement adhérent (sticky). | -
| {{SpecName('CSS2.1', 'visuren.html#propdef-left', 'left')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.left")}}
- -La propriété left permet de définir une partie de la position des éléments positionnés. Elle n'a aucun effet pour les éléments non-positionnés.
Pour les éléments positionnés de façon absolue (ceux pour lesquels {{cssxref("position")}}: absolute ou position: fixed), elle définit la distance entre le bord gauche de la marge de l'élément et le bord gauche de son bloc englobant (le bloc englobant étant l'ancêtre par rapport auquel l'élément est positionné de façon relative).
Pour les éléments positionnés grâce à {{cssxref("position")}}: relative, c'est le décalage ajouté à gauche de l'élément (qui est donc déplacé vers la droite de sa position normale).
Pour les éléments positionnés grâce à {{cssxref("position")}}: sticky, cette propriété se comportera comme avec relative lorsque l'élément fait partie de la zone d'affichage (viewport) et comme avec fixed lorsque l'élément est en dehors de la zone d'affichage.
Lorsque {{cssxref("position")}}: static, la propriété left n'a aucun effet.
Si les deux propriétés left et {{cssxref("right")}} sont définies et que l'élément ne peut pas s'étendre afin de satisfaire ces contraintes, la position de l'élément est « sur-définie ». Dans ce cas, la valeur left aura la priorité si le conteneur est orienté de gauche à droite (dans ce cas, la valeur calculée de right vaudra -left) et si le conteneur est orienté de droite à gauche, c'est la valeur right qui aura la priorité (auquel cas, la valeur calculée de left vaudra -right).
/* Valeurs de longueur */ +/* Type <length> */ +left: 3px; +left: 2.4em; + +/* Valeurs proportionnelles à */ +/* la largeur du bloc englobant */ +/* Type <percentage> */ +left: 10%; + +/* Valeur avec un mot-clé */ +left: auto; + +/* Valeurs globales */ +left: inherit; +left: initial; +left: unset; ++ +
<length>Pour plus d'informations sur les valeurs possibles, voir {{cssxref("<length>")}}.
+<percentage>autowidth: auto comme une largeur basée sur le contenu.right vaut également auto, il n'y a aucun décalage.#wrap {
+ width: 700px;
+ margin: 0 auto;
+ background: #5C5C5C;
+}
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ white-space: pre-line;
+ word-wrap: break-word;
+}
+
+#exemple_1 {
+ width: 200px;
+ height: 200px;
+ position: absolute;
+ left: 20px;
+ top: 20px;
+ background-color: #D8F5FF;
+}
+
+#exemple_2 {
+ width: 200px;
+ height: 200px;
+ position: relative;
+ top: 0;
+ right: 0;
+ background-color: #C1FFDB;
+
+}
+#exemple_3 {
+ width: 600px;
+ height: 400px;
+ position: relative;
+ top: 20px;
+ left: 20px;
+ background-color: #FFD7C2;
+}
+
+#exemple_4 {
+ width:200px;
+ height:200px;
+ position:absolute;
+ bottom:10px;
+ right:20px;
+ background-color:#FFC7E4;
+}
+
+<div id="wrap"> + <div id="exemple_1"> + <pre> + position: absolute; + left: 20px; + top: 20px; + </pre> + <p>Le seul élément englobant pour ce div est la fenêtre principale. Elle se positionne par rapport à elle.</p> + </div> + + <div id="exemple_2"> + <pre> + position: relative; + top: 0; + right: 0; + </pre> + <p>La position est relative par rapport aux voisins.</p> + </div> + + <div id="exemple_3"> + <pre> + float: right; + position: relative; + top: 20px; + left: 20px; + </pre> + <p>La position est relative par rapport au div voisin mais on le retire du flux.</p> + + <div id="exemple_4"> + <pre> + position: absolute; + bottom: 10px; + right: 20px; + </pre> + <p>La position est absolue à l'intérieur d'un parent positionné de façon relative.</p> + </div> + </div> +</div>+ +
{{EmbedLiveSample('Exemples',1200,650)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'left')}} | +{{Spec2('CSS3 Transitions')}} | +left peut désormais être animée. |
+
| {{SpecName('CSS3 Positioning', '#propdef-left', 'left')}} | +{{Spec2('CSS3 Positioning')}} | +Décrit le comportement pour le positionnement adhérent (sticky). | +
| {{SpecName('CSS2.1', 'visuren.html#propdef-left', 'left')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.left")}}
+ +Le type de donnée <length-percentage> représente une valeur qui peut être une valeur de type {{Cssxref("length")}} ou une valeur de type {{Cssxref("percentage")}}.
Se référer à la documentation des types {{Cssxref("length")}} et {{Cssxref("percentage")}} pour plus de détails sur les syntaxes possibles pour chacun de ces types.
- -calc()Lorsqu'une valeur de type <length-percentage> peut être utilisée dans une déclaration, cela signifie que le pourcentage sera résolu comme une longueur et qu'il peut alors être utilisé au sein d'une expression {{cssxref("calc()", "calc()")}}. Ainsi, toutes les valeurs qui suivent sont acceptables pour la propriété {{Cssxref("width")}} :
width: 200px; -width: 20%; -width: calc(100% - 200px); -- -
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#mixed-percentages', '<length-percentage>')}} | -{{Spec2('CSS4 Values')}} | -- |
| {{SpecName('CSS3 Values', '#mixed-percentages', '<length-percentage>')}} | -{{Spec2('CSS3 Values')}} | -Définition du type <length-percentage>. Ajout de calc() |
-
{{Compat("css.types.length-percentage")}}
diff --git a/files/fr/web/css/length-percentage/index.md b/files/fr/web/css/length-percentage/index.md new file mode 100644 index 0000000000..149f8bd787 --- /dev/null +++ b/files/fr/web/css/length-percentage/index.md @@ -0,0 +1,53 @@ +--- +title:Le type de donnée <length-percentage> représente une valeur qui peut être une valeur de type {{Cssxref("length")}} ou une valeur de type {{Cssxref("percentage")}}.
Se référer à la documentation des types {{Cssxref("length")}} et {{Cssxref("percentage")}} pour plus de détails sur les syntaxes possibles pour chacun de ces types.
+ +calc()Lorsqu'une valeur de type <length-percentage> peut être utilisée dans une déclaration, cela signifie que le pourcentage sera résolu comme une longueur et qu'il peut alors être utilisé au sein d'une expression {{cssxref("calc()", "calc()")}}. Ainsi, toutes les valeurs qui suivent sont acceptables pour la propriété {{Cssxref("width")}} :
width: 200px; +width: 20%; +width: calc(100% - 200px); ++ +
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#mixed-percentages', '<length-percentage>')}} | +{{Spec2('CSS4 Values')}} | ++ |
| {{SpecName('CSS3 Values', '#mixed-percentages', '<length-percentage>')}} | +{{Spec2('CSS3 Values')}} | +Définition du type <length-percentage>. Ajout de calc() |
+
{{Compat("css.types.length-percentage")}}
diff --git a/files/fr/web/css/length/index.html b/files/fr/web/css/length/index.html deleted file mode 100644 index 8cf016dcb5..0000000000 --- a/files/fr/web/css/length/index.html +++ /dev/null @@ -1,182 +0,0 @@ ---- -title:Le type de données CSS <length> correspond à une mesure de distance.
De nombreuses propriétés CSS utilisent des valeurs de longueurs. Entre autres, on pourra énumérer {{cssxref("width")}}, {{cssxref("margin")}}, {{cssxref("padding")}}, {{cssxref("font-size")}}, {{cssxref("border-width")}}, {{cssxref("text-shadow")}}, …
- -Pour certaines propriétés, l'utilisation d'une longueur négative est une erreur de syntaxe, pour d'autres, elles sont autorisées.
- -On notera que bien que les valeurs {{cssxref("<percentage>")}} soient aussi des dimensions CSS et acceptées par certaines propriétés CSS acceptant les valeurs <length>, ce sont bien deux types distincts. Voir {{cssxref("<length-percentage>")}}.
Une longueur est un nombre (type {{cssxref("<number>")}}) immédiatement suivi d'une unité de longueur (px, em, pc, in, mm…). Comme toutes les dimensions CSS, il n'y aucun espace entre le nombre et l'unité. L'unité est optionnelle pour la valeur nulle.
Note : Certaines propriétés permettent d'utiliser des longueurs négatives alors que d'autres n'acceptent que des valeurs positives.
-Les longueurs relatives permettent d'indiquer une longueur basée sur la taille d'un caractère dans une police donnée, sur la taille de l'élément parent ou sur la taille de la zone d'affichage (viewport). Les unités associées permettent d'indiquer à quelle taille elles se rapportent.
- -Les unités relatives aux polices de caractères permettent d'obtenir des longueurs basées sur la taille d'un caractère ou la caractéristique de la police utilisée pour l'élément courant ou pour un élément parent.
- -capchemCette unité représente la {{cssxref("font-size")}} calculée de l'élément. Si utilisée avec la propriété {{cssxref("font-size")}}, elle représente la taille de police héritée de l'élément.
- -Note : Cette unité est souvent utilisée pour créer des mises en page s'adaptant à la taille des contenus, qui gardent le rythme vertical de la page, même lorsque l'utilisateur change la taille des polices. Les propriétés CSS {{cssxref("line-height")}}, {{cssxref("font-size")}}, {{cssxref("margin-bottom")}} et {{cssxref("margin-top")}} ont souvent des dimensions exprimées en em.
-ex1ex ≈ 0.5em dans de nombreuses polices.iclhremCette unité représente la {{cssxref("font-size")}} de l'élément racine (par exemple la taille de la police de l'élément {{HTMLElement("html")}}). Quand utilisée avec {{cssxref("font-size")}} sur l'élément racine, elle représente sa valeur initiale.
- -Note : Cette unité est utile pour la création de mises en page s'adaptant à la taille des contenus. Si elle n'est pas supportée par les navigateurs ciblés, ces mises en pages peuvent être réalisées en utilisant l'unité em, mais la réalisation est un petit peu plus complexe.
-rlhrlh fait référence aux valeurs initiales des propriétés.Les longueurs liées au viewport définissent une longueur relative à la taille du viewport, qui correspond à la partie visible du document.
- -Dans un bloc de déclaration {{cssxref("@page")}}, l'utilisation des longueurs liées au viewport sont invalides et la déclaration sera ignorée.
- -vbvhvivwvminvmaxLes unités de longueur absolues représentent une mesure physique. Cela est réalisé en faisant correspondre une des unités à une unité physique et en définissant les autres relativement à elle. La correspondance est différente pour les périphériques basse-résolution, tels que les écrans, et pour les périphériques haute-résolution, comme les imprimantes.
- -Pour les périphériques ayant un faible nombre de points par pouce, l’unité px représente le pixel de référence physique et les autres sont définies de façon relative à lui. Ainsi, 1in est définit comme 96px, ce qui équivaut à 72pt. Sur de tels périphériques, cette définition à pour conséquence que la longueur exprimée en pouces (in), centimètres (cm) et millimètres (mm) ne correspondent pas forcément à la longueur de l’unité physique du même nom.
Pour les périphériques ayant un nombre de points par pouce élevé, les pouces (in), centimètres (cm) et millimètres (mm) sont définis comme leur équivalent physique. Par conséquent, l’unité px est définie comme étant relavite à eux (1/96 de pouce).
Note : Les utilisateurs peuvent augmenter la taille des polices pour des raisons d’accessibilité. Pour permettre des mises en page adaptées quelque soit la taille des polices, utilisez uniquement des unités de longueur quand les caractéristiques physiques du média de sortie sont connues, telles que les images matricielles (bitmap) et sinon, privilégiez les unités relatives telles que em et rem (notamment pour {{cssxref("font-size")}}).
pxmmQ{{experimental_inline}}cminptpcmozmm {{non-standard_inline}}, retiré avec Firefox 59Note : L’unité in ne représente pas un pouce physique de l’écran, mais 96px. Celà signifie que quelque soit la densité de pixel réelle de l’écran, elle est supposée correspondre à 96dpi. Sur les périphériques dotés d’une plus grande densité de pixel, 1in fera moins d’1 pouce physique. De la même manière, mm, cm, et pt ne sont pas des longueurs absolues.
Quelques exemples particuliers :
- -1in est toujours égal à 96px,3pt est toujours égal à 4px,25.4mm est toujours égal à 96px.Les valeurs du type <length> peuvent être interpolées de manière à rendre les animations possibles. Dans ce cas l'interpolation se fait par des nombres réels à virgule flottante. L'interpolation se fait sur les valeurs calculées. La rapidité de l'interpolation est déterminée par la {{cssxref("easing-function","fonction de temporisation","",1)}} associée à l'animation.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#lengths', '<length>')}} | -{{Spec2('CSS4 Values')}} | -Ajout des unités vi, vb, ic, lh et rlh. |
-
| {{SpecName('CSS3 Values', '#lengths', '<length>')}} | -{{Spec2('CSS3 Values')}} | -Ajout des unités ch, rem, vw, vh, vmin, vmax |
-
| {{SpecName('CSS2.1', 'syndata.html#length-units', '<length>')}} | -{{Spec2('CSS2.1')}} | -Définition explicite des unités em, pt, pc, px (la définition était implicite pour CSS1) |
-
| {{SpecName('CSS1', '#length-units', '<length>')}} | -{{Spec2('CSS1')}} | -Définition initiale. Définition implicite des unités em, pt, pc et px. |
-
{{Compat("css.types.length")}}
- -Le type de données CSS <length> correspond à une mesure de distance.
De nombreuses propriétés CSS utilisent des valeurs de longueurs. Entre autres, on pourra énumérer {{cssxref("width")}}, {{cssxref("margin")}}, {{cssxref("padding")}}, {{cssxref("font-size")}}, {{cssxref("border-width")}}, {{cssxref("text-shadow")}}, …
+ +Pour certaines propriétés, l'utilisation d'une longueur négative est une erreur de syntaxe, pour d'autres, elles sont autorisées.
+ +On notera que bien que les valeurs {{cssxref("<percentage>")}} soient aussi des dimensions CSS et acceptées par certaines propriétés CSS acceptant les valeurs <length>, ce sont bien deux types distincts. Voir {{cssxref("<length-percentage>")}}.
Une longueur est un nombre (type {{cssxref("<number>")}}) immédiatement suivi d'une unité de longueur (px, em, pc, in, mm…). Comme toutes les dimensions CSS, il n'y aucun espace entre le nombre et l'unité. L'unité est optionnelle pour la valeur nulle.
Note : Certaines propriétés permettent d'utiliser des longueurs négatives alors que d'autres n'acceptent que des valeurs positives.
+Les longueurs relatives permettent d'indiquer une longueur basée sur la taille d'un caractère dans une police donnée, sur la taille de l'élément parent ou sur la taille de la zone d'affichage (viewport). Les unités associées permettent d'indiquer à quelle taille elles se rapportent.
+ +Les unités relatives aux polices de caractères permettent d'obtenir des longueurs basées sur la taille d'un caractère ou la caractéristique de la police utilisée pour l'élément courant ou pour un élément parent.
+ +capchemCette unité représente la {{cssxref("font-size")}} calculée de l'élément. Si utilisée avec la propriété {{cssxref("font-size")}}, elle représente la taille de police héritée de l'élément.
+ +Note : Cette unité est souvent utilisée pour créer des mises en page s'adaptant à la taille des contenus, qui gardent le rythme vertical de la page, même lorsque l'utilisateur change la taille des polices. Les propriétés CSS {{cssxref("line-height")}}, {{cssxref("font-size")}}, {{cssxref("margin-bottom")}} et {{cssxref("margin-top")}} ont souvent des dimensions exprimées en em.
+ex1ex ≈ 0.5em dans de nombreuses polices.iclhremCette unité représente la {{cssxref("font-size")}} de l'élément racine (par exemple la taille de la police de l'élément {{HTMLElement("html")}}). Quand utilisée avec {{cssxref("font-size")}} sur l'élément racine, elle représente sa valeur initiale.
+ +Note : Cette unité est utile pour la création de mises en page s'adaptant à la taille des contenus. Si elle n'est pas supportée par les navigateurs ciblés, ces mises en pages peuvent être réalisées en utilisant l'unité em, mais la réalisation est un petit peu plus complexe.
+rlhrlh fait référence aux valeurs initiales des propriétés.Les longueurs liées au viewport définissent une longueur relative à la taille du viewport, qui correspond à la partie visible du document.
+ +Dans un bloc de déclaration {{cssxref("@page")}}, l'utilisation des longueurs liées au viewport sont invalides et la déclaration sera ignorée.
+ +vbvhvivwvminvmaxLes unités de longueur absolues représentent une mesure physique. Cela est réalisé en faisant correspondre une des unités à une unité physique et en définissant les autres relativement à elle. La correspondance est différente pour les périphériques basse-résolution, tels que les écrans, et pour les périphériques haute-résolution, comme les imprimantes.
+ +Pour les périphériques ayant un faible nombre de points par pouce, l’unité px représente le pixel de référence physique et les autres sont définies de façon relative à lui. Ainsi, 1in est définit comme 96px, ce qui équivaut à 72pt. Sur de tels périphériques, cette définition à pour conséquence que la longueur exprimée en pouces (in), centimètres (cm) et millimètres (mm) ne correspondent pas forcément à la longueur de l’unité physique du même nom.
Pour les périphériques ayant un nombre de points par pouce élevé, les pouces (in), centimètres (cm) et millimètres (mm) sont définis comme leur équivalent physique. Par conséquent, l’unité px est définie comme étant relavite à eux (1/96 de pouce).
Note : Les utilisateurs peuvent augmenter la taille des polices pour des raisons d’accessibilité. Pour permettre des mises en page adaptées quelque soit la taille des polices, utilisez uniquement des unités de longueur quand les caractéristiques physiques du média de sortie sont connues, telles que les images matricielles (bitmap) et sinon, privilégiez les unités relatives telles que em et rem (notamment pour {{cssxref("font-size")}}).
pxmmQ{{experimental_inline}}cminptpcmozmm {{non-standard_inline}}, retiré avec Firefox 59Note : L’unité in ne représente pas un pouce physique de l’écran, mais 96px. Celà signifie que quelque soit la densité de pixel réelle de l’écran, elle est supposée correspondre à 96dpi. Sur les périphériques dotés d’une plus grande densité de pixel, 1in fera moins d’1 pouce physique. De la même manière, mm, cm, et pt ne sont pas des longueurs absolues.
Quelques exemples particuliers :
+ +1in est toujours égal à 96px,3pt est toujours égal à 4px,25.4mm est toujours égal à 96px.Les valeurs du type <length> peuvent être interpolées de manière à rendre les animations possibles. Dans ce cas l'interpolation se fait par des nombres réels à virgule flottante. L'interpolation se fait sur les valeurs calculées. La rapidité de l'interpolation est déterminée par la {{cssxref("easing-function","fonction de temporisation","",1)}} associée à l'animation.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#lengths', '<length>')}} | +{{Spec2('CSS4 Values')}} | +Ajout des unités vi, vb, ic, lh et rlh. |
+
| {{SpecName('CSS3 Values', '#lengths', '<length>')}} | +{{Spec2('CSS3 Values')}} | +Ajout des unités ch, rem, vw, vh, vmin, vmax |
+
| {{SpecName('CSS2.1', 'syndata.html#length-units', '<length>')}} | +{{Spec2('CSS2.1')}} | +Définition explicite des unités em, pt, pc, px (la définition était implicite pour CSS1) |
+
| {{SpecName('CSS1', '#length-units', '<length>')}} | +{{Spec2('CSS1')}} | +Définition initiale. Définition implicite des unités em, pt, pc et px. |
+
{{Compat("css.types.length")}}
+ +La propriété letter-spacing définit l'interlettre utilisée pour les caractères qui composent le texte.
/* Valeurs de longueur */ -/* Type <length> */ -letter-spacing: 0.3em; -letter-spacing: 3px; -letter-spacing: .3px; - -/* Valeur avec mot-clé */ -letter-spacing: normal; - -/* Valeurs globales */ -letter-spacing: inherit; -letter-spacing: initial; -letter-spacing: unset; -- -
normal<length>.premier { letter-spacing: 0.4em; }
-.deuxieme { letter-spacing: 1em; }
-.troisieme { letter-spacing: -0.05em; }
-.quatrieme { letter-spacing: 6px; }
-
-<p class="premier">Et voici l'interlettre</p> -<p class="deuxieme">Et voici l'interlettre</p> -<p class="troisieme">Et voici l'interlettre</p> -<p class="quatrieme">Et voici l'interlettre</p> -- -
{{EmbedLiveSample('Exemples', 440, 185)}}
- -Utiliser une valeur trop grande (positive ou négative) pour letter-spacing rendra les mots illisibles. Si une valeur positive trop importante est utilisée, les lettres seront trop éloignées les unes des autres et on ne pourra pas distinguer les mots. Si une valeur négative trop faible est employée, les lettres se chevaucheront et on ne pourra pas lire le texte.
L'espacement doit être déterminé au cas par cas car chaque famille de polices utilise des caractères de largeurs différentes. Il n'existe pas de valeur unique qui permette de s'assurer que, quelle que soit la police utilisée, le texte soit lisible.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#letter-spacing-property', 'letter-spacing')}} | -{{Spec2('CSS3 Text')}} | -Aucune modification. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'letter-spacing')}} | -{{Spec2('CSS3 Transitions')}} | -letter-spacing peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'text.html#propdef-letter-spacing', 'letter-spacing')}} | -{{Spec2('CSS2.1')}} | -Aucune modification. | -
| {{SpecName('SVG1.1', 'text.html#LetterSpacingProperty', 'letter-spacing')}} | -{{Spec2('SVG1.1')}} | -Définition initiale pour SVG. | -
| {{SpecName('CSS1', '#letter-spacing', 'letter-spacing')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.letter-spacing")}}
- -La propriété letter-spacing définit l'interlettre utilisée pour les caractères qui composent le texte.
/* Valeurs de longueur */ +/* Type <length> */ +letter-spacing: 0.3em; +letter-spacing: 3px; +letter-spacing: .3px; + +/* Valeur avec mot-clé */ +letter-spacing: normal; + +/* Valeurs globales */ +letter-spacing: inherit; +letter-spacing: initial; +letter-spacing: unset; ++ +
normal<length>.premier { letter-spacing: 0.4em; }
+.deuxieme { letter-spacing: 1em; }
+.troisieme { letter-spacing: -0.05em; }
+.quatrieme { letter-spacing: 6px; }
+
+<p class="premier">Et voici l'interlettre</p> +<p class="deuxieme">Et voici l'interlettre</p> +<p class="troisieme">Et voici l'interlettre</p> +<p class="quatrieme">Et voici l'interlettre</p> ++ +
{{EmbedLiveSample('Exemples', 440, 185)}}
+ +Utiliser une valeur trop grande (positive ou négative) pour letter-spacing rendra les mots illisibles. Si une valeur positive trop importante est utilisée, les lettres seront trop éloignées les unes des autres et on ne pourra pas distinguer les mots. Si une valeur négative trop faible est employée, les lettres se chevaucheront et on ne pourra pas lire le texte.
L'espacement doit être déterminé au cas par cas car chaque famille de polices utilise des caractères de largeurs différentes. Il n'existe pas de valeur unique qui permette de s'assurer que, quelle que soit la police utilisée, le texte soit lisible.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#letter-spacing-property', 'letter-spacing')}} | +{{Spec2('CSS3 Text')}} | +Aucune modification. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'letter-spacing')}} | +{{Spec2('CSS3 Transitions')}} | +letter-spacing peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'text.html#propdef-letter-spacing', 'letter-spacing')}} | +{{Spec2('CSS2.1')}} | +Aucune modification. | +
| {{SpecName('SVG1.1', 'text.html#LetterSpacingProperty', 'letter-spacing')}} | +{{Spec2('SVG1.1')}} | +Définition initiale pour SVG. | +
| {{SpecName('CSS1', '#letter-spacing', 'letter-spacing')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.letter-spacing")}}
+ +La propriété line-break définit la façon dont les sauts de ligne sont gérés. Cette propriété affecte uniquement les textes en chinois, japonais ou coréen (CJK).
/* Valeurs avec un mot-clé */ -line-break: auto; -line-break: loose; -line-break: normal; -line-break: strict; - -/* Valeurs globales */ -line-break: inherit; -line-break: initial; -line-break: unset; -- -
autoloosenormalstrict| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#line-break-property', 'line-break')}} | -{{Spec2('CSS3 Text')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.line-break")}}
diff --git a/files/fr/web/css/line-break/index.md b/files/fr/web/css/line-break/index.md new file mode 100644 index 0000000000..7eb8a1e86d --- /dev/null +++ b/files/fr/web/css/line-break/index.md @@ -0,0 +1,68 @@ +--- +title: line-break +slug: Web/CSS/line-break +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/line-break +--- +La propriété line-break définit la façon dont les sauts de ligne sont gérés. Cette propriété affecte uniquement les textes en chinois, japonais ou coréen (CJK).
/* Valeurs avec un mot-clé */ +line-break: auto; +line-break: loose; +line-break: normal; +line-break: strict; + +/* Valeurs globales */ +line-break: inherit; +line-break: initial; +line-break: unset; ++ +
autoloosenormalstrict| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#line-break-property', 'line-break')}} | +{{Spec2('CSS3 Text')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.line-break")}}
diff --git a/files/fr/web/css/line-height-step/index.html b/files/fr/web/css/line-height-step/index.html deleted file mode 100644 index c13c19867d..0000000000 --- a/files/fr/web/css/line-height-step/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: line-height-step -slug: Web/CSS/line-height-step -tags: - - CSS - - Non-standard - - Propriété - - Reference -translation_of: Web/CSS/line-height-step ---- -La propriété line-height-step définit le pas de hauteur des boîtes de ligne. Quand le pas est positif, les hauteurs des boîtes de ligne sont arrondies au pas le plus proche. Les valeurs négatives sont invalides.
/* Valeurs avec une longueur */ -line-height-step: 18pt; -- -
La propriété line-height-step peut être définie avec une valeur de type <length>.
<length>Dans l'exemple suivant, la hauteur de la boîte des lignes pour chaque paragraphe est arrondie à l'unité supérieure. La boîte de la ligne pour l'élément <h1> ne tient pas sur une unité et en occupe donc deux (mais est toujours centrée sur ces deux unités).
:root {
- font-size: 12pt;
- --my-grid: 18pt;
- line-height-step: var(--my-grid);
-}
-h1 {
- font-size: 20pt;
- margin-top: calc(2 * var(--my-grid));
-}
-
-Voici le résultat obtenu avec une capture d'écran :
- -
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Rhythmic Sizing', '#line-height-step', 'line-height-step')}} | -{{Spec2('CSS Rhythmic Sizing')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.line-height-step")}}
- -La propriété line-height-step définit le pas de hauteur des boîtes de ligne. Quand le pas est positif, les hauteurs des boîtes de ligne sont arrondies au pas le plus proche. Les valeurs négatives sont invalides.
/* Valeurs avec une longueur */ +line-height-step: 18pt; ++ +
La propriété line-height-step peut être définie avec une valeur de type <length>.
<length>Dans l'exemple suivant, la hauteur de la boîte des lignes pour chaque paragraphe est arrondie à l'unité supérieure. La boîte de la ligne pour l'élément <h1> ne tient pas sur une unité et en occupe donc deux (mais est toujours centrée sur ces deux unités).
:root {
+ font-size: 12pt;
+ --my-grid: 18pt;
+ line-height-step: var(--my-grid);
+}
+h1 {
+ font-size: 20pt;
+ margin-top: calc(2 * var(--my-grid));
+}
+
+Voici le résultat obtenu avec une capture d'écran :
+ +
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Rhythmic Sizing', '#line-height-step', 'line-height-step')}} | +{{Spec2('CSS Rhythmic Sizing')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.line-height-step")}}
+ +La propriété line-height définit la hauteur de la boîte d'une ligne.
Sur les éléments de bloc, la propriété line-height indique la hauteur minimale des lignes au sein de l'élément. Sur les éléments en ligne qui ne sont pas remplacés, line-height indique la hauteur utilisée pour calculer la hauteur de la boîte d'une ligne.
/* Valeur avec un mot-clé */ -line-height: normal; - -/* Type <number> */ -/* S'il n'y a pas d'unité, cela - représente un facteur multiplicateur - de la taille de la police appliquée à - l'élément */ -line-height: 3.5; - -/* Valeur de longueur */ -/* Type <length> */ -line-height: 3em; - -/* Valeurs proportionnelles */ -/* Type <percentage> */ -line-height: 34%; - -/* Valeurs globales */ -line-height: inherit; -line-height: initial; -line-height: unset; -- -
La propriété line-height peut être définie grâce :
<number>)<length>)<percentage>)normalnormalfont-family.<number><number>. Dans la plupart des cas, c'est la méthode qu'on privilégiera pour définir line-height et éviter les effets de l'héritage.<length>em peuvent produire des résultats inattendus.<percentage>em.-moz-block-height {{non-standard_inline}}/* Toutes les règles qui suivent
- fourniront un résultat équivalent */
-
-div { line-height: 1.2; font-size: 10pt } /* number */
-div { line-height: 1.2em; font-size: 10pt } /* length */
-div { line-height: 120%; font-size: 10pt } /* percentage */
-div { font: 10pt/1.2 Georgia,"Bitstream Charter",serif }
-
-line-height. Pour cette propriété raccourcie, il est cependant nécessaire d'avoir une valeur pour la propriété font-family.Dans cet exemple, on voit qu'il est préférable d'utiliser des valeurs de type {{cssxref("<number>")}} plutôt que des valeurs de longueur (type {{cssxref("<length>")}}.
- -On utilisera deux éléments {{HTMLElement("div")}}. Le premier aura une bordure verte et une valeur sans unité. Le second aura une bordure rouge et une valeur de longueur
- -.green {
- line-height: 1.1;
- border: solid limegreen;
-}
-.red {
- line-height: 1.1em;
- border: solid red;
-}
-h1 {
- font-size: 30px;
-}
-.box {
- width: 18em;
- display: inline-block;
- vertical-align: top;
- font-size: 15px;
-}
-
-
-<div class="box green"> - <h1>Avoid unexpected results by using unitless line-height</h1> - length and percentage line-heights have poor inheritance behavior ... -</div> - -<div class="box red"> - <h1>Avoid unexpected results by using unitless line-height</h1> - length and percentage line-heights have poor inheritance behavior ... -</div> - -<!-- La première hauteur pour <h1> est calculée à partir de sa propre hauteur (30px × 1.1) = 33px --> -<!-- La hauteur du deuxième <h1> est basée sur la hauteur du div (15px × 1.1) = 16.5px ... --> -- -
{{EmbedLiveSample("Gestion_de_l'héritage_et_valeurs_sans_unité", '100%', '200', '')}}
- -Il est nécessaire d'utiliser une valeur minimale de 1.5 pour la propriété line-height lorsqu'on l'applique sur le contenu des paragraphes principaux. Cela aidera les personnes ayant du mal à lire et les personnes dyslexiques. Utiliser une valeur sans unité permet de garantir une mise à l'échelle proportionnelle lorsqu'on zoome/dézoome.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'line-height')}} | -{{Spec2('CSS3 Transitions')}} | -line-height peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'visudet.html#propdef-line-height', 'line-height')}} | -{{Spec2('CSS2.1')}} | -Aucun changement. | -
| {{SpecName('CSS1', '#line-height', 'line-height')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.line-height")}}
- -La propriété line-height définit la hauteur de la boîte d'une ligne.
Sur les éléments de bloc, la propriété line-height indique la hauteur minimale des lignes au sein de l'élément. Sur les éléments en ligne qui ne sont pas remplacés, line-height indique la hauteur utilisée pour calculer la hauteur de la boîte d'une ligne.
/* Valeur avec un mot-clé */ +line-height: normal; + +/* Type <number> */ +/* S'il n'y a pas d'unité, cela + représente un facteur multiplicateur + de la taille de la police appliquée à + l'élément */ +line-height: 3.5; + +/* Valeur de longueur */ +/* Type <length> */ +line-height: 3em; + +/* Valeurs proportionnelles */ +/* Type <percentage> */ +line-height: 34%; + +/* Valeurs globales */ +line-height: inherit; +line-height: initial; +line-height: unset; ++ +
La propriété line-height peut être définie grâce :
<number>)<length>)<percentage>)normalnormalfont-family.<number><number>. Dans la plupart des cas, c'est la méthode qu'on privilégiera pour définir line-height et éviter les effets de l'héritage.<length>em peuvent produire des résultats inattendus.<percentage>em.-moz-block-height {{non-standard_inline}}/* Toutes les règles qui suivent
+ fourniront un résultat équivalent */
+
+div { line-height: 1.2; font-size: 10pt } /* number */
+div { line-height: 1.2em; font-size: 10pt } /* length */
+div { line-height: 120%; font-size: 10pt } /* percentage */
+div { font: 10pt/1.2 Georgia,"Bitstream Charter",serif }
+
+line-height. Pour cette propriété raccourcie, il est cependant nécessaire d'avoir une valeur pour la propriété font-family.Dans cet exemple, on voit qu'il est préférable d'utiliser des valeurs de type {{cssxref("<number>")}} plutôt que des valeurs de longueur (type {{cssxref("<length>")}}.
+ +On utilisera deux éléments {{HTMLElement("div")}}. Le premier aura une bordure verte et une valeur sans unité. Le second aura une bordure rouge et une valeur de longueur
+ +.green {
+ line-height: 1.1;
+ border: solid limegreen;
+}
+.red {
+ line-height: 1.1em;
+ border: solid red;
+}
+h1 {
+ font-size: 30px;
+}
+.box {
+ width: 18em;
+ display: inline-block;
+ vertical-align: top;
+ font-size: 15px;
+}
+
+
+<div class="box green"> + <h1>Avoid unexpected results by using unitless line-height</h1> + length and percentage line-heights have poor inheritance behavior ... +</div> + +<div class="box red"> + <h1>Avoid unexpected results by using unitless line-height</h1> + length and percentage line-heights have poor inheritance behavior ... +</div> + +<!-- La première hauteur pour <h1> est calculée à partir de sa propre hauteur (30px × 1.1) = 33px --> +<!-- La hauteur du deuxième <h1> est basée sur la hauteur du div (15px × 1.1) = 16.5px ... --> ++ +
{{EmbedLiveSample("Gestion_de_l'héritage_et_valeurs_sans_unité", '100%', '200', '')}}
+ +Il est nécessaire d'utiliser une valeur minimale de 1.5 pour la propriété line-height lorsqu'on l'applique sur le contenu des paragraphes principaux. Cela aidera les personnes ayant du mal à lire et les personnes dyslexiques. Utiliser une valeur sans unité permet de garantir une mise à l'échelle proportionnelle lorsqu'on zoome/dézoome.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'line-height')}} | +{{Spec2('CSS3 Transitions')}} | +line-height peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'visudet.html#propdef-line-height', 'line-height')}} | +{{Spec2('CSS2.1')}} | +Aucun changement. | +
| {{SpecName('CSS1', '#line-height', 'line-height')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.line-height")}}
+ +La propriété list-style-image définit l'image utilisée comme puce devant les éléments de listes. On peut également utiliser la propriété raccourcie {{cssxref("list-style")}}.
Note : Cette propriété s'applique aux éléments d'une liste (c'est-à-dire aux éléments pour lesquels {{cssxref("display")}}: list-item;}}). Par défaut, cela inclut les éléments {{HTMLElement("li")}}. Cette propriété peut être héritée par les éléments et si on veut donc gérer une liste de façon uniforme, on pourra appliquer la propriété à l'élément parent (qui correspond en général à {{HTMLElement("ol")}} ou à {{HTMLElement("ul")}}).
/* Valeurs avec un mot-clé*/
-list-style-image: none;
-
-/* Valeurs pointant vers une image */
-list-style-image: url('starsolid.gif');
-
-/* Valeurs globales */
-list-style-image: inherit;
-list-style-image: initial;
-list-style-image: unset;
-
-
-urlnoneul {
- list-style-image: url("https://mdn.mozillademos.org/files/11981/starsolid.gif");
-}
-
-<ul> - <li>Élément 1</li> - <li>Élément 2</li> -</ul> -- -
{{EmbedLiveSample('Exemple')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Lists', '#propdef-list-style-image', 'list-style-image')}} | -{{Spec2('CSS3 Lists')}} | -Propriété étendue pour supporter n'importe quel type {{cssxref("<image>")}}. | -
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style-image', 'list-style-image')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.list-style-image")}}
- -La propriété list-style-image définit l'image utilisée comme puce devant les éléments de listes. On peut également utiliser la propriété raccourcie {{cssxref("list-style")}}.
Note : Cette propriété s'applique aux éléments d'une liste (c'est-à-dire aux éléments pour lesquels {{cssxref("display")}}: list-item;}}). Par défaut, cela inclut les éléments {{HTMLElement("li")}}. Cette propriété peut être héritée par les éléments et si on veut donc gérer une liste de façon uniforme, on pourra appliquer la propriété à l'élément parent (qui correspond en général à {{HTMLElement("ol")}} ou à {{HTMLElement("ul")}}).
/* Valeurs avec un mot-clé*/
+list-style-image: none;
+
+/* Valeurs pointant vers une image */
+list-style-image: url('starsolid.gif');
+
+/* Valeurs globales */
+list-style-image: inherit;
+list-style-image: initial;
+list-style-image: unset;
+
+
+urlnoneul {
+ list-style-image: url("https://mdn.mozillademos.org/files/11981/starsolid.gif");
+}
+
+<ul> + <li>Élément 1</li> + <li>Élément 2</li> +</ul> ++ +
{{EmbedLiveSample('Exemple')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Lists', '#propdef-list-style-image', 'list-style-image')}} | +{{Spec2('CSS3 Lists')}} | +Propriété étendue pour supporter n'importe quel type {{cssxref("<image>")}}. | +
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style-image', 'list-style-image')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.list-style-image")}}
+ +La propriété list-style-position permet de définir la position du marqueur (cf. {{cssxref("::marker")}} de liste par rapport à la boîte principale.
Pour définir cette propriété, on pourra aussi utiliser la propriété raccourcie {{cssxref("list-style")}}.
- -Note : - -
: list-item;). Par défaut, cela inclut les éléments {{HTMLElement("li")}}. Cette propriété peut être héritée par les éléments et si on veut donc gérer une liste de façon uniforme, on pourra appliquer la propriété à l'élément parent (qui correspond en général à {{HTMLElement("ol")}} ou à {{HTMLElement("ul")}}).list-style-position: inside. Chrome et Safari placent l'élément sur la même ligne que la boîte du marqueur. En revanche, Firefox, Internet Explorer et Opera placent l'élément sur la ligne suivante. Voir {{bug("36854")}} pour plus d'informations./* Valeurs avec mot-clé */ -list-style-position: inside; -list-style-position: outside; - -/* Valeurs globales */ -list-style-position: inherit; -list-style-position: initial; -list-style-position: unset; -- -
La propriété list-style-position est définie avec l'un des mots-clés suivants.
insideoutside.one {
- list-style:square inside;
-}
-
-.two {
- list-style-position: outside;
- list-style-type: circle;
-}
-
-.three {
- list-style-image: url("https://mdn.mozillademos.org/files/11979/starsolid.gif");
- list-style-position: inherit;
-}
-
-<ul class="one"> Liste 1 - <li>Élément 1-1</li> - <li>Élément 1-2</li> - <li>Élément 1-3</li> - <li>Élément 1-4</li> -</ul> -<ul class="two"> Liste 2 - <li>Élément 2-1</li> - <li>Élément 2-2</li> - <li>Élément 2-3</li> - <li>Élément 2-4</li> -</ul> -<ul class="three"> Liste 3 - <li>Élément 3-1</li> - <li>Élément 3-2</li> - <li>Élément 3-3</li> - <li>Élément 3-4</li> -</ul>- -
{{EmbedLiveSample("Exemples","200","420")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Lists', '#list-style-position-property', 'list-style-position')}} | -{{Spec2('CSS3 Lists')}} | -Aucun changement. | -
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style-position', 'list-style-position')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.list-style-position")}}
- -La propriété list-style-position permet de définir la position du marqueur (cf. {{cssxref("::marker")}} de liste par rapport à la boîte principale.
Pour définir cette propriété, on pourra aussi utiliser la propriété raccourcie {{cssxref("list-style")}}.
+ +Note : + +
: list-item;). Par défaut, cela inclut les éléments {{HTMLElement("li")}}. Cette propriété peut être héritée par les éléments et si on veut donc gérer une liste de façon uniforme, on pourra appliquer la propriété à l'élément parent (qui correspond en général à {{HTMLElement("ol")}} ou à {{HTMLElement("ul")}}).list-style-position: inside. Chrome et Safari placent l'élément sur la même ligne que la boîte du marqueur. En revanche, Firefox, Internet Explorer et Opera placent l'élément sur la ligne suivante. Voir {{bug("36854")}} pour plus d'informations./* Valeurs avec mot-clé */ +list-style-position: inside; +list-style-position: outside; + +/* Valeurs globales */ +list-style-position: inherit; +list-style-position: initial; +list-style-position: unset; ++ +
La propriété list-style-position est définie avec l'un des mots-clés suivants.
insideoutside.one {
+ list-style:square inside;
+}
+
+.two {
+ list-style-position: outside;
+ list-style-type: circle;
+}
+
+.three {
+ list-style-image: url("https://mdn.mozillademos.org/files/11979/starsolid.gif");
+ list-style-position: inherit;
+}
+
+<ul class="one"> Liste 1 + <li>Élément 1-1</li> + <li>Élément 1-2</li> + <li>Élément 1-3</li> + <li>Élément 1-4</li> +</ul> +<ul class="two"> Liste 2 + <li>Élément 2-1</li> + <li>Élément 2-2</li> + <li>Élément 2-3</li> + <li>Élément 2-4</li> +</ul> +<ul class="three"> Liste 3 + <li>Élément 3-1</li> + <li>Élément 3-2</li> + <li>Élément 3-3</li> + <li>Élément 3-4</li> +</ul>+ +
{{EmbedLiveSample("Exemples","200","420")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Lists', '#list-style-position-property', 'list-style-position')}} | +{{Spec2('CSS3 Lists')}} | +Aucun changement. | +
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style-position', 'list-style-position')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.list-style-position")}}
+ +La propriété list-style-type permet de définir l'apparence de la puce d'un élément de liste (un cercle, un caractère, un compteur spécifique, etc.).
Cette propriété s'applique aux éléments d'une liste (c'est-à-dire les éléments pour lesquels on a {{cssxref("display")}}: list-item;. Cela inclut par défaut les éléments {{HTMLElement("li")}} et {{HTMLElement("summary")}}. Il est possible de l'utiliser pour d'autres éléments si on utilise display: list-item sur ceux-ci. Cette propriété est héritée et on peut donc l'appliquer aux éléments parents (généralement {{HTMLElement("ol")}} ou {{HTMLElement("ul")}}) afin qu'elle s'applique à l'ensemble des éléments fils.
/* Liste partielle des mots-clés utilisables */ -list-style-type: disc; -list-style-type: circle; -list-style-type: square; -list-style-type: decimal; -list-style-type: georgian; -list-style-type: cjk-ideographic; -list-style-type: kannada; - -/* Une chaîne de caractères */ -/* Type <string> */ -list-style-type: '-'; - -/* Un identifiant correspondant à */ -/* une règle @counter-style */ -list-style-type: custom-counter-style; - -/* Valeur avec un mot-clé */ -list-style-type: none; - -/* Valeurs globales */ -list-style-type: inherit; -list-style-type: initial; -list-style-type: unset; -- -
La propriété list-style-type peut être définie grâce à :
<custom-ident>symbols()<string>nonenonedisccirclesquaredecimalcjk-decimal {{experimental_inline}}decimal-leading-zerolower-romanupper-romanlower-greeklower-alpha, lower-latinupper-alpha, upper-latinarabic-indic, -moz-arabic-indicarmenianbengali, -moz-bengalicambodian/khmercjk-earthly-branch, -moz-cjk-earthly-branchcjk-heavenly-stem, -moz-cjk-heavenly-stemcjk-ideographic{{experimental_inline}}trad-chinese-informal.devanagari, -moz-devanagariethiopic-numeric {{experimental_inline}}georgiangujarati, -moz-gujaratigurmukhi, -moz-gurmukhihebrew {{experimental_inline}}hiragana {{experimental_inline}}hiragana-iroha {{experimental_inline}}japanese-formal {{experimental_inline}}japanese-informal {{experimental_inline}}kannada, -moz-kannadakatakana {{experimental_inline}}katakana-iroha {{experimental_inline}}korean-hangul-formal {{experimental_inline}}korean-hanja-formal {{experimental_inline}}korean-hanja-informal {{experimental_inline}}lao, -moz-laolower-armenian {{experimental_inline}}*malayalam, -moz-malayalammongolian {{experimental_inline}}myanmar, -moz-myanmaroriya, -moz-oriyapersian {{experimental_inline}}, -moz-persiansimp-chinese-formal {{experimental_inline}}simp-chinese-informal {{experimental_inline}}tamil {{experimental_inline}}, -moz-tamiltelugu, -moz-teluguthai, -moz-thaitibetan {{experimental_inline}}*trad-chinese-formal {{experimental_inline}}trad-chinese-informal {{experimental_inline}}upper-armenian {{experimental_inline}}*disclosure-open {{experimental_inline}}disclosure-closed {{experimental_inline}}ol.normal {
- list-style-type: upper-alpha;
-}
-
-/* on peut aussi utiliser la propriété raccourcie */
-/* "list-style": */
-ol.shortcut {
- list-style: upper-alpha;
-}
-
-
-<ol class="normal">Liste 1 - <li>Coucou</li> - <li>Monde</li> - <li>Comment ça va ?</li> -</ol> - -<ol class="shortcut">Liste 2 - <li>On a</li> - <li>le</li> - <li>même</li> - <li>résultat</li> -</ol> -- -
{{EmbedLiveSample("Exemples","200","300")}}
- -Le lecteur d'écran VoiceOver n'annonce pas, incorrectement, les listes non ordonnées lorsque list-style-type:none leur est appliqué. Pour pallier ce problème, on peut ajouter un espace sans chasse comme pseudo-contenu avant chaque élément de liste afin que la liste soit correctement annoncée.
ul {
- list-style-type: none;
-}
-
-ul li::before {
- content: "\200B";
-}
-
-
-list-style-type: none – Unfettered Thoughts (en anglais)cjk-ideographic est synonyme de trad-chinese-informal.| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Counter Styles', '#extending-css2', 'list-style-type')}} | -{{Spec2("CSS3 Counter Styles")}} | -Les compteurs CSS2.1 sont redéfinis. - La syntaxe est étendue pour prendre en charge les règles @counter-style.- Définition des types : hebrew, cjk-ideographic, hiragana, hiragana-iroha, katakana, katakana-iroha, japanese-formal, japanese-informal, simp-chinese-formal, trad-chinese-formal, simp-chinese-formal, trad-chinese-formal,korean-hangul-formal, korean-hanja-informal, korean-hanja-formal, cjk-decimal, ethiopic-numeric, disclosure-open et disclosure-closed.- <counter-style> est étendu avec la notation fonctionnelle symbols(). |
-
| {{SpecName('CSS3 Lists', '#propdef-list-style-type', 'list-style-type')}} | -{{Spec2('CSS3 Lists')}} | -La syntaxe est modifiée pour prendre en charge les identifiants utilisés avec les règles @counter-style.- Prise en charge du type <string>. |
-
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style-type', 'list-style-type')}} | -{{Spec2('CSS2.1')}} | -
- Définition initiale. - |
-
{{cssinfo}}
- -{{Compat("css.properties.list-style-type")}}
- -La propriété list-style-type permet de définir l'apparence de la puce d'un élément de liste (un cercle, un caractère, un compteur spécifique, etc.).
Cette propriété s'applique aux éléments d'une liste (c'est-à-dire les éléments pour lesquels on a {{cssxref("display")}}: list-item;. Cela inclut par défaut les éléments {{HTMLElement("li")}} et {{HTMLElement("summary")}}. Il est possible de l'utiliser pour d'autres éléments si on utilise display: list-item sur ceux-ci. Cette propriété est héritée et on peut donc l'appliquer aux éléments parents (généralement {{HTMLElement("ol")}} ou {{HTMLElement("ul")}}) afin qu'elle s'applique à l'ensemble des éléments fils.
/* Liste partielle des mots-clés utilisables */ +list-style-type: disc; +list-style-type: circle; +list-style-type: square; +list-style-type: decimal; +list-style-type: georgian; +list-style-type: cjk-ideographic; +list-style-type: kannada; + +/* Une chaîne de caractères */ +/* Type <string> */ +list-style-type: '-'; + +/* Un identifiant correspondant à */ +/* une règle @counter-style */ +list-style-type: custom-counter-style; + +/* Valeur avec un mot-clé */ +list-style-type: none; + +/* Valeurs globales */ +list-style-type: inherit; +list-style-type: initial; +list-style-type: unset; ++ +
La propriété list-style-type peut être définie grâce à :
<custom-ident>symbols()<string>nonenonedisccirclesquaredecimalcjk-decimal {{experimental_inline}}decimal-leading-zerolower-romanupper-romanlower-greeklower-alpha, lower-latinupper-alpha, upper-latinarabic-indic, -moz-arabic-indicarmenianbengali, -moz-bengalicambodian/khmercjk-earthly-branch, -moz-cjk-earthly-branchcjk-heavenly-stem, -moz-cjk-heavenly-stemcjk-ideographic{{experimental_inline}}trad-chinese-informal.devanagari, -moz-devanagariethiopic-numeric {{experimental_inline}}georgiangujarati, -moz-gujaratigurmukhi, -moz-gurmukhihebrew {{experimental_inline}}hiragana {{experimental_inline}}hiragana-iroha {{experimental_inline}}japanese-formal {{experimental_inline}}japanese-informal {{experimental_inline}}kannada, -moz-kannadakatakana {{experimental_inline}}katakana-iroha {{experimental_inline}}korean-hangul-formal {{experimental_inline}}korean-hanja-formal {{experimental_inline}}korean-hanja-informal {{experimental_inline}}lao, -moz-laolower-armenian {{experimental_inline}}*malayalam, -moz-malayalammongolian {{experimental_inline}}myanmar, -moz-myanmaroriya, -moz-oriyapersian {{experimental_inline}}, -moz-persiansimp-chinese-formal {{experimental_inline}}simp-chinese-informal {{experimental_inline}}tamil {{experimental_inline}}, -moz-tamiltelugu, -moz-teluguthai, -moz-thaitibetan {{experimental_inline}}*trad-chinese-formal {{experimental_inline}}trad-chinese-informal {{experimental_inline}}upper-armenian {{experimental_inline}}*disclosure-open {{experimental_inline}}disclosure-closed {{experimental_inline}}ol.normal {
+ list-style-type: upper-alpha;
+}
+
+/* on peut aussi utiliser la propriété raccourcie */
+/* "list-style": */
+ol.shortcut {
+ list-style: upper-alpha;
+}
+
+
+<ol class="normal">Liste 1 + <li>Coucou</li> + <li>Monde</li> + <li>Comment ça va ?</li> +</ol> + +<ol class="shortcut">Liste 2 + <li>On a</li> + <li>le</li> + <li>même</li> + <li>résultat</li> +</ol> ++ +
{{EmbedLiveSample("Exemples","200","300")}}
+ +Le lecteur d'écran VoiceOver n'annonce pas, incorrectement, les listes non ordonnées lorsque list-style-type:none leur est appliqué. Pour pallier ce problème, on peut ajouter un espace sans chasse comme pseudo-contenu avant chaque élément de liste afin que la liste soit correctement annoncée.
ul {
+ list-style-type: none;
+}
+
+ul li::before {
+ content: "\200B";
+}
+
+
+list-style-type: none – Unfettered Thoughts (en anglais)cjk-ideographic est synonyme de trad-chinese-informal.| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Counter Styles', '#extending-css2', 'list-style-type')}} | +{{Spec2("CSS3 Counter Styles")}} | +Les compteurs CSS2.1 sont redéfinis. + La syntaxe est étendue pour prendre en charge les règles @counter-style.+ Définition des types : hebrew, cjk-ideographic, hiragana, hiragana-iroha, katakana, katakana-iroha, japanese-formal, japanese-informal, simp-chinese-formal, trad-chinese-formal, simp-chinese-formal, trad-chinese-formal,korean-hangul-formal, korean-hanja-informal, korean-hanja-formal, cjk-decimal, ethiopic-numeric, disclosure-open et disclosure-closed.+ <counter-style> est étendu avec la notation fonctionnelle symbols(). |
+
| {{SpecName('CSS3 Lists', '#propdef-list-style-type', 'list-style-type')}} | +{{Spec2('CSS3 Lists')}} | +La syntaxe est modifiée pour prendre en charge les identifiants utilisés avec les règles @counter-style.+ Prise en charge du type <string>. |
+
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style-type', 'list-style-type')}} | +{{Spec2('CSS2.1')}} | +
+ Définition initiale. + |
+
{{cssinfo}}
+ +{{Compat("css.properties.list-style-type")}}
+ +La propriété list-style est une propriété raccourcie qui permet de définir {{cssxref("list-style-type")}}, {{cssxref("list-style-image")}} et {{cssxref("list-style-position")}}.
Note : Cette propriété s'applique aux éléments d'une liste (c'est-à-dire aux éléments pour lesquels {{cssxref("display")}}: list-item;}}). Par défaut, cela inclut les éléments {{HTMLElement("li")}}. Cette propriété peut être héritée par les éléments et si on veut donc gérer une liste de façon uniforme, on pourra appliquer la propriété à l'élément parent (qui correspond en général à {{HTMLElement("ol")}} ou à {{HTMLElement("ul")}}).
/* Type */
-list-style: square;
-
-/* Image */
-list-style: url('../img/etoile.png');
-
-/* Position */
-list-style: inside;
-
-/* type | position */
-list-style: georgian inside;
-
-/* type | image | position */
-list-style: lower-roman url('../img/etoile.png') outside;
-
-list-style: none;
-
-/* Valeurs globales */
-list-style: inherit;
-list-style: initial;
-list-style: unset;
-
-
-Cette propriété raccourcie peut prendre un, deux ou trois mots-clés, dans n'importe quel ordre. Si {{cssxref("list-style-type")}} et {{cssxref("list-style-image")}} sont tous les deux définis, list-style-type sera utilisé si l'image est indisponible.
<'list-style-type'><'list-style-image'><'list-style-position'>none.un {
- list-style: circle;
-}
-
-.deux {
- list-style: square inside;
-}
-
-Liste 1 -<ul class="un"> - <li>Élément 1</li> - <li>Élément 2</li> - <li>Élément 3</li> -</ul> -Liste 2 -<ul class="deux"> - <li>Élément A</li> - <li>Élément B</li> - <li>Élément C</li> -</ul> -- -
{{EmbedLiveSample('Exemples','auto', 220)}}
- -Safari ne reconnait pas (incorrectement) les listes non ordonnées lorsque list-style:none leur est appliqué et ne les ajoute pas dans l'arbre d'accessibilité (utilisé par les lecteurs d'écrans). Pour pallier ce problème, on peut ajouter un espace sans chasse comme pseudo-contenu avant chaque élément de liste afin que la liste soit correctement annoncée.
ul {
- list-style: none;
-}
-
-ul li::before {
- content: "\200B";
-}
-
-
-list-style-type: none – Unfettered Thoughts (en anglais)| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Lists', '#list-style-property', 'list-style')}} | -{{Spec2('CSS3 Lists')}} | -Aucun changement. | -
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style', 'list-style')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.list-style")}}
- -La propriété list-style est une propriété raccourcie qui permet de définir {{cssxref("list-style-type")}}, {{cssxref("list-style-image")}} et {{cssxref("list-style-position")}}.
Note : Cette propriété s'applique aux éléments d'une liste (c'est-à-dire aux éléments pour lesquels {{cssxref("display")}}: list-item;}}). Par défaut, cela inclut les éléments {{HTMLElement("li")}}. Cette propriété peut être héritée par les éléments et si on veut donc gérer une liste de façon uniforme, on pourra appliquer la propriété à l'élément parent (qui correspond en général à {{HTMLElement("ol")}} ou à {{HTMLElement("ul")}}).
/* Type */
+list-style: square;
+
+/* Image */
+list-style: url('../img/etoile.png');
+
+/* Position */
+list-style: inside;
+
+/* type | position */
+list-style: georgian inside;
+
+/* type | image | position */
+list-style: lower-roman url('../img/etoile.png') outside;
+
+list-style: none;
+
+/* Valeurs globales */
+list-style: inherit;
+list-style: initial;
+list-style: unset;
+
+
+Cette propriété raccourcie peut prendre un, deux ou trois mots-clés, dans n'importe quel ordre. Si {{cssxref("list-style-type")}} et {{cssxref("list-style-image")}} sont tous les deux définis, list-style-type sera utilisé si l'image est indisponible.
<'list-style-type'><'list-style-image'><'list-style-position'>none.un {
+ list-style: circle;
+}
+
+.deux {
+ list-style: square inside;
+}
+
+Liste 1 +<ul class="un"> + <li>Élément 1</li> + <li>Élément 2</li> + <li>Élément 3</li> +</ul> +Liste 2 +<ul class="deux"> + <li>Élément A</li> + <li>Élément B</li> + <li>Élément C</li> +</ul> ++ +
{{EmbedLiveSample('Exemples','auto', 220)}}
+ +Safari ne reconnait pas (incorrectement) les listes non ordonnées lorsque list-style:none leur est appliqué et ne les ajoute pas dans l'arbre d'accessibilité (utilisé par les lecteurs d'écrans). Pour pallier ce problème, on peut ajouter un espace sans chasse comme pseudo-contenu avant chaque élément de liste afin que la liste soit correctement annoncée.
ul {
+ list-style: none;
+}
+
+ul li::before {
+ content: "\200B";
+}
+
+
+list-style-type: none – Unfettered Thoughts (en anglais)| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Lists', '#list-style-property', 'list-style')}} | +{{Spec2('CSS3 Lists')}} | +Aucun changement. | +
| {{SpecName('CSS2.1', 'generate.html#propdef-list-style', 'list-style')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.list-style")}}
+ +{{CSSRef}}{{Draft}}
- -Note : Cette page est un brouillon et son contenu est incomplet voire obsolète. À lire avec un œil critique.
-Attention : Cette page est incomplète et n'est pas à jour. Se référer aux pages suivantes pour plus d'informations :
- - -Cette liste contient les extensions propriétaires des CSS en fonction des moteurs des différents navigateurs ; il ne s'agit pas des implémentations expérimentales des fonctionnalités en cours de standardisation (voir Implémentation des fonctionnalités CSS à l'état de brouillon pour une liste de ces dernières).
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
- -...
diff --git a/files/fr/web/css/list_of_proprietary_css_features/index.md b/files/fr/web/css/list_of_proprietary_css_features/index.md new file mode 100644 index 0000000000..68f7371faa --- /dev/null +++ b/files/fr/web/css/list_of_proprietary_css_features/index.md @@ -0,0 +1,169 @@ +--- +title: Liste de fonctionnalités CSS propriétaires +slug: Web/CSS/List_of_Proprietary_CSS_Features +tags: + - CSS + - Draft + - NeedsContent +translation_of: Web/CSS/List_of_Proprietary_CSS_Features +original_slug: Web/CSS/Liste_de_Fonctionnalités_CSS_Propriétaires +--- +{{CSSRef}}{{Draft}}
+ +Note : Cette page est un brouillon et son contenu est incomplet voire obsolète. À lire avec un œil critique.
+Attention : Cette page est incomplète et n'est pas à jour. Se référer aux pages suivantes pour plus d'informations :
+ + +Cette liste contient les extensions propriétaires des CSS en fonction des moteurs des différents navigateurs ; il ne s'agit pas des implémentations expérimentales des fonctionnalités en cours de standardisation (voir Implémentation des fonctionnalités CSS à l'état de brouillon pour une liste de ces dernières).
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
+ +...
diff --git a/files/fr/web/css/margin-block-end/index.html b/files/fr/web/css/margin-block-end/index.html deleted file mode 100644 index 92547fd248..0000000000 --- a/files/fr/web/css/margin-block-end/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: margin-block-end -slug: Web/CSS/margin-block-end -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/margin-block-end ---- -La propriété margin-block-end définit la marge logique appliquée à la fin des éléments de bloc, selon le mode d'écriture, la directionnalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
/* Valeurs de longueur */ -/* Type <length> */ -margin-block-end: 10px; /* Une longueur absolue */ -margin-block-end: 1em; /* Une longueur relative à la taille du texte */ -margin-block-end: 5%; /* Une largeur relative à la - largeur du bloc englobant */ - -/* Valeurs avec un mot-clé */ -margin-block-end: auto; - -/* Valeurs globales */ -margin-block-end: inherit; -- -
La propriété margin-block-end peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- margin-block-end: 20px;
- background-color: #c8c800;
-}
-
-<div> - <p class="exemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-block-end", "margin-block-end")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-block-end")}}
- -La propriété margin-block-end définit la marge logique appliquée à la fin des éléments de bloc, selon le mode d'écriture, la directionnalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
/* Valeurs de longueur */ +/* Type <length> */ +margin-block-end: 10px; /* Une longueur absolue */ +margin-block-end: 1em; /* Une longueur relative à la taille du texte */ +margin-block-end: 5%; /* Une largeur relative à la + largeur du bloc englobant */ + +/* Valeurs avec un mot-clé */ +margin-block-end: auto; + +/* Valeurs globales */ +margin-block-end: inherit; ++ +
La propriété margin-block-end peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ margin-block-end: 20px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="exemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-block-end", "margin-block-end")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-block-end")}}
+ +La propriété margin-block-start définit la marge logique appliquée au début des éléments en bloc, selon le mode d'écriture, la directionalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
Cette propriété est à rapprocher de {{cssxref("margin-inline-start")}}, {{cssxref("margin-block-end")}} et de {{cssxref("margin-inline-end")}} qui définissent les autres marges appliquées à l'élément.
- -/* Valeurs de longueur */ -/* Type <length> */ -margin-block-start: 10px; /* Une longueur absolue */ -margin-block-start: 1em; /* Une longueur relative à la taille du texte */ -margin-block-start: 5%; /* Une largeur relative à la - largeur du bloc englobant */ - -/* Valeurs avec un mot-clé */ -margin-block-start: auto; - -/* Valeurs globales */ -margin-block-start: inherit; -- -
La propriété margin-block-start peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- margin-block-start: 20px;
- background-color: #c8c800;
-}
-
-<div> - <p class="exemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-block-start", "margin-block-start")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-block-start")}}
- -La propriété margin-block-start définit la marge logique appliquée au début des éléments en bloc, selon le mode d'écriture, la directionalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
Cette propriété est à rapprocher de {{cssxref("margin-inline-start")}}, {{cssxref("margin-block-end")}} et de {{cssxref("margin-inline-end")}} qui définissent les autres marges appliquées à l'élément.
+ +/* Valeurs de longueur */ +/* Type <length> */ +margin-block-start: 10px; /* Une longueur absolue */ +margin-block-start: 1em; /* Une longueur relative à la taille du texte */ +margin-block-start: 5%; /* Une largeur relative à la + largeur du bloc englobant */ + +/* Valeurs avec un mot-clé */ +margin-block-start: auto; + +/* Valeurs globales */ +margin-block-start: inherit; ++ +
La propriété margin-block-start peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ margin-block-start: 20px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="exemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-block-start", "margin-block-start")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-block-start")}}
+ +La propriété margin-block définit la marge sur les côtés de l'élément qui sont ceux de l'axe de bloc. Cette propriété logique peut correspondre à différentes marges selon le mode d'écriture de l'élément, sa direction ou l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("margin-top")}} et {{cssxref("margin-bottom")}} ou à {{cssxref("margin-right")}} et {{cssxref("margin-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ -/* Type <length> */ -margin-block: 10px 20px; /* Une longueur absolue */ -margin-block: 1em 2em; /* Une longueur relative à la taille du texte */ -margin-block: 5% 2%; /* Une longueur relative à la largeur ou hauteur du bloc englobant */ -margin-block: 10px; /* Une valeur utilisée pour les deux côtés */ - -/* Valeurs avec un mot-clé */ -margin-block: auto; - -/* Valeurs globales */ -margin-block: inherit; -margin-block: initial; -margin-block: unset; -- -
Cette propriété est une propriété raccourcie pour les deux propriétés logiques {{cssxref("margin-block-start")}} et {{cssxref("margin-block-end")}}. Pour régler les marges selon l'axe en ligne, on pourra utiliser la propriété logique raccourcie {{cssxref("margin-inline")}} qui correspond aux propriétés {{cssxref("margin-inline-start")}} et {{cssxref("margin-inline-end")}}.
- -La propriété margin-block peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- margin-block: 20px 40px;
- background-color: #c8c800;
-}
-
-<div> - <p class="texteExemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-block", "margin-block")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-block")}}
- -La propriété margin-block définit la marge sur les côtés de l'élément qui sont ceux de l'axe de bloc. Cette propriété logique peut correspondre à différentes marges selon le mode d'écriture de l'élément, sa direction ou l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("margin-top")}} et {{cssxref("margin-bottom")}} ou à {{cssxref("margin-right")}} et {{cssxref("margin-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ +/* Type <length> */ +margin-block: 10px 20px; /* Une longueur absolue */ +margin-block: 1em 2em; /* Une longueur relative à la taille du texte */ +margin-block: 5% 2%; /* Une longueur relative à la largeur ou hauteur du bloc englobant */ +margin-block: 10px; /* Une valeur utilisée pour les deux côtés */ + +/* Valeurs avec un mot-clé */ +margin-block: auto; + +/* Valeurs globales */ +margin-block: inherit; +margin-block: initial; +margin-block: unset; ++ +
Cette propriété est une propriété raccourcie pour les deux propriétés logiques {{cssxref("margin-block-start")}} et {{cssxref("margin-block-end")}}. Pour régler les marges selon l'axe en ligne, on pourra utiliser la propriété logique raccourcie {{cssxref("margin-inline")}} qui correspond aux propriétés {{cssxref("margin-inline-start")}} et {{cssxref("margin-inline-end")}}.
+ +La propriété margin-block peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ margin-block: 20px 40px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="texteExemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-block", "margin-block")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-block")}}
+ +La propriété margin-bottom définit la marge basse appliquée à un élément. On peut définir une marge négative qui rapprochera l'élément de ses voisins ou une marge positive qui l'en écartera..
Cette propriété n'a aucun effet sur les éléments en ligne (inline) qui ne sont pas remplacés comme {{HTMLElement("tt")}} ou {{HTMLElement("span")}}.
- -/* Valeurs de longueur */ -/* Type <length> */ -margin-bottom: 10px; /* Une longueur absolue */ -margin-bottom: 1em; /* Une longueur relative à la taille du texte */ -margin-bottom: 5%; /* Une longueur relative à la - largeur du bloc englobant */ - -/* Valeurs avec un mot-clé */ -margin-bottom: auto; - -/* Valeurs globales*/ -margin-bottom: inherit; -margin-bottom: initial; -margin-bottom: unset; -- -
La valeur de cette propriété peut être le mot-clé auto, une longueur (<length>) ou un pourcentage (<percentage>). Cette valeur peut être nulle, positive ou négative.
<length><percentage>autoGrâce à la feuille de style on définit la marge basse et la hauteur des différentes div :
.box0 {
- margin-bottom:1em;
- height:3em;
-}
-.box1 {
- margin-bottom:-1.5em;
- height:4em;
-}
-.box2 {
- border:1px dashed black;
- border-width:1px 0;
- margin-bottom:2em;
-}
-
-
-
-On ajoute quelques règles afin de mieux visualiser les effets obtenus :
- -.container {
- background-color:orange;
- width:320px;
- border:1px solid black;
-}
-div {
- width:320px;
- background-color:gold;
-}
-
-<div class="container"> -<div class="box0">Boîte 0</div> -<div class="box1">Boîte 1</div> -<div class="box2">La marge négative de 1 m'attire vers le haut</div> -</div>- -
{{EmbedLiveSample('Exemples',350,200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#margin-bottom', 'margin-bottom')}} | -{{Spec2('CSS3 Box')}} | -Pas de modification significative. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-bottom')}} | -{{Spec2('CSS3 Transitions')}} | -margin-bottom peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-bottom')}} | -{{Spec2('CSS2.1')}} | -L'effet sur les éléments en ligne est supprimé. | -
| {{SpecName('CSS1', '#margin-bottom', 'margin-bottom')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-bottom")}}
diff --git a/files/fr/web/css/margin-bottom/index.md b/files/fr/web/css/margin-bottom/index.md new file mode 100644 index 0000000000..a984e60431 --- /dev/null +++ b/files/fr/web/css/margin-bottom/index.md @@ -0,0 +1,137 @@ +--- +title: margin-bottom +slug: Web/CSS/margin-bottom +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/margin-bottom +--- +La propriété margin-bottom définit la marge basse appliquée à un élément. On peut définir une marge négative qui rapprochera l'élément de ses voisins ou une marge positive qui l'en écartera..
Cette propriété n'a aucun effet sur les éléments en ligne (inline) qui ne sont pas remplacés comme {{HTMLElement("tt")}} ou {{HTMLElement("span")}}.
+ +/* Valeurs de longueur */ +/* Type <length> */ +margin-bottom: 10px; /* Une longueur absolue */ +margin-bottom: 1em; /* Une longueur relative à la taille du texte */ +margin-bottom: 5%; /* Une longueur relative à la + largeur du bloc englobant */ + +/* Valeurs avec un mot-clé */ +margin-bottom: auto; + +/* Valeurs globales*/ +margin-bottom: inherit; +margin-bottom: initial; +margin-bottom: unset; ++ +
La valeur de cette propriété peut être le mot-clé auto, une longueur (<length>) ou un pourcentage (<percentage>). Cette valeur peut être nulle, positive ou négative.
<length><percentage>autoGrâce à la feuille de style on définit la marge basse et la hauteur des différentes div :
.box0 {
+ margin-bottom:1em;
+ height:3em;
+}
+.box1 {
+ margin-bottom:-1.5em;
+ height:4em;
+}
+.box2 {
+ border:1px dashed black;
+ border-width:1px 0;
+ margin-bottom:2em;
+}
+
+
+
+On ajoute quelques règles afin de mieux visualiser les effets obtenus :
+ +.container {
+ background-color:orange;
+ width:320px;
+ border:1px solid black;
+}
+div {
+ width:320px;
+ background-color:gold;
+}
+
+<div class="container"> +<div class="box0">Boîte 0</div> +<div class="box1">Boîte 1</div> +<div class="box2">La marge négative de 1 m'attire vers le haut</div> +</div>+ +
{{EmbedLiveSample('Exemples',350,200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#margin-bottom', 'margin-bottom')}} | +{{Spec2('CSS3 Box')}} | +Pas de modification significative. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-bottom')}} | +{{Spec2('CSS3 Transitions')}} | +margin-bottom peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-bottom')}} | +{{Spec2('CSS2.1')}} | +L'effet sur les éléments en ligne est supprimé. | +
| {{SpecName('CSS1', '#margin-bottom', 'margin-bottom')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-bottom")}}
diff --git a/files/fr/web/css/margin-inline-end/index.html b/files/fr/web/css/margin-inline-end/index.html deleted file mode 100644 index d5f5efa20b..0000000000 --- a/files/fr/web/css/margin-inline-end/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: margin-inline-end -slug: Web/CSS/margin-inline-end -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/margin-inline-end ---- -La propriété margin-inline-end définit la marge logique appliquée à la fin des éléments en ligne, selon le mode d'écriture, la directionalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
Cette propriété est à rapprocher de {{cssxref("margin-block-start")}}, {{cssxref("margin-block-end")}} et de {{cssxref("margin-inline-start")}} qui définissent les autres marges appliquées à l'élément.
- -/* Valeurs de longueur */ -/* Type <length> */ -margin-inline-end: 10px; /* Une longueur absolue */ -margin-inline-end: 1em; /* Une longueur relative à la taille du texte */ -margin-inline-end: 5%; /* Une largeur relative à la - largeur du bloc englobant */ - -/* Valeurs avec un mot-clé */ -margin-inline-end: auto; - -/* Valeurs globales */ -margin-inline-end: inherit; -- -
La propriété margin-inline-end peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- margin-inline-end: 20px;
- background-color: #c8c800;
-}
-
-<div> - <p class="exemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-inline-end", "margin-inline-end")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-inline-end")}}
- -La propriété margin-inline-end définit la marge logique appliquée à la fin des éléments en ligne, selon le mode d'écriture, la directionalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
Cette propriété est à rapprocher de {{cssxref("margin-block-start")}}, {{cssxref("margin-block-end")}} et de {{cssxref("margin-inline-start")}} qui définissent les autres marges appliquées à l'élément.
+ +/* Valeurs de longueur */ +/* Type <length> */ +margin-inline-end: 10px; /* Une longueur absolue */ +margin-inline-end: 1em; /* Une longueur relative à la taille du texte */ +margin-inline-end: 5%; /* Une largeur relative à la + largeur du bloc englobant */ + +/* Valeurs avec un mot-clé */ +margin-inline-end: auto; + +/* Valeurs globales */ +margin-inline-end: inherit; ++ +
La propriété margin-inline-end peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ margin-inline-end: 20px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="exemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-inline-end", "margin-inline-end")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-inline-end")}}
+ +La propriété margin-inline-start définit la marge logique appliquée au début des éléments en ligne, selon le mode d'écriture, la directionalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
Cette propriété est à rapprocher de {{cssxref("margin-block-start")}}, {{cssxref("margin-block-end")}} et de {{cssxref("margin-inline-end")}} qui définissent les autres marges appliquées à l'élément.
- -/* Valeurs de longueur */ -/* Type <length> */ -margin-inline-start: 10px; /* Une longueur absolue */ -margin-inline-start: 1em; /* Une longueur relative à la taille du texte */ -margin-inline-start: 5%; /* Une largeur relative à la - largeur du bloc englobant */ - -/* Valeurs avec un mot-clé */ -margin-inline-start: auto; - -/* Valeurs globales */ -margin-inline-start: inherit; -- -
La propriété margin-inline-start peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- margin-inline-start: 20px;
- background-color: #c8c800;
-}
-
-<div> - <p class="exemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-inline-start", "margin-inline-start")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-inline-start")}}
- -La propriété margin-inline-start définit la marge logique appliquée au début des éléments en ligne, selon le mode d'écriture, la directionalité et l'orientation du texte. Selon les valeurs utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}}, and {{cssxref("text-orientation")}}, elle peut correspondre à {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} ou {{cssxref("margin-left")}}.
Cette propriété est à rapprocher de {{cssxref("margin-block-start")}}, {{cssxref("margin-block-end")}} et de {{cssxref("margin-inline-end")}} qui définissent les autres marges appliquées à l'élément.
+ +/* Valeurs de longueur */ +/* Type <length> */ +margin-inline-start: 10px; /* Une longueur absolue */ +margin-inline-start: 1em; /* Une longueur relative à la taille du texte */ +margin-inline-start: 5%; /* Une largeur relative à la + largeur du bloc englobant */ + +/* Valeurs avec un mot-clé */ +margin-inline-start: auto; + +/* Valeurs globales */ +margin-inline-start: inherit; ++ +
La propriété margin-inline-start peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ margin-inline-start: 20px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="exemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-inline-start", "margin-inline-start")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-inline-start")}}
+ +La propriété margin-inline définit la marge sur les côtés de l'élément qui sont ceux de l'axe en ligne. Cette propriété logique peut correspondre à différentes marges selon le mode d'écriture de l'élément, sa direction ou l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("margin-top")}} et {{cssxref("margin-bottom")}} ou à {{cssxref("margin-right")}} et {{cssxref("margin-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ -/* Type <length> */ -margin-inline: 10px 20px; /* Une longueur absolue */ -margin-inline: 1em 2em; /* Une longueur relative à la taille du texte */ -margin-inline: 5% 2%; /* Une longueur relative à la largeur ou hauteur du bloc englobant */ -margin-inline: 10px; /* Une valeur utilisée pour les deux côtés */ - -/* Valeurs avec un mot-clé */ -margin-inline: auto; - -/* Valeurs globales */ -margin-inline: inherit; -margin-inline: initial; -margin-inline: unset; -- -
Cette propriété est une propriété raccourcie pour les deux propriétés logiques {{cssxref("margin-inline-start")}} et {{cssxref("margin-inline-end")}}. Pour régler les marges selon l'axe en ligne, on pourra utiliser la propriété logique raccourcie {{cssxref("margin-block")}} qui correspond aux propriétés {{cssxref("margin-block-start")}} et {{cssxref("margin-block-end")}}.
- -La propriété margin-inline peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- margin-inline: 20px 40px;
- background-color: #c8c800;
-}
-
-<div> - <p class="texteExemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-inline", "margin-inline")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-inline")}}
- -La propriété margin-inline définit la marge sur les côtés de l'élément qui sont ceux de l'axe en ligne. Cette propriété logique peut correspondre à différentes marges selon le mode d'écriture de l'élément, sa direction ou l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("margin-top")}} et {{cssxref("margin-bottom")}} ou à {{cssxref("margin-right")}} et {{cssxref("margin-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ +/* Type <length> */ +margin-inline: 10px 20px; /* Une longueur absolue */ +margin-inline: 1em 2em; /* Une longueur relative à la taille du texte */ +margin-inline: 5% 2%; /* Une longueur relative à la largeur ou hauteur du bloc englobant */ +margin-inline: 10px; /* Une valeur utilisée pour les deux côtés */ + +/* Valeurs avec un mot-clé */ +margin-inline: auto; + +/* Valeurs globales */ +margin-inline: inherit; +margin-inline: initial; +margin-inline: unset; ++ +
Cette propriété est une propriété raccourcie pour les deux propriétés logiques {{cssxref("margin-inline-start")}} et {{cssxref("margin-inline-end")}}. Pour régler les marges selon l'axe en ligne, on pourra utiliser la propriété logique raccourcie {{cssxref("margin-block")}} qui correspond aux propriétés {{cssxref("margin-block-start")}} et {{cssxref("margin-block-end")}}.
+ +La propriété margin-inline peut prendre les mêmes valeurs que la propriété {{cssxref("margin-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ margin-inline: 20px 40px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="texteExemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-margin-inline", "margin-inline")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-inline")}}
+ +La propriété margin-left d'un élément définit l'espace horizontal à gauche qui formera la marge à gauche de l'élément. On peut avoir une marge gauche négative qui rapproche l'élément de ses voisins ou une marge positive qui l'en écarte.
Les marges des côtés droit et gauche de deux boîtes adjacentes peuvent fusionner entre elles. C'est ce qu'on appelle la fusion de marges.
- -Dans certains cas où les dimensions sont sur-contraintes (autrement dit quand width, margin-left, border, padding, la taille de la zone de contenu et margin-right sont toutes définies), margin-left est ignorée. La valeur calculée sera la même que si auto avait été utilisée.
/* Valeurs de longueur */ -/* Type <length> */ -margin-left: 10px; /* Une longueur absolue */ -margin-left: 1em; /* Une longueur absolue relative à la taille du texte */ -margin-left: 5%; /* Une marge dont la taille est relative à la largeur - du bloc englobant */ - -/* Valeur avec un mot-clé */ -margin-left: auto; - -/* Valeurs globales */ -margin-left: inherit; -margin-left: initial; -margin-left: unset; -- -
La valeur de cette propriété peut être le mot-clé auto, une longueur (<length>) ou un pourcentage (<percentage>).
<length>px) ou en fonction de la taille du texte (em) ou être relative à la taille de la zone d'affichage (viewport) (vh).<percentage>autoauto. Le tableau suivant précise les différents cas :
- | Valeur de {{cssxref("display")}} | -Valeur de {{cssxref("float")}} | -Valeur de {{cssxref("position")}} | -Valeur calculée pour auto |
- Commentaires | -
|---|---|---|---|---|
inline, inline-block, inline-table |
- n'importe laquelle | -static ou relative |
- 0 |
- Disposition en ligne | -
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
- n'importe laquelle | -static ou relative |
- 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer l'élément au sein de l'élément parent. |
- Disposition en bloc | -
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
- left ou right |
- static ou relative |
- 0 |
- Disposition en bloc avec les éléments flottants | -
n'importe quelle table-*, sauf table-caption |
- n'importe laquelle | -n'importe laquelle | -0 |
- Les éléments table-* n'ont pas de marge, il faut utiliser {{cssxref("border-spacing")}} à la place. |
-
n'importe laquelle, sauf flex, inline-flex, ou table-* |
- n'importe laquelle | -fixed ou absolute |
- 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer la boîte de bordure dans la zone de largeur disponible si elle fixée. |
- Positionnement absolu. | -
flex, inline-flex |
- n'importe laquelle | -n'importe laquelle | -0, sauf s'il reste de l'espace horizontal libre. Dans ce cas, l'espace restant sera distribué de façon équitable entre toutes les marges avec auto. |
- Boîtes flexibles. | -
.exemple {
- margin-left: 50%;
-}
-
-<p>Un grand rosier se trouvait à l’entrée du jardin ; - les roses qu’il portait étaient blanches, mais - trois jardiniers étaient en train de les peindre - en rouge. -</p> -<p class=exemple> - Alice s’avança pour les regarder, et, au moment où - elle approchait, elle en entendit un qui disait : - « Fais donc attention, Cinq, et ne m’éclabousse pas - ainsi avec ta peinture. » -</p> -<p> - « Ce n’est pas de ma faute, » dit Cinq d’un ton - bourru, « c’est Sept qui m’a poussé le coude. » -</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-margin', 'margin-left')}} | -{{Spec2('CSS3 Box')}} | -Pas de modification significative depuis CSS 2.1. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-left')}} | -{{Spec2('CSS3 Transitions')}} | -margin-left peut désormais être animée. |
-
| {{SpecName('CSS3 Flexbox', '#item-margins', 'margin-left')}} | -{{Spec2('CSS3 Flexbox')}} | -Le comportement de margin-left sur les éléments flexibles est défini. |
-
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-left')}} | -{{Spec2('CSS2.1')}} | -L'effet sur les éléments en ligne (inline) est retiré. | -
| {{SpecName('CSS1', '#margin-left', 'margin-left')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-left")}}
diff --git a/files/fr/web/css/margin-left/index.md b/files/fr/web/css/margin-left/index.md new file mode 100644 index 0000000000..b0791c0906 --- /dev/null +++ b/files/fr/web/css/margin-left/index.md @@ -0,0 +1,184 @@ +--- +title: margin-left +slug: Web/CSS/margin-left +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/margin-left +--- +La propriété margin-left d'un élément définit l'espace horizontal à gauche qui formera la marge à gauche de l'élément. On peut avoir une marge gauche négative qui rapproche l'élément de ses voisins ou une marge positive qui l'en écarte.
Les marges des côtés droit et gauche de deux boîtes adjacentes peuvent fusionner entre elles. C'est ce qu'on appelle la fusion de marges.
+ +Dans certains cas où les dimensions sont sur-contraintes (autrement dit quand width, margin-left, border, padding, la taille de la zone de contenu et margin-right sont toutes définies), margin-left est ignorée. La valeur calculée sera la même que si auto avait été utilisée.
/* Valeurs de longueur */ +/* Type <length> */ +margin-left: 10px; /* Une longueur absolue */ +margin-left: 1em; /* Une longueur absolue relative à la taille du texte */ +margin-left: 5%; /* Une marge dont la taille est relative à la largeur + du bloc englobant */ + +/* Valeur avec un mot-clé */ +margin-left: auto; + +/* Valeurs globales */ +margin-left: inherit; +margin-left: initial; +margin-left: unset; ++ +
La valeur de cette propriété peut être le mot-clé auto, une longueur (<length>) ou un pourcentage (<percentage>).
<length>px) ou en fonction de la taille du texte (em) ou être relative à la taille de la zone d'affichage (viewport) (vh).<percentage>autoauto. Le tableau suivant précise les différents cas :
+ | Valeur de {{cssxref("display")}} | +Valeur de {{cssxref("float")}} | +Valeur de {{cssxref("position")}} | +Valeur calculée pour auto |
+ Commentaires | +
|---|---|---|---|---|
inline, inline-block, inline-table |
+ n'importe laquelle | +static ou relative |
+ 0 |
+ Disposition en ligne | +
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
+ n'importe laquelle | +static ou relative |
+ 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer l'élément au sein de l'élément parent. |
+ Disposition en bloc | +
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
+ left ou right |
+ static ou relative |
+ 0 |
+ Disposition en bloc avec les éléments flottants | +
n'importe quelle table-*, sauf table-caption |
+ n'importe laquelle | +n'importe laquelle | +0 |
+ Les éléments table-* n'ont pas de marge, il faut utiliser {{cssxref("border-spacing")}} à la place. |
+
n'importe laquelle, sauf flex, inline-flex, ou table-* |
+ n'importe laquelle | +fixed ou absolute |
+ 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer la boîte de bordure dans la zone de largeur disponible si elle fixée. |
+ Positionnement absolu. | +
flex, inline-flex |
+ n'importe laquelle | +n'importe laquelle | +0, sauf s'il reste de l'espace horizontal libre. Dans ce cas, l'espace restant sera distribué de façon équitable entre toutes les marges avec auto. |
+ Boîtes flexibles. | +
.exemple {
+ margin-left: 50%;
+}
+
+<p>Un grand rosier se trouvait à l’entrée du jardin ; + les roses qu’il portait étaient blanches, mais + trois jardiniers étaient en train de les peindre + en rouge. +</p> +<p class=exemple> + Alice s’avança pour les regarder, et, au moment où + elle approchait, elle en entendit un qui disait : + « Fais donc attention, Cinq, et ne m’éclabousse pas + ainsi avec ta peinture. » +</p> +<p> + « Ce n’est pas de ma faute, » dit Cinq d’un ton + bourru, « c’est Sept qui m’a poussé le coude. » +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-margin', 'margin-left')}} | +{{Spec2('CSS3 Box')}} | +Pas de modification significative depuis CSS 2.1. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-left')}} | +{{Spec2('CSS3 Transitions')}} | +margin-left peut désormais être animée. |
+
| {{SpecName('CSS3 Flexbox', '#item-margins', 'margin-left')}} | +{{Spec2('CSS3 Flexbox')}} | +Le comportement de margin-left sur les éléments flexibles est défini. |
+
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-left')}} | +{{Spec2('CSS2.1')}} | +L'effet sur les éléments en ligne (inline) est retiré. | +
| {{SpecName('CSS1', '#margin-left', 'margin-left')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-left")}}
diff --git a/files/fr/web/css/margin-right/index.html b/files/fr/web/css/margin-right/index.html deleted file mode 100644 index cf82405f56..0000000000 --- a/files/fr/web/css/margin-right/index.html +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: margin-right -slug: Web/CSS/margin-right -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/margin-right ---- -La propriété margin-right d'un élément définit l'espace horizontal à droite qui formera la marge à droite. On peut avoir une marge droite négative.
Les marges des côtés droit et gauche de deux boîtes adjacentes peuvent fusionner entre elles. C'est ce qu'on appelle la fusion de marges.
- -/* Valeur de longueur */ -/* Type <length> */ -margin-right: 20px; /* Une longueur absolue */ -margin-right: 1em; /* Une longueur relative à la taille du texte */ -margin-right: 5%; /* Une marge relative à la largeur - du bloc englobant */ - -/* Valeur avec un mot-clé */ -margin-right: auto; - -/* Valeurs globales */ -margin-right: inherit; -margin-right: initial; -margin-right: unset; -- -
La valeur de cette propriété peut être le mot-clé auto, une longueur (<length>) ou un pourcentage (<percentage>).
<length>px) ou en fonction de la taille du texte (em) ou être relative à la taille de la zone d'affichage (viewport) (vh).<percentage>autoauto. Le tableau suivant précise les différents cas :
- | Valeur de {{cssxref("display")}} | -Valeur de {{cssxref("float")}} | -Valeur de {{cssxref("position")}} | -Valeur calculée pour auto |
- Commentaires | -
|---|---|---|---|---|
inline, inline-block, inline-table |
- n'importe laquelle | -static ou relative |
- 0 |
- Disposition en ligne | -
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
- n'importe laquelle | -static ou relative |
- 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer l'élément au sein de l'élément parent. |
- Disposition en bloc | -
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
- left ou right |
- static ou relative |
- 0 |
- Disposition en bloc avec les éléments flottants | -
n'importe quelle table-* sauf table-caption |
- n'importe laquelle | -n'importe laquelle | -0 |
- Les éléments table-* n'ont pas de marge, il faut utiliser {{cssxref("border-spacing")}} à la place. |
-
ni'mporte quelle autre sauf flex, inline-flex ou table-* |
- n'importe laquelle | -fixed ou absolute |
- 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer la boîte de bordure dans la zone de largeur disponible si elle fixée. |
- Positionnement absolu. | -
flex, inline-flex |
- n'importe laquelle | -n'importe laquelle | -0, sauf s'il reste de l'espace horizontal libre. Dans ce cas, l'espace restant sera distribué de façon équitable entre toutes les marges avec auto. |
- Boîtes flexibles. | -
.exemple {
- margin-right: 50%;
-}
-
-<p>Un grand rosier se trouvait à l’entrée du jardin ; - les roses qu’il portait étaient blanches, mais - trois jardiniers étaient en train de les peindre - en rouge. -</p> -<p class=exemple> - Alice s’avança pour les regarder, et, au moment où - elle approchait, elle en entendit un qui disait : - « Fais donc attention, Cinq, et ne m’éclabousse pas - ainsi avec ta peinture. » -</p> -<p> - « Ce n’est pas de ma faute, » dit Cinq d’un ton - bourru, « c’est Sept qui m’a poussé le coude. » -</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-margin', 'margin-right')}} | -{{Spec2('CSS3 Box')}} | -Pas de changement significatif. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-right')}} | -{{Spec2('CSS3 Transitions')}} | -margin-right peut désormais être animée. |
-
| {{SpecName('CSS3 Flexbox', '#item-margins', 'margin-right')}} | -{{Spec2('CSS3 Flexbox')}} | -Le comportement de margin-right est défini sur les éléments flexibles. |
-
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-right')}} | -{{Spec2('CSS2.1')}} | -L'effet sur les éléments en ligne (inline) est retiré. | -
| {{SpecName('CSS1', '#margin-right', 'margin-right')}} | -{{Spec2('CSS1')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.margin-right")}}
diff --git a/files/fr/web/css/margin-right/index.md b/files/fr/web/css/margin-right/index.md new file mode 100644 index 0000000000..cf82405f56 --- /dev/null +++ b/files/fr/web/css/margin-right/index.md @@ -0,0 +1,182 @@ +--- +title: margin-right +slug: Web/CSS/margin-right +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/margin-right +--- +La propriété margin-right d'un élément définit l'espace horizontal à droite qui formera la marge à droite. On peut avoir une marge droite négative.
Les marges des côtés droit et gauche de deux boîtes adjacentes peuvent fusionner entre elles. C'est ce qu'on appelle la fusion de marges.
+ +/* Valeur de longueur */ +/* Type <length> */ +margin-right: 20px; /* Une longueur absolue */ +margin-right: 1em; /* Une longueur relative à la taille du texte */ +margin-right: 5%; /* Une marge relative à la largeur + du bloc englobant */ + +/* Valeur avec un mot-clé */ +margin-right: auto; + +/* Valeurs globales */ +margin-right: inherit; +margin-right: initial; +margin-right: unset; ++ +
La valeur de cette propriété peut être le mot-clé auto, une longueur (<length>) ou un pourcentage (<percentage>).
<length>px) ou en fonction de la taille du texte (em) ou être relative à la taille de la zone d'affichage (viewport) (vh).<percentage>autoauto. Le tableau suivant précise les différents cas :
+ | Valeur de {{cssxref("display")}} | +Valeur de {{cssxref("float")}} | +Valeur de {{cssxref("position")}} | +Valeur calculée pour auto |
+ Commentaires | +
|---|---|---|---|---|
inline, inline-block, inline-table |
+ n'importe laquelle | +static ou relative |
+ 0 |
+ Disposition en ligne | +
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
+ n'importe laquelle | +static ou relative |
+ 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer l'élément au sein de l'élément parent. |
+ Disposition en bloc | +
block, inline, inline-block, block, table, inline-table, list-item, table-caption |
+ left ou right |
+ static ou relative |
+ 0 |
+ Disposition en bloc avec les éléments flottants | +
n'importe quelle table-* sauf table-caption |
+ n'importe laquelle | +n'importe laquelle | +0 |
+ Les éléments table-* n'ont pas de marge, il faut utiliser {{cssxref("border-spacing")}} à la place. |
+
ni'mporte quelle autre sauf flex, inline-flex ou table-* |
+ n'importe laquelle | +fixed ou absolute |
+ 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer la boîte de bordure dans la zone de largeur disponible si elle fixée. |
+ Positionnement absolu. | +
flex, inline-flex |
+ n'importe laquelle | +n'importe laquelle | +0, sauf s'il reste de l'espace horizontal libre. Dans ce cas, l'espace restant sera distribué de façon équitable entre toutes les marges avec auto. |
+ Boîtes flexibles. | +
.exemple {
+ margin-right: 50%;
+}
+
+<p>Un grand rosier se trouvait à l’entrée du jardin ; + les roses qu’il portait étaient blanches, mais + trois jardiniers étaient en train de les peindre + en rouge. +</p> +<p class=exemple> + Alice s’avança pour les regarder, et, au moment où + elle approchait, elle en entendit un qui disait : + « Fais donc attention, Cinq, et ne m’éclabousse pas + ainsi avec ta peinture. » +</p> +<p> + « Ce n’est pas de ma faute, » dit Cinq d’un ton + bourru, « c’est Sept qui m’a poussé le coude. » +</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-margin', 'margin-right')}} | +{{Spec2('CSS3 Box')}} | +Pas de changement significatif. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-right')}} | +{{Spec2('CSS3 Transitions')}} | +margin-right peut désormais être animée. |
+
| {{SpecName('CSS3 Flexbox', '#item-margins', 'margin-right')}} | +{{Spec2('CSS3 Flexbox')}} | +Le comportement de margin-right est défini sur les éléments flexibles. |
+
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-right')}} | +{{Spec2('CSS2.1')}} | +L'effet sur les éléments en ligne (inline) est retiré. | +
| {{SpecName('CSS1', '#margin-right', 'margin-right')}} | +{{Spec2('CSS1')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-right")}}
diff --git a/files/fr/web/css/margin-top/index.html b/files/fr/web/css/margin-top/index.html deleted file mode 100644 index c122bc0e39..0000000000 --- a/files/fr/web/css/margin-top/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: margin-top -slug: Web/CSS/margin-top -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/margin-top ---- -La propriété margin-top définit l'espace vertical pour la marge appliquée en haut de l'élément. Une valeur négative peut être utilisée.
Cette propriété n'a aucun effet sur les éléments non-remplacés en ligne (inline) tels que {{HTMLElement("tt")}} ou {{HTMLElement("span")}}.
- -/* Valeurs de longueur */ -/* Type <length> */ -margin-top: 10px; /* Une longueur absolue */ -margin-top: 1em; /* Une longueur proportionnelle à la taille du texte */ -margin-top: 5%; /* Une marge relative à la largeur */ - /* du bloc englobant le plus proche */ - -/* Valeur avec un mot-clé */ -margin-top: auto; - -/* Valeurs globales */ -margin-top: inherit; -margin-top: initial; -margin-top: unset; -- -
Le mot-clé auto ou une valeur de longueur (<length>) ou de pourcentage (<percentage>).
<length><percentage>autodiv {
- background-color: blue;
- background-clip: border-box;
- width: 50px;
- height: 2em;
-}
-.exemple {
- margin-top: 3em;
- background-color: gold;
- background-clip: border-box;
-}
-
-<div></div> -<p class=exemple> - C’est ce qui arriva en effet, et bien plus tôt - qu’elle ne s’y attendait. Elle n’avait pas bu - la moitié de la bouteille, que sa tête touchait - au plafond et qu’elle fut forcée de se baisser - pour ne pas se casser le cou.</p>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-margin', 'margin-top')}} | -{{Spec2('CSS3 Box')}} | -Aucun changement significatif | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-top')}} | -{{Spec2('CSS3 Transitions')}} | -margin-top peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-top')}} | -{{Spec2('CSS2.1')}} | -L'effet sur les éléments en ligne (inline) est retiré. | -
| {{SpecName('CSS1', '#margin-top', 'margin-top')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin-top")}}
diff --git a/files/fr/web/css/margin-top/index.md b/files/fr/web/css/margin-top/index.md new file mode 100644 index 0000000000..c122bc0e39 --- /dev/null +++ b/files/fr/web/css/margin-top/index.md @@ -0,0 +1,121 @@ +--- +title: margin-top +slug: Web/CSS/margin-top +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/margin-top +--- +La propriété margin-top définit l'espace vertical pour la marge appliquée en haut de l'élément. Une valeur négative peut être utilisée.
Cette propriété n'a aucun effet sur les éléments non-remplacés en ligne (inline) tels que {{HTMLElement("tt")}} ou {{HTMLElement("span")}}.
+ +/* Valeurs de longueur */ +/* Type <length> */ +margin-top: 10px; /* Une longueur absolue */ +margin-top: 1em; /* Une longueur proportionnelle à la taille du texte */ +margin-top: 5%; /* Une marge relative à la largeur */ + /* du bloc englobant le plus proche */ + +/* Valeur avec un mot-clé */ +margin-top: auto; + +/* Valeurs globales */ +margin-top: inherit; +margin-top: initial; +margin-top: unset; ++ +
Le mot-clé auto ou une valeur de longueur (<length>) ou de pourcentage (<percentage>).
<length><percentage>autodiv {
+ background-color: blue;
+ background-clip: border-box;
+ width: 50px;
+ height: 2em;
+}
+.exemple {
+ margin-top: 3em;
+ background-color: gold;
+ background-clip: border-box;
+}
+
+<div></div> +<p class=exemple> + C’est ce qui arriva en effet, et bien plus tôt + qu’elle ne s’y attendait. Elle n’avait pas bu + la moitié de la bouteille, que sa tête touchait + au plafond et qu’elle fut forcée de se baisser + pour ne pas se casser le cou.</p>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-margin', 'margin-top')}} | +{{Spec2('CSS3 Box')}} | +Aucun changement significatif | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin-top')}} | +{{Spec2('CSS3 Transitions')}} | +margin-top peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-top')}} | +{{Spec2('CSS2.1')}} | +L'effet sur les éléments en ligne (inline) est retiré. | +
| {{SpecName('CSS1', '#margin-top', 'margin-top')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin-top")}}
diff --git a/files/fr/web/css/margin-trim/index.html b/files/fr/web/css/margin-trim/index.html deleted file mode 100644 index fda619b033..0000000000 --- a/files/fr/web/css/margin-trim/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: margin-trim -slug: Web/CSS/margin-trim -tags: - - CSS - - Draft - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/margin-trim ---- -La propriété margin-trim permet à un conteneur de rogner les marges de ses éléments enfants qui sont adjacentes aux bords du conteneur.
nonein-flowPour les boîtes du conteneur et qui sont dans le flux, les marges sur l'axe de bloc et qui sont adjacentes aux bords du conteneur sont tronquées.
- -Les marges fusionnées avec de telles marges sont également tronquées.
-all| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box", "#margin-trim", "margin-trim")}} | -{{Spec2("CSS3 Box")}} | -Définition initiale. | -
{{CSSInfo}}
- -{{Compat("css.properties.margin-trim")}}
- -La propriété margin-trim permet à un conteneur de rogner les marges de ses éléments enfants qui sont adjacentes aux bords du conteneur.
nonein-flowPour les boîtes du conteneur et qui sont dans le flux, les marges sur l'axe de bloc et qui sont adjacentes aux bords du conteneur sont tronquées.
+ +Les marges fusionnées avec de telles marges sont également tronquées.
+all| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box", "#margin-trim", "margin-trim")}} | +{{Spec2("CSS3 Box")}} | +Définition initiale. | +
{{CSSInfo}}
+ +{{Compat("css.properties.margin-trim")}}
+ +La propriété margin définit la taille des marges sur les quatre côtés de l'élément. C'est une propriété raccourcie qui permet de manipuler les autres propriétés de marges : {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} et {{cssxref("margin-left")}}.
Il est possible d'utiliser des valeurs négatives pour chacun des côtés.
- -Les marges haute et basse n'ont aucun effet sur les élements en ligne (inline) qui ne sont pas remplacés (par exemple les {{HTMLElement("span")}} ou {{HTMLElement("code")}}).
- -Note : Les marges créent un espace supplémentaire à l'extérieur de l'élément. Le « remplissage » ({{cssxref("padding")}}) permet quant à lui de créer un espace supplémentaire à l'intérieur de l'élément.
-/* La propriété s'applique aux quatre côtés */ -margin: 1em; - -/* vertical | horizontal */ -margin: 5% auto; - -/* haut | horizontal | bas */ -margin: 1em auto 2em; - -/* haut | droit | bas | gauche */ -margin: 2px 1em 0 auto; - -/* Valeurs globales */ -margin: inherit; -margin: initial; -margin: unset; -- -
La propriété margin peut être définie grâce à une, deux, trois ou quatre valeurs. Chaque valeur est une valeur de type {{cssxref("<length>")}} ou de type {{cssxref("<percentage>")}} ou est le mot-clé auto. Les valeurs négatives permette de dessiner l'élément plus près de ses voisins que ne l'aurait permis la valeur par défaut.
Cette propriété peut accepter une, deux, trois ou quatre valeurs avec les types suivants :
- -<length><percentage>autoauto est remplacé par une valeur adaptée (il peut être utilisé pour centrer les blocs, par exemple, div { width:50%; margin:0 auto; } permet de centrer un conteneur div horizontalement)..ex1 {
- margin: auto;
- background: gold;
- width: 66%;
-}
-.ex2 {
- margin: 20px 0px 0 -20px;
- background: gold;
- width: 66%;
-}
-
-<div class="ex1"> - margin: auto; - background: gold; - width: 66%; -</div> -<div class="ex2"> - margin: 20px 0px 0px -20px; - background: gold; - width: 66%; -</div>- -
{{EmbedLiveSample('Exemple_simple')}}
- -margin: 5%; /* tous les côtés avec une marge de 5% */ -margin: 10px; /* tous les côtés avec une marge de 10px */ - -margin: 1.6em 20px; /* haut et bas à 1.6em */ - /* gauche et droite à 20px */ - -margin: 10px 3% 1em; /* haut à 10px, gauche et droite à 3% */ - /* bas à 1em */ - -margin: 10px 3px 30px 5px; /* haut à 10px, droite à 3px */ - /* bas à 30px, gauche à 5px */ - -margin: 1em auto; /* marge de 1em en haut et en bas */ - /* la boîte est centrée horizontalement */ - -margin: auto; /* boîte centrée horizontalement */ - /* marge nulle en haut et en bas */ -- -
Afin de centrer un élément horizontalement, avec un navigateur « moderne » on peut utiliser {{cssxref("display")}}: flex; {{cssxref("justify-content")}}: center;.
Les anciens navigateurs comme IE8-9 ne gèrent pas ces valeurs. Aussi, il faudra utiliser margin: 0 auto pour centrer un élément au sein de son parent.
Les marges haute et basse des éléments sont parfois fusionnées en une seule marge qui est égale à la plus grande des deux marges. Pour plus d'informations, lire l'article sur la fusion des marges.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#margin', 'margin')}} | -{{Spec2('CSS3 Box')}} | -Aucun changement significatif. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin')}} | -{{Spec2('CSS3 Transitions')}} | -margin peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin')}} | -{{Spec2('CSS2.1')}} | -Retrait de l'effet sur les éléments en ligne (inline). | -
| {{SpecName('CSS1', '#margin', 'margin')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.margin")}}
- -La propriété margin définit la taille des marges sur les quatre côtés de l'élément. C'est une propriété raccourcie qui permet de manipuler les autres propriétés de marges : {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} et {{cssxref("margin-left")}}.
Il est possible d'utiliser des valeurs négatives pour chacun des côtés.
+ +Les marges haute et basse n'ont aucun effet sur les élements en ligne (inline) qui ne sont pas remplacés (par exemple les {{HTMLElement("span")}} ou {{HTMLElement("code")}}).
+ +Note : Les marges créent un espace supplémentaire à l'extérieur de l'élément. Le « remplissage » ({{cssxref("padding")}}) permet quant à lui de créer un espace supplémentaire à l'intérieur de l'élément.
+/* La propriété s'applique aux quatre côtés */ +margin: 1em; + +/* vertical | horizontal */ +margin: 5% auto; + +/* haut | horizontal | bas */ +margin: 1em auto 2em; + +/* haut | droit | bas | gauche */ +margin: 2px 1em 0 auto; + +/* Valeurs globales */ +margin: inherit; +margin: initial; +margin: unset; ++ +
La propriété margin peut être définie grâce à une, deux, trois ou quatre valeurs. Chaque valeur est une valeur de type {{cssxref("<length>")}} ou de type {{cssxref("<percentage>")}} ou est le mot-clé auto. Les valeurs négatives permette de dessiner l'élément plus près de ses voisins que ne l'aurait permis la valeur par défaut.
Cette propriété peut accepter une, deux, trois ou quatre valeurs avec les types suivants :
+ +<length><percentage>autoauto est remplacé par une valeur adaptée (il peut être utilisé pour centrer les blocs, par exemple, div { width:50%; margin:0 auto; } permet de centrer un conteneur div horizontalement)..ex1 {
+ margin: auto;
+ background: gold;
+ width: 66%;
+}
+.ex2 {
+ margin: 20px 0px 0 -20px;
+ background: gold;
+ width: 66%;
+}
+
+<div class="ex1"> + margin: auto; + background: gold; + width: 66%; +</div> +<div class="ex2"> + margin: 20px 0px 0px -20px; + background: gold; + width: 66%; +</div>+ +
{{EmbedLiveSample('Exemple_simple')}}
+ +margin: 5%; /* tous les côtés avec une marge de 5% */ +margin: 10px; /* tous les côtés avec une marge de 10px */ + +margin: 1.6em 20px; /* haut et bas à 1.6em */ + /* gauche et droite à 20px */ + +margin: 10px 3% 1em; /* haut à 10px, gauche et droite à 3% */ + /* bas à 1em */ + +margin: 10px 3px 30px 5px; /* haut à 10px, droite à 3px */ + /* bas à 30px, gauche à 5px */ + +margin: 1em auto; /* marge de 1em en haut et en bas */ + /* la boîte est centrée horizontalement */ + +margin: auto; /* boîte centrée horizontalement */ + /* marge nulle en haut et en bas */ ++ +
Afin de centrer un élément horizontalement, avec un navigateur « moderne » on peut utiliser {{cssxref("display")}}: flex; {{cssxref("justify-content")}}: center;.
Les anciens navigateurs comme IE8-9 ne gèrent pas ces valeurs. Aussi, il faudra utiliser margin: 0 auto pour centrer un élément au sein de son parent.
Les marges haute et basse des éléments sont parfois fusionnées en une seule marge qui est égale à la plus grande des deux marges. Pour plus d'informations, lire l'article sur la fusion des marges.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#margin', 'margin')}} | +{{Spec2('CSS3 Box')}} | +Aucun changement significatif. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'margin')}} | +{{Spec2('CSS3 Transitions')}} | +margin peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'box.html#margin-properties', 'margin')}} | +{{Spec2('CSS2.1')}} | +Retrait de l'effet sur les éléments en ligne (inline). | +
| {{SpecName('CSS1', '#margin', 'margin')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.margin")}}
+ +La propriété CSS mask-border-mode indique le mode de fusion utilisé pour le masque de bordure.
/* Valeurs avec un mot-clé */ -mask-border-mode: luminance; -mask-border-mode: alpha; - -/* Valeurs globales */ -mask-border-mode: inherit; -mask-border-mode: initial; -mask-border-mode: unset; -- -
luminancealpha| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-mode", "mask-border-mode")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -TBD
diff --git a/files/fr/web/css/mask-border-mode/index.md b/files/fr/web/css/mask-border-mode/index.md new file mode 100644 index 0000000000..fbd6852427 --- /dev/null +++ b/files/fr/web/css/mask-border-mode/index.md @@ -0,0 +1,63 @@ +--- +title: mask-border-mode +slug: Web/CSS/mask-border-mode +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-border-mode +--- +La propriété CSS mask-border-mode indique le mode de fusion utilisé pour le masque de bordure.
/* Valeurs avec un mot-clé */ +mask-border-mode: luminance; +mask-border-mode: alpha; + +/* Valeurs globales */ +mask-border-mode: inherit; +mask-border-mode: initial; +mask-border-mode: unset; ++ +
luminancealpha| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-mode", "mask-border-mode")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +TBD
diff --git a/files/fr/web/css/mask-border-outset/index.html b/files/fr/web/css/mask-border-outset/index.html deleted file mode 100644 index 3174b76051..0000000000 --- a/files/fr/web/css/mask-border-outset/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: mask-border-outset -slug: Web/CSS/mask-border-outset -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-border-outset ---- -La propriété CSS mask-border-outset indique la distance entre le masque de la bordure et la boîte de la bordure.
/* Valeur de longueur */ -/* Type <length> */ -mask-border-outset: 1rem; - -/* Valeur numérique */ -/* Type <number> */ -mask-border-outset: 1.5; - -/* Décalage vertical | horizontal */ -mask-border-outset: 1 1.2; - -/* haut | horizontal | bas */ -mask-border-outset: 30px 2 45px; - -/* haut | droit | bas | gauche */ -mask-border-outset: 7px 12px 14px 5px; - -/* Valeurs globales */ -mask-border-outset: inherit; -mask-border-outset: initial; -mask-border-outset: unset; -- -
La propriété mask-border-outset peut être utilisée avec une, deux, trois ou quatre valeurs. Chaque valeur peut être de type {{cssxref("<length>")}} ou {{cssxref("<number>")}}. Les valeurs négatives ne sont pas autorisées.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-outset", "mask-border-outset")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
TBD
diff --git a/files/fr/web/css/mask-border-outset/index.md b/files/fr/web/css/mask-border-outset/index.md new file mode 100644 index 0000000000..3174b76051 --- /dev/null +++ b/files/fr/web/css/mask-border-outset/index.md @@ -0,0 +1,85 @@ +--- +title: mask-border-outset +slug: Web/CSS/mask-border-outset +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-border-outset +--- +La propriété CSS mask-border-outset indique la distance entre le masque de la bordure et la boîte de la bordure.
/* Valeur de longueur */ +/* Type <length> */ +mask-border-outset: 1rem; + +/* Valeur numérique */ +/* Type <number> */ +mask-border-outset: 1.5; + +/* Décalage vertical | horizontal */ +mask-border-outset: 1 1.2; + +/* haut | horizontal | bas */ +mask-border-outset: 30px 2 45px; + +/* haut | droit | bas | gauche */ +mask-border-outset: 7px 12px 14px 5px; + +/* Valeurs globales */ +mask-border-outset: inherit; +mask-border-outset: initial; +mask-border-outset: unset; ++ +
La propriété mask-border-outset peut être utilisée avec une, deux, trois ou quatre valeurs. Chaque valeur peut être de type {{cssxref("<length>")}} ou {{cssxref("<number>")}}. Les valeurs négatives ne sont pas autorisées.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-outset", "mask-border-outset")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
TBD
diff --git a/files/fr/web/css/mask-border-repeat/index.html b/files/fr/web/css/mask-border-repeat/index.html deleted file mode 100644 index dce62d1c3e..0000000000 --- a/files/fr/web/css/mask-border-repeat/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: mask-border-repeat -slug: Web/CSS/mask-border-repeat -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-border-repeat ---- -La propriété CSS mask-border-repeat indique la façon dont les régions du bord du masque sont ajustées pour correspondre aux dimensions de la bordure de l'élément.
/* Valeurs avec un mot-clé */ -mask-border-repeat: stretch; -mask-border-repeat: repeat; -mask-border-repeat: round; -mask-border-repeat: space; - -/* vertical | horizontal */ -mask-border-repeat: round stretch; - -/* Valeurs globales */ -mask-border-repeat: inherit; -mask-border-repeat: initial; -mask-border-repeat: unset; -- -
La propriété mask-border-repeat peut être utilisée avec une ou deux valeurs parmi celles de la liste ci-après.
stretchrepeatroundspace| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-repeat", "mask-border-repeat")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
TBD
diff --git a/files/fr/web/css/mask-border-repeat/index.md b/files/fr/web/css/mask-border-repeat/index.md new file mode 100644 index 0000000000..dce62d1c3e --- /dev/null +++ b/files/fr/web/css/mask-border-repeat/index.md @@ -0,0 +1,79 @@ +--- +title: mask-border-repeat +slug: Web/CSS/mask-border-repeat +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-border-repeat +--- +La propriété CSS mask-border-repeat indique la façon dont les régions du bord du masque sont ajustées pour correspondre aux dimensions de la bordure de l'élément.
/* Valeurs avec un mot-clé */ +mask-border-repeat: stretch; +mask-border-repeat: repeat; +mask-border-repeat: round; +mask-border-repeat: space; + +/* vertical | horizontal */ +mask-border-repeat: round stretch; + +/* Valeurs globales */ +mask-border-repeat: inherit; +mask-border-repeat: initial; +mask-border-repeat: unset; ++ +
La propriété mask-border-repeat peut être utilisée avec une ou deux valeurs parmi celles de la liste ci-après.
stretchrepeatroundspace| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-repeat", "mask-border-repeat")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
TBD
diff --git a/files/fr/web/css/mask-border-slice/index.html b/files/fr/web/css/mask-border-slice/index.html deleted file mode 100644 index c0b1482f6d..0000000000 --- a/files/fr/web/css/mask-border-slice/index.html +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: mask-border-slice -slug: Web/CSS/mask-border-slice -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-border-slice ---- -La propriété CSS mask-border-slice permet de découper l'image source, fournie par {{cssxref("mask-border-source")}}, en différentes régions. Ces régions sont utilisées pour former les composants du masque de la bordure.
Cette découpe permet d'obtenir neuf régions au total : quatre pour les coins, quatre pour les côtés et une région pour le centre. Cette découpe est effectuée selon 4 lignes qui sont écartées d'une certaine distance des bords de l'image.
- - - -Le diagramme ci-avant illustre l'emplacement de chaque région.
- -fill est utilisé.Les propriétés {{cssxref("mask-border-repeat")}}, {{cssxref("mask-border-width")}} et {{cssxref("mask-border-outset")}} déterminent la façon dont ces régions sont utilisées pour construire le masque final.
- -/* Une valeur pour tous les côtés */ -mask-border-slice: 30%; - -/* vertical | horizontal */ -mask-border-slice: 10% 30%; - -/* haut | horizontal | bas */ -mask-border-slice: 30 30% 45; - -/* haut | droit | bas | gauche */ -mask-border-slice: 7 12 14 5; - -/* Utilisation du mot-clé `fill` */ -mask-border-slice: 10% fill 7 12; - -/* Valeurs globales */ -mask-border-slice: inherit; -mask-border-slice: initial; -mask-border-slice: unset; -- -
La propriété mask-border-slice peut être définie avec une, deux, trois ou quatre valeurs <number-percentage> qui représentent la distance entre le trait de coupe et le bord de l'image. Les valeurs négatives sont invalides et les valeurs supérieures à la dimension de l'image sur cet axe sont ramenées à 100%.
La valeur optionnelle fill peut être utilisée et placée à n'importe quel endroit de la déclaration.
fill| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-slice", "mask-border-slice")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -TBD
- -La propriété CSS mask-border-slice permet de découper l'image source, fournie par {{cssxref("mask-border-source")}}, en différentes régions. Ces régions sont utilisées pour former les composants du masque de la bordure.
Cette découpe permet d'obtenir neuf régions au total : quatre pour les coins, quatre pour les côtés et une région pour le centre. Cette découpe est effectuée selon 4 lignes qui sont écartées d'une certaine distance des bords de l'image.
+ + + +Le diagramme ci-avant illustre l'emplacement de chaque région.
+ +fill est utilisé.Les propriétés {{cssxref("mask-border-repeat")}}, {{cssxref("mask-border-width")}} et {{cssxref("mask-border-outset")}} déterminent la façon dont ces régions sont utilisées pour construire le masque final.
+ +/* Une valeur pour tous les côtés */ +mask-border-slice: 30%; + +/* vertical | horizontal */ +mask-border-slice: 10% 30%; + +/* haut | horizontal | bas */ +mask-border-slice: 30 30% 45; + +/* haut | droit | bas | gauche */ +mask-border-slice: 7 12 14 5; + +/* Utilisation du mot-clé `fill` */ +mask-border-slice: 10% fill 7 12; + +/* Valeurs globales */ +mask-border-slice: inherit; +mask-border-slice: initial; +mask-border-slice: unset; ++ +
La propriété mask-border-slice peut être définie avec une, deux, trois ou quatre valeurs <number-percentage> qui représentent la distance entre le trait de coupe et le bord de l'image. Les valeurs négatives sont invalides et les valeurs supérieures à la dimension de l'image sur cet axe sont ramenées à 100%.
La valeur optionnelle fill peut être utilisée et placée à n'importe quel endroit de la déclaration.
fill| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-slice", "mask-border-slice")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +TBD
+ +La propriété CSS mask-border-source définit l'image à utiliser pour créer le masque de bordure d'un élément.
C'est la propriété {{cssxref("mask-border-slice")}} qui est utilisée afin de découper l'image en tranches/régions ensuite appliquées dynamiquement pour créer le masque final.
- -/* Valeur avec un mot-clé */ -mask-border-source: none; - -/* Valeurs de type <image> */ -mask-border-source: url(image.jpg); -mask-border-source: linear-gradient(to top, red, yellow); - -/* Valeurs globales */ -mask-border-source: inherit; -mask-border-source: initial; -mask-border-source: unset; -- -
noneVoir la page {{cssxref("mask-border")}}.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-source", "mask-border-source")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -TBD
diff --git a/files/fr/web/css/mask-border-source/index.md b/files/fr/web/css/mask-border-source/index.md new file mode 100644 index 0000000000..68cd550c2b --- /dev/null +++ b/files/fr/web/css/mask-border-source/index.md @@ -0,0 +1,72 @@ +--- +title: mask-border-source +slug: Web/CSS/mask-border-source +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-border-source +--- +La propriété CSS mask-border-source définit l'image à utiliser pour créer le masque de bordure d'un élément.
C'est la propriété {{cssxref("mask-border-slice")}} qui est utilisée afin de découper l'image en tranches/régions ensuite appliquées dynamiquement pour créer le masque final.
+ +/* Valeur avec un mot-clé */ +mask-border-source: none; + +/* Valeurs de type <image> */ +mask-border-source: url(image.jpg); +mask-border-source: linear-gradient(to top, red, yellow); + +/* Valeurs globales */ +mask-border-source: inherit; +mask-border-source: initial; +mask-border-source: unset; ++ +
noneVoir la page {{cssxref("mask-border")}}.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-source", "mask-border-source")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +TBD
diff --git a/files/fr/web/css/mask-border-width/index.html b/files/fr/web/css/mask-border-width/index.html deleted file mode 100644 index 9cd78bde87..0000000000 --- a/files/fr/web/css/mask-border-width/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: mask-border-width -slug: Web/CSS/mask-border-width -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-border-width ---- -La propriété CSS mask-border-width définit la largeur du masque de bordure d'un élément.
/* Valeur avec un mot-clé */ -mask-border-width: auto; - -/* Valeur de longueur */ -/* Type <length> */ -mask-border-width: 1rem; - -/* Valeur proportionnelle */ -/* Type <percentage> */ -mask-border-width: 25%; - -/* Valeur numérique */ -/* Type <number> */ -mask-border-width: 3; - -/* vertical | horizontal */ -mask-border-width: 2em 3em; - -/* haut | horizontal | bas */ -mask-border-width: 5% 15% 10%; - -/* haut | droit | bas | gauche */ -mask-border-width: 5% 2em 10% auto; - -/* Valeurs globales */ -mask-border-width: inherit; -mask-border-width: initial; -mask-border-width: unset; -- -
La propriété mask-border-width peut être définie avec une, deux, trois ou quatre valeurs parmi celles de la liste ci-après.
<length-percentage><number>autoborder-width qui est utilisée à la place.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-width", "mask-border-width")}} | -{{Spec2("CSS Masks")}} | -Définition intiale. | -
{{cssinfo}}
- -TBD
diff --git a/files/fr/web/css/mask-border-width/index.md b/files/fr/web/css/mask-border-width/index.md new file mode 100644 index 0000000000..9cd78bde87 --- /dev/null +++ b/files/fr/web/css/mask-border-width/index.md @@ -0,0 +1,94 @@ +--- +title: mask-border-width +slug: Web/CSS/mask-border-width +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-border-width +--- +La propriété CSS mask-border-width définit la largeur du masque de bordure d'un élément.
/* Valeur avec un mot-clé */ +mask-border-width: auto; + +/* Valeur de longueur */ +/* Type <length> */ +mask-border-width: 1rem; + +/* Valeur proportionnelle */ +/* Type <percentage> */ +mask-border-width: 25%; + +/* Valeur numérique */ +/* Type <number> */ +mask-border-width: 3; + +/* vertical | horizontal */ +mask-border-width: 2em 3em; + +/* haut | horizontal | bas */ +mask-border-width: 5% 15% 10%; + +/* haut | droit | bas | gauche */ +mask-border-width: 5% 2em 10% auto; + +/* Valeurs globales */ +mask-border-width: inherit; +mask-border-width: initial; +mask-border-width: unset; ++ +
La propriété mask-border-width peut être définie avec une, deux, trois ou quatre valeurs parmi celles de la liste ci-après.
<length-percentage><number>autoborder-width qui est utilisée à la place.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#propdef-mask-border-width", "mask-border-width")}} | +{{Spec2("CSS Masks")}} | +Définition intiale. | +
{{cssinfo}}
+ +TBD
diff --git a/files/fr/web/css/mask-border/index.html b/files/fr/web/css/mask-border/index.html deleted file mode 100644 index f2faaaf334..0000000000 --- a/files/fr/web/css/mask-border/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: mask-border -slug: Web/CSS/mask-border -translation_of: Web/CSS/mask-border -browser-compat: css.properties.mask-border ---- -La propriété CSS mask-border permet de créer un masque le long de la bordure d'un élément.
Cette propriété est une propriété raccourcie pour les propriétés {{cssxref("mask-border-source")}}, {{cssxref("mask-border-slice")}}, {{cssxref("mask-border-width")}}, {{cssxref("mask-border-outset")}}, {{cssxref("mask-border-repeat")}} et {{cssxref("mask-border-mode")}}. Comme pour l'ensemble des propriétés raccourcies, toutes les propriétés qui ne sont pas explicitement utilisées dans la règle utilisent leur valeur initiale.
- -/* source | slice */
-mask-border: url('border-mask.png') 25;
-
-/* source | slice | repeat */
-mask-border: url('border-mask.png') 25 space;
-
-/* source | slice | width */
-mask-border: url('border-mask.png') 25 / 35px;
-
-/* source | slice | width | outset | repeat | mode */
-mask-border: url('border-mask.png') 25 / 35px / 12px space alpha;
-
-
-<'mask-border-source'><'mask-border-slice'><'mask-border-width'><'mask-border-outset'><'mask-border-repeat'><'mask-border-mode'>Dans cet exemple, on utilise un masque en losange. L'image source utilisée est un fichier PNG de 90 pixels de long et de large :
- -
<div id="bitmap"> - Cet élément est entouré d'un masque de bordure - matriciel. C'est pas mal. -</div>- -
Pour avoir un seul losange, on divise le carré en 3 (avec la valeur 30). On utilise la valeur round pour que le masque soit réparti également de part et d'autre.
div {
- width: 200px;
- background-color: lavender;
- border: 18px solid salmon;
- padding: 10px;
-
- mask-border:
- url("https://mdn.mozillademos.org/files/15836/mask-border-diamonds.png") /* source */
- 30 / /* slice */
- 36px 18px /* width */
- round; /* repeat */
-}
-
-
-{{EmbedLiveSample("Image_matricielle_(bitmap)")}}
- -{{Specifications}}
- -{{Compat}}
\ No newline at end of file diff --git a/files/fr/web/css/mask-border/index.md b/files/fr/web/css/mask-border/index.md new file mode 100644 index 0000000000..f2faaaf334 --- /dev/null +++ b/files/fr/web/css/mask-border/index.md @@ -0,0 +1,92 @@ +--- +title: mask-border +slug: Web/CSS/mask-border +translation_of: Web/CSS/mask-border +browser-compat: css.properties.mask-border +--- +La propriété CSS mask-border permet de créer un masque le long de la bordure d'un élément.
Cette propriété est une propriété raccourcie pour les propriétés {{cssxref("mask-border-source")}}, {{cssxref("mask-border-slice")}}, {{cssxref("mask-border-width")}}, {{cssxref("mask-border-outset")}}, {{cssxref("mask-border-repeat")}} et {{cssxref("mask-border-mode")}}. Comme pour l'ensemble des propriétés raccourcies, toutes les propriétés qui ne sont pas explicitement utilisées dans la règle utilisent leur valeur initiale.
+ +/* source | slice */
+mask-border: url('border-mask.png') 25;
+
+/* source | slice | repeat */
+mask-border: url('border-mask.png') 25 space;
+
+/* source | slice | width */
+mask-border: url('border-mask.png') 25 / 35px;
+
+/* source | slice | width | outset | repeat | mode */
+mask-border: url('border-mask.png') 25 / 35px / 12px space alpha;
+
+
+<'mask-border-source'><'mask-border-slice'><'mask-border-width'><'mask-border-outset'><'mask-border-repeat'><'mask-border-mode'>Dans cet exemple, on utilise un masque en losange. L'image source utilisée est un fichier PNG de 90 pixels de long et de large :
+ +
<div id="bitmap"> + Cet élément est entouré d'un masque de bordure + matriciel. C'est pas mal. +</div>+ +
Pour avoir un seul losange, on divise le carré en 3 (avec la valeur 30). On utilise la valeur round pour que le masque soit réparti également de part et d'autre.
div {
+ width: 200px;
+ background-color: lavender;
+ border: 18px solid salmon;
+ padding: 10px;
+
+ mask-border:
+ url("https://mdn.mozillademos.org/files/15836/mask-border-diamonds.png") /* source */
+ 30 / /* slice */
+ 36px 18px /* width */
+ round; /* repeat */
+}
+
+
+{{EmbedLiveSample("Image_matricielle_(bitmap)")}}
+ +{{Specifications}}
+ +{{Compat}}
\ No newline at end of file diff --git a/files/fr/web/css/mask-clip/index.html b/files/fr/web/css/mask-clip/index.html deleted file mode 100644 index 9dad26fc80..0000000000 --- a/files/fr/web/css/mask-clip/index.html +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: mask-clip -slug: Web/CSS/mask-clip -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-clip ---- -La propriété mask-clip définit la zone qui est modifiée par un masque. Le contenu « peint » sera restreint à cette zone.
{{cssinfo}}
- -/* Valeurs de type <geometry-box> */ -mask-clip: content-box; -mask-clip: padding-box; -mask-clip: border-box; -mask-clip: margin-box; -mask-clip: fill-box; -mask-clip: stroke-box; -mask-clip: view-box; - -/* Valeurs avec un mot-clé */ -mask-clip: no-clip; - -/* Valeurs multiples */ -mask-clip: padding-box, no-clip; -mask-clip: view-box, fill-box, border-box; - -/* Mots-clés non-standards */ --webkit-mask-clip: border; --webkit-mask-clip: padding; --webkit-mask-clip: content; --webkit-mask-clip: text; - -/* Valeurs globales */ -mask-clip: inherit; -mask-clip: initial; -mask-clip: unset; -- -
Un ou plusieurs mots-clés parmi ceux listés ci-après, chacun séparé par une virgule.
- -content-boxpadding-boxborder-boxmargin-boxfill-boxstroke-boxview-boxviewBox est défini pour l'élément qui crée le viewport, la boîte de référence est positionnée à l'origine du système de coordonnées défini par l'attribut viewBox et les dimensions de la boîtes sont basées sur la hauteur et la largeur de l'attribut viewBox.no-clip#masked {
- width: 100px;
- height: 100px;
- background-color: #8cffa0;
- margin: 20px;
- border: 20px solid #8ca0ff;
- padding: 20px;
- -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
- mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
- -webkit-mask-size: 100% 100%;
- mask-size: 100% 100%;
- -webkit-mask-clip: border;
- mask-clip: border-box;
-}
-
-
-<div id="masked"></div> -- -
{{EmbedLiveSample("Exemples", "220px", "250px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-clip", "mask-clip")}} | -{{Spec2("CSS Masks")}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.mask-clip")}}
diff --git a/files/fr/web/css/mask-clip/index.md b/files/fr/web/css/mask-clip/index.md new file mode 100644 index 0000000000..9dad26fc80 --- /dev/null +++ b/files/fr/web/css/mask-clip/index.md @@ -0,0 +1,128 @@ +--- +title: mask-clip +slug: Web/CSS/mask-clip +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-clip +--- +La propriété mask-clip définit la zone qui est modifiée par un masque. Le contenu « peint » sera restreint à cette zone.
{{cssinfo}}
+ +/* Valeurs de type <geometry-box> */ +mask-clip: content-box; +mask-clip: padding-box; +mask-clip: border-box; +mask-clip: margin-box; +mask-clip: fill-box; +mask-clip: stroke-box; +mask-clip: view-box; + +/* Valeurs avec un mot-clé */ +mask-clip: no-clip; + +/* Valeurs multiples */ +mask-clip: padding-box, no-clip; +mask-clip: view-box, fill-box, border-box; + +/* Mots-clés non-standards */ +-webkit-mask-clip: border; +-webkit-mask-clip: padding; +-webkit-mask-clip: content; +-webkit-mask-clip: text; + +/* Valeurs globales */ +mask-clip: inherit; +mask-clip: initial; +mask-clip: unset; ++ +
Un ou plusieurs mots-clés parmi ceux listés ci-après, chacun séparé par une virgule.
+ +content-boxpadding-boxborder-boxmargin-boxfill-boxstroke-boxview-boxviewBox est défini pour l'élément qui crée le viewport, la boîte de référence est positionnée à l'origine du système de coordonnées défini par l'attribut viewBox et les dimensions de la boîtes sont basées sur la hauteur et la largeur de l'attribut viewBox.no-clip#masked {
+ width: 100px;
+ height: 100px;
+ background-color: #8cffa0;
+ margin: 20px;
+ border: 20px solid #8ca0ff;
+ padding: 20px;
+ -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
+ mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ -webkit-mask-clip: border;
+ mask-clip: border-box;
+}
+
+
+<div id="masked"></div> ++ +
{{EmbedLiveSample("Exemples", "220px", "250px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-clip", "mask-clip")}} | +{{Spec2("CSS Masks")}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-clip")}}
diff --git a/files/fr/web/css/mask-composite/index.html b/files/fr/web/css/mask-composite/index.html deleted file mode 100644 index 33b5bc3f26..0000000000 --- a/files/fr/web/css/mask-composite/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: mask-composite -slug: Web/CSS/mask-composite -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-composite ---- -La propriété mask-composite permet d'effectuer une opération de composition entre le masque situé sur la couche de l'élément et le masque présent en dessous.
/* Valeurs avec un mot-clé*/ -mask-composite: add; -mask-composite: subtract; -mask-composite: intersect; -mask-composite: exclude; - -/* Valeurs globales */ -mask-composite: inherit; -mask-composite: initial; -mask-composite: unset; -- -
Un ou plusieurs mots-clés parmi ceux listés ci-après, chacun séparé par une virgule.
- -La couche du masque de l'élément est appelée source et les couches inférieures sont appelées destination.
- -addsubtractintersectexclude#masked {
- width: 100px;
- height: 100px;
- background-color: #8cffa0;
- -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg),
- url(https://mdn.mozillademos.org/files/12676/star.svg);
- mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg),
- url(https://mdn.mozillademos.org/files/12676/star.svg);
- mask-size: 100% 100%;
- -webkit-mask-composite: add;
- mask-composite: add; /* peut-être modifiée dans la démo */
-}
-
-
-
-
-
-
-{{EmbedLiveSample("Exemples", "200px", "200px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-composite", "mask-composite")}} | -{{Spec2("CSS Masks")}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.mask-composite")}}
diff --git a/files/fr/web/css/mask-composite/index.md b/files/fr/web/css/mask-composite/index.md new file mode 100644 index 0000000000..33b5bc3f26 --- /dev/null +++ b/files/fr/web/css/mask-composite/index.md @@ -0,0 +1,109 @@ +--- +title: mask-composite +slug: Web/CSS/mask-composite +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-composite +--- +La propriété mask-composite permet d'effectuer une opération de composition entre le masque situé sur la couche de l'élément et le masque présent en dessous.
/* Valeurs avec un mot-clé*/ +mask-composite: add; +mask-composite: subtract; +mask-composite: intersect; +mask-composite: exclude; + +/* Valeurs globales */ +mask-composite: inherit; +mask-composite: initial; +mask-composite: unset; ++ +
Un ou plusieurs mots-clés parmi ceux listés ci-après, chacun séparé par une virgule.
+ +La couche du masque de l'élément est appelée source et les couches inférieures sont appelées destination.
+ +addsubtractintersectexclude#masked {
+ width: 100px;
+ height: 100px;
+ background-color: #8cffa0;
+ -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg),
+ url(https://mdn.mozillademos.org/files/12676/star.svg);
+ mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg),
+ url(https://mdn.mozillademos.org/files/12676/star.svg);
+ mask-size: 100% 100%;
+ -webkit-mask-composite: add;
+ mask-composite: add; /* peut-être modifiée dans la démo */
+}
+
+
+
+
+
+
+{{EmbedLiveSample("Exemples", "200px", "200px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-composite", "mask-composite")}} | +{{Spec2("CSS Masks")}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-composite")}}
diff --git a/files/fr/web/css/mask-image/index.html b/files/fr/web/css/mask-image/index.html deleted file mode 100644 index fcd14e7d53..0000000000 --- a/files/fr/web/css/mask-image/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: mask-image -slug: Web/CSS/mask-image -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-image ---- -La propriété CSS mask-image définit l'image qui sera utilisée comme masque pour un élément.
/* Valeur avec un mot-clé */ -mask-image: none; - -/* Valeur de type <mask-source> */ -mask-image: url(masks.svg#mask1); - -/* Valeurs de type <image> */ -mask-image: linear-gradient(rgba(0, 0, 0, 1.0), transparent); -mask-image: image(url(mask.png), skyblue); - -/* Gestion de plusieurs masques */ -mask-image: image(url(mask.png), skyblue, linear-gradient(rgba(0, 0, 0, 1.0), transparent); - -/* Valeurs globales */ -mask-image: inherit; -mask-image: initial; -mask-image: unset; -- -
none<mask-source>#masked {
- width: 100px;
- height: 100px;
- background-color: #8cffa0;
- -webkit-mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
- mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
-}
-
-
-<div id="masked"></div> -- -
{{EmbedLiveSample("Exemples", "100px", "100px",'', '', 'hide-codepen-jsfiddle') }}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-image", "mask-image")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mask-image")}}
diff --git a/files/fr/web/css/mask-image/index.md b/files/fr/web/css/mask-image/index.md new file mode 100644 index 0000000000..fcd14e7d53 --- /dev/null +++ b/files/fr/web/css/mask-image/index.md @@ -0,0 +1,94 @@ +--- +title: mask-image +slug: Web/CSS/mask-image +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-image +--- +La propriété CSS mask-image définit l'image qui sera utilisée comme masque pour un élément.
/* Valeur avec un mot-clé */ +mask-image: none; + +/* Valeur de type <mask-source> */ +mask-image: url(masks.svg#mask1); + +/* Valeurs de type <image> */ +mask-image: linear-gradient(rgba(0, 0, 0, 1.0), transparent); +mask-image: image(url(mask.png), skyblue); + +/* Gestion de plusieurs masques */ +mask-image: image(url(mask.png), skyblue, linear-gradient(rgba(0, 0, 0, 1.0), transparent); + +/* Valeurs globales */ +mask-image: inherit; +mask-image: initial; +mask-image: unset; ++ +
none<mask-source>#masked {
+ width: 100px;
+ height: 100px;
+ background-color: #8cffa0;
+ -webkit-mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
+ mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
+}
+
+
+<div id="masked"></div> ++ +
{{EmbedLiveSample("Exemples", "100px", "100px",'', '', 'hide-codepen-jsfiddle') }}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-image", "mask-image")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-image")}}
diff --git a/files/fr/web/css/mask-mode/index.html b/files/fr/web/css/mask-mode/index.html deleted file mode 100644 index f189643576..0000000000 --- a/files/fr/web/css/mask-mode/index.html +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: mask-mode -slug: Web/CSS/mask-mode -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-mode ---- -La propriété mask-mode détermine si le masque défini par {{cssxref("mask-image")}} est considéré comme un masque de luminance ou un masque alpha (transparence).
/* Valeurs avec un mot-clé */ -mask-mode: alpha; -mask-mode: luminance; -mask-mode: match-source; - -/* Gestion de plusieurs masques */ -mask-mode: alpha, match-source; - -/* Valeurs globales */ -mask-mode: inherit; -mask-mode: initial; -mask-mode: unset; -- -
La propriété mask-mode est définie avec un ou plusieurs mots-clés parmi ceux de la liste suivante, séparés par des virgules.
alphaluminancematch-sourceSi la propriété {{cssxref("mask-image")}} est de type <mask-source>, les valeurs de luminance de l'image doivent être utilisée comme valeurs pour le masque.
Si elle est de type {{cssxref("<image>")}}, ce seront les valeurs de transparence (canal alpha) qui seront utilisées.
-#masked {
- width: 100px;
- height: 100px;
- background: blue linear-gradient(red, blue);
- -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
- mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
- -webkit-mask-size: 100% 100%;
- mask-size: 100% 100%;
- -webkit-mask-mode: alpha;
- mask-mode: alpha;
-}
-
-
-<div id="masked"></div> -- -
{{EmbedLiveSample("Alpha", "110px", "130px")}}
- -#masked {
- width: 100px;
- height: 100px;
- background-color: #8cffa0;
- -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
- mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
- -webkit-mask-size: 100% 100%;
- mask-size: 100% 100%;
- -webkit-mask-mode: luminance;
- mask-mode: luminance;
-}
-
-
-<div id="masked"></div> -- -
{{EmbedLiveSample("Luminance", "110px", "130px")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-mode", "mask-mode")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mask-mode")}}
diff --git a/files/fr/web/css/mask-mode/index.md b/files/fr/web/css/mask-mode/index.md new file mode 100644 index 0000000000..f189643576 --- /dev/null +++ b/files/fr/web/css/mask-mode/index.md @@ -0,0 +1,129 @@ +--- +title: mask-mode +slug: Web/CSS/mask-mode +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-mode +--- +La propriété mask-mode détermine si le masque défini par {{cssxref("mask-image")}} est considéré comme un masque de luminance ou un masque alpha (transparence).
/* Valeurs avec un mot-clé */ +mask-mode: alpha; +mask-mode: luminance; +mask-mode: match-source; + +/* Gestion de plusieurs masques */ +mask-mode: alpha, match-source; + +/* Valeurs globales */ +mask-mode: inherit; +mask-mode: initial; +mask-mode: unset; ++ +
La propriété mask-mode est définie avec un ou plusieurs mots-clés parmi ceux de la liste suivante, séparés par des virgules.
alphaluminancematch-sourceSi la propriété {{cssxref("mask-image")}} est de type <mask-source>, les valeurs de luminance de l'image doivent être utilisée comme valeurs pour le masque.
Si elle est de type {{cssxref("<image>")}}, ce seront les valeurs de transparence (canal alpha) qui seront utilisées.
+#masked {
+ width: 100px;
+ height: 100px;
+ background: blue linear-gradient(red, blue);
+ -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
+ mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ -webkit-mask-mode: alpha;
+ mask-mode: alpha;
+}
+
+
+<div id="masked"></div> ++ +
{{EmbedLiveSample("Alpha", "110px", "130px")}}
+ +#masked {
+ width: 100px;
+ height: 100px;
+ background-color: #8cffa0;
+ -webkit-mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
+ mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg);
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ -webkit-mask-mode: luminance;
+ mask-mode: luminance;
+}
+
+
+<div id="masked"></div> ++ +
{{EmbedLiveSample("Luminance", "110px", "130px")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-mode", "mask-mode")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-mode")}}
diff --git a/files/fr/web/css/mask-origin/index.html b/files/fr/web/css/mask-origin/index.html deleted file mode 100644 index 85bf81428e..0000000000 --- a/files/fr/web/css/mask-origin/index.html +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: mask-origin -slug: Web/CSS/mask-origin -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-origin ---- -La propriété mask-origin permet de définir l'origine à partir de laquelle placer le masque.
/* Valeurs avec un mot-clé */ -mask-origin: content-box; -mask-origin: padding-box; -mask-origin: border-box; -mask-origin: margin-box; -mask-origin: fill-box; -mask-origin: stroke-box; -mask-origin: view-box; - -/* Valeurs multiples */ -mask-origin: padding-box, content-box; -mask-origin: view-box, fill-box, border-box; - -/* Valeurs non-standards */ - -webkit-mask-origin: content; - -webkit-mask-origin: padding; - -webkit-mask-origin: border; - -/* Valeurs globales */ -mask-origin: inherit; -mask-origin: initial; -mask-origin: unset; -- -
Pour les éléments qui sont affichés avec une unique boîte, cette propriété définit la zone de positionnement du masque. Autrement dit, cette propriété indique l'origine de la position pour l'image définie via {{cssxref("mask-image")}}. Pour les éléments qui sont affichés comme plusieurs boîtes (les boîtes inline ou plusieurs lignes ou plusieurs boîtes sur plusieurs pages), elle définit les boîtes sur lesquelles {{cssxref("box-decoration-break")}} agira pour déterminer la zone de positionnement du masque.
- -Un ou plusieurs mots-clés parmi ceux listés ci-après, chacun séparé par une virgule.
- -content-boxpadding-box0 0 désigne le coin en haut à gauche de la bordure de cette boîte et 100% 100% le coin en bas à droite.border-boxmargin-boxfill-boxstroke-boxview-boxviewBox. Les dimensions de la boîte de référence sont les valeurs de largeur et de hauteur de viewBox.content{{non-standard_inline}}content-box.padding{{non-standard_inline}}padding-box.border{{non-standard_inline}}border-box.#masked {
- width: 100px;
- height: 100px;
- margin: 10px;
- border: 10px solid blue;
- background-color: #8cffa0;
- padding: 10px;
- -webkit-mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
- mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
- -webkit-mask-origin: border-box; /* À modifier dans le résultat. */
- mask-origin: border-box; /* À modifier dans le résultat. */
-}
-
-
-<div id="masked"> -</div> -<select id="origin"> - <option value="content-box">content-box</option> - <option value="padding-box">padding-box</option> - <option value="border-box" selected>border-box</option> - <option value="margin-box">margin-box</option> - <option value="fill-box">fill-box</option> - <option value="stroke-box">stroke-box</option> - <option value="view-box">view-box</option> -</select> -- -
var origin = document.getElementById("origin");
-origin.addEventListener("change", function (evt) {
- document.getElementById("masked").style.maskOrigin = evt.target.value;
-});
-
-
-{{EmbedLiveSample("Exemples", 160, 200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-origin", "mask-origin")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mask-origin")}}
diff --git a/files/fr/web/css/mask-origin/index.md b/files/fr/web/css/mask-origin/index.md new file mode 100644 index 0000000000..85bf81428e --- /dev/null +++ b/files/fr/web/css/mask-origin/index.md @@ -0,0 +1,142 @@ +--- +title: mask-origin +slug: Web/CSS/mask-origin +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-origin +--- +La propriété mask-origin permet de définir l'origine à partir de laquelle placer le masque.
/* Valeurs avec un mot-clé */ +mask-origin: content-box; +mask-origin: padding-box; +mask-origin: border-box; +mask-origin: margin-box; +mask-origin: fill-box; +mask-origin: stroke-box; +mask-origin: view-box; + +/* Valeurs multiples */ +mask-origin: padding-box, content-box; +mask-origin: view-box, fill-box, border-box; + +/* Valeurs non-standards */ + -webkit-mask-origin: content; + -webkit-mask-origin: padding; + -webkit-mask-origin: border; + +/* Valeurs globales */ +mask-origin: inherit; +mask-origin: initial; +mask-origin: unset; ++ +
Pour les éléments qui sont affichés avec une unique boîte, cette propriété définit la zone de positionnement du masque. Autrement dit, cette propriété indique l'origine de la position pour l'image définie via {{cssxref("mask-image")}}. Pour les éléments qui sont affichés comme plusieurs boîtes (les boîtes inline ou plusieurs lignes ou plusieurs boîtes sur plusieurs pages), elle définit les boîtes sur lesquelles {{cssxref("box-decoration-break")}} agira pour déterminer la zone de positionnement du masque.
+ +Un ou plusieurs mots-clés parmi ceux listés ci-après, chacun séparé par une virgule.
+ +content-boxpadding-box0 0 désigne le coin en haut à gauche de la bordure de cette boîte et 100% 100% le coin en bas à droite.border-boxmargin-boxfill-boxstroke-boxview-boxviewBox. Les dimensions de la boîte de référence sont les valeurs de largeur et de hauteur de viewBox.content{{non-standard_inline}}content-box.padding{{non-standard_inline}}padding-box.border{{non-standard_inline}}border-box.#masked {
+ width: 100px;
+ height: 100px;
+ margin: 10px;
+ border: 10px solid blue;
+ background-color: #8cffa0;
+ padding: 10px;
+ -webkit-mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
+ mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
+ -webkit-mask-origin: border-box; /* À modifier dans le résultat. */
+ mask-origin: border-box; /* À modifier dans le résultat. */
+}
+
+
+<div id="masked"> +</div> +<select id="origin"> + <option value="content-box">content-box</option> + <option value="padding-box">padding-box</option> + <option value="border-box" selected>border-box</option> + <option value="margin-box">margin-box</option> + <option value="fill-box">fill-box</option> + <option value="stroke-box">stroke-box</option> + <option value="view-box">view-box</option> +</select> ++ +
var origin = document.getElementById("origin");
+origin.addEventListener("change", function (evt) {
+ document.getElementById("masked").style.maskOrigin = evt.target.value;
+});
+
+
+{{EmbedLiveSample("Exemples", 160, 200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-origin", "mask-origin")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-origin")}}
diff --git a/files/fr/web/css/mask-position/index.html b/files/fr/web/css/mask-position/index.html deleted file mode 100644 index 43d8db0a4a..0000000000 --- a/files/fr/web/css/mask-position/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: mask-position -slug: Web/CSS/mask-position -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-position ---- -La propriété mask-position indique la position initiale pour chaque image de masque utilisée. Cette position est relative à l'origine définie via la propriété {{cssxref("mask-origin")}}.
/* Valeurs avec un mot-clé */ -mask-position: top; -mask-position: bottom; -mask-position: left; -mask-position: right; -mask-position: center; - -/* Valeurs en pourcentage */ -/* Type <percentage> */ -mask-position: 25% 75%; - -/* Valeurs en longueur */ -/* Type <length> */ -mask-position: 0px 0px; -mask-position: 1cm 2cm; -mask-position: 10ch 8em; - -/* Valeurs multiples */ -mask-position: 0px 0px, center; - -/* Valeurs globales */ -mask-position: inherit; -mask-position: initial; -mask-position: unset; -- -
<position>#wrapper {
- border: 1px solid black;
- width: 250px;
- height: 250px;
-}
-
-#masked {
- width: 250px;
- height: 250px;
- background: blue linear-gradient(red, blue);
- mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
- mask-repeat: no-repeat;
- mask-position: top right; /* Can be changed in the live sample */
- margin-bottom: 10px;
-}
-
-
-
-
-
-
-{{EmbedLiveSample("Exemples",200,200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-position", "mask-position")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mask-position")}}
diff --git a/files/fr/web/css/mask-position/index.md b/files/fr/web/css/mask-position/index.md new file mode 100644 index 0000000000..43d8db0a4a --- /dev/null +++ b/files/fr/web/css/mask-position/index.md @@ -0,0 +1,124 @@ +--- +title: mask-position +slug: Web/CSS/mask-position +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-position +--- +La propriété mask-position indique la position initiale pour chaque image de masque utilisée. Cette position est relative à l'origine définie via la propriété {{cssxref("mask-origin")}}.
/* Valeurs avec un mot-clé */ +mask-position: top; +mask-position: bottom; +mask-position: left; +mask-position: right; +mask-position: center; + +/* Valeurs en pourcentage */ +/* Type <percentage> */ +mask-position: 25% 75%; + +/* Valeurs en longueur */ +/* Type <length> */ +mask-position: 0px 0px; +mask-position: 1cm 2cm; +mask-position: 10ch 8em; + +/* Valeurs multiples */ +mask-position: 0px 0px, center; + +/* Valeurs globales */ +mask-position: inherit; +mask-position: initial; +mask-position: unset; ++ +
<position>#wrapper {
+ border: 1px solid black;
+ width: 250px;
+ height: 250px;
+}
+
+#masked {
+ width: 250px;
+ height: 250px;
+ background: blue linear-gradient(red, blue);
+ mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg);
+ mask-repeat: no-repeat;
+ mask-position: top right; /* Can be changed in the live sample */
+ margin-bottom: 10px;
+}
+
+
+
+
+
+
+{{EmbedLiveSample("Exemples",200,200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-position", "mask-position")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-position")}}
diff --git a/files/fr/web/css/mask-repeat/index.html b/files/fr/web/css/mask-repeat/index.html deleted file mode 100644 index 76dd23f6a1..0000000000 --- a/files/fr/web/css/mask-repeat/index.html +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: mask-repeat -slug: Web/CSS/mask-repeat -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-repeat ---- -La propriété mask-repeat définit la façon dont les images de masque sont répétées. Une image de masque peut être répétée horizontalement, verticalement, dans les deux directions ou pas du tout.
/* Syntaxe avec une valeur */ -mask-repeat: repeat-x; -mask-repeat: repeat-y; -mask-repeat: repeat; -mask-repeat: space; -mask-repeat: round; -mask-repeat: no-repeat; - -/* Syntaxe avec deux valeurs */ -/* Première valeur : répétition horizontale */ -/* Seconde valeur : répétition verticale */ -mask-repeat: repeat space; -mask-repeat: repeat repeat; -mask-repeat: round space; -mask-repeat: no-repeat round; - -/* Valeurs globales */ -mask-repeat: inherit; -mask-repeat: initial; -mask-repeat: unset; -- -
Par défaut, les images répétées sont rognées aux limites de l'élément mais on peut également les adapter pour qu'elles soient également réparties sur l'élément : en les redimensionnant si nécessaire (round) ou en les espaçant (space).
Une ou plusieurs valeurs <repeat-style>, séparées par des virgules.
<repeat-style>| Valeur unique | -Équivalent sur deux valeurs | -
repeat-x |
- repeat no-repeat |
-
repeat-y |
- no-repeat repeat |
-
repeat |
- repeat repeat |
-
space |
- space space |
-
round |
- round round |
-
no-repeat |
- no-repeat no-repeat |
-
repeat |
- L'image est répétée autant de fois que nécessaire pour recouvrir la zone dédiée au masque. La dernière image sera rognée si nécessaire. | -
space |
- L'image est répétée autant que possible sans rognage. La première et la dernière image sont accolées aux bords de l'élément et des espaces sont repartis de façon égale entre les images. La propriété {{cssxref("mask-position")}} est ignorée sauf s'il n'y a qu'une seule image qui puisse être affichée sans être rognée. Le seul cas où space est utilisé et qu'une image est rognée se produit lorsque l'image est trop grande pour être affichée. |
-
round |
- L'image est répétée autant que possible et est étirée si nécessaire afin qu'il n'y ait ni rognage ni espace restant. | -
no-repeat |
- Il n'y a aucune répétition de l'image (dès lors, il est possible que toute la zone ne soit pas recouverte par cette image). La position de l'image est définie grâce à la propriété {{cssxref("mask-position")}}. | -
.exemple {
- height: 100px;
- width: 100px;
- background-color: rgb(128,128,128);
- border: solid black 1px;
-
- /* Pour voir la bordure */
- -webkit-mask-clip: content;
- mask-clip: content;
-
- -webkit-mask-image: url('https://developer.mozilla.org/static/img/favicon32.png');
- mask-image: url('https://developer.mozilla.org/static/img/favicon32.png');
-
- -webkit-mask-repeat: repeat-x;
- mask-repeat: repeat-x;
-
-}
-
-<div class="exemple"></div>- -
{{EmbedLiveSample("Exemples","200","200")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-repeat", "mask-repeat")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mask-repeat")}}
diff --git a/files/fr/web/css/mask-repeat/index.md b/files/fr/web/css/mask-repeat/index.md new file mode 100644 index 0000000000..76dd23f6a1 --- /dev/null +++ b/files/fr/web/css/mask-repeat/index.md @@ -0,0 +1,161 @@ +--- +title: mask-repeat +slug: Web/CSS/mask-repeat +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-repeat +--- +La propriété mask-repeat définit la façon dont les images de masque sont répétées. Une image de masque peut être répétée horizontalement, verticalement, dans les deux directions ou pas du tout.
/* Syntaxe avec une valeur */ +mask-repeat: repeat-x; +mask-repeat: repeat-y; +mask-repeat: repeat; +mask-repeat: space; +mask-repeat: round; +mask-repeat: no-repeat; + +/* Syntaxe avec deux valeurs */ +/* Première valeur : répétition horizontale */ +/* Seconde valeur : répétition verticale */ +mask-repeat: repeat space; +mask-repeat: repeat repeat; +mask-repeat: round space; +mask-repeat: no-repeat round; + +/* Valeurs globales */ +mask-repeat: inherit; +mask-repeat: initial; +mask-repeat: unset; ++ +
Par défaut, les images répétées sont rognées aux limites de l'élément mais on peut également les adapter pour qu'elles soient également réparties sur l'élément : en les redimensionnant si nécessaire (round) ou en les espaçant (space).
Une ou plusieurs valeurs <repeat-style>, séparées par des virgules.
<repeat-style>| Valeur unique | +Équivalent sur deux valeurs | +
repeat-x |
+ repeat no-repeat |
+
repeat-y |
+ no-repeat repeat |
+
repeat |
+ repeat repeat |
+
space |
+ space space |
+
round |
+ round round |
+
no-repeat |
+ no-repeat no-repeat |
+
repeat |
+ L'image est répétée autant de fois que nécessaire pour recouvrir la zone dédiée au masque. La dernière image sera rognée si nécessaire. | +
space |
+ L'image est répétée autant que possible sans rognage. La première et la dernière image sont accolées aux bords de l'élément et des espaces sont repartis de façon égale entre les images. La propriété {{cssxref("mask-position")}} est ignorée sauf s'il n'y a qu'une seule image qui puisse être affichée sans être rognée. Le seul cas où space est utilisé et qu'une image est rognée se produit lorsque l'image est trop grande pour être affichée. |
+
round |
+ L'image est répétée autant que possible et est étirée si nécessaire afin qu'il n'y ait ni rognage ni espace restant. | +
no-repeat |
+ Il n'y a aucune répétition de l'image (dès lors, il est possible que toute la zone ne soit pas recouverte par cette image). La position de l'image est définie grâce à la propriété {{cssxref("mask-position")}}. | +
.exemple {
+ height: 100px;
+ width: 100px;
+ background-color: rgb(128,128,128);
+ border: solid black 1px;
+
+ /* Pour voir la bordure */
+ -webkit-mask-clip: content;
+ mask-clip: content;
+
+ -webkit-mask-image: url('https://developer.mozilla.org/static/img/favicon32.png');
+ mask-image: url('https://developer.mozilla.org/static/img/favicon32.png');
+
+ -webkit-mask-repeat: repeat-x;
+ mask-repeat: repeat-x;
+
+}
+
+<div class="exemple"></div>+ +
{{EmbedLiveSample("Exemples","200","200")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-repeat", "mask-repeat")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-repeat")}}
diff --git a/files/fr/web/css/mask-size/index.html b/files/fr/web/css/mask-size/index.html deleted file mode 100644 index bad865b3cb..0000000000 --- a/files/fr/web/css/mask-size/index.html +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: mask-size -slug: Web/CSS/mask-size -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/mask-size ---- -La propriété mask-size définit les dimensions des images utilisées comme masques. La taille de l'image peut être contrainte, partiellement ou complètement, afin de conserver ses proportions intrinsèques.
/* Valeurs avec un mot-clé */ -mask-size: cover; -mask-size: contain; - -/* Syntaxe avec une valeur */ -/* qui indique la largeur de l'image */ -/* la hauteur est fixée à auto */ -mask-size: 50%; -mask-size: 3em; -mask-size: 12px; -mask-size: auto; - -/* Syntaxe avec deux valeurs : */ -/* La première valeur indique la largeur */ -/* La seconde indique la hauteur */ -mask-size: 50% auto; -mask-size: 3em 25%; -mask-size: auto 6px; -mask-size: auto auto; - -/* Valeurs multiples pour gérer différents */ -/* masques. Attention à ne pas confondre */ -/* avec mask-size: auto auto */ -mask-size: auto, auto; -mask-size: 50%, 25%, 25%; -mask-size: 6px, auto, contain; - -/* Valeurs globales */ -mask-size: inherit; -mask-size: initial; -mask-size: unset; -- -
Note : Si la valeur de cette propriété n'est pas définie avec la propriété raccourcie {{cssxref("mask")}} et que celle-ci est appliquée après mask-size, la valeur sera réinitialisée avec sa valeur initiale à cause de la propriété raccourcie.
Une ou plusieurs valeurs <bg-size>, séparées par des virgules. Une valeur <bg-size> peut être définie de trois façons :
containcoverPour indiquer une taille avec une largeur et une hauteur, il est possible de fournir une ou deux valeurs :
- -autoChaque valeur peut être une longueur (<length>), un pourcentage (<percentage>) ou auto.
<length><percentage>autocontaincovercontain. L'image est agrandie autant que possible et ses proportions sont conservées et elle couvre toute la surface du conteneur, si les dimensions du conteneur sont différentes, l'image est rognée sur les côtés (haut et bas ou droite et gauche).L'interprétation des valeurs se fera en fonction des dimensions intrinsèques de l'image (sa hauteur et sa largeur) et de ses proportions intrinsèques (le ratio entre la largeur et la hauteur). Une image matricielle (bitmap) possèdera toujours des dimensions intrinsèques et des proportions intrinsèques. Une image vectorielle pourra avoir des dimensions intrinsèques (et donc, de facto, des proportions intrinsèques) ou également n'avoir qu'une ou aucune dimension intrinsèque et des proportions intrinsèques ou non. Les gradients sont considérés comme des images sans dimensions ni proportions intrinsèques.
- -La taille de l'image affichée pour le masque est calculée de la façon suivante :
- -mask-size sont définis et sont différents de auto :mask-size vaut contain ou cover :mask-size vaut auto ou auto auto :contain avait été utilisé. Si l'image possède une dimension intrinsèque et des proportions intrinsèques, sa taille sera déterminée grâce à ses informations. Si l'image possède une dimension intrinsèque mais aucune proportion intrinsèque, la dimension connue sera utilisée pour cet axe et la seconde sera celle de la zone pour le masque.mask-size possède un composant auto et un autre composant différent de auto :.exemple {
- height: 100px;
- width: 100px;
- background-color: rgb(128,128,128);
-
- -webkit-mask-image: url('https://mdn.mozillademos.org/files/13024/masque2.png');
- mask-image: url('https://mdn.mozillademos.org/files/13024/masque2.png');
-
- -webkit-mask-size: auto 50%;
- mask-size: auto 50%;
-
-}
-
-<div class="exemple"></div>- -
{{EmbedLiveSample("Exemples",200,200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-size", "mask-size")}} | -{{Spec2("CSS Masks")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mask-size")}}
diff --git a/files/fr/web/css/mask-size/index.md b/files/fr/web/css/mask-size/index.md new file mode 100644 index 0000000000..bad865b3cb --- /dev/null +++ b/files/fr/web/css/mask-size/index.md @@ -0,0 +1,153 @@ +--- +title: mask-size +slug: Web/CSS/mask-size +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/mask-size +--- +La propriété mask-size définit les dimensions des images utilisées comme masques. La taille de l'image peut être contrainte, partiellement ou complètement, afin de conserver ses proportions intrinsèques.
/* Valeurs avec un mot-clé */ +mask-size: cover; +mask-size: contain; + +/* Syntaxe avec une valeur */ +/* qui indique la largeur de l'image */ +/* la hauteur est fixée à auto */ +mask-size: 50%; +mask-size: 3em; +mask-size: 12px; +mask-size: auto; + +/* Syntaxe avec deux valeurs : */ +/* La première valeur indique la largeur */ +/* La seconde indique la hauteur */ +mask-size: 50% auto; +mask-size: 3em 25%; +mask-size: auto 6px; +mask-size: auto auto; + +/* Valeurs multiples pour gérer différents */ +/* masques. Attention à ne pas confondre */ +/* avec mask-size: auto auto */ +mask-size: auto, auto; +mask-size: 50%, 25%, 25%; +mask-size: 6px, auto, contain; + +/* Valeurs globales */ +mask-size: inherit; +mask-size: initial; +mask-size: unset; ++ +
Note : Si la valeur de cette propriété n'est pas définie avec la propriété raccourcie {{cssxref("mask")}} et que celle-ci est appliquée après mask-size, la valeur sera réinitialisée avec sa valeur initiale à cause de la propriété raccourcie.
Une ou plusieurs valeurs <bg-size>, séparées par des virgules. Une valeur <bg-size> peut être définie de trois façons :
containcoverPour indiquer une taille avec une largeur et une hauteur, il est possible de fournir une ou deux valeurs :
+ +autoChaque valeur peut être une longueur (<length>), un pourcentage (<percentage>) ou auto.
<length><percentage>autocontaincovercontain. L'image est agrandie autant que possible et ses proportions sont conservées et elle couvre toute la surface du conteneur, si les dimensions du conteneur sont différentes, l'image est rognée sur les côtés (haut et bas ou droite et gauche).L'interprétation des valeurs se fera en fonction des dimensions intrinsèques de l'image (sa hauteur et sa largeur) et de ses proportions intrinsèques (le ratio entre la largeur et la hauteur). Une image matricielle (bitmap) possèdera toujours des dimensions intrinsèques et des proportions intrinsèques. Une image vectorielle pourra avoir des dimensions intrinsèques (et donc, de facto, des proportions intrinsèques) ou également n'avoir qu'une ou aucune dimension intrinsèque et des proportions intrinsèques ou non. Les gradients sont considérés comme des images sans dimensions ni proportions intrinsèques.
+ +La taille de l'image affichée pour le masque est calculée de la façon suivante :
+ +mask-size sont définis et sont différents de auto :mask-size vaut contain ou cover :mask-size vaut auto ou auto auto :contain avait été utilisé. Si l'image possède une dimension intrinsèque et des proportions intrinsèques, sa taille sera déterminée grâce à ses informations. Si l'image possède une dimension intrinsèque mais aucune proportion intrinsèque, la dimension connue sera utilisée pour cet axe et la seconde sera celle de la zone pour le masque.mask-size possède un composant auto et un autre composant différent de auto :.exemple {
+ height: 100px;
+ width: 100px;
+ background-color: rgb(128,128,128);
+
+ -webkit-mask-image: url('https://mdn.mozillademos.org/files/13024/masque2.png');
+ mask-image: url('https://mdn.mozillademos.org/files/13024/masque2.png');
+
+ -webkit-mask-size: auto 50%;
+ mask-size: auto 50%;
+
+}
+
+<div class="exemple"></div>+ +
{{EmbedLiveSample("Exemples",200,200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask-size", "mask-size")}} | +{{Spec2("CSS Masks")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-size")}}
diff --git a/files/fr/web/css/mask-type/index.html b/files/fr/web/css/mask-type/index.html deleted file mode 100644 index d589c35f37..0000000000 --- a/files/fr/web/css/mask-type/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: mask-type -slug: Web/CSS/mask-type -tags: - - CSS - - Propriété - - Reference - - SVG -translation_of: Web/CSS/mask-type ---- -La propriété mask-type définit si un masque sera utilisé comme un masque de luminance ou comme un masque de transparence (aussi appelé masque alpha). Cette propriété s'applique sur l'élément SVG {{SVGElement("mask")}}. Le comportement de cette propriété peut être surchargée par la propriété {{cssxref("mask-mode")}} qui définit sur quel élément le masque est appliqué. De façon générale, les masques alpha sont appliqués plus rapidement que les masques de luminance.
/* Valeurs avec un mot-clé */ -mask-type: luminance; -mask-type: alpha; - -/* Valeurs globales */ -mask-type: inherit; -mask-type: initial; -mask-type: unset; -- -
La propriété mask-type est définie avec un mot-clé parmi ceux définis ci-après.
luminancealpha<div class="redsquare"></div> -<svg version="1.1" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0"> - <defs> - <mask id="m" maskContentUnits="objectBoundingBox" - style="mask-type:alpha"> - <rect x=".1" y=".1" width=".8" height=".8" - fill="red" fill-opacity="0.7"/> - </mask> - </defs> -</svg>- -
.redsquare {
- height: 100px;
- width: 100px;
- background-color: rgb(128, 128, 128);
- border: solid 1px black;
- mask: url("#m");
-}
-
-{{EmbedLiveSample('setting_an_alpha_mask', '100%', '102')}}
- -<div class="redsquare"></div> -<svg version="1.1" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0"> - <defs> - <mask id="m" maskContentUnits="objectBoundingBox" - style="mask-type:luminance"> - <rect x=".1" y=".1" width=".8" height=".8" - fill="red" fill-opacity="0.7"/> - </mask> - </defs> -</svg>- -
.redsquare {
- height: 100px;
- width: 100px;
- background-color: rgb(128, 128, 128);
- border: solid 1px black;
- mask: url("#m");
-}
-
-{{EmbedLiveSample('setting_a_luminance_mask', '100%', '102')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Masks', '#the-mask-type', 'mask-type')}} | -{{Spec2('CSS Masks')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mask-type")}}
- -La propriété mask-type définit si un masque sera utilisé comme un masque de luminance ou comme un masque de transparence (aussi appelé masque alpha). Cette propriété s'applique sur l'élément SVG {{SVGElement("mask")}}. Le comportement de cette propriété peut être surchargée par la propriété {{cssxref("mask-mode")}} qui définit sur quel élément le masque est appliqué. De façon générale, les masques alpha sont appliqués plus rapidement que les masques de luminance.
/* Valeurs avec un mot-clé */ +mask-type: luminance; +mask-type: alpha; + +/* Valeurs globales */ +mask-type: inherit; +mask-type: initial; +mask-type: unset; ++ +
La propriété mask-type est définie avec un mot-clé parmi ceux définis ci-après.
luminancealpha<div class="redsquare"></div> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0"> + <defs> + <mask id="m" maskContentUnits="objectBoundingBox" + style="mask-type:alpha"> + <rect x=".1" y=".1" width=".8" height=".8" + fill="red" fill-opacity="0.7"/> + </mask> + </defs> +</svg>+ +
.redsquare {
+ height: 100px;
+ width: 100px;
+ background-color: rgb(128, 128, 128);
+ border: solid 1px black;
+ mask: url("#m");
+}
+
+{{EmbedLiveSample('setting_an_alpha_mask', '100%', '102')}}
+ +<div class="redsquare"></div> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0"> + <defs> + <mask id="m" maskContentUnits="objectBoundingBox" + style="mask-type:luminance"> + <rect x=".1" y=".1" width=".8" height=".8" + fill="red" fill-opacity="0.7"/> + </mask> + </defs> +</svg>+ +
.redsquare {
+ height: 100px;
+ width: 100px;
+ background-color: rgb(128, 128, 128);
+ border: solid 1px black;
+ mask: url("#m");
+}
+
+{{EmbedLiveSample('setting_a_luminance_mask', '100%', '102')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Masks', '#the-mask-type', 'mask-type')}} | +{{Spec2('CSS Masks')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mask-type")}}
+ +La propriété mask permet de masquer un élément partiellement ou complètement en utilisant un masque apposé sur l'image ou en rognant l'image aux positions données. Cette propriété est une propriété raccourcie pour les propriétés {{cssxref("mask-image")}}, {{cssxref("mask-mode")}}, {{cssxref("mask-repeat")}}, {{cssxref("mask-position")}}, {{cssxref("mask-clip")}}, {{cssxref("mask-origin")}}, {{cssxref("mask-size")}} et {{cssxref("mask-composite ")}}.
Note : La propriété raccourcie réinitialise également {{cssxref("mask-border")}} avec sa valeur initiale. Il est donc recommandé d'utiliser la propriété raccourcie à travers les feuilles de style plutôt que les propriétés raccourcies (sauf en cas d'héritage complexe).
-/* Valeurs avec un mot-clé */ -mask: none; - -/* Valeurs d'image */ -/* Type <image> */ -mask: url(mask.png); /* Image matricielle utilisée comme masque */ -mask: url(masks.svg#star); /* Élément d'un SVG utilisé comme masque */ - -/* Valeurs combinées */ -mask: url(masks.svg#star) luminance; /* Élément d'un SVG utilisé comme masque de luminance */ -mask: url(masks.svg#star) 40px 20px; /* Élément d'un SVG utilisé comme masque positioné à 40px du haut et 20px de la gauche */ -mask: url(masks.svg#star) 0 0/50px 50px; /* Élément d'un SVG utilisé comme masque avec une hauteur et largeur de 50px */ -mask: url(masks.svg#star) repeat-x; /* Élément d'un SVG utilisé comme masque répété horizontalement */ -mask: url(masks.svg#star) stroke-box; /* Élément d'un SVG utilisé comme masque étendu à la boîte contenu dans le contour */ -mask: url(masks.svg#star) exclude; /* Élément d'un SVG utilisé comme masque et combiné avec l'arrière-plan pour les parties qui ne se chevauchent pas */ - -/* Valeurs globales */ -mask: inherit; -mask: initial; -mask: unset; -- -
<mask-reference><masking-mode><position><bg-size><repeat-style><geometry-box><geometry-box> est fournie, elle définira les valeurs de {{cssxref("mask-origin")}} et {{cssxref("mask-clip")}}. Si deux valeurs sont fournies, la première sera utilisée pour définir {{cssxref("mask-origin")}} et la deuxième pour définir {{cssxref("mask-clip")}}.<geometry-box> | no-clip<compositing-operator>{{csssyntax}}
- -<p class="exemple">Il y avait une table servie sous un arbre devant - la maison, et le Lièvre y prenait le thé avec le Chapelier. Un Loir - profondément endormi était assis entre les deux autres qui s’en - servaient comme d’un coussin, le coude appuyé sur lui et causant - par-dessus sa tête.</p> -- -
.exemple{
- mask:url(https://developer.mozilla.org/static/img/favicon72.png) luminance 20%;
-}
-
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask", 'mask')}} | -{{Spec2("CSS Masks")}} | -Extension aux éléments HTML. La syntaxe est étendue et la propriété devient une propriété raccourcie pour les nouvelles propriétés mask-* définies avec cette spécification. |
-
| {{SpecName('SVG1.1', 'masking.html#MaskProperty', 'mask')}} | -{{Spec2('SVG1.1')}} | -Définition initiale. | -
{{Compat("css.properties.mask")}}
- -La propriété mask permet de masquer un élément partiellement ou complètement en utilisant un masque apposé sur l'image ou en rognant l'image aux positions données. Cette propriété est une propriété raccourcie pour les propriétés {{cssxref("mask-image")}}, {{cssxref("mask-mode")}}, {{cssxref("mask-repeat")}}, {{cssxref("mask-position")}}, {{cssxref("mask-clip")}}, {{cssxref("mask-origin")}}, {{cssxref("mask-size")}} et {{cssxref("mask-composite ")}}.
Note : La propriété raccourcie réinitialise également {{cssxref("mask-border")}} avec sa valeur initiale. Il est donc recommandé d'utiliser la propriété raccourcie à travers les feuilles de style plutôt que les propriétés raccourcies (sauf en cas d'héritage complexe).
+/* Valeurs avec un mot-clé */ +mask: none; + +/* Valeurs d'image */ +/* Type <image> */ +mask: url(mask.png); /* Image matricielle utilisée comme masque */ +mask: url(masks.svg#star); /* Élément d'un SVG utilisé comme masque */ + +/* Valeurs combinées */ +mask: url(masks.svg#star) luminance; /* Élément d'un SVG utilisé comme masque de luminance */ +mask: url(masks.svg#star) 40px 20px; /* Élément d'un SVG utilisé comme masque positioné à 40px du haut et 20px de la gauche */ +mask: url(masks.svg#star) 0 0/50px 50px; /* Élément d'un SVG utilisé comme masque avec une hauteur et largeur de 50px */ +mask: url(masks.svg#star) repeat-x; /* Élément d'un SVG utilisé comme masque répété horizontalement */ +mask: url(masks.svg#star) stroke-box; /* Élément d'un SVG utilisé comme masque étendu à la boîte contenu dans le contour */ +mask: url(masks.svg#star) exclude; /* Élément d'un SVG utilisé comme masque et combiné avec l'arrière-plan pour les parties qui ne se chevauchent pas */ + +/* Valeurs globales */ +mask: inherit; +mask: initial; +mask: unset; ++ +
<mask-reference><masking-mode><position><bg-size><repeat-style><geometry-box><geometry-box> est fournie, elle définira les valeurs de {{cssxref("mask-origin")}} et {{cssxref("mask-clip")}}. Si deux valeurs sont fournies, la première sera utilisée pour définir {{cssxref("mask-origin")}} et la deuxième pour définir {{cssxref("mask-clip")}}.<geometry-box> | no-clip<compositing-operator>{{csssyntax}}
+ +<p class="exemple">Il y avait une table servie sous un arbre devant + la maison, et le Lièvre y prenait le thé avec le Chapelier. Un Loir + profondément endormi était assis entre les deux autres qui s’en + servaient comme d’un coussin, le coude appuyé sur lui et causant + par-dessus sa tête.</p> ++ +
.exemple{
+ mask:url(https://developer.mozilla.org/static/img/favicon72.png) luminance 20%;
+}
+
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Masks", "#the-mask", 'mask')}} | +{{Spec2("CSS Masks")}} | +Extension aux éléments HTML. La syntaxe est étendue et la propriété devient une propriété raccourcie pour les nouvelles propriétés mask-* définies avec cette spécification. |
+
| {{SpecName('SVG1.1', 'masking.html#MaskProperty', 'mask')}} | +{{Spec2('SVG1.1')}} | +Définition initiale. | +
{{Compat("css.properties.mask")}}
+ +{{MDNSidebar}}
- -La propriété math-style détermine si les équations MathML devraient être affichées en hauteur normale ou compacte.
/* Valeurs avec un mot-clé */ -math-style: normal; -math-style: compact; - -/* Valeurs globales */ -math-sytle: inherit; -math-style: initial; -math-style: revert; -math-style: unset; -- -
normalcompact{{cssinfo}}
- -{{CSSSyntax}}
- -math {
- math-style: compact;
-}
-
-
-{{Specifications}}
- -{{Compat}}
diff --git a/files/fr/web/css/math-style/index.md b/files/fr/web/css/math-style/index.md new file mode 100644 index 0000000000..10d505b534 --- /dev/null +++ b/files/fr/web/css/math-style/index.md @@ -0,0 +1,56 @@ +--- +title: math-style +slug: Web/CSS/math-style +browser-compat: css.properties.math-style +translation_of: 'Web/CSS/math-style' +--- +{{MDNSidebar}}
+ +La propriété math-style détermine si les équations MathML devraient être affichées en hauteur normale ou compacte.
/* Valeurs avec un mot-clé */ +math-style: normal; +math-style: compact; + +/* Valeurs globales */ +math-sytle: inherit; +math-style: initial; +math-style: revert; +math-style: unset; ++ +
normalcompact{{cssinfo}}
+ +{{CSSSyntax}}
+ +math {
+ math-style: compact;
+}
+
+
+{{Specifications}}
+ +{{Compat}}
diff --git a/files/fr/web/css/max()/index.html b/files/fr/web/css/max()/index.html deleted file mode 100644 index a660acc748..0000000000 --- a/files/fr/web/css/max()/index.html +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: max() -slug: Web/CSS/max() -tags: - - CSS - - Fonction - - Reference -translation_of: Web/CSS/max() ---- -La fonction CSS max() permet d'obtenir la plus grande valeurs parmi une liste d'expressions, séparées par des virgules afin d'utiliser ce maximum comme valeur d'une propriété CSS. La fonction max() peut être utilisée à tout endroit où une valeur de type {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<percentage>")}}, {{cssxref("<number>")}} ou {{cssxref("<integer>")}} est autorisée.
/* property: max(expression [, expression]) */
-width: max(10vw, 4em, 80px);
-
-
-Dans l'exemple précédent, la largeur mesurera au moins 80 pixels de large, sera plus large si la zone d'affichage (viewport) est plus large que 800 pixels ou si un em vaut plus que 20 pixels de large. Autrement dit, la valeur fournie max() est calculée comme un seuil et généralement, on aura un seuil minimal dans une expression max() (ce qui peut paraître contradictoire à juste titre).
La fonction max() prend comme arguments une ou plusieurs expressions, séparées par des virgules. Elle renvoie comme valeur le plus grand résultat des évaluations des expressions passées en arguments.
Les expressions passées à cette fonction peuvent utiliser des fonctions mathématiques (cf. {{CSSxRef("calc", "calc()")}}), des valeurs littérales ou d'autres expressions (ex. avec attr()). Il est nécessaire que ces expressions fournissent une valeur d'un type valide (ex. {{cssxref("<length>")}}).
Il est tout à fait possible de combiner des valeurs avec différentes unités dans les expressions passées en arguments. On peut également utiliser des parenthèses à l'intérieur des expressions afin de s'assurer de la précédence des opérateurs.
- -auto si le tableau suit une disposition automatique ou fixée.max() et min() dans les expressions et d'utiliser les opérateurs mathématiques d'addition, soustraction, multiplication, division sans nécessairement recourir à calc().max() permet de simplifier la définition d'une taille minimale, par exemple la largeur d'une image. Dans cet exemple, la règle CSS permet d'obtenir un logo qui s'étire sur la moitié de la fenêtre pour les fenêtres les plus larges, sans dépasser 300 pixels et sans avoir à utiliser des requêtes média.
.logo {
- width: max(50vw, 300px);
-}
-
-
-<img src="https://developer.mozilla.org/static/img/web-docs-sprite.svg" alt="MDN Web Docs" class="logo">- -
{{EmbedLiveSample('Garantir_une_taille_minimale_pour_des_images', 'auto', '60')}}
- -Avec cet exemple, le logo sera au moins large de 300 pixels et sera plus large afin d'occuper la moitié de la zone d'affichage si le viewport devient plus large que 600 pixels.
- -On peut également utiliser max() pour définir la taille d'une police et fixer un seuil minimal pour garantir une certaine lisibilité.
h1 {
- font-size: 2rem;
-}
-h1.responsive {
- font-size: max(4vw, 2em, 2rem);
-}
-
-
-Avec ces règles, la valeur pour font-size vaudra au moins 2rems ou deux fois la taille par défaut de la police sur la page.
<h1>Ce texte est toujours lisible mais sa taille ne change pas.</h1> -<h1 class="responsive">Ce texte est toujours lisible et s'adapte dans une certaine mesure.</h1> -- -
{{EmbedLiveSample('Fixer_une_taille_minimale_pour_une_police', '700', '300')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#calc-notation', 'max()')}} | -{{Spec2('CSS4 Values')}} | -Définition initiale. | -
{{Compat("css.types.max")}}
- -La fonction CSS max() permet d'obtenir la plus grande valeurs parmi une liste d'expressions, séparées par des virgules afin d'utiliser ce maximum comme valeur d'une propriété CSS. La fonction max() peut être utilisée à tout endroit où une valeur de type {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<percentage>")}}, {{cssxref("<number>")}} ou {{cssxref("<integer>")}} est autorisée.
/* property: max(expression [, expression]) */
+width: max(10vw, 4em, 80px);
+
+
+Dans l'exemple précédent, la largeur mesurera au moins 80 pixels de large, sera plus large si la zone d'affichage (viewport) est plus large que 800 pixels ou si un em vaut plus que 20 pixels de large. Autrement dit, la valeur fournie max() est calculée comme un seuil et généralement, on aura un seuil minimal dans une expression max() (ce qui peut paraître contradictoire à juste titre).
La fonction max() prend comme arguments une ou plusieurs expressions, séparées par des virgules. Elle renvoie comme valeur le plus grand résultat des évaluations des expressions passées en arguments.
Les expressions passées à cette fonction peuvent utiliser des fonctions mathématiques (cf. {{CSSxRef("calc", "calc()")}}), des valeurs littérales ou d'autres expressions (ex. avec attr()). Il est nécessaire que ces expressions fournissent une valeur d'un type valide (ex. {{cssxref("<length>")}}).
Il est tout à fait possible de combiner des valeurs avec différentes unités dans les expressions passées en arguments. On peut également utiliser des parenthèses à l'intérieur des expressions afin de s'assurer de la précédence des opérateurs.
+ +auto si le tableau suit une disposition automatique ou fixée.max() et min() dans les expressions et d'utiliser les opérateurs mathématiques d'addition, soustraction, multiplication, division sans nécessairement recourir à calc().max() permet de simplifier la définition d'une taille minimale, par exemple la largeur d'une image. Dans cet exemple, la règle CSS permet d'obtenir un logo qui s'étire sur la moitié de la fenêtre pour les fenêtres les plus larges, sans dépasser 300 pixels et sans avoir à utiliser des requêtes média.
.logo {
+ width: max(50vw, 300px);
+}
+
+
+<img src="https://developer.mozilla.org/static/img/web-docs-sprite.svg" alt="MDN Web Docs" class="logo">+ +
{{EmbedLiveSample('Garantir_une_taille_minimale_pour_des_images', 'auto', '60')}}
+ +Avec cet exemple, le logo sera au moins large de 300 pixels et sera plus large afin d'occuper la moitié de la zone d'affichage si le viewport devient plus large que 600 pixels.
+ +On peut également utiliser max() pour définir la taille d'une police et fixer un seuil minimal pour garantir une certaine lisibilité.
h1 {
+ font-size: 2rem;
+}
+h1.responsive {
+ font-size: max(4vw, 2em, 2rem);
+}
+
+
+Avec ces règles, la valeur pour font-size vaudra au moins 2rems ou deux fois la taille par défaut de la police sur la page.
<h1>Ce texte est toujours lisible mais sa taille ne change pas.</h1> +<h1 class="responsive">Ce texte est toujours lisible et s'adapte dans une certaine mesure.</h1> ++ +
{{EmbedLiveSample('Fixer_une_taille_minimale_pour_une_police', '700', '300')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#calc-notation', 'max()')}} | +{{Spec2('CSS4 Values')}} | +Définition initiale. | +
{{Compat("css.types.max")}}
+ +La propriété max-block-size définit la taille maximale horizontale ou verticale d'un élément selon l'axe perpendiculaire (l'axe de bloc) au sens d'écriture indiqué par {{cssxref("writing-mode")}}. Elle correspond à la propriété {{cssxref("max-width")}} ou {{cssxref("max-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}. Si le mode d'écriture est orienté verticalement, max-block-size fait référence à la hauteur maximale de l'élément, sinon elle fait référence à la largeur maximale de l'élément.
La propriété {{cssxref("max-inline-size")}} peut être utilisée pour l'effet analogue selon l'axe en ligne (c'est-à-dire l'axe qui suit le sens d'écriture).
- -Cette propriété est une propriété logique qui doit remplacer les propriétés physiques correspondantes (max-height ou max-width) si on souhaite que la disposition tienne compte du mode d'écriture de la page (que celui-ci soit horizontal ou vertical). Vous pouvez consulter ces exemples pour en savoir plus.
/* Valeurs de longueur */ -/* Type <length> */ -max-block-size: 300px; -max-block-size: 25em; - -/* Valeurs proportionnelles */ -/* Type <percentage> */ -max-block-size: 75%; - -/* Valeurs avec un mot-clé */ -max-block-size: none; -max-block-size: max-content; -max-block-size: min-content; -max-block-size: fit-content; -max-block-size: fill-available; - -/* Valeurs globales */ -max-block-size: inherit; -max-block-size: initial; -max-block-size: unset; -- -
La propriété max-block-size peut prendre les mêmes valeurs que les propriétés {{cssxref("max-width")}} ou {{cssxref("max-height")}}.
{{page("/fr/docs/Web/CSS/max-width", "Valeurs")}}
- -La valeur de writing-mode détermine la propriété physique correspondant à max-block-size :
Valeur pour writing-mode |
- Propriété physique équivalente à max-block-size |
-
|---|---|
horizontal-tb, lr {{deprecated_inline}}, lr-tb {{deprecated_inline}}, rl {{deprecated_inline}}, rb {{deprecated_inline}}, rb-rl {{deprecated_inline}} |
- {{cssxref("max-height")}} | -
vertical-rl, vertical-lr, sideways-rl {{experimental_inline}}, sideways-lr {{experimental_inline}}, tb {{deprecated_inline}}, tb-rl {{deprecated_inline}} |
- {{cssxref("max-width")}} | -
Note : Les valeurs sideways-lr et sideways-rl pour writing-mode ont été retirées de la spécification CSS Writing Modes Level 3 en fin de processus et pourraient être réintroduites dans la spécification Level 4.
Note : Les modes d'écriture lr, lr-tb, rl, rb et rb-tl ne sont plus autorisés pour les contextes {{Glossary("HTML")}} et peuvent uniquement être utilisés dans des contextes {{Glossary("SVG")}} 1.x.
.exemple {
- writing-mode: vertical-rl;
- background-color: yellow;
- block-size: 100%;
- max-block-size: 200px;
-}
-
-<p class="exemple">Texte d'exemple</p> -- -
{{EmbedLiveSample("Exemple")}}
- -| Spécifications | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-max-block-size", "max-block-size")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.max-block-size")}}
- -La propriété max-block-size définit la taille maximale horizontale ou verticale d'un élément selon l'axe perpendiculaire (l'axe de bloc) au sens d'écriture indiqué par {{cssxref("writing-mode")}}. Elle correspond à la propriété {{cssxref("max-width")}} ou {{cssxref("max-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}. Si le mode d'écriture est orienté verticalement, max-block-size fait référence à la hauteur maximale de l'élément, sinon elle fait référence à la largeur maximale de l'élément.
La propriété {{cssxref("max-inline-size")}} peut être utilisée pour l'effet analogue selon l'axe en ligne (c'est-à-dire l'axe qui suit le sens d'écriture).
+ +Cette propriété est une propriété logique qui doit remplacer les propriétés physiques correspondantes (max-height ou max-width) si on souhaite que la disposition tienne compte du mode d'écriture de la page (que celui-ci soit horizontal ou vertical). Vous pouvez consulter ces exemples pour en savoir plus.
/* Valeurs de longueur */ +/* Type <length> */ +max-block-size: 300px; +max-block-size: 25em; + +/* Valeurs proportionnelles */ +/* Type <percentage> */ +max-block-size: 75%; + +/* Valeurs avec un mot-clé */ +max-block-size: none; +max-block-size: max-content; +max-block-size: min-content; +max-block-size: fit-content; +max-block-size: fill-available; + +/* Valeurs globales */ +max-block-size: inherit; +max-block-size: initial; +max-block-size: unset; ++ +
La propriété max-block-size peut prendre les mêmes valeurs que les propriétés {{cssxref("max-width")}} ou {{cssxref("max-height")}}.
{{page("/fr/docs/Web/CSS/max-width", "Valeurs")}}
+ +La valeur de writing-mode détermine la propriété physique correspondant à max-block-size :
Valeur pour writing-mode |
+ Propriété physique équivalente à max-block-size |
+
|---|---|
horizontal-tb, lr {{deprecated_inline}}, lr-tb {{deprecated_inline}}, rl {{deprecated_inline}}, rb {{deprecated_inline}}, rb-rl {{deprecated_inline}} |
+ {{cssxref("max-height")}} | +
vertical-rl, vertical-lr, sideways-rl {{experimental_inline}}, sideways-lr {{experimental_inline}}, tb {{deprecated_inline}}, tb-rl {{deprecated_inline}} |
+ {{cssxref("max-width")}} | +
Note : Les valeurs sideways-lr et sideways-rl pour writing-mode ont été retirées de la spécification CSS Writing Modes Level 3 en fin de processus et pourraient être réintroduites dans la spécification Level 4.
Note : Les modes d'écriture lr, lr-tb, rl, rb et rb-tl ne sont plus autorisés pour les contextes {{Glossary("HTML")}} et peuvent uniquement être utilisés dans des contextes {{Glossary("SVG")}} 1.x.
.exemple {
+ writing-mode: vertical-rl;
+ background-color: yellow;
+ block-size: 100%;
+ max-block-size: 200px;
+}
+
+<p class="exemple">Texte d'exemple</p> ++ +
{{EmbedLiveSample("Exemple")}}
+ +| Spécifications | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-max-block-size", "max-block-size")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.max-block-size")}}
+ +La propriété max-height est utilisée pour définir la hauteur maximale d'un élément donné. Elle empêche la valeur de la propriété {{cssxref("height")}} de devenir supérieure à la valeur spécifiée par max-height (autrement dit, max-height est une borne supérieure pour height).
La valeur de max-height surcharge la valeur de {{cssxref("height")}} mais elle est surchargée par {{cssxref("min-height")}}.
/* Valeur de longueur */ -/* Type <length> */ -max-height: 3.5em; - -/* Valeurs relatives */ -/* Type <percentage> */ -max-height: 10%; - -/* Valeurs avec un mot-clé */ -max-height: none; -max-height: max-content; -max-height: min-content; -max-height: fit-content; -max-height: fill-available; - -/* Valeurs globales */ -max-height: inherit; -max-height: initial; -max-height: unset; -- -
<length><percentage>nonemax-content {{experimental_inline}}min-content {{experimental_inline}}fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}max-content.<div> Lorem ipsum tralala sit amet, consectetur adipisicing - <p> - Ut enim ad minim veniam, quis nostrud exercitation - ullamco laboris nisi ut aliquip ex ea commodo consequat. - </p> -</div>- -
div {
- height: 250px;
- border: solid 1px red;
-}
-
-p {
- max-height: 30%;
- border: solid 1px blue;
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -Veiller à s'assurer que les éléments ciblés avec une règle utilisant max-height ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Sizing', '#height-height-keywords', 'max-height')}} | -{{Spec2('CSS3 Sizing')}} | -Ajout des mots-clés max-content, min-content, fit-content et fill-available. Les deux brouillons de spécification CSS3 Box et CSS3 Writing Modes définissaient ces mots-clés mais ces spécifications ont été remplacées par celles-ci. |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'max-height')}} | -{{Spec2('CSS3 Transitions')}} | -max-height peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'visudet.html#min-max-heights', 'max-height')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.max-height")}}
- -La propriété max-height est utilisée pour définir la hauteur maximale d'un élément donné. Elle empêche la valeur de la propriété {{cssxref("height")}} de devenir supérieure à la valeur spécifiée par max-height (autrement dit, max-height est une borne supérieure pour height).
La valeur de max-height surcharge la valeur de {{cssxref("height")}} mais elle est surchargée par {{cssxref("min-height")}}.
/* Valeur de longueur */ +/* Type <length> */ +max-height: 3.5em; + +/* Valeurs relatives */ +/* Type <percentage> */ +max-height: 10%; + +/* Valeurs avec un mot-clé */ +max-height: none; +max-height: max-content; +max-height: min-content; +max-height: fit-content; +max-height: fill-available; + +/* Valeurs globales */ +max-height: inherit; +max-height: initial; +max-height: unset; ++ +
<length><percentage>nonemax-content {{experimental_inline}}min-content {{experimental_inline}}fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}max-content.<div> Lorem ipsum tralala sit amet, consectetur adipisicing + <p> + Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. + </p> +</div>+ +
div {
+ height: 250px;
+ border: solid 1px red;
+}
+
+p {
+ max-height: 30%;
+ border: solid 1px blue;
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +Veiller à s'assurer que les éléments ciblés avec une règle utilisant max-height ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Sizing', '#height-height-keywords', 'max-height')}} | +{{Spec2('CSS3 Sizing')}} | +Ajout des mots-clés max-content, min-content, fit-content et fill-available. Les deux brouillons de spécification CSS3 Box et CSS3 Writing Modes définissaient ces mots-clés mais ces spécifications ont été remplacées par celles-ci. |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'max-height')}} | +{{Spec2('CSS3 Transitions')}} | +max-height peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'visudet.html#min-max-heights', 'max-height')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.max-height")}}
+ +La propriété CSS max-inline-size définit la taille maximale horizontale ou verticale d'un élément en ligne (inline) selon le mode d'écriture utilisé. Elle correspond à la propriété {{cssxref("max-width")}} ou {{cssxref("max-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}. Si le mode d'écriture est orienté verticalement, max-inline-size fait référence à la hauteur maximale de l'élément, sinon elle fait référence à la largeur maximale de l'élément. La propriété {{cssxref("max-block-size")}} peut être utilisée pour les blocs.
/* Valeurs de longueur */ -/* Type <length> */ -max-inline-size: 300px; -max-inline-size: 25em; - -/* Valeurs proportionnelles */ -/* Type <percentage> */ -max-inline-size: 75%; - -/* Valeurs avec un mot-clé */ -max-inline-size: none; -max-inline-size: max-content; -max-inline-size: min-content; -max-inline-size: fit-content; -max-inline-size: fill-available; - -/* Valeurs globales */ -max-inline-size: inherit; -max-inline-size: initial; -max-inline-size: unset; -- -
La propriété max-inline-size peut prendre les mêmes valeurs que les propriétés {{cssxref("max-width")}} ou {{cssxref("max-height")}}.
.exemple {
- writing-mode: vertical-rl;
- background-color: yellow;
- block-size: 100%;
- max-inline-size: 200px;
-}
-
-<p class="exemple">Texte d'exemple</p> -- -
{{EmbedLiveSample("Exemple")}}
- -| Spécifications | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-max-inline-size", "max-inline-size")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.max-inline-size")}}
- -La propriété CSS max-inline-size définit la taille maximale horizontale ou verticale d'un élément en ligne (inline) selon le mode d'écriture utilisé. Elle correspond à la propriété {{cssxref("max-width")}} ou {{cssxref("max-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}. Si le mode d'écriture est orienté verticalement, max-inline-size fait référence à la hauteur maximale de l'élément, sinon elle fait référence à la largeur maximale de l'élément. La propriété {{cssxref("max-block-size")}} peut être utilisée pour les blocs.
/* Valeurs de longueur */ +/* Type <length> */ +max-inline-size: 300px; +max-inline-size: 25em; + +/* Valeurs proportionnelles */ +/* Type <percentage> */ +max-inline-size: 75%; + +/* Valeurs avec un mot-clé */ +max-inline-size: none; +max-inline-size: max-content; +max-inline-size: min-content; +max-inline-size: fit-content; +max-inline-size: fill-available; + +/* Valeurs globales */ +max-inline-size: inherit; +max-inline-size: initial; +max-inline-size: unset; ++ +
La propriété max-inline-size peut prendre les mêmes valeurs que les propriétés {{cssxref("max-width")}} ou {{cssxref("max-height")}}.
.exemple {
+ writing-mode: vertical-rl;
+ background-color: yellow;
+ block-size: 100%;
+ max-inline-size: 200px;
+}
+
+<p class="exemple">Texte d'exemple</p> ++ +
{{EmbedLiveSample("Exemple")}}
+ +| Spécifications | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-max-inline-size", "max-inline-size")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.max-inline-size")}}
+ +La propriété max-width est utilisée pour définir la largeur maximale d'un élément donné. Elle empêche la valeur de la propriété {{cssxref("width")}} de devenir supérieure à la valeur spécifiée par max-width (autrement dit, max-width est une borne supérieur pour width).
max-width surcharge la valeur de {{cssxref("width")}} mais elle est surchargée par {{cssxref("min-width")}}.
-
-/* Valeur de longueur */ -/* Type <length> */ -max-width: 3.5em; - -/* Valeurs relatives */ -/* Type <percentage> */ -max-width: 10%; - -/* Valeurs avec un mot-clé */ -max-width: none; -max-width: max-content; -max-width: min-content; -max-width: fit-content; -max-width: fill-available; - -/* Valeurs globales */ -max-width: inherit; -max-width: initial; -max-width: unset; -- -
<length><percentage>fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}max-content.max-content {{experimental_inline}}min-content {{experimental_inline}}none<div> Lorem ipsum tralala sit amet, consectetur adipisicing - <p> - Ut enim ad minim veniam, quis nostrud exercitation - ullamco laboris nisi ut aliquip ex ea commodo consequat. - </p> -</div>- -
div {
- width: 250px;
- border: solid 1px red;
-}
-
-p {
- max-width: 60%;
- border: solid 1px blue;
-}
-
-{{EmbedLiveSample("Exemple_simple_avec_un_tableau","100%","100%")}}
- -Veiller à s'assurer que les éléments ciblés avec une règle utilisant max-width ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'max-width')}} | -{{Spec2('CSS3 Sizing')}} | -Ajout des mots-clés max-content, min-content, fit-content et fill-available. Les deux brouillons de spécifications CSS3 Box et CSS3 Writing Modes définissaient ces mots-clés mais ont été remplacées par cette spécification. |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'max-width')}} | -{{Spec2('CSS3 Transitions')}} | -max-width peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'visudet.html#min-max-widths', 'max-width')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.max-width")}}
- -La propriété max-width est utilisée pour définir la largeur maximale d'un élément donné. Elle empêche la valeur de la propriété {{cssxref("width")}} de devenir supérieure à la valeur spécifiée par max-width (autrement dit, max-width est une borne supérieur pour width).
max-width surcharge la valeur de {{cssxref("width")}} mais elle est surchargée par {{cssxref("min-width")}}.
+
+/* Valeur de longueur */ +/* Type <length> */ +max-width: 3.5em; + +/* Valeurs relatives */ +/* Type <percentage> */ +max-width: 10%; + +/* Valeurs avec un mot-clé */ +max-width: none; +max-width: max-content; +max-width: min-content; +max-width: fit-content; +max-width: fill-available; + +/* Valeurs globales */ +max-width: inherit; +max-width: initial; +max-width: unset; ++ +
<length><percentage>fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}max-content.max-content {{experimental_inline}}min-content {{experimental_inline}}none<div> Lorem ipsum tralala sit amet, consectetur adipisicing + <p> + Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. + </p> +</div>+ +
div {
+ width: 250px;
+ border: solid 1px red;
+}
+
+p {
+ max-width: 60%;
+ border: solid 1px blue;
+}
+
+{{EmbedLiveSample("Exemple_simple_avec_un_tableau","100%","100%")}}
+ +Veiller à s'assurer que les éléments ciblés avec une règle utilisant max-width ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'max-width')}} | +{{Spec2('CSS3 Sizing')}} | +Ajout des mots-clés max-content, min-content, fit-content et fill-available. Les deux brouillons de spécifications CSS3 Box et CSS3 Writing Modes définissaient ces mots-clés mais ont été remplacées par cette spécification. |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'max-width')}} | +{{Spec2('CSS3 Transitions')}} | +max-width peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'visudet.html#min-max-widths', 'max-width')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.max-width")}}
+ +Les requêtes média, plus souvent appelées media queries, sont un outil de responsive design qui permet d'adapter la feuille de style CSS en fonction de différents paramètres ou caractéristiques de l'appareil. Par exemple, on pourra appliquer différents styles si l'écran de l'appareil utilisé pour consulter le document est plus petit qu'une taille donnée ou si l'utilisateur tient son appareil en mode portrait ou paysage. La règle @ (ou at-rule) {{cssxref("@media")}} est utilisée afin d'appliquer les styles de façon conditionnelle.
- -De plus, la syntaxe des requêtes média est également employée dans d'autres contextes, notamment l'attribut {{htmlattrxref("media", "source")}} de l'élément {{HTMLElement("source")}} qui permet de définir une chaîne de caractères contenant une requête média afin de choisir le fichier source utilisé pour une image grâce à l'élément HTML {{HTMLElement("picture")}}.
- -De plus, la méthode du DOM {{domxref("Window.matchMedia()")}} peut être utilisée afin de tester le résultat d'une requête média pour la fenêtre courante. On peut également utiliser la méthode {{domxref("MediaQueryList.addListener()")}} afin de recevoir une notification lorsque l'état de la requête évolue. Grâce à cette fonctionnalité, un site ou une application peut réagir aux changements de configuration, d'orientation ou d'état.
- -Vous pouvez en découvrir plus dans l'article Tester des requêtes media.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS5 Media Queries')}} | -{{Spec2('CSS5 Media Queries')}} | -- |
| {{SpecName('CSS3 Conditional')}} | -{{Spec2('CSS3 Conditional')}} | -- |
| {{SpecName('CSS4 Media Queries')}} | -{{Spec2('CSS4 Media Queries')}} | -- |
| {{SpecName('CSS3 Media Queries')}} | -{{Spec2('CSS3 Media Queries')}} | -- |
| {{SpecName('CSS2.1', 'media.html')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
Les requêtes média, plus souvent appelées media queries, sont un outil de responsive design qui permet d'adapter la feuille de style CSS en fonction de différents paramètres ou caractéristiques de l'appareil. Par exemple, on pourra appliquer différents styles si l'écran de l'appareil utilisé pour consulter le document est plus petit qu'une taille donnée ou si l'utilisateur tient son appareil en mode portrait ou paysage. La règle @ (ou at-rule) {{cssxref("@media")}} est utilisée afin d'appliquer les styles de façon conditionnelle.
+ +De plus, la syntaxe des requêtes média est également employée dans d'autres contextes, notamment l'attribut {{htmlattrxref("media", "source")}} de l'élément {{HTMLElement("source")}} qui permet de définir une chaîne de caractères contenant une requête média afin de choisir le fichier source utilisé pour une image grâce à l'élément HTML {{HTMLElement("picture")}}.
+ +De plus, la méthode du DOM {{domxref("Window.matchMedia()")}} peut être utilisée afin de tester le résultat d'une requête média pour la fenêtre courante. On peut également utiliser la méthode {{domxref("MediaQueryList.addListener()")}} afin de recevoir une notification lorsque l'état de la requête évolue. Grâce à cette fonctionnalité, un site ou une application peut réagir aux changements de configuration, d'orientation ou d'état.
+ +Vous pouvez en découvrir plus dans l'article Tester des requêtes media.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS5 Media Queries')}} | +{{Spec2('CSS5 Media Queries')}} | ++ |
| {{SpecName('CSS3 Conditional')}} | +{{Spec2('CSS3 Conditional')}} | ++ |
| {{SpecName('CSS4 Media Queries')}} | +{{Spec2('CSS4 Media Queries')}} | ++ |
| {{SpecName('CSS3 Media Queries')}} | +{{Spec2('CSS3 Media Queries')}} | ++ |
| {{SpecName('CSS2.1', 'media.html')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
Le {{Glossary("DOM")}} fournit un certain nombre de fonctionnalités qui permettent de tester les résultats d'une requête média (media query) avec un script. Pour cela, on utilise l'interface {{domxref("MediaQueryList")}} ainsi que ses méthodes et ses propriétés. Une fois qu'on a créé un objet {{domxref("MediaQueryList") }}, on peut vérifier le résultat de la requête ou également recevoir des notifications automatiques lorsque le résultat de la requête change.
- -Avant d'évaluer les résultats d'une requête, on doit créer un objet {{domxref("MediaQueryList")}} qui représente la requête média. Pour cela, on utilisera la méthode {{domxref("window.matchMedia")}}.
- -Ainsi, si on veut avoir une liste de requête qui détermine si l'appareil utilisé est orienté en portrait ou en paysage, on pourra écrire :
- -var mql = window.matchMedia("(orientation: portrait)");
-
-
-Une fois que la liste de requêtes média a été créée, on peut vérifier le résultat de la requête grâce à la propriété matches qui représente les résultat de la requête :
if (mql.matches) {
- /* La zone d'affichage/viewport est en portrait */
-} else {
- /* La zone d'affichage/viewport est en paysage */
-}
-
-
-Afin de savoir lorsque l'évaluation d'une requête a changé, il sera plus efficace de déclarer un listener plutôt que d'interroger sans cesse le résultat. Pour cela, on pourra utiliser la méthode addListener() sur l'objet {{domxref("MediaQueryList")}} et définir un observateur qui implémente l'interface {{domxref("MediaQueryListListener")}} :
var mql = window.matchMedia("(orientation: portrait)");
-mql.addListener(handleOrientationChange);
-handleOrientationChange(mql);
-
-
-Ce code crée la liste de requêtes média qui teste l'orientation (l'objet mql) puis ajoute un listener. Une fois qu'on a ajouté le listener, on l'invoque une fois. Cela permet d'ajuster l'état initial du listener selon l'orientation de l'appareil (sinon, le code aurait considéré que l'appareil était en portrait par défaut même si ce dernier était en paysage, ce qui aurait engendré des incohérences).
La méthode handleOrientationChange() qu'on implémente ensuite consulte le résultat de la requête et gère le cas où l'orientation est modifiée :
function handleOrientationChange(mql) {
- if (mql.matches) {
- /* La zone d'affichage/viewport est en portrait */
- } else {
- /* La zone d'affichage/viewport est en paysage */
- }
-}
-
-
-Lorsqu'on ne souhaite plus recevoir de notifications sur les modifications apportées à la valeur de la requête média, on pourra simplement utiliser removeListener() sur l'objet {{domxref("MediaQueryList") }} :
mql.removeListener(handleOrientationChange); -- -
MediaQueryList{{Compat("api.MediaQueryList")}}
- -Le {{Glossary("DOM")}} fournit un certain nombre de fonctionnalités qui permettent de tester les résultats d'une requête média (media query) avec un script. Pour cela, on utilise l'interface {{domxref("MediaQueryList")}} ainsi que ses méthodes et ses propriétés. Une fois qu'on a créé un objet {{domxref("MediaQueryList") }}, on peut vérifier le résultat de la requête ou également recevoir des notifications automatiques lorsque le résultat de la requête change.
+ +Avant d'évaluer les résultats d'une requête, on doit créer un objet {{domxref("MediaQueryList")}} qui représente la requête média. Pour cela, on utilisera la méthode {{domxref("window.matchMedia")}}.
+ +Ainsi, si on veut avoir une liste de requête qui détermine si l'appareil utilisé est orienté en portrait ou en paysage, on pourra écrire :
+ +var mql = window.matchMedia("(orientation: portrait)");
+
+
+Une fois que la liste de requêtes média a été créée, on peut vérifier le résultat de la requête grâce à la propriété matches qui représente les résultat de la requête :
if (mql.matches) {
+ /* La zone d'affichage/viewport est en portrait */
+} else {
+ /* La zone d'affichage/viewport est en paysage */
+}
+
+
+Afin de savoir lorsque l'évaluation d'une requête a changé, il sera plus efficace de déclarer un listener plutôt que d'interroger sans cesse le résultat. Pour cela, on pourra utiliser la méthode addListener() sur l'objet {{domxref("MediaQueryList")}} et définir un observateur qui implémente l'interface {{domxref("MediaQueryListListener")}} :
var mql = window.matchMedia("(orientation: portrait)");
+mql.addListener(handleOrientationChange);
+handleOrientationChange(mql);
+
+
+Ce code crée la liste de requêtes média qui teste l'orientation (l'objet mql) puis ajoute un listener. Une fois qu'on a ajouté le listener, on l'invoque une fois. Cela permet d'ajuster l'état initial du listener selon l'orientation de l'appareil (sinon, le code aurait considéré que l'appareil était en portrait par défaut même si ce dernier était en paysage, ce qui aurait engendré des incohérences).
La méthode handleOrientationChange() qu'on implémente ensuite consulte le résultat de la requête et gère le cas où l'orientation est modifiée :
function handleOrientationChange(mql) {
+ if (mql.matches) {
+ /* La zone d'affichage/viewport est en portrait */
+ } else {
+ /* La zone d'affichage/viewport est en paysage */
+ }
+}
+
+
+Lorsqu'on ne souhaite plus recevoir de notifications sur les modifications apportées à la valeur de la requête média, on pourra simplement utiliser removeListener() sur l'objet {{domxref("MediaQueryList") }} :
mql.removeListener(handleOrientationChange); ++ +
MediaQueryList{{Compat("api.MediaQueryList")}}
+ +Les requêtes média (media queries) permettent de modifier l'apparence d'un site ou d'une application en fonction du type d'appareil (impression ou écran par exemple) et de ses caractéristiques (la résolution d'écran ou la largeur de la zone d'affichage (viewport) par exemple).
- -Les requêtes média sont utilisées afin :
- -@media et @import.<style>, <link>, <source> et d'autres éléments HTML grâce à l'attribut media=.Window.matchMedia() et MediaQueryList.addListener().Note : Les exemples de cet article utilisent @media à des fins d'illustration. Toutefois, la syntaxe est la même pour les différents types de requêtes média.
Une requête média se compose d'un type de média optionnel et d'une ou plusieurs expressions de caractéristiques de média. Plusieurs requêtes peuvent être combinées entre elles grâce à des opérateurs logiques. Les requêtes média ne sont pas sensibles à la casse.
- -Une requête média vaut true si le type de média correspond à l'appareil utilisé pour l'affichage du document et si toutes les expressions relatives aux caractéristiques sont vraies. Les requêtes qui utilisent des types de média inconnus valent toujours false.
Note : Lorsqu'une feuille de style est attachée à un élément <link> comportant une requếte média, cette feuille de style sera toujours téléchargée, même si la requête renvoie false. Toutefois, le contenu de cette feuille n'est pas appliquée tant que le résultat de la requête ne devient pas true.
Un type de média définit une catégorie générale d'appareil. Le type de média est optionnel dans une requête média, sauf si celle-ci utilise les opérateurs logiques not ou only. Par défaut, le type de média utilisé est all.
allprintscreenspeechNote : Les types de média dépréciés CSS2.1 et Media Queries 3 ont défini plusieurs types additionnels (tty, tv, projection, handheld, braille, embossed, and aural) qui ont ensuite été dépréciés avec Media Queries 4. Ces types ne doivent donc plus être utilisés. Le type aural a été remplacé par le type speech.
Les caractéristiques média décrivent certaines caractéristiques spécifiques de l'agent utilisateur, de l'appareil d'affichage ou de l'environnement. Les expressions de caractéristique média testent leur présence ou leur valeur. Chaque expression de caractéristique doit être entourée de parenthèses.
- -| Nom | -Résumé | -Notes | -
|---|---|---|
| {{cssxref("@media/width","width")}} | -La largeur de la zone d'affichage (viewport) | -- |
| {{cssxref("@media/height","height")}} | -La hauteur de la zone d'affichage | -- |
| {{cssxref("@media/aspect-ratio","aspect-ratio")}} | -Le rapport largeur/hauteur de la zone d'affichage | -- |
| {{cssxref("@media/orientation","orientation")}} | -L'orientation la zone d'affichage | -- |
| {{cssxref("@media/resolution","resolution")}} | -La densité de pixel pour l'appareil d'affichage | -- |
| {{cssxref("@media/scan","scan")}} | -Le processus de scan de l'appareil d'affichage | -- |
| {{cssxref("@media/grid","grid")}} | -Le type d'écran de l'appareil : matriciel ou grille ? | -- |
| {{cssxref("@media/update-frequency","update")}} | -La fréquence de modification du contenu par l'appareil d'affichage | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/overflow-block","overflow-block")}} | -La façon dont l'appareil d'affichage gère le contenu qui dépasse de la zone d'affichage selon l'axe de bloc | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/overflow-inline","overflow-inline")}} | -La possibilité de faire défiler (scroll) le contenu qui dépasse de la zone d'affichage sur l'axe en ligne | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/color","color")}} | -Le nombre de bits pour chaque composante de couleur pour l'appareil d'affichage (ou 0 si l'appareil ne gère pas les couleurs) | -- |
| {{cssxref("@media/color-gamut","color-gamut")}} | -Un intervalle approximatif des couleurs prises en charge par l'agent utilisateur et l'appareil d'affichage | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/color-index","color-index")}} | -Le nombre d'éléments dans le tableau des couleurs de l'appareil d'affichage (ou 0 si l'appareil ne dispose pas d'un tel tableau) | -- |
| {{cssxref("@media/display-mode","display-mode")}} | -Le mode d'affichage de l'application, tel qu'indiqué par la propriété display du manifeste |
- Définie dans la spécification pour les manifestes des applications web. | -
| {{cssxref("@media/monochrome","monochrome")}} | -Le nombre de bits par pixel pour le frame buffer monochrome de l'appareil d'affichage ou 0 si l'appareil n'est pas monochrome | -- |
| {{cssxref("@media/inverted-colors","inverted-colors")}} | -L'inversion (ou non) des couleurs par l'agent utilisateur ou le système d'exploitation | -Reportée au niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/pointer","pointer")}} | -La présence d'un appareil de pointage comme mécanisme de saisie principal et sa précision | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/hover","hover")}} | -La capacité du mécanisme de saisie principal à survoler les éléments | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/any-pointer","any-pointer")}} | -La présence d'un appareil de pointage parmi les mécanismes de saisie et sa précision | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/any-hover","any-hover")}} | -La capacité d'un des mécanismes de saisie à survoler les éléments | -Ajoutée avec le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/light-level","light-level")}} | -Le niveau de luminosité de l'environnement | -Ajoutée avec le niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/prefers-reduced-motion", "prefers-reduced-motion")}} | -L'utilisateur préfère que la quantité de mouvement sur la page soit réduite. | -Ajoutée avec le niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/prefers-reduced-transparency", "prefers-reduced-transparency")}} | -L'utilisateur préfère que la transparence utilisée sur la page soit réduite. | -Ajoutée avec le niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/prefers-contrast", "prefers-contrast")}} | -L'utilisateur préfère que le contraste soit augmenté ou réduit entre des couleurs proches. | -Ajoutée avec le niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/prefers-color-scheme", "prefers-color-scheme")}} | -L'utilisateur préfère utiliser un thème clair ou un thème sombre. | -Ajoutée avec le niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/forced-colors", "forced-colors")}} | -Détecte si l'agent utilisateur restreint la palette de couleurs. | -Ajoutée avec le niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/scripting","scripting")}} | -La disponibilité des fonctions de script (JavaScript par exemple) | -Reportée au niveau 5 du module de spécification Media Queries. | -
| {{cssxref("@media/device-width","device-width")}} {{obsolete_inline}} | -La largeur de la surface de rendu pour l'appareil d'affichage | -Dépréciée par le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/device-height","device-height")}} {{obsolete_inline}} | -La hauteur de la surface de rendu pour l'appareil d'affichage | -Dépréciée par le niveau 4 du module de spécification Media Queries. | -
| {{cssxref("@media/device-aspect-ratio","device-aspect-ratio")}} {{obsolete_inline}} | -Le rapport largeur/hauteur de la surface de rendu pour l'appareil d'affichage | -Dépréciée par le niveau 4 du module de spécification Media Queries. | -
Les opérateurs logiques not, and et only peuvent être utilisés afin de construire une requête média complexe. Il est aussi possible de combiner plusieurs requêtes média en les séparant par des virgules.
andL'opérateur and permet de combiner plusieurs requêtes média en une seule. Pour que la requête résultante soit vraie, il faut que chacune des sous-requêtes soit vraie. Cet opérateur est également utilisé afin de relier des caractéristiques média avec des types de média.
notL'opérateur not est utilisé afin d'obtenir le résultat opposé d'une requête média (il renvoie true si l'opérande renvoie false). S'il est utilisé dans une liste de requêtes séparées par des virgules, il ne nie que la requête sur laquelle il est appliqué. Si l'opérateur not est utilisé, la requête doit nécessairement contenir un type de média.
Note : Pour la spécification de niveau 3, l'opérateur not ne peut pas être utilisé afin de prendre l'opposé d'une expression de caractéristique de média, il ne peut servir qu'à l'échelle d'une requête média entière.
onlyL'opérateur only est utilisé afin d'appliquer un style uniquement si l'intégralité de la requête est vérifiée. Il permet d'empêcher les anciens navigateurs d'appliquer les styles concernés. Si on utilise pas only, un ancien navigateur interprètera screen and (max-width: 500px) comme screen uniquement (appliquant ainsi le style à tous les écrans). Si l'opérateur only est utilisé, la requête doit nécessairement contenir un type de média.
, (virgule)Les virgules permettent de combiner plusieurs requêtes en une. Chaque requête est traitée séparément. Autrement dit, si une des requêtes de la liste renvoie true, toute la requête combinée renverra true. En ce sens, l'opérateur , agit comme un opérateur booléen or.
Les types de média décrivent la catégorie générale de l'appareil utilisé. Bien que la plupart des sites web soient principalement conçus pour être affichés sur des écrans, il est possible d'avoir des styles spécifiques pour les impressions ou pour les lecteurs d'écran. Voici une requête qui permet de cibler les imprimantes ou autres appareils imprimant le contenu sur plusieurs pages :
- -@media print { ... }
-
-Il est possible de cibler plusieurs types à la fois. La règle suivante permet de cibler les écrans et les appareils d'impression :
- -@media screen, print { ... }
-
-Pour une liste complète des types de média, voir ci-avant. Ces types étant très génériques, peu de valeurs sont disponibles. Afin d'avoir un ciblage plus fin, on pourra utiliser les caractéristiques média.
- -Les caractéristiques média décrivent les caractéristiques spécifiques d'un agent utilisateur, d'un appareil d'affichage ou de l'environnement. On peut ainsi cibler différents styles pour les écrans larges, pour les ordinateurs qui disposent d'une souris ou pour les appareils utilisés dans une faible luminosité. Dans l'exemple qui suit, on a une requête qui vérifie si le mécanisme de saisie principal de l'appareil peut survoler les éléments :
- -@media (hover: hover) { ... }
-
-De nombreuses caractéristiques média sont des caractéristiques portant sur un intervalle et peuvent être préfixées par min- ou max- afin d'exprimer des seuils de valeurs. Par exemple, la requête suivante permet d'appliquer des styles à condition que la largeur de la zone d'affichage (viewport) soit inférieure à 1250px :
@media (max-width: 1250px) { ... }
-
-Note : Selon la spécification du W3C, les barres de défilement font partie des dimensions de la page. Ainsi la barre de défilement vertical s'ajoute à la largeur du document tandis que la barre de défilement horizontal s'ajoute à la hauteur du document. Cependant tous les navigateurs n'ont pas adopté cette recommandation (Chrome par exemple) et tous n'ont pas opté pour la même taille de barre de défilement, ce qui mène à un développement plus difficile pour assurer une comptabilité sur tous les navigateurs.
-Si on utilise une caractéristique média sans indiquer de valeur, la requête sera vérifiée tant que la valeur de cette caractéristique n'est pas nulle (ou none pour la spécification de niveau 4). Ainsi, la requête suivante permettra d'appliquer les styles qu'elle contient si l'appareil peut afficher des couleurs :
@media (color) { ... }
-
-Si une caractéristique ne s'applique pas à l'appareil, les expressions utilisant cette caractéristique renverront false. Ainsi, la requête suivante aura toujours la valeur false car aucun appareil de synthèse vocale ne possède de caractéristique relative à ses proportions d'écran :
@media speech and (aspect-ratio: 11/5) { ... }
-
-Pour plus d'exemples, voir les pages de référence de chacune de ces caractéristiques depuis le tableau ci-dessus.
- -Il est parfois nécessaire d'avoir une requête qui repose sur plusieurs conditions. Pour cela, on peut utiliser les opérateurs logiques : not, and, only et la virgule (,) afin de combiner plusieurs requêtes média.
Dans l'exemple précédent, on a utilisé l'opérateur and afin de combiner un type de média et une caractéristique média. Cet opérateur peut également servir à assembler plusieurs requêtes média pour en former la conjonction logique. L'opérateur not permet d'obtenir la négation d'une requête média tandis que l'opérateur only empêche les anciens navigateurs d'appliquer les styles qu'une requête contient.
Note : Dans la plupart des cas, le type de média all est utilisé par défaut si aucun autre type n'est fourni. Toutefois, lorsqu'on utilise les opérateurs not ou only, il est nécessaire de fournir un type de média explicite.
Le mot-clé and permet de combiner une caractéristique média avec un type de média ou avec d'autres caractéristiques média. L'exemple suivant permet de restreindre l'application d'un style aux appareils orientés en mode paysage et dont la largeur mesure au moins 30ems :
@media (min-width: 30em) and (orientation: landscape) { ... }
-
-Si on souhaite restreindre ces règles aux écrans, on pourra ajouter une clause avec le type de média screen :
@media screen and (min-width: 30em) and (orientation: landscape) { ... }
-
-La virgule peut être utilisée afin de créer une disjonction (un OU logique) sur différentes clauses (types de média, caractéristiques ou états). Dans l'exemple qui suit, les styles de la requête sont appliqués si l'appareil possède une hauteur supérieure ou égale à 680 pixels ou si l'écran est en mode portrait :
- -@media (min-height: 680px), screen and (orientation: portrait) { ... }
-
-Avec cet exemple, si l'utilisateur utilise une imprimante et que la page mesure 800 pixels de haut, la requête média aurait été vérifiée. Il en aurait été de même si l'utilisateur avait utilisé un smartphone avec une zone d'affichage haute de 480 pixels en portrait car la deuxième clause aurait renvoyée true.
Le mot-clé not permet d'inverser le résultat d'une requête. Il inversera uniquement la requête sur laquelle il est appliqué (et non la liste des requêtes s'il est utilisé au sein de requêtes séparées par des virgules). Le mot-clé not ne peut pas être utilisé afin d'inverser une caractéristique média, il peut uniquement être utilisé pour une requête média complète. Dans la requête qui suit, l'opérateur not est évalué en dernier :
@media not all and (monochrome) { ... }
-
-
-La requête précédente est donc équivalente à :
- -@media not (all and (monochrome)) { ... }
-
-
-Mais elle n'est pas équivalente à :
- -@media (not all) and (monochrome) { ... }
-
-De même :
- -@media not screen and (color), print and (color) { ... }
-
-
-sera évaluée comme :
- -@media (not (screen and (color))), print and (color) { ... }
-
-Le mot-clé only empêche les navigateurs qui ne prennent pas en charge les requêtes média avec les caractéristiques média d'appliquer les styles concernés. Cet opérateur n'a aucun effet pour les navigateurs modernes.
@media only screen and (color) { ... }
-
-
-La spécification de niveau 4 pour les requêtes média ajoute des améliorations syntaxiques pour les requêtes média qui portent sur un intervalle (par exemple les critères de largeur et de hauteur). On peut par exemple utiliser le préfixe max- pour les largeurs et écrire :
@media (max-width: 30em) { ... }
-
-Avec les requêtes média de niveau 4, on peut écrire :
- -@media (width <= 30em) { ... }
-
-Si on utilise min- et max- conjointement, on peut tester l'appartenance d'une valeur à un intervalle :
@media (min-width: 30em) and (max-width: 50em) { ... }
-
-Avec les requêtes média de niveau 4, on peut écrire :
- -@media (30em <= width <= 50em ) { ... }
-
-
-Les requêtes média de niveau 4 permettent également d'utiliser une logique booléenne avec les opérateurs and, not et or.
notOn peut utiliser l'opérateur not() autour d'une caractéristique média afin de tester l'absence de cette caractéristique. Ainsi, on peut not(hover) pour cibler les appareils qui ne permettent pas le survol d'un élément :
@media (not(hover)) { ... }
-
-orIl est possible d'utiliser l'opérateur or pour tester une correspondance sur plus d'une caractéristique. Dans l'exemple suivant, on cible les appareils qui ont un affichage monochrome (not (color)) ou qui permettent de survoler les éléments (hover) :
@media (not (color)) or (hover) { ... }
-
-
-Les requêtes média (media queries) permettent de modifier l'apparence d'un site ou d'une application en fonction du type d'appareil (impression ou écran par exemple) et de ses caractéristiques (la résolution d'écran ou la largeur de la zone d'affichage (viewport) par exemple).
+ +Les requêtes média sont utilisées afin :
+ +@media et @import.<style>, <link>, <source> et d'autres éléments HTML grâce à l'attribut media=.Window.matchMedia() et MediaQueryList.addListener().Note : Les exemples de cet article utilisent @media à des fins d'illustration. Toutefois, la syntaxe est la même pour les différents types de requêtes média.
Une requête média se compose d'un type de média optionnel et d'une ou plusieurs expressions de caractéristiques de média. Plusieurs requêtes peuvent être combinées entre elles grâce à des opérateurs logiques. Les requêtes média ne sont pas sensibles à la casse.
+ +Une requête média vaut true si le type de média correspond à l'appareil utilisé pour l'affichage du document et si toutes les expressions relatives aux caractéristiques sont vraies. Les requêtes qui utilisent des types de média inconnus valent toujours false.
Note : Lorsqu'une feuille de style est attachée à un élément <link> comportant une requếte média, cette feuille de style sera toujours téléchargée, même si la requête renvoie false. Toutefois, le contenu de cette feuille n'est pas appliquée tant que le résultat de la requête ne devient pas true.
Un type de média définit une catégorie générale d'appareil. Le type de média est optionnel dans une requête média, sauf si celle-ci utilise les opérateurs logiques not ou only. Par défaut, le type de média utilisé est all.
allprintscreenspeechNote : Les types de média dépréciés CSS2.1 et Media Queries 3 ont défini plusieurs types additionnels (tty, tv, projection, handheld, braille, embossed, and aural) qui ont ensuite été dépréciés avec Media Queries 4. Ces types ne doivent donc plus être utilisés. Le type aural a été remplacé par le type speech.
Les caractéristiques média décrivent certaines caractéristiques spécifiques de l'agent utilisateur, de l'appareil d'affichage ou de l'environnement. Les expressions de caractéristique média testent leur présence ou leur valeur. Chaque expression de caractéristique doit être entourée de parenthèses.
+ +| Nom | +Résumé | +Notes | +
|---|---|---|
| {{cssxref("@media/width","width")}} | +La largeur de la zone d'affichage (viewport) | ++ |
| {{cssxref("@media/height","height")}} | +La hauteur de la zone d'affichage | ++ |
| {{cssxref("@media/aspect-ratio","aspect-ratio")}} | +Le rapport largeur/hauteur de la zone d'affichage | ++ |
| {{cssxref("@media/orientation","orientation")}} | +L'orientation la zone d'affichage | ++ |
| {{cssxref("@media/resolution","resolution")}} | +La densité de pixel pour l'appareil d'affichage | ++ |
| {{cssxref("@media/scan","scan")}} | +Le processus de scan de l'appareil d'affichage | ++ |
| {{cssxref("@media/grid","grid")}} | +Le type d'écran de l'appareil : matriciel ou grille ? | ++ |
| {{cssxref("@media/update-frequency","update")}} | +La fréquence de modification du contenu par l'appareil d'affichage | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/overflow-block","overflow-block")}} | +La façon dont l'appareil d'affichage gère le contenu qui dépasse de la zone d'affichage selon l'axe de bloc | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/overflow-inline","overflow-inline")}} | +La possibilité de faire défiler (scroll) le contenu qui dépasse de la zone d'affichage sur l'axe en ligne | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/color","color")}} | +Le nombre de bits pour chaque composante de couleur pour l'appareil d'affichage (ou 0 si l'appareil ne gère pas les couleurs) | ++ |
| {{cssxref("@media/color-gamut","color-gamut")}} | +Un intervalle approximatif des couleurs prises en charge par l'agent utilisateur et l'appareil d'affichage | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/color-index","color-index")}} | +Le nombre d'éléments dans le tableau des couleurs de l'appareil d'affichage (ou 0 si l'appareil ne dispose pas d'un tel tableau) | ++ |
| {{cssxref("@media/display-mode","display-mode")}} | +Le mode d'affichage de l'application, tel qu'indiqué par la propriété display du manifeste |
+ Définie dans la spécification pour les manifestes des applications web. | +
| {{cssxref("@media/monochrome","monochrome")}} | +Le nombre de bits par pixel pour le frame buffer monochrome de l'appareil d'affichage ou 0 si l'appareil n'est pas monochrome | ++ |
| {{cssxref("@media/inverted-colors","inverted-colors")}} | +L'inversion (ou non) des couleurs par l'agent utilisateur ou le système d'exploitation | +Reportée au niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/pointer","pointer")}} | +La présence d'un appareil de pointage comme mécanisme de saisie principal et sa précision | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/hover","hover")}} | +La capacité du mécanisme de saisie principal à survoler les éléments | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/any-pointer","any-pointer")}} | +La présence d'un appareil de pointage parmi les mécanismes de saisie et sa précision | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/any-hover","any-hover")}} | +La capacité d'un des mécanismes de saisie à survoler les éléments | +Ajoutée avec le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/light-level","light-level")}} | +Le niveau de luminosité de l'environnement | +Ajoutée avec le niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/prefers-reduced-motion", "prefers-reduced-motion")}} | +L'utilisateur préfère que la quantité de mouvement sur la page soit réduite. | +Ajoutée avec le niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/prefers-reduced-transparency", "prefers-reduced-transparency")}} | +L'utilisateur préfère que la transparence utilisée sur la page soit réduite. | +Ajoutée avec le niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/prefers-contrast", "prefers-contrast")}} | +L'utilisateur préfère que le contraste soit augmenté ou réduit entre des couleurs proches. | +Ajoutée avec le niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/prefers-color-scheme", "prefers-color-scheme")}} | +L'utilisateur préfère utiliser un thème clair ou un thème sombre. | +Ajoutée avec le niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/forced-colors", "forced-colors")}} | +Détecte si l'agent utilisateur restreint la palette de couleurs. | +Ajoutée avec le niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/scripting","scripting")}} | +La disponibilité des fonctions de script (JavaScript par exemple) | +Reportée au niveau 5 du module de spécification Media Queries. | +
| {{cssxref("@media/device-width","device-width")}} {{obsolete_inline}} | +La largeur de la surface de rendu pour l'appareil d'affichage | +Dépréciée par le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/device-height","device-height")}} {{obsolete_inline}} | +La hauteur de la surface de rendu pour l'appareil d'affichage | +Dépréciée par le niveau 4 du module de spécification Media Queries. | +
| {{cssxref("@media/device-aspect-ratio","device-aspect-ratio")}} {{obsolete_inline}} | +Le rapport largeur/hauteur de la surface de rendu pour l'appareil d'affichage | +Dépréciée par le niveau 4 du module de spécification Media Queries. | +
Les opérateurs logiques not, and et only peuvent être utilisés afin de construire une requête média complexe. Il est aussi possible de combiner plusieurs requêtes média en les séparant par des virgules.
andL'opérateur and permet de combiner plusieurs requêtes média en une seule. Pour que la requête résultante soit vraie, il faut que chacune des sous-requêtes soit vraie. Cet opérateur est également utilisé afin de relier des caractéristiques média avec des types de média.
notL'opérateur not est utilisé afin d'obtenir le résultat opposé d'une requête média (il renvoie true si l'opérande renvoie false). S'il est utilisé dans une liste de requêtes séparées par des virgules, il ne nie que la requête sur laquelle il est appliqué. Si l'opérateur not est utilisé, la requête doit nécessairement contenir un type de média.
Note : Pour la spécification de niveau 3, l'opérateur not ne peut pas être utilisé afin de prendre l'opposé d'une expression de caractéristique de média, il ne peut servir qu'à l'échelle d'une requête média entière.
onlyL'opérateur only est utilisé afin d'appliquer un style uniquement si l'intégralité de la requête est vérifiée. Il permet d'empêcher les anciens navigateurs d'appliquer les styles concernés. Si on utilise pas only, un ancien navigateur interprètera screen and (max-width: 500px) comme screen uniquement (appliquant ainsi le style à tous les écrans). Si l'opérateur only est utilisé, la requête doit nécessairement contenir un type de média.
, (virgule)Les virgules permettent de combiner plusieurs requêtes en une. Chaque requête est traitée séparément. Autrement dit, si une des requêtes de la liste renvoie true, toute la requête combinée renverra true. En ce sens, l'opérateur , agit comme un opérateur booléen or.
Les types de média décrivent la catégorie générale de l'appareil utilisé. Bien que la plupart des sites web soient principalement conçus pour être affichés sur des écrans, il est possible d'avoir des styles spécifiques pour les impressions ou pour les lecteurs d'écran. Voici une requête qui permet de cibler les imprimantes ou autres appareils imprimant le contenu sur plusieurs pages :
+ +@media print { ... }
+
+Il est possible de cibler plusieurs types à la fois. La règle suivante permet de cibler les écrans et les appareils d'impression :
+ +@media screen, print { ... }
+
+Pour une liste complète des types de média, voir ci-avant. Ces types étant très génériques, peu de valeurs sont disponibles. Afin d'avoir un ciblage plus fin, on pourra utiliser les caractéristiques média.
+ +Les caractéristiques média décrivent les caractéristiques spécifiques d'un agent utilisateur, d'un appareil d'affichage ou de l'environnement. On peut ainsi cibler différents styles pour les écrans larges, pour les ordinateurs qui disposent d'une souris ou pour les appareils utilisés dans une faible luminosité. Dans l'exemple qui suit, on a une requête qui vérifie si le mécanisme de saisie principal de l'appareil peut survoler les éléments :
+ +@media (hover: hover) { ... }
+
+De nombreuses caractéristiques média sont des caractéristiques portant sur un intervalle et peuvent être préfixées par min- ou max- afin d'exprimer des seuils de valeurs. Par exemple, la requête suivante permet d'appliquer des styles à condition que la largeur de la zone d'affichage (viewport) soit inférieure à 1250px :
@media (max-width: 1250px) { ... }
+
+Note : Selon la spécification du W3C, les barres de défilement font partie des dimensions de la page. Ainsi la barre de défilement vertical s'ajoute à la largeur du document tandis que la barre de défilement horizontal s'ajoute à la hauteur du document. Cependant tous les navigateurs n'ont pas adopté cette recommandation (Chrome par exemple) et tous n'ont pas opté pour la même taille de barre de défilement, ce qui mène à un développement plus difficile pour assurer une comptabilité sur tous les navigateurs.
+Si on utilise une caractéristique média sans indiquer de valeur, la requête sera vérifiée tant que la valeur de cette caractéristique n'est pas nulle (ou none pour la spécification de niveau 4). Ainsi, la requête suivante permettra d'appliquer les styles qu'elle contient si l'appareil peut afficher des couleurs :
@media (color) { ... }
+
+Si une caractéristique ne s'applique pas à l'appareil, les expressions utilisant cette caractéristique renverront false. Ainsi, la requête suivante aura toujours la valeur false car aucun appareil de synthèse vocale ne possède de caractéristique relative à ses proportions d'écran :
@media speech and (aspect-ratio: 11/5) { ... }
+
+Pour plus d'exemples, voir les pages de référence de chacune de ces caractéristiques depuis le tableau ci-dessus.
+ +Il est parfois nécessaire d'avoir une requête qui repose sur plusieurs conditions. Pour cela, on peut utiliser les opérateurs logiques : not, and, only et la virgule (,) afin de combiner plusieurs requêtes média.
Dans l'exemple précédent, on a utilisé l'opérateur and afin de combiner un type de média et une caractéristique média. Cet opérateur peut également servir à assembler plusieurs requêtes média pour en former la conjonction logique. L'opérateur not permet d'obtenir la négation d'une requête média tandis que l'opérateur only empêche les anciens navigateurs d'appliquer les styles qu'une requête contient.
Note : Dans la plupart des cas, le type de média all est utilisé par défaut si aucun autre type n'est fourni. Toutefois, lorsqu'on utilise les opérateurs not ou only, il est nécessaire de fournir un type de média explicite.
Le mot-clé and permet de combiner une caractéristique média avec un type de média ou avec d'autres caractéristiques média. L'exemple suivant permet de restreindre l'application d'un style aux appareils orientés en mode paysage et dont la largeur mesure au moins 30ems :
@media (min-width: 30em) and (orientation: landscape) { ... }
+
+Si on souhaite restreindre ces règles aux écrans, on pourra ajouter une clause avec le type de média screen :
@media screen and (min-width: 30em) and (orientation: landscape) { ... }
+
+La virgule peut être utilisée afin de créer une disjonction (un OU logique) sur différentes clauses (types de média, caractéristiques ou états). Dans l'exemple qui suit, les styles de la requête sont appliqués si l'appareil possède une hauteur supérieure ou égale à 680 pixels ou si l'écran est en mode portrait :
+ +@media (min-height: 680px), screen and (orientation: portrait) { ... }
+
+Avec cet exemple, si l'utilisateur utilise une imprimante et que la page mesure 800 pixels de haut, la requête média aurait été vérifiée. Il en aurait été de même si l'utilisateur avait utilisé un smartphone avec une zone d'affichage haute de 480 pixels en portrait car la deuxième clause aurait renvoyée true.
Le mot-clé not permet d'inverser le résultat d'une requête. Il inversera uniquement la requête sur laquelle il est appliqué (et non la liste des requêtes s'il est utilisé au sein de requêtes séparées par des virgules). Le mot-clé not ne peut pas être utilisé afin d'inverser une caractéristique média, il peut uniquement être utilisé pour une requête média complète. Dans la requête qui suit, l'opérateur not est évalué en dernier :
@media not all and (monochrome) { ... }
+
+
+La requête précédente est donc équivalente à :
+ +@media not (all and (monochrome)) { ... }
+
+
+Mais elle n'est pas équivalente à :
+ +@media (not all) and (monochrome) { ... }
+
+De même :
+ +@media not screen and (color), print and (color) { ... }
+
+
+sera évaluée comme :
+ +@media (not (screen and (color))), print and (color) { ... }
+
+Le mot-clé only empêche les navigateurs qui ne prennent pas en charge les requêtes média avec les caractéristiques média d'appliquer les styles concernés. Cet opérateur n'a aucun effet pour les navigateurs modernes.
@media only screen and (color) { ... }
+
+
+La spécification de niveau 4 pour les requêtes média ajoute des améliorations syntaxiques pour les requêtes média qui portent sur un intervalle (par exemple les critères de largeur et de hauteur). On peut par exemple utiliser le préfixe max- pour les largeurs et écrire :
@media (max-width: 30em) { ... }
+
+Avec les requêtes média de niveau 4, on peut écrire :
+ +@media (width <= 30em) { ... }
+
+Si on utilise min- et max- conjointement, on peut tester l'appartenance d'une valeur à un intervalle :
@media (min-width: 30em) and (max-width: 50em) { ... }
+
+Avec les requêtes média de niveau 4, on peut écrire :
+ +@media (30em <= width <= 50em ) { ... }
+
+
+Les requêtes média de niveau 4 permettent également d'utiliser une logique booléenne avec les opérateurs and, not et or.
notOn peut utiliser l'opérateur not() autour d'une caractéristique média afin de tester l'absence de cette caractéristique. Ainsi, on peut not(hover) pour cibler les appareils qui ne permettent pas le survol d'un élément :
@media (not(hover)) { ... }
+
+orIl est possible d'utiliser l'opérateur or pour tester une correspondance sur plus d'une caractéristique. Dans l'exemple suivant, on cible les appareils qui ont un affichage monochrome (not (color)) ou qui permettent de survoler les éléments (hover) :
@media (not (color)) or (hover) { ... }
+
+
+Les requêtes média (media queries) peuvent être utilisées afin d'améliorer l'accessibilité d'un site web.
- -prefers-reduced-motionLe clignotement ou les animations rapides peuvent poser problème, notamment pour les personnes souffrant de troubles tels que le troubles de déficit de l'attention ou d'epilepsie, de migraines, etc.
- -Cette méthode peut également améliorer l'expérience des utilisateurs en économisant l'énergie nécessaire à l'affichage de la page (avec une amélioration sensible pour les appareils avec une batterie faible ou qui ne sont pas particulièrement récents).
- -no-preferencereduceCet exemple illustre comment éviter les animations inutiles en activant une préférence pour réduire les mouvements à l'écran.
- -<div class="animation">animated box</div> -- -
.animation {
- -webkit-animation: vibrate 0.3s linear infinite both;
- animation: vibrate 0.3s linear infinite both;
-}
-
-@media (prefers-reduced-motion: reduce) {
- .animation {
- animation: none;
- }
-}
-
-
-{{EmbedLiveSample("Exemple")}}
- -La caractéristique média -ms-high-contrast est spécifique à Microsoft mais permet d'indiquer si l'application est affichée avec un mode de contraste élevé et, si c'est le cas, quelle variation de couleur est utilisée.
Cela ne bénéficie pas seulement aux utilisateurs souffrant de troubles de la vision mais aussi aux personnes qui consultent le document avec une lumière ambiante importante (ex. sur un écran faiblement éclairé et en plein soleil).
- -La caractéristique média -ms-high-contrast peut être définie avec l'une des valeurs suivantes.
activeCette valeur indique que les règles suivantes seront appliquées lorsque le système utilise un mode de contraste élevé, quelle que soit la variation de couleurs.
-black-on-whiteCette valeur indique que les règles suivantes seront appliquées lorsque le système utilise un mode de contraste élevé avec une dominante noir sur blanc.
-white-on-blackCette valeur indique que les règles suivantes seront appliquées lorsque le système utilise un mode de contraste élevé avec une dominante blanc sur noir.
-Les déclarations suivantes s'appliqueront respectivement aux applications qui sont affichées avec un mode de contraste élevé, quelle que soit la variation de couleur (1), avec une dominante noir sur blanc (2), avec une dominante blanc sur noir (3).
- -@media screen and (-ms-high-contrast: active) {
- /* Toutes les règles appliquées en contraste élevé */
-}
-@media screen and (-ms-high-contrast: black-on-white) {
- div { background-image: url('image-bw.png'); }
-}
-@media screen and (-ms-high-contrast: white-on-black) {
- div { background-image: url('image-wb.png'); }
-}
-
diff --git a/files/fr/web/css/media_queries/using_media_queries_for_accessibility/index.md b/files/fr/web/css/media_queries/using_media_queries_for_accessibility/index.md
new file mode 100644
index 0000000000..1086137f49
--- /dev/null
+++ b/files/fr/web/css/media_queries/using_media_queries_for_accessibility/index.md
@@ -0,0 +1,97 @@
+---
+title: Utilisation des requêtes média pour l'accessibilité
+slug: Web/CSS/Media_Queries/Using_Media_Queries_for_Accessibility
+tags:
+ - '@media'
+ - Accessibilité
+ - CSS
+translation_of: Web/CSS/Media_Queries/Using_Media_Queries_for_Accessibility
+original_slug: Web/CSS/Requêtes_média/Utilisation_requêtes_media_accessibilité
+---
+Les requêtes média (media queries) peuvent être utilisées afin d'améliorer l'accessibilité d'un site web.
+ +prefers-reduced-motionLe clignotement ou les animations rapides peuvent poser problème, notamment pour les personnes souffrant de troubles tels que le troubles de déficit de l'attention ou d'epilepsie, de migraines, etc.
+ +Cette méthode peut également améliorer l'expérience des utilisateurs en économisant l'énergie nécessaire à l'affichage de la page (avec une amélioration sensible pour les appareils avec une batterie faible ou qui ne sont pas particulièrement récents).
+ +no-preferencereduceCet exemple illustre comment éviter les animations inutiles en activant une préférence pour réduire les mouvements à l'écran.
+ +<div class="animation">animated box</div> ++ +
.animation {
+ -webkit-animation: vibrate 0.3s linear infinite both;
+ animation: vibrate 0.3s linear infinite both;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .animation {
+ animation: none;
+ }
+}
+
+
+{{EmbedLiveSample("Exemple")}}
+ +La caractéristique média -ms-high-contrast est spécifique à Microsoft mais permet d'indiquer si l'application est affichée avec un mode de contraste élevé et, si c'est le cas, quelle variation de couleur est utilisée.
Cela ne bénéficie pas seulement aux utilisateurs souffrant de troubles de la vision mais aussi aux personnes qui consultent le document avec une lumière ambiante importante (ex. sur un écran faiblement éclairé et en plein soleil).
+ +La caractéristique média -ms-high-contrast peut être définie avec l'une des valeurs suivantes.
activeCette valeur indique que les règles suivantes seront appliquées lorsque le système utilise un mode de contraste élevé, quelle que soit la variation de couleurs.
+black-on-whiteCette valeur indique que les règles suivantes seront appliquées lorsque le système utilise un mode de contraste élevé avec une dominante noir sur blanc.
+white-on-blackCette valeur indique que les règles suivantes seront appliquées lorsque le système utilise un mode de contraste élevé avec une dominante blanc sur noir.
+Les déclarations suivantes s'appliqueront respectivement aux applications qui sont affichées avec un mode de contraste élevé, quelle que soit la variation de couleur (1), avec une dominante noir sur blanc (2), avec une dominante blanc sur noir (3).
+ +@media screen and (-ms-high-contrast: active) {
+ /* Toutes les règles appliquées en contraste élevé */
+}
+@media screen and (-ms-high-contrast: black-on-white) {
+ div { background-image: url('image-bw.png'); }
+}
+@media screen and (-ms-high-contrast: white-on-black) {
+ div { background-image: url('image-wb.png'); }
+}
+
diff --git a/files/fr/web/css/microsoft_extensions/index.html b/files/fr/web/css/microsoft_extensions/index.html
deleted file mode 100644
index e48424afce..0000000000
--- a/files/fr/web/css/microsoft_extensions/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: Extensions CSS de Microsoft
-slug: Web/CSS/Microsoft_Extensions
-tags:
- - CSS
- - Non-standard
- - Reference
-translation_of: Web/CSS/Microsoft_Extensions
-original_slug: Web/CSS/Extensions_CSS_Microsoft
----
-Les applications Microsoft, telles que Edge ou Internet Explorer, prennent en charge différentes extensions à CSS. Ces extensions sont préfixées par -ms.
Note : Ces propriétés et pseudo-classes ne fonctionneront que pour les applications Microsoft et ne sont pas en voie de standardisation.
-Les applications Microsoft, telles que Edge ou Internet Explorer, prennent en charge différentes extensions à CSS. Ces extensions sont préfixées par -ms.
Note : Ces propriétés et pseudo-classes ne fonctionneront que pour les applications Microsoft et ne sont pas en voie de standardisation.
+La fonction CSS min() permet d'obtenir la plus petite valeurs parmi une liste d'expressions, séparées par des virgules afin d'utiliser ce minimum comme valeur d'une propriété CSS. La fonction min() peut être utilisée à tout endroit où une valeur de type {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<percentage>")}}, {{cssxref("<number>")}} ou {{cssxref("<integer>")}} est autorisée.
/* property: min(expression [, expression]) */
-width: min(10vw, 4em, 80px);
-
-
-Dans l'exemple précédent, la largeur mesurera au plus 80 pixels de large, sera moins large si la zone d'affichage (viewport) est moins large que 800 pixels ou si un em vaut moins que 20 pixels de large. Autrement dit, la valeur fournie min() est calculée comme un seuil et généralement, on aura un seuil maximal dans une expression min() (ce qui peut paraître contradictoire à juste titre).
La fonction min() prend comme arguments une ou plusieurs expressions, séparées par des virgules. Elle renvoie comme valeur le plus petit résultat des évaluations des expressions passées en arguments.
Les expressions passées à cette fonction peuvent utiliser des fonctions mathématiques (cf. {{CSSxRef("calc", "calc()")}}), des valeurs littérales ou d'autres expressions (ex. avec {{CSSxRef("attr", "attr()")}}). Il est nécessaire que ces expressions fournissent une valeur d'un type valide (ex. {{cssxref("<length>")}}).
- -Il est tout à fait possible de combiner des valeurs avec différentes unités dans les expressions passées en arguments. On peut également utiliser des parenthèses à l'intérieur des expressions afin de s'assurer de la précédence des opérateurs.
- -auto si le tableau suit une disposition automatique ou fixée.min() et min() dans les expressions et d'utiliser les opérateurs mathématiques d'addition, soustraction, multiplication, division sans nécessairement recourir à calc().min() permet de simplifier la définition d'une taille maximale, par exemple la largeur d'une image. Dans cet exemple, la règle CSS permet d'obtenir un logo qui s'étire sur la moitié de la fenêtre pour les fenêtres les moins larges, sans dépasser 300 pixels et sans avoir à utiliser des requêtes média.
.logo {
- width: min(50vw, 300px);
-}
-
-
-<img src="https://developer.mozilla.org/static/img/web-docs-sprite.svg" alt="MDN Web Docs" class="logo">- -
{{EmbedLiveSample('Garantir_une_taille_minimale_pour_des_images', '100%', '110')}}
- -La fonction min() peut également être utilisée pour définir la taille maximale d'un contrôle dans un formulaire et permettre de réduire le champ et le libellé associé lorsque la largeur de l'écran diminue.
input, label {
- padding: 2px;
- box-sizing: border-box;
- display: inline-block;
- width: min(40%, 400px);
- background-color: pink;
-}
-
-form {
- margin: 4px;
- border: 1px solid black;
- padding: 4px;
-}
-
-
-On a ici la règle qui s'applique au formulaire et qui occupe 100% de la largeur de son parent. On déclare avec min() que la largeur doit mesurer au plus 400 pixels ou 40% de la largeur du formulaire. Autrement dit, la taille la plus grande que pourra atteindre le champ et le libellé sera 400 pixels. La largeur la plus étroite sera nécessairement 40% (ce qui peut être tout petit sur l'affichage d'une montre par exemple).
<form> - <label>Saisir quelque chose :</label> - <input type="text"> -</form> -- -
{{EmbedLiveSample("Définir_une_taille_maximale_pour_un_champ_de_saisie_et_son_libellé", '100%', '110')}}
- -Lorsqu'on utilise min() afin de contrôler la taille du texte, il faut s'assurer que le texte puisse toujours être suffisamment grand pour être lisible. Pour cela, on peut imbriquer l'appel à min() dans max() utilisant une unité de longueur relative en deuxième argument afin de garantir une lisibilité minimale :
small {
- font-size: max(min(0.5vw, 0.5em), 1rem);
-}
-
-On aura ainsi une taille minimale de 1rem et la taille du texte qui se met à l'échelle si on zoome sur la page.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#calc-notation', 'min()')}} | -{{Spec2('CSS4 Values')}} | -- |
{{Compat("css.types.min")}}
- -La fonction CSS min() permet d'obtenir la plus petite valeurs parmi une liste d'expressions, séparées par des virgules afin d'utiliser ce minimum comme valeur d'une propriété CSS. La fonction min() peut être utilisée à tout endroit où une valeur de type {{cssxref("<length>")}}, {{cssxref("<frequency>")}}, {{cssxref("<angle>")}}, {{cssxref("<time>")}}, {{cssxref("<percentage>")}}, {{cssxref("<number>")}} ou {{cssxref("<integer>")}} est autorisée.
/* property: min(expression [, expression]) */
+width: min(10vw, 4em, 80px);
+
+
+Dans l'exemple précédent, la largeur mesurera au plus 80 pixels de large, sera moins large si la zone d'affichage (viewport) est moins large que 800 pixels ou si un em vaut moins que 20 pixels de large. Autrement dit, la valeur fournie min() est calculée comme un seuil et généralement, on aura un seuil maximal dans une expression min() (ce qui peut paraître contradictoire à juste titre).
La fonction min() prend comme arguments une ou plusieurs expressions, séparées par des virgules. Elle renvoie comme valeur le plus petit résultat des évaluations des expressions passées en arguments.
Les expressions passées à cette fonction peuvent utiliser des fonctions mathématiques (cf. {{CSSxRef("calc", "calc()")}}), des valeurs littérales ou d'autres expressions (ex. avec {{CSSxRef("attr", "attr()")}}). Il est nécessaire que ces expressions fournissent une valeur d'un type valide (ex. {{cssxref("<length>")}}).
+ +Il est tout à fait possible de combiner des valeurs avec différentes unités dans les expressions passées en arguments. On peut également utiliser des parenthèses à l'intérieur des expressions afin de s'assurer de la précédence des opérateurs.
+ +auto si le tableau suit une disposition automatique ou fixée.min() et min() dans les expressions et d'utiliser les opérateurs mathématiques d'addition, soustraction, multiplication, division sans nécessairement recourir à calc().min() permet de simplifier la définition d'une taille maximale, par exemple la largeur d'une image. Dans cet exemple, la règle CSS permet d'obtenir un logo qui s'étire sur la moitié de la fenêtre pour les fenêtres les moins larges, sans dépasser 300 pixels et sans avoir à utiliser des requêtes média.
.logo {
+ width: min(50vw, 300px);
+}
+
+
+<img src="https://developer.mozilla.org/static/img/web-docs-sprite.svg" alt="MDN Web Docs" class="logo">+ +
{{EmbedLiveSample('Garantir_une_taille_minimale_pour_des_images', '100%', '110')}}
+ +La fonction min() peut également être utilisée pour définir la taille maximale d'un contrôle dans un formulaire et permettre de réduire le champ et le libellé associé lorsque la largeur de l'écran diminue.
input, label {
+ padding: 2px;
+ box-sizing: border-box;
+ display: inline-block;
+ width: min(40%, 400px);
+ background-color: pink;
+}
+
+form {
+ margin: 4px;
+ border: 1px solid black;
+ padding: 4px;
+}
+
+
+On a ici la règle qui s'applique au formulaire et qui occupe 100% de la largeur de son parent. On déclare avec min() que la largeur doit mesurer au plus 400 pixels ou 40% de la largeur du formulaire. Autrement dit, la taille la plus grande que pourra atteindre le champ et le libellé sera 400 pixels. La largeur la plus étroite sera nécessairement 40% (ce qui peut être tout petit sur l'affichage d'une montre par exemple).
<form> + <label>Saisir quelque chose :</label> + <input type="text"> +</form> ++ +
{{EmbedLiveSample("Définir_une_taille_maximale_pour_un_champ_de_saisie_et_son_libellé", '100%', '110')}}
+ +Lorsqu'on utilise min() afin de contrôler la taille du texte, il faut s'assurer que le texte puisse toujours être suffisamment grand pour être lisible. Pour cela, on peut imbriquer l'appel à min() dans max() utilisant une unité de longueur relative en deuxième argument afin de garantir une lisibilité minimale :
small {
+ font-size: max(min(0.5vw, 0.5em), 1rem);
+}
+
+On aura ainsi une taille minimale de 1rem et la taille du texte qui se met à l'échelle si on zoome sur la page.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#calc-notation', 'min()')}} | +{{Spec2('CSS4 Values')}} | ++ |
{{Compat("css.types.min")}}
+ +La propriété min-block-size définit la taille minimale horizontale ou verticale d'un élément de bloc (block) selon le mode d'écriture utilisé. Cette propriété « logique » correspond à la propriété {{cssxref("min-width")}} ou {{cssxref("min-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}.
Si le mode d'écriture est orienté verticalement, min-block-size fait référence à la hauteur minimale de l'élément. Sinon, elle fait référence à la largeur minimale de l'élément. to the minimal height of the element, otherwise it relates to the minimal width of the element. La propriété {{cssxref("min-inline-size")}} peut être utilisée pour les éléments en ligne.
/* Valeurs de longueur */ -/* Type <length> */ -min-block-size: 100px; -min-block-size: 5em; - -/* Valeurs proportionnelles à la */ -/* largeur du bloc englobant */ -/* Type <percentage> */ -min-block-size: 10%; - -/* Valeurs avec un mot-clé */ -min-block-size: max-content; -min-block-size: min-content; -min-block-size: fit-content; -min-block-size: fill-available; - -/* Valeurs globales */ -min-block-size: inherit; -min-block-size: initial; -min-block-size: unset; -- -
La propriété min-block-size peut prendre les mêmes valeurs que les propriétés {{cssxref("min-width")}} ou {{cssxref("min-height")}}.
.exemple {
- writing-mode: vertical-rl;
- background-color: yellow;
- block-size: 5%;
- min-block-size: 200px;
-}
-
-<p class="exemple">Texte d'exemple</p> -- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-min-block-size", "min-block-size")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.min-block-size")}}
- -La propriété min-block-size définit la taille minimale horizontale ou verticale d'un élément de bloc (block) selon le mode d'écriture utilisé. Cette propriété « logique » correspond à la propriété {{cssxref("min-width")}} ou {{cssxref("min-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}.
Si le mode d'écriture est orienté verticalement, min-block-size fait référence à la hauteur minimale de l'élément. Sinon, elle fait référence à la largeur minimale de l'élément. to the minimal height of the element, otherwise it relates to the minimal width of the element. La propriété {{cssxref("min-inline-size")}} peut être utilisée pour les éléments en ligne.
/* Valeurs de longueur */ +/* Type <length> */ +min-block-size: 100px; +min-block-size: 5em; + +/* Valeurs proportionnelles à la */ +/* largeur du bloc englobant */ +/* Type <percentage> */ +min-block-size: 10%; + +/* Valeurs avec un mot-clé */ +min-block-size: max-content; +min-block-size: min-content; +min-block-size: fit-content; +min-block-size: fill-available; + +/* Valeurs globales */ +min-block-size: inherit; +min-block-size: initial; +min-block-size: unset; ++ +
La propriété min-block-size peut prendre les mêmes valeurs que les propriétés {{cssxref("min-width")}} ou {{cssxref("min-height")}}.
.exemple {
+ writing-mode: vertical-rl;
+ background-color: yellow;
+ block-size: 5%;
+ min-block-size: 200px;
+}
+
+<p class="exemple">Texte d'exemple</p> ++ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-min-block-size", "min-block-size")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.min-block-size")}}
+ +La propriété min-height est utilisée afin de définir la hauteur minimale d'un élément. Elle empêche ainsi que la valeur de la propriété {{cssxref("height")}} devienne inférieure à min-height.
La valeur de la propriété min-height surcharge celles de {{cssxref("max-height")}} et {{cssxref("height")}} lorsque min-height est supérieure.
/* Valeur de longueur */ -/* Type <length> */ -min-height: 3.5em; - -/* Valeur relative au bloc */ -/* Type <percentage> */ -min-height: 10%; - -/* Valeurs avec un mot-clé */ -min-height: max-content; -min-height: min-content; -min-height: fit-content; -min-height: fill-available; - -/* Valeurs globales */ -min-height: inherit; -min-height: initial; -min-height: unset; -- -
<length><percentage>max-content {{experimental_inline}}min-content {{experimental_inline}}fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}min-content. La spécification CSS3 sur le dimensionnement (CSS3 Sizing) définit un algorithme plus complexe mais qui n'est implémenté par aucun navigateur, y compris de façon expérimentale.<div> Lorem ipsum tralala -<p class="exemple">toto</p> - Duis aute irure dolor in reprehender -</div>- -
div {
- height: 150px;
- border: solid 1px red;
-}
-
-.exemple {
- min-height: 70%;
- border: solid 1px blue;
-}
-
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'min-height')}} | -{{Spec2('CSS3 Sizing')}} | -Ajout des mots-clés max-content, min-content, fit-content et fill-available. |
-
| {{SpecName('CSS3 Flexbox', '#min-auto', 'min-height')}} | -{{Spec2('CSS3 Flexbox')}} | -
- Ajout du mot-clé |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'min-height')}} | -{{Spec2('CSS3 Transitions')}} | -min-height peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'visudet.html#min-max-heights', 'min-height')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.min-height")}}
- -La propriété min-height est utilisée afin de définir la hauteur minimale d'un élément. Elle empêche ainsi que la valeur de la propriété {{cssxref("height")}} devienne inférieure à min-height.
La valeur de la propriété min-height surcharge celles de {{cssxref("max-height")}} et {{cssxref("height")}} lorsque min-height est supérieure.
/* Valeur de longueur */ +/* Type <length> */ +min-height: 3.5em; + +/* Valeur relative au bloc */ +/* Type <percentage> */ +min-height: 10%; + +/* Valeurs avec un mot-clé */ +min-height: max-content; +min-height: min-content; +min-height: fit-content; +min-height: fill-available; + +/* Valeurs globales */ +min-height: inherit; +min-height: initial; +min-height: unset; ++ +
<length><percentage>max-content {{experimental_inline}}min-content {{experimental_inline}}fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}min-content. La spécification CSS3 sur le dimensionnement (CSS3 Sizing) définit un algorithme plus complexe mais qui n'est implémenté par aucun navigateur, y compris de façon expérimentale.<div> Lorem ipsum tralala +<p class="exemple">toto</p> + Duis aute irure dolor in reprehender +</div>+ +
div {
+ height: 150px;
+ border: solid 1px red;
+}
+
+.exemple {
+ min-height: 70%;
+ border: solid 1px blue;
+}
+
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'min-height')}} | +{{Spec2('CSS3 Sizing')}} | +Ajout des mots-clés max-content, min-content, fit-content et fill-available. |
+
| {{SpecName('CSS3 Flexbox', '#min-auto', 'min-height')}} | +{{Spec2('CSS3 Flexbox')}} | +
+ Ajout du mot-clé |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'min-height')}} | +{{Spec2('CSS3 Transitions')}} | +min-height peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'visudet.html#min-max-heights', 'min-height')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.min-height")}}
+ +La propriété min-inline-size définit la taille minimale horizontale ou verticale d'un élément en ligne (inline) selon le mode d'écriture utilisé. Cette propriété « logique » correspond à la propriété {{cssxref("min-width")}} ou {{cssxref("min-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}.
Si le mode d'écriture est orienté verticalement, min-inline-size fait référence à la hauteur minimale de l'élément. Sinon, elle fait référence à la largeur minimale de l'élément. to the minimal height of the element, otherwise it relates to the minimal width of the element. La propriété {{cssxref("min-block-size")}} peut être utilisée pour les blocs.
/* Valeurs de longueur */ -/* Type <length> */ -min-inline-size: 100px; -min-inline-size: 5em; - -/* Valeurs proportionnelles à la */ -/* largeur du bloc englobant */ -/* Type <percentage> */ -min-inline-size: 10%; - -/* Valeurs avec un mot-clé */ -min-inline-size: max-content; -min-inline-size: min-content; -min-inline-size: fit-content; -min-inline-size: fill-available; - -/* Valeurs globales */ -min-inline-size: inherit; -min-inline-size: initial; -min-inline-size: unset; -- -
La propriété min-inline-size peut prendre les mêmes valeurs que les propriétés {{cssxref("min-width")}} ou {{cssxref("min-height")}}.
.exemple {
- writing-mode: vertical-rl;
- background-color: yellow;
- block-size: 5%;
- min-inline-size: 200px;
-}
-
-<p class="exemple">Texte d'exemple</p> -- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-min-inline-size", "min-inline-size")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.min-inline-size")}}
- -La propriété min-inline-size définit la taille minimale horizontale ou verticale d'un élément en ligne (inline) selon le mode d'écriture utilisé. Cette propriété « logique » correspond à la propriété {{cssxref("min-width")}} ou {{cssxref("min-height")}} selon la valeur utilisée pour {{cssxref("writing-mode")}}.
Si le mode d'écriture est orienté verticalement, min-inline-size fait référence à la hauteur minimale de l'élément. Sinon, elle fait référence à la largeur minimale de l'élément. to the minimal height of the element, otherwise it relates to the minimal width of the element. La propriété {{cssxref("min-block-size")}} peut être utilisée pour les blocs.
/* Valeurs de longueur */ +/* Type <length> */ +min-inline-size: 100px; +min-inline-size: 5em; + +/* Valeurs proportionnelles à la */ +/* largeur du bloc englobant */ +/* Type <percentage> */ +min-inline-size: 10%; + +/* Valeurs avec un mot-clé */ +min-inline-size: max-content; +min-inline-size: min-content; +min-inline-size: fit-content; +min-inline-size: fill-available; + +/* Valeurs globales */ +min-inline-size: inherit; +min-inline-size: initial; +min-inline-size: unset; ++ +
La propriété min-inline-size peut prendre les mêmes valeurs que les propriétés {{cssxref("min-width")}} ou {{cssxref("min-height")}}.
.exemple {
+ writing-mode: vertical-rl;
+ background-color: yellow;
+ block-size: 5%;
+ min-inline-size: 200px;
+}
+
+<p class="exemple">Texte d'exemple</p> ++ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-min-inline-size", "min-inline-size")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.min-inline-size")}}
+ +La propriété min-width est utilisée pour définir la largeur minimale d'un élément donné. Elle empêche la valeur de la propriété {{cssxref("width")}} de devenir inférieure à la valeur spécifiée par min-width (autrement dit, min-width est une borne inférieure pour width).
La valeur de min-width surcharge les valeurs de {{cssxref("max-width")}} et de {{cssxref("width")}} si elle est supérieure à l'une de ces propriétés.
/* Valeur de longueur */ -/* Type <length> */ -min-width: 3.5em; - -/* Valeurs relatives */ -/* Type <percentage> */ -min-width: 10%; - -/* Valeurs avec un mot-clé */ -min-width: max-content; -min-width: min-content; -min-width: fit-content; -min-width: fill-available; - -/* Valeurs globales */ -min-width: inherit; -min-width: initial; -min-width: unset; -- -
<length><percentage>automax-content {{experimental_inline}}min-content {{experimental_inline}}fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}min(max-content, max(min-content, fill-available)).<div> Lorem ipsum tralala sit amet, consectetur adipisicing - <p> - Ut enim ad minim veniam, quis nostrud exercitation - ullamco laboris nisi ut aliquip ex ea commodo consequat. - </p> -</div>- -
div {
- width: 250px;
- border: solid 1px red;
-}
-
-p {
- max-width: 60%;
- border: solid 1px blue;
-}
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'min-width')}} | -{{Spec2('CSS3 Sizing')}} | -Ajout des mots-clés max-content, min-content, fit-content et fill-available. |
-
| {{SpecName('CSS3 Flexbox', '#min-size-auto', 'min-width')}} | -{{Spec2('CSS3 Flexbox')}} | -Ajout du mot-clé auto qui est utilisé comme valeur initiale. |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'min-width')}} | -{{Spec2('CSS3 Transitions')}} | -min-width peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'visudet.html#min-max-widths', 'min-width')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.min-width")}}
- -La propriété min-width est utilisée pour définir la largeur minimale d'un élément donné. Elle empêche la valeur de la propriété {{cssxref("width")}} de devenir inférieure à la valeur spécifiée par min-width (autrement dit, min-width est une borne inférieure pour width).
La valeur de min-width surcharge les valeurs de {{cssxref("max-width")}} et de {{cssxref("width")}} si elle est supérieure à l'une de ces propriétés.
/* Valeur de longueur */ +/* Type <length> */ +min-width: 3.5em; + +/* Valeurs relatives */ +/* Type <percentage> */ +min-width: 10%; + +/* Valeurs avec un mot-clé */ +min-width: max-content; +min-width: min-content; +min-width: fit-content; +min-width: fill-available; + +/* Valeurs globales */ +min-width: inherit; +min-width: initial; +min-width: unset; ++ +
<length><percentage>automax-content {{experimental_inline}}min-content {{experimental_inline}}fill-available{{experimental_inline}}available.fit-content {{experimental_inline}}min(max-content, max(min-content, fill-available)).<div> Lorem ipsum tralala sit amet, consectetur adipisicing + <p> + Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. + </p> +</div>+ +
div {
+ width: 250px;
+ border: solid 1px red;
+}
+
+p {
+ max-width: 60%;
+ border: solid 1px blue;
+}
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Sizing', '#width-height-keywords', 'min-width')}} | +{{Spec2('CSS3 Sizing')}} | +Ajout des mots-clés max-content, min-content, fit-content et fill-available. |
+
| {{SpecName('CSS3 Flexbox', '#min-size-auto', 'min-width')}} | +{{Spec2('CSS3 Flexbox')}} | +Ajout du mot-clé auto qui est utilisé comme valeur initiale. |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'min-width')}} | +{{Spec2('CSS3 Transitions')}} | +min-width peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'visudet.html#min-max-widths', 'min-width')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.min-width")}}
+ +La fonction CSS minmax() définit un intervalle de taille supérieure ou égale à min et inférieure ou égale à max. Elle est utilisée avec les grilles CSS.
/* Valeurs de type <inflexible-breadth>, <track-breadth>*/ -minmax(200px, 1fr) -minmax(400px, 50%) -minmax(30%, 300px) -minmax(100px, max-content) -minmax(min-content, 400px) -minmax(max-content, auto) -minmax(auto, 300px) -minmax(min-content, auto) - -/* Valeurs de type <fixed-breadth>, <track-breadth> */ -minmax(200px, 1fr) -minmax(30%, 300px) -minmax(400px, 50%) -minmax(50%, min-content) -minmax(300px, max-content) -minmax(200px, auto) - -/* Valeurs de type <inflexible-breadth>, <fixed-breadth> */ -minmax(400px, 50%) -minmax(30%, 300px) -minmax(min-content, 200px) -minmax(max-content, 200px) -minmax(auto, 300px) -- -
minmax() est une fonction qui prend deux paramètres, min et max.
Chaque paramètre peut être une longueur (type <length>), un pourcentage (type <percentage>), une valeur de type <flex> ou l'un des mots-clés max-content, min-content, ou auto.
Si max est supérieur à min, alors max sera ignoré et minmax(min,max) sera considéré comme min. Utilisée comme valeur maximale, une valeur de type {{cssxref("flex_value","<flex>")}} définit le facteur de flexibilité de la piste de la grille ; une telle valeur ne peut pas être utilisée comme minimum.
<percentage> sera traitée comme auto. L'agent utilisateur pourra ajuster les contributions à la piste de taille intrinsèques selon la taille du conteneur de grille et augmenter la taille finale de la piste d'une quantité minimale pour respecter le pourcentage.fr qui indique le facteur de flexibilité/extensibilité de la piste. Chaque piste dimensionnée avec une valeur de type <flex> occupera une part de l'espace restant proportionnellement à son coefficient de flexibilité.max-contentmin-contentautomax-content. Utilisée comme minimum, elle représentera la plus grande des tailles minimales (définies par {{cssxref("min-width")}}/{{cssxref("min-height")}}) des objets de la grille qui occupent la piste.minmax() peut être utilisée pour les propriétés suivantes :
#container {
- display: grid;
- grid-template-columns: minmax(min-content, 300px) minmax(200px, 1fr) 150px;
- grid-gap: 5px;
- box-sizing: border-box;
- height: 200px;
- width: 100%;
- background-color: #8cffa0;
- padding: 10px;
-}
-
-#container > div {
- background-color: #8ca0ff;
- padding: 5px;
-}
-
-
-<div id="container"> - <div> - Aussi large que le contenu, large d'au plus 300 pixels. - </div> - <div> - Item flexible mais dont la largeur vaut au moins 200 pixels. - </div> - <div> - Item avec une largeur de 150 pixels. - </div> -</div>- -
{{EmbedLiveSample("Examples", "100%", 200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Grid", "#valdef-grid-template-columns-minmax", "minmax()")}} | -{{Spec2("CSS Grid")}} | -Définition initiale. | -
{{Compat("css.properties.grid-template-columns.minmax")}}
- -La fonction CSS minmax() définit un intervalle de taille supérieure ou égale à min et inférieure ou égale à max. Elle est utilisée avec les grilles CSS.
/* Valeurs de type <inflexible-breadth>, <track-breadth>*/ +minmax(200px, 1fr) +minmax(400px, 50%) +minmax(30%, 300px) +minmax(100px, max-content) +minmax(min-content, 400px) +minmax(max-content, auto) +minmax(auto, 300px) +minmax(min-content, auto) + +/* Valeurs de type <fixed-breadth>, <track-breadth> */ +minmax(200px, 1fr) +minmax(30%, 300px) +minmax(400px, 50%) +minmax(50%, min-content) +minmax(300px, max-content) +minmax(200px, auto) + +/* Valeurs de type <inflexible-breadth>, <fixed-breadth> */ +minmax(400px, 50%) +minmax(30%, 300px) +minmax(min-content, 200px) +minmax(max-content, 200px) +minmax(auto, 300px) ++ +
minmax() est une fonction qui prend deux paramètres, min et max.
Chaque paramètre peut être une longueur (type <length>), un pourcentage (type <percentage>), une valeur de type <flex> ou l'un des mots-clés max-content, min-content, ou auto.
Si max est supérieur à min, alors max sera ignoré et minmax(min,max) sera considéré comme min. Utilisée comme valeur maximale, une valeur de type {{cssxref("flex_value","<flex>")}} définit le facteur de flexibilité de la piste de la grille ; une telle valeur ne peut pas être utilisée comme minimum.
<percentage> sera traitée comme auto. L'agent utilisateur pourra ajuster les contributions à la piste de taille intrinsèques selon la taille du conteneur de grille et augmenter la taille finale de la piste d'une quantité minimale pour respecter le pourcentage.fr qui indique le facteur de flexibilité/extensibilité de la piste. Chaque piste dimensionnée avec une valeur de type <flex> occupera une part de l'espace restant proportionnellement à son coefficient de flexibilité.max-contentmin-contentautomax-content. Utilisée comme minimum, elle représentera la plus grande des tailles minimales (définies par {{cssxref("min-width")}}/{{cssxref("min-height")}}) des objets de la grille qui occupent la piste.minmax() peut être utilisée pour les propriétés suivantes :
#container {
+ display: grid;
+ grid-template-columns: minmax(min-content, 300px) minmax(200px, 1fr) 150px;
+ grid-gap: 5px;
+ box-sizing: border-box;
+ height: 200px;
+ width: 100%;
+ background-color: #8cffa0;
+ padding: 10px;
+}
+
+#container > div {
+ background-color: #8ca0ff;
+ padding: 5px;
+}
+
+
+<div id="container"> + <div> + Aussi large que le contenu, large d'au plus 300 pixels. + </div> + <div> + Item flexible mais dont la largeur vaut au moins 200 pixels. + </div> + <div> + Item avec une largeur de 150 pixels. + </div> +</div>+ +
{{EmbedLiveSample("Examples", "100%", 200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Grid", "#valdef-grid-template-columns-minmax", "minmax()")}} | +{{Spec2("CSS Grid")}} | +Définition initiale. | +
{{Compat("css.properties.grid-template-columns.minmax")}}
+ +La propriété mix-blend-mode définit la façon dont le contenu d'un élément doit se mélanger avec le contenu de l'élément parent et avec son arrière-plan.
/* Valeurs de type <blend-mode> */ -mix-blend-mode: normal; -mix-blend-mode: multiply; -mix-blend-mode: screen; -mix-blend-mode: overlay; -mix-blend-mode: darken; -mix-blend-mode: lighten; -mix-blend-mode: color-dodge; -mix-blend-mode: color-burn; -mix-blend-mode: hard-light; -mix-blend-mode: soft-light; -mix-blend-mode: difference; -mix-blend-mode: exclusion; -mix-blend-mode: hue; -mix-blend-mode: saturation; -mix-blend-mode: color; -mix-blend-mode: luminosity; - -/* Valeurs globales */ -mix-blend-mode: initial; -mix-blend-mode: inherit; -mix-blend-mode: unset; -- -
<blend-mode><svg> - <circle cx="40" cy="40" r="40" fill="red"/> - <circle cx="80" cy="40" r="40" fill="lightgreen"/> - <circle cx="60" cy="80" r="40" fill="blue"/> -</svg>- -
circle {
- mix-blend-mode: screen;
-}
-
-{{EmbedLiveSample("Exemple_avec_SVG", "100%", "180")}}
- -<div class="isolate"> - <div class="circle circle-1"></div> - <div class="circle circle-2"></div> - <div class="circle circle-3"></div> -</div>- -
.circle {
- width: 80px;
- height: 80px;
- border-radius: 50%;
- mix-blend-mode: screen;
- position: absolute;
-}
-
-.circle-1 {
- background: red;
-}
-
-.circle-2 {
- background: lightgreen;
- left: 40px;
-}
-
-.circle-3 {
- background: blue;
- left: 20px;
- top: 40px;
-}
-
-.isolate {
- isolation: isolate; /* Without isolation, the background color will be taken into account */
- position: relative;
-}
-
-{{EmbedLiveSample("Exemple_avec_HTML", "100%", "180")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Compositing', '#mix-blend-mode', 'mix-blend-mode')}} | -{{Spec2('Compositing')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.mix-blend-mode")}}
- -La propriété mix-blend-mode définit la façon dont le contenu d'un élément doit se mélanger avec le contenu de l'élément parent et avec son arrière-plan.
/* Valeurs de type <blend-mode> */ +mix-blend-mode: normal; +mix-blend-mode: multiply; +mix-blend-mode: screen; +mix-blend-mode: overlay; +mix-blend-mode: darken; +mix-blend-mode: lighten; +mix-blend-mode: color-dodge; +mix-blend-mode: color-burn; +mix-blend-mode: hard-light; +mix-blend-mode: soft-light; +mix-blend-mode: difference; +mix-blend-mode: exclusion; +mix-blend-mode: hue; +mix-blend-mode: saturation; +mix-blend-mode: color; +mix-blend-mode: luminosity; + +/* Valeurs globales */ +mix-blend-mode: initial; +mix-blend-mode: inherit; +mix-blend-mode: unset; ++ +
<blend-mode><svg> + <circle cx="40" cy="40" r="40" fill="red"/> + <circle cx="80" cy="40" r="40" fill="lightgreen"/> + <circle cx="60" cy="80" r="40" fill="blue"/> +</svg>+ +
circle {
+ mix-blend-mode: screen;
+}
+
+{{EmbedLiveSample("Exemple_avec_SVG", "100%", "180")}}
+ +<div class="isolate"> + <div class="circle circle-1"></div> + <div class="circle circle-2"></div> + <div class="circle circle-3"></div> +</div>+ +
.circle {
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ mix-blend-mode: screen;
+ position: absolute;
+}
+
+.circle-1 {
+ background: red;
+}
+
+.circle-2 {
+ background: lightgreen;
+ left: 40px;
+}
+
+.circle-3 {
+ background: blue;
+ left: 20px;
+ top: 40px;
+}
+
+.isolate {
+ isolation: isolate; /* Without isolation, the background color will be taken into account */
+ position: relative;
+}
+
+{{EmbedLiveSample("Exemple_avec_HTML", "100%", "180")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Compositing', '#mix-blend-mode', 'mix-blend-mode')}} | +{{Spec2('Compositing')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.mix-blend-mode")}}
+ +Les applications Mozilla, telles que Firefox, prennent en charge un certain nombre d'extensions spécifiques à CSS : des propriétés, des valeurs, des pseudo-éléments, des pseudo-classes, des règles @ et des requêtes média. Ces extensions utilisent le préfixe -moz.
Note : Ces propriétés et pseudo-classes ne fonctionneront que pour les applications Mozilla (Firefox par exemple) et ne sont pas en voie de standardisation. Certaines ne s'applique qu'aux éléments XUL.
-Note : Afin d'obtenir la meilleure compatibilité possible, vous devriez utiliser les versions standards, non-préfixées, de ces propriétés plutôt que les versions spécifiques. Généralement, lorsqu'une propriété est standardisée et implémentée, la version préfixée est généralement abandonnée ensuite.
-buttonbutton-arrow-downbutton-arrow-nextbutton-arrow-previousbutton-arrow-upbutton-bevelcheckboxcheckbox-containercheckbox-labelcheckmenuitemdialoggroupboxlistboxmenuarrowmenucheckboxmenuimagemenuitemmenuitemtextmenulistmenulist-buttonmenulist-textmenulist-textfieldmenupopupmenuradiomenuseparator-moz-mac-unified-toolbar-moz-win-borderless-glass-moz-win-browsertabbar-toolbox-moz-win-communications-toolbox-moz-win-glass-moz-win-media-toolbox-moz-window-button-box-moz-window-button-box-maximized-moz-window-button-close-moz-window-button-maximize-moz-window-button-minimize-moz-window-button-restore-moz-window-titlebar-moz-window-titlebar-maximizedprogressbarprogresschunkradioradio-containerradio-labelradiomenuitemresizerresizerpanelscale-horizontalscalethumb-horizontalscalethumb-verticalscale-verticalscrollbarbutton-downscrollbarbutton-leftscrollbarbutton-rightscrollbarbutton-upscrollbar-smallscrollbarthumb-horizontalscrollbarthumb-verticalscrollbartrack-horizontalscrollbartrack-verticalseparatorspinnerspinner-downbuttonspinner-textfieldspinner-upbuttonstatusbarstatusbarpaneltabtabpanelstab-scroll-arrow-backtab-scroll-arrow-forwardtextfieldtextfield-multilinetoolbartoolbarbutton-dropdowntoolboxtooltiptreeheadercelltreeheadersortarrowtreeitemtreetwistytreetwistyopentreeviewwindow-moz-use-text-color {{obsolete_inline}} retiré de Gecko (cf. {{bug(1306214)}}) ; currentcolor doit être utilisée à la place.-moz-bg-inset{{Obsolete_Inline(1.9)}}-moz-bg-outset{{Obsolete_Inline(1.9)}}-moz-bg-solid{{Obsolete_Inline(1.9)}}-moz-activehyperlinktext-moz-hyperlinktext-moz-visitedhyperlinktext-moz-buttondefault-moz-buttonhoverface-moz-buttonhovertext-moz-default-background-color-moz-default-color-moz-cellhighlight-moz-cellhighlighttext-moz-field-moz-fieldtext-moz-dialog-moz-dialogtext-moz-dragtargetzone-moz-mac-accentdarkestshadow-moz-mac-accentdarkshadow-moz-mac-accentface-moz-mac-accentlightesthighlight-moz-mac-accentlightshadow-moz-mac-accentregularhighlight-moz-mac-accentregularshadow-moz-mac-chrome-active-moz-mac-chrome-inactive-moz-mac-focusring-moz-mac-menuselect-moz-mac-menushadow-moz-mac-menutextselect-moz-menuhover-moz-menuhovertext-moz-win-communicationstext-moz-win-mediatext-moz-nativehyperlinktext-moz-box {{Deprecated_Inline}}-moz-inline-block {{Obsolete_Inline}}-moz-inline-box {{Deprecated_Inline}}-moz-inline-grid{{Obsolete_Inline(62)}}-moz-inline-stack{{Obsolete_Inline(62)}}-moz-inline-table {{Obsolete_Inline}}-moz-grid{{Obsolete_Inline(62)}}-moz-grid-group{{Obsolete_Inline(62)}}-moz-grid-line{{Obsolete_Inline(62)}}-moz-groupbox{{Obsolete_Inline}}-moz-deck{{Obsolete_Inline(62)}}-moz-popup{{Obsolete_Inline(62)}}-moz-stack{{Obsolete_Inline(62)}}-moz-marker{{Obsolete_Inline(62)}}-moz-show-background (valeur par défaut en quirks mode)-moz-button-moz-info-moz-desktop-moz-dialog (également une couleur)-moz-document-moz-workspace-moz-window-moz-list-moz-pull-down-menu-moz-field (également une couleur)-moz-fixed-moz-arabic-indic-moz-bengali-moz-cjk-earthly-branch-moz-cjk-heavenly-stem-moz-devanagari-moz-ethiopic-halehame-moz-ethiopic-halehame-am-moz-ethiopic-halehame-ti-er-moz-ethiopic-halehame-ti-et-moz-ethiopic-numeric-moz-gujarati-moz-gurmukhi-moz-hangul-moz-hangul-consonant-moz-japanese-formal-moz-japanese-informal-moz-kannada-moz-khmer-moz-lao-moz-malayalam-moz-myanmar-moz-oriya-moz-persian-moz-simp-chinese-formal-moz-simp-chinese-informal-moz-tamil-moz-telugu-moz-thai-moz-trad-chinese-formal-moz-trad-chinese-informal-moz-urdu-moz-center-moz-left-moz-right-moz-anchor-decoration-moz-all-moz-none-moz-min-content-moz-fit-content-moz-max-content-moz-available:link and :visited]Les applications Mozilla, telles que Firefox, prennent en charge un certain nombre d'extensions spécifiques à CSS : des propriétés, des valeurs, des pseudo-éléments, des pseudo-classes, des règles @ et des requêtes média. Ces extensions utilisent le préfixe -moz.
Note : Ces propriétés et pseudo-classes ne fonctionneront que pour les applications Mozilla (Firefox par exemple) et ne sont pas en voie de standardisation. Certaines ne s'applique qu'aux éléments XUL.
+Note : Afin d'obtenir la meilleure compatibilité possible, vous devriez utiliser les versions standards, non-préfixées, de ces propriétés plutôt que les versions spécifiques. Généralement, lorsqu'une propriété est standardisée et implémentée, la version préfixée est généralement abandonnée ensuite.
+buttonbutton-arrow-downbutton-arrow-nextbutton-arrow-previousbutton-arrow-upbutton-bevelcheckboxcheckbox-containercheckbox-labelcheckmenuitemdialoggroupboxlistboxmenuarrowmenucheckboxmenuimagemenuitemmenuitemtextmenulistmenulist-buttonmenulist-textmenulist-textfieldmenupopupmenuradiomenuseparator-moz-mac-unified-toolbar-moz-win-borderless-glass-moz-win-browsertabbar-toolbox-moz-win-communications-toolbox-moz-win-glass-moz-win-media-toolbox-moz-window-button-box-moz-window-button-box-maximized-moz-window-button-close-moz-window-button-maximize-moz-window-button-minimize-moz-window-button-restore-moz-window-titlebar-moz-window-titlebar-maximizedprogressbarprogresschunkradioradio-containerradio-labelradiomenuitemresizerresizerpanelscale-horizontalscalethumb-horizontalscalethumb-verticalscale-verticalscrollbarbutton-downscrollbarbutton-leftscrollbarbutton-rightscrollbarbutton-upscrollbar-smallscrollbarthumb-horizontalscrollbarthumb-verticalscrollbartrack-horizontalscrollbartrack-verticalseparatorspinnerspinner-downbuttonspinner-textfieldspinner-upbuttonstatusbarstatusbarpaneltabtabpanelstab-scroll-arrow-backtab-scroll-arrow-forwardtextfieldtextfield-multilinetoolbartoolbarbutton-dropdowntoolboxtooltiptreeheadercelltreeheadersortarrowtreeitemtreetwistytreetwistyopentreeviewwindow-moz-use-text-color {{obsolete_inline}} retiré de Gecko (cf. {{bug(1306214)}}) ; currentcolor doit être utilisée à la place.-moz-bg-inset{{Obsolete_Inline(1.9)}}-moz-bg-outset{{Obsolete_Inline(1.9)}}-moz-bg-solid{{Obsolete_Inline(1.9)}}-moz-activehyperlinktext-moz-hyperlinktext-moz-visitedhyperlinktext-moz-buttondefault-moz-buttonhoverface-moz-buttonhovertext-moz-default-background-color-moz-default-color-moz-cellhighlight-moz-cellhighlighttext-moz-field-moz-fieldtext-moz-dialog-moz-dialogtext-moz-dragtargetzone-moz-mac-accentdarkestshadow-moz-mac-accentdarkshadow-moz-mac-accentface-moz-mac-accentlightesthighlight-moz-mac-accentlightshadow-moz-mac-accentregularhighlight-moz-mac-accentregularshadow-moz-mac-chrome-active-moz-mac-chrome-inactive-moz-mac-focusring-moz-mac-menuselect-moz-mac-menushadow-moz-mac-menutextselect-moz-menuhover-moz-menuhovertext-moz-win-communicationstext-moz-win-mediatext-moz-nativehyperlinktext-moz-box {{Deprecated_Inline}}-moz-inline-block {{Obsolete_Inline}}-moz-inline-box {{Deprecated_Inline}}-moz-inline-grid{{Obsolete_Inline(62)}}-moz-inline-stack{{Obsolete_Inline(62)}}-moz-inline-table {{Obsolete_Inline}}-moz-grid{{Obsolete_Inline(62)}}-moz-grid-group{{Obsolete_Inline(62)}}-moz-grid-line{{Obsolete_Inline(62)}}-moz-groupbox{{Obsolete_Inline}}-moz-deck{{Obsolete_Inline(62)}}-moz-popup{{Obsolete_Inline(62)}}-moz-stack{{Obsolete_Inline(62)}}-moz-marker{{Obsolete_Inline(62)}}-moz-show-background (valeur par défaut en quirks mode)-moz-button-moz-info-moz-desktop-moz-dialog (également une couleur)-moz-document-moz-workspace-moz-window-moz-list-moz-pull-down-menu-moz-field (également une couleur)-moz-fixed-moz-arabic-indic-moz-bengali-moz-cjk-earthly-branch-moz-cjk-heavenly-stem-moz-devanagari-moz-ethiopic-halehame-moz-ethiopic-halehame-am-moz-ethiopic-halehame-ti-er-moz-ethiopic-halehame-ti-et-moz-ethiopic-numeric-moz-gujarati-moz-gurmukhi-moz-hangul-moz-hangul-consonant-moz-japanese-formal-moz-japanese-informal-moz-kannada-moz-khmer-moz-lao-moz-malayalam-moz-myanmar-moz-oriya-moz-persian-moz-simp-chinese-formal-moz-simp-chinese-informal-moz-tamil-moz-telugu-moz-thai-moz-trad-chinese-formal-moz-trad-chinese-informal-moz-urdu-moz-center-moz-left-moz-right-moz-anchor-decoration-moz-all-moz-none-moz-min-content-moz-fit-content-moz-max-content-moz-available:link and :visited]Le type de donnée CSS <number> permet de représenter des nombres entiers ou décimaux. C'est donc un type qui englobe le type de données {{cssxref("<integer>")}} (permettant de représenter des entiers).
Pour représenter des nombres décimaux, on utilisera le point (.) comme séparateur. Comme pour {{cssxref("<integer>")}}, il n'y a aucune unité associée aux valeurs de type <number> (ce n'est donc pas une dimension).
Les valeurs de type <number> peuvent être interpolées afin d'être utilisées dans les animations. Les valeurs de ce type seront interpolées comme des nombres réels à virgule flottante. La vitesse de l'interpolation sera définie grâce à la fonction de temporisation associée à l'animation.
Voici des exemples de valeurs <number> valides :
12 Un entier (<integer>) est également un <number> -4.01 Un nombre (décimal) positif --456.8 Un nombre décimal négatif -0.0 Zéro -+0.0 Zéro, avec un + --0.0 Zero, avec un - -.60 Les chiffres avant le point sont facultatifs -10e3 On peut utiliser la notation scientifique --3.4e-2 Un cas d'utilisation de notation scientifique plus complexe -- -
Voici des exemples de valeurs invalides :
- -12. Le point doit être suivi par des chiffres -+-12.2 Seul un +/- est autorisé. -12.1.1 Seul un point est autorisé. -- -
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Values", "#numbers", "<number>")}} | -{{Spec2("CSS4 Values")}} | -Aucune modification significative. | -
| {{SpecName('CSS3 Values', '#numbers', '<number>')}} | -{{Spec2('CSS3 Values')}} | -Aucune modification significative depuis la spécification CSS de niveau 2 (première révision). | -
| {{SpecName('CSS2.1', 'syndata.html#numbers', '<number>')}} | -{{Spec2('CSS2.1')}} | -Définition explicite du type de données. | -
| {{SpecName('CSS1', '', '<number>')}} | -{{Spec2('CSS1')}} | -Définition implicite du type de données. | -
{{Compat("css.types.number")}}
- -Le type de donnée CSS <number> permet de représenter des nombres entiers ou décimaux. C'est donc un type qui englobe le type de données {{cssxref("<integer>")}} (permettant de représenter des entiers).
Pour représenter des nombres décimaux, on utilisera le point (.) comme séparateur. Comme pour {{cssxref("<integer>")}}, il n'y a aucune unité associée aux valeurs de type <number> (ce n'est donc pas une dimension).
Les valeurs de type <number> peuvent être interpolées afin d'être utilisées dans les animations. Les valeurs de ce type seront interpolées comme des nombres réels à virgule flottante. La vitesse de l'interpolation sera définie grâce à la fonction de temporisation associée à l'animation.
Voici des exemples de valeurs <number> valides :
12 Un entier (<integer>) est également un <number> +4.01 Un nombre (décimal) positif +-456.8 Un nombre décimal négatif +0.0 Zéro ++0.0 Zéro, avec un + +-0.0 Zero, avec un - +.60 Les chiffres avant le point sont facultatifs +10e3 On peut utiliser la notation scientifique +-3.4e-2 Un cas d'utilisation de notation scientifique plus complexe ++ +
Voici des exemples de valeurs invalides :
+ +12. Le point doit être suivi par des chiffres ++-12.2 Seul un +/- est autorisé. +12.1.1 Seul un point est autorisé. ++ +
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Values", "#numbers", "<number>")}} | +{{Spec2("CSS4 Values")}} | +Aucune modification significative. | +
| {{SpecName('CSS3 Values', '#numbers', '<number>')}} | +{{Spec2('CSS3 Values')}} | +Aucune modification significative depuis la spécification CSS de niveau 2 (première révision). | +
| {{SpecName('CSS2.1', 'syndata.html#numbers', '<number>')}} | +{{Spec2('CSS2.1')}} | +Définition explicite du type de données. | +
| {{SpecName('CSS1', '', '<number>')}} | +{{Spec2('CSS1')}} | +Définition implicite du type de données. | +
{{Compat("css.types.number")}}
+ +La propriété CSS object-fit définit la façon dont le contenu d'un élément remplacé ({{HTMLElement("img")}} ou {{HTMLElement("video")}} par exemple) doit s'adapter à son conteneur en utilisant sa largeur et sa hauteur.
Selon la valeur utilisée pour object-fit, l'élément peut être rogné, mis à l'échelle ou étiré, afin de remplir la boîte qui le contient.
Note : Il est possible de modifier l'alignement du contenu de l'élément remplacé au sein de la boîte de l'élément grâce à la propriété {{cssxref("object-position")}}.
-/* Valeurs avec un mot-clé */ -object-fit: fill; -object-fit: contain; -object-fit: cover; -object-fit: none; -object-fit: scale-down; - -/* Valeurs globales */ -object-fit: inherit; -object-fit: initial; -object-fit: unset; -- -
La propriété object-fit peut être définie grâce à l'un des mots-clés suivants.
containcoverfillnonescale-downnone ou contain étaient spécifiés, on prend celui qui aboutirait à une taille réelle plus petite.<div> - <h2>object-fit: fill</h2> - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="fill"/> - - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="fill narrow"/> - - <h2>object-fit: contain</h2> - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="contain"/> - - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="contain narrow"/> - - <h2>object-fit: cover</h2> - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="cover"/> - - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="cover narrow"/> - - <h2>object-fit: none</h2> - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="none"/> - - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="none narrow"/> - - <h2>object-fit: scale-down</h2> - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="scale-down"/> - - <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="scale-down narrow"/> - -</div>- -
h2 {
- font-family: 'Courier New', monospace;
- font-size: 1em;
- margin: 1em 0 0.3em;
-}
-
-div {
- display: flex;
- flex-direction: column;
- flex-wrap: wrap;
- align-items: flex-start;
- height: 940px;
-}
-
-img {
- width: 150px;
- height: 100px;
- border: 1px solid #000;
-}
-
-.narrow {
- width: 100px;
- height: 150px;
- margin-top: 10px;
-}
-
-.fill {
- object-fit: fill;
-}
-
-.contain {
- object-fit: contain;
-}
-
-.cover {
- object-fit: cover;
-}
-
-.none {
- object-fit: none;
-}
-
-.scale-down {
- object-fit: scale-down;
-}
-
-
-{{EmbedLiveSample('Exemples', 500, 450)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Images', '#the-object-fit', 'object-fit')}} | -{{Spec2('CSS4 Images')}} | -Les mots-clés from-image et flip ont été ajoutés. |
-
| {{SpecName('CSS3 Images', '#the-object-fit', 'object-fit')}} | -{{Spec2('CSS3 Images')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.object-fit")}}
- -La propriété CSS object-fit définit la façon dont le contenu d'un élément remplacé ({{HTMLElement("img")}} ou {{HTMLElement("video")}} par exemple) doit s'adapter à son conteneur en utilisant sa largeur et sa hauteur.
Selon la valeur utilisée pour object-fit, l'élément peut être rogné, mis à l'échelle ou étiré, afin de remplir la boîte qui le contient.
Note : Il est possible de modifier l'alignement du contenu de l'élément remplacé au sein de la boîte de l'élément grâce à la propriété {{cssxref("object-position")}}.
+/* Valeurs avec un mot-clé */ +object-fit: fill; +object-fit: contain; +object-fit: cover; +object-fit: none; +object-fit: scale-down; + +/* Valeurs globales */ +object-fit: inherit; +object-fit: initial; +object-fit: unset; ++ +
La propriété object-fit peut être définie grâce à l'un des mots-clés suivants.
containcoverfillnonescale-downnone ou contain étaient spécifiés, on prend celui qui aboutirait à une taille réelle plus petite.<div> + <h2>object-fit: fill</h2> + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="fill"/> + + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="fill narrow"/> + + <h2>object-fit: contain</h2> + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="contain"/> + + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="contain narrow"/> + + <h2>object-fit: cover</h2> + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="cover"/> + + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="cover narrow"/> + + <h2>object-fit: none</h2> + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="none"/> + + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="none narrow"/> + + <h2>object-fit: scale-down</h2> + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="scale-down"/> + + <img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="scale-down narrow"/> + +</div>+ +
h2 {
+ font-family: 'Courier New', monospace;
+ font-size: 1em;
+ margin: 1em 0 0.3em;
+}
+
+div {
+ display: flex;
+ flex-direction: column;
+ flex-wrap: wrap;
+ align-items: flex-start;
+ height: 940px;
+}
+
+img {
+ width: 150px;
+ height: 100px;
+ border: 1px solid #000;
+}
+
+.narrow {
+ width: 100px;
+ height: 150px;
+ margin-top: 10px;
+}
+
+.fill {
+ object-fit: fill;
+}
+
+.contain {
+ object-fit: contain;
+}
+
+.cover {
+ object-fit: cover;
+}
+
+.none {
+ object-fit: none;
+}
+
+.scale-down {
+ object-fit: scale-down;
+}
+
+
+{{EmbedLiveSample('Exemples', 500, 450)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Images', '#the-object-fit', 'object-fit')}} | +{{Spec2('CSS4 Images')}} | +Les mots-clés from-image et flip ont été ajoutés. |
+
| {{SpecName('CSS3 Images', '#the-object-fit', 'object-fit')}} | +{{Spec2('CSS3 Images')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.object-fit")}}
+ +La propriété object-position détermine l'alignement d'un élément remplacé au sein de sa boîte. Les zones de la boîtes qui ne sont pas recouvertes par le contenu de l'élément remplacé montreront l'arrière-plan de l'élément.
Note : Il est possible d'ajuster la taille de l'élément remplacé au sein de la boîte de l'élément grâce à la propriété {{cssxref("object-fit")}}.
-/* Valeurs de positionnement */ -/* Type <position> */ -object-position: center top; -object-position: 100px 50px; - -/* Valeurs globales */ -object-position: inherit; -object-position: initial; -object-position: unset; -- -
<position><img id="object-position-1" src="https://mdn.mozillademos.org/files/12668/MDN.svg" alt="MDN Logo"/> -<img id="object-position-2" src="https://mdn.mozillademos.org/files/12668/MDN.svg" alt="MDN Logo"/> -- -
img {
- width: 300px;
- height: 250px;
- border: 1px solid black;
- background-color: silver;
- margin-right: 1em;
- object-fit: none;
-}
-
-#object-position-1 {
- object-position: 10px;
-}
-
-#object-position-2 {
- object-position: 100% 10%;
-}
-
-
-{{EmbedLiveSample('Exemples', '100%','300px')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Images', '#the-object-position', 'object-position')}} | -{{Spec2('CSS3 Images')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.object-position")}}
- -La propriété object-position détermine l'alignement d'un élément remplacé au sein de sa boîte. Les zones de la boîtes qui ne sont pas recouvertes par le contenu de l'élément remplacé montreront l'arrière-plan de l'élément.
Note : Il est possible d'ajuster la taille de l'élément remplacé au sein de la boîte de l'élément grâce à la propriété {{cssxref("object-fit")}}.
+/* Valeurs de positionnement */ +/* Type <position> */ +object-position: center top; +object-position: 100px 50px; + +/* Valeurs globales */ +object-position: inherit; +object-position: initial; +object-position: unset; ++ +
<position><img id="object-position-1" src="https://mdn.mozillademos.org/files/12668/MDN.svg" alt="MDN Logo"/> +<img id="object-position-2" src="https://mdn.mozillademos.org/files/12668/MDN.svg" alt="MDN Logo"/> ++ +
img {
+ width: 300px;
+ height: 250px;
+ border: 1px solid black;
+ background-color: silver;
+ margin-right: 1em;
+ object-fit: none;
+}
+
+#object-position-1 {
+ object-position: 10px;
+}
+
+#object-position-2 {
+ object-position: 100% 10%;
+}
+
+
+{{EmbedLiveSample('Exemples', '100%','300px')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Images', '#the-object-position', 'object-position')}} | +{{Spec2('CSS3 Images')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.object-position")}}
+ +La propriété CSS offset-anchor définit le point, à l'intérieur d'une boîte d'un élément, qui se déplace le long d'un chemin {{cssxref("offset-path")}}.
/* Valeurs avec un movalues */ -offset-anchor: top; -offset-anchor: bottom; -offset-anchor: left; -offset-anchor: right; -offset-anchor: center; -offset-anchor: auto; - -/* Valeurs de pourcentages */ -/* Type <percentage> */ -offset-anchor: 25% 75%; - -/* Valeurs de longueur */ -/* Type <length> */ -offset-anchor: 0 0; -offset-anchor: 1cm 2cm; -offset-anchor: 10ch 8em; - -/* Valeurs de décalage relatives à un bord */ -offset-anchor: bottom 10px right 20px; -offset-anchor: right 3em bottom 10px; - -/* Valeurs globales */ -offset-anchor: inherit; -offset-anchor: initial; -offset-anchor: unset;- -
autooffset-anchor reçoit la même valeur que {{cssxref("transform-origin")}} sauf si {{cssxref("offset-path")}} vaut none, dans ce cas, elle récupère la valeur de {{cssxref("offset-position")}}.<position><position>, excepté pour background(-position).Dans l'exemple suivant, on dispose de trois éléments {{htmlelement("div")}} imbriqués chacun dans un élément {{htmlelement("section")}}. Chaque <div> se déplace sur le même chemin {{cssxref("offset-path")}} (une ligne horizontale mesurant 200 pixels). Les trois blocs possèdent une couleur ({{cssxref("background-color")}}) et une valeur offset-anchor différentes.
Chaque élément <section> a été mise en forme avec un dégradé linéaire afin de fournir une indication visuelle du chemin.
On peut voir que la première valeur, auto, déplace l'élément sur son centre. La deuxième et la troisième déplacent le <div> par le coin supérieur droit et le coin inférieur gauche respectivement.
<section> - <div class="offset-anchor1"></div> -</section> -<section> - <div class="offset-anchor2"></div> -</section> -<section> - <div class="offset-anchor3"></div> -</section> -- -
div {
- offset-path: path('M 0,20 L 200,20');
- animation: move 3000ms infinite alternate ease-in-out;
- width: 40px;
- height: 40px;
-}
-
-section {
- background-image: linear-gradient(to bottom, transparent, transparent 49%, #000 50%, #000 51%, transparent 52%);
- border: 1px solid #ccc;
- margin-bottom: 10px;
-}
-
-.offset-anchor1 {
- offset-anchor: auto;
- background: cyan;
-}
-
-.offset-anchor2 {
- offset-anchor: right top;
- background: purple;
-}
-
-.offset-anchor3 {
- offset-anchor: left bottom;
- background: magenta;
-}
-
-@keyframes move {
- 0% {
- offset-distance: 0%;
- }
- 100% {
- offset-distance: 100%;
- }
-}
-
-{{EmbedLiveSample('Exemples', '100%', '300')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-anchor-property', 'offset-anchor')}} | -{{Spec2('Motion Path Level 1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.offset-anchor")}}
- -<path>La propriété CSS offset-anchor définit le point, à l'intérieur d'une boîte d'un élément, qui se déplace le long d'un chemin {{cssxref("offset-path")}}.
/* Valeurs avec un movalues */ +offset-anchor: top; +offset-anchor: bottom; +offset-anchor: left; +offset-anchor: right; +offset-anchor: center; +offset-anchor: auto; + +/* Valeurs de pourcentages */ +/* Type <percentage> */ +offset-anchor: 25% 75%; + +/* Valeurs de longueur */ +/* Type <length> */ +offset-anchor: 0 0; +offset-anchor: 1cm 2cm; +offset-anchor: 10ch 8em; + +/* Valeurs de décalage relatives à un bord */ +offset-anchor: bottom 10px right 20px; +offset-anchor: right 3em bottom 10px; + +/* Valeurs globales */ +offset-anchor: inherit; +offset-anchor: initial; +offset-anchor: unset;+ +
autooffset-anchor reçoit la même valeur que {{cssxref("transform-origin")}} sauf si {{cssxref("offset-path")}} vaut none, dans ce cas, elle récupère la valeur de {{cssxref("offset-position")}}.<position><position>, excepté pour background(-position).Dans l'exemple suivant, on dispose de trois éléments {{htmlelement("div")}} imbriqués chacun dans un élément {{htmlelement("section")}}. Chaque <div> se déplace sur le même chemin {{cssxref("offset-path")}} (une ligne horizontale mesurant 200 pixels). Les trois blocs possèdent une couleur ({{cssxref("background-color")}}) et une valeur offset-anchor différentes.
Chaque élément <section> a été mise en forme avec un dégradé linéaire afin de fournir une indication visuelle du chemin.
On peut voir que la première valeur, auto, déplace l'élément sur son centre. La deuxième et la troisième déplacent le <div> par le coin supérieur droit et le coin inférieur gauche respectivement.
<section> + <div class="offset-anchor1"></div> +</section> +<section> + <div class="offset-anchor2"></div> +</section> +<section> + <div class="offset-anchor3"></div> +</section> ++ +
div {
+ offset-path: path('M 0,20 L 200,20');
+ animation: move 3000ms infinite alternate ease-in-out;
+ width: 40px;
+ height: 40px;
+}
+
+section {
+ background-image: linear-gradient(to bottom, transparent, transparent 49%, #000 50%, #000 51%, transparent 52%);
+ border: 1px solid #ccc;
+ margin-bottom: 10px;
+}
+
+.offset-anchor1 {
+ offset-anchor: auto;
+ background: cyan;
+}
+
+.offset-anchor2 {
+ offset-anchor: right top;
+ background: purple;
+}
+
+.offset-anchor3 {
+ offset-anchor: left bottom;
+ background: magenta;
+}
+
+@keyframes move {
+ 0% {
+ offset-distance: 0%;
+ }
+ 100% {
+ offset-distance: 100%;
+ }
+}
+
+{{EmbedLiveSample('Exemples', '100%', '300')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-anchor-property', 'offset-anchor')}} | +{{Spec2('Motion Path Level 1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.offset-anchor")}}
+ +<path>La propriété offset-distance définit une position le long d'un chemin {{CSSxRef("offset-path")}}.
/* Valeur par défaut */ -offset-distance: 0; - -/* La position à la moitié de offset-path */ -offset-distance: 50%; - -/* Une position absolue le long du chemin */ -offset-distance: 40px;- -
{{cssxref('<length-percentage>')}}offset-path est défini par une forme simple ou grâce à la fonction path()).La notion de mouvement contenue dans CSS Motion Path vient principalement de la propriété offset-distance. Si on souhaite animer un élément le long du chemin, on définira un chemin avec {{cssxref('offset-path')}} et on utilisera une animation qui fera évoluer offset-distance de 0% à 100%.
<div id="motion-demo"></div> -- -
#motion-demo {
- offset-path: path('M20,20 C20,100 200,0 200,100');
- animation: move 3000ms infinite alternate ease-in-out;
- width: 40px;
- height: 40px;
- background: cyan;
-}
-
-@keyframes move {
- 0% {
- offset-distance: 0%;
- }
- 100% {
- offset-distance: 100%;
- }
-}
-
-{{EmbedLiveSample('Animation')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-distance-property', 'offset-distance')}} | -{{Spec2('Motion Path Level 1')}} | -Définition initiale. | -
{{CSSInfo}}
- -Note : Dans les versions antérieures de la spécification, cette propriété était intitulée motion-offset.
{{Compat("css.properties.offset-distance")}}
diff --git a/files/fr/web/css/offset-distance/index.md b/files/fr/web/css/offset-distance/index.md new file mode 100644 index 0000000000..5189bfdf52 --- /dev/null +++ b/files/fr/web/css/offset-distance/index.md @@ -0,0 +1,97 @@ +--- +title: offset-distance +slug: Web/CSS/offset-distance +tags: + - CSS + - Propriété + - Reference + - motion-offset + - offset-distance +translation_of: Web/CSS/offset-distance +--- +La propriété offset-distance définit une position le long d'un chemin {{CSSxRef("offset-path")}}.
/* Valeur par défaut */ +offset-distance: 0; + +/* La position à la moitié de offset-path */ +offset-distance: 50%; + +/* Une position absolue le long du chemin */ +offset-distance: 40px;+ +
{{cssxref('<length-percentage>')}}offset-path est défini par une forme simple ou grâce à la fonction path()).La notion de mouvement contenue dans CSS Motion Path vient principalement de la propriété offset-distance. Si on souhaite animer un élément le long du chemin, on définira un chemin avec {{cssxref('offset-path')}} et on utilisera une animation qui fera évoluer offset-distance de 0% à 100%.
<div id="motion-demo"></div> ++ +
#motion-demo {
+ offset-path: path('M20,20 C20,100 200,0 200,100');
+ animation: move 3000ms infinite alternate ease-in-out;
+ width: 40px;
+ height: 40px;
+ background: cyan;
+}
+
+@keyframes move {
+ 0% {
+ offset-distance: 0%;
+ }
+ 100% {
+ offset-distance: 100%;
+ }
+}
+
+{{EmbedLiveSample('Animation')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-distance-property', 'offset-distance')}} | +{{Spec2('Motion Path Level 1')}} | +Définition initiale. | +
{{CSSInfo}}
+ +Note : Dans les versions antérieures de la spécification, cette propriété était intitulée motion-offset.
{{Compat("css.properties.offset-distance")}}
diff --git a/files/fr/web/css/offset-path/index.html b/files/fr/web/css/offset-path/index.html deleted file mode 100644 index 3a3b342f15..0000000000 --- a/files/fr/web/css/offset-path/index.html +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: offset-path -slug: Web/CSS/offset-path -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/offset-path ---- -La propriété offset-path définit le tracé d'un mouvement sur lequel un élément est positionné, relativement au conteneur parent ou au système de coordonnées SVG.
Cette propriété sert à définir un chemin qu'un élément va suivre lors d'une animation.
- -La position exacte de l'élément sur ce tracé est déterminée grâce à la propriété {{cssxref("offset-distance")}}. Le tracé d'un mouvement peut être défini grâce à un chemin ou à plusieurs chemins successifs ou encore grâce à la géométrie d'une forme. Chaque forme ou chemin doit définir une position initiale pour la valeur calculée 0 de {{cssxref("offset-distance")}} ainsi qu'une direction initiale qui définit la rotation de l'objet dans sa position initiale.
Note : Dans des versions antérieures des spécifications, cette propriété était intitulée motion-path. Le nom a été modifié en offset-path afin de décrire un chemin statique plutôt qu'un chemin en mouvement.
/* Valeur par défaut */
-offset-path: none;
-
-/* Valeurs avec une notation fonctionnelle */
-offset-path: ray(45deg closest-side contain);
-
-/* URL */
-offset-path: url(#path);
-
-/* Formes */
-offset-path: circle(50% at 25% 25%);
-offset-path: inset(50% 50% 50% 50%);
-offset-path: polygon(30% 0%, 70% 0%, 100% 50%, 30% 100%, 0% 70%, 0% 30%);
-offset-path: path('M 0,200 Q 200,200 260,80 Q 290,20 400,0 Q 300,100 400,200');
-
-/* Boîtes géométriques */
-offset-path: margin-box;
-offset-path: stroke-box;
-
-/* Valeurs globales */
-offset-path: inherit;
-offset-path: initial;
-offset-path: unset;
-
-
-Attention : À l'heure actuelle, seule la notation path() est prise en charge par les navigateurs.
ray()closest-side et farthest-corner avec le mot-clé contain.url()circle, ellipse, line, path, polygon, polyline ou rect et d'utiliser la géométrie de la forme visée pour construire le chemin.<basic-shape>circle(), ellipse(), inset(), polygon() ou path().
- path()noneL'exemple qui suit est tiré de cette démo présente sur CodePen. Le code SVG dessine la forme d'une maison avec une cheminée. Les propriétés offset-path utilisées permettent de déplacer l'icône (des ciseaux) autour de la maison. On notera que la pseudo-classe :path() est utilisée avec offset-path et que le document SVG contient <path>. Si on compare ces deux données, on verra qu'elles sont identiques.
.scissorHalf {
- offset-path: path('M900,190 L993,245 V201 A11,11 0 0,1 1004,190 H1075 A11,11 0 0,1 1086,201 V300 L1294,423 H1216 A11,11 0 0,0 1205,434 V789 A11,11 0 0,1 1194,800 H606 A11,11 0 0,1 595,789 V434 A11,11 0 0,0 584,423 H506 L900,190');
- animation: followpath 4s linear infinite;
-}
-
-@keyframes followpath {
- to {
- motion-offset: 100%;
- offset-distance: 100%;
- }
-}
-
-Les moitiés supérieure et inférieure des ciseaux apparaîtront dans le coin en haut à gauche du canevas si elles ne sont pas positionnés sur le point de départ avec offset-path.
<svg xmlns="http://www.w3.org/2000/svg" - width="700" - height="450" - viewBox="350 0 1400 900"> - <title>House and Scissors</title> - <rect x="595" - y="423" - width="610" - height="377" - fill="blue" /> - <polygon points="506,423 900,190 1294,423" - fill="yellow" /> - <polygon points="993,245 993,190 1086,190 1086,300" - fill="red" /> - <path id="house" d="M900,190 L993,245 V201 A11,11 0 0,1 1004,190 H1075 A11,11 0 0,1 1086,201 V300 L1294,423 H1216 A11,11 0 0,0 1205,434 V789 A11,11 0 0,1 1194,800 H606 A11,11 0 0,1 595,789 V434 A11,11 0 0,0 584,423 H506 L900,190" - fill="none" - stroke="black" - stroke-width="13" - stroke-linejoin="round" - stroke-linecap="round" /> - <path id="firstScissorHalf" class="scissorHalf" - d="M30,0 H-10 A10,10 0 0,0 -20,10 A20,20 0 1,1 -40,-10 H20 A10,10 0 0,1 30,0 M-40,20 A10,10 1 0,0 -40,0 A10,10 1 0,0 -40,20 M0,0" - transform="translate(0,0)" - fill="green" - stroke="black" - stroke-width="5" - stroke-linejoin="round" - stroke-linecap="round" - fill-rule="evenodd" /> - <path id="secondScissorHalf" class="scissorHalf" - d="M30,0 H-10 A10,10 0 0,1 -20,-10 A20,20 0 1,0 -40,10 H20 A10,10 0 0,0 30,0 M-40,-20 A10,10 1 0,0 -40,0 A10,10 1 0,0 -40,-20 M0,0" - transform="translate(0,0)" - fill="forestgreen" - stroke="black" - stroke-width="5" - stroke-linejoin="round" - stroke-linecap="round" - fill-rule="evenodd" /> -</svg>- -
{{EmbedLiveSample('Exemples', '100%', '450')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-path-property', 'offset-path')}} | -{{Spec2('Motion Path Level 1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.offset-path")}}
- -La propriété offset-path définit le tracé d'un mouvement sur lequel un élément est positionné, relativement au conteneur parent ou au système de coordonnées SVG.
Cette propriété sert à définir un chemin qu'un élément va suivre lors d'une animation.
+ +La position exacte de l'élément sur ce tracé est déterminée grâce à la propriété {{cssxref("offset-distance")}}. Le tracé d'un mouvement peut être défini grâce à un chemin ou à plusieurs chemins successifs ou encore grâce à la géométrie d'une forme. Chaque forme ou chemin doit définir une position initiale pour la valeur calculée 0 de {{cssxref("offset-distance")}} ainsi qu'une direction initiale qui définit la rotation de l'objet dans sa position initiale.
Note : Dans des versions antérieures des spécifications, cette propriété était intitulée motion-path. Le nom a été modifié en offset-path afin de décrire un chemin statique plutôt qu'un chemin en mouvement.
/* Valeur par défaut */
+offset-path: none;
+
+/* Valeurs avec une notation fonctionnelle */
+offset-path: ray(45deg closest-side contain);
+
+/* URL */
+offset-path: url(#path);
+
+/* Formes */
+offset-path: circle(50% at 25% 25%);
+offset-path: inset(50% 50% 50% 50%);
+offset-path: polygon(30% 0%, 70% 0%, 100% 50%, 30% 100%, 0% 70%, 0% 30%);
+offset-path: path('M 0,200 Q 200,200 260,80 Q 290,20 400,0 Q 300,100 400,200');
+
+/* Boîtes géométriques */
+offset-path: margin-box;
+offset-path: stroke-box;
+
+/* Valeurs globales */
+offset-path: inherit;
+offset-path: initial;
+offset-path: unset;
+
+
+Attention : À l'heure actuelle, seule la notation path() est prise en charge par les navigateurs.
ray()closest-side et farthest-corner avec le mot-clé contain.url()circle, ellipse, line, path, polygon, polyline ou rect et d'utiliser la géométrie de la forme visée pour construire le chemin.<basic-shape>circle(), ellipse(), inset(), polygon() ou path().
+ path()noneL'exemple qui suit est tiré de cette démo présente sur CodePen. Le code SVG dessine la forme d'une maison avec une cheminée. Les propriétés offset-path utilisées permettent de déplacer l'icône (des ciseaux) autour de la maison. On notera que la pseudo-classe :path() est utilisée avec offset-path et que le document SVG contient <path>. Si on compare ces deux données, on verra qu'elles sont identiques.
.scissorHalf {
+ offset-path: path('M900,190 L993,245 V201 A11,11 0 0,1 1004,190 H1075 A11,11 0 0,1 1086,201 V300 L1294,423 H1216 A11,11 0 0,0 1205,434 V789 A11,11 0 0,1 1194,800 H606 A11,11 0 0,1 595,789 V434 A11,11 0 0,0 584,423 H506 L900,190');
+ animation: followpath 4s linear infinite;
+}
+
+@keyframes followpath {
+ to {
+ motion-offset: 100%;
+ offset-distance: 100%;
+ }
+}
+
+Les moitiés supérieure et inférieure des ciseaux apparaîtront dans le coin en haut à gauche du canevas si elles ne sont pas positionnés sur le point de départ avec offset-path.
<svg xmlns="http://www.w3.org/2000/svg" + width="700" + height="450" + viewBox="350 0 1400 900"> + <title>House and Scissors</title> + <rect x="595" + y="423" + width="610" + height="377" + fill="blue" /> + <polygon points="506,423 900,190 1294,423" + fill="yellow" /> + <polygon points="993,245 993,190 1086,190 1086,300" + fill="red" /> + <path id="house" d="M900,190 L993,245 V201 A11,11 0 0,1 1004,190 H1075 A11,11 0 0,1 1086,201 V300 L1294,423 H1216 A11,11 0 0,0 1205,434 V789 A11,11 0 0,1 1194,800 H606 A11,11 0 0,1 595,789 V434 A11,11 0 0,0 584,423 H506 L900,190" + fill="none" + stroke="black" + stroke-width="13" + stroke-linejoin="round" + stroke-linecap="round" /> + <path id="firstScissorHalf" class="scissorHalf" + d="M30,0 H-10 A10,10 0 0,0 -20,10 A20,20 0 1,1 -40,-10 H20 A10,10 0 0,1 30,0 M-40,20 A10,10 1 0,0 -40,0 A10,10 1 0,0 -40,20 M0,0" + transform="translate(0,0)" + fill="green" + stroke="black" + stroke-width="5" + stroke-linejoin="round" + stroke-linecap="round" + fill-rule="evenodd" /> + <path id="secondScissorHalf" class="scissorHalf" + d="M30,0 H-10 A10,10 0 0,1 -20,-10 A20,20 0 1,0 -40,10 H20 A10,10 0 0,0 30,0 M-40,-20 A10,10 1 0,0 -40,0 A10,10 1 0,0 -40,-20 M0,0" + transform="translate(0,0)" + fill="forestgreen" + stroke="black" + stroke-width="5" + stroke-linejoin="round" + stroke-linecap="round" + fill-rule="evenodd" /> +</svg>+ +
{{EmbedLiveSample('Exemples', '100%', '450')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-path-property', 'offset-path')}} | +{{Spec2('Motion Path Level 1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.offset-path")}}
+ +La propriété CSS offset-position définit la position initiale de {{cssxref("offset-path")}}.
/* Valeurs de mots clefs */ -offset-position: auto; -offset-position: top; -offset-position: bottom; -offset-position: left; -offset-position: right; -offset-position: center; - -/* Valeurs de <pourcentage> */ -offset-position: 25% 75%; - -/* Valeurs de <longueur> */ -offset-position: 0 0; -offset-position: 1cm 2cm; -offset-position: 10ch 8em; - -/* Valeurs d'écart d'un bord */ -offset-position: bottom 10px right 20px; -offset-position: right 3em bottom 10px; -offset-position: bottom 10px right; -offset-position: top right 10px; - -/* Valeurs globales */ -offset-position: inherit; -offset-position: initial; -offset-position: unset; -- -
auto<position>center. Si trois ou quatre valeurs sont utilisées, les valeurs en pourcentage sont des écarts du mot clef qui les précéde. Pour plus d'explications sur ces types de valeur, consultez {{cssxref("background-position")}}.{{cssinfo}}
- -<div id="motion-demo"></div> -- -
#motion-demo {
- offset-path: path('M20,20 C20,100 200,0 200,100');
- offset-position: left top;
- animation: move 3000ms infinite alternate ease-in-out;
- width: 40px;
- height: 40px;
- background: cyan;
-}
-
-@keyframes move {
- 0% {
- offset-distance: 0%;
- }
- 100% {
- offset-distance: 100%;
- }
-}
-
-| Spécification | -Statut | -Commentaire | -
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-position-property', 'offset-position')}} | -{{Spec2('Motion Path Level 1')}} | -Définition initiale | -
{{Compat("css.properties.offset-position")}}
diff --git a/files/fr/web/css/offset-position/index.md b/files/fr/web/css/offset-position/index.md new file mode 100644 index 0000000000..a73e9d4b41 --- /dev/null +++ b/files/fr/web/css/offset-position/index.md @@ -0,0 +1,103 @@ +--- +title: offset-position +slug: Web/CSS/offset-position +translation_of: Web/CSS/offset-position +--- +La propriété CSS offset-position définit la position initiale de {{cssxref("offset-path")}}.
/* Valeurs de mots clefs */ +offset-position: auto; +offset-position: top; +offset-position: bottom; +offset-position: left; +offset-position: right; +offset-position: center; + +/* Valeurs de <pourcentage> */ +offset-position: 25% 75%; + +/* Valeurs de <longueur> */ +offset-position: 0 0; +offset-position: 1cm 2cm; +offset-position: 10ch 8em; + +/* Valeurs d'écart d'un bord */ +offset-position: bottom 10px right 20px; +offset-position: right 3em bottom 10px; +offset-position: bottom 10px right; +offset-position: top right 10px; + +/* Valeurs globales */ +offset-position: inherit; +offset-position: initial; +offset-position: unset; ++ +
auto<position>center. Si trois ou quatre valeurs sont utilisées, les valeurs en pourcentage sont des écarts du mot clef qui les précéde. Pour plus d'explications sur ces types de valeur, consultez {{cssxref("background-position")}}.{{cssinfo}}
+ +<div id="motion-demo"></div> ++ +
#motion-demo {
+ offset-path: path('M20,20 C20,100 200,0 200,100');
+ offset-position: left top;
+ animation: move 3000ms infinite alternate ease-in-out;
+ width: 40px;
+ height: 40px;
+ background: cyan;
+}
+
+@keyframes move {
+ 0% {
+ offset-distance: 0%;
+ }
+ 100% {
+ offset-distance: 100%;
+ }
+}
+
+| Spécification | +Statut | +Commentaire | +
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-position-property', 'offset-position')}} | +{{Spec2('Motion Path Level 1')}} | +Définition initiale | +
{{Compat("css.properties.offset-position")}}
diff --git a/files/fr/web/css/offset-rotate/index.html b/files/fr/web/css/offset-rotate/index.html deleted file mode 100644 index 7c9d51d5d7..0000000000 --- a/files/fr/web/css/offset-rotate/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: offset-rotate -slug: Web/CSS/offset-rotate -tags: - - CSS - - Propriété - - Reference - - offset-rotate -translation_of: Web/CSS/offset-rotate ---- -La propriété offset-rotate définit l'orientation et la direction de l'élément lorsqu'il est positionné le long du chemin représenté par {{cssxref("offset-path")}}.
/* Suit la direction du chemin avec un éventuel */ -/* décalage angulaire */ -offset-rotate: auto; -offset-rotate: auto 45deg; - -/* Suit la direction du chemin mais orienté dans la -/* direction opposée */ -offset-rotate: reverse; - -/* Conserve une rotation constante quelle que soit la position -/* sur le chemin */ -offset-rotate: 90deg; -offset-rotate: .5turn;- -
autoL'élément est tourné avec l'angle donné par la direction du chemin {{cssxref("offset-path")}}, relativement à l'axe des abscisses. C'est la valeur par défaut.
-{{cssxref("<angle>")}}L'élément est tourné d'un angle fixe (indiqué dans le sens horaire).
-auto <angle>Si le mot-clé auto est suivi d'une valeur {{cssxref("<angle>")}}, l'élément est tourné de l'angle donné par rapport à la direction du chemin.
reverseL'élément est tourné de façon similaire à auto, mais fait face à la direction opposée. Cette valeur est équivalente à auto 180deg.
div {
- width: 40px;
- height: 40px;
- background: #2BC4A2;
- margin: 20px;
- clip-path: polygon(0% 0%, 70% 0%, 100% 50%, 70% 100%, 0% 100%, 30% 50%);
- animation: move 5000ms infinite alternate ease-in-out;
-
- offset-path: path('M20,20 C20,50 180,-10 180,20');
-}
-div:nth-child(1) {
- offset-rotate: auto;
-}
-div:nth-child(2) {
- offset-rotate: auto 90deg;
-}
-div:nth-child(3) {
- offset-rotate: 30deg;
-}
-
-@keyframes move {
- 100% {
- offset-distance: 100%;
- }
-}
-
-<div></div> -<div></div> -<div></div>- -
{{EmbedLiveSample('Exemples')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-rotate-property', 'offset-rotate')}} | -{{Spec2('Motion Path Level 1')}} | -Définition initiale. | -
{{cssinfo}}
- -Note : Les versions antérieures de la spécification utilisait le nom motion-rotation pour cette propriété.
{{Compat("css.properties.offset-rotate")}}
diff --git a/files/fr/web/css/offset-rotate/index.md b/files/fr/web/css/offset-rotate/index.md new file mode 100644 index 0000000000..7c9d51d5d7 --- /dev/null +++ b/files/fr/web/css/offset-rotate/index.md @@ -0,0 +1,121 @@ +--- +title: offset-rotate +slug: Web/CSS/offset-rotate +tags: + - CSS + - Propriété + - Reference + - offset-rotate +translation_of: Web/CSS/offset-rotate +--- +La propriété offset-rotate définit l'orientation et la direction de l'élément lorsqu'il est positionné le long du chemin représenté par {{cssxref("offset-path")}}.
/* Suit la direction du chemin avec un éventuel */ +/* décalage angulaire */ +offset-rotate: auto; +offset-rotate: auto 45deg; + +/* Suit la direction du chemin mais orienté dans la +/* direction opposée */ +offset-rotate: reverse; + +/* Conserve une rotation constante quelle que soit la position +/* sur le chemin */ +offset-rotate: 90deg; +offset-rotate: .5turn;+ +
autoL'élément est tourné avec l'angle donné par la direction du chemin {{cssxref("offset-path")}}, relativement à l'axe des abscisses. C'est la valeur par défaut.
+{{cssxref("<angle>")}}L'élément est tourné d'un angle fixe (indiqué dans le sens horaire).
+auto <angle>Si le mot-clé auto est suivi d'une valeur {{cssxref("<angle>")}}, l'élément est tourné de l'angle donné par rapport à la direction du chemin.
reverseL'élément est tourné de façon similaire à auto, mais fait face à la direction opposée. Cette valeur est équivalente à auto 180deg.
div {
+ width: 40px;
+ height: 40px;
+ background: #2BC4A2;
+ margin: 20px;
+ clip-path: polygon(0% 0%, 70% 0%, 100% 50%, 70% 100%, 0% 100%, 30% 50%);
+ animation: move 5000ms infinite alternate ease-in-out;
+
+ offset-path: path('M20,20 C20,50 180,-10 180,20');
+}
+div:nth-child(1) {
+ offset-rotate: auto;
+}
+div:nth-child(2) {
+ offset-rotate: auto 90deg;
+}
+div:nth-child(3) {
+ offset-rotate: 30deg;
+}
+
+@keyframes move {
+ 100% {
+ offset-distance: 100%;
+ }
+}
+
+<div></div> +<div></div> +<div></div>+ +
{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-rotate-property', 'offset-rotate')}} | +{{Spec2('Motion Path Level 1')}} | +Définition initiale. | +
{{cssinfo}}
+ +Note : Les versions antérieures de la spécification utilisait le nom motion-rotation pour cette propriété.
{{Compat("css.properties.offset-rotate")}}
diff --git a/files/fr/web/css/offset/index.html b/files/fr/web/css/offset/index.html deleted file mode 100644 index 07d09681ff..0000000000 --- a/files/fr/web/css/offset/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: offset -slug: Web/CSS/offset -tags: - - CSS - - Draft - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/offset ---- -La propriété offset est une propriété raccourcie pour les propriétés {{cssxref("offset-path")}}, {{cssxref("offset-position")}}, {{cssxref("offset-distance")}}, {{cssxref("offset-rotate")}} et {{cssxref("offset-anchor")}}. Elle permet d'animer un élément sur un tracé défini.
Note : Dans les premières versions de la spécification, cette propriété était intitulée motion.
/* Position de décalage */ -offset: auto -offset: 10px 30px; -offset: none; - -/* Chemin de décalage */ -offset: ray(45deg closest-side); -offset: path(M 100 100 L 300 100 L 200 300 z); -offset: url(arc.svg); - -/* Chemin de décalage avec une distance et/ou */ -/* une rotation */ -offset: url(circle.svg) 100px; -offset: url(circle.svg) 40%; -offset: url(circle.svg) 30deg; -offset: url(circle.svg) 50px 20deg; - -/* Gestion d'une ancre de décalage */ -offset: ray(45deg closest-side) / 40px 20px; -offset: url(arc.svg) 2cm / 0.5cm 3cm; -offset: url(arc.svg) 30deg / 50px 100px; -- -
<div id="offsetElement"></div> -- -
@keyframes move {
- from {
- offset-distance: 0%;
- }
-
- to {
- offset-distance: 100%;
- }
-}
-
-#offsetElement {
- width: 50px;
- height: 50px;
- background-color: blue;
- offset: path("M 100 100 L 300 100 L 200 300 z") auto;
- animation: move 3s linear infinite;
-}
-
-
-{{EmbedLiveSample("Exemples", 350, 350)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-shorthand', 'offset')}} | -{{Spec2('Motion Path Level 1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.offset")}}
diff --git a/files/fr/web/css/offset/index.md b/files/fr/web/css/offset/index.md new file mode 100644 index 0000000000..07d09681ff --- /dev/null +++ b/files/fr/web/css/offset/index.md @@ -0,0 +1,102 @@ +--- +title: offset +slug: Web/CSS/offset +tags: + - CSS + - Draft + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/offset +--- +La propriété offset est une propriété raccourcie pour les propriétés {{cssxref("offset-path")}}, {{cssxref("offset-position")}}, {{cssxref("offset-distance")}}, {{cssxref("offset-rotate")}} et {{cssxref("offset-anchor")}}. Elle permet d'animer un élément sur un tracé défini.
Note : Dans les premières versions de la spécification, cette propriété était intitulée motion.
/* Position de décalage */ +offset: auto +offset: 10px 30px; +offset: none; + +/* Chemin de décalage */ +offset: ray(45deg closest-side); +offset: path(M 100 100 L 300 100 L 200 300 z); +offset: url(arc.svg); + +/* Chemin de décalage avec une distance et/ou */ +/* une rotation */ +offset: url(circle.svg) 100px; +offset: url(circle.svg) 40%; +offset: url(circle.svg) 30deg; +offset: url(circle.svg) 50px 20deg; + +/* Gestion d'une ancre de décalage */ +offset: ray(45deg closest-side) / 40px 20px; +offset: url(arc.svg) 2cm / 0.5cm 3cm; +offset: url(arc.svg) 30deg / 50px 100px; ++ +
<div id="offsetElement"></div> ++ +
@keyframes move {
+ from {
+ offset-distance: 0%;
+ }
+
+ to {
+ offset-distance: 100%;
+ }
+}
+
+#offsetElement {
+ width: 50px;
+ height: 50px;
+ background-color: blue;
+ offset: path("M 100 100 L 300 100 L 200 300 z") auto;
+ animation: move 3s linear infinite;
+}
+
+
+{{EmbedLiveSample("Exemples", 350, 350)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Motion Path Level 1', '#offset-shorthand', 'offset')}} | +{{Spec2('Motion Path Level 1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.offset")}}
diff --git a/files/fr/web/css/opacity/index.html b/files/fr/web/css/opacity/index.html deleted file mode 100644 index 4f33f117e4..0000000000 --- a/files/fr/web/css/opacity/index.html +++ /dev/null @@ -1,180 +0,0 @@ ---- -title: opacity -slug: Web/CSS/opacity -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/opacity ---- -La propriété opacity définit la transparence d'un élément. Autrement dit, elle permet de définir le degré de visibilité de l'arrière-plan sur lequel est placé l'élément.
La valeur s'applique à l'ensemble de l'élément et à ce qu'il contient même si la valeur n'est pas héritée par les éléments fils. Ainsi, un élément et les fils qu'il contient auront tous la même opacité relative à l'arrière-plan, même si l'élément et ses descendants ont des opacités différentes. Si on souhaite utiliser différentes opacités pour les différents éléments enfants, plutôt que d'utiliser opacity, on pourra utiliser la propriété {{cssxref("background")}} avec une composante alpha différente de 1 (par exemple : background: rgba(0, 0, 0, 0.4);).
/* Valeurs numériques */ -/* Totalement opaque */ -opacity: 1; -opacity: 1.0; - -/* Légèrement transparent */ -opacity: 0.6; - -/* Complètement transparent */ -opacity: 0.0; -opacity: 0; - -/* Valeurs globales */ -opacity: inherit; -opacity: initial; -opacity: unset; -- -
<number>0.0, 1.0] qui représente l'opacité de l'élément, la valeur de son canal alpha. Les valeurs en dehors de cet intervalle seront considérées comme valides mais ramenées dans cet intervalle (ainsi 6 sera équivalent à 1 et -2 sera équivalent à 0).
- | Valeur | -Signification | -
|---|---|
0 |
- L'élément est complètement transparent (invisible). | -
Toute valeur de type {{cssxref("<number>")}} strictement comprise entre 0 et 1 |
- L'élément est partiellement transparent, on peut voir l'arrière-plan. | -
1 (la valeur par défaut) |
- L'élément est complètement opaque. | -
div {
- background-color: yellow;
-}
-
-.leger {
- /* On ne voit presque pas le texte */
- opacity: 0.2;
-}
-.moyen {
- /* On peut mieux discerner le texte */
- opacity: 0.5;
-}
-.lourd {
- /* Le texte est clairement visible */
- opacity: 0.9;
-}
-
-
-<div class="leger">On arrive à peine à lire.</div> -<div class="moyen">On voit mieux.</div> -<div class="lourd">Ceci est plus simple à lire.</div> -- -
{{EmbedLiveSample('Exemple_simple', '640', '64')}}
- -:hoverimg.opacity {
- opacity: 1;
- /* IE8 et antérieurs */
- filter: alpha(opacity=100);
- /* Déclenche "hasLayout" dans IE 7 et antérieurs */
- zoom: 1;
-}
-
-img.opacity:hover {
- opacity: 0.5;
- filter: alpha(opacity=50);
- zoom: 1;
-}
-
-<img src="//developer.mozilla.org/media/img/mdn-logo.png" - alt="MDN logo" width="128" height="146" - class="opacity"> -- -
{{EmbedLiveSample("Jouer_sur_l’opacité_avec_hover", '150', '175')}}
- -Si l'opacité du texte est modifiée, il est nécessaire de vérifier que le contraste entre la couleur du texte et l'arrière-plan est suffisant pour que le texte soit lisible, y compris pour les personnes souffrant de trouble de la vision.
- -Le ratio de contraste est déterminé en comparant la luminosité de la couleur du texte (dont l'opacité a été adaptée) et celle de l'arrière-plan. Les recommandations du WCAG conseillent un ratio de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands (un texte est considéré comme grand s'il est en gras et dont les lettres mesurent 18.66px ou si ses lettres mesurent 24px ou plus).
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'opacity')}} | -{{Spec2('CSS3 Transitions')}} | -opacity peut désormais être animée. |
-
| {{SpecName('CSS3 Colors', '#opacity', 'opacity')}} | -{{Spec2('CSS3 Colors')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.opacity")}}
- -La propriété opacity définit la transparence d'un élément. Autrement dit, elle permet de définir le degré de visibilité de l'arrière-plan sur lequel est placé l'élément.
La valeur s'applique à l'ensemble de l'élément et à ce qu'il contient même si la valeur n'est pas héritée par les éléments fils. Ainsi, un élément et les fils qu'il contient auront tous la même opacité relative à l'arrière-plan, même si l'élément et ses descendants ont des opacités différentes. Si on souhaite utiliser différentes opacités pour les différents éléments enfants, plutôt que d'utiliser opacity, on pourra utiliser la propriété {{cssxref("background")}} avec une composante alpha différente de 1 (par exemple : background: rgba(0, 0, 0, 0.4);).
/* Valeurs numériques */ +/* Totalement opaque */ +opacity: 1; +opacity: 1.0; + +/* Légèrement transparent */ +opacity: 0.6; + +/* Complètement transparent */ +opacity: 0.0; +opacity: 0; + +/* Valeurs globales */ +opacity: inherit; +opacity: initial; +opacity: unset; ++ +
<number>0.0, 1.0] qui représente l'opacité de l'élément, la valeur de son canal alpha. Les valeurs en dehors de cet intervalle seront considérées comme valides mais ramenées dans cet intervalle (ainsi 6 sera équivalent à 1 et -2 sera équivalent à 0).
+ | Valeur | +Signification | +
|---|---|
0 |
+ L'élément est complètement transparent (invisible). | +
Toute valeur de type {{cssxref("<number>")}} strictement comprise entre 0 et 1 |
+ L'élément est partiellement transparent, on peut voir l'arrière-plan. | +
1 (la valeur par défaut) |
+ L'élément est complètement opaque. | +
div {
+ background-color: yellow;
+}
+
+.leger {
+ /* On ne voit presque pas le texte */
+ opacity: 0.2;
+}
+.moyen {
+ /* On peut mieux discerner le texte */
+ opacity: 0.5;
+}
+.lourd {
+ /* Le texte est clairement visible */
+ opacity: 0.9;
+}
+
+
+<div class="leger">On arrive à peine à lire.</div> +<div class="moyen">On voit mieux.</div> +<div class="lourd">Ceci est plus simple à lire.</div> ++ +
{{EmbedLiveSample('Exemple_simple', '640', '64')}}
+ +:hoverimg.opacity {
+ opacity: 1;
+ /* IE8 et antérieurs */
+ filter: alpha(opacity=100);
+ /* Déclenche "hasLayout" dans IE 7 et antérieurs */
+ zoom: 1;
+}
+
+img.opacity:hover {
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ zoom: 1;
+}
+
+<img src="//developer.mozilla.org/media/img/mdn-logo.png" + alt="MDN logo" width="128" height="146" + class="opacity"> ++ +
{{EmbedLiveSample("Jouer_sur_l’opacité_avec_hover", '150', '175')}}
+ +Si l'opacité du texte est modifiée, il est nécessaire de vérifier que le contraste entre la couleur du texte et l'arrière-plan est suffisant pour que le texte soit lisible, y compris pour les personnes souffrant de trouble de la vision.
+ +Le ratio de contraste est déterminé en comparant la luminosité de la couleur du texte (dont l'opacité a été adaptée) et celle de l'arrière-plan. Les recommandations du WCAG conseillent un ratio de 4.5:1 pour les textes normaux et 3:1 pour les textes plus grands (un texte est considéré comme grand s'il est en gras et dont les lettres mesurent 18.66px ou si ses lettres mesurent 24px ou plus).
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'opacity')}} | +{{Spec2('CSS3 Transitions')}} | +opacity peut désormais être animée. |
+
| {{SpecName('CSS3 Colors', '#opacity', 'opacity')}} | +{{Spec2('CSS3 Colors')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.opacity")}}
+ +La propriété order définit l'ordre avec lequel on dessine les éléments d'un conteneur d'éléments flexibles ou d'une grille d'éléments. Les éléments sont appliqués dans l'ordre croissant des valeurs de order. Les éléments ayant la même valeur pour order seront appliqués dans l'ordre selon lequel ils apparaissent dans le code source du document.
Note : order est uniquement conçue pour affecter l'ordre visuel. Elle ne doit pas être utilisée pour modifier l'ordre logique ou l'ordre de tabulation. order ne doit pas être utilisée avec les média non visuels comme les informations vocales.
/* Valeurs entières (type <integer>) */ -/* positives ou négatives */ -order: 5; -order: -5; - -/* Valeurs globales */ -order: inherit; -order: initial; -order: unset; -- -
<integer><div id='main'> - <article>Lorem ipsum</article> - <nav> consectetur adipisicing elit, sed do eiusmod</nav> - <aside>tempor incididunt ut labore et dolore magna</aside> -</div>- -
Grâce à ces déclarations CSS, on crée un disposition avec deux barres entourant un bloc de contenu. Le module de disposition des boîtes flexibles crée des bloc de tailles verticales égales et utilise autant d'espace horizontal qu'il y en a de disponible.
- -#main {
- display: flex;
-}
-
-#main > article {
- flex:1;
- order: 2;
- border: 1px dotted orange;
-}
-
-#main > nav {
- width: 200px;
- order: 1;
- border: 1px dotted blue;
-}
-
-#main > aside {
- width: 200px;
- order: 3;
- border: 1px dotted blue;
-}
-
-{{EmbedLiveSample("Exemples")}}
- -La propriété order créera une incohérence entre l'ordre de présentation visuelle et celui du DOM. Cela aura un impact négatif pour les utilisateurs avec des troubles de la vision et qui utilisent des outils d'assistance comme les lecteurs d'écran. Si l'ordre visuel est important, les utilisateurs de lecteurs d'écran n'auront pas accès à l'ordre correct.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#order-property', 'order')}} | -{{Spec2('CSS3 Flexbox')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.order")}}
- -La propriété order définit l'ordre avec lequel on dessine les éléments d'un conteneur d'éléments flexibles ou d'une grille d'éléments. Les éléments sont appliqués dans l'ordre croissant des valeurs de order. Les éléments ayant la même valeur pour order seront appliqués dans l'ordre selon lequel ils apparaissent dans le code source du document.
Note : order est uniquement conçue pour affecter l'ordre visuel. Elle ne doit pas être utilisée pour modifier l'ordre logique ou l'ordre de tabulation. order ne doit pas être utilisée avec les média non visuels comme les informations vocales.
/* Valeurs entières (type <integer>) */ +/* positives ou négatives */ +order: 5; +order: -5; + +/* Valeurs globales */ +order: inherit; +order: initial; +order: unset; ++ +
<integer><div id='main'> + <article>Lorem ipsum</article> + <nav> consectetur adipisicing elit, sed do eiusmod</nav> + <aside>tempor incididunt ut labore et dolore magna</aside> +</div>+ +
Grâce à ces déclarations CSS, on crée un disposition avec deux barres entourant un bloc de contenu. Le module de disposition des boîtes flexibles crée des bloc de tailles verticales égales et utilise autant d'espace horizontal qu'il y en a de disponible.
+ +#main {
+ display: flex;
+}
+
+#main > article {
+ flex:1;
+ order: 2;
+ border: 1px dotted orange;
+}
+
+#main > nav {
+ width: 200px;
+ order: 1;
+ border: 1px dotted blue;
+}
+
+#main > aside {
+ width: 200px;
+ order: 3;
+ border: 1px dotted blue;
+}
+
+{{EmbedLiveSample("Exemples")}}
+ +La propriété order créera une incohérence entre l'ordre de présentation visuelle et celui du DOM. Cela aura un impact négatif pour les utilisateurs avec des troubles de la vision et qui utilisent des outils d'assistance comme les lecteurs d'écran. Si l'ordre visuel est important, les utilisateurs de lecteurs d'écran n'auront pas accès à l'ordre correct.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Flexbox', '#order-property', 'order')}} | +{{Spec2('CSS3 Flexbox')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.order")}}
+ +La propriété orphans définit le nombre minimum de lignes qui doivent rester en bas d'une page, d'une région ou d'une colonne dans un conteneur de bloc.
/* Valeur numérique entière */ -orphans: 3; - -/* Valeurs globales */ -orphans: inherit; -orphans: initial; -orphans: unset; -- -
Note : En typographie, un orphelin (orphan en anglais) est la première ligne d'un paragraphe qui apparaît isolée en bas d'une page (le paragraphe poursuivant sur la page suivante).
-<integer><p class=exemple> - Tout en causant ainsi, Alice était entrée dans une petite chambre - bien rangée, et, comme elle s’y attendait, sur une petite table - dans l’embrasure de la fenêtre, elle vit un éventail et deux ou - trois paires de gants de chevreau tout petits. Elle en prit une - paire, ainsi que l’éventail, et allait quitter la chambre lorsqu’ - elle aperçut, près du miroir, une petite bouteille. Cette fois il - n’y avait pas l’inscription BUVEZ-MOI — ce qui n’empêcha pas Alice - de la déboucher et de la porter à ses lèvres. « Il m’arrive toujours - quelque chose d’intéressant, » se dit-elle, « lorsque je mange ou - que je bois. Je vais voir un peu l’effet de cette bouteille. - J’espère bien qu’elle me fera regrandir, car je suis vraiment - fatiguée de n’être qu’une petite nabote ! »C’est ce qui arriva en - effet, et bien plus tôt qu’elle ne s’y attendait. Elle n’avait pas - bu la moitié de la bouteille, que sa tête touchait au plafond et - qu’elle fut forcée de se baisser pour ne pas se casser le cou. Elle - remit bien vite la bouteille sur la table en se disant : « En voilà - assez ; j’espère ne pas grandir davantage. Je ne puis déjà plus - passer par la porte. Oh ! je voudrais bien n’avoir pas tant bu ! » -</p>- -
.exemple {
- orphans: 4;
- columns: 3;
-}
-
-
-{{EmbedLiveSample("Exemples","600","500")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#widows-orphans', 'orphans')}} | -{{Spec2('CSS3 Fragmentation')}} | -La propriété orphans est étendue pour s'appliquer à n'importe quel fragment comme les pages, les régions ou les colonnes. |
-
| {{SpecName('CSS2.1', 'page.html#break-inside', 'orphans')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.orphans")}}
- -La propriété orphans définit le nombre minimum de lignes qui doivent rester en bas d'une page, d'une région ou d'une colonne dans un conteneur de bloc.
/* Valeur numérique entière */ +orphans: 3; + +/* Valeurs globales */ +orphans: inherit; +orphans: initial; +orphans: unset; ++ +
Note : En typographie, un orphelin (orphan en anglais) est la première ligne d'un paragraphe qui apparaît isolée en bas d'une page (le paragraphe poursuivant sur la page suivante).
+<integer><p class=exemple> + Tout en causant ainsi, Alice était entrée dans une petite chambre + bien rangée, et, comme elle s’y attendait, sur une petite table + dans l’embrasure de la fenêtre, elle vit un éventail et deux ou + trois paires de gants de chevreau tout petits. Elle en prit une + paire, ainsi que l’éventail, et allait quitter la chambre lorsqu’ + elle aperçut, près du miroir, une petite bouteille. Cette fois il + n’y avait pas l’inscription BUVEZ-MOI — ce qui n’empêcha pas Alice + de la déboucher et de la porter à ses lèvres. « Il m’arrive toujours + quelque chose d’intéressant, » se dit-elle, « lorsque je mange ou + que je bois. Je vais voir un peu l’effet de cette bouteille. + J’espère bien qu’elle me fera regrandir, car je suis vraiment + fatiguée de n’être qu’une petite nabote ! »C’est ce qui arriva en + effet, et bien plus tôt qu’elle ne s’y attendait. Elle n’avait pas + bu la moitié de la bouteille, que sa tête touchait au plafond et + qu’elle fut forcée de se baisser pour ne pas se casser le cou. Elle + remit bien vite la bouteille sur la table en se disant : « En voilà + assez ; j’espère ne pas grandir davantage. Je ne puis déjà plus + passer par la porte. Oh ! je voudrais bien n’avoir pas tant bu ! » +</p>+ +
.exemple {
+ orphans: 4;
+ columns: 3;
+}
+
+
+{{EmbedLiveSample("Exemples","600","500")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Fragmentation', '#widows-orphans', 'orphans')}} | +{{Spec2('CSS3 Fragmentation')}} | +La propriété orphans est étendue pour s'appliquer à n'importe quel fragment comme les pages, les régions ou les colonnes. |
+
| {{SpecName('CSS2.1', 'page.html#break-inside', 'orphans')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.orphans")}}
+ +La propriété outline-color permet de définir la couleur avec laquelle on trace le conteur de l'élément. Ce contour est tracé autour de la boîte de bordure et peut être utilisé pour faire ressortir l'élément.
À la différence de la bordure, le contour est tracé en dehors du cadre de l'élément et peut donc chevaucher d'autres contenus. La bordure, en revanche, modifiera la disposition de la page afin de s'assurer qu'aucun chevauchement involontaire ne se produit.La propriété outline-color est également synthétisée avec la propriété raccourcie {{cssxref("outline")}}.
- -
/* Valeurs avec un mot-clé */ -outline-color: invert; - -/* Valeurs de couleur */ -/* Type <color> */ -outline-color: red; -outline-color: #f92525; -outline-color: rgb(30,222,121); - -/* Valeurs globales */ -outline-color: inherit; -outline-color: initial; -outline-color: unset; -- -
- -
La propriété outline-color est définie avec une des valeurs listées ci-après.
<color>invert<p class="exemple">Mon contour est blue, da ba dee.</p>- -
.exemple {
- /* Tout d'abord on utiliser outline */
- /* pour définir le contour */
- outline: 2px solid;
-
- /* Ensuite on précise sa couleur avec */
- /* outline-color */
- outline-color: #0000FF;
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -L'utilisation d'un focus personnalisé s'accompagne généralement d'une modification de la propriété {{cssxref("outline")}}. Si la couleur du contour est modifiée, il est nécessaire de vérifier que le contraste entre le contour et l'arrière-plan est suffisant afin que le contour puisse clairement être distingué.
- -Le ratio de contraste est déterminé en comparaisant les luminosités des deux couleurs. Pour le contraste entre un texte et son arrière-plan, les recommandations Web Content Accessibility Guidelines (WCAG) requièrent un ratio de 4.5:1 pour le contenu textuel et un ratio de 3:1 pour les titres ou les textes plus grands (18.66px et en gras ou 24px ou plus grand).
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline-color', 'outline-color')}} | -{{Spec2('CSS3 Basic UI')}} | -Aucun changement | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'outline-color')}} | -{{Spec2('CSS3 Transitions')}} | -outline-color peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'ui.html#propdef-outline-color', 'outline-color')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.outline-color")}}
- -La propriété outline-color permet de définir la couleur avec laquelle on trace le conteur de l'élément. Ce contour est tracé autour de la boîte de bordure et peut être utilisé pour faire ressortir l'élément.
À la différence de la bordure, le contour est tracé en dehors du cadre de l'élément et peut donc chevaucher d'autres contenus. La bordure, en revanche, modifiera la disposition de la page afin de s'assurer qu'aucun chevauchement involontaire ne se produit.La propriété outline-color est également synthétisée avec la propriété raccourcie {{cssxref("outline")}}.
+ +
/* Valeurs avec un mot-clé */ +outline-color: invert; + +/* Valeurs de couleur */ +/* Type <color> */ +outline-color: red; +outline-color: #f92525; +outline-color: rgb(30,222,121); + +/* Valeurs globales */ +outline-color: inherit; +outline-color: initial; +outline-color: unset; ++ +
+ +
La propriété outline-color est définie avec une des valeurs listées ci-après.
<color>invert<p class="exemple">Mon contour est blue, da ba dee.</p>+ +
.exemple {
+ /* Tout d'abord on utiliser outline */
+ /* pour définir le contour */
+ outline: 2px solid;
+
+ /* Ensuite on précise sa couleur avec */
+ /* outline-color */
+ outline-color: #0000FF;
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +L'utilisation d'un focus personnalisé s'accompagne généralement d'une modification de la propriété {{cssxref("outline")}}. Si la couleur du contour est modifiée, il est nécessaire de vérifier que le contraste entre le contour et l'arrière-plan est suffisant afin que le contour puisse clairement être distingué.
+ +Le ratio de contraste est déterminé en comparaisant les luminosités des deux couleurs. Pour le contraste entre un texte et son arrière-plan, les recommandations Web Content Accessibility Guidelines (WCAG) requièrent un ratio de 4.5:1 pour le contenu textuel et un ratio de 3:1 pour les titres ou les textes plus grands (18.66px et en gras ou 24px ou plus grand).
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline-color', 'outline-color')}} | +{{Spec2('CSS3 Basic UI')}} | +Aucun changement | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'outline-color')}} | +{{Spec2('CSS3 Transitions')}} | +outline-color peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'ui.html#propdef-outline-color', 'outline-color')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.outline-color")}}
+ +La propriété outline-offset définit l'espace qu'il y a entre la bordure dessinée par {{cssxref("outline")}} et le bord de la boîte de bordure d'un élément. Cet espace est transparent et la couleur visible en arrière-plan sera déterminée par l'élément parent.
/* Valeurs de longueur */ -/* Type <length> */ -outline-offset: 3px; -outline-offset: 0.2em; - -/* Valeurs globales */ -outline-offset: inherit; -outline-offset: initial; -outline-offset: unset; -- -
<length>.exemple {
- outline: 1px dashed red;
- /* On décale la ligne de 10px */
- outline-offset: 10px;
- background: yellow;
- margin: 15px;
- border: 1px solid black;
-}
-
-
-<p class="exemple">La bordure est décalée<p>- -
{{EmbedLiveSample('Exemples')}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'outline-offset')}} | -{{Spec2('CSS3 Transitions')}} | -outline-offset peut désormais être animée. |
-
| {{SpecName('CSS3 Basic UI', '#outline-offset', 'outline-offset')}} | -{{Spec2('CSS3 Basic UI')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.outline-offset")}}
diff --git a/files/fr/web/css/outline-offset/index.md b/files/fr/web/css/outline-offset/index.md new file mode 100644 index 0000000000..98bcb9014e --- /dev/null +++ b/files/fr/web/css/outline-offset/index.md @@ -0,0 +1,90 @@ +--- +title: outline-offset +slug: Web/CSS/outline-offset +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/outline-offset +--- +La propriété outline-offset définit l'espace qu'il y a entre la bordure dessinée par {{cssxref("outline")}} et le bord de la boîte de bordure d'un élément. Cet espace est transparent et la couleur visible en arrière-plan sera déterminée par l'élément parent.
/* Valeurs de longueur */ +/* Type <length> */ +outline-offset: 3px; +outline-offset: 0.2em; + +/* Valeurs globales */ +outline-offset: inherit; +outline-offset: initial; +outline-offset: unset; ++ +
<length>.exemple {
+ outline: 1px dashed red;
+ /* On décale la ligne de 10px */
+ outline-offset: 10px;
+ background: yellow;
+ margin: 15px;
+ border: 1px solid black;
+}
+
+
+<p class="exemple">La bordure est décalée<p>+ +
{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'outline-offset')}} | +{{Spec2('CSS3 Transitions')}} | +outline-offset peut désormais être animée. |
+
| {{SpecName('CSS3 Basic UI', '#outline-offset', 'outline-offset')}} | +{{Spec2('CSS3 Basic UI')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.outline-offset")}}
diff --git a/files/fr/web/css/outline-style/index.html b/files/fr/web/css/outline-style/index.html deleted file mode 100644 index 5a98aa4cf7..0000000000 --- a/files/fr/web/css/outline-style/index.html +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: outline-style -slug: Web/CSS/outline-style -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/outline-style ---- -La propriété outline-style permet de définir la mise en forme utilisée pour dessiner la bordure d'un élément. Cette bordure est dessinée autour de la boîte de bordure et peut être utilisée afin de faire ressortir l'élément.
Cette propriété est synthétisée grâce à la propriété {{cssxref("outline")}} qui regroupe outline-style, {{cssxref("outline-width")}} et {{cssxref("outline-color")}}.
- -/* Valeurs avec un mot-clé */ -outline-style: auto; -outline-style: none; -outline-style: dotted; -outline-style: dashed; -outline-style: solid; -outline-style: double; -outline-style: groove; -outline-style: ridge; -outline-style: inset; -outline-style: outset; - -/* Valeurs globales */ -outline-style: inherit; -outline-style: initial; -outline-style: unset; -- -
autonone0).dotteddashedsoliddoublegrooveridgegroove : la bordure semble dépasser du document.insetoutsetinset : la bordure semble ressortir du document..exemple-groove {
- outline-style: groove;
- outline-color: red;
- outline-width: 2px;
-}
-
-.exemple-outset {
- outline-style: outset;
- outline-color: green;
- outline-width: 1px;
-}
-
-<p class="exemple-groove">Ça c'est le groove</p> -<p class="exemple-outset">Et ça c'est outset</p> -- -
{{EmbedLiveSample("Exemple_simple","100%","100%")}}
- -La valeur auto indique une bordure sur mesure selon l'interface du système d'exploitation ou de l'agent utilisateur.
.auto {
- outline-style: auto; /* same result as "outline: auto" */
-}
-
-/* To make the Demo clearer */
-* { outline-width: 10px; padding: 15px; }
-
-<div> - <p class="auto">Outline Demo</p> -</div>- -
{{EmbedLiveSample('Example_0_-_auto')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline-style', 'outline-style')}} | -{{Spec2('CSS3 Basic UI')}} | -La valeur auto a été ajoutée. |
-
| {{SpecName('CSS2.1', 'ui.html#propdef-outline-style', 'outline-style')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.outline-style")}}
diff --git a/files/fr/web/css/outline-style/index.md b/files/fr/web/css/outline-style/index.md new file mode 100644 index 0000000000..5a98aa4cf7 --- /dev/null +++ b/files/fr/web/css/outline-style/index.md @@ -0,0 +1,146 @@ +--- +title: outline-style +slug: Web/CSS/outline-style +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/outline-style +--- +La propriété outline-style permet de définir la mise en forme utilisée pour dessiner la bordure d'un élément. Cette bordure est dessinée autour de la boîte de bordure et peut être utilisée afin de faire ressortir l'élément.
Cette propriété est synthétisée grâce à la propriété {{cssxref("outline")}} qui regroupe outline-style, {{cssxref("outline-width")}} et {{cssxref("outline-color")}}.
+ +/* Valeurs avec un mot-clé */ +outline-style: auto; +outline-style: none; +outline-style: dotted; +outline-style: dashed; +outline-style: solid; +outline-style: double; +outline-style: groove; +outline-style: ridge; +outline-style: inset; +outline-style: outset; + +/* Valeurs globales */ +outline-style: inherit; +outline-style: initial; +outline-style: unset; ++ +
autonone0).dotteddashedsoliddoublegrooveridgegroove : la bordure semble dépasser du document.insetoutsetinset : la bordure semble ressortir du document..exemple-groove {
+ outline-style: groove;
+ outline-color: red;
+ outline-width: 2px;
+}
+
+.exemple-outset {
+ outline-style: outset;
+ outline-color: green;
+ outline-width: 1px;
+}
+
+<p class="exemple-groove">Ça c'est le groove</p> +<p class="exemple-outset">Et ça c'est outset</p> ++ +
{{EmbedLiveSample("Exemple_simple","100%","100%")}}
+ +La valeur auto indique une bordure sur mesure selon l'interface du système d'exploitation ou de l'agent utilisateur.
.auto {
+ outline-style: auto; /* same result as "outline: auto" */
+}
+
+/* To make the Demo clearer */
+* { outline-width: 10px; padding: 15px; }
+
+<div> + <p class="auto">Outline Demo</p> +</div>+ +
{{EmbedLiveSample('Example_0_-_auto')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline-style', 'outline-style')}} | +{{Spec2('CSS3 Basic UI')}} | +La valeur auto a été ajoutée. |
+
| {{SpecName('CSS2.1', 'ui.html#propdef-outline-style', 'outline-style')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.outline-style")}}
diff --git a/files/fr/web/css/outline-width/index.html b/files/fr/web/css/outline-width/index.html deleted file mode 100644 index b0a97a057c..0000000000 --- a/files/fr/web/css/outline-width/index.html +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: outline-width -slug: Web/CSS/outline-width -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/outline-width ---- -La propriété CSS outline-width est utilisée afin de définir l'épaisseur de la bordure (outline) d'un élément. Cette bordure est dessinée autour des éléments et délimite la boîte de bordure. Visuellement, cela permet de faire ressortir l'élément.
/* Valeurs avec un mot clé */ -outline-width: thin; -outline-width: medium; -outline-width: thick; - -/* Valeurs de longueur */ -/* Type <length> */ -outline-width: 1px; -outline-width: 0.1em; - -/* Valeurs globales */ -outline-width: inherit; -- -
thin1px.medium3px.thick5px.<length><span id="thin">thin</span> -<span id="medium">medium</span> -<span id="thick">thick</span> -<span id="deuxpixels">2px</span> -<span id="unex">1ex</span> -<span id="deuxem">2em</span> -- -
span {
- outline-style: solid;
- display: inline-block;
- margin: 20px;
-}
-
-#thin {
- outline-width: thin;
-}
-
-#medium {
- outline-width: medium;
-}
-
-#thick {
- outline-width: thick;
-}
-
-#deuxpixels {
- outline-width: 2px;
-}
-
-#unex {
- outline-width: 1ex;
-}
-
-#deuxem {
- outline-width: 2em;
-}
-
-
-{{EmbedLiveSample('Exemples', '100%', '80')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline-width', 'outline-width')}} | -{{Spec2('CSS3 Basic UI')}} | -Aucun changement | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'outline-width')}} | -{{Spec2('CSS3 Transitions')}} | -outline-width peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'ui.html#propdef-outline-width', 'outline-width')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.outline-width")}}
diff --git a/files/fr/web/css/outline-width/index.md b/files/fr/web/css/outline-width/index.md new file mode 100644 index 0000000000..b0a97a057c --- /dev/null +++ b/files/fr/web/css/outline-width/index.md @@ -0,0 +1,131 @@ +--- +title: outline-width +slug: Web/CSS/outline-width +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/outline-width +--- +La propriété CSS outline-width est utilisée afin de définir l'épaisseur de la bordure (outline) d'un élément. Cette bordure est dessinée autour des éléments et délimite la boîte de bordure. Visuellement, cela permet de faire ressortir l'élément.
/* Valeurs avec un mot clé */ +outline-width: thin; +outline-width: medium; +outline-width: thick; + +/* Valeurs de longueur */ +/* Type <length> */ +outline-width: 1px; +outline-width: 0.1em; + +/* Valeurs globales */ +outline-width: inherit; ++ +
thin1px.medium3px.thick5px.<length><span id="thin">thin</span> +<span id="medium">medium</span> +<span id="thick">thick</span> +<span id="deuxpixels">2px</span> +<span id="unex">1ex</span> +<span id="deuxem">2em</span> ++ +
span {
+ outline-style: solid;
+ display: inline-block;
+ margin: 20px;
+}
+
+#thin {
+ outline-width: thin;
+}
+
+#medium {
+ outline-width: medium;
+}
+
+#thick {
+ outline-width: thick;
+}
+
+#deuxpixels {
+ outline-width: 2px;
+}
+
+#unex {
+ outline-width: 1ex;
+}
+
+#deuxem {
+ outline-width: 2em;
+}
+
+
+{{EmbedLiveSample('Exemples', '100%', '80')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline-width', 'outline-width')}} | +{{Spec2('CSS3 Basic UI')}} | +Aucun changement | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'outline-width')}} | +{{Spec2('CSS3 Transitions')}} | +outline-width peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'ui.html#propdef-outline-width', 'outline-width')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.outline-width")}}
diff --git a/files/fr/web/css/outline/index.html b/files/fr/web/css/outline/index.html deleted file mode 100644 index 7b505019a2..0000000000 --- a/files/fr/web/css/outline/index.html +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: outline -slug: Web/CSS/outline -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/outline ---- -La propriété outline est une propriété raccourcie qui permet de définir, dans une seule déclaration, une ou plusieurs des propriétés parmi {{cssxref("outline-style")}}, {{cssxref("outline-width")}} et {{cssxref("outline-color")}}.
Les contours (outline) diffèrent des bordures, notamment sur les points suivants :
- -/* style */ -outline: solid; - -/* couleur | style */ -outline: #f66 dashed; - -/* style | épaisseur */ -outline: inset thick; - -/* couleur | style | épaisseur */ -outline: green solid 3px; - -/* Valeurs globales */ -outline: inherit; -outline: initial; -outline: unset; -- -
La propriété outline peut être définie avec une, deux ou trois valeurs parmi celles listées ci-après. L'ordre de ces valeurs n'a pas d'importance.
Note : Si aucun style n'est défini, le contour sera invisible (car le style par défaut vaut none).
<'outline-width'><'outline-style'><'outline-color'><p class="exemple">Je suis entouré de tirets rouges</p>- -
.exemple {
- outline: dashed red 2px;
- /* on aurait pu utiliser */
- /* les trois propriétés unitaires */
- /* et avoir le même résultat */
-}
-
-
-{{EmbedLiveSample("Exemple_simple")}}
- -<p class="exemple"> - petit texte - <span class=grand>Grand Texte</span> - petit texte -</p>- -
.exemple {
- outline: dotted orange 1px;
-}
-
-.grand {
- font-size:xx-large;
-}
-
-
-{{EmbedLiveSample("Exemple_de_contour_non_rectangulaire")}}
- -Utiliser la propriété outline avec une valeur 0 ou none supprimera le style par défaut du navigateur pour le focus. Lorsqu'on interagit avec un élément, celui-ci doit avoir un indicateur visible. Aussi, veillez à fournir un tel indicateur si vous retirez le style par défaut pour le focus
Understanding Success Criterion 2.4.7 | Understanding WCAG 2.0 (en anglais)
-| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline', 'outline')}} | -{{Spec2('CSS3 Basic UI')}} | -Aucun changement. | -
| {{SpecName('CSS2.1', 'ui.html#propdef-outline', 'outline')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{Compat("css.properties.outline")}}
diff --git a/files/fr/web/css/outline/index.md b/files/fr/web/css/outline/index.md new file mode 100644 index 0000000000..7b505019a2 --- /dev/null +++ b/files/fr/web/css/outline/index.md @@ -0,0 +1,155 @@ +--- +title: outline +slug: Web/CSS/outline +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/outline +--- +La propriété outline est une propriété raccourcie qui permet de définir, dans une seule déclaration, une ou plusieurs des propriétés parmi {{cssxref("outline-style")}}, {{cssxref("outline-width")}} et {{cssxref("outline-color")}}.
Les contours (outline) diffèrent des bordures, notamment sur les points suivants :
+ +/* style */ +outline: solid; + +/* couleur | style */ +outline: #f66 dashed; + +/* style | épaisseur */ +outline: inset thick; + +/* couleur | style | épaisseur */ +outline: green solid 3px; + +/* Valeurs globales */ +outline: inherit; +outline: initial; +outline: unset; ++ +
La propriété outline peut être définie avec une, deux ou trois valeurs parmi celles listées ci-après. L'ordre de ces valeurs n'a pas d'importance.
Note : Si aucun style n'est défini, le contour sera invisible (car le style par défaut vaut none).
<'outline-width'><'outline-style'><'outline-color'><p class="exemple">Je suis entouré de tirets rouges</p>+ +
.exemple {
+ outline: dashed red 2px;
+ /* on aurait pu utiliser */
+ /* les trois propriétés unitaires */
+ /* et avoir le même résultat */
+}
+
+
+{{EmbedLiveSample("Exemple_simple")}}
+ +<p class="exemple"> + petit texte + <span class=grand>Grand Texte</span> + petit texte +</p>+ +
.exemple {
+ outline: dotted orange 1px;
+}
+
+.grand {
+ font-size:xx-large;
+}
+
+
+{{EmbedLiveSample("Exemple_de_contour_non_rectangulaire")}}
+ +Utiliser la propriété outline avec une valeur 0 ou none supprimera le style par défaut du navigateur pour le focus. Lorsqu'on interagit avec un élément, celui-ci doit avoir un indicateur visible. Aussi, veillez à fournir un tel indicateur si vous retirez le style par défaut pour le focus
Understanding Success Criterion 2.4.7 | Understanding WCAG 2.0 (en anglais)
+| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Basic UI', '#outline', 'outline')}} | +{{Spec2('CSS3 Basic UI')}} | +Aucun changement. | +
| {{SpecName('CSS2.1', 'ui.html#propdef-outline', 'outline')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{Compat("css.properties.outline")}}
diff --git a/files/fr/web/css/overflow-anchor/guide_to_scroll_anchoring/index.html b/files/fr/web/css/overflow-anchor/guide_to_scroll_anchoring/index.html deleted file mode 100644 index cecf8f743f..0000000000 --- a/files/fr/web/css/overflow-anchor/guide_to_scroll_anchoring/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: 'Guide : ancrage du défilement (scroll anchoring)' -slug: Web/CSS/overflow-anchor/Guide_to_scroll_anchoring -tags: - - CSS - - Guide - - Intermédiaire -translation_of: Web/CSS/overflow-anchor/Guide_to_scroll_anchoring -original_slug: Web/CSS/overflow-anchor/Guide_ancrage_défilement ---- -Lorsque vous naviguez sur le Web avec une connexion plus ou moins performante, vous avez déjà pu rencontrer le problème suivant : vous faites défiler verticalement le contenu d'une page qui est en cours de chargement puis, au milieu de votre lecture, le contenu se décale brutalement plus bas (parce que des images au-dessus ou d'autres éléments ont fini de charger et s'affichent enfin).
- -L'ancrage du défilement (ou scroll anchoring en anglais) est une fonctionnalité des navigateurs qui vise à résoudre ce problème de « saut » (qui se produit lorsque l'utilisateur a déjà suffisamment fait défiler le contenu pour arriver sur une autre partie du document).
- -L'ancrage du défilement ajuste la position du défilement pour compenser les modification apportées en dehors de la zone d'affichage (viewport). Cela signifie que l'emplacement atteint par l'utilisateur reste dans la zone d'affichage (la position de défilement se retrouve donc implicitement modifiée en termes de distance parcourue sur le document).
- -Il n'y a rien à fait. Cette fonctionnalité est activée par défaut pour les navigateurs qui la prennent en charge. Dans la plupart des cas, ces sauts inattendus ne sont pas une expérience voulue.
- -La spécification fournit une nouvelle propriété : {{cssxref("overflow-anchor")}}. Celle-ci peut être utilisée pour désactiver explicitement l'ancrage du défilement sur une partie ou sur l'ensemble du document. Cette propriété sert de mécanisme pour ne pas utiliser le nouveau comportement.
- -Les valeurs utilisables pour cette propriété sont auto ou none :
auto correspond à la valeur initiale : si c'est un navigateur compatible qui est utilisé, l'ancrage est activé et il devrait y avoir moins de déplacements brusques.none signifie qu'on choisit explicitement de ne pas utiliser l'ancrage du défilement pour tout ou partie du document.Pour désactiver l'ancrage sur l'ensemble du document, on pourra appliquer la propriété sur l'élément {{htmlelement("body")}} :
- -body {
- overflow-anchor: none;
-}
-
-Pour désactiver cette fonctionnalité sur une certaine partie du document, on ciblera overflow-anchor: none sur l'élément conteneur dans lequel l'utilisateur fait défiler le contenu :
.container {
- overflow-anchor: none;
-}
-
-Note : Dans la spécification, il est indiqué qu'il n'est pas possible de « revenir » avec l'ancrage dans un élément fils si l'ancrage a été désactivé sur un élément parent. Ainsi, si on désactive l'ancrage pour l'ensemble du document, on ne pourra pas appliquer (avec succès) overflow-anchor: auto à un autre endroit du document.
La spécification définit également certains évènements qui suppriment cette fonctionnalité où ça serait problématique. Si un évènement particulier se produit sur le nœud d'ancrage ou sur un ancêtre de celui-ci, l'ancrage est supprimé.
- -Les évènements en question sont les modifications des valeurs calculées des propriétés suivantes :
- -Si vous souhaitez appliquer une amélioration progressive et détecter si cette fonctionnalité est disponible dans le navigateur utilisé, vous pouvez utiliser les requêtes de fonctionnalité afin de tester la prise en charge de la propriété overflow-anchor.
{{Compat("css.properties.overflow-anchor")}}
- -Lorsque vous naviguez sur le Web avec une connexion plus ou moins performante, vous avez déjà pu rencontrer le problème suivant : vous faites défiler verticalement le contenu d'une page qui est en cours de chargement puis, au milieu de votre lecture, le contenu se décale brutalement plus bas (parce que des images au-dessus ou d'autres éléments ont fini de charger et s'affichent enfin).
+ +L'ancrage du défilement (ou scroll anchoring en anglais) est une fonctionnalité des navigateurs qui vise à résoudre ce problème de « saut » (qui se produit lorsque l'utilisateur a déjà suffisamment fait défiler le contenu pour arriver sur une autre partie du document).
+ +L'ancrage du défilement ajuste la position du défilement pour compenser les modification apportées en dehors de la zone d'affichage (viewport). Cela signifie que l'emplacement atteint par l'utilisateur reste dans la zone d'affichage (la position de défilement se retrouve donc implicitement modifiée en termes de distance parcourue sur le document).
+ +Il n'y a rien à fait. Cette fonctionnalité est activée par défaut pour les navigateurs qui la prennent en charge. Dans la plupart des cas, ces sauts inattendus ne sont pas une expérience voulue.
+ +La spécification fournit une nouvelle propriété : {{cssxref("overflow-anchor")}}. Celle-ci peut être utilisée pour désactiver explicitement l'ancrage du défilement sur une partie ou sur l'ensemble du document. Cette propriété sert de mécanisme pour ne pas utiliser le nouveau comportement.
+ +Les valeurs utilisables pour cette propriété sont auto ou none :
auto correspond à la valeur initiale : si c'est un navigateur compatible qui est utilisé, l'ancrage est activé et il devrait y avoir moins de déplacements brusques.none signifie qu'on choisit explicitement de ne pas utiliser l'ancrage du défilement pour tout ou partie du document.Pour désactiver l'ancrage sur l'ensemble du document, on pourra appliquer la propriété sur l'élément {{htmlelement("body")}} :
+ +body {
+ overflow-anchor: none;
+}
+
+Pour désactiver cette fonctionnalité sur une certaine partie du document, on ciblera overflow-anchor: none sur l'élément conteneur dans lequel l'utilisateur fait défiler le contenu :
.container {
+ overflow-anchor: none;
+}
+
+Note : Dans la spécification, il est indiqué qu'il n'est pas possible de « revenir » avec l'ancrage dans un élément fils si l'ancrage a été désactivé sur un élément parent. Ainsi, si on désactive l'ancrage pour l'ensemble du document, on ne pourra pas appliquer (avec succès) overflow-anchor: auto à un autre endroit du document.
La spécification définit également certains évènements qui suppriment cette fonctionnalité où ça serait problématique. Si un évènement particulier se produit sur le nœud d'ancrage ou sur un ancêtre de celui-ci, l'ancrage est supprimé.
+ +Les évènements en question sont les modifications des valeurs calculées des propriétés suivantes :
+ +Si vous souhaitez appliquer une amélioration progressive et détecter si cette fonctionnalité est disponible dans le navigateur utilisé, vous pouvez utiliser les requêtes de fonctionnalité afin de tester la prise en charge de la propriété overflow-anchor.
{{Compat("css.properties.overflow-anchor")}}
+ +La propriété overflow-anchor permet d'éviter, lors du défilement, que le navigateur ajuste la position afin de minimiser le déplacement du contenu.
Ce comportement est activé par défaut pour les navigateurs qui le prenne en charge. Aussi, cette propriété est uniquement nécessaire lorsque vous rencontrez des problèmes de défilement dans un document et que vous souhaitez désactiver ce comportement.
- -/* Valeurs avec un mot-clé */ -overflow-anchor: auto; -overflow-anchor: none; - -/* Valeurs globales */ -overflow-anchor: inherit; -overflow-anchor: initial; -overflow-anchor: unset; -- -
autononePour désactiver l'ancrage du défilement, on pourra utiliser cette propriété :
- -body {
- overflow-anchor: none;
-}
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Scroll Anchoring', '#propdef-overflow-anchor', 'overflow-anchor')}} | -{{Spec2('CSS Scroll Anchoring')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.overflow-anchor")}}
- -La propriété overflow-anchor permet d'éviter, lors du défilement, que le navigateur ajuste la position afin de minimiser le déplacement du contenu.
Ce comportement est activé par défaut pour les navigateurs qui le prenne en charge. Aussi, cette propriété est uniquement nécessaire lorsque vous rencontrez des problèmes de défilement dans un document et que vous souhaitez désactiver ce comportement.
+ +/* Valeurs avec un mot-clé */ +overflow-anchor: auto; +overflow-anchor: none; + +/* Valeurs globales */ +overflow-anchor: inherit; +overflow-anchor: initial; +overflow-anchor: unset; ++ +
autononePour désactiver l'ancrage du défilement, on pourra utiliser cette propriété :
+ +body {
+ overflow-anchor: none;
+}
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Scroll Anchoring', '#propdef-overflow-anchor', 'overflow-anchor')}} | +{{Spec2('CSS Scroll Anchoring')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.overflow-anchor")}}
+ +La propriété CSS overflow-block est une propriété logique qui définit ce qu'il faut afficher quand le contenu dépasse d'un élément de bloc sur les bords de bloc (ceux orthogonaux au sens d'écriture). On peut choisir d'afficher rien, une barre de défilement ou de laisser le contenu dépasser.
Note : La propriété overflow-block correspond à {{cssxref("overflow-y")}} ou {{cssxref("overflow-x")}} selon le mode d'écriture du document.
/* Valeurs avec un mot-clé */ -overflow-block: visible; -overflow-block: hidden; -overflow-block: scroll; -overflow-block: auto; - -/* Valeurs globales */ -overflow-block: inherit; -overflow-block: initial; -overflow-block: unset; -- -
La propriété overflow-block se définit avec un mot-clé parmi ceux de la liste suivante.
visiblehiddenscrollautovisible mais établira un nouveau contexte de formatage. Les navigateurs de bureau affichent des barres de défilement si le contenu dépasse.<ul> - <li><code>overflow-block:hidden</code> — masque le texte en dehors - <div id="div1"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-block:scroll</code> — ajoute une barre de défilement - <div id="div2"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-block:visible</code> — affiche le texte en dehors si besoin - <div id="div3"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-block:auto</code> — pour la plupart des navigateurs, équivalent à <code>scroll</code> - <div id="div4"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> -</ul> - -- -
#div1,
-#div2,
-#div3,
-#div4 {
- border: 1px solid black;
- width: 250px;
- height: 100px;
-}
-
-#div1 { overflow-block: hidden; margin-bottom: 12px;}
-#div2 { overflow-block: scroll; margin-bottom: 12px;}
-#div3 { overflow-block: visible; margin-bottom: 120px;}
-#div4 { overflow-block: auto; margin-bottom: 120px;}
-
-
-{{EmbedLiveSample("Exemples", "100%", "780")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-block', 'overflow-block')}} | -{{Spec2('CSS3 Overflow')}} | -- |
{{Compat("css.properties.overflow-block")}}
- -La propriété CSS overflow-block est une propriété logique qui définit ce qu'il faut afficher quand le contenu dépasse d'un élément de bloc sur les bords de bloc (ceux orthogonaux au sens d'écriture). On peut choisir d'afficher rien, une barre de défilement ou de laisser le contenu dépasser.
Note : La propriété overflow-block correspond à {{cssxref("overflow-y")}} ou {{cssxref("overflow-x")}} selon le mode d'écriture du document.
/* Valeurs avec un mot-clé */ +overflow-block: visible; +overflow-block: hidden; +overflow-block: scroll; +overflow-block: auto; + +/* Valeurs globales */ +overflow-block: inherit; +overflow-block: initial; +overflow-block: unset; ++ +
La propriété overflow-block se définit avec un mot-clé parmi ceux de la liste suivante.
visiblehiddenscrollautovisible mais établira un nouveau contexte de formatage. Les navigateurs de bureau affichent des barres de défilement si le contenu dépasse.<ul> + <li><code>overflow-block:hidden</code> — masque le texte en dehors + <div id="div1"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-block:scroll</code> — ajoute une barre de défilement + <div id="div2"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-block:visible</code> — affiche le texte en dehors si besoin + <div id="div3"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-block:auto</code> — pour la plupart des navigateurs, équivalent à <code>scroll</code> + <div id="div4"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> +</ul> + ++ +
#div1,
+#div2,
+#div3,
+#div4 {
+ border: 1px solid black;
+ width: 250px;
+ height: 100px;
+}
+
+#div1 { overflow-block: hidden; margin-bottom: 12px;}
+#div2 { overflow-block: scroll; margin-bottom: 12px;}
+#div3 { overflow-block: visible; margin-bottom: 120px;}
+#div4 { overflow-block: auto; margin-bottom: 120px;}
+
+
+{{EmbedLiveSample("Exemples", "100%", "780")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-block', 'overflow-block')}} | +{{Spec2('CSS3 Overflow')}} | ++ |
{{Compat("css.properties.overflow-block")}}
+ +La propriété CSS overflow-inline est une propriété logique qui définit ce qu'il faut afficher quand le contenu dépasse d'une boîte sur les bords en ligne (ceux parallèles au sens d'écriture). On peut choisir d'afficher rien, une barre de défilement ou de laisser le contenu dépasser.
Note : La propriété overflow-inline correspond à {{cssxref("overflow-y")}} ou {{cssxref("overflow-x")}} selon le mode d'écriture du document.
/* Valeurs avec un mot-clé */ -overflow-inline: visible; -overflow-inline: hidden; -overflow-inline: scroll; -overflow-inline: auto; - -/* Valeurs globales */ -overflow-inline: inherit; -overflow-inline: initial; -overflow-inline: unset; -- -
La propriété overflow-inline se définit avec un mot-clé parmi ceux de la liste suivante.
visiblehiddenscrollautovisible mais établira un nouveau contexte de formatage. Les navigateurs de bureau affichent des barres de défilement si le contenu dépasse.<ul> - <li><code>overflow-inline:hidden</code> — masque le texte en dehors - <div id="div1"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-inline:scroll</code> — ajoute une barre de défilement - <div id="div2"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-inline:visible</code> — affiche le texte en dehors si besoin - <div id="div3"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-inline:auto</code> — pour la plupart des navigateurs, équivalent à <code>scroll</code> - <div id="div4"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> -</ul> - -- -
#div1,
-#div2,
-#div3,
-#div4 {
- border: 1px solid black;
- width: 250px;
- height: 100px;
-}
-
-#div1 { overflow-inline: hidden;}
-#div2 { overflow-inline: scroll;}
-#div3 { overflow-inline: visible;}
-#div4 { overflow-inline: auto;}
-
-
-{{EmbedLiveSample("Exemples", "100%", "270")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-inline', 'overflow-inline')}} | -{{Spec2('CSS3 Overflow')}} | -- |
{{Compat("css.properties.overflow-inline")}}
- -La propriété CSS overflow-inline est une propriété logique qui définit ce qu'il faut afficher quand le contenu dépasse d'une boîte sur les bords en ligne (ceux parallèles au sens d'écriture). On peut choisir d'afficher rien, une barre de défilement ou de laisser le contenu dépasser.
Note : La propriété overflow-inline correspond à {{cssxref("overflow-y")}} ou {{cssxref("overflow-x")}} selon le mode d'écriture du document.
/* Valeurs avec un mot-clé */ +overflow-inline: visible; +overflow-inline: hidden; +overflow-inline: scroll; +overflow-inline: auto; + +/* Valeurs globales */ +overflow-inline: inherit; +overflow-inline: initial; +overflow-inline: unset; ++ +
La propriété overflow-inline se définit avec un mot-clé parmi ceux de la liste suivante.
visiblehiddenscrollautovisible mais établira un nouveau contexte de formatage. Les navigateurs de bureau affichent des barres de défilement si le contenu dépasse.<ul> + <li><code>overflow-inline:hidden</code> — masque le texte en dehors + <div id="div1"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-inline:scroll</code> — ajoute une barre de défilement + <div id="div2"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-inline:visible</code> — affiche le texte en dehors si besoin + <div id="div3"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-inline:auto</code> — pour la plupart des navigateurs, équivalent à <code>scroll</code> + <div id="div4"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> +</ul> + ++ +
#div1,
+#div2,
+#div3,
+#div4 {
+ border: 1px solid black;
+ width: 250px;
+ height: 100px;
+}
+
+#div1 { overflow-inline: hidden;}
+#div2 { overflow-inline: scroll;}
+#div3 { overflow-inline: visible;}
+#div4 { overflow-inline: auto;}
+
+
+{{EmbedLiveSample("Exemples", "100%", "270")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-inline', 'overflow-inline')}} | +{{Spec2('CSS3 Overflow')}} | ++ |
{{Compat("css.properties.overflow-inline")}}
+ +La propriété overflow-wrap s'applique aux éléments en ligne (inline) et est utilisée afin de définir si le navigateur peut ou non faire la césure à l'intérieur d'un mot pour éviter le dépassement d'une chaîne qui serait trop longue afin qu'elle ne dépasse pas de la boîte.
Note : À la différence de {{cssxref("word-break")}}, overflow-wrap créera uniquement un saut de ligne si un mot entier ne peut pas être placé sur sa propre ligne sans dépasser.
À l'origine, cette propriété était une extension non-standard sans préfixe de Microsoft et intitulée word-wrap. Implémentée sous ce nom par la plupart des navigateurs depuis, elle a été renommée en overflow-wrap et word-wrap est devenu un alias.
/* Avec un mot-clé */ -overflow-wrap: normal; -overflow-wrap: break-word; -overflow-wrap: anywhere; - -/* Valeurs globales */ -overflow-wrap: inherit; -overflow-wrap: initial; -overflow-wrap: unset; -- -
La propriété overflow-wrap peut être définie avec l'un des mots-clés suivants.
normalanywheremin-content intrinsèques.break-wordmin-content intrinsèques.{{csssyntax}}
- -p {
- width: 13em;
- margin: 2px;
- background: gold;
-}
-
-.ow-anywhere {
- overflow-wrap: anywhere;
-}
-
-.ow-break-word {
- overflow-wrap: break-word;
-}
-
-.word-break {
- word-break: break-all;
-}
-
-.hyphens {
- -webkit-hyphens: auto;
- -ms-hyphens: auto;
- hyphens: auto;
-}
-
-
-<h3><code>normal</code></h3> -<p>They say the fishing is excellent at - Lake <em class="normal">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, - though I've never been there myself.</p> -<h3><code>overflow-wrap: anywhere</code></h3> -<p>They say the fishing is excellent at - Lake <em class="ow-anywhere">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, - though I've never been there myself.</p> -<h3><code>overflow-wrap: break-word</code></h3> -<p>They say the fishing is excellent at - Lake <em class="ow-break-word">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, - though I've never been there myself. </p> -<h3><code>word-break: break-all</code></h3> -<p>They say the fishing is excellent at - Lake <em class="word-break">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, - though I've never been there myself.</p> -<h3><code>hyphens: auto</code>, without <code>lang</code> attribute</h3> -<p class="hyphens">They say the fishing is excellent at - Lake <em>Chargoggagoggmanchauggagoggchaubunagungamaugg</em> - though I've never been there myself. </p> -<h3><code>hyphens: auto</code>, English rules</h3> -<p class="hyphens" lang="en">They say the fishing is excellent at - Lake <em>Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, - though I've never been there myself.</p> -<h3><code>hyphens: auto</code>, German rules</h3> -<p class="hyphens" lang="de">They say the fishing is excellent at - Lake <em>Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, - though I've never been there myself.</p> -- -
{{EmbedLiveSample("Exemples", '100%', 520)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#propdef-overflow-wrap', 'overflow-wrap')}} | -{{Spec2('CSS3 Text')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.overflow-wrap")}}
- -La propriété overflow-wrap s'applique aux éléments en ligne (inline) et est utilisée afin de définir si le navigateur peut ou non faire la césure à l'intérieur d'un mot pour éviter le dépassement d'une chaîne qui serait trop longue afin qu'elle ne dépasse pas de la boîte.
Note : À la différence de {{cssxref("word-break")}}, overflow-wrap créera uniquement un saut de ligne si un mot entier ne peut pas être placé sur sa propre ligne sans dépasser.
À l'origine, cette propriété était une extension non-standard sans préfixe de Microsoft et intitulée word-wrap. Implémentée sous ce nom par la plupart des navigateurs depuis, elle a été renommée en overflow-wrap et word-wrap est devenu un alias.
/* Avec un mot-clé */ +overflow-wrap: normal; +overflow-wrap: break-word; +overflow-wrap: anywhere; + +/* Valeurs globales */ +overflow-wrap: inherit; +overflow-wrap: initial; +overflow-wrap: unset; ++ +
La propriété overflow-wrap peut être définie avec l'un des mots-clés suivants.
normalanywheremin-content intrinsèques.break-wordmin-content intrinsèques.{{csssyntax}}
+ +p {
+ width: 13em;
+ margin: 2px;
+ background: gold;
+}
+
+.ow-anywhere {
+ overflow-wrap: anywhere;
+}
+
+.ow-break-word {
+ overflow-wrap: break-word;
+}
+
+.word-break {
+ word-break: break-all;
+}
+
+.hyphens {
+ -webkit-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+
+<h3><code>normal</code></h3> +<p>They say the fishing is excellent at + Lake <em class="normal">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, + though I've never been there myself.</p> +<h3><code>overflow-wrap: anywhere</code></h3> +<p>They say the fishing is excellent at + Lake <em class="ow-anywhere">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, + though I've never been there myself.</p> +<h3><code>overflow-wrap: break-word</code></h3> +<p>They say the fishing is excellent at + Lake <em class="ow-break-word">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, + though I've never been there myself. </p> +<h3><code>word-break: break-all</code></h3> +<p>They say the fishing is excellent at + Lake <em class="word-break">Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, + though I've never been there myself.</p> +<h3><code>hyphens: auto</code>, without <code>lang</code> attribute</h3> +<p class="hyphens">They say the fishing is excellent at + Lake <em>Chargoggagoggmanchauggagoggchaubunagungamaugg</em> + though I've never been there myself. </p> +<h3><code>hyphens: auto</code>, English rules</h3> +<p class="hyphens" lang="en">They say the fishing is excellent at + Lake <em>Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, + though I've never been there myself.</p> +<h3><code>hyphens: auto</code>, German rules</h3> +<p class="hyphens" lang="de">They say the fishing is excellent at + Lake <em>Chargoggagoggmanchauggagoggchaubunagungamaugg</em>, + though I've never been there myself.</p> ++ +
{{EmbedLiveSample("Exemples", '100%', 520)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#propdef-overflow-wrap', 'overflow-wrap')}} | +{{Spec2('CSS3 Text')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.overflow-wrap")}}
+ +La propriété overflow-x permet de définir les mécanismes à utiliser (rognage, ascenseurs, dépassement, etc.) lorsque le contenu dépasse des bords droit et gauche de la boîte de contenu.
Note : Si {{cssxref("overflow-y")}} vaut hidden, scroll ou auto et que cette propriété vaut visible (la valeur par défaut), sa valeur calculée sera implicitement auto.
/* Valeurs avec un mot-clé */ -overflow-x: visible; -overflow-x: hidden; -overflow-x: scroll; -overflow-x: auto; - -/* Valeurs globales */ -overflow-x: inherit; -overflow-x: initial; -overflow-x: unset; -- -
La propriété overflow-x est définie avec l'un des mots-clés définis ci-après.
visiblehiddenscrollauto<ul> - <li><code>overflow-x:hidden</code> — cache le texte en dehors de la boîte - <div id="div1"> - ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ - </div> - </li> - - <li><code>overflow-x:scroll</code> — ajoute toujours un ascenseur - <div id="div2"> - ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ - </div> - </li> - - <li><code>overflow-x:visible</code> — affiche le texte en dehors de la boîte si besoin - <div id="div3"> - ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ - </div> - </li> - - <li><code>overflow-x:auto</code> — sur la plupart des navigateurs, cela sera équivalent à <code>scroll</code> - <div id="div4"> - ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ - </div> - </li> -</ul> -- -
#div1, #div2, #div3, #div4 {
- border: 1px solid black;
- width: 250px;
- margin-bottom: 12px;
-}
-
-#div1 {
- overflow-x: hidden;
-}
-
-#div2 {
- overflow-x: scroll;
-}
-
-#div3 {
- overflow-x: visible;
-}
-
-#div4 {
- overflow-x: auto;
-}
-
-
-{{EmbedLiveSample("Exemples", "100%", "270")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-x', 'overflow-x')}} | -{{Spec2('CSS3 Overflow')}} | -- |
{{cssinfo}}
- -{{Compat("css.properties.overflow-x")}}
- -La propriété overflow-x permet de définir les mécanismes à utiliser (rognage, ascenseurs, dépassement, etc.) lorsque le contenu dépasse des bords droit et gauche de la boîte de contenu.
Note : Si {{cssxref("overflow-y")}} vaut hidden, scroll ou auto et que cette propriété vaut visible (la valeur par défaut), sa valeur calculée sera implicitement auto.
/* Valeurs avec un mot-clé */ +overflow-x: visible; +overflow-x: hidden; +overflow-x: scroll; +overflow-x: auto; + +/* Valeurs globales */ +overflow-x: inherit; +overflow-x: initial; +overflow-x: unset; ++ +
La propriété overflow-x est définie avec l'un des mots-clés définis ci-après.
visiblehiddenscrollauto<ul> + <li><code>overflow-x:hidden</code> — cache le texte en dehors de la boîte + <div id="div1"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> + + <li><code>overflow-x:scroll</code> — ajoute toujours un ascenseur + <div id="div2"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> + + <li><code>overflow-x:visible</code> — affiche le texte en dehors de la boîte si besoin + <div id="div3"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> + + <li><code>overflow-x:auto</code> — sur la plupart des navigateurs, cela sera équivalent à <code>scroll</code> + <div id="div4"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> +</ul> ++ +
#div1, #div2, #div3, #div4 {
+ border: 1px solid black;
+ width: 250px;
+ margin-bottom: 12px;
+}
+
+#div1 {
+ overflow-x: hidden;
+}
+
+#div2 {
+ overflow-x: scroll;
+}
+
+#div3 {
+ overflow-x: visible;
+}
+
+#div4 {
+ overflow-x: auto;
+}
+
+
+{{EmbedLiveSample("Exemples", "100%", "270")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-x', 'overflow-x')}} | +{{Spec2('CSS3 Overflow')}} | ++ |
{{cssinfo}}
+ +{{Compat("css.properties.overflow-x")}}
+ +La propriété overflow-y permet de définir les mécanismes à utiliser (rognage, ascenseurs, dépassement, etc.) lorsque le contenu dépasse des bords haut et bas de la boîte.
Note : Si {{cssxref("overflow-x")}} vaut hidden, scroll ou auto et que cette propriété vaut visible (la valeur par défaut), la valeur calculée sera implicitement auto.
/* Valeurs avec un mot-clé */ -overflow-y: visible; -overflow-y: hidden; -overflow-y: scroll; -overflow-y: auto; - -/* Valeurs globales */ -overflow-y: inherit; -overflow-y: initial; -overflow-y: unset; -- -
La propriété overflow-y est définie avec un des mots-clés définis ci-après.
visiblehiddenscrollauto<ul> - <li><code>overflow-y:hidden</code> — cache le texte en dehors de la boîte - <div id="div1"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-y:scroll</code> — ajoute toujours un ascenseur - <div id="div2"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-y:visible</code> — affiche le texte en dehors de la boîte si besoin - <div id="div3"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> - - <li><code>overflow-y:auto</code> — sur la plupart des navigateurs, cela sera équivalent à <code>scroll</code> - <div id="div4"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - </div> - </li> -</ul> - -- -
#div1, #div2, #div3,#div4 {
- border: 1px solid black;
- width: 250px;
- height: 100px;
-}
-
-#div1 {
- overflow-y: hidden;
- margin-bottom: 12px;
-}
-
-#div2 {
- overflow-y: scroll;
- margin-bottom: 12px;
-}
-
-#div3 {
- overflow-y: visible;
- margin-bottom: 120px;
-}
-
-#div4 {
- overflow-y: auto;
- margin-bottom: 120px;
-}
-
-
-{{EmbedLiveSample("Exemples", "100%", "780")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-y', 'overflow-y')}} | -{{Spec2('CSS3 Overflow')}} | -- |
{{Compat("css.properties.overflow-y")}}
- -La propriété overflow-y permet de définir les mécanismes à utiliser (rognage, ascenseurs, dépassement, etc.) lorsque le contenu dépasse des bords haut et bas de la boîte.
Note : Si {{cssxref("overflow-x")}} vaut hidden, scroll ou auto et que cette propriété vaut visible (la valeur par défaut), la valeur calculée sera implicitement auto.
/* Valeurs avec un mot-clé */ +overflow-y: visible; +overflow-y: hidden; +overflow-y: scroll; +overflow-y: auto; + +/* Valeurs globales */ +overflow-y: inherit; +overflow-y: initial; +overflow-y: unset; ++ +
La propriété overflow-y est définie avec un des mots-clés définis ci-après.
visiblehiddenscrollauto<ul> + <li><code>overflow-y:hidden</code> — cache le texte en dehors de la boîte + <div id="div1"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-y:scroll</code> — ajoute toujours un ascenseur + <div id="div2"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-y:visible</code> — affiche le texte en dehors de la boîte si besoin + <div id="div3"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-y:auto</code> — sur la plupart des navigateurs, cela sera équivalent à <code>scroll</code> + <div id="div4"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> +</ul> + ++ +
#div1, #div2, #div3,#div4 {
+ border: 1px solid black;
+ width: 250px;
+ height: 100px;
+}
+
+#div1 {
+ overflow-y: hidden;
+ margin-bottom: 12px;
+}
+
+#div2 {
+ overflow-y: scroll;
+ margin-bottom: 12px;
+}
+
+#div3 {
+ overflow-y: visible;
+ margin-bottom: 120px;
+}
+
+#div4 {
+ overflow-y: auto;
+ margin-bottom: 120px;
+}
+
+
+{{EmbedLiveSample("Exemples", "100%", "780")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow-y', 'overflow-y')}} | +{{Spec2('CSS3 Overflow')}} | ++ |
{{Compat("css.properties.overflow-y")}}
+ +La propriété CSS overflow est une propriété raccourcie qui définit comment gérer le dépassement du contenu d'un élément dans son bloc. Elle définit les valeurs des propriétés {{cssxref("overflow-x")}} et {{cssxref("overflow-y")}}.
Lorsqu'on utilise la propriété overflow avec une autre valeur que visible (la valeur par défaut), cela entraîne la création d'un nouveau contexte de formatage de bloc. Cette création est nécessaire d'un point de vue technique. Ceci est nécessaire techniquement puisque si un élément flottant traverse l'élément avec barres de défilement, cela forcera l'encapsulation du contenu de ce dernier autour de l'élément flottant. L'encapsulation devrait alors se produire après chaque défilement de la barre et mènerait à une expérience utilisateur dégradée
Afin que la propriété overflow puisse avoir un effet, le conteneur de niveau de bloc doit avoir une hauteur limite (définie grâce à {{cssxref("height")}} ou {{cssxref("max-height")}}) ou avoir white-space avec la valeur nowrap.
Note : Si on définit un axe avec visible (la valeur par défaut) et qu'on définit l'autre axe avec une valeur différente, alors la valeur du premier axe (visible) sera considérée comme auto.
Note : Lorsqu'on définit, via un script, la propriété scrollTop sur les éléments HTML pertinents, même lorsque overflow vaut hidden, il faut parfois faire défiler l'élément.
/* Valeurs avec un mot-clé */ -overflow: visible; -overflow: hidden; -overflow: clip; -overflow: scroll; -overflow: auto; -overflow: hidden visible; - -/* Valeurs globales */ -overflow: inherit; -overflow: initial; -overflow: unset; -- -
La propriété overflow peut être définie grâce à un ou deux des mots-clés suivants. Si deux mots-clés sont utilisé, le premier sera appliqué à overflow-x et le second à overflow-y. Si une seule valeur est utilisée, elle sera appliquée à overflow-x et à overflow-y.
visiblehiddencliphidden au sens où le contenu est rogné pour s'inscrire dans la boîte de remplissage. Comme hidden, clip ne présente pas de barre de défilement mais contrairement à hidden, clip empêche tout défilement, y compris à l'aide de scripts. La boîte n'est pas un conteneur de défilement et ne définit pas de nouveau contexte de formatage. Si on souhaite obtenir un nouveau contexte de formatage, il faudra utiliser {{cssxref("display", "display: flow-root", "#flow-root")}}.scrollautooverlay {{Deprecated_inline}}auto sauf que les barres de défilement sont au-dessus du contenu plutôt que de prendre de la place. Cette valeur est uniquement prise en charge par les navigateurs basés sur WebKit (Safari) ou Blink (Chrome, Opera).-moz-scrollbars-none {{obsolete_inline}}overflow:hidden doit être utilisé à la place. À partir de Firefox 63, cette fonctionnalité est placée derrière une préférence qui doit être activée. Dans about:config, il faut passer layout.css.overflow.moz-scrollbars.enabled à true.
- -moz-scrollbars-horizontal {{Deprecated_inline}}about:config, il faut passer layout.css.overflow.moz-scrollbars.enabled à true.
- -moz-scrollbars-vertical {{Deprecated_inline}}about:config, il faut passer layout.css.overflow.moz-scrollbars.enabled à true.
- -moz-hidden-unscrollable {{non-standard_inline}}<html>, <body> (avec les flèches du clavier et la roue de la souris).- <div> - <code>visible</code> - <p class="visible"> - Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. - </p> - </div> - - <div> - <code>hidden</code> - <p class="hidden"> - Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. - </p> - </div> - - <div> - <code>scroll</code> - <p class="scroll"> - Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. - </p> - </div> - - <div> - <code>auto</code> - <p class="auto"> - Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. - </p> - </div> -- -
-body {
- display: flex;
- justify-content: space-around;
-}
-
-div {
- margin: 1em;
- font-size: 1.2em;
-}
-
-p {
- width: 8em;
- height: 5em;
- border: dotted;
-}
-
-p.visible {
- overflow: visible;
-}
-
-p.hidden {
- overflow: hidden;
-}
-
-p.scroll {
- overflow: scroll;
-}
-
-p.auto {
- overflow: auto;
-}
-
-
-{{EmbedLiveSample("définir_différentes_valeurs_d_overflow_pour_le_texte", "600", "250")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow', 'overflow')}} | -{{Spec2('CSS3 Overflow')}} | -La syntaxe permet désormais d'utiliser une ou deux valeurs. | -
| {{SpecName('CSS2.1', 'visufx.html#overflow', 'overflow')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.overflow")}}
- -La propriété CSS overflow est une propriété raccourcie qui définit comment gérer le dépassement du contenu d'un élément dans son bloc. Elle définit les valeurs des propriétés {{cssxref("overflow-x")}} et {{cssxref("overflow-y")}}.
Lorsqu'on utilise la propriété overflow avec une autre valeur que visible (la valeur par défaut), cela entraîne la création d'un nouveau contexte de formatage de bloc. Cette création est nécessaire d'un point de vue technique. Ceci est nécessaire techniquement puisque si un élément flottant traverse l'élément avec barres de défilement, cela forcera l'encapsulation du contenu de ce dernier autour de l'élément flottant. L'encapsulation devrait alors se produire après chaque défilement de la barre et mènerait à une expérience utilisateur dégradée
Afin que la propriété overflow puisse avoir un effet, le conteneur de niveau de bloc doit avoir une hauteur limite (définie grâce à {{cssxref("height")}} ou {{cssxref("max-height")}}) ou avoir white-space avec la valeur nowrap.
Note : Si on définit un axe avec visible (la valeur par défaut) et qu'on définit l'autre axe avec une valeur différente, alors la valeur du premier axe (visible) sera considérée comme auto.
Note : Lorsqu'on définit, via un script, la propriété scrollTop sur les éléments HTML pertinents, même lorsque overflow vaut hidden, il faut parfois faire défiler l'élément.
/* Valeurs avec un mot-clé */ +overflow: visible; +overflow: hidden; +overflow: clip; +overflow: scroll; +overflow: auto; +overflow: hidden visible; + +/* Valeurs globales */ +overflow: inherit; +overflow: initial; +overflow: unset; ++ +
La propriété overflow peut être définie grâce à un ou deux des mots-clés suivants. Si deux mots-clés sont utilisé, le premier sera appliqué à overflow-x et le second à overflow-y. Si une seule valeur est utilisée, elle sera appliquée à overflow-x et à overflow-y.
visiblehiddencliphidden au sens où le contenu est rogné pour s'inscrire dans la boîte de remplissage. Comme hidden, clip ne présente pas de barre de défilement mais contrairement à hidden, clip empêche tout défilement, y compris à l'aide de scripts. La boîte n'est pas un conteneur de défilement et ne définit pas de nouveau contexte de formatage. Si on souhaite obtenir un nouveau contexte de formatage, il faudra utiliser {{cssxref("display", "display: flow-root", "#flow-root")}}.scrollautooverlay {{Deprecated_inline}}auto sauf que les barres de défilement sont au-dessus du contenu plutôt que de prendre de la place. Cette valeur est uniquement prise en charge par les navigateurs basés sur WebKit (Safari) ou Blink (Chrome, Opera).-moz-scrollbars-none {{obsolete_inline}}overflow:hidden doit être utilisé à la place. À partir de Firefox 63, cette fonctionnalité est placée derrière une préférence qui doit être activée. Dans about:config, il faut passer layout.css.overflow.moz-scrollbars.enabled à true.
+ -moz-scrollbars-horizontal {{Deprecated_inline}}about:config, il faut passer layout.css.overflow.moz-scrollbars.enabled à true.
+ -moz-scrollbars-vertical {{Deprecated_inline}}about:config, il faut passer layout.css.overflow.moz-scrollbars.enabled à true.
+ -moz-hidden-unscrollable {{non-standard_inline}}<html>, <body> (avec les flèches du clavier et la roue de la souris).+ <div> + <code>visible</code> + <p class="visible"> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. + </p> + </div> + + <div> + <code>hidden</code> + <p class="hidden"> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. + </p> + </div> + + <div> + <code>scroll</code> + <p class="scroll"> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. + </p> + </div> + + <div> + <code>auto</code> + <p class="auto"> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium. + </p> + </div> ++ +
+body {
+ display: flex;
+ justify-content: space-around;
+}
+
+div {
+ margin: 1em;
+ font-size: 1.2em;
+}
+
+p {
+ width: 8em;
+ height: 5em;
+ border: dotted;
+}
+
+p.visible {
+ overflow: visible;
+}
+
+p.hidden {
+ overflow: hidden;
+}
+
+p.scroll {
+ overflow: scroll;
+}
+
+p.auto {
+ overflow: auto;
+}
+
+
+{{EmbedLiveSample("définir_différentes_valeurs_d_overflow_pour_le_texte", "600", "250")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Overflow', '#propdef-overflow', 'overflow')}} | +{{Spec2('CSS3 Overflow')}} | +La syntaxe permet désormais d'utiliser une ou deux valeurs. | +
| {{SpecName('CSS2.1', 'visufx.html#overflow', 'overflow')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.overflow")}}
+ +La propriété CSS overscroll-behavior-x définit le comportement de l'agent utilisateur lorsqu'on atteint la limite de la zone de défilement sur l'axe horizontal.
Note : Voir {{cssxref("overscroll-behavior")}} pour plus de détails.
-/* Valeurs avec un mot-clé */ -overscroll-behavior-x: auto; -overscroll-behavior-x: contain; -overscroll-behavior-x: none; - -/* Valeurs globales */ -overscroll-behavior-x: inherit; -overscroll-behavior-x: initial; -overscroll-behavior-x: unset; -- -
La propriété overscroll-behavior-x est définie avec un des mots-clés définis ci-après.
autocontainnoneDans l'exemple overscroll-behavior-x (cf. le code source associé), on dispose de deux boîtes de bloc, l'une contenue à l'intérieure de l'autre. La boîte englobante possède une grande largeur avec {{cssxref("width")}} afin que la page puisse défiler horizontalement. La boîte intérieure a une petite largeur (et une petite hauteur, définie avec {{cssxref("height")}}) afin de pouvoir être facilement contenue dans la zone d'affichage mais son contenu possède une grande largeur afin de défiler horizontalement.
Par défaut, lorsqu'on fait défiler la boîte intérieure et qu'on atteint une limite de défilement, c'est toute la page qui commence à défiler. Si ce n'est pas le comportement souhaité, on peut empêcher ça en utilisant overscroll-behavior-x: contain sur la boîte intérieure :
main > div {
- height: 300px;
- width: 500px;
- overflow: auto;
- position: relative;
- top: 100px;
- left: 100px;
- overscroll-behavior-x: contain;
-}
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Overscroll Behavior', '#propdef-overscroll-behavior-x', 'overscroll-behavior-x')}} | -{{Spec2('Overscroll Behavior')}} | -- |
{{cssinfo}}
- -{{Compat("css.properties.overscroll-behavior-x")}}
- -La propriété CSS overscroll-behavior-x définit le comportement de l'agent utilisateur lorsqu'on atteint la limite de la zone de défilement sur l'axe horizontal.
Note : Voir {{cssxref("overscroll-behavior")}} pour plus de détails.
+/* Valeurs avec un mot-clé */ +overscroll-behavior-x: auto; +overscroll-behavior-x: contain; +overscroll-behavior-x: none; + +/* Valeurs globales */ +overscroll-behavior-x: inherit; +overscroll-behavior-x: initial; +overscroll-behavior-x: unset; ++ +
La propriété overscroll-behavior-x est définie avec un des mots-clés définis ci-après.
autocontainnoneDans l'exemple overscroll-behavior-x (cf. le code source associé), on dispose de deux boîtes de bloc, l'une contenue à l'intérieure de l'autre. La boîte englobante possède une grande largeur avec {{cssxref("width")}} afin que la page puisse défiler horizontalement. La boîte intérieure a une petite largeur (et une petite hauteur, définie avec {{cssxref("height")}}) afin de pouvoir être facilement contenue dans la zone d'affichage mais son contenu possède une grande largeur afin de défiler horizontalement.
Par défaut, lorsqu'on fait défiler la boîte intérieure et qu'on atteint une limite de défilement, c'est toute la page qui commence à défiler. Si ce n'est pas le comportement souhaité, on peut empêcher ça en utilisant overscroll-behavior-x: contain sur la boîte intérieure :
main > div {
+ height: 300px;
+ width: 500px;
+ overflow: auto;
+ position: relative;
+ top: 100px;
+ left: 100px;
+ overscroll-behavior-x: contain;
+}
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Overscroll Behavior', '#propdef-overscroll-behavior-x', 'overscroll-behavior-x')}} | +{{Spec2('Overscroll Behavior')}} | ++ |
{{cssinfo}}
+ +{{Compat("css.properties.overscroll-behavior-x")}}
+ +La propriété CSS overscroll-behavior-y permet de contrôler le comportement de l'agent utilisateur lorsqu'on atteint la limite de la zone de défilement sur l'axe vertical.
Note : Voir {{cssxref("overscroll-behavior")}} pour plus de détails.
-/* Valeurs avec un mot-clé */ -overscroll-behavior-y: auto; -overscroll-behavior-y: contain; -overscroll-behavior-y: none; - -/* Valeurs globales */ -overscroll-behavior-y: inherit; -overscroll-behavior-y: initial; -overscroll-behavior-y: unset; -- -
La propriété overscroll-behavior-x est définie avec un des mots-clés définis ci-après.
autocontainnone.messages {
- height: 220px;
- overflow: auto;
- overscroll-behavior-y: contain;
-}
-
-Voir {{cssxref("overscroll-behavior")}} pour un exemple complet et plus de détails.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Overscroll Behavior', '#propdef-overscroll-behavior-y', 'overscroll-behavior-y')}} | -{{Spec2('Overscroll Behavior')}} | -- |
{{cssinfo}}
- -{{Compat("css.properties.overscroll-behavior-y")}}
- -La propriété CSS overscroll-behavior-y permet de contrôler le comportement de l'agent utilisateur lorsqu'on atteint la limite de la zone de défilement sur l'axe vertical.
Note : Voir {{cssxref("overscroll-behavior")}} pour plus de détails.
+/* Valeurs avec un mot-clé */ +overscroll-behavior-y: auto; +overscroll-behavior-y: contain; +overscroll-behavior-y: none; + +/* Valeurs globales */ +overscroll-behavior-y: inherit; +overscroll-behavior-y: initial; +overscroll-behavior-y: unset; ++ +
La propriété overscroll-behavior-x est définie avec un des mots-clés définis ci-après.
autocontainnone.messages {
+ height: 220px;
+ overflow: auto;
+ overscroll-behavior-y: contain;
+}
+
+Voir {{cssxref("overscroll-behavior")}} pour un exemple complet et plus de détails.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Overscroll Behavior', '#propdef-overscroll-behavior-y', 'overscroll-behavior-y')}} | +{{Spec2('Overscroll Behavior')}} | ++ |
{{cssinfo}}
+ +{{Compat("css.properties.overscroll-behavior-y")}}
+ +La propriété CSS overscroll-behavior est une propriété raccourcie permettant de définir les propriétés {{cssxref("overscroll-behavior-x")}} et {{cssxref("overscroll-behavior-y")}}. Ces propriétés contrôlent le comportement du navigateur lorsqu'on dépasse la limite d'une zone de défilement (scrolling).
Par défaut, les navigateurs mobiles fournissent un effet de rebondissement voire déclenchent un rafraîchissement de la page lorsqu'on défile jusqu'en haut ou jusqu'en bas de la page. Vous avez pu remarquer que, lorsqu'une boîte de dialogue possède du contenu qu'on peut faire défiler, si on atteint la limite de défilement pour ce contenu, c'est la page sous-jacente qui défilera sous la boîte de dialogue : c'est ce qu'on appelle le chaînage du défilement (scroll chaining).
- -Dans certains cas, ces effets ne sont pas souhaitables. On peut alors utiliser overscroll-behavior pour éviter les chaînages intempestifs et les comportements du type "défiler pour rafraîchir".
/* Valeurs avec un mot-clés */ -overscroll-behavior: auto; -overscroll-behavior: contain; -overscroll-behavior: none; - -/* Valeurs avec deux mots-clés */ -overscroll-behavior: auto contain; - -/* Valeurs globales */ -overflow: inherit; -overflow: initial; -overflow: unset; -- -
La propriété overscroll-behavior est définie avec un ou deux mots-clés parmi ceux de la liste ci-après.
Lorsqu'on utilise cette propriété raccourcie avec deux valeurs, la première est utilisée pour overscroll-behavior-x et la seconde pour overscroll-behavior-y. Si une seule valeur est fournie, c'est cette même valeur qui est utilisée pour les deux propriétés.
autocontainnoneDans notre exemple sur overscroll-behavior (cf. le code source associé), on affiche une page entière de contacts et une boîte de dialogue avec une fenêtre de discussion.

Ces deux zones possèdent du contenu qui entraîne leur défilement. Normalement, si on défile la fenêtre de discussion jusqu'à une limite de défilement, ce serait au tour de la liste de contacts de défiler en dessous. Cependant, cet effet n'est pas souhaitable ici. On utilise donc overscroll-behavior-y (overscroll-behavior fonctionnerait également) sur la fenêtre de discussion :
.messages {
- height: 220px;
- overflow: auto;
- overscroll-behavior-y: contain;
-}
-
-On souhaite également se débarasser des effets de bord lorsqu'on défile jusqu'en haut ou jusqu'en bas de la liste des contacts (Chrome pour Android rafraichit la page lorsqu'on défile après la limite haute par exemple). Pour cela, on utilise overscroll-behavior: none sur l'élément {{htmlelement("body")}} :
body {
- margin: 0;
- overscroll-behavior: none;
-}
-
-Jusqu'à ce que le CSSWG publie son propre brouillon, la spécification est consutable sur le dépôt GitHub du WICG.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Overscroll Behavior', '#propdef-overscroll-behavior', 'overscroll-behavior')}} | -{{Spec2('CSS Overscroll Behavior')}} | -- |
{{cssinfo}}
- -{{Compat("css.properties.overscroll-behavior")}}
- -La propriété CSS overscroll-behavior est une propriété raccourcie permettant de définir les propriétés {{cssxref("overscroll-behavior-x")}} et {{cssxref("overscroll-behavior-y")}}. Ces propriétés contrôlent le comportement du navigateur lorsqu'on dépasse la limite d'une zone de défilement (scrolling).
Par défaut, les navigateurs mobiles fournissent un effet de rebondissement voire déclenchent un rafraîchissement de la page lorsqu'on défile jusqu'en haut ou jusqu'en bas de la page. Vous avez pu remarquer que, lorsqu'une boîte de dialogue possède du contenu qu'on peut faire défiler, si on atteint la limite de défilement pour ce contenu, c'est la page sous-jacente qui défilera sous la boîte de dialogue : c'est ce qu'on appelle le chaînage du défilement (scroll chaining).
+ +Dans certains cas, ces effets ne sont pas souhaitables. On peut alors utiliser overscroll-behavior pour éviter les chaînages intempestifs et les comportements du type "défiler pour rafraîchir".
/* Valeurs avec un mot-clés */ +overscroll-behavior: auto; +overscroll-behavior: contain; +overscroll-behavior: none; + +/* Valeurs avec deux mots-clés */ +overscroll-behavior: auto contain; + +/* Valeurs globales */ +overflow: inherit; +overflow: initial; +overflow: unset; ++ +
La propriété overscroll-behavior est définie avec un ou deux mots-clés parmi ceux de la liste ci-après.
Lorsqu'on utilise cette propriété raccourcie avec deux valeurs, la première est utilisée pour overscroll-behavior-x et la seconde pour overscroll-behavior-y. Si une seule valeur est fournie, c'est cette même valeur qui est utilisée pour les deux propriétés.
autocontainnoneDans notre exemple sur overscroll-behavior (cf. le code source associé), on affiche une page entière de contacts et une boîte de dialogue avec une fenêtre de discussion.

Ces deux zones possèdent du contenu qui entraîne leur défilement. Normalement, si on défile la fenêtre de discussion jusqu'à une limite de défilement, ce serait au tour de la liste de contacts de défiler en dessous. Cependant, cet effet n'est pas souhaitable ici. On utilise donc overscroll-behavior-y (overscroll-behavior fonctionnerait également) sur la fenêtre de discussion :
.messages {
+ height: 220px;
+ overflow: auto;
+ overscroll-behavior-y: contain;
+}
+
+On souhaite également se débarasser des effets de bord lorsqu'on défile jusqu'en haut ou jusqu'en bas de la liste des contacts (Chrome pour Android rafraichit la page lorsqu'on défile après la limite haute par exemple). Pour cela, on utilise overscroll-behavior: none sur l'élément {{htmlelement("body")}} :
body {
+ margin: 0;
+ overscroll-behavior: none;
+}
+
+Jusqu'à ce que le CSSWG publie son propre brouillon, la spécification est consutable sur le dépôt GitHub du WICG.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Overscroll Behavior', '#propdef-overscroll-behavior', 'overscroll-behavior')}} | +{{Spec2('CSS Overscroll Behavior')}} | ++ |
{{cssinfo}}
+ +{{Compat("css.properties.overscroll-behavior")}}
+ +La propriété padding-block-end définit le début logique de la zone de remplissage d'un élément de bloc. Cette propriété logique est traduite en une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} selon les valeurs qui sont utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Elle est à rapprocher des propriétés {{cssxref("padding-block-start")}}, {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}} qui définissent les autres écarts de remplissage logiques d'un élément.
- -/* Valeurs de longueur */ -/* Type <length> */ -padding-block-end: 10px; -padding-block-end: 1em; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-block-end: 5%; /* Relatif à la largeur du bloc englobant */ - -/* Valeurs globales */ -padding-block-end: inherit; -padding-block-end: initial; -padding-block-end: unset; -- -
La propriété padding-block-end peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> - <p class="exemple">Texte d'exemple et Lorem et IP sum</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- padding-block-end: 20px;
- background-color: #C8C800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-block-end", "padding-block-end")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-block-end")}}
- -La propriété padding-block-end définit le début logique de la zone de remplissage d'un élément de bloc. Cette propriété logique est traduite en une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} selon les valeurs qui sont utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Elle est à rapprocher des propriétés {{cssxref("padding-block-start")}}, {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}} qui définissent les autres écarts de remplissage logiques d'un élément.
+ +/* Valeurs de longueur */ +/* Type <length> */ +padding-block-end: 10px; +padding-block-end: 1em; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-block-end: 5%; /* Relatif à la largeur du bloc englobant */ + +/* Valeurs globales */ +padding-block-end: inherit; +padding-block-end: initial; +padding-block-end: unset; ++ +
La propriété padding-block-end peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> + <p class="exemple">Texte d'exemple et Lorem et IP sum</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ padding-block-end: 20px;
+ background-color: #C8C800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-block-end", "padding-block-end")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-block-end")}}
+ +La propriété padding-block-start définit le début logique de la zone de remplissage d'un élément de bloc. Cette propriété logique est traduite en une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} selon les valeurs qui sont utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Elle est à rapprocher des propriétés {{cssxref("padding-block-end")}}, {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}} qui définissent les autres écarts de remplissage logiques d'un élément.
- -/* Valeurs de longueur */ -/* Type <length> */ -padding-block-start: 10px; -padding-block-start: 1em; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-block-start: 5%; /* Relatif à la largeur du bloc englobant */ - -/* Valeurs globales */ -padding-block-start: inherit; -padding-block-start: initial; -padding-block-start: unset; -- -
La propriété padding-block-start peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> - <p class="exemple">Texte d'exemple et Lorem et IP sum</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- padding-block-start: 20px;
- background-color: #C8C800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-block-start", "padding-block-start")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-block-start")}}
- -La propriété padding-block-start définit le début logique de la zone de remplissage d'un élément de bloc. Cette propriété logique est traduite en une propriété physique selon le mode d'écriture, la directionnalité et l'orientation du texte. Autrement dit, elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} selon les valeurs qui sont utilisées pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Elle est à rapprocher des propriétés {{cssxref("padding-block-end")}}, {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}} qui définissent les autres écarts de remplissage logiques d'un élément.
+ +/* Valeurs de longueur */ +/* Type <length> */ +padding-block-start: 10px; +padding-block-start: 1em; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-block-start: 5%; /* Relatif à la largeur du bloc englobant */ + +/* Valeurs globales */ +padding-block-start: inherit; +padding-block-start: initial; +padding-block-start: unset; ++ +
La propriété padding-block-start peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> + <p class="exemple">Texte d'exemple et Lorem et IP sum</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ padding-block-start: 20px;
+ background-color: #C8C800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-block-start", "padding-block-start")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-block-start")}}
+ +La propriété padding-block définit l'espace de remplissage (padding) pour le début et la fin de l'axe de bloc de l'élément. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("padding-top")}} et {{cssxref("padding-bottom")}} ou à {{cssxref("padding-right")}} et {{cssxref("padding-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ -/* Type <length> */ -padding-block: 10px 20px; /* Des longueurs absolues */ -padding-block: 1em 2em; /* Des longueurs relatives à la taille du texte */ -padding-block: 5% 2%; /* Des longueurs relatives à la taille du bloc englobant */ -padding-block: 10px; /* Une seule valeur définit le remplissage des deux côtés */ - -/* Valeurs avec un mot-clé */ -padding-block: auto; - -/* Valeurs globales */ -padding-block: inherit; -padding-block: initial; -padding-block: unset; -- -
Ces valeurs peuvent être définies individuellement grâce aux propriétés détaillées {{cssxref("padding-block-start")}} et {{cssxref("padding-block-end")}}. Pour définir le remplissage sur l'axe en ligne, on pourra utiliser la propriété logique raccourcie {{cssxref("padding-inline")}} qui définit {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}}.
- -La propriété padding-block peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- padding-block: 20px 40px;
- background-color: #c8c800;
-}
-
-<div> - <p class="texteExemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-block", "padding-block")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-block")}}
- -La propriété padding-block définit l'espace de remplissage (padding) pour le début et la fin de l'axe de bloc de l'élément. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("padding-top")}} et {{cssxref("padding-bottom")}} ou à {{cssxref("padding-right")}} et {{cssxref("padding-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ +/* Type <length> */ +padding-block: 10px 20px; /* Des longueurs absolues */ +padding-block: 1em 2em; /* Des longueurs relatives à la taille du texte */ +padding-block: 5% 2%; /* Des longueurs relatives à la taille du bloc englobant */ +padding-block: 10px; /* Une seule valeur définit le remplissage des deux côtés */ + +/* Valeurs avec un mot-clé */ +padding-block: auto; + +/* Valeurs globales */ +padding-block: inherit; +padding-block: initial; +padding-block: unset; ++ +
Ces valeurs peuvent être définies individuellement grâce aux propriétés détaillées {{cssxref("padding-block-start")}} et {{cssxref("padding-block-end")}}. Pour définir le remplissage sur l'axe en ligne, on pourra utiliser la propriété logique raccourcie {{cssxref("padding-inline")}} qui définit {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}}.
+ +La propriété padding-block peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ padding-block: 20px 40px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="texteExemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-block", "padding-block")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-block")}}
+ +La propriété padding-bottom d'un élément ajuste la hauteur de la boîte de remplissage (padding) en haut de l'élément. La zone de remplissage correspond à l'espace entre le contenu et la bordure. Contrairement à {{cssxref("margin-bottom")}}, padding-bottom ne peut pas recevoir de valeurs négatives.
La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-bottom donc).
/* Valeurs de longueur */ -/* Type <length> */ -padding-bottom: 0.5em; -padding-bottom: 0; -padding-bottom: 2cm; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-bottom: 10%; - -/* Valeurs globales */ -padding-bottom: inherit; -padding-bottom: initial; -padding-bottom: unset; -- -
<length><percentage><p class="padd"> - Elle n’avait pas bu la moitié de la bouteille, - que sa tête touchait au plafond et qu’elle fut - forcée de se baisser pour ne pas se casser le - cou. -</p>- -
.padd {
- padding-bottom: 5em;
- border: solid 1px;
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-bottom')}} | -{{Spec2('CSS3 Box')}} | -Aucun changement depuis {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-bottom')}}. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-bottom')}} | -{{Spec2('CSS3 Transitions')}} | -padding-bottom peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-bottom')}} | -{{Spec2('CSS2.1')}} | -Aucun changement depuis {{Specname('CSS1', '#padding-bottom', 'padding-bottom')}}. | -
| {{Specname('CSS1', '#padding-bottom', 'padding-bottom')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-bottom")}}
- -padding-bottom, {{cssxref("padding-right")}}, {{cssxref("padding-top")}} et {{cssxref("padding-left")}}.La propriété padding-bottom d'un élément ajuste la hauteur de la boîte de remplissage (padding) en haut de l'élément. La zone de remplissage correspond à l'espace entre le contenu et la bordure. Contrairement à {{cssxref("margin-bottom")}}, padding-bottom ne peut pas recevoir de valeurs négatives.
La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-bottom donc).
/* Valeurs de longueur */ +/* Type <length> */ +padding-bottom: 0.5em; +padding-bottom: 0; +padding-bottom: 2cm; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-bottom: 10%; + +/* Valeurs globales */ +padding-bottom: inherit; +padding-bottom: initial; +padding-bottom: unset; ++ +
<length><percentage><p class="padd"> + Elle n’avait pas bu la moitié de la bouteille, + que sa tête touchait au plafond et qu’elle fut + forcée de se baisser pour ne pas se casser le + cou. +</p>+ +
.padd {
+ padding-bottom: 5em;
+ border: solid 1px;
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-bottom')}} | +{{Spec2('CSS3 Box')}} | +Aucun changement depuis {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-bottom')}}. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-bottom')}} | +{{Spec2('CSS3 Transitions')}} | +padding-bottom peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-bottom')}} | +{{Spec2('CSS2.1')}} | +Aucun changement depuis {{Specname('CSS1', '#padding-bottom', 'padding-bottom')}}. | +
| {{Specname('CSS1', '#padding-bottom', 'padding-bottom')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-bottom")}}
+ +padding-bottom, {{cssxref("padding-right")}}, {{cssxref("padding-top")}} et {{cssxref("padding-left")}}.La propriété padding-inline-end définit le décalage avec la fin de la zone de remplissage d'un élément, selon le mode d'écriture, la directionnalité et l'orientation du texte. Elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} slon les valeurs définies poru {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Les autres parties « logiques » du remplissage sont définies grâce aux propriétés {{cssxref("padding-block-start")}}, {{cssxref("padding-block-end")}} et {{cssxref("padding-inline-start")}}.
- -/* Valeurs de longueur */ -/* Type <length> */ -padding-inline-end: 10px; -padding-inline-end: 1em; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-inline-end: 5%; /* Relatif à la largeur du bloc englobant */ - -/* Valeurs globales */ -padding-inline-end: inherit; -padding-inline-end: initial; -padding-inline-end: unset; -- -
La propriété padding-inline-end peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> - <p class="exemple">Texte d'exemple Lorem y psoum</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- padding-inline-end: 20px;
- background-color: #C8C800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-inline-end", "padding-inline-end")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-inline-end")}}
- -La propriété padding-inline-end définit le décalage avec la fin de la zone de remplissage d'un élément, selon le mode d'écriture, la directionnalité et l'orientation du texte. Elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} slon les valeurs définies poru {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Les autres parties « logiques » du remplissage sont définies grâce aux propriétés {{cssxref("padding-block-start")}}, {{cssxref("padding-block-end")}} et {{cssxref("padding-inline-start")}}.
+ +/* Valeurs de longueur */ +/* Type <length> */ +padding-inline-end: 10px; +padding-inline-end: 1em; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-inline-end: 5%; /* Relatif à la largeur du bloc englobant */ + +/* Valeurs globales */ +padding-inline-end: inherit; +padding-inline-end: initial; +padding-inline-end: unset; ++ +
La propriété padding-inline-end peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> + <p class="exemple">Texte d'exemple Lorem y psoum</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ padding-inline-end: 20px;
+ background-color: #C8C800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-inline-end", "padding-inline-end")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-inline-end")}}
+ +La propriété padding-inline-start définit le décalage avec le début de la zone de remplissage d'un élément, selon le mode d'écriture, la directionnalité et l'orientation du texte. Elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} selon les valeurs définies pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Les autres parties « logiques » du remplissage sont définies grâce aux propriétés {{cssxref("padding-block-start")}}, {{cssxref("padding-block-end")}} et {{cssxref("padding-inline-end")}}.
- -{{EmbedInteractiveExample("pages/css/padding-inline-start.html")}}
- -/* Valeurs de longueur */ -/* Type <length> */ -padding-inline-start: 10px; -padding-inline-start: 1em; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-inline-start: 5%; /* Relatif à la largeur du bloc englobant */ - -/* Valeurs globales */ -padding-inline-start: inherit; -padding-inline-start: initial; -padding-inline-start: unset; -- -
La propriété padding-inline-start peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> - <p class="exemple">Texte d'exemple</p> -</div> -- -
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.exemple {
- writing-mode: vertical-lr;
- padding-inline-start: 20px;
- background-color: #C8C800;
-}
-
-{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-inline-start", "padding-inline-start")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-inline-start")}}
- -La propriété padding-inline-start définit le décalage avec le début de la zone de remplissage d'un élément, selon le mode d'écriture, la directionnalité et l'orientation du texte. Elle correspond à la propriété {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} ou {{cssxref("padding-left")}} selon les valeurs définies pour {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
Les autres parties « logiques » du remplissage sont définies grâce aux propriétés {{cssxref("padding-block-start")}}, {{cssxref("padding-block-end")}} et {{cssxref("padding-inline-end")}}.
+ +{{EmbedInteractiveExample("pages/css/padding-inline-start.html")}}
+ +/* Valeurs de longueur */ +/* Type <length> */ +padding-inline-start: 10px; +padding-inline-start: 1em; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-inline-start: 5%; /* Relatif à la largeur du bloc englobant */ + +/* Valeurs globales */ +padding-inline-start: inherit; +padding-inline-start: initial; +padding-inline-start: unset; ++ +
La propriété padding-inline-start peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
<div> + <p class="exemple">Texte d'exemple</p> +</div> ++ +
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.exemple {
+ writing-mode: vertical-lr;
+ padding-inline-start: 20px;
+ background-color: #C8C800;
+}
+
+{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-inline-start", "padding-inline-start")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-inline-start")}}
+ +La propriété padding-inline définit l'espace de remplissage (padding) pour le début et la fin de l'axe en ligne de l'élément. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("padding-top")}} et {{cssxref("padding-bottom")}} ou à {{cssxref("padding-right")}} et {{cssxref("padding-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ -/* Type <length> */ -padding-inline: 10px 20px; /* Des longueurs absolues */ -padding-inline: 1em 2em; /* Des longueurs relatives à la taille du texte */ -padding-inline: 5% 2%; /* Des longueurs relatives à la taille du bloc englobant */ -padding-inline: 10px; /* Une seule valeur définit le remplissage des deux côtés */ - -/* Valeurs avec un mot-clé */ -padding-inline: auto; - -/* Valeurs globales */ -padding-inline: inherit; -padding-inline: initial; -padding-inline: unset; -- -
Ces valeurs peuvent être définies individuellement grâce aux propriétés détaillées {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}}. Pour définir le remplissage sur l'axe de bloc, on pourra utiliser la propriété logique raccourcie {{cssxref("padding-block")}} qui définit {{cssxref("padding-block-start")}} et {{cssxref("padding-block-end")}}.
- -La propriété padding-inline peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
div {
- background-color: yellow;
- width: 120px;
- height: 120px;
-}
-
-.texteExemple {
- writing-mode: vertical-rl;
- padding-inline: 20px 40px;
- background-color: #c8c800;
-}
-
-<div> - <p class="texteExemple">Texte d'exemple</p> -</div> -- -
{{EmbedLiveSample("Exemples", 140, 140)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-inline", "padding-inline")}} | -{{Spec2("CSS Logical Properties")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-inline")}}
- -La propriété padding-inline définit l'espace de remplissage (padding) pour le début et la fin de l'axe en ligne de l'élément. Cette propriété logique peut correspondre à différentes propriétés physiques selon le mode d'écriture de l'élément, sa direction et l'orientation du texte. Autrement dit, cette propriété peut correspondre aux propriétés {{cssxref("padding-top")}} et {{cssxref("padding-bottom")}} ou à {{cssxref("padding-right")}} et {{cssxref("padding-left")}} selon les valeurs des propriétés {{cssxref("writing-mode")}}, {{cssxref("direction")}} et {{cssxref("text-orientation")}}.
/* Valeurs de longueur */ +/* Type <length> */ +padding-inline: 10px 20px; /* Des longueurs absolues */ +padding-inline: 1em 2em; /* Des longueurs relatives à la taille du texte */ +padding-inline: 5% 2%; /* Des longueurs relatives à la taille du bloc englobant */ +padding-inline: 10px; /* Une seule valeur définit le remplissage des deux côtés */ + +/* Valeurs avec un mot-clé */ +padding-inline: auto; + +/* Valeurs globales */ +padding-inline: inherit; +padding-inline: initial; +padding-inline: unset; ++ +
Ces valeurs peuvent être définies individuellement grâce aux propriétés détaillées {{cssxref("padding-inline-start")}} et {{cssxref("padding-inline-end")}}. Pour définir le remplissage sur l'axe de bloc, on pourra utiliser la propriété logique raccourcie {{cssxref("padding-block")}} qui définit {{cssxref("padding-block-start")}} et {{cssxref("padding-block-end")}}.
+ +La propriété padding-inline peut prendre les mêmes valeurs que la propriété {{cssxref("padding-left")}}.
div {
+ background-color: yellow;
+ width: 120px;
+ height: 120px;
+}
+
+.texteExemple {
+ writing-mode: vertical-rl;
+ padding-inline: 20px 40px;
+ background-color: #c8c800;
+}
+
+<div> + <p class="texteExemple">Texte d'exemple</p> +</div> ++ +
{{EmbedLiveSample("Exemples", 140, 140)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Logical Properties", "#propdef-padding-inline", "padding-inline")}} | +{{Spec2("CSS Logical Properties")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-inline")}}
+ +La propriété padding-left d'un élément correspond à l'espace nécessaire à la gauche d'un élément. La zone de remplissage correspond à l'espace entre le contenu et la bordure. padding-left ne peut pas recevoir de valeurs négatives.
La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-left donc).
/* Valeurs de longueur */ -/* Type <length> */ -padding-left: 0.5em; -padding-left: 0; -padding-left: 2cm; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-left: 10%; - -/* Valeurs globales */ -padding-left: inherit; -padding-left: initial; -padding-left: unset; -- -
<length><percentage><p class="padd"> - Elle n’avait pas bu la moitié de la bouteille, - que sa tête touchait au plafond et qu’elle fut - forcée de se baisser pour ne pas se casser le - cou. -</p>- -
.padd {
- padding-left: 20%;
- border: solid 1px;
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-left')}} | -{{Spec2('CSS3 Box')}} | -Aucun changement. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-left')}} | -{{Spec2('CSS3 Transitions')}} | -padding-left peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-left')}} | -{{Spec2('CSS2.1')}} | -Aucun changement. | -
| {{Specname('CSS1', '#padding-left', 'padding-left')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-left")}}
- -padding-top, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} et {{cssxref("padding-left")}}.La propriété padding-left d'un élément correspond à l'espace nécessaire à la gauche d'un élément. La zone de remplissage correspond à l'espace entre le contenu et la bordure. padding-left ne peut pas recevoir de valeurs négatives.
La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-left donc).
/* Valeurs de longueur */ +/* Type <length> */ +padding-left: 0.5em; +padding-left: 0; +padding-left: 2cm; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-left: 10%; + +/* Valeurs globales */ +padding-left: inherit; +padding-left: initial; +padding-left: unset; ++ +
<length><percentage><p class="padd"> + Elle n’avait pas bu la moitié de la bouteille, + que sa tête touchait au plafond et qu’elle fut + forcée de se baisser pour ne pas se casser le + cou. +</p>+ +
.padd {
+ padding-left: 20%;
+ border: solid 1px;
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-left')}} | +{{Spec2('CSS3 Box')}} | +Aucun changement. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-left')}} | +{{Spec2('CSS3 Transitions')}} | +padding-left peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-left')}} | +{{Spec2('CSS2.1')}} | +Aucun changement. | +
| {{Specname('CSS1', '#padding-left', 'padding-left')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-left")}}
+ +padding-top, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} et {{cssxref("padding-left")}}.La propriété padding-right d'un élément correspond à l'espace nécessaire à la droite d'un élément. La zone de remplissage correspond à l'espace entre le contenu et la bordure. padding-right ne peut pas recevoir de valeurs négatives.
Note : La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-right donc).
/* Valeurs de longueur */ -/* Type <length> */ -padding-right: 0.5em; -padding-right: 0; -padding-right: 2cm; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-right: 10%; - -/* Valeurs globales */ -padding-right: inherit; -padding-right: initial; -padding-right: unset; -- -
<length><percentage><p class="padd"> - Elle n’avait pas bu la moitié de la bouteille, - que sa tête touchait au plafond et qu’elle fut - forcée de se baisser pour ne pas se casser le - cou. -</p>- -
.padd {
- padding-right: 20%;
- border: solid 1px;
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-right')}} | -{{Spec2('CSS3 Box')}} | -Aucun changement. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-right')}} | -{{Spec2('CSS3 Transitions')}} | -padding-right peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-right')}} | -{{Spec2('CSS2.1')}} | -Aucun changement. | -
| {{Specname('CSS1', '#padding-right', 'padding-right')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-right")}}
- -padding-right, {{cssxref("padding-top")}}, {{cssxref("padding-bottom")}} et {{cssxref("padding-left")}}.La propriété padding-right d'un élément correspond à l'espace nécessaire à la droite d'un élément. La zone de remplissage correspond à l'espace entre le contenu et la bordure. padding-right ne peut pas recevoir de valeurs négatives.
Note : La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-right donc).
/* Valeurs de longueur */ +/* Type <length> */ +padding-right: 0.5em; +padding-right: 0; +padding-right: 2cm; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-right: 10%; + +/* Valeurs globales */ +padding-right: inherit; +padding-right: initial; +padding-right: unset; ++ +
<length><percentage><p class="padd"> + Elle n’avait pas bu la moitié de la bouteille, + que sa tête touchait au plafond et qu’elle fut + forcée de se baisser pour ne pas se casser le + cou. +</p>+ +
.padd {
+ padding-right: 20%;
+ border: solid 1px;
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-right')}} | +{{Spec2('CSS3 Box')}} | +Aucun changement. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-right')}} | +{{Spec2('CSS3 Transitions')}} | +padding-right peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-right')}} | +{{Spec2('CSS2.1')}} | +Aucun changement. | +
| {{Specname('CSS1', '#padding-right', 'padding-right')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-right")}}
+ +padding-right, {{cssxref("padding-top")}}, {{cssxref("padding-bottom")}} et {{cssxref("padding-left")}}.La propriété padding-top d'un élément ajuste la hauteur de la boîte de remplissage (padding) en haut de l'élément.
La zone de remplissage correspond à l'espace entre le contenu et la bordure. Contrairement à {{cssxref("margin-top")}}, padding-top ne peut pas recevoir de valeurs négatives.
La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-top donc).
/* Valeurs de longueur */ -/* Type <length> */ -padding-top: 0.5em; -padding-top: 0; -padding-top: 2cm; - -/* Valeurs de proportions */ -/* Type <percentage> */ -padding-top: 10%; - -/* Valeurs globales */ -padding-top: inherit; -padding-top: initial; -padding-top: unset; -- -
<length><percentage><p class="padd"> - Elle n’avait pas bu la moitié de la bouteille, - que sa tête touchait au plafond et qu’elle fut - forcée de se baisser pour ne pas se casser le - cou. -</p>- -
.padd {
- padding-top: 5em;
- border: solid 1px;
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-top')}} | -{{Spec2('CSS3 Box')}} | -Aucun changement depuis {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-top')}}. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-top')}} | -{{Spec2('CSS3 Transitions')}} | -padding-top peut désormais être animée. |
-
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-top')}} | -{{Spec2('CSS2.1')}} | -Aucun changement depuis {{Specname('CSS1', '#padding-top', 'padding-top')}}. | -
| {{Specname('CSS1', '#padding-top', 'padding-top')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding-top")}}
- -padding-top, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} et {{cssxref("padding-left")}}.La propriété padding-top d'un élément ajuste la hauteur de la boîte de remplissage (padding) en haut de l'élément.
La zone de remplissage correspond à l'espace entre le contenu et la bordure. Contrairement à {{cssxref("margin-top")}}, padding-top ne peut pas recevoir de valeurs négatives.
La propriété raccourcie {{cssxref("padding")}} permet de paramétrer les dimensions des quatre côtés de cette boîte (y compris padding-top donc).
/* Valeurs de longueur */ +/* Type <length> */ +padding-top: 0.5em; +padding-top: 0; +padding-top: 2cm; + +/* Valeurs de proportions */ +/* Type <percentage> */ +padding-top: 10%; + +/* Valeurs globales */ +padding-top: inherit; +padding-top: initial; +padding-top: unset; ++ +
<length><percentage><p class="padd"> + Elle n’avait pas bu la moitié de la bouteille, + que sa tête touchait au plafond et qu’elle fut + forcée de se baisser pour ne pas se casser le + cou. +</p>+ +
.padd {
+ padding-top: 5em;
+ border: solid 1px;
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding-top')}} | +{{Spec2('CSS3 Box')}} | +Aucun changement depuis {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-top')}}. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding-top')}} | +{{Spec2('CSS3 Transitions')}} | +padding-top peut désormais être animée. |
+
| {{SpecName('CSS2.1', 'box.html#padding-properties', 'padding-top')}} | +{{Spec2('CSS2.1')}} | +Aucun changement depuis {{Specname('CSS1', '#padding-top', 'padding-top')}}. | +
| {{Specname('CSS1', '#padding-top', 'padding-top')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding-top")}}
+ +padding-top, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} et {{cssxref("padding-left")}}.La propriété padding est une propriété raccourcie qui permet de définir les différents écarts de remplissage sur les quatre côtés d'un élément (cf. les boîtes CSS). Elle synthétise {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}}, {{cssxref("padding-left")}}.
La zone de remplissage correspond à l'espace entre le contenu de l'élément et sa bordure. Les valeurs négatives ne sont pas autorisées.
- -Note : Le padding permet de créer un espace supplémentaire à l'intérieur d'un élément. La marge ({{cssxref("margin")}}) permet quant à elle de créer un espace supplémentaire à l'extérieur de l'élément.
-/* On applique la même valeur aux quatre côtés */ -padding: 1em; - -/* vertical | horizontal */ -padding: 5% 10%; - -/* haut | horizontal | bas */ -padding: 1em 2em 2em; - -/* haut | droit | bas | gauche */ -padding: 5px 1em 0 2em; - -/* Valeurs globales */ -padding: inherit; -padding: initial; -padding: unset; -- -
Selon la quantité de valeurs utilisées, on a un effet différent. Chaque valeur peut être une longueur (<length>) ou un pourcentage (<percentage>). Les valeurs négatives ne sont pas autorisées.
Les valeurs permettent de définir une, deux, trois ou quatre valeurs pour les écarts de remplissage. On peut utiliser des valeurs de type :
- -<length><percentage><h4>Coucou le monde !</h4> -<h3>Le remplissage n'est pas le même ici.</h3> -- -
h4 {
- background-color: green;
- padding: 50px 20px 20px 50px;
-}
-
-h3 {
- background-color: blue;
- padding: 400px 5%;
-}
-
-
-{{EmbedLiveSample('Exemples',"100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding')}} | -{{Spec2('CSS3 Box')}} | -Aucun changement. | -
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding')}} | -{{Spec2('CSS3 Transitions')}} | -padding peut être animée. |
-
| {{SpecName('CSS2.1', 'box.html#propdef-padding', 'padding')}} | -{{Spec2('CSS2.1')}} | -Aucun changement. | -
| {{Specname('CSS1', '#padding', 'padding')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.padding")}}
- -padding :
- La propriété padding est une propriété raccourcie qui permet de définir les différents écarts de remplissage sur les quatre côtés d'un élément (cf. les boîtes CSS). Elle synthétise {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}}, {{cssxref("padding-left")}}.
La zone de remplissage correspond à l'espace entre le contenu de l'élément et sa bordure. Les valeurs négatives ne sont pas autorisées.
+ +Note : Le padding permet de créer un espace supplémentaire à l'intérieur d'un élément. La marge ({{cssxref("margin")}}) permet quant à elle de créer un espace supplémentaire à l'extérieur de l'élément.
+/* On applique la même valeur aux quatre côtés */ +padding: 1em; + +/* vertical | horizontal */ +padding: 5% 10%; + +/* haut | horizontal | bas */ +padding: 1em 2em 2em; + +/* haut | droit | bas | gauche */ +padding: 5px 1em 0 2em; + +/* Valeurs globales */ +padding: inherit; +padding: initial; +padding: unset; ++ +
Selon la quantité de valeurs utilisées, on a un effet différent. Chaque valeur peut être une longueur (<length>) ou un pourcentage (<percentage>). Les valeurs négatives ne sont pas autorisées.
Les valeurs permettent de définir une, deux, trois ou quatre valeurs pour les écarts de remplissage. On peut utiliser des valeurs de type :
+ +<length><percentage><h4>Coucou le monde !</h4> +<h3>Le remplissage n'est pas le même ici.</h3> ++ +
h4 {
+ background-color: green;
+ padding: 50px 20px 20px 50px;
+}
+
+h3 {
+ background-color: blue;
+ padding: 400px 5%;
+}
+
+
+{{EmbedLiveSample('Exemples',"100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Box', '#the-padding', 'padding')}} | +{{Spec2('CSS3 Box')}} | +Aucun changement. | +
| {{SpecName('CSS3 Transitions', '#animatable-css', 'padding')}} | +{{Spec2('CSS3 Transitions')}} | +padding peut être animée. |
+
| {{SpecName('CSS2.1', 'box.html#propdef-padding', 'padding')}} | +{{Spec2('CSS2.1')}} | +Aucun changement. | +
| {{Specname('CSS1', '#padding', 'padding')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.padding")}}
+ +padding :
+ Attention : Cette propriété a été remplacée par la propriété {{cssxref("break-after")}}.
-La propriété CSS page-break-after permet d'ajuster les sauts de page placés après l'élément courant.
/* Valeurs avec un mot-clé */ -page-break-after: auto; -page-break-after: always; -page-break-after: avoid; -page-break-after: left; -page-break-after: right; -page-break-after: recto; -page-break-after: verso; - -/* Valeurs globales */ -page-break-after: inherit; -page-break-after: initial; -page-break-after: unset; -- -
Cette propriété s'applique aux éléments de blocs qui génèrent une boîte. Elle ne s'appliquera pas à un {{HTMLElement("div")}} qui ne génère pas de boîte.
- -break-afterLa propriété page-break-after est désormais remplacée par {{cssxref("break-after")}}.
Si pour des raisons de compatibilité, on doit traiter page-break-after comme synonyme, on pourra utiliser le tableau de correspondance des valeurs suivant :
page-break-after |
- break-after |
-
|---|---|
auto |
- auto |
-
left |
- left |
-
right |
- right |
-
avoid |
- avoid |
-
always |
- page |
-
autoalwaysavoidleftrightrecto {{experimental_inline}}right. Si la page progresse de droite à gauche, elle est synonyme de left.verso {{experimental_inline}}left. Si la page progresse de droite à gauche, elle est synonyme de right./* On force une nouvelle page à la suite */
-/* d'une note en bas de page */
-div.footnotes {
- page-break-after: always;
-}
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties', '#page', 'recto and verso')}} | -{{Spec2('CSS Logical Properties')}} | -Ajout des valeurs recto et verso. |
-
| {{SpecName('CSS3 Paged Media', '#page-break-after', 'page-break-after')}} | -{{Spec2('CSS3 Paged Media')}} | -Cette propriété peut désormais être étendues aux lignes de tableau et aux groupe de lignes de tableau. | -
| {{SpecName('CSS2.1', 'page.html#propdef-page-break-after', 'page-break-after')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.page-break-after")}}
- -Attention : Cette propriété a été remplacée par la propriété {{cssxref("break-after")}}.
+La propriété CSS page-break-after permet d'ajuster les sauts de page placés après l'élément courant.
/* Valeurs avec un mot-clé */ +page-break-after: auto; +page-break-after: always; +page-break-after: avoid; +page-break-after: left; +page-break-after: right; +page-break-after: recto; +page-break-after: verso; + +/* Valeurs globales */ +page-break-after: inherit; +page-break-after: initial; +page-break-after: unset; ++ +
Cette propriété s'applique aux éléments de blocs qui génèrent une boîte. Elle ne s'appliquera pas à un {{HTMLElement("div")}} qui ne génère pas de boîte.
+ +break-afterLa propriété page-break-after est désormais remplacée par {{cssxref("break-after")}}.
Si pour des raisons de compatibilité, on doit traiter page-break-after comme synonyme, on pourra utiliser le tableau de correspondance des valeurs suivant :
page-break-after |
+ break-after |
+
|---|---|
auto |
+ auto |
+
left |
+ left |
+
right |
+ right |
+
avoid |
+ avoid |
+
always |
+ page |
+
autoalwaysavoidleftrightrecto {{experimental_inline}}right. Si la page progresse de droite à gauche, elle est synonyme de left.verso {{experimental_inline}}left. Si la page progresse de droite à gauche, elle est synonyme de right./* On force une nouvelle page à la suite */
+/* d'une note en bas de page */
+div.footnotes {
+ page-break-after: always;
+}
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties', '#page', 'recto and verso')}} | +{{Spec2('CSS Logical Properties')}} | +Ajout des valeurs recto et verso. |
+
| {{SpecName('CSS3 Paged Media', '#page-break-after', 'page-break-after')}} | +{{Spec2('CSS3 Paged Media')}} | +Cette propriété peut désormais être étendues aux lignes de tableau et aux groupe de lignes de tableau. | +
| {{SpecName('CSS2.1', 'page.html#propdef-page-break-after', 'page-break-after')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.page-break-after")}}
+ +Attention : Cette propriété a été remplacée par la propriété {{cssxref("break-before")}}.
-La propriété CSS page-break-before permet d'ajuster les sauts de page placés avant l'élément courant.Cette propriété s'applique aux éléments de blocs qui génèrent une boîte. Elle ne s'appliquera pas à un {{HTMLElement("div")}} qui ne génère pas de boîte.
/* Valeurs avec un mot-clé */ -page-break-before: auto; -page-break-before: always; -page-break-before: avoid; -page-break-before: left; -page-break-before: right; -page-break-before: recto; -page-break-before: verso; - -/* Valeurs globales */ -page-break-before: inherit; -page-break-before: initial; -page-break-before: unset; -- -
break-beforeLa propriété page-break-before est désormais remplacée par {{cssxref("break-before")}}.
Pour des raisons de compatibilité, si on traite page-break-before comme un synonyme de break-before, on pourra utiliser le tableau de correspondance suivant :
page-break-before |
- break-before |
-
|---|---|
auto |
- auto |
-
left |
- left |
-
right |
- right |
-
avoid |
- avoid |
-
always |
- page |
-
autoalwaysavoidleftrightrecto {{experimental_inline}}right. Si la page progresse de droite à gauche, elle est synonyme de left.verso {{experimental_inline}}left. Si la page progresse de droite à gauche, elle est synonyme de right./* Pour éviter d'avoir un saut de page avant */
-/* une note dans un div */
-div.note {
- page-break-before: avoid;
-}
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties', '#logical-page', 'recto and verso')}} | -{{Spec2('CSS Logical Properties')}} | -Ajout des valeurs recto et verso. |
-
| {{SpecName('CSS3 Paged Media', '#page-break-before', 'page-break-before')}} | -{{Spec2('CSS3 Paged Media')}} | -Cette propriété peut désormais être étendues aux lignes de tableau et aux groupe de lignes de tableau. | -
| {{SpecName('CSS2.1', 'page.html#propdef-page-break-before', 'page-break-before')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.page-break-before")}}
- -Attention : Cette propriété a été remplacée par la propriété {{cssxref("break-before")}}.
+La propriété CSS page-break-before permet d'ajuster les sauts de page placés avant l'élément courant.Cette propriété s'applique aux éléments de blocs qui génèrent une boîte. Elle ne s'appliquera pas à un {{HTMLElement("div")}} qui ne génère pas de boîte.
/* Valeurs avec un mot-clé */ +page-break-before: auto; +page-break-before: always; +page-break-before: avoid; +page-break-before: left; +page-break-before: right; +page-break-before: recto; +page-break-before: verso; + +/* Valeurs globales */ +page-break-before: inherit; +page-break-before: initial; +page-break-before: unset; ++ +
break-beforeLa propriété page-break-before est désormais remplacée par {{cssxref("break-before")}}.
Pour des raisons de compatibilité, si on traite page-break-before comme un synonyme de break-before, on pourra utiliser le tableau de correspondance suivant :
page-break-before |
+ break-before |
+
|---|---|
auto |
+ auto |
+
left |
+ left |
+
right |
+ right |
+
avoid |
+ avoid |
+
always |
+ page |
+
autoalwaysavoidleftrightrecto {{experimental_inline}}right. Si la page progresse de droite à gauche, elle est synonyme de left.verso {{experimental_inline}}left. Si la page progresse de droite à gauche, elle est synonyme de right./* Pour éviter d'avoir un saut de page avant */
+/* une note dans un div */
+div.note {
+ page-break-before: avoid;
+}
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties', '#logical-page', 'recto and verso')}} | +{{Spec2('CSS Logical Properties')}} | +Ajout des valeurs recto et verso. |
+
| {{SpecName('CSS3 Paged Media', '#page-break-before', 'page-break-before')}} | +{{Spec2('CSS3 Paged Media')}} | +Cette propriété peut désormais être étendues aux lignes de tableau et aux groupe de lignes de tableau. | +
| {{SpecName('CSS2.1', 'page.html#propdef-page-break-before', 'page-break-before')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.page-break-before")}}
+ +Attention : Cette propriété a été remplacée par la propriété {{cssxref("break-inside")}}.
-La propriété page-break-inside ajuste la façon dont sont appliqués les sauts de page au sein de l'élément courant.
/* Valeurs avec un mot-clé */ -page-break-inside: auto; -page-break-inside: avoid; - -/* Valeurs globales */ -page-break-inside: inherit; -page-break-inside: initial; -page-break-inside: unset; -- -
autoavoidbreak-insideLa propriété page-break-inside a désormais été remplacée par la propriété {{cssxref("break-inside")}}.
Pour des raisons de compatibilité, page-break-inside devrait être considérée par les navigateurs comme synonyme de break-inside. De cette façon, les sites utilisant page-break-inside pourront continuer de fonctionner. Voici un sous-ensemble des valeurs de cette propriété et des correspondances
page-break-inside |
- break-inside |
-
|---|---|
auto |
- auto |
-
avoid |
- avoid |
-
<div class="page"> - <p>Un premier paragraphe.</p> - <section class="list"> - <span>Une liste</span> - <ol> - <li>Un</li> -<!-- <li>Deux</li> --> - </ol> - </section> - <ul> - <li>Un</li> -<!-- <li>Deux</li> --> - </ul> - <p>Un deuxième paragraphe.</p> - <p>Un troisième paragraphe, un peu plus long.</p> - <p>Un quatrième paragraphe, un peu plus long voire plus long que le troisième.</p> -</div>- -
.page {
- background-color: #8cffa0;
- height: 90px;
- width: 200px;
- columns: 1;
- column-width: 100px;
-}
-
-.list, ol, ul, p {
- break-inside: avoid;
-}
-
-p {
- background-color: #8ca0ff;
-}
-
-ol, ul, .list {
- margin: 0.5em 0;
- display: block;
- background-color: orange;
-}
-
-p:first-child {
- margin-top: 0;
-}
-
-{{EmbedLiveSample("Exemples", 400, 160)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Paged Media', '#page-break-inside', 'page-break-inside')}} | -{{Spec2('CSS3 Paged Media')}} | -Permet d'appliquer cette propriété sur plus d'éléments. | -
| {{SpecName('CSS2.1', 'page.html#propdef-page-break-inside', 'page-break-inside')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.page-break-inside")}}
- -Attention : Cette propriété a été remplacée par la propriété {{cssxref("break-inside")}}.
+La propriété page-break-inside ajuste la façon dont sont appliqués les sauts de page au sein de l'élément courant.
/* Valeurs avec un mot-clé */ +page-break-inside: auto; +page-break-inside: avoid; + +/* Valeurs globales */ +page-break-inside: inherit; +page-break-inside: initial; +page-break-inside: unset; ++ +
autoavoidbreak-insideLa propriété page-break-inside a désormais été remplacée par la propriété {{cssxref("break-inside")}}.
Pour des raisons de compatibilité, page-break-inside devrait être considérée par les navigateurs comme synonyme de break-inside. De cette façon, les sites utilisant page-break-inside pourront continuer de fonctionner. Voici un sous-ensemble des valeurs de cette propriété et des correspondances
page-break-inside |
+ break-inside |
+
|---|---|
auto |
+ auto |
+
avoid |
+ avoid |
+
<div class="page"> + <p>Un premier paragraphe.</p> + <section class="list"> + <span>Une liste</span> + <ol> + <li>Un</li> +<!-- <li>Deux</li> --> + </ol> + </section> + <ul> + <li>Un</li> +<!-- <li>Deux</li> --> + </ul> + <p>Un deuxième paragraphe.</p> + <p>Un troisième paragraphe, un peu plus long.</p> + <p>Un quatrième paragraphe, un peu plus long voire plus long que le troisième.</p> +</div>+ +
.page {
+ background-color: #8cffa0;
+ height: 90px;
+ width: 200px;
+ columns: 1;
+ column-width: 100px;
+}
+
+.list, ol, ul, p {
+ break-inside: avoid;
+}
+
+p {
+ background-color: #8ca0ff;
+}
+
+ol, ul, .list {
+ margin: 0.5em 0;
+ display: block;
+ background-color: orange;
+}
+
+p:first-child {
+ margin-top: 0;
+}
+
+{{EmbedLiveSample("Exemples", 400, 160)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Paged Media', '#page-break-inside', 'page-break-inside')}} | +{{Spec2('CSS3 Paged Media')}} | +Permet d'appliquer cette propriété sur plus d'éléments. | +
| {{SpecName('CSS2.1', 'page.html#propdef-page-break-inside', 'page-break-inside')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.page-break-inside")}}
+ +Les propriétés des médias paginés contrôlent la présentation du contenu imprimable ou de tout autre média dont le contenu est divisé en pages individuelles. Elles permettent de définir des sauts de page, de contrôler la zone d'impression, de donner des styles différents aux pages gauche et droite et de contrôler l'application des césures à l'intérieur des éléments. Voici quelques-unes des propriétés supportées les plus fréquemment utilisées :
- -Les propriétés des médias paginés contrôlent la présentation du contenu imprimable ou de tout autre média dont le contenu est divisé en pages individuelles. Elles permettent de définir des sauts de page, de contrôler la zone d'impression, de donner des styles différents aux pages gauche et droite et de contrôler l'application des césures à l'intérieur des éléments. Voici quelques-unes des propriétés supportées les plus fréquemment utilisées :
+ +La propriété paint-order permet de contrôler l'ordre dans lequel le remplissage, les marqueurs de peinture et le contour du texte et des formes sont dessinés.
/* Normal */ -paint-order: normal; - -/* Valeur unique */ -/* le contour est dessiné en premier, puis */ -/* le remplissage puis les marqueurs */ -paint-order: stroke; -/* les marqueurs sont dessinés en premier, */ -/* suivis du remplissage et du contour */ -paint-order: markers; - -/* Plusieurs valeurs */ -/* Le contour est dessiné en premier puis */ -/* le remplissage puis les marqueurs */ -paint-order: stroke fill; -/* Les marqueurs sont dessinés en premiers */ -/* puis le contour, puis le remplissage */ -paint-order: markers stroke fill; -- -
La valeur par défaut, utilisée si aucune valeur n'est fournie, sera fill, stroke, markers.
Lorsqu'une seule valeur est indiquée, c'est celle-ci qui est appliquée par défaut suivi des deux autres selon l'ordre par défaut. Lorsque deux valeurs sont indiquées, elles sont appliquées dans cet ordre puis suivi de la troisième.
- -Note : Pour cette propriété, les marqueurs sont uniquement utilisés dans le cas de formes SVG qui utilisent les propriétés marker-* (e.g. marker-start) ou l'élément <marker>. Les marqueurs ne sont pas appliqués sur le texte HTML, dans ce cas, seul l'ordre entre stroke et fill importe.
normalstrokefillmarkers<svg xmlns="http://www.w3.org/2000/svg" width="400" height="200"> - <text x="10" y="75">stroke in front</text> - <text x="10" y="150" class="stroke-behind">stroke behind</text> -</svg>- -
text {
- font-family: sans-serif;
- font-size: 50px;
- font-weight: bold;
- fill: black;
- stroke: red;
- stroke-width: 4px;
-}
-
-.stroke-behind {
- paint-order: stroke fill;
-}
-
-{{EmbedLiveSample('Exemples', '100%', 165)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('SVG2', 'painting.html#PaintOrder', 'paint-order')}} | -{{Spec2('SVG2')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.paint-order")}}
diff --git a/files/fr/web/css/paint-order/index.md b/files/fr/web/css/paint-order/index.md new file mode 100644 index 0000000000..ffbc99c063 --- /dev/null +++ b/files/fr/web/css/paint-order/index.md @@ -0,0 +1,114 @@ +--- +title: paint-order +slug: Web/CSS/paint-order +tags: + - CSS + - Experimental + - Propriété + - Reference + - SVG + - Web +translation_of: Web/CSS/paint-order +--- +La propriété paint-order permet de contrôler l'ordre dans lequel le remplissage, les marqueurs de peinture et le contour du texte et des formes sont dessinés.
/* Normal */ +paint-order: normal; + +/* Valeur unique */ +/* le contour est dessiné en premier, puis */ +/* le remplissage puis les marqueurs */ +paint-order: stroke; +/* les marqueurs sont dessinés en premier, */ +/* suivis du remplissage et du contour */ +paint-order: markers; + +/* Plusieurs valeurs */ +/* Le contour est dessiné en premier puis */ +/* le remplissage puis les marqueurs */ +paint-order: stroke fill; +/* Les marqueurs sont dessinés en premiers */ +/* puis le contour, puis le remplissage */ +paint-order: markers stroke fill; ++ +
La valeur par défaut, utilisée si aucune valeur n'est fournie, sera fill, stroke, markers.
Lorsqu'une seule valeur est indiquée, c'est celle-ci qui est appliquée par défaut suivi des deux autres selon l'ordre par défaut. Lorsque deux valeurs sont indiquées, elles sont appliquées dans cet ordre puis suivi de la troisième.
+ +Note : Pour cette propriété, les marqueurs sont uniquement utilisés dans le cas de formes SVG qui utilisent les propriétés marker-* (e.g. marker-start) ou l'élément <marker>. Les marqueurs ne sont pas appliqués sur le texte HTML, dans ce cas, seul l'ordre entre stroke et fill importe.
normalstrokefillmarkers<svg xmlns="http://www.w3.org/2000/svg" width="400" height="200"> + <text x="10" y="75">stroke in front</text> + <text x="10" y="150" class="stroke-behind">stroke behind</text> +</svg>+ +
text {
+ font-family: sans-serif;
+ font-size: 50px;
+ font-weight: bold;
+ fill: black;
+ stroke: red;
+ stroke-width: 4px;
+}
+
+.stroke-behind {
+ paint-order: stroke fill;
+}
+
+{{EmbedLiveSample('Exemples', '100%', 165)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('SVG2', 'painting.html#PaintOrder', 'paint-order')}} | +{{Spec2('SVG2')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.paint-order")}}
diff --git a/files/fr/web/css/path()/index.html b/files/fr/web/css/path()/index.html deleted file mode 100644 index 7be4d1a072..0000000000 --- a/files/fr/web/css/path()/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: path() -slug: Web/CSS/path() -translation_of: 'Web/CSS/path()' ---- -La fonction CSS path() accepte comme paramètre une chaîne représentant un tracé SVG. Elle est utilisée dans les formes CSS et les animations de tracés CSS pour permettre de dessiner une forme.
path( [[<'fill-rule'>,]?<string>)- -
<'fill-rule'>nonzero ou evenodd. La valeur par défaut est nonzero. Voir fill-rule pour plus de détails.<string>path("M 10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80");
-path(evenodd,"M 10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80");
-
-
-La fonction path() est utilisée pour créer un tracé à suivre pour l'élément. La modification de l'une de ces valeurs conduira celui-ci à ne pas pouvoir suivre le tracé de façon nette lors de l'animation.
{{EmbedGHLiveSample("css-examples/path/offset-path.html", '100%', 960)}}
- -| Spécification | -Statut | -
|---|---|
| {{SpecName('CSS Shapes', '#funcdef-path', 'path()')}} | -{{Spec2('CSS Shapes')}} | -
La fonction CSS path() accepte comme paramètre une chaîne représentant un tracé SVG. Elle est utilisée dans les formes CSS et les animations de tracés CSS pour permettre de dessiner une forme.
path( [[<'fill-rule'>,]?<string>)+ +
<'fill-rule'>nonzero ou evenodd. La valeur par défaut est nonzero. Voir fill-rule pour plus de détails.<string>path("M 10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80");
+path(evenodd,"M 10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80");
+
+
+La fonction path() est utilisée pour créer un tracé à suivre pour l'élément. La modification de l'une de ces valeurs conduira celui-ci à ne pas pouvoir suivre le tracé de façon nette lors de l'animation.
{{EmbedGHLiveSample("css-examples/path/offset-path.html", '100%', 960)}}
+ +| Spécification | +Statut | +
|---|---|
| {{SpecName('CSS Shapes', '#funcdef-path', 'path()')}} | +{{Spec2('CSS Shapes')}} | +
Le type de données CSS <percentage> représente une valeur exprimée en pourcentages. De nombreuses propriétés CSS utilisent des valeurs en pourcentages, la plupart du temps pour déterminer des tailles en fonction de la taille des éléments parent.
De nombreuses propriétés CSS utilisent des pourcentages : {{cssxref("width")}}, {{cssxref("margin")}}, {{cssxref("padding")}}, etc.. Les pourcentages peuvent aussi être vus avec {{cssxref("font-size")}}, où la taille du texte est directement en relation avec celle de son parent.
- -Note : Seules les valeurs calculées sont héritées. Ainsi, même si une valeur en pourcentage est utilisée sur la propriété parent, une valeur réelle, comme une largeur en pixel pour une valeur {{cssxref("<length>")}}, sera accessible sur la propriété héritée, pas la valeur en pourcentage.
-Les valeurs de type <percentage> sont formées d'un {{cssxref("<number>")}} immédiatement suivi par le signe pourcentage %. Comme pour toutes les valeurs avec unité en CSS, il n'y a aucun espace entre le '%' et le nombre.
Les valeurs du type <percentage> peuvent être interpolées de manière à rendre les animations possibles. Dans ce cas l'interpolation se fait par des nombres réels à virgule flottante. La rapidité de l'interpolation est déterminée par la {{cssxref("timing-function","fonction de temporisation","",1)}} associée à l'animation.
width et margin-left<div style="background-color:#0000FF;"> - <div style="width:50%;margin-left:20%;background-color:#00FF00;"> - width : 50%, left-margin : 20% - </div> - <div style="width:30%;margin-left:60%;background-color:#FF0000;"> - width : 30%, left-margin : 60% - </div> -</div> -- -
Le fragment de HTML précédent sera affiché de cette façon :
- -{{EmbedLiveSample('width_et_margin-left', '100%', '140')}}
- -font-size<div style="font-size:18px;"> - <p>Texte en taille normale (18px)</p> - <p><span style="font-size:50%;">50%</span></p> - <p><span style="font-size:200%;">200%</span></p> -</div> -- -
Le fragment HTML précédent donnera ce résultat :
- -{{EmbedLiveSample('font-size')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#percentages', '<percentage>')}} | -{{Spec2('CSS4 Values')}} | -Aucune modification significative. | -
| {{SpecName('CSS3 Values', '#percentages', '<percentage>')}} | -{{Spec2('CSS3 Values')}} | -Aucune modification significative depuis la spécification CSS de niveau 2 (première révision). | -
| {{SpecName('CSS2.1', 'syndata.html#percentage-units', '<percentage>')}} | -{{Spec2('CSS2.1')}} | -Aucune modification depuis la spécification CSS de niveau 1. | -
| {{SpecName('CSS1', '#percentage-units', '<percentage>')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{Compat("css.types.percentage")}}
diff --git a/files/fr/web/css/percentage/index.md b/files/fr/web/css/percentage/index.md new file mode 100644 index 0000000000..378f92a039 --- /dev/null +++ b/files/fr/web/css/percentage/index.md @@ -0,0 +1,95 @@ +--- +title:Le type de données CSS <percentage> représente une valeur exprimée en pourcentages. De nombreuses propriétés CSS utilisent des valeurs en pourcentages, la plupart du temps pour déterminer des tailles en fonction de la taille des éléments parent.
De nombreuses propriétés CSS utilisent des pourcentages : {{cssxref("width")}}, {{cssxref("margin")}}, {{cssxref("padding")}}, etc.. Les pourcentages peuvent aussi être vus avec {{cssxref("font-size")}}, où la taille du texte est directement en relation avec celle de son parent.
+ +Note : Seules les valeurs calculées sont héritées. Ainsi, même si une valeur en pourcentage est utilisée sur la propriété parent, une valeur réelle, comme une largeur en pixel pour une valeur {{cssxref("<length>")}}, sera accessible sur la propriété héritée, pas la valeur en pourcentage.
+Les valeurs de type <percentage> sont formées d'un {{cssxref("<number>")}} immédiatement suivi par le signe pourcentage %. Comme pour toutes les valeurs avec unité en CSS, il n'y a aucun espace entre le '%' et le nombre.
Les valeurs du type <percentage> peuvent être interpolées de manière à rendre les animations possibles. Dans ce cas l'interpolation se fait par des nombres réels à virgule flottante. La rapidité de l'interpolation est déterminée par la {{cssxref("timing-function","fonction de temporisation","",1)}} associée à l'animation.
width et margin-left<div style="background-color:#0000FF;"> + <div style="width:50%;margin-left:20%;background-color:#00FF00;"> + width : 50%, left-margin : 20% + </div> + <div style="width:30%;margin-left:60%;background-color:#FF0000;"> + width : 30%, left-margin : 60% + </div> +</div> ++ +
Le fragment de HTML précédent sera affiché de cette façon :
+ +{{EmbedLiveSample('width_et_margin-left', '100%', '140')}}
+ +font-size<div style="font-size:18px;"> + <p>Texte en taille normale (18px)</p> + <p><span style="font-size:50%;">50%</span></p> + <p><span style="font-size:200%;">200%</span></p> +</div> ++ +
Le fragment HTML précédent donnera ce résultat :
+ +{{EmbedLiveSample('font-size')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#percentages', '<percentage>')}} | +{{Spec2('CSS4 Values')}} | +Aucune modification significative. | +
| {{SpecName('CSS3 Values', '#percentages', '<percentage>')}} | +{{Spec2('CSS3 Values')}} | +Aucune modification significative depuis la spécification CSS de niveau 2 (première révision). | +
| {{SpecName('CSS2.1', 'syndata.html#percentage-units', '<percentage>')}} | +{{Spec2('CSS2.1')}} | +Aucune modification depuis la spécification CSS de niveau 1. | +
| {{SpecName('CSS1', '#percentage-units', '<percentage>')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{Compat("css.types.percentage")}}
diff --git a/files/fr/web/css/perspective-origin/index.html b/files/fr/web/css/perspective-origin/index.html deleted file mode 100644 index 8a8768ebf1..0000000000 --- a/files/fr/web/css/perspective-origin/index.html +++ /dev/null @@ -1,385 +0,0 @@ ---- -title: perspective-origin -slug: Web/CSS/perspective-origin -tags: - - CSS - - Propriété - - Reference - - Transformations CSS -translation_of: Web/CSS/perspective-origin ---- -La propriété perspective-origin détermine la poisition depuis laquelle le spectateur regarde le document. Elle est utilisée comme point de fuite par la propriété {{cssxref("perspective")}}.
Les propriétés perspective-origin et {{cssxref("perspective")}} sont à rattacher à l'élément parent de l'élément qu'on veut placer dans un espace 3D. En revanche, la fonction perspective() s'applique à même l'élément qu'on veut placer en 3D.
/* Syntaxe avec une valeur */ -perspective-origin: x-position; - -/* Syntaxe avec deux valeurs */ -perspective-origin: x-position y-position; - -/* Lorsque x-position et y-position sont des mots-clés */ -/* on peut aussi avoir la forme suivante valide */ -perspective-origin: y-position x-position; - -/* Valeurs globales */ -perspective-origin: inherit; -perspective-origin: initial; -perspective-origin: unset; -- -
left : un mot-clé qui est un alias pour indiquer une longueur nulle.center : un mot-clé qui est un alias pour indiquer une valeur de pourcentage de 50%.right : un mot-clé qui est un alias pour indiquer un pourcentage de 100%.top : un mot-clé qui est un alias pour indiquer une longueur nulle.center : un mot-clé qui est un alias pour indiquer une valeur de pourcentage de 50%.bottom : un mot-clé qui est un alias pour indiquer un pourcentage de 100%.perspective-origin<section> -<figure> - <caption><code>perspective-origin: top left;</code></caption> - <div class="container"> - <div class="cube potl"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: top;</code></caption> - <div class="container"> - <div class="cube potm"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: top right;</code></caption> - <div class="container"> - <div class="cube potr"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: left;</code></caption> - <div class="container"> - <div class="cube poml"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: 50% 50%;</code></caption> - <div class="container"> - <div class="cube pomm"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: right;</code></caption> - <div class="container"> - <div class="cube pomr"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: bottom left;</code></caption> - <div class="container"> - <div class="cube pobl"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: bottom;</code></caption> - <div class="container"> - <div class="cube pobm"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: bottom right;</code></caption> - <div class="container"> - <div class="cube pobr"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: -200% -200%;</code></caption> - <div class="container"> - <div class="cube po200200neg"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: 200% 200%;</code></caption> - <div class="container"> - <div class="cube po200200pos"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -<figure> - <caption><code>perspective-origin: 200% -200%;</code></caption> - <div class="container"> - <div class="cube po200200"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> -</figure> - -</section> -- -
/* Valeurs de perspective-origin (uniques pour chaque exemple) */
-.potl {
- perspective-origin: top left;
-}
-.potm {
- perspective-origin: top;
-}
-.potr {
- perspective-origin: top right;
-}
-.poml {
- perspective-origin: left;
-}
-.pomm {
- perspective-origin: 50% 50%;
-}
-.pomr {
- perspective-origin: right;
-}
-.pobl {
- perspective-origin: bottom left;
-}
-.pobm {
- perspective-origin: bottom;
-}
-.pobr {
- perspective-origin: bottom right;
-}
-.po200200neg {
- perspective-origin: -200% -200%;
-}
-.po200200pos {
- perspective-origin: 200% 200%;
-}
-.po200200 {
- perspective-origin: 200% -200%;
-}
-
-/* On définit le conteneur, le cube et une face générique */
-.container {
- width: 100px;
- height: 100px;
- margin: 24px;
- border: none;
-}
-
-.cube {
- width: 100%;
- height: 100%;
- backface-visibility: visible;
- perspective: 300px;
- transform-style: preserve-3d;
-}
-
-.face {
- display: block;
- position: absolute;
- width: 100px;
- height: 100px;
- border: none;
- line-height: 100px;
- font-family: sans-serif;
- font-size: 60px;
- color: white;
- text-align: center;
-}
-
-/* On définit chaque face */
-.front {
- background: rgba(0, 0, 0, 0.3);
- transform: translateZ(50px);
-}
-.back {
- background: rgba(0, 255, 0, 1);
- color: black;
- transform: rotateY(180deg) translateZ(50px);
-}
-.right {
- background: rgba(196, 0, 0, 0.7);
- transform: rotateY(90deg) translateZ(50px);
-}
-.left {
- background: rgba(0, 0, 196, 0.7);
- transform: rotateY(-90deg) translateZ(50px);
-}
-.top {
- background: rgba(196, 196, 0, 0.7);
- transform: rotateX(90deg) translateZ(50px);
-}
-.bottom {
- background: rgba(196, 0, 196, 0.7);
- transform: rotateX(-90deg) translateZ(50px);
-}
-
-/* On améliore la disposition */
-section {
- background-color: #EEE;
- padding: 10px;
- font-family: sans-serif;
- text-align: left;
- display: grid;
- grid-template-columns: repeat(3, 1fr);
-}
-
-{{EmbedLiveSample('Cubes_avec_des_valeurs_communes_pour_perspective-origin', 620, 800)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Transforms 2', '#perspective-origin-property', 'perspective-origin')}} | -{{Spec2('CSS Transforms 2')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.perspective-origin")}}
- -perspective()La propriété perspective-origin détermine la poisition depuis laquelle le spectateur regarde le document. Elle est utilisée comme point de fuite par la propriété {{cssxref("perspective")}}.
Les propriétés perspective-origin et {{cssxref("perspective")}} sont à rattacher à l'élément parent de l'élément qu'on veut placer dans un espace 3D. En revanche, la fonction perspective() s'applique à même l'élément qu'on veut placer en 3D.
/* Syntaxe avec une valeur */ +perspective-origin: x-position; + +/* Syntaxe avec deux valeurs */ +perspective-origin: x-position y-position; + +/* Lorsque x-position et y-position sont des mots-clés */ +/* on peut aussi avoir la forme suivante valide */ +perspective-origin: y-position x-position; + +/* Valeurs globales */ +perspective-origin: inherit; +perspective-origin: initial; +perspective-origin: unset; ++ +
left : un mot-clé qui est un alias pour indiquer une longueur nulle.center : un mot-clé qui est un alias pour indiquer une valeur de pourcentage de 50%.right : un mot-clé qui est un alias pour indiquer un pourcentage de 100%.top : un mot-clé qui est un alias pour indiquer une longueur nulle.center : un mot-clé qui est un alias pour indiquer une valeur de pourcentage de 50%.bottom : un mot-clé qui est un alias pour indiquer un pourcentage de 100%.perspective-origin<section> +<figure> + <caption><code>perspective-origin: top left;</code></caption> + <div class="container"> + <div class="cube potl"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: top;</code></caption> + <div class="container"> + <div class="cube potm"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: top right;</code></caption> + <div class="container"> + <div class="cube potr"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: left;</code></caption> + <div class="container"> + <div class="cube poml"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: 50% 50%;</code></caption> + <div class="container"> + <div class="cube pomm"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: right;</code></caption> + <div class="container"> + <div class="cube pomr"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: bottom left;</code></caption> + <div class="container"> + <div class="cube pobl"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: bottom;</code></caption> + <div class="container"> + <div class="cube pobm"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: bottom right;</code></caption> + <div class="container"> + <div class="cube pobr"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: -200% -200%;</code></caption> + <div class="container"> + <div class="cube po200200neg"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: 200% 200%;</code></caption> + <div class="container"> + <div class="cube po200200pos"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +<figure> + <caption><code>perspective-origin: 200% -200%;</code></caption> + <div class="container"> + <div class="cube po200200"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> +</figure> + +</section> ++ +
/* Valeurs de perspective-origin (uniques pour chaque exemple) */
+.potl {
+ perspective-origin: top left;
+}
+.potm {
+ perspective-origin: top;
+}
+.potr {
+ perspective-origin: top right;
+}
+.poml {
+ perspective-origin: left;
+}
+.pomm {
+ perspective-origin: 50% 50%;
+}
+.pomr {
+ perspective-origin: right;
+}
+.pobl {
+ perspective-origin: bottom left;
+}
+.pobm {
+ perspective-origin: bottom;
+}
+.pobr {
+ perspective-origin: bottom right;
+}
+.po200200neg {
+ perspective-origin: -200% -200%;
+}
+.po200200pos {
+ perspective-origin: 200% 200%;
+}
+.po200200 {
+ perspective-origin: 200% -200%;
+}
+
+/* On définit le conteneur, le cube et une face générique */
+.container {
+ width: 100px;
+ height: 100px;
+ margin: 24px;
+ border: none;
+}
+
+.cube {
+ width: 100%;
+ height: 100%;
+ backface-visibility: visible;
+ perspective: 300px;
+ transform-style: preserve-3d;
+}
+
+.face {
+ display: block;
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ border: none;
+ line-height: 100px;
+ font-family: sans-serif;
+ font-size: 60px;
+ color: white;
+ text-align: center;
+}
+
+/* On définit chaque face */
+.front {
+ background: rgba(0, 0, 0, 0.3);
+ transform: translateZ(50px);
+}
+.back {
+ background: rgba(0, 255, 0, 1);
+ color: black;
+ transform: rotateY(180deg) translateZ(50px);
+}
+.right {
+ background: rgba(196, 0, 0, 0.7);
+ transform: rotateY(90deg) translateZ(50px);
+}
+.left {
+ background: rgba(0, 0, 196, 0.7);
+ transform: rotateY(-90deg) translateZ(50px);
+}
+.top {
+ background: rgba(196, 196, 0, 0.7);
+ transform: rotateX(90deg) translateZ(50px);
+}
+.bottom {
+ background: rgba(196, 0, 196, 0.7);
+ transform: rotateX(-90deg) translateZ(50px);
+}
+
+/* On améliore la disposition */
+section {
+ background-color: #EEE;
+ padding: 10px;
+ font-family: sans-serif;
+ text-align: left;
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+}
+
+{{EmbedLiveSample('Cubes_avec_des_valeurs_communes_pour_perspective-origin', 620, 800)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Transforms 2', '#perspective-origin-property', 'perspective-origin')}} | +{{Spec2('CSS Transforms 2')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.perspective-origin")}}
+ +perspective()La propriété perspective détermine la distance entre le plan d'équation z = 0 et la position de l'utilisateur afin de donner une perspective aux objets positionnés dans l'espace 3D. Chaque élément pour lequel la côte (z) est positif sera plus grand et chaque élément pour lequel z est négatif apparaîtra plus petit. La force de cet effet est déterminée par la valeur de cette propriété.
Les parties des éléments 3D qui se situent derrière l'utilisateur (c'est-à-dire ceux pour lesquels leur coordonnée en z est plus grande que la valeur de la propriété perspective) ne sont pas dessiné.
Par défaut, le point de fuite est placé au centre de l'élément mais il peut être déplacé grâce à la propriété {{cssxref("perspective-origin")}}.
- -Si on utilise cette propriété avec une valeur différente de 0 ou none, cela créera un nouveau contexte d'empilement. Et l'objet joue alors le rôle de bloc englobant pour les éléments qu'il contient et qui ont position: fixed ou position: absolute
/* Valeur avec un mot-clé */ -perspective: none; - -/* Valeurs de longueur */ -/* Type <length> */ -perspective: 20px; -perspective: 3.5em; - -/* Valeurs globales */ -perspective: inherit; -perspective: initial; -perspective: unset; -- -
none<length>0 ou qu'elle est négative, aucune transformation de perspective ne sera appliquée.<table> - <tbody> - <tr> - <th><code>perspective: 250px;</code> - </th> - <th><code>perspective: 350px;</code> - </th> - </tr> - <tr> - <td> - <div class="container"> - <div class="cube pers250"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> - </td> - <td> - <div class="container"> - <div class="cube pers350"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> - </td> - </tr> - <tr> - <th><code>perspective: 500px;</code> - </th> - <th><code>perspective: 650px;</code> - </th> - </tr> - <tr> - <td> - <div class="container"> - <div class="cube pers500"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </div> - </td> - <td> - <div class="container"> - <div class="cube pers650"> - <div class="face front">1</div> - <div class="face back">2</div> - <div class="face right">3</div> - <div class="face left">4</div> - <div class="face top">5</div> - <div class="face bottom">6</div> - </div> - </td> - </tr> - </tbody> -</table>- -
/* Des classes pour les différentes valeurs */
-.pers250 {
- perspective: 250px;
-}
-.pers350 {
- perspective: 350px;
-}
-.pers500 {
- perspective: 500px;
-}
-.pers650 {
- perspective: 650px;
-}
-
-/* On définit le div pour le conteneur, */
-/* le cube, ainsi qu'une face générique */
- .container {
- width: 200px;
- height: 200px;
- margin: 75px 0 0 75px;
- border: none;
-}
-
-.cube {
- width: 100%;
- height: 100%;
- backface-visibility: visible;
- perspective-origin: 150% 150%;
- transform-style: preserve-3d;
-}
-
-.face {
- display: block;
- position: absolute;
- width: 100px;
- height: 100px;
- border: none;
- line-height: 100px;
- font-family: sans-serif;
- font-size: 60px;
- color: white;
- text-align: center;
-}
-
-/* On définit chaque face en fonction de sa direction */
- .front {
- background: rgba(0, 0, 0, 0.3);
- transform: translateZ(50px);
-}
-
-.back {
- background: rgba(0, 255, 0, 1);
- color: black;
- transform: rotateY(180deg) translateZ(50px);
-}
-
-.right {
- background: rgba(196, 0, 0, 0.7);
- transform: rotateY(90deg) translateZ(50px);
-}
-
-.left {
- background: rgba(0, 0, 196, 0.7);
- transform: rotateY(-90deg) translateZ(50px);
-}
-
-.top {
- background: rgba(196, 196, 0, 0.7);
- transform: rotateX(90deg) translateZ(50px);
-}
-
-.bottom {
- background: rgba(196, 0, 196, 0.7);
- transform: rotateX(-90deg) translateZ(50px);
-}
-
-/* On améliore légèrement le tableau */
-th, p, td {
- background-color: #EEEEEE;
- padding: 10px;
- font-family: sans-serif;
- text-align: left;
-}
-
-{{EmbedLiveSample('Trois_cubes', 660, 700)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{Specname('CSS Transforms 2', '#propdef-perspective', 'perspective')}} | -{{Spec2('CSS Transforms 2')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.perspective")}}
- -La propriété perspective détermine la distance entre le plan d'équation z = 0 et la position de l'utilisateur afin de donner une perspective aux objets positionnés dans l'espace 3D. Chaque élément pour lequel la côte (z) est positif sera plus grand et chaque élément pour lequel z est négatif apparaîtra plus petit. La force de cet effet est déterminée par la valeur de cette propriété.
Les parties des éléments 3D qui se situent derrière l'utilisateur (c'est-à-dire ceux pour lesquels leur coordonnée en z est plus grande que la valeur de la propriété perspective) ne sont pas dessiné.
Par défaut, le point de fuite est placé au centre de l'élément mais il peut être déplacé grâce à la propriété {{cssxref("perspective-origin")}}.
+ +Si on utilise cette propriété avec une valeur différente de 0 ou none, cela créera un nouveau contexte d'empilement. Et l'objet joue alors le rôle de bloc englobant pour les éléments qu'il contient et qui ont position: fixed ou position: absolute
/* Valeur avec un mot-clé */ +perspective: none; + +/* Valeurs de longueur */ +/* Type <length> */ +perspective: 20px; +perspective: 3.5em; + +/* Valeurs globales */ +perspective: inherit; +perspective: initial; +perspective: unset; ++ +
none<length>0 ou qu'elle est négative, aucune transformation de perspective ne sera appliquée.<table> + <tbody> + <tr> + <th><code>perspective: 250px;</code> + </th> + <th><code>perspective: 350px;</code> + </th> + </tr> + <tr> + <td> + <div class="container"> + <div class="cube pers250"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> + </td> + <td> + <div class="container"> + <div class="cube pers350"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> + </td> + </tr> + <tr> + <th><code>perspective: 500px;</code> + </th> + <th><code>perspective: 650px;</code> + </th> + </tr> + <tr> + <td> + <div class="container"> + <div class="cube pers500"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </div> + </td> + <td> + <div class="container"> + <div class="cube pers650"> + <div class="face front">1</div> + <div class="face back">2</div> + <div class="face right">3</div> + <div class="face left">4</div> + <div class="face top">5</div> + <div class="face bottom">6</div> + </div> + </td> + </tr> + </tbody> +</table>+ +
/* Des classes pour les différentes valeurs */
+.pers250 {
+ perspective: 250px;
+}
+.pers350 {
+ perspective: 350px;
+}
+.pers500 {
+ perspective: 500px;
+}
+.pers650 {
+ perspective: 650px;
+}
+
+/* On définit le div pour le conteneur, */
+/* le cube, ainsi qu'une face générique */
+ .container {
+ width: 200px;
+ height: 200px;
+ margin: 75px 0 0 75px;
+ border: none;
+}
+
+.cube {
+ width: 100%;
+ height: 100%;
+ backface-visibility: visible;
+ perspective-origin: 150% 150%;
+ transform-style: preserve-3d;
+}
+
+.face {
+ display: block;
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ border: none;
+ line-height: 100px;
+ font-family: sans-serif;
+ font-size: 60px;
+ color: white;
+ text-align: center;
+}
+
+/* On définit chaque face en fonction de sa direction */
+ .front {
+ background: rgba(0, 0, 0, 0.3);
+ transform: translateZ(50px);
+}
+
+.back {
+ background: rgba(0, 255, 0, 1);
+ color: black;
+ transform: rotateY(180deg) translateZ(50px);
+}
+
+.right {
+ background: rgba(196, 0, 0, 0.7);
+ transform: rotateY(90deg) translateZ(50px);
+}
+
+.left {
+ background: rgba(0, 0, 196, 0.7);
+ transform: rotateY(-90deg) translateZ(50px);
+}
+
+.top {
+ background: rgba(196, 196, 0, 0.7);
+ transform: rotateX(90deg) translateZ(50px);
+}
+
+.bottom {
+ background: rgba(196, 0, 196, 0.7);
+ transform: rotateX(-90deg) translateZ(50px);
+}
+
+/* On améliore légèrement le tableau */
+th, p, td {
+ background-color: #EEEEEE;
+ padding: 10px;
+ font-family: sans-serif;
+ text-align: left;
+}
+
+{{EmbedLiveSample('Trois_cubes', 660, 700)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{Specname('CSS Transforms 2', '#propdef-perspective', 'perspective')}} | +{{Spec2('CSS Transforms 2')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.perspective")}}
+ +La propriété raccourcie place-content permet de définir les valeurs des propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}. Elle peut être utilisée pour n'importe quelle méthode de disposition (boîtes flexibles, grilles, etc;) qui prend en charge ces deux propriétés d'alignement.
/* Valeurs décrivant l'alignement */ -/* Note : align-content ne gère pas les valeurs left et right */ -place-content: center start; -place-content: start center; -place-content: end left; -place-content: flex-start center; -place-content: flex-end center; - -/* Valeurs décrivant l'alignement par rapport à la ligne de base */ -/* Note : justify-content ne gère pas les valeurs liées à la ligne de base */ -place-content: baseline center; -place-content: first baseline space-evenly; -place-content: last baseline right; - -/* Valeurs décrivant la distribution de l'alignment */ -place-content: space-between space-evenly; -place-content: space-around space-evenly; -place-content: space-evenly stretch; -place-content: stretch space-evenly; - -/* Valeurs globales */ -place-content: inherit; -place-content: initial; -place-content: unset;- -
La première valeur utilisée sera celle qui correspond à {{cssxref("align-content")}} et la seconde valeur correspondra à {{cssxref("justify-content")}}. Si la deuxième valeur n'est pas présente, la première valeur indiquée sera également utilisée pour justify-content.
Attention : Si une seule valeur est fournie et que celle-ci est invalide pour l'une ou l'autre des propriétés détaillées, c'est la déclaration entière qui sera invalide.
-startendflex-startstart.flex-endend.centerleftstart.rightstart.space-betweenbaseline
- first baselinelast baselinefirst baseline is start, the one for last baseline is end.space-aroundspace-evenlystretch#container {
- display: flex;
- height:240px;
- width: 240px;
- flex-wrap: wrap;
- background-color: #8c8c8c;
- writing-mode: horizontal-tb; /* Cette valeur peut être modifiée dans l'exemple */
- direction: ltr; /* Cette valeur peut être modifiée dans l'exemple */
- place-content: flex-end center; /* Cette valeur peut être modifiée dans l'exemple */
-}
-
-div > div {
- border: 2px solid #8c8c8c;
- width: 50px;
- background-color: #a0c8ff;
-}
-
-.small {
- font-size: 12px;
- height: 40px;
-}
-
-.large {
- font-size: 14px;
- height: 50px;
-}
-
-
-<div id="container"> - <div class="small">Lorem</div> - <div class="small">Lorem<br/>ipsum</div> - <div class="large">Lorem</div> - <div class="large">Lorem<br/>impsum</div> - <div class="large"></div> - <div class="large"></div> -</div> -- -
<code>writing-mode:</code><select id="writingMode"> - <option value="horizontal-tb" selected>horizontal-tb</option> - <option value="vertical-rl">vertical-rl</option> - <option value="vertical-lr">vertical-lr</option> - <option value="sideways-rl">sideways-rl</option> - <option value="sideways-lr">sideways-lr</option> -</select><code>;</code><br/> -<code>direction:</code><select id="direction"> - <option value="ltr" selected>ltr</option> - <option value="rtl">rtl</option> -</select><code>;</code><br/> -<code>place-content:</code><select id="alignContentAlignment"> - <option value="normal">normal</option> - <option value="first baseline">first baseline</option> - <option value="last baseline">last baseline</option> - <option value="baseline">baseline</option> - <option value="space-between">space-between</option> - <option value="space-around">space-around</option> - <option value="space-evenly" selected>space-evenly</option> - <option value="stretch">stretch</option> - <option value="center">center</option> - <option value="start">start</option> - <option value="end">end</option> - <option value="flex-start">flex-start</option> - <option value="flex-end">flex-end</option> -</select> -<select id="justifyContentAlignment"> - <option value="normal">normal</option> - <option value="space-between">space-between</option> - <option value="space-around">space-around</option> - <option value="space-evenly">space-evenly</option> - <option value="stretch">stretch</option> - <option value="center" selected>center</option> - <option value="start">start</option> - <option value="end">end</option> - <option value="flex-start">flex-start</option> - <option value="flex-end">flex-end</option> - <option value="left">left</option> - <option value="right">right</option> -</select><code>;</code> -- - - -
{{EmbedLiveSample("Exemples", "370", "300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-place-content", "place content")}} | -{{Spec2("CSS3 Box Alignment")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.place-content")}}
- -{{Compat("css.properties.place-content.flex_context")}}
- -{{Compat("css.properties.place-content.grid_context")}}
- -La propriété raccourcie place-content permet de définir les valeurs des propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}. Elle peut être utilisée pour n'importe quelle méthode de disposition (boîtes flexibles, grilles, etc;) qui prend en charge ces deux propriétés d'alignement.
/* Valeurs décrivant l'alignement */ +/* Note : align-content ne gère pas les valeurs left et right */ +place-content: center start; +place-content: start center; +place-content: end left; +place-content: flex-start center; +place-content: flex-end center; + +/* Valeurs décrivant l'alignement par rapport à la ligne de base */ +/* Note : justify-content ne gère pas les valeurs liées à la ligne de base */ +place-content: baseline center; +place-content: first baseline space-evenly; +place-content: last baseline right; + +/* Valeurs décrivant la distribution de l'alignment */ +place-content: space-between space-evenly; +place-content: space-around space-evenly; +place-content: space-evenly stretch; +place-content: stretch space-evenly; + +/* Valeurs globales */ +place-content: inherit; +place-content: initial; +place-content: unset;+ +
La première valeur utilisée sera celle qui correspond à {{cssxref("align-content")}} et la seconde valeur correspondra à {{cssxref("justify-content")}}. Si la deuxième valeur n'est pas présente, la première valeur indiquée sera également utilisée pour justify-content.
Attention : Si une seule valeur est fournie et que celle-ci est invalide pour l'une ou l'autre des propriétés détaillées, c'est la déclaration entière qui sera invalide.
+startendflex-startstart.flex-endend.centerleftstart.rightstart.space-betweenbaseline
+ first baselinelast baselinefirst baseline is start, the one for last baseline is end.space-aroundspace-evenlystretch#container {
+ display: flex;
+ height:240px;
+ width: 240px;
+ flex-wrap: wrap;
+ background-color: #8c8c8c;
+ writing-mode: horizontal-tb; /* Cette valeur peut être modifiée dans l'exemple */
+ direction: ltr; /* Cette valeur peut être modifiée dans l'exemple */
+ place-content: flex-end center; /* Cette valeur peut être modifiée dans l'exemple */
+}
+
+div > div {
+ border: 2px solid #8c8c8c;
+ width: 50px;
+ background-color: #a0c8ff;
+}
+
+.small {
+ font-size: 12px;
+ height: 40px;
+}
+
+.large {
+ font-size: 14px;
+ height: 50px;
+}
+
+
+<div id="container"> + <div class="small">Lorem</div> + <div class="small">Lorem<br/>ipsum</div> + <div class="large">Lorem</div> + <div class="large">Lorem<br/>impsum</div> + <div class="large"></div> + <div class="large"></div> +</div> ++ +
<code>writing-mode:</code><select id="writingMode"> + <option value="horizontal-tb" selected>horizontal-tb</option> + <option value="vertical-rl">vertical-rl</option> + <option value="vertical-lr">vertical-lr</option> + <option value="sideways-rl">sideways-rl</option> + <option value="sideways-lr">sideways-lr</option> +</select><code>;</code><br/> +<code>direction:</code><select id="direction"> + <option value="ltr" selected>ltr</option> + <option value="rtl">rtl</option> +</select><code>;</code><br/> +<code>place-content:</code><select id="alignContentAlignment"> + <option value="normal">normal</option> + <option value="first baseline">first baseline</option> + <option value="last baseline">last baseline</option> + <option value="baseline">baseline</option> + <option value="space-between">space-between</option> + <option value="space-around">space-around</option> + <option value="space-evenly" selected>space-evenly</option> + <option value="stretch">stretch</option> + <option value="center">center</option> + <option value="start">start</option> + <option value="end">end</option> + <option value="flex-start">flex-start</option> + <option value="flex-end">flex-end</option> +</select> +<select id="justifyContentAlignment"> + <option value="normal">normal</option> + <option value="space-between">space-between</option> + <option value="space-around">space-around</option> + <option value="space-evenly">space-evenly</option> + <option value="stretch">stretch</option> + <option value="center" selected>center</option> + <option value="start">start</option> + <option value="end">end</option> + <option value="flex-start">flex-start</option> + <option value="flex-end">flex-end</option> + <option value="left">left</option> + <option value="right">right</option> +</select><code>;</code> ++ + + +
{{EmbedLiveSample("Exemples", "370", "300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-place-content", "place content")}} | +{{Spec2("CSS3 Box Alignment")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.place-content")}}
+ +{{Compat("css.properties.place-content.flex_context")}}
+ +{{Compat("css.properties.place-content.grid_context")}}
+ +La propriété raccourcie place-items définit les valeurs utilisées pour les propriétés {{cssxref("align-items")}} et {{cssxref("justify-items")}}. La première valeur fournie est utilisée pour align-items et la seconde est utilisée pour justify-items. S'il n'y a pas de seconde valeur fournie, c'est la première qui est reprise pour justify-items.
/* Valeurs avec un mot-clé */ -place-items: auto center; -place-items: normal start; - -/* Alignement géométrique */ -place-items: center normal; -place-items: start auto; -place-items: end normal; -place-items: self-start auto; -place-items: self-end normal; -place-items: flex-start auto; -place-items: flex-end normal; -place-items: left auto; -place-items: right normal; - -/* Alignement par rapport à la ligne de base */ -place-items: baseline normal; -place-items: first baseline auto; -place-items: last baseline normal; -place-items: stretch auto; - -/* Valeurs globales */ -place-items: inherit; -place-items: initial; -place-items: unset; -- -
autojustify-items pour l'élément parent sauf si l'élément n'a pas de parent ou qu'il est positionné de façon absolue auquel cas auto sera synonyme de normal.normalstart.start pour les éléments remplacés ou comme stretch pour tous les autres éléments.stretch sauf pour les éléments qui ont des dimensions intrinsèques ou des contraintes de ratio, auquel cas cette valeur est synonyme de start.startendflex-startstart.flex-endend.self-startself-endcenterleftstart.rightstart.baseline
- first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretch#container {
- height:200px;
- width: 240px;
- place-items: center; /* Cette valeur peut être modifiée dans l'exemple */
- background-color: #8c8c8c;
-}
-
-.flex {
- display: flex;
- flex-wrap: wrap;
-}
-
-.grid {
- display: grid;
- grid-template-columns: repeat(auto-fill, 50px);
-}
-
-
-
-
-
-
-
-
-{{EmbedLiveSample("Exemples", 260, 290)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#place-items-property", "place-items")}} | -{{Spec2('CSS3 Box Alignment')}} | -Définition initiale. | -
{{CSSInfo}}
- -{{Compat("css.properties.place-items.flex_context")}}
- -{{Compat("css.properties.place-items.grid_context")}}
- -La propriété raccourcie place-items définit les valeurs utilisées pour les propriétés {{cssxref("align-items")}} et {{cssxref("justify-items")}}. La première valeur fournie est utilisée pour align-items et la seconde est utilisée pour justify-items. S'il n'y a pas de seconde valeur fournie, c'est la première qui est reprise pour justify-items.
/* Valeurs avec un mot-clé */ +place-items: auto center; +place-items: normal start; + +/* Alignement géométrique */ +place-items: center normal; +place-items: start auto; +place-items: end normal; +place-items: self-start auto; +place-items: self-end normal; +place-items: flex-start auto; +place-items: flex-end normal; +place-items: left auto; +place-items: right normal; + +/* Alignement par rapport à la ligne de base */ +place-items: baseline normal; +place-items: first baseline auto; +place-items: last baseline normal; +place-items: stretch auto; + +/* Valeurs globales */ +place-items: inherit; +place-items: initial; +place-items: unset; ++ +
autojustify-items pour l'élément parent sauf si l'élément n'a pas de parent ou qu'il est positionné de façon absolue auquel cas auto sera synonyme de normal.normalstart.start pour les éléments remplacés ou comme stretch pour tous les autres éléments.stretch sauf pour les éléments qui ont des dimensions intrinsèques ou des contraintes de ratio, auquel cas cette valeur est synonyme de start.startendflex-startstart.flex-endend.self-startself-endcenterleftstart.rightstart.baseline
+ first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretch#container {
+ height:200px;
+ width: 240px;
+ place-items: center; /* Cette valeur peut être modifiée dans l'exemple */
+ background-color: #8c8c8c;
+}
+
+.flex {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 50px);
+}
+
+
+
+
+
+
+
+
+{{EmbedLiveSample("Exemples", 260, 290)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#place-items-property", "place-items")}} | +{{Spec2('CSS3 Box Alignment')}} | +Définition initiale. | +
{{CSSInfo}}
+ +{{Compat("css.properties.place-items.flex_context")}}
+ +{{Compat("css.properties.place-items.grid_context")}}
+ +La propriété place-self est une propriété raccourcie qui permet de paramétrer les valeurs des propriétés {{cssxref("align-self")}} et {{cssxref("justify-self")}}. La première valeur sera utilisée pour align-self et la seconde pour justify-self. S'il n'y a pas de seconde valeur, la première sera également utilisée pour justify-self.
/* Valeurs avec un mot-clé */ -place-self: auto center; -place-self: normal start; - -/* Alignement géométrique */ -place-self: center normal; -place-self: start auto; -place-self: end normal; -place-self: self-start auto; -place-self: self-end normal; -place-self: flex-start auto; -place-self: flex-end normal; -place-self: left auto; -place-self: right normal; - -/* Alignement relatif à la ligne de base */ -place-self: baseline normal; -place-self: first baseline auto; -place-self: last baseline normal; -place-self: stretch auto; - -/* Valeurs globales */ -place-self: inherit; -place-self: initial; -place-self: unset;- -
autonormalstart pour les boîtes des éléments remplacés ou comme stretch pour les autres boîtes positionnées de façon absolue.stretchstretch, sauf pour les boîtes qui ont des dimensions intrinsèques, dans ce cas, il est synonyme de start.self-startself-endflex-startflex-endcenterbaseline
- first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretch| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#place-self-property", "place-self")}} | -{{Spec2("CSS3 Box Alignment")}} | -Définition initiale. | -
{{CSSInfo}}
- -{{Compat("css.properties.place-self.flex_context")}}
- -{{Compat("css.properties.place-self.grid_context")}}
- -La propriété place-self est une propriété raccourcie qui permet de paramétrer les valeurs des propriétés {{cssxref("align-self")}} et {{cssxref("justify-self")}}. La première valeur sera utilisée pour align-self et la seconde pour justify-self. S'il n'y a pas de seconde valeur, la première sera également utilisée pour justify-self.
/* Valeurs avec un mot-clé */ +place-self: auto center; +place-self: normal start; + +/* Alignement géométrique */ +place-self: center normal; +place-self: start auto; +place-self: end normal; +place-self: self-start auto; +place-self: self-end normal; +place-self: flex-start auto; +place-self: flex-end normal; +place-self: left auto; +place-self: right normal; + +/* Alignement relatif à la ligne de base */ +place-self: baseline normal; +place-self: first baseline auto; +place-self: last baseline normal; +place-self: stretch auto; + +/* Valeurs globales */ +place-self: inherit; +place-self: initial; +place-self: unset;+ +
autonormalstart pour les boîtes des éléments remplacés ou comme stretch pour les autres boîtes positionnées de façon absolue.stretchstretch, sauf pour les boîtes qui ont des dimensions intrinsèques, dans ce cas, il est synonyme de start.self-startself-endflex-startflex-endcenterbaseline
+ first baselinelast baselinefirst baseline n'est pas prise en charge, la valeur correspondra à start, si last baseline n'est pas prise en charge, la valeur correspondra à end.stretch| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#place-self-property", "place-self")}} | +{{Spec2("CSS3 Box Alignment")}} | +Définition initiale. | +
{{CSSInfo}}
+ +{{Compat("css.properties.place-self.flex_context")}}
+ +{{Compat("css.properties.place-self.grid_context")}}
+ +La propriété CSS pointer-events permet aux auteurs de contrôler les circonstances dans lesquelles un élément graphique peut être une cible, c'est-à-dire recevoir des événements de la souris, du pointeur ou du doigt.
Lorsque cette propriété n'est pas définie, pour le contenu SVG, on aura le même effet qu'avec la valeur visiblePainted. Lorsqu'on utilise la valeur none, cela indique que l'élément ne peut pas recevoir d'événement de pointeur mais cela indique également qu'on peut passer « au travers » de l'élément pour atteindre des contrôles qui pourraient être en-dessous/derrière.
/* Valeurs avec un mot-clé */ -pointer-events: auto; -pointer-events: none; -pointer-events: visiblePainted; /* SVG uniquement */ -pointer-events: visibleFill; /* SVG uniquement */ -pointer-events: visibleStroke; /* SVG uniquement */ -pointer-events: visible; /* SVG uniquement */ -pointer-events: painted; /* SVG uniquement */ -pointer-events: fill; /* SVG uniquement */ -pointer-events: stroke; /* SVG uniquement */ -pointer-events: all; /* SVG uniquement */ - -/* Valeurs globales */ -pointer-events: inherit; -pointer-events: initial; -pointer-events: unset; -- -
La propriété pointer-events est définie grâce à un mot-clé parmi ceux de la liste suivante.
autopointer-events n'était pas spécifiée. Pour le contenu SVG, cette valeur et la valeur visiblePainted ont le même effet.nonepointer-events. Sous ces circonstances, les événements déclencheront les gestionnaires d'événement sur l'élément parent jusqu'à/depuis l'élément descendant lors de la phase de capture/bouillonnement de l'événement.visiblePaintedvisibility vaut visible et lorsque le pointeur est au-dessus de l'intérieur de l'élément et que la valeur de la propriété fill n'est pas none ou lorsque le pointeur de la souris est au-dessus du contour de l'élément et que la valeur de la propriété stroke n'est pas none.visibleFillvisibility vaut visible et lorsque le pointeur est au-dessus de l'intérieur de l'élément. La valeur de la propriété fill n'a pas d'impact sur le traitement des événements.visibleStrokevisibility vaut visible et lorsque le pointeur de la souris est au-dessus du contour de l'élément. La valeur de la propriété stroke n'a pas d'impact sur le traitement des événements.visiblevisibility vaut visible et lorsque le pointeur est au-dessus de l'intérieur de l'élément ou lorsque le pointeur de la souris est au-dessus du contour de l'élément. Les valeurs de fill et stroke n'ont pas d'impact sur le traitement des événements.paintedfill n'est pas none ou lorsque le pointeur de la souris est au-dessus du contour de l'élément et que la valeur de la propriété stroke n'est pas none. La valeur de visibility n'a pas d'impact sur le traitement des événements.fillfill et de visibility n'ont pas d'impact sur le traitement des événements.strokestroke et de visibility n'ont pas d'impact sur le traitement des événements.allfill, stroke et de visibility n'ont pas d'impact sur le traitement des événements.Dans l'exemple qui suit, on rend le lien http://exemple.com inactif.
- -<ul> - <li><a href="https://developer.mozilla.org">MDN</a></li> - <li><a href="http://exemple.com">exemple.com</a></li> -</ul>- -
a[href="http://exemple.com"] {
- pointer-events: none;
-}
-
-L'utilisation de pointer-events peut empêcher que des événements soient directement déclenchés sur l'élément avec les pointeurs. Cela ne signifie en aucun cas que les gestionnaires d'événement de cet élément ne pourront pas être déclenchés ! Si l'un des éléments descendants possède une valeur explicite de pointer-events qui lui permet de recevoir des événements de pointeur, les événements qui parcourent les ancêtres pourront déclencher les gestionnaires d'événements associés. Bien entendu, tout pointage, qui a lieu sur un endroit de l'écran qui est couvert par le parent mais pas par l'élément descendant, ne déclenchera d'événement. L'événement passera au travers du parent et ciblera le contenu qui est en-dessous.
Les éléments avec pointer-events: none continueront de recevoir le focus via la navigation au clavier avec la touche Tab.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('SVG1.1', 'interact.html#PointerEventsProperty', 'pointer-events')}} | -{{Spec2('SVG1.1')}} | -- |
| {{SpecName('SVG2', 'interact.html#PointerEventsProperty', 'pointer-events')}} | -{{Spec2('SVG2')}} | -- |
L'extension de cette propriété aux éléments HTML, bien qu'elle fut présente dans les premiers brouillons de la spécification CSS Basic User Interface Module Level 3, a été remise à la spécification de niveau 4.
- -{{cssinfo}}
- -{{Compat("css.properties.pointer-events")}}
- -pointer-events: none (en anglais)La propriété CSS pointer-events permet aux auteurs de contrôler les circonstances dans lesquelles un élément graphique peut être une cible, c'est-à-dire recevoir des événements de la souris, du pointeur ou du doigt.
Lorsque cette propriété n'est pas définie, pour le contenu SVG, on aura le même effet qu'avec la valeur visiblePainted. Lorsqu'on utilise la valeur none, cela indique que l'élément ne peut pas recevoir d'événement de pointeur mais cela indique également qu'on peut passer « au travers » de l'élément pour atteindre des contrôles qui pourraient être en-dessous/derrière.
/* Valeurs avec un mot-clé */ +pointer-events: auto; +pointer-events: none; +pointer-events: visiblePainted; /* SVG uniquement */ +pointer-events: visibleFill; /* SVG uniquement */ +pointer-events: visibleStroke; /* SVG uniquement */ +pointer-events: visible; /* SVG uniquement */ +pointer-events: painted; /* SVG uniquement */ +pointer-events: fill; /* SVG uniquement */ +pointer-events: stroke; /* SVG uniquement */ +pointer-events: all; /* SVG uniquement */ + +/* Valeurs globales */ +pointer-events: inherit; +pointer-events: initial; +pointer-events: unset; ++ +
La propriété pointer-events est définie grâce à un mot-clé parmi ceux de la liste suivante.
autopointer-events n'était pas spécifiée. Pour le contenu SVG, cette valeur et la valeur visiblePainted ont le même effet.nonepointer-events. Sous ces circonstances, les événements déclencheront les gestionnaires d'événement sur l'élément parent jusqu'à/depuis l'élément descendant lors de la phase de capture/bouillonnement de l'événement.visiblePaintedvisibility vaut visible et lorsque le pointeur est au-dessus de l'intérieur de l'élément et que la valeur de la propriété fill n'est pas none ou lorsque le pointeur de la souris est au-dessus du contour de l'élément et que la valeur de la propriété stroke n'est pas none.visibleFillvisibility vaut visible et lorsque le pointeur est au-dessus de l'intérieur de l'élément. La valeur de la propriété fill n'a pas d'impact sur le traitement des événements.visibleStrokevisibility vaut visible et lorsque le pointeur de la souris est au-dessus du contour de l'élément. La valeur de la propriété stroke n'a pas d'impact sur le traitement des événements.visiblevisibility vaut visible et lorsque le pointeur est au-dessus de l'intérieur de l'élément ou lorsque le pointeur de la souris est au-dessus du contour de l'élément. Les valeurs de fill et stroke n'ont pas d'impact sur le traitement des événements.paintedfill n'est pas none ou lorsque le pointeur de la souris est au-dessus du contour de l'élément et que la valeur de la propriété stroke n'est pas none. La valeur de visibility n'a pas d'impact sur le traitement des événements.fillfill et de visibility n'ont pas d'impact sur le traitement des événements.strokestroke et de visibility n'ont pas d'impact sur le traitement des événements.allfill, stroke et de visibility n'ont pas d'impact sur le traitement des événements.Dans l'exemple qui suit, on rend le lien http://exemple.com inactif.
+ +<ul> + <li><a href="https://developer.mozilla.org">MDN</a></li> + <li><a href="http://exemple.com">exemple.com</a></li> +</ul>+ +
a[href="http://exemple.com"] {
+ pointer-events: none;
+}
+
+L'utilisation de pointer-events peut empêcher que des événements soient directement déclenchés sur l'élément avec les pointeurs. Cela ne signifie en aucun cas que les gestionnaires d'événement de cet élément ne pourront pas être déclenchés ! Si l'un des éléments descendants possède une valeur explicite de pointer-events qui lui permet de recevoir des événements de pointeur, les événements qui parcourent les ancêtres pourront déclencher les gestionnaires d'événements associés. Bien entendu, tout pointage, qui a lieu sur un endroit de l'écran qui est couvert par le parent mais pas par l'élément descendant, ne déclenchera d'événement. L'événement passera au travers du parent et ciblera le contenu qui est en-dessous.
Les éléments avec pointer-events: none continueront de recevoir le focus via la navigation au clavier avec la touche Tab.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('SVG1.1', 'interact.html#PointerEventsProperty', 'pointer-events')}} | +{{Spec2('SVG1.1')}} | ++ |
| {{SpecName('SVG2', 'interact.html#PointerEventsProperty', 'pointer-events')}} | +{{Spec2('SVG2')}} | ++ |
L'extension de cette propriété aux éléments HTML, bien qu'elle fut présente dans les premiers brouillons de la spécification CSS Basic User Interface Module Level 3, a été remise à la spécification de niveau 4.
+ +{{cssinfo}}
+ +{{Compat("css.properties.pointer-events")}}
+ +pointer-events: none (en anglais)La propriété position définit la façon dont un élément est positionné dans un document. Les propriétés {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} et {{cssxref("left")}} déterminent l'emplacement final de l'élément positionné.
relative, absolute, fixed ou sticky.relative. Dans ce cas, les propriétés {{cssxref("top")}} ou {{cssxref("bottom")}} indiquent le décalage vertical à appliquer et {{cssxref("left")}} ou {{cssxref("right")}} indiquent le décalage horizontal.absolute ou fixed. Dans ce cas, les propriétés {{cssxref("top")}}, {{cssxref("bottom")}}, {{cssxref("right")}} et {{cssxref("left")}} indiquent les distances entre les bords de l'élément et les bords du bloc englobant (c'est-à-dire l'ancêtre par rapport auquel l'élément est positionné). Si l'élément possède des marges, elles sont ajoutées aux décalages.sticky. Un tel élément se comporte comme un élément positionné de façon relative jusqu'à ce que son bloc englobant dépasse un seuil donné (par exemple fourni par la valeur de {{cssxref("top")}}) au sein du conteneur puis il se comporte ensuite comme un élément fixe jusqu'à atteindre le bord opposé du bloc englobant.La plupart du temps, les éléments positionnés de façon absolue ont leurs propriétés {{cssxref("height")}} et {{cssxref("width")}} qui valent auto afin que le contenu ait suffisamment d'espace. Toutefois, les éléments positionnés de façon absolue et qui ne sont pas des éléments remplacés peuvent remplir l'espace vertical en utilisant {{cssxref("top")}} et {{cssxref("bottom")}} tout en laissant {{cssxref("height")}} indéfini (c'est-à-dire avec la valeur auto). On pourra faire de même pour l'espace horizontal avec les propriétés {{cssxref("left")}} et {{cssxref("right")}}.
Sauf dans le cas précédemment énoncé des éléments positionnés de façon absolue et qui remplissent l'espace :
- -top et bottom sont tous les deux définis (enfin, s'ils ne valent pas auto), c'est top qui aura la prioritéleft et right sont tous les deux définis, c'est left qui aura la priorité si la direction du texte est de gauche à droite (LTR) et right qui aura la priorité si la direction du texte est de droite à gauche (RTL) (par exemple en perse, arabe, hébreu)./* Valeurs avec un mot-clé */ -position: static; -position: relative; -position: absolute; -position: fixed; -position: sticky; - -/* Valeurs globales*/ -position: inherit; -position: initial; -position: unset; -- -
La propriété position peut être définie avec l'un des mots-clés de la liste suivante.
staticrelativetop, right, bottom et left. Le décalage n'a pas d'impact sur la position des éléments. Aussi, l'espace fourni à l'élément sur la page est le même que celui fourni avec static. Cette valeur crée un nouveau contexte d'empilement lorsque z-index ne vaut pas auto. L'effet de cette valeur n'est pas défini pour les éléments table-*-group, table-row, table-column, table-cell et table-caption.absolutetop, right, bottom et left. Cette valeur crée un nouveau contexte d'empilement lorsque z-index ne vaut pas auto. Les éléments positionnés de façon absolue peuvent avoir des marges, ces marges ne fusionnent pas avec les autres marges.fixednone (voir la spécification sur les transformations CSS) ; dans ce cas, c'est l'élément ancêtre qui joue le rôle de bloc englobant. Cela empêche le défilement lorsque la page est parcourue (ou lors de l'impression, le positionne à cette position fixe pour chaque page). Cette valeur crée toujours un nouveau contexte d'empilement. Certains incohérences existent entre les navigateurs quant au rôle de perspective et filter pour la définition du bloc englobant. La valeur finale de l'élément est déterminée par les valeurs de top, right, bottom et left. Cette valeur crée toujours un nouveau contexte d'empilement. Pour les documents imprimés, cela se traduit par le placement de l'élément au même endroit pour chacune des pages.stickytop, right, bottom et left. Dans tous les cas, y compris avec les éléments table, cela n'affecte pas la position des autres éléments. Cette valeur entraîne toujours la création d'un nouveau contexte d'empilement. On notera qu'un tel élément « adhèrera » à l'ancêtre le plus proche qui dispose d'un mécanisme de défilement (c'est-à-dire quand overflow vaut hidden, scroll, auto ou overlay) même si cet ancêtre n'est pas nécessairement l'ancêtre de défilement le plus proche : cette valeur ne fonctionnera pas dans un élément pour lequel la propriété vaut overflow: hidden ou auto (cf.: cette issue GitHub).<div class="box" id="un">Un</div> -<div class="box" id="deux">Deux</div> -<div class="box" id="trois">Trois</div> -<div class="box" id="quatre">Quatre</div> -- -
.box {
- display: inline-block;
- background: red;
- width: 100px;
- height: 100px;
- color: white;
-}
-
-#deux {
- position: relative;
- top: 20px;
- left: 20px;
-}
-
-
-Dans cet exemple, on voit comment les autres éléments sont positionnés, comme si « Deux » prenait l'espace de sa position normale.
- -{{EmbedLiveSample('Positionnement_relatif', '600px', '200px')}}
- -Les éléments qui sont positionnés de façon relatives sont toujours pris en compte dans le flux normal des éléments du document. En revanche, les éléments positionnés de façon absolue sont retirés du flux et ne prennent donc plus d'espace lorsqu'il s'agit de positionner les autres éléments. Un élément positionné de façon absolu est positionné par rapport à son plus proche ancêtre positionné. S'il n'y a pas de tel ancêtre, c'est le conteneur initial, le bloc englobant la racine du document, qui est utilisé (voir la définition du W3C).
- -Dans l'exemple qui suit, on n'a pas d'ancêtre positionné et la boîte « Trois » est positionnée de façon absolue par rapport à l'ancêtre immédiat (l'élément <body> de l'iframe générée ici) :
<h1>Positionnement absolu</h1> -<p>Un élément de bloc simple. Les éléments de bloc adjacents sont sur de nouvelles lignes en-dessous.</p> -<p class="positioned">Par défaut, on occupe 100% de la largeur de l'élément parent et on est aussi grand que notre contenu.</p> -<p>Nous sommes séparés par nos marges (une seule marge en raison de la fusion des marges).</p> -<p>Les éléments <em>inline</em> <span>comme celui-ci</span> et <span>celui-là</span> se situent sur la même ligne avec également les noeuds texte. S'il y a de l'espace sur la même ligne. Les éléments qui dépassent <span>passent à la ligne si possible — comme pour ce texte.</span> ou cette image <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p>- -
body {
- width: 500px;
- margin: 0 auto;
-}
-
-p {
- background: aqua;
- border: 3px solid blue;
- padding: 10px;
- margin: 10px;
-}
-
-span {
- background: red;
- border: 1px solid black;
-}
-
-.positioned {
- position: absolute;
- background: yellow;
- top: 30px;
- left: 30px;
-}
-
-{{EmbedLiveSample('Positionnement_absolu', '100%', 420)}}
- -Le positionnement fixe est semblable au positionnement absolu sauf qu'ici, le bloc englobant correspond au viewport si aucun ancêtre de l'élément ne possède une propriété {{cssxref("transform")}}, {{cssxref("perspective")}} ou {{cssxref("filter")}} qui est différente de none. On utilise souvent ce positionnement pour créer un élément flottant qui reste à la même position, même lorsqu'on fait défiler la page. Dans l'exemple qui suit, la boîte « Un » est fixée à 80 pixels du haut de la page et à 20 pixels du bord gauche.
<div class="outer"> - <p> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam congue tortor eget pulvinar lobortis. - Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam ac dolor augue. - Pellentesque mi mi, laoreet et dolor sit amet, ultrices varius risus. Nam vitae iaculis elit. - Aliquam mollis interdum libero. Sed sodales placerat egestas. Vestibulum ut arcu aliquam purus viverra dictum vel sit amet mi. - Duis nisl mauris, aliquam sit amet luctus eget, dapibus in enim. Sed velit augue, pretium a sem aliquam, congue porttitor tortor. - Sed tempor nisl a lorem consequat, id maximus erat aliquet. Sed sagittis porta libero sed condimentum. - Aliquam finibus lectus nec ante congue rutrum. Curabitur quam quam, accumsan id ultrices ultrices, tempor et tellus. - </p> - <p> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam congue tortor eget pulvinar lobortis. - Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam ac dolor augue. - Pellentesque mi mi, laoreet et dolor sit amet, ultrices varius risus. Nam vitae iaculis elit. - Aliquam mollis interdum libero. Sed sodales placerat egestas. Vestibulum ut arcu aliquam purus viverra dictum vel sit amet mi. - Duis nisl mauris, aliquam sit amet luctus eget, dapibus in enim. Sed velit augue, pretium a sem aliquam, congue porttitor tortor. - Sed tempor nisl a lorem consequat, id maximus erat aliquet. Sed sagittis porta libero sed condimentum. - Aliquam finibus lectus nec ante congue rutrum. Curabitur quam quam, accumsan id ultrices ultrices, tempor et tellus. - </p> - <div class="box" id="un">Un</div> -</div> -- -
.box {
- background: red;
- width: 100px;
- height: 100px;
- margin: 20px;
- color: white;
-}
-#un {
- position: fixed;
- top: 80px;
- left: 10px;
-}
-.outer {
- width: 500px;
- height: 300px;
- overflow: scroll;
- padding-left: 150px;
-}
-
-
-Lorsqu'on regarde le haut de la page, la boîte apparaît en haut à gauche, même après avoir défilé, elle reste à la même place par rapport au viewport :
- -{{EmbedLiveSample('Positionnement_fixe', '800px', '300px')}}
- -Le positionnement adhérent est un mélange de positionnement relatif et de positionnement fixe. L'élément est considéré comme positionné de façon relative, jusqu'à ce qu'un seuil soit franchi. À partir de ce seuil, l'élément est positionné de façon fixe. Par exemple :
- -#un {
- position: sticky;
- top: 10px;
-}
-
-se comportera comme un élément positionné de façon relative jusqu'à ce que le viewport défile au point où l'élément est à moins de 10 pixels du haut. Ensuite, il sera fixé à 10 pixels du haut, jusqu'à ce que le viewport redéfile jusqu'avant ce seuil.
- -Le positionnement adhérent est souvent utilisé pour gérer les niveaux de titre dans les listes alphabétiques. Le titre pour B apparaîtra sous les éléments commençant par A jusqu'à ce que ceux-ci disparaissent de l'écran. Plutôt que de défiler avec le reste de l'écran, la lettre B restera affichée en haut du viewport jusqu'à ce que tous les éléments commençant par B aient défilés sur l'écran (ce sera ensuite le tour de la lettre C et ainsi de suite).
- -Il faut définir un seuil avec au moins {{cssxref("top")}} ou {{cssxref("right")}} ou {{cssxref("bottom")}} ou {{cssxref("left")}} pour que le positionnement adhérent fonctionne comme attendu. Sinon, on ne pourra pas le distinguer du positionnement relatif.
- -<dl> - <div> - <dt>A</dt> - <dd>Andrew W.K.</dd> - <dd>Apparat</dd> - <dd>Arcade Fire</dd> - <dd>At The Drive-In</dd> - <dd>Aziz Ansari</dd> - </div> - <div> - <dt>C</dt> - <dd>Chromeo</dd> - <dd>Common</dd> - <dd>Converge</dd> - <dd>Crystal Castles</dd> - <dd>Cursive</dd> - </div> - <div> - <dt>E</dt> - <dd>Explosions In The Sky</dd> - </div> - <div> - <dt>T</dt> - <dd>Ted Leo & The Pharmacists</dd> - <dd>T-Pain</dd> - <dd>Thrice</dd> - <dd>TV On The Radio</dd> - <dd>Two Gallants</dd> - </div> -</dl> -- -
* {
- box-sizing: border-box;
-}
-dl > div {
- margin: 0;
- padding: 24px 0 0 0;
-}
-
-dt {
- background: #B8C1C8;
- border-bottom: 1px solid #989EA4;
- border-top: 1px solid #717D85;
- color: #FFF;
- font: bold 18px/21px Helvetica, Arial, sans-serif;
- margin: 0;
- padding: 2px 0 0 12px;
- position: -webkit-sticky;
- position: sticky;
- width: 99%;
- top: -1px;
-}
-
-dd {
- font: bold 20px/45px Helvetica, Arial, sans-serif;
- margin: 0;
- padding: 0 0 0 12px;
- white-space: nowrap;
-}
-
-dd + dd {
- border-top: 1px solid #CCC;
-}
-
-
-{{EmbedLiveSample('Positionnement_adhérent_(sticky)', '500px', '300px')}}
- -Il faut s'assurer que les éléments positionnés avec absolute ou fixed ne masquent pas d'autre contenu sur la page lorsqu'on zoome sur la page afin d'augmenter la taille du texte.
Les éléments qui défilent avec du contenu utilisant fixed ou sticky peuvent entraîner des problèmes de performance et d'accessibilité. Lorsque l'utilisateur fait défiler le contenu, le navigateur doit « repeindre » le contenu adhérant ou fixé à un nouvel emplacement. Selon le contenu qui doit être repeint, les performances du navigateur et celles de l'appareil, il est possible que le contenu ne soit pas affiché de façon fluide (60fps), créant ainsi des saccades. Une solution consiste à ajouter will-change: transform (cf. {{cssxref("will-change")}}) aux éléments positionnés afin que le rendu de l'élément soit géré à part, améliorant ainsi les performances et l'accessibilité.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS2.1', 'visuren.html#propdef-position', 'position')}} | -{{Spec2('CSS2.1')}} | -- |
| {{SpecName('CSS3 Positioning','#position-property','position')}} | -{{Spec2('CSS3 Positioning')}} | -Ajout de la valeur sticky |
-
{{cssinfo}}
- -{{Compat("css.properties.position")}}
diff --git a/files/fr/web/css/position/index.md b/files/fr/web/css/position/index.md new file mode 100644 index 0000000000..cb8cffc082 --- /dev/null +++ b/files/fr/web/css/position/index.md @@ -0,0 +1,336 @@ +--- +title: position +slug: Web/CSS/position +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/position +--- +La propriété position définit la façon dont un élément est positionné dans un document. Les propriétés {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} et {{cssxref("left")}} déterminent l'emplacement final de l'élément positionné.
relative, absolute, fixed ou sticky.relative. Dans ce cas, les propriétés {{cssxref("top")}} ou {{cssxref("bottom")}} indiquent le décalage vertical à appliquer et {{cssxref("left")}} ou {{cssxref("right")}} indiquent le décalage horizontal.absolute ou fixed. Dans ce cas, les propriétés {{cssxref("top")}}, {{cssxref("bottom")}}, {{cssxref("right")}} et {{cssxref("left")}} indiquent les distances entre les bords de l'élément et les bords du bloc englobant (c'est-à-dire l'ancêtre par rapport auquel l'élément est positionné). Si l'élément possède des marges, elles sont ajoutées aux décalages.sticky. Un tel élément se comporte comme un élément positionné de façon relative jusqu'à ce que son bloc englobant dépasse un seuil donné (par exemple fourni par la valeur de {{cssxref("top")}}) au sein du conteneur puis il se comporte ensuite comme un élément fixe jusqu'à atteindre le bord opposé du bloc englobant.La plupart du temps, les éléments positionnés de façon absolue ont leurs propriétés {{cssxref("height")}} et {{cssxref("width")}} qui valent auto afin que le contenu ait suffisamment d'espace. Toutefois, les éléments positionnés de façon absolue et qui ne sont pas des éléments remplacés peuvent remplir l'espace vertical en utilisant {{cssxref("top")}} et {{cssxref("bottom")}} tout en laissant {{cssxref("height")}} indéfini (c'est-à-dire avec la valeur auto). On pourra faire de même pour l'espace horizontal avec les propriétés {{cssxref("left")}} et {{cssxref("right")}}.
Sauf dans le cas précédemment énoncé des éléments positionnés de façon absolue et qui remplissent l'espace :
+ +top et bottom sont tous les deux définis (enfin, s'ils ne valent pas auto), c'est top qui aura la prioritéleft et right sont tous les deux définis, c'est left qui aura la priorité si la direction du texte est de gauche à droite (LTR) et right qui aura la priorité si la direction du texte est de droite à gauche (RTL) (par exemple en perse, arabe, hébreu)./* Valeurs avec un mot-clé */ +position: static; +position: relative; +position: absolute; +position: fixed; +position: sticky; + +/* Valeurs globales*/ +position: inherit; +position: initial; +position: unset; ++ +
La propriété position peut être définie avec l'un des mots-clés de la liste suivante.
staticrelativetop, right, bottom et left. Le décalage n'a pas d'impact sur la position des éléments. Aussi, l'espace fourni à l'élément sur la page est le même que celui fourni avec static. Cette valeur crée un nouveau contexte d'empilement lorsque z-index ne vaut pas auto. L'effet de cette valeur n'est pas défini pour les éléments table-*-group, table-row, table-column, table-cell et table-caption.absolutetop, right, bottom et left. Cette valeur crée un nouveau contexte d'empilement lorsque z-index ne vaut pas auto. Les éléments positionnés de façon absolue peuvent avoir des marges, ces marges ne fusionnent pas avec les autres marges.fixednone (voir la spécification sur les transformations CSS) ; dans ce cas, c'est l'élément ancêtre qui joue le rôle de bloc englobant. Cela empêche le défilement lorsque la page est parcourue (ou lors de l'impression, le positionne à cette position fixe pour chaque page). Cette valeur crée toujours un nouveau contexte d'empilement. Certains incohérences existent entre les navigateurs quant au rôle de perspective et filter pour la définition du bloc englobant. La valeur finale de l'élément est déterminée par les valeurs de top, right, bottom et left. Cette valeur crée toujours un nouveau contexte d'empilement. Pour les documents imprimés, cela se traduit par le placement de l'élément au même endroit pour chacune des pages.stickytop, right, bottom et left. Dans tous les cas, y compris avec les éléments table, cela n'affecte pas la position des autres éléments. Cette valeur entraîne toujours la création d'un nouveau contexte d'empilement. On notera qu'un tel élément « adhèrera » à l'ancêtre le plus proche qui dispose d'un mécanisme de défilement (c'est-à-dire quand overflow vaut hidden, scroll, auto ou overlay) même si cet ancêtre n'est pas nécessairement l'ancêtre de défilement le plus proche : cette valeur ne fonctionnera pas dans un élément pour lequel la propriété vaut overflow: hidden ou auto (cf.: cette issue GitHub).<div class="box" id="un">Un</div> +<div class="box" id="deux">Deux</div> +<div class="box" id="trois">Trois</div> +<div class="box" id="quatre">Quatre</div> ++ +
.box {
+ display: inline-block;
+ background: red;
+ width: 100px;
+ height: 100px;
+ color: white;
+}
+
+#deux {
+ position: relative;
+ top: 20px;
+ left: 20px;
+}
+
+
+Dans cet exemple, on voit comment les autres éléments sont positionnés, comme si « Deux » prenait l'espace de sa position normale.
+ +{{EmbedLiveSample('Positionnement_relatif', '600px', '200px')}}
+ +Les éléments qui sont positionnés de façon relatives sont toujours pris en compte dans le flux normal des éléments du document. En revanche, les éléments positionnés de façon absolue sont retirés du flux et ne prennent donc plus d'espace lorsqu'il s'agit de positionner les autres éléments. Un élément positionné de façon absolu est positionné par rapport à son plus proche ancêtre positionné. S'il n'y a pas de tel ancêtre, c'est le conteneur initial, le bloc englobant la racine du document, qui est utilisé (voir la définition du W3C).
+ +Dans l'exemple qui suit, on n'a pas d'ancêtre positionné et la boîte « Trois » est positionnée de façon absolue par rapport à l'ancêtre immédiat (l'élément <body> de l'iframe générée ici) :
<h1>Positionnement absolu</h1> +<p>Un élément de bloc simple. Les éléments de bloc adjacents sont sur de nouvelles lignes en-dessous.</p> +<p class="positioned">Par défaut, on occupe 100% de la largeur de l'élément parent et on est aussi grand que notre contenu.</p> +<p>Nous sommes séparés par nos marges (une seule marge en raison de la fusion des marges).</p> +<p>Les éléments <em>inline</em> <span>comme celui-ci</span> et <span>celui-là</span> se situent sur la même ligne avec également les noeuds texte. S'il y a de l'espace sur la même ligne. Les éléments qui dépassent <span>passent à la ligne si possible — comme pour ce texte.</span> ou cette image <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p>+ +
body {
+ width: 500px;
+ margin: 0 auto;
+}
+
+p {
+ background: aqua;
+ border: 3px solid blue;
+ padding: 10px;
+ margin: 10px;
+}
+
+span {
+ background: red;
+ border: 1px solid black;
+}
+
+.positioned {
+ position: absolute;
+ background: yellow;
+ top: 30px;
+ left: 30px;
+}
+
+{{EmbedLiveSample('Positionnement_absolu', '100%', 420)}}
+ +Le positionnement fixe est semblable au positionnement absolu sauf qu'ici, le bloc englobant correspond au viewport si aucun ancêtre de l'élément ne possède une propriété {{cssxref("transform")}}, {{cssxref("perspective")}} ou {{cssxref("filter")}} qui est différente de none. On utilise souvent ce positionnement pour créer un élément flottant qui reste à la même position, même lorsqu'on fait défiler la page. Dans l'exemple qui suit, la boîte « Un » est fixée à 80 pixels du haut de la page et à 20 pixels du bord gauche.
<div class="outer"> + <p> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam congue tortor eget pulvinar lobortis. + Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam ac dolor augue. + Pellentesque mi mi, laoreet et dolor sit amet, ultrices varius risus. Nam vitae iaculis elit. + Aliquam mollis interdum libero. Sed sodales placerat egestas. Vestibulum ut arcu aliquam purus viverra dictum vel sit amet mi. + Duis nisl mauris, aliquam sit amet luctus eget, dapibus in enim. Sed velit augue, pretium a sem aliquam, congue porttitor tortor. + Sed tempor nisl a lorem consequat, id maximus erat aliquet. Sed sagittis porta libero sed condimentum. + Aliquam finibus lectus nec ante congue rutrum. Curabitur quam quam, accumsan id ultrices ultrices, tempor et tellus. + </p> + <p> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam congue tortor eget pulvinar lobortis. + Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam ac dolor augue. + Pellentesque mi mi, laoreet et dolor sit amet, ultrices varius risus. Nam vitae iaculis elit. + Aliquam mollis interdum libero. Sed sodales placerat egestas. Vestibulum ut arcu aliquam purus viverra dictum vel sit amet mi. + Duis nisl mauris, aliquam sit amet luctus eget, dapibus in enim. Sed velit augue, pretium a sem aliquam, congue porttitor tortor. + Sed tempor nisl a lorem consequat, id maximus erat aliquet. Sed sagittis porta libero sed condimentum. + Aliquam finibus lectus nec ante congue rutrum. Curabitur quam quam, accumsan id ultrices ultrices, tempor et tellus. + </p> + <div class="box" id="un">Un</div> +</div> ++ +
.box {
+ background: red;
+ width: 100px;
+ height: 100px;
+ margin: 20px;
+ color: white;
+}
+#un {
+ position: fixed;
+ top: 80px;
+ left: 10px;
+}
+.outer {
+ width: 500px;
+ height: 300px;
+ overflow: scroll;
+ padding-left: 150px;
+}
+
+
+Lorsqu'on regarde le haut de la page, la boîte apparaît en haut à gauche, même après avoir défilé, elle reste à la même place par rapport au viewport :
+ +{{EmbedLiveSample('Positionnement_fixe', '800px', '300px')}}
+ +Le positionnement adhérent est un mélange de positionnement relatif et de positionnement fixe. L'élément est considéré comme positionné de façon relative, jusqu'à ce qu'un seuil soit franchi. À partir de ce seuil, l'élément est positionné de façon fixe. Par exemple :
+ +#un {
+ position: sticky;
+ top: 10px;
+}
+
+se comportera comme un élément positionné de façon relative jusqu'à ce que le viewport défile au point où l'élément est à moins de 10 pixels du haut. Ensuite, il sera fixé à 10 pixels du haut, jusqu'à ce que le viewport redéfile jusqu'avant ce seuil.
+ +Le positionnement adhérent est souvent utilisé pour gérer les niveaux de titre dans les listes alphabétiques. Le titre pour B apparaîtra sous les éléments commençant par A jusqu'à ce que ceux-ci disparaissent de l'écran. Plutôt que de défiler avec le reste de l'écran, la lettre B restera affichée en haut du viewport jusqu'à ce que tous les éléments commençant par B aient défilés sur l'écran (ce sera ensuite le tour de la lettre C et ainsi de suite).
+ +Il faut définir un seuil avec au moins {{cssxref("top")}} ou {{cssxref("right")}} ou {{cssxref("bottom")}} ou {{cssxref("left")}} pour que le positionnement adhérent fonctionne comme attendu. Sinon, on ne pourra pas le distinguer du positionnement relatif.
+ +<dl> + <div> + <dt>A</dt> + <dd>Andrew W.K.</dd> + <dd>Apparat</dd> + <dd>Arcade Fire</dd> + <dd>At The Drive-In</dd> + <dd>Aziz Ansari</dd> + </div> + <div> + <dt>C</dt> + <dd>Chromeo</dd> + <dd>Common</dd> + <dd>Converge</dd> + <dd>Crystal Castles</dd> + <dd>Cursive</dd> + </div> + <div> + <dt>E</dt> + <dd>Explosions In The Sky</dd> + </div> + <div> + <dt>T</dt> + <dd>Ted Leo & The Pharmacists</dd> + <dd>T-Pain</dd> + <dd>Thrice</dd> + <dd>TV On The Radio</dd> + <dd>Two Gallants</dd> + </div> +</dl> ++ +
* {
+ box-sizing: border-box;
+}
+dl > div {
+ margin: 0;
+ padding: 24px 0 0 0;
+}
+
+dt {
+ background: #B8C1C8;
+ border-bottom: 1px solid #989EA4;
+ border-top: 1px solid #717D85;
+ color: #FFF;
+ font: bold 18px/21px Helvetica, Arial, sans-serif;
+ margin: 0;
+ padding: 2px 0 0 12px;
+ position: -webkit-sticky;
+ position: sticky;
+ width: 99%;
+ top: -1px;
+}
+
+dd {
+ font: bold 20px/45px Helvetica, Arial, sans-serif;
+ margin: 0;
+ padding: 0 0 0 12px;
+ white-space: nowrap;
+}
+
+dd + dd {
+ border-top: 1px solid #CCC;
+}
+
+
+{{EmbedLiveSample('Positionnement_adhérent_(sticky)', '500px', '300px')}}
+ +Il faut s'assurer que les éléments positionnés avec absolute ou fixed ne masquent pas d'autre contenu sur la page lorsqu'on zoome sur la page afin d'augmenter la taille du texte.
Les éléments qui défilent avec du contenu utilisant fixed ou sticky peuvent entraîner des problèmes de performance et d'accessibilité. Lorsque l'utilisateur fait défiler le contenu, le navigateur doit « repeindre » le contenu adhérant ou fixé à un nouvel emplacement. Selon le contenu qui doit être repeint, les performances du navigateur et celles de l'appareil, il est possible que le contenu ne soit pas affiché de façon fluide (60fps), créant ainsi des saccades. Une solution consiste à ajouter will-change: transform (cf. {{cssxref("will-change")}}) aux éléments positionnés afin que le rendu de l'élément soit géré à part, améliorant ainsi les performances et l'accessibilité.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS2.1', 'visuren.html#propdef-position', 'position')}} | +{{Spec2('CSS2.1')}} | ++ |
| {{SpecName('CSS3 Positioning','#position-property','position')}} | +{{Spec2('CSS3 Positioning')}} | +Ajout de la valeur sticky |
+
{{cssinfo}}
+ +{{Compat("css.properties.position")}}
diff --git a/files/fr/web/css/position_value/index.html b/files/fr/web/css/position_value/index.html deleted file mode 100644 index 5b6dd45473..0000000000 --- a/files/fr/web/css/position_value/index.html +++ /dev/null @@ -1,128 +0,0 @@ ---- -title:Le type de donnée CSS <position> définit une paire de coordonnées dans l'espace (bidimensionnel) afin de définir la position relative d'une boîte. La position finale obtenue, décrite par la valeur <position>, n'est pas nécessairement située à l'intérieur de la boîte de l'élément. Ce type de donnée est notamment utilisé avec la propriété {{cssxref("background-position")}}.
On peut définir un emplacement grâce à deux mots-clés avec chacun un décalage par rapport au côté correspondant à ce mot-clé. Un mot-clé représente un côté de la boîte ou la ligne du centre située entre les deux bords. Ce mot-clé sera left, right, top, bottom ou center (ce dernier représente le milieu entre les côtés droit et gauche ou le milieu entre les côtés haut et bas selon le contexte).
Le décalage peut être une valeur relative, exprimée en pourcentages (valeur de type {{cssxref("<percentage>")}} ou une valeur absolue. Les valeurs positives décalent vers la droite ou vers le bas. Les valeurs négatives décalent dans l'autre sens (vers la gauche ou vers le haut).
- -Si un seul décalage est indiqué, ce sera le décalage horizontal. Lorsqu'un seul décalage ou mot-clé est utilisé, la valeur par défaut pour l'autre axe est center.
/* Syntaxe avec une valeur */ -mot-clé /* Le côté depuis lequel décaler, on centrera sur l'autre axe*/ -<length> ou <percentage> /* La position sur l'axe */ - -/* Syntaxe avec deux valeurs */ -mot-clé mot-clé /* Un mot-clé pour chaque direction, l'ordre n'est pas important */ -mot-clé valeur /* La valeur indique le décalage par rapport au côté indiqué par le mot-clé */ -valeur mot-clé /* Une valeur pour le décalage horizontal et un mot-clé pour le décalage vertical */ -valeur valeur /* Une valeur pour chaque composante du décalage */ - -/* Syntaxe avec quatre valeurs */ -mot-clé valeur mot-clé valeur /* Chaque valeur indique le décalage par rapport au mot-clé qui le précède */ -- -
[ - [ left | center | right ] || [ top | center | bottom ] -| - [ left | center | right | <length> | <percentage> ] - [ top | center | bottom | <length> | <percentage> ]? -| - [ [ left | right ] [ <length> | <percentage> ] ] && - [ [ top | bottom ] [ <length> | <percentage> ] ] -] -- -
Les valeurs des coordonnées en abscisses et en ordonnées sont interpolées indépendamment. La vitesse de l'interpolation est définie par la même fonction de temporisation ({{cssxref("easing-function")}}) et le point se déplacera donc sur une ligne.
- -div {
- background-color: #FFEE99;
- background-repeat: no-repeat;
- width: 300px;
- height: 80px;
- margin-bottom: 12px;
-}
-
-.exemple{
- background: url("https://mdn.mozillademos.org/files/11987/startransparent.gif") #FFEE99 no-repeat;
- // Ici un exemple de valeur <position>
- background-position: 2.5cm bottom;
-}
-
-<div class="exemple">Exemple</div>- -
{{EmbedLiveSample('Exemples', 120, 200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Values', '#position', '<position>')}} | -{{Spec2('CSS3 Values')}} | -Renvoie aux deux définitions avec la contrainte suivante qui permet d'être cohérent : si {{SpecName('CSS3 Backgrounds')}} est pris en charge, c'est sa définition de <position> qui doit être utilisée. |
-
| {{SpecName('CSS3 Backgrounds', '#position', '<position>')}} | -{{Spec2('CSS3 Backgrounds')}} | -<position> est défini de façon explicite et est étendu afin de pouvoir exprimer un décalage depuis n'importe quel côté. |
-
| {{SpecName('CSS2.1', 'colors.html#propdef-background-position', '<position>')}} | -{{Spec2('CSS2.1')}} | -Autorise la combinaison d'un mot-clé et d'une valeur {{cssxref("<length>")}} ou {{cssxref("<percentage>")}}. | -
| {{SpecName('CSS1', '#background-position', '<position>')}} | -{{Spec2('CSS1')}} | -<position> est défini de façon anonyme comme valeur de {{cssxref("background-position")}}. |
-
{{Compat("css.types.position")}}
- -Le type de donnée CSS <position> définit une paire de coordonnées dans l'espace (bidimensionnel) afin de définir la position relative d'une boîte. La position finale obtenue, décrite par la valeur <position>, n'est pas nécessairement située à l'intérieur de la boîte de l'élément. Ce type de donnée est notamment utilisé avec la propriété {{cssxref("background-position")}}.
On peut définir un emplacement grâce à deux mots-clés avec chacun un décalage par rapport au côté correspondant à ce mot-clé. Un mot-clé représente un côté de la boîte ou la ligne du centre située entre les deux bords. Ce mot-clé sera left, right, top, bottom ou center (ce dernier représente le milieu entre les côtés droit et gauche ou le milieu entre les côtés haut et bas selon le contexte).
Le décalage peut être une valeur relative, exprimée en pourcentages (valeur de type {{cssxref("<percentage>")}} ou une valeur absolue. Les valeurs positives décalent vers la droite ou vers le bas. Les valeurs négatives décalent dans l'autre sens (vers la gauche ou vers le haut).
+ +Si un seul décalage est indiqué, ce sera le décalage horizontal. Lorsqu'un seul décalage ou mot-clé est utilisé, la valeur par défaut pour l'autre axe est center.
/* Syntaxe avec une valeur */ +mot-clé /* Le côté depuis lequel décaler, on centrera sur l'autre axe*/ +<length> ou <percentage> /* La position sur l'axe */ + +/* Syntaxe avec deux valeurs */ +mot-clé mot-clé /* Un mot-clé pour chaque direction, l'ordre n'est pas important */ +mot-clé valeur /* La valeur indique le décalage par rapport au côté indiqué par le mot-clé */ +valeur mot-clé /* Une valeur pour le décalage horizontal et un mot-clé pour le décalage vertical */ +valeur valeur /* Une valeur pour chaque composante du décalage */ + +/* Syntaxe avec quatre valeurs */ +mot-clé valeur mot-clé valeur /* Chaque valeur indique le décalage par rapport au mot-clé qui le précède */ ++ +
[ + [ left | center | right ] || [ top | center | bottom ] +| + [ left | center | right | <length> | <percentage> ] + [ top | center | bottom | <length> | <percentage> ]? +| + [ [ left | right ] [ <length> | <percentage> ] ] && + [ [ top | bottom ] [ <length> | <percentage> ] ] +] ++ +
Les valeurs des coordonnées en abscisses et en ordonnées sont interpolées indépendamment. La vitesse de l'interpolation est définie par la même fonction de temporisation ({{cssxref("easing-function")}}) et le point se déplacera donc sur une ligne.
+ +div {
+ background-color: #FFEE99;
+ background-repeat: no-repeat;
+ width: 300px;
+ height: 80px;
+ margin-bottom: 12px;
+}
+
+.exemple{
+ background: url("https://mdn.mozillademos.org/files/11987/startransparent.gif") #FFEE99 no-repeat;
+ // Ici un exemple de valeur <position>
+ background-position: 2.5cm bottom;
+}
+
+<div class="exemple">Exemple</div>+ +
{{EmbedLiveSample('Exemples', 120, 200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Values', '#position', '<position>')}} | +{{Spec2('CSS3 Values')}} | +Renvoie aux deux définitions avec la contrainte suivante qui permet d'être cohérent : si {{SpecName('CSS3 Backgrounds')}} est pris en charge, c'est sa définition de <position> qui doit être utilisée. |
+
| {{SpecName('CSS3 Backgrounds', '#position', '<position>')}} | +{{Spec2('CSS3 Backgrounds')}} | +<position> est défini de façon explicite et est étendu afin de pouvoir exprimer un décalage depuis n'importe quel côté. |
+
| {{SpecName('CSS2.1', 'colors.html#propdef-background-position', '<position>')}} | +{{Spec2('CSS2.1')}} | +Autorise la combinaison d'un mot-clé et d'une valeur {{cssxref("<length>")}} ou {{cssxref("<percentage>")}}. | +
| {{SpecName('CSS1', '#background-position', '<position>')}} | +{{Spec2('CSS1')}} | +<position> est défini de façon anonyme comme valeur de {{cssxref("background-position")}}. |
+
{{Compat("css.types.position")}}
+ +Par le passé (avant 2010), le sélecteur CSS {{cssxref(":visited")}} permettait aux sites d'effectuer des requêtes sur l'historique de l'utilisateur grâce à la méthode {{domxref("window.getComputedStyle")}} ou à d'autre techniques, parcourant l'historique de l'utilisateur afin de connaître les sites qu'il avait visité. Cela pouvait effectué rapidement et permettait d'obtenir beaucoup d'informations sur l'identité d'un utilisateur.
- -Afin de palier au problème, Gecko ({{Gecko("2")}}) a été modifié afin de limiter la quantité d'informations qui peut être obtenue au travers des liens visités. Les autres navigateurs ont également été modifiés de façon semblable.
- -La première modification consiste à faire mentir Gecko envers les applications web sous certaines circonstances.
- -window.getComputedStyle() et les fonctions analogues comme {{domxref("element.querySelector()")}} renverront toujours des valeurs indiquant que l'utilisateur n'a jamais visité aucun des liens présents sur une page.:visited + span, l'élément {{htmlelement("span")}} sera mis en forme comme si le lien n'avait pas été visité.On peut toujours mettre en forme les liens visités mais quelques limites s'appliquent désormais. Seule les propriétés suivantes pourront être appliquées aux liens visités :
- -De plus, même pour ces propriétés, il n'est pas possible de modifier la transparence entre les liens qui ont été visités et les autres (comme on pourrait le faire par ailleurs avec rgba() ou hsla() ou avec le mot-clé transparent).
Voici un exemple de mise en forme prenant en compte ces restrictions :
- -:link {
- outline: 1px dotted blue;
- background-color: white;
- /* La valeur par défaut de background-color est 'transparent'.
- et il faut donc une valeur différente, sinon les modifications
- pour :visited ne s'appliqueront pas. */
-}
-
-:visited {
- outline-color: orange; /* Les liens visités auront un contour orange */
- color: yellow; /* Le texte des liens visités sera en jaune */
- background-color: green; /* L'arrière-plan des liens visités sera vert */
-}
-
-
-De façon générale, cela ne devrait pas impacter les développeurs de façon significative. Il faudra toutefois appliquer les modifications suivantes aux sites :
- -:visited.:visited pour la vie privée (en anglais) sur Mozilla Hacks:visited (en anglais)Par le passé (avant 2010), le sélecteur CSS {{cssxref(":visited")}} permettait aux sites d'effectuer des requêtes sur l'historique de l'utilisateur grâce à la méthode {{domxref("window.getComputedStyle")}} ou à d'autre techniques, parcourant l'historique de l'utilisateur afin de connaître les sites qu'il avait visité. Cela pouvait effectué rapidement et permettait d'obtenir beaucoup d'informations sur l'identité d'un utilisateur.
+ +Afin de palier au problème, Gecko ({{Gecko("2")}}) a été modifié afin de limiter la quantité d'informations qui peut être obtenue au travers des liens visités. Les autres navigateurs ont également été modifiés de façon semblable.
+ +La première modification consiste à faire mentir Gecko envers les applications web sous certaines circonstances.
+ +window.getComputedStyle() et les fonctions analogues comme {{domxref("element.querySelector()")}} renverront toujours des valeurs indiquant que l'utilisateur n'a jamais visité aucun des liens présents sur une page.:visited + span, l'élément {{htmlelement("span")}} sera mis en forme comme si le lien n'avait pas été visité.On peut toujours mettre en forme les liens visités mais quelques limites s'appliquent désormais. Seule les propriétés suivantes pourront être appliquées aux liens visités :
+ +De plus, même pour ces propriétés, il n'est pas possible de modifier la transparence entre les liens qui ont été visités et les autres (comme on pourrait le faire par ailleurs avec rgba() ou hsla() ou avec le mot-clé transparent).
Voici un exemple de mise en forme prenant en compte ces restrictions :
+ +:link {
+ outline: 1px dotted blue;
+ background-color: white;
+ /* La valeur par défaut de background-color est 'transparent'.
+ et il faut donc une valeur différente, sinon les modifications
+ pour :visited ne s'appliqueront pas. */
+}
+
+:visited {
+ outline-color: orange; /* Les liens visités auront un contour orange */
+ color: yellow; /* Le texte des liens visités sera en jaune */
+ background-color: green; /* L'arrière-plan des liens visités sera vert */
+}
+
+
+De façon générale, cela ne devrait pas impacter les développeurs de façon significative. Il faudra toutefois appliquer les modifications suivantes aux sites :
+ +:visited.:visited pour la vie privée (en anglais) sur Mozilla Hacks:visited (en anglais)Une pseudo-classe est un mot-clé qui peut être ajouté à un sélecteur afin d'indiquer l'état spécifique dans lequel l'élément doit être pour être ciblé par la déclaration. La pseudo-classe {{cssxref(":hover")}}, par exemple, permettra d'appliquer une mise en forme spécifique lorsque l'utilisateur survole l'élément ciblé par le sélecteur (changer la couleur d'un bouton par exemple).
- -div:hover {
- background-color: #F89B4D;
-}
-
-Les pseudo-classes permettent d'appliquer un style à un élément non seulement en fonction de son contenu dans l'arbre du document mais aussi en fonction de facteurs externes (l'historique de navigation par exemple avec {{cssxref(":visited")}} ; le statut du contenu avec {{cssxref(":checked")}} ; la position de la souris {{cssxref(":hover")}}).
- -Note : À la différence des pseudo-classes, les pseudo-éléments peuvent être utilisés afin d'appliquer un style sur une certaine partie d'un élément.
-sélecteur:pseudo-classe {
- propriété: valeur;
-}
-
-
-À l'instar des classes, on peut chaîner plusieurs pseudo-classes au sein d'un sélecteur.
- -.survol:hover {
- background-color: palegreen;
-}
-
-p:nth-child(2n+1) {
- background-color: lime;
-}
-
-<div> - <p class="survol"> - La Reine devint pourpre de colère ; et après - l’avoir considérée un moment avec des yeux - flamboyants comme ceux d’une bête fauve, elle - se mit à crier : « Qu’on lui coupe la tête ! » - </p> - <p> - « Quelle idée ! » dit Alice très-haut et d’un - ton décidé. La Reine se tut. - </p> - <p> - Le Roi lui posa la main sur le bras, et lui - dit timidement : « Considérez donc, ma chère - amie, que ce n’est qu’une enfant. » - </p> -</div>- -
{{EmbedLiveSample("Exemples","250","350")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('Fullscreen')}} | -{{Spec2('Fullscreen')}} | -Définition de :fullscreen. |
-
| {{SpecName('HTML WHATWG', '#pseudo-classes')}} | -{{Spec2('HTML WHATWG')}} | -Définit lorsque des sélecteurs particuliers correspondent à des éléments HTML. | -
| {{SpecName('CSS4 Selectors')}} | -{{Spec2('CSS4 Selectors')}} | -
- Définition de Changement afin que Aucune modification significative pour les pseudo-classes définies avec {{SpecName('CSS3 Selectors')}} et {{SpecName('HTML5 W3C')}}. - |
-
| {{SpecName('HTML5 W3C')}} | -{{Spec2('HTML5 W3C')}} | -Copie les éléments pertinents de la spécification HTML WHATWG | -
| {{SpecName('CSS3 Basic UI')}} | -{{Spec2('CSS3 Basic UI')}} | -Définition de :default, :valid, :invalid, :in-range, :out-of-range, :required, :optional, :read-only et :read-write, mais sans la sémantique associée. |
-
| {{SpecName('CSS3 Selectors')}} | -{{Spec2('CSS3 Selectors')}} | -Définition de :target, :root, :nth-child(), :nth-last-of-child(), :nth-of-type(), :nth-last-of-type(), :last-child, :first-of-type, :last-of-type, :only-child, :only-of-type, :empty et :not().- Définition de la syntaxe pour :enabled, :disabled, :checked et :indeterminate, mais sans la sémantique associée.- Pas de modification significative pour les pseudo-classes définies avec {{SpecName('CSS2.1')}}. |
-
| {{SpecName('CSS2.1')}} | -{{Spec2('CSS2.1')}} | -Définition de :lang(), :first-child, :hover et :focus.- Aucune modification significative pour les pseudo-classes définies avec {{SpecName('CSS1')}}. |
-
| {{SpecName('CSS1')}} | -{{Spec2('CSS1')}} | -Définition de :link, :visited et :active, mais sans la sémantique associée. |
-
Une pseudo-classe est un mot-clé qui peut être ajouté à un sélecteur afin d'indiquer l'état spécifique dans lequel l'élément doit être pour être ciblé par la déclaration. La pseudo-classe {{cssxref(":hover")}}, par exemple, permettra d'appliquer une mise en forme spécifique lorsque l'utilisateur survole l'élément ciblé par le sélecteur (changer la couleur d'un bouton par exemple).
+ +div:hover {
+ background-color: #F89B4D;
+}
+
+Les pseudo-classes permettent d'appliquer un style à un élément non seulement en fonction de son contenu dans l'arbre du document mais aussi en fonction de facteurs externes (l'historique de navigation par exemple avec {{cssxref(":visited")}} ; le statut du contenu avec {{cssxref(":checked")}} ; la position de la souris {{cssxref(":hover")}}).
+ +Note : À la différence des pseudo-classes, les pseudo-éléments peuvent être utilisés afin d'appliquer un style sur une certaine partie d'un élément.
+sélecteur:pseudo-classe {
+ propriété: valeur;
+}
+
+
+À l'instar des classes, on peut chaîner plusieurs pseudo-classes au sein d'un sélecteur.
+ +.survol:hover {
+ background-color: palegreen;
+}
+
+p:nth-child(2n+1) {
+ background-color: lime;
+}
+
+<div> + <p class="survol"> + La Reine devint pourpre de colère ; et après + l’avoir considérée un moment avec des yeux + flamboyants comme ceux d’une bête fauve, elle + se mit à crier : « Qu’on lui coupe la tête ! » + </p> + <p> + « Quelle idée ! » dit Alice très-haut et d’un + ton décidé. La Reine se tut. + </p> + <p> + Le Roi lui posa la main sur le bras, et lui + dit timidement : « Considérez donc, ma chère + amie, que ce n’est qu’une enfant. » + </p> +</div>+ +
{{EmbedLiveSample("Exemples","250","350")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('Fullscreen')}} | +{{Spec2('Fullscreen')}} | +Définition de :fullscreen. |
+
| {{SpecName('HTML WHATWG', '#pseudo-classes')}} | +{{Spec2('HTML WHATWG')}} | +Définit lorsque des sélecteurs particuliers correspondent à des éléments HTML. | +
| {{SpecName('CSS4 Selectors')}} | +{{Spec2('CSS4 Selectors')}} | +
+ Définition de Changement afin que Aucune modification significative pour les pseudo-classes définies avec {{SpecName('CSS3 Selectors')}} et {{SpecName('HTML5 W3C')}}. + |
+
| {{SpecName('HTML5 W3C')}} | +{{Spec2('HTML5 W3C')}} | +Copie les éléments pertinents de la spécification HTML WHATWG | +
| {{SpecName('CSS3 Basic UI')}} | +{{Spec2('CSS3 Basic UI')}} | +Définition de :default, :valid, :invalid, :in-range, :out-of-range, :required, :optional, :read-only et :read-write, mais sans la sémantique associée. |
+
| {{SpecName('CSS3 Selectors')}} | +{{Spec2('CSS3 Selectors')}} | +Définition de :target, :root, :nth-child(), :nth-last-of-child(), :nth-of-type(), :nth-last-of-type(), :last-child, :first-of-type, :last-of-type, :only-child, :only-of-type, :empty et :not().+ Définition de la syntaxe pour :enabled, :disabled, :checked et :indeterminate, mais sans la sémantique associée.+ Pas de modification significative pour les pseudo-classes définies avec {{SpecName('CSS2.1')}}. |
+
| {{SpecName('CSS2.1')}} | +{{Spec2('CSS2.1')}} | +Définition de :lang(), :first-child, :hover et :focus.+ Aucune modification significative pour les pseudo-classes définies avec {{SpecName('CSS1')}}. |
+
| {{SpecName('CSS1')}} | +{{Spec2('CSS1')}} | +Définition de :link, :visited et :active, mais sans la sémantique associée. |
+
Un pseudo-élément est un mot-clé ajouté à un sélecteur qui permet de mettre en forme certaines parties de l'élément ciblé par la règle. Ainsi, le pseudo-élément {{cssxref("::first-line")}} permettra de ne cibler que la première ligne d'un élément visé par le sélecteur.
- -/* La première ligne de chaque élément <p>. */
-p::first-line {
- color: blue;
- text-transform: uppercase;
-}
-
-
-
-
-Note : À la différence des pseudo-éléments, les pseudo-classes peuvent être utilisées afin de mettre en forme un élément en fonction de son état.
-sélecteur::pseudo-élément {
- propriété: valeur;
-}
-
-On ne peut utiliser qu'un seul pseudo-élément dans un sélecteur. Le pseudo-élément doit apparaître après les sélecteurs simple de la déclaration
- -Depuis CSS3, on utilise deux fois le caractère deux-points (:) pour préfixer les pseudo-éléments (afin de pouvoir les différencier des pseudo-classes). Toutefois, la plupart des navigateurs prennent en charge les pseudo-éléments pour lesquels le préfixe n'est formé que d'un seul « : ».
- -p::first-line {
- color: blue;
-}
-
-<p> - C’était le Lapin Blanc qui revenait en trottinant, - et qui cherchait de tous côtés, d’un air inquiet, - comme s’il avait perdu quelque chose ; Alice - l’entendit qui marmottait : « La Duchesse ! La - Duchesse ! Oh ! mes pauvres pattes ; oh ! ma robe - et mes moustaches ! Elle me fera guillotiner aussi - vrai que des furets sont des furets ! Où pourrais-je - bien les avoir perdus ? » Alice devina tout de suite - qu’il cherchait l’éventail et la paire de gants paille, - et, comme elle avait bon cœur, elle se mit à les - chercher aussi ; mais pas moyen de les trouver. -</p>- -
{{EmbedLiveSample('Exemples', 250, 200)}}
- -| Navigateur | -Version minimale | -Prise en charge de : | -
|---|---|---|
| Internet Explorer | -8.0 | -:pseudo-element |
-
| 9.0 | -:pseudo-element ::pseudo-element |
- |
| Firefox (Gecko) | -1.0 (1.0) | -:pseudo-element |
-
| 1.0 (1.5) | -:pseudo-element ::pseudo-element |
- |
| Opera | -4.0 | -:pseudo-element |
-
| 7.0 | -:pseudo-element ::pseudo-element |
- |
| Safari (WebKit) | -1.0 (85) | -:pseudo-element ::pseudo-element |
-
Un pseudo-élément est un mot-clé ajouté à un sélecteur qui permet de mettre en forme certaines parties de l'élément ciblé par la règle. Ainsi, le pseudo-élément {{cssxref("::first-line")}} permettra de ne cibler que la première ligne d'un élément visé par le sélecteur.
+ +/* La première ligne de chaque élément <p>. */
+p::first-line {
+ color: blue;
+ text-transform: uppercase;
+}
+
+
+
+
+Note : À la différence des pseudo-éléments, les pseudo-classes peuvent être utilisées afin de mettre en forme un élément en fonction de son état.
+sélecteur::pseudo-élément {
+ propriété: valeur;
+}
+
+On ne peut utiliser qu'un seul pseudo-élément dans un sélecteur. Le pseudo-élément doit apparaître après les sélecteurs simple de la déclaration
+ +Depuis CSS3, on utilise deux fois le caractère deux-points (:) pour préfixer les pseudo-éléments (afin de pouvoir les différencier des pseudo-classes). Toutefois, la plupart des navigateurs prennent en charge les pseudo-éléments pour lesquels le préfixe n'est formé que d'un seul « : ».
+ +p::first-line {
+ color: blue;
+}
+
+<p> + C’était le Lapin Blanc qui revenait en trottinant, + et qui cherchait de tous côtés, d’un air inquiet, + comme s’il avait perdu quelque chose ; Alice + l’entendit qui marmottait : « La Duchesse ! La + Duchesse ! Oh ! mes pauvres pattes ; oh ! ma robe + et mes moustaches ! Elle me fera guillotiner aussi + vrai que des furets sont des furets ! Où pourrais-je + bien les avoir perdus ? » Alice devina tout de suite + qu’il cherchait l’éventail et la paire de gants paille, + et, comme elle avait bon cœur, elle se mit à les + chercher aussi ; mais pas moyen de les trouver. +</p>+ +
{{EmbedLiveSample('Exemples', 250, 200)}}
+ +| Navigateur | +Version minimale | +Prise en charge de : | +
|---|---|---|
| Internet Explorer | +8.0 | +:pseudo-element |
+
| 9.0 | +:pseudo-element ::pseudo-element |
+ |
| Firefox (Gecko) | +1.0 (1.0) | +:pseudo-element |
+
| 1.0 (1.5) | +:pseudo-element ::pseudo-element |
+ |
| Opera | +4.0 | +:pseudo-element |
+
| 7.0 | +:pseudo-element ::pseudo-element |
+ |
| Safari (WebKit) | +1.0 (85) | +:pseudo-element ::pseudo-element |
+
La propriété quotes indique la façon dont les marques de citation sont affichées.
/* Valeur avec un mot-clé */ -quotes: none; - -/* Chaînes de caractères */ -/* Type <string> */ -quotes: "«" "»"; /* On utilise les guillemets français - pour ouvrir et fermer une citation */ -quotes: "«" "»" "‹" "›"; /* On définit deux niveaux de citation */ - -/* Valeurs globales */ -quotes: inherit; -quotes: initial; -quotes: unset; -- -
noneopen-quote et close-quote de la propriété {{cssxref("content")}} n'entraînent aucune marque de citation.[<string> <string>]+open-quote et close-quote. La première paire représente les symboles utilisés pour les citations de plus haut niveau, la deuxième indique comment délimiter une citation dans une citation, la troisième paire permet d'ajouter un niveau d'imbrication supplémentaire et ainsi de suite.<p> - <q>Bientôt le Lapin aperçut Alice qui furetait ; - il lui cria d’un ton d’impatience : - <q>Eh bien ! Marianne, que faites-vous ici ? - Courez vite à la maison me chercher une paire - de gants et un éventail ! Allons, dépêchons-nous. - </q> - </q> -</p>- -
q {
- quotes : "«" "»" '"' '"';
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Content", "#quotes", "quotes")}} | -{{Spec2("CSS3 Content")}} | -- |
| {{SpecName('CSS2.1', 'generate.html#quotes', 'quotes')}} | -{{Spec2('CSS2.1')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.quotes")}}
- -La propriété quotes indique la façon dont les marques de citation sont affichées.
/* Valeur avec un mot-clé */ +quotes: none; + +/* Chaînes de caractères */ +/* Type <string> */ +quotes: "«" "»"; /* On utilise les guillemets français + pour ouvrir et fermer une citation */ +quotes: "«" "»" "‹" "›"; /* On définit deux niveaux de citation */ + +/* Valeurs globales */ +quotes: inherit; +quotes: initial; +quotes: unset; ++ +
noneopen-quote et close-quote de la propriété {{cssxref("content")}} n'entraînent aucune marque de citation.[<string> <string>]+open-quote et close-quote. La première paire représente les symboles utilisés pour les citations de plus haut niveau, la deuxième indique comment délimiter une citation dans une citation, la troisième paire permet d'ajouter un niveau d'imbrication supplémentaire et ainsi de suite.<p> + <q>Bientôt le Lapin aperçut Alice qui furetait ; + il lui cria d’un ton d’impatience : + <q>Eh bien ! Marianne, que faites-vous ici ? + Courez vite à la maison me chercher une paire + de gants et un éventail ! Allons, dépêchons-nous. + </q> + </q> +</p>+ +
q {
+ quotes : "«" "»" '"' '"';
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Content", "#quotes", "quotes")}} | +{{Spec2("CSS3 Content")}} | ++ |
| {{SpecName('CSS2.1', 'generate.html#quotes', 'quotes')}} | +{{Spec2('CSS2.1')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.quotes")}}
+ +Le type de donnée CSS <ratio> permet de décrire les proportions dans les media queries (N.D.T. pour « requête média » qui est moins usité). entre deux valeurs sans unité.
Une valeur de ce type se compose d'un entier strictement positif (type {{cssxref("<integer>")}}, suivi d'une barre oblique ('/', Unicode U+002F SOLIDUS) puis d'un second entier strictement positif (type {{cssxref("<integer>")}}). Il est possible d'avoir des espaces avant et après la barre oblique.
@media screen and (min-aspect-ratio: 16/9) { … }
-
-| - | Ratio | -Utilisation | -
|---|---|---|
![]() |
- 4/3 |
- Format traditionnel utilisé par les télévisions au XXe siècle. | -
![]() |
- 16/9 |
- Format « moderne » des télévisions. | -
![]() |
- 185/100 = 91/50- (les numérateurs et dénominateurs décimaux ne sont pas autorisés) |
- Le format le plus utilisé pour la projection de films depuis les années 1960. | -
![]() |
- 239/100- (les numérateurs et dénominateurs décimaux ne sont pas autorisés) |
- Le format « large » utilisé pour projeter certains films (on parle de format anamorphique). | -
@media screen and (min-aspect-ratio: 1/1) {
- .exemple {
- background-color: palegreen;
- }
-}
-
-<p class="exemple"> - Essayez de m'étirer en longueur ou de me réduire en largeur -</p>- -
{{EmbedLiveSample("Exemple_appliqué","300","300")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Media Queries', '#values', '<ratio>')}} | -{{Spec2('CSS3 Media Queries')}} | -Définition initiale. | -
{{Compat("css.types.ratio")}}
- -Le type de donnée CSS <ratio> permet de décrire les proportions dans les media queries (N.D.T. pour « requête média » qui est moins usité). entre deux valeurs sans unité.
Une valeur de ce type se compose d'un entier strictement positif (type {{cssxref("<integer>")}}, suivi d'une barre oblique ('/', Unicode U+002F SOLIDUS) puis d'un second entier strictement positif (type {{cssxref("<integer>")}}). Il est possible d'avoir des espaces avant et après la barre oblique.
@media screen and (min-aspect-ratio: 16/9) { … }
+
+| + | Ratio | +Utilisation | +
|---|---|---|
![]() |
+ 4/3 |
+ Format traditionnel utilisé par les télévisions au XXe siècle. | +
![]() |
+ 16/9 |
+ Format « moderne » des télévisions. | +
![]() |
+ 185/100 = 91/50+ (les numérateurs et dénominateurs décimaux ne sont pas autorisés) |
+ Le format le plus utilisé pour la projection de films depuis les années 1960. | +
![]() |
+ 239/100+ (les numérateurs et dénominateurs décimaux ne sont pas autorisés) |
+ Le format « large » utilisé pour projeter certains films (on parle de format anamorphique). | +
@media screen and (min-aspect-ratio: 1/1) {
+ .exemple {
+ background-color: palegreen;
+ }
+}
+
+<p class="exemple"> + Essayez de m'étirer en longueur ou de me réduire en largeur +</p>+ +
{{EmbedLiveSample("Exemple_appliqué","300","300")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Media Queries', '#values', '<ratio>')}} | +{{Spec2('CSS3 Media Queries')}} | +Définition initiale. | +
{{Compat("css.types.ratio")}}
+ +Cette référence CSS fournit un index alphabétique de toutes les propriétés CSS standards, des pseudo-classes, des pseudo-éléments, des types de données et des règles @. Vous pouvez également trouver une liste alphabétique de tous les sélecteurs CSS par type et une liste des concepts clés de CSS. Enfin est inclus un bref sommaire de référence sur DOM-CSS / CSSOM.
- -règle-de-style-basique ::=
- liste-de-sélecteurs {
- liste-de-propriétés
- }
-
-
-... où :
- -liste-de-sélecteurs ::= - sélecteur[:pseudo-classe] [::pseudo-élément] - [, liste-de-sélecteurs] - -liste-de-propriétés ::= - [propriété : valeur] [; liste-de-propriétés] -- -
Voir aussi les sélecteurs, pseudo-classes, et pseudo-éléments listés ci-dessous. La syntaxe des valeurs dépend du type de données attendu pour chaque propriété indiquée.
- -strong {
- color: red;
-}
-
-div.menu-bar li:hover > ul {
- display: block;
-}
-
-
-Pour une introduction à la syntaxe des sélecteurs CSS, consultez ce tutoriel. Soyez conscient que n’importe quelle erreur de syntaxe CSS dans une définition de règle l’invalide entièrement. Les règles non validées sont ignorées par le navigateur. Note : les définitions de règles CSS sont intégralement basées sur du texte (ASCII) alors que DOM-CSS / CSSOM (le système de gestion des règles) est basé sur des objets.
- -Comme la structure des règles @ varie grandement, veuillez consulter règle @ pour trouver la syntaxe que vous souhaitez.
- -Note : Les noms de propriétés de cet index n’incluent pas les noms de l’API DOM JavaScript lorsqu’ils sont différents des noms standards CSS.
-{{CSS_Ref}}
- -Sont indiqués dans ce qui suit les divers sélecteurs, qui permettent aux styles d'être appliqués de façon conditionnelle selon diverses caractéristiques des éléments présents dans le DOM.
- -Les sélecteurs simples sont des sélecteurs fondamentaux. Ce sont les sélecteurs les plus élémentaires qui sont fréquemment combinés pour créer d'autres sélecteurs plus complexes.
- -nomElement.nomClasse#nomID*, ns|*, *|*, |*[attr=valeur]A, BA et B doivent être sélectionnés. Il s'agit d'une méthode de groupement pour sélectionner des éléments selon plusieurs critères.Les combinateurs sont des sélecteurs qui établissent une relation entre deux sélecteurs ou plus, tel que "A est un enfant de B" ou "A est adjacent à B".
- -A + BA et par B ont le même parent et que celui sélectionné par B suit immédiatement celui sélectionné par A.A ~ BA et par B ont le même parent et que celui sélectionné par B suit celui sélectionné par A, mais pas nécessairement immédiatement après lui.A > BB est un enfant direct de l’élément sélectionné par A.A BB est un descendant de l’élément sélectionné par A, mais n’en est pas nécessairement un enfant direct.A || B {{Experimental_Inline}}B est situé dans la colonne de table indiquée par A. Les éléments qui s’étendent sur des colonnes multiples sont considérés comme étant membres de chacune de ces colonnes.:::{{DOMxRef("StyleSheetList", "styleSheets", "", 1)}}[i].{{DOMxRef("CSSRuleList", "cssRules", "", 1)}}cssRules[i].{{DOMxRef("CSSRule.cssText", "cssText", "", 1)}} (sélecteur et style)cssRules[i].{{DOMxRef("CSSStyleRule.selectorText", "selectorText", "", 1)}}HTMLElement.style.{{DOMxRef("CSSStyleDeclaration.cssText", "cssText", "", 1)}} (style uniquement)-moz-)-webkit-)-ms-)Cette référence CSS fournit un index alphabétique de toutes les propriétés CSS standards, des pseudo-classes, des pseudo-éléments, des types de données et des règles @. Vous pouvez également trouver une liste alphabétique de tous les sélecteurs CSS par type et une liste des concepts clés de CSS. Enfin est inclus un bref sommaire de référence sur DOM-CSS / CSSOM.
+ +règle-de-style-basique ::=
+ liste-de-sélecteurs {
+ liste-de-propriétés
+ }
+
+
+... où :
+ +liste-de-sélecteurs ::= + sélecteur[:pseudo-classe] [::pseudo-élément] + [, liste-de-sélecteurs] + +liste-de-propriétés ::= + [propriété : valeur] [; liste-de-propriétés] ++ +
Voir aussi les sélecteurs, pseudo-classes, et pseudo-éléments listés ci-dessous. La syntaxe des valeurs dépend du type de données attendu pour chaque propriété indiquée.
+ +strong {
+ color: red;
+}
+
+div.menu-bar li:hover > ul {
+ display: block;
+}
+
+
+Pour une introduction à la syntaxe des sélecteurs CSS, consultez ce tutoriel. Soyez conscient que n’importe quelle erreur de syntaxe CSS dans une définition de règle l’invalide entièrement. Les règles non validées sont ignorées par le navigateur. Note : les définitions de règles CSS sont intégralement basées sur du texte (ASCII) alors que DOM-CSS / CSSOM (le système de gestion des règles) est basé sur des objets.
+ +Comme la structure des règles @ varie grandement, veuillez consulter règle @ pour trouver la syntaxe que vous souhaitez.
+ +Note : Les noms de propriétés de cet index n’incluent pas les noms de l’API DOM JavaScript lorsqu’ils sont différents des noms standards CSS.
+{{CSS_Ref}}
+ +Sont indiqués dans ce qui suit les divers sélecteurs, qui permettent aux styles d'être appliqués de façon conditionnelle selon diverses caractéristiques des éléments présents dans le DOM.
+ +Les sélecteurs simples sont des sélecteurs fondamentaux. Ce sont les sélecteurs les plus élémentaires qui sont fréquemment combinés pour créer d'autres sélecteurs plus complexes.
+ +nomElement.nomClasse#nomID*, ns|*, *|*, |*[attr=valeur]A, BA et B doivent être sélectionnés. Il s'agit d'une méthode de groupement pour sélectionner des éléments selon plusieurs critères.Les combinateurs sont des sélecteurs qui établissent une relation entre deux sélecteurs ou plus, tel que "A est un enfant de B" ou "A est adjacent à B".
+ +A + BA et par B ont le même parent et que celui sélectionné par B suit immédiatement celui sélectionné par A.A ~ BA et par B ont le même parent et que celui sélectionné par B suit celui sélectionné par A, mais pas nécessairement immédiatement après lui.A > BB est un enfant direct de l’élément sélectionné par A.A BB est un descendant de l’élément sélectionné par A, mais n’en est pas nécessairement un enfant direct.A || B {{Experimental_Inline}}B est situé dans la colonne de table indiquée par A. Les éléments qui s’étendent sur des colonnes multiples sont considérés comme étant membres de chacune de ces colonnes.:::{{DOMxRef("StyleSheetList", "styleSheets", "", 1)}}[i].{{DOMxRef("CSSRuleList", "cssRules", "", 1)}}cssRules[i].{{DOMxRef("CSSRule.cssText", "cssText", "", 1)}} (sélecteur et style)cssRules[i].{{DOMxRef("CSSStyleRule.selectorText", "selectorText", "", 1)}}HTMLElement.style.{{DOMxRef("CSSStyleDeclaration.cssText", "cssText", "", 1)}} (style uniquement)-moz-)-webkit-)-ms-)La fonction CSS repeat() permet de répéter un fragment d'une liste de pistes. Autrement dit, lorsqu'on a une grille avec de nombreuses lignes/colonnes, cela permet de réutiliser un même motif sur la grille. On a alors des règles plus concises.
Cette fonction peut être utilisée par les propriétés CSS {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}} relatives aux grilles.
- -/* Valeurs de type <track-repeat> */ -repeat(4, 1fr) -repeat(4, [col-start] 250px [col-end]) -repeat(4, [col-start] 60% [col-end]) -repeat(4, [col-start] 1fr [col-end]) -repeat(4, [col-start] min-content [col-end]) -repeat(4, [col-start] max-content [col-end]) -repeat(4, [col-start] auto [col-end]) -repeat(4, [col-start] minmax(100px, 1fr) [col-end]) -repeat(4, [col-start] fit-content(200px) [col-end]) -repeat(4, 10px [col-start] 30% [col-middle] auto [col-end]) -repeat(4, [col-start] min-content [col-middle] max-content [col-end]) - -/* Valeurs de type <auto-repeat> */ -repeat(auto-fill, 250px) -repeat(auto-fit, 250px) -repeat(auto-fill, [col-start] 250px [col-end]) -repeat(auto-fit, [col-start] 250px [col-end]) -repeat(auto-fill, [col-start] minmax(100px, 1fr) [col-end]) -repeat(auto-fill, 10px [col-start] 30% [col-middle] 400px [col-end]) - -/* Valeurs de type <fixed-repeat> */ -repeat(4, 250px) -repeat(4, [col-start] 250px [col-end]) -repeat(4, [col-start] 60% [col-end]) -repeat(4, [col-start] minmax(100px, 1fr) [col-end]) -repeat(4, [col-start] fit-content(200px) [col-end]) -repeat(4, 10px [col-start] 30% [col-middle] 400px [col-end]) -- -
<length><percentage><percentage> devra être interprété comme auto. L'agent utilisateur peut ajuster les tailles intrinsèques des pistes pour qu'elles remplissent exactement le conteneur et acroître le moins possible la taille finale de la piste pour qu'elle se rapproche du pourcentage souhaité.<flex>fr, qui indique le facteur de flexibilité de la piste (cf. le type {{cssxref("<flex>")}}). Chaque piste flexible partage l'espace de façon proportionnelle avec les autres pistes flexibles.max-contentmin-contentautomax-content. Utilisée comme minimum, elle représente la plus grande taille minimale (définie par {{cssxref("min-width")}}/{{cssxref("min-height")}}) des éléments qui occupent la piste.auto-fillauto-fitCette valeur se comporte comme auto-fill mais, une fois que les objets sont placés, toutes les pistes répétées qui sont vides sont repliées. Une piste vide est une piste qui ne contient aucun élément ou sur laquelle aucun élément n'intersecte. Toutes les pistes peuvent être repliées si elles sont toutes vides.
Une piste repliée est traitée comme si elle avait une taille de piste de 0px (les gouttières sont également repliées de chaque côté).
Afin de calculer le nombre de pistes automatiquement répétées, l'agent utilisateur arrondit la taille de la piste à une valeur non nulle, propre à l'agent utilisateur (par exemple 1 px), afin d'éviter les divisions par zéros.
-#container {
- display: grid;
- grid-template-columns: repeat(2, 50px 1fr) 100px;
- grid-gap: 5px;
- box-sizing: border-box;
- height: 200px;
- width: 100%;
- background-color: #8cffa0;
- padding: 10px;
-}
-
-#container > div {
- background-color: #8ca0ff;
- padding: 5px;
-}
-
-
-<div id="container"> - <div> - Un élément qui mesure 50 pixels de large. - </div> - <div> - Un élément avec une largeur flexible. - </div> - <div> - Un élément qui mesure 50 pixels de large. - </div> - <div> - Un élément avec une largeur flexible. - </div> - <div> - Un élément non-flexible qui mesure 100 pixels de large. - </div> -</div>- -
{{EmbedLiveSample("Example", "100%", 200)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Grid", "#funcdef-repeat", "repeat()")}} | -{{Spec2("CSS Grid")}} | -Définition initiale. | -
{{Compat("css.properties.grid-template-columns.repeat")}}
diff --git a/files/fr/web/css/repeat()/index.md b/files/fr/web/css/repeat()/index.md new file mode 100644 index 0000000000..e5657510f3 --- /dev/null +++ b/files/fr/web/css/repeat()/index.md @@ -0,0 +1,147 @@ +--- +title: repeat() +slug: Web/CSS/repeat() +tags: + - CSS + - Fonction + - Grille CSS + - Reference + - Web +translation_of: Web/CSS/repeat() +--- +La fonction CSS repeat() permet de répéter un fragment d'une liste de pistes. Autrement dit, lorsqu'on a une grille avec de nombreuses lignes/colonnes, cela permet de réutiliser un même motif sur la grille. On a alors des règles plus concises.
Cette fonction peut être utilisée par les propriétés CSS {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}} relatives aux grilles.
+ +/* Valeurs de type <track-repeat> */ +repeat(4, 1fr) +repeat(4, [col-start] 250px [col-end]) +repeat(4, [col-start] 60% [col-end]) +repeat(4, [col-start] 1fr [col-end]) +repeat(4, [col-start] min-content [col-end]) +repeat(4, [col-start] max-content [col-end]) +repeat(4, [col-start] auto [col-end]) +repeat(4, [col-start] minmax(100px, 1fr) [col-end]) +repeat(4, [col-start] fit-content(200px) [col-end]) +repeat(4, 10px [col-start] 30% [col-middle] auto [col-end]) +repeat(4, [col-start] min-content [col-middle] max-content [col-end]) + +/* Valeurs de type <auto-repeat> */ +repeat(auto-fill, 250px) +repeat(auto-fit, 250px) +repeat(auto-fill, [col-start] 250px [col-end]) +repeat(auto-fit, [col-start] 250px [col-end]) +repeat(auto-fill, [col-start] minmax(100px, 1fr) [col-end]) +repeat(auto-fill, 10px [col-start] 30% [col-middle] 400px [col-end]) + +/* Valeurs de type <fixed-repeat> */ +repeat(4, 250px) +repeat(4, [col-start] 250px [col-end]) +repeat(4, [col-start] 60% [col-end]) +repeat(4, [col-start] minmax(100px, 1fr) [col-end]) +repeat(4, [col-start] fit-content(200px) [col-end]) +repeat(4, 10px [col-start] 30% [col-middle] 400px [col-end]) ++ +
<length><percentage><percentage> devra être interprété comme auto. L'agent utilisateur peut ajuster les tailles intrinsèques des pistes pour qu'elles remplissent exactement le conteneur et acroître le moins possible la taille finale de la piste pour qu'elle se rapproche du pourcentage souhaité.<flex>fr, qui indique le facteur de flexibilité de la piste (cf. le type {{cssxref("<flex>")}}). Chaque piste flexible partage l'espace de façon proportionnelle avec les autres pistes flexibles.max-contentmin-contentautomax-content. Utilisée comme minimum, elle représente la plus grande taille minimale (définie par {{cssxref("min-width")}}/{{cssxref("min-height")}}) des éléments qui occupent la piste.auto-fillauto-fitCette valeur se comporte comme auto-fill mais, une fois que les objets sont placés, toutes les pistes répétées qui sont vides sont repliées. Une piste vide est une piste qui ne contient aucun élément ou sur laquelle aucun élément n'intersecte. Toutes les pistes peuvent être repliées si elles sont toutes vides.
Une piste repliée est traitée comme si elle avait une taille de piste de 0px (les gouttières sont également repliées de chaque côté).
Afin de calculer le nombre de pistes automatiquement répétées, l'agent utilisateur arrondit la taille de la piste à une valeur non nulle, propre à l'agent utilisateur (par exemple 1 px), afin d'éviter les divisions par zéros.
+#container {
+ display: grid;
+ grid-template-columns: repeat(2, 50px 1fr) 100px;
+ grid-gap: 5px;
+ box-sizing: border-box;
+ height: 200px;
+ width: 100%;
+ background-color: #8cffa0;
+ padding: 10px;
+}
+
+#container > div {
+ background-color: #8ca0ff;
+ padding: 5px;
+}
+
+
+<div id="container"> + <div> + Un élément qui mesure 50 pixels de large. + </div> + <div> + Un élément avec une largeur flexible. + </div> + <div> + Un élément qui mesure 50 pixels de large. + </div> + <div> + Un élément avec une largeur flexible. + </div> + <div> + Un élément non-flexible qui mesure 100 pixels de large. + </div> +</div>+ +
{{EmbedLiveSample("Example", "100%", 200)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Grid", "#funcdef-repeat", "repeat()")}} | +{{Spec2("CSS Grid")}} | +Définition initiale. | +
{{Compat("css.properties.grid-template-columns.repeat")}}
diff --git a/files/fr/web/css/replaced_element/index.html b/files/fr/web/css/replaced_element/index.html deleted file mode 100644 index 28903fbcc6..0000000000 --- a/files/fr/web/css/replaced_element/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Élément remplacé -slug: Web/CSS/Replaced_element -tags: - - CSS - - Reference -translation_of: Web/CSS/Replaced_element -original_slug: Web/CSS/Élément_remplacé ---- -En CSS, un élément remplacé est un élément dont la représentation est en dehors du champ de CSS. Ce sont des objets externes dont la représentation sera indépendante de CSS.
- -Autrement dit, ces éléments sont des éléments dont le contenu n'est pas impacté par les styles du document. La position de l'élément remplacé peut être modifiée avec CSS mais le contenu même de l'élément ne pourra pas être modifiée. Certains éléments remplacés comme {{HTMLElement("iframe")}} peuvent avoir leurs propres feuilles de styles mais ils n'héritent pas de celles du document parent.
- -Les éléments remplacés caractéristiques sont :
- -Par ailleurs, certains éléments comme :
- -sont des éléments remplacés dans certains cas spécifiques. De même un élément {{HTMLElement("input")}} peut être un élément remplacé dans certains cas (lorsqu'il est de type "image" notamment).
Les objets insérés grâce aux propriétés CSS {{cssxref("content")}} sont des éléments remplacés anonymes (on les qualifie d'anonymes car ils n'existent pas dans la structure du HTML).
- -Les éléments remplacés sont manipulés de façon spécifique par le moteur CSS, notamment pour le calcul des marges extérieures et certaines valeurs auto.
On notera que certains éléments remplacés ont des dimensions intrinsèques ou une ligne de base définie, qui sont utilisées par des propriétés CSS comme {{cssxref("vertical-align")}}.
- -Certaines propriétés CSS permettent d'indiquer la façon dont l'objet contenu dans l'élément remplacé doit occuper la boîte de l'élément. Ces propriétés sont définies dans les spécifications {{SpecName("CSS3 Images")}} et {{SpecName("CSS4 Images")}} :
- -En CSS, un élément remplacé est un élément dont la représentation est en dehors du champ de CSS. Ce sont des objets externes dont la représentation sera indépendante de CSS.
+ +Autrement dit, ces éléments sont des éléments dont le contenu n'est pas impacté par les styles du document. La position de l'élément remplacé peut être modifiée avec CSS mais le contenu même de l'élément ne pourra pas être modifiée. Certains éléments remplacés comme {{HTMLElement("iframe")}} peuvent avoir leurs propres feuilles de styles mais ils n'héritent pas de celles du document parent.
+ +Les éléments remplacés caractéristiques sont :
+ +Par ailleurs, certains éléments comme :
+ +sont des éléments remplacés dans certains cas spécifiques. De même un élément {{HTMLElement("input")}} peut être un élément remplacé dans certains cas (lorsqu'il est de type "image" notamment).
Les objets insérés grâce aux propriétés CSS {{cssxref("content")}} sont des éléments remplacés anonymes (on les qualifie d'anonymes car ils n'existent pas dans la structure du HTML).
+ +Les éléments remplacés sont manipulés de façon spécifique par le moteur CSS, notamment pour le calcul des marges extérieures et certaines valeurs auto.
On notera que certains éléments remplacés ont des dimensions intrinsèques ou une ligne de base définie, qui sont utilisées par des propriétés CSS comme {{cssxref("vertical-align")}}.
+ +Certaines propriétés CSS permettent d'indiquer la façon dont l'objet contenu dans l'élément remplacé doit occuper la boîte de l'élément. Ces propriétés sont définies dans les spécifications {{SpecName("CSS3 Images")}} et {{SpecName("CSS4 Images")}} :
+ +La propriété resize permet de contrôler le caractère redimensionnable d'un élément et notamment la direction dans laquelle celui-ci peut être redimensionné.
/* Valeurs avec un mot-clé */ -resize: none; -resize: both; -resize: horizontal; -resize: vertical; -resize: block; -resize: inline; - -/* Valeurs globales */ -resize: inherit; -resize: initial; -resize: unset; -- -
La propriété resize peut être définie avec l'un des mots-clés suivants.
nonebothhorizontalverticalblock {{experimental_inline}}inline {{experimental_inline}}Note : resize ne s'applique pas aux blocs dont la propriété {{cssxref("overflow")}} vaut visible.
textareaPar défaut, les éléments {{HTMLElement("textarea")}} peuvent être redimensionnés. Ce comportement peut être modifié grâce à ce fragment CSS :
- -textarea.exemple {
- resize: none;
-}
-
-
-<textarea class="exemple">Saisir du texte ici.</textarea>- -
{{EmbedLiveSample("Désactiver_le_redimensionnement_des_éléments_textarea","200","100")}}
- -resize sur des éléments quelconquesLa propriété resize peut être utilisée afin de pouvoir redimensionner n'importe quel élément. Dans l'exemple qui suit, on a une boîte {{HTMLElement("div")}} redimensionnable qui contient un paragraphe (({{HTMLElement("p")}}) lui-même redimensionnable) :
.redimensionnable {
- resize: both;
- overflow: scroll;
- border: 1px solid black;
-}
-
-div {
- height: 300px;
- width: 300px;
-}
-
-p {
- height: 200px;
- width: 200px;
-}
-
-
-<div class="redimensionnable"> - <p class="redimensionnable"> - Ce paragraphe peut être redimensionné car la propriété - CSS resize vaut 'both' sur cet élément. - </p> -</div> -- -
{{EmbedLiveSample("Utiliser_resize_sur_des_éléments_quelconques","450","450")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties', '#resize', 'resize')}} | -{{Spec2('CSS Logical Properties')}} | -Ajout des valeurs block et inline. |
-
| {{SpecName('CSS3 Basic UI', '#resize', 'resize')}} | -{{Spec2('CSS3 Basic UI')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.resize")}}
- -La propriété resize permet de contrôler le caractère redimensionnable d'un élément et notamment la direction dans laquelle celui-ci peut être redimensionné.
/* Valeurs avec un mot-clé */ +resize: none; +resize: both; +resize: horizontal; +resize: vertical; +resize: block; +resize: inline; + +/* Valeurs globales */ +resize: inherit; +resize: initial; +resize: unset; ++ +
La propriété resize peut être définie avec l'un des mots-clés suivants.
nonebothhorizontalverticalblock {{experimental_inline}}inline {{experimental_inline}}Note : resize ne s'applique pas aux blocs dont la propriété {{cssxref("overflow")}} vaut visible.
textareaPar défaut, les éléments {{HTMLElement("textarea")}} peuvent être redimensionnés. Ce comportement peut être modifié grâce à ce fragment CSS :
+ +textarea.exemple {
+ resize: none;
+}
+
+
+<textarea class="exemple">Saisir du texte ici.</textarea>+ +
{{EmbedLiveSample("Désactiver_le_redimensionnement_des_éléments_textarea","200","100")}}
+ +resize sur des éléments quelconquesLa propriété resize peut être utilisée afin de pouvoir redimensionner n'importe quel élément. Dans l'exemple qui suit, on a une boîte {{HTMLElement("div")}} redimensionnable qui contient un paragraphe (({{HTMLElement("p")}}) lui-même redimensionnable) :
.redimensionnable {
+ resize: both;
+ overflow: scroll;
+ border: 1px solid black;
+}
+
+div {
+ height: 300px;
+ width: 300px;
+}
+
+p {
+ height: 200px;
+ width: 200px;
+}
+
+
+<div class="redimensionnable"> + <p class="redimensionnable"> + Ce paragraphe peut être redimensionné car la propriété + CSS resize vaut 'both' sur cet élément. + </p> +</div> ++ +
{{EmbedLiveSample("Utiliser_resize_sur_des_éléments_quelconques","450","450")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties', '#resize', 'resize')}} | +{{Spec2('CSS Logical Properties')}} | +Ajout des valeurs block et inline. |
+
| {{SpecName('CSS3 Basic UI', '#resize', 'resize')}} | +{{Spec2('CSS3 Basic UI')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.resize")}}
+ +Le type de donnée CSS <resolution>, utilisé dans les media queries, décrit la densité de pixels d'un appareil d'affichage, c'est-à-dire sa résolution.
Les dimensions font référence aux unités CSS (un pixel CSS, un centimètre CSS, etc.) et non aux dimensions physiques.
- -Une valeur de ce type sera composée d'un nombre (une valeur de type {{cssxref("<number>")}}) immédiatement suivi d'une unité de résolution (dpi, dpcm, …). Comme pour les autres dimensions CSS, il n'y a aucun espace entre la valeur numérique et l'unité.
Bien que toutes les unités représentent la même chose pour la valeur 0, l'unité ne peut être omise dans ce cas puisque ce n'est pas une donnée de type {{cssxref("<length>")}} : 0 est invalide et ne représente pas 0dpi, 0dpcm, ni 0dppx.
dpi1 dpi ≈ 0,39 dpcm.dpcm1dpcm ≈ 2,54 dpi.dppxpx. Puisque le ratio entre les unités CSS in et CSS px vaut 1:96, 1 dppx est équivalent à 96 dpi, ce qui correspond à la résolution par défaut des images affichées en CSS tel que défini par {{cssxref("image-resolution")}}.xdppx.Note : Bien que le nombre 0 représente la même mesure pour ces différentes unités. Si la valeur est écrite sans unité, elle sera considérée comme invalide. Autrement dit, 0 est invalide et ne représente pas 0dpi, 0dpcm ou 0dppx.
Voici quelques exemples d'utilisation correcte de données de type <resolution> :
96dpi Usage correct : un {{cssxref("<number>")}} (ici un {{cssxref("<integer>")}}) suivi d'une unité.
-@media print and (min-resolution: 300dpi) { ... } Usage correct dans le contexte d'une media query.
-
-
-72 dpi Incorrect : les espaces ne sont pas acceptés entre le {{cssxref("<number>")}} et l'unité.
-ten dpi Incorrect : seules des expressions numériques sont acceptées.
-0 Incorrect : l'unité ne peut être omise que pour l'expression de la valeur 0 de type {{cssxref("<length>")}}.
-
-
-/* Saurez-vous trouver votre résolution en dpi */
-/* via l'exemple live ? */
-@media screen and (min-resolution: 100dpi) {
- .exemple {
- background-color: palegreen;
- }
-}
-
-@media screen and (max-resolution: 99dpi) {
- .exemple {
- background-color: orange;
- }
-}
-
-
-<p class="exemple"> - À ces mots le Chapelier ouvrit de grands yeux ; mais - il se contenta de dire : « Pourquoi une pie - ressemble-t-elle à un pupitre ? » -</p>- -
{{EmbedLiveSample("Exemple_appliqué","200","200")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#resolution', '<resolution>')}} | -{{Spec2('CSS4 Values')}} | -Ajout de l'unité x. |
-
| {{SpecName('CSS3 Values', '#resolution', '<resolution>')}} | -{{Spec2('CSS3 Values')}} | -Ajout de l'unité dppx. |
-
| {{SpecName('CSS3 Media Queries', '#resolution', '<resolution>')}} | -{{Spec2('CSS3 Media Queries')}} | -Définition initiale. | -
{{Compat("css.types.resolution")}}
- -Le type de donnée CSS <resolution>, utilisé dans les media queries, décrit la densité de pixels d'un appareil d'affichage, c'est-à-dire sa résolution.
Les dimensions font référence aux unités CSS (un pixel CSS, un centimètre CSS, etc.) et non aux dimensions physiques.
+ +Une valeur de ce type sera composée d'un nombre (une valeur de type {{cssxref("<number>")}}) immédiatement suivi d'une unité de résolution (dpi, dpcm, …). Comme pour les autres dimensions CSS, il n'y a aucun espace entre la valeur numérique et l'unité.
Bien que toutes les unités représentent la même chose pour la valeur 0, l'unité ne peut être omise dans ce cas puisque ce n'est pas une donnée de type {{cssxref("<length>")}} : 0 est invalide et ne représente pas 0dpi, 0dpcm, ni 0dppx.
dpi1 dpi ≈ 0,39 dpcm.dpcm1dpcm ≈ 2,54 dpi.dppxpx. Puisque le ratio entre les unités CSS in et CSS px vaut 1:96, 1 dppx est équivalent à 96 dpi, ce qui correspond à la résolution par défaut des images affichées en CSS tel que défini par {{cssxref("image-resolution")}}.xdppx.Note : Bien que le nombre 0 représente la même mesure pour ces différentes unités. Si la valeur est écrite sans unité, elle sera considérée comme invalide. Autrement dit, 0 est invalide et ne représente pas 0dpi, 0dpcm ou 0dppx.
Voici quelques exemples d'utilisation correcte de données de type <resolution> :
96dpi Usage correct : un {{cssxref("<number>")}} (ici un {{cssxref("<integer>")}}) suivi d'une unité.
+@media print and (min-resolution: 300dpi) { ... } Usage correct dans le contexte d'une media query.
+
+
+72 dpi Incorrect : les espaces ne sont pas acceptés entre le {{cssxref("<number>")}} et l'unité.
+ten dpi Incorrect : seules des expressions numériques sont acceptées.
+0 Incorrect : l'unité ne peut être omise que pour l'expression de la valeur 0 de type {{cssxref("<length>")}}.
+
+
+/* Saurez-vous trouver votre résolution en dpi */
+/* via l'exemple live ? */
+@media screen and (min-resolution: 100dpi) {
+ .exemple {
+ background-color: palegreen;
+ }
+}
+
+@media screen and (max-resolution: 99dpi) {
+ .exemple {
+ background-color: orange;
+ }
+}
+
+
+<p class="exemple"> + À ces mots le Chapelier ouvrit de grands yeux ; mais + il se contenta de dire : « Pourquoi une pie + ressemble-t-elle à un pupitre ? » +</p>+ +
{{EmbedLiveSample("Exemple_appliqué","200","200")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#resolution', '<resolution>')}} | +{{Spec2('CSS4 Values')}} | +Ajout de l'unité x. |
+
| {{SpecName('CSS3 Values', '#resolution', '<resolution>')}} | +{{Spec2('CSS3 Values')}} | +Ajout de l'unité dppx. |
+
| {{SpecName('CSS3 Media Queries', '#resolution', '<resolution>')}} | +{{Spec2('CSS3 Media Queries')}} | +Définition initiale. | +
{{Compat("css.types.resolution")}}
+ +La valeur résolue d'une propriété CSS est la valeur renvoyée par {{domxref("Window.getComputedStyle", "getComputedStyle()")}}. Pour la plupart des propriétés, il s'agit de la valeur calculée mais pour un tout petit nombre d'anciennes propriétés (dont {{cssxref("width")}} et {{cssxref("height")}}), il s'agit par contre de la valeur utilisée. Voir le lien vers la spécification ci-dessous pour des détails plus précis en fonction de chaque propriété.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSSOM", "#resolved-values", "resolved value")}} | -{{Spec2("CSSOM")}} | -Définition initiale | -
La valeur résolue d'une propriété CSS est la valeur renvoyée par {{domxref("Window.getComputedStyle", "getComputedStyle()")}}. Pour la plupart des propriétés, il s'agit de la valeur calculée mais pour un tout petit nombre d'anciennes propriétés (dont {{cssxref("width")}} et {{cssxref("height")}}), il s'agit par contre de la valeur utilisée. Voir le lien vers la spécification ci-dessous pour des détails plus précis en fonction de chaque propriété.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSSOM", "#resolved-values", "resolved value")}} | +{{Spec2("CSSOM")}} | +Définition initiale | +
Le mot-clé revert permet de remonter la cascade afin que la propriété puisse prendre la valeur qui aurait été utilisée sans mise en forme particulière (la valeur qu'elle aurait eu sans mise en forme appliquée par la feuille de style de l'auteur, de l'utilisateur ou de l'agent utilisateur). Ainsi, si la propriété hérite de son parent, elle prendra la valeur héritée et sinon la valeur par défaut de l'agent utilisateur (ou de la feuille de style utilisateur).
Cette valeur peut être utilisée pour n'importe quelle propriété CSS, y compris la propriété raccourcie {{cssxref("all")}}.
- -La remontée de la cascade sera plus ou moins prononcée selon l'endroit où est utilisé revert :
revert est utilisé dans une feuille de style d'un site, ce sera la valeur définie dans la feuille de style de l'utilisateur qui sera utilisée ou celle de l'agent utilisateur par défaut sinon.revert est utilisé dans une feuille de style utilisateur ou si le style a été appliqué par l'utilisateur, revert entraînera l'utilisation de la valeur par défaut de l'agent utilisateur.revert est utilisé comme style par défaut de l'agent utilisateur, il aura un comportement équivalent à {{cssxref("unset")}}Le mot-clé revert fonctionne comme unset pour de nombreux cas. Les seules différences observables se produisent quand les valeurs sont définies par le navigateur ou dans une feuille de style utilisateur.
revert n'aura pas d'effet sur les éléments fils de l'élément ciblé (mais supprimera l'effet d'une règle du parent qui s'appliquerait indirectement aux enfants).
Note : revert est une simple valeur, il est toujours possible de la surcharger par une autre avec une règle d'une spécificité supérieure.
Note : Le mot-clé revert est différent de {{cssxref("initial")}} et ne doit pas être confondu avec ce dernier. {{cssxref("initial")}} utilise la valeur initiale, définie pour chaque propriété par les spécifications CSS. En revanche, les feuilles de style des agents utilisateurs définissent des valeurs par défaut selon les sélecteurs CSS. Par exemple, la valeur initiale de {{cssxref("display")}} est inline mais un agent utilisateur pourra définir les valeurs par défaut suivante dans sa feuille de style : block pour {{HTMLElement("div")}}, table pour {{HTMLElement("table")}} etc.
<section> - <p>Voici une section !</p> - - <aside class="widget"> - <p>Et un petit widget.</p> - </aside> -</section> -- -
section p {
- color: blue;
- font-family: sans-serif;
- font-weight: bold;
-}
-
-.widget p {
- all: revert;
-}
-
-{{EmbedLiveSample('Exemple_simple')}}
- -revert et unsetBien que revert et unset soient semblables, il y a quelques différences pour certaines propriétés de certains éléments.
Dans l'exemple qui suit, on indique une valeur spécifique pour font-weight au niveau de la feuille de style globale sur laquelle on revient avec unset et revert. unset conservera un texte normal car c'est la valeur initiale pour font-weight tandis que revert rendra le texte en gras car c'est la valeur par défaut pour les titres pour la plupart des navigateurs.
h3 {
- font-weight: normal;
- color: blue;
-}
-
-<h3 style="font-weight: unset; color: unset;"> - Ceci aura toujours font-weight: normal mais color: black -</h3> -<p> - Juste un peu de texte -</p> -<h3 style="font-weight: revert; color: revert;"> - Ceci devrait avoir font-weight: bold (la valeur originale) - et color: black -</h3> -<p> - Juste un peu de texte -</p>- -
{{EmbedLiveSample('revert_et_unset')}}
- -allRevenir sur toutes les valeurs peut s'avérer utile lorsqu'on veut annuler l'effet de modifications lourdes. Si on poursuit avec l'exemple précédent, plutôt que de revenir séparément sur font-weight et color, on utilise all à la place.
h3 {
- font-weight: normal;
- color: blue;
- border-bottom: 1px solid grey;
-}
-
-<h3> - Un style spécifique -</h3> -<p> - Juste un peu de texte -</p> -<h3 style="all: revert"> - Retour aux réglages par défaut pour toutes les propriétés -</h3> -<p> - Juste un peu de texte -</p>- -
{{EmbedLiveSample('all')}}
- -Utiliser revert annule la valeur d'une propriété pour le seul élément ciblé. Pour illustrer ce principe, nous utiliserons une couleur verte pour une section et rouge pour un paragraphe.
section {
- color: darkgreen;
-}
-p {
- color: red;
-}
-section.with-revert {
- color: revert;
-}
-
-
-<section> - <h3>Ce texte sera vert foncé</h3> - <p>Ce texte sera rouge.</p> - Ce texte sera aussi vert. -</section> -<section class="with-revert"> - <h3>Ce texte sera noir</h3> - <p>Ce texte sera rouge.</p> - Ce texte sera aussi noir. -</section>- -
On voit ici que le paragraphe reste en rouge malgré l'utilisation de revert pour la section. On voit également que le titre et le nœud texte de la deuxième section sont en noir : comme si section { color: darkgreen } n'existait pas pour cette section.
{{EmbedLiveSample('Revenir_sur_une_propriété_du_parent')}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Cascade', '#default', 'revert')}} | -{{Spec2('CSS4 Cascade')}} | -Définition initiale. | -
{{Compat("css.types.global_keywords.revert")}}
- -Le mot-clé revert permet de remonter la cascade afin que la propriété puisse prendre la valeur qui aurait été utilisée sans mise en forme particulière (la valeur qu'elle aurait eu sans mise en forme appliquée par la feuille de style de l'auteur, de l'utilisateur ou de l'agent utilisateur). Ainsi, si la propriété hérite de son parent, elle prendra la valeur héritée et sinon la valeur par défaut de l'agent utilisateur (ou de la feuille de style utilisateur).
Cette valeur peut être utilisée pour n'importe quelle propriété CSS, y compris la propriété raccourcie {{cssxref("all")}}.
+ +La remontée de la cascade sera plus ou moins prononcée selon l'endroit où est utilisé revert :
revert est utilisé dans une feuille de style d'un site, ce sera la valeur définie dans la feuille de style de l'utilisateur qui sera utilisée ou celle de l'agent utilisateur par défaut sinon.revert est utilisé dans une feuille de style utilisateur ou si le style a été appliqué par l'utilisateur, revert entraînera l'utilisation de la valeur par défaut de l'agent utilisateur.revert est utilisé comme style par défaut de l'agent utilisateur, il aura un comportement équivalent à {{cssxref("unset")}}Le mot-clé revert fonctionne comme unset pour de nombreux cas. Les seules différences observables se produisent quand les valeurs sont définies par le navigateur ou dans une feuille de style utilisateur.
revert n'aura pas d'effet sur les éléments fils de l'élément ciblé (mais supprimera l'effet d'une règle du parent qui s'appliquerait indirectement aux enfants).
Note : revert est une simple valeur, il est toujours possible de la surcharger par une autre avec une règle d'une spécificité supérieure.
Note : Le mot-clé revert est différent de {{cssxref("initial")}} et ne doit pas être confondu avec ce dernier. {{cssxref("initial")}} utilise la valeur initiale, définie pour chaque propriété par les spécifications CSS. En revanche, les feuilles de style des agents utilisateurs définissent des valeurs par défaut selon les sélecteurs CSS. Par exemple, la valeur initiale de {{cssxref("display")}} est inline mais un agent utilisateur pourra définir les valeurs par défaut suivante dans sa feuille de style : block pour {{HTMLElement("div")}}, table pour {{HTMLElement("table")}} etc.
<section> + <p>Voici une section !</p> + + <aside class="widget"> + <p>Et un petit widget.</p> + </aside> +</section> ++ +
section p {
+ color: blue;
+ font-family: sans-serif;
+ font-weight: bold;
+}
+
+.widget p {
+ all: revert;
+}
+
+{{EmbedLiveSample('Exemple_simple')}}
+ +revert et unsetBien que revert et unset soient semblables, il y a quelques différences pour certaines propriétés de certains éléments.
Dans l'exemple qui suit, on indique une valeur spécifique pour font-weight au niveau de la feuille de style globale sur laquelle on revient avec unset et revert. unset conservera un texte normal car c'est la valeur initiale pour font-weight tandis que revert rendra le texte en gras car c'est la valeur par défaut pour les titres pour la plupart des navigateurs.
h3 {
+ font-weight: normal;
+ color: blue;
+}
+
+<h3 style="font-weight: unset; color: unset;"> + Ceci aura toujours font-weight: normal mais color: black +</h3> +<p> + Juste un peu de texte +</p> +<h3 style="font-weight: revert; color: revert;"> + Ceci devrait avoir font-weight: bold (la valeur originale) + et color: black +</h3> +<p> + Juste un peu de texte +</p>+ +
{{EmbedLiveSample('revert_et_unset')}}
+ +allRevenir sur toutes les valeurs peut s'avérer utile lorsqu'on veut annuler l'effet de modifications lourdes. Si on poursuit avec l'exemple précédent, plutôt que de revenir séparément sur font-weight et color, on utilise all à la place.
h3 {
+ font-weight: normal;
+ color: blue;
+ border-bottom: 1px solid grey;
+}
+
+<h3> + Un style spécifique +</h3> +<p> + Juste un peu de texte +</p> +<h3 style="all: revert"> + Retour aux réglages par défaut pour toutes les propriétés +</h3> +<p> + Juste un peu de texte +</p>+ +
{{EmbedLiveSample('all')}}
+ +Utiliser revert annule la valeur d'une propriété pour le seul élément ciblé. Pour illustrer ce principe, nous utiliserons une couleur verte pour une section et rouge pour un paragraphe.
section {
+ color: darkgreen;
+}
+p {
+ color: red;
+}
+section.with-revert {
+ color: revert;
+}
+
+
+<section> + <h3>Ce texte sera vert foncé</h3> + <p>Ce texte sera rouge.</p> + Ce texte sera aussi vert. +</section> +<section class="with-revert"> + <h3>Ce texte sera noir</h3> + <p>Ce texte sera rouge.</p> + Ce texte sera aussi noir. +</section>+ +
On voit ici que le paragraphe reste en rouge malgré l'utilisation de revert pour la section. On voit également que le titre et le nœud texte de la deuxième section sont en noir : comme si section { color: darkgreen } n'existait pas pour cette section.
{{EmbedLiveSample('Revenir_sur_une_propriété_du_parent')}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Cascade', '#default', 'revert')}} | +{{Spec2('CSS4 Cascade')}} | +Définition initiale. | +
{{Compat("css.types.global_keywords.revert")}}
+ +La propriété right définit, en partie, la position des éléments positionnés. La propriété right n'a aucun effet sur les éléments non-positionnés.
L'effet de la propriété right dépend de la façon dont l'élément est positionné (c'est-à-dire de la valeur de la propriété {{cssxref("position")}}) :
position vaut absolute ou fixed, right indique la distance entre le bord droit de l'élément et le bord droit du bloc englobant.position vaut relative, right indique la distance de laquelle le bord droit de l'élément est décalé vers la gauche par rapport à sa position normale.position vaut sticky, right se comporte comme relative lorsque l'élément est à l'intérieur de la zone d'affichage (viewport) et comme fixed lorsque l'élément est en dehors de la zone d'affichage.position vaut static, right n'a aucun effet.Lorsque les propriétés right et {{cssxref("left")}} sont définies toutes les deux et que l'élément ne peut pas s'étendre afin de satisfaire ces deux contraintes, la position de l'élément est sur-définie. Dans ce cas, la valeur de {{cssxref("left")}} est prioritaire lorsque le contenant est disposé en lecture de gauche à droite (la valeur calculée de right sera -left), et la valeur de right est prioritaire lorsque le contenant est disposé en lecture de droite à gauche (la valeur calculée de {{cssxref("left")}} sera -right).
/* Valeurs de longueur */ -/* Type <length> */ -right: 3px; -right: 2.4em; - -/* Valeurs de pourcentage */ -/* Type <percentage> */ -right: 10%; - -/* Valeur avec un mot-clé */ -right: auto; - -/* Valeurs globales */ -right: inherit; -right: initial; -right: unset; -- -
<length><percentage>autowidth: auto comme une largeur fondée sur le contenu ; ou, si left vaut aussi auto, l'élément serait positionné horizontalement comme s'il avait été un élément statique.left vaut également auto, aucun décalage.inheritauto.#exemple_3 {
- width: 100px;
- height: 100px;
- background-color: #FFC7E4;
- position: relative;
- top: 20px;
- left: 20px;
-}
-
-#exemple_4 {
- width: 100px;
- height: 100px;
- background-color: #FFD7C2;
- position: absolute;
- bottom: 10px;
- right: 20px;
-}
-
-<div id="exemple_3">Exemple 3</div> -<div id="exemple_4">Exemple 4</div> -- -
{{EmbedLiveSample('Exemples', 500, 220)}}
- -| Spécification | -État | -Commentaire | -
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'right')}} | -{{Spec2('CSS3 Transitions')}} | -Définit right comme pouvant être animée. |
-
| {{SpecName('CSS3 Positioning', '#propdef-right', 'right')}} | -{{Spec2('CSS3 Positioning')}} | -Description du comportement pour le comportement adhérent (sticky). | -
| {{SpecName('CSS2.1', 'visuren.html#propdef-right', 'right')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.right")}}
- -La propriété right définit, en partie, la position des éléments positionnés. La propriété right n'a aucun effet sur les éléments non-positionnés.
L'effet de la propriété right dépend de la façon dont l'élément est positionné (c'est-à-dire de la valeur de la propriété {{cssxref("position")}}) :
position vaut absolute ou fixed, right indique la distance entre le bord droit de l'élément et le bord droit du bloc englobant.position vaut relative, right indique la distance de laquelle le bord droit de l'élément est décalé vers la gauche par rapport à sa position normale.position vaut sticky, right se comporte comme relative lorsque l'élément est à l'intérieur de la zone d'affichage (viewport) et comme fixed lorsque l'élément est en dehors de la zone d'affichage.position vaut static, right n'a aucun effet.Lorsque les propriétés right et {{cssxref("left")}} sont définies toutes les deux et que l'élément ne peut pas s'étendre afin de satisfaire ces deux contraintes, la position de l'élément est sur-définie. Dans ce cas, la valeur de {{cssxref("left")}} est prioritaire lorsque le contenant est disposé en lecture de gauche à droite (la valeur calculée de right sera -left), et la valeur de right est prioritaire lorsque le contenant est disposé en lecture de droite à gauche (la valeur calculée de {{cssxref("left")}} sera -right).
/* Valeurs de longueur */ +/* Type <length> */ +right: 3px; +right: 2.4em; + +/* Valeurs de pourcentage */ +/* Type <percentage> */ +right: 10%; + +/* Valeur avec un mot-clé */ +right: auto; + +/* Valeurs globales */ +right: inherit; +right: initial; +right: unset; ++ +
<length><percentage>autowidth: auto comme une largeur fondée sur le contenu ; ou, si left vaut aussi auto, l'élément serait positionné horizontalement comme s'il avait été un élément statique.left vaut également auto, aucun décalage.inheritauto.#exemple_3 {
+ width: 100px;
+ height: 100px;
+ background-color: #FFC7E4;
+ position: relative;
+ top: 20px;
+ left: 20px;
+}
+
+#exemple_4 {
+ width: 100px;
+ height: 100px;
+ background-color: #FFD7C2;
+ position: absolute;
+ bottom: 10px;
+ right: 20px;
+}
+
+<div id="exemple_3">Exemple 3</div> +<div id="exemple_4">Exemple 4</div> ++ +
{{EmbedLiveSample('Exemples', 500, 220)}}
+ +| Spécification | +État | +Commentaire | +
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'right')}} | +{{Spec2('CSS3 Transitions')}} | +Définit right comme pouvant être animée. |
+
| {{SpecName('CSS3 Positioning', '#propdef-right', 'right')}} | +{{Spec2('CSS3 Positioning')}} | +Description du comportement pour le comportement adhérent (sticky). | +
| {{SpecName('CSS2.1', 'visuren.html#propdef-right', 'right')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.right")}}
+ +La propriété rotate permet d'indiquer des rotations individuellement et indépendamment de la propriété {{cssxref("transform")}}. Cela peut être utile pour la construction d'une interface utilisateur et évite d'avoir à se souvenir de l'ordre exact des fonctions de transformations à indiquer pour transform.
/* Valeurs avec un mot-clé */ -rotate: none; - -/* Valeur angulaire */ -rotate: 90deg; -rotate: 0.25turn; -rotate: 1.57rad; - -/* Un axe x, y, z et l'angle associé */ -rotate: x 90deg; -rotate: y 0.25turn; -rotate: z 1.57rad; - -/* Un vector et l'angle associé */ -rotate: 1 1 1 90deg;- -
rotate()."x", "y" ou "z"), puis une valeur {{cssxref("<angle>")}} qui indique l'angle à appliquer pour la rotation. Cela est équivalent à l'une des fonctions rotateX()/rotateY()/rotateZ().rotate3d().none<div> - <p class="rotate">Rotation</p> -</div>- -
* {
- box-sizing: border-box;
-}
-
-html {
- font-family: sans-serif;
-}
-
-div {
- width: 150px;
- margin: 0 auto;
-}
-
-p {
- padding: 10px 5px;
- border: 3px solid black;
- border-radius: 20px;
- width: 150px;
- font-size: 1.2rem;
- text-align: center;
-}
-
-.rotate {
- transition: rotate 1s;
-}
-
-div:hover .rotate {
- rotate: 1 -0.5 1 180deg;
-}
-
-{{EmbedLiveSample('Exemples')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Transforms 2', '#individual-transforms', 'individual transforms')}} | -{{Spec2('CSS Transforms 2')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.rotate")}}
- -La propriété rotate permet d'indiquer des rotations individuellement et indépendamment de la propriété {{cssxref("transform")}}. Cela peut être utile pour la construction d'une interface utilisateur et évite d'avoir à se souvenir de l'ordre exact des fonctions de transformations à indiquer pour transform.
/* Valeurs avec un mot-clé */ +rotate: none; + +/* Valeur angulaire */ +rotate: 90deg; +rotate: 0.25turn; +rotate: 1.57rad; + +/* Un axe x, y, z et l'angle associé */ +rotate: x 90deg; +rotate: y 0.25turn; +rotate: z 1.57rad; + +/* Un vector et l'angle associé */ +rotate: 1 1 1 90deg;+ +
rotate()."x", "y" ou "z"), puis une valeur {{cssxref("<angle>")}} qui indique l'angle à appliquer pour la rotation. Cela est équivalent à l'une des fonctions rotateX()/rotateY()/rotateZ().rotate3d().none<div> + <p class="rotate">Rotation</p> +</div>+ +
* {
+ box-sizing: border-box;
+}
+
+html {
+ font-family: sans-serif;
+}
+
+div {
+ width: 150px;
+ margin: 0 auto;
+}
+
+p {
+ padding: 10px 5px;
+ border: 3px solid black;
+ border-radius: 20px;
+ width: 150px;
+ font-size: 1.2rem;
+ text-align: center;
+}
+
+.rotate {
+ transition: rotate 1s;
+}
+
+div:hover .rotate {
+ rotate: 1 -0.5 1 180deg;
+}
+
+{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Transforms 2', '#individual-transforms', 'individual transforms')}} | +{{Spec2('CSS Transforms 2')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.rotate")}}
+ +La propriété row-gap définit la taille des gouttières entre les lignes d'un élément.
Note : La propriété {{cssxref("grid-row-gap")}} a d'abord été définie avec le module de spécification CSS Grid Layout. Cette propriété préfixée a ensuite été remplacée par row-gap dans le module CSS Alignment afin d'être généralisée à d'autres modes de disposition. Toutefois, à des fins de compatibilité envers les navigateurs qui n'implémentent pas encore la version non-préfixée, mieux vaut utiliser les deux versions.
/* Valeurs de longueur */ -/* Type <largeur> */ -row-gap: 20px; -row-gap: 1em; -row-gap: 3vmin; -row-gap: 0.5cm; - -/* Valeurs proportionnelles */ -/* Type <pourcentage> */ -row-gap: 10%; - -/* Valeurs globales */ -row-gap: inherit; -row-gap: initial; -row-gap: unset; -- -
<pourcentage-largeur>{{SeeCompatTable}}
- -#flexbox {
- display: flex;
- flex-wrap: wrap;
- width: 300px;
- row-gap: 20px;
-}
-
-#flexbox > div {
- background-color: lime;
- flex: 1 1 auto;
- width: 100px;
- height: 50px;
-}
-
-<div id="flexbox"> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> - <div></div> -</div> -- -
{{EmbedLiveSample('Disposition_flexible', "auto", "120px")}}
- -#grid {
- display: grid;
- height: 200px;
- grid-template-columns: 200px;
- grid-template-rows: repeat(3, 1fr);
- row-gap: 20px;
-}
-
-#grid > div {
- background-color: lime;
-}
-
-<div id="grid"> - <div></div> - <div></div> - <div></div> -</div>- -
{{EmbedLiveSample('Disposition_sur_une_grille', 'auto', 120)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-row-gap", "row-gap")}} | -{{Spec2("CSS3 Box Alignment")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.row-gap.flex_context")}}
- -{{Compat("css.properties.row-gap.grid_context")}}
- -La propriété row-gap définit la taille des gouttières entre les lignes d'un élément.
Note : La propriété {{cssxref("grid-row-gap")}} a d'abord été définie avec le module de spécification CSS Grid Layout. Cette propriété préfixée a ensuite été remplacée par row-gap dans le module CSS Alignment afin d'être généralisée à d'autres modes de disposition. Toutefois, à des fins de compatibilité envers les navigateurs qui n'implémentent pas encore la version non-préfixée, mieux vaut utiliser les deux versions.
/* Valeurs de longueur */ +/* Type <largeur> */ +row-gap: 20px; +row-gap: 1em; +row-gap: 3vmin; +row-gap: 0.5cm; + +/* Valeurs proportionnelles */ +/* Type <pourcentage> */ +row-gap: 10%; + +/* Valeurs globales */ +row-gap: inherit; +row-gap: initial; +row-gap: unset; ++ +
<pourcentage-largeur>{{SeeCompatTable}}
+ +#flexbox {
+ display: flex;
+ flex-wrap: wrap;
+ width: 300px;
+ row-gap: 20px;
+}
+
+#flexbox > div {
+ background-color: lime;
+ flex: 1 1 auto;
+ width: 100px;
+ height: 50px;
+}
+
+<div id="flexbox"> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> + <div></div> +</div> ++ +
{{EmbedLiveSample('Disposition_flexible', "auto", "120px")}}
+ +#grid {
+ display: grid;
+ height: 200px;
+ grid-template-columns: 200px;
+ grid-template-rows: repeat(3, 1fr);
+ row-gap: 20px;
+}
+
+#grid > div {
+ background-color: lime;
+}
+
+<div id="grid"> + <div></div> + <div></div> + <div></div> +</div>+ +
{{EmbedLiveSample('Disposition_sur_une_grille', 'auto', 120)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-row-gap", "row-gap")}} | +{{Spec2("CSS3 Box Alignment")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.row-gap.flex_context")}}
+ +{{Compat("css.properties.row-gap.grid_context")}}
+ +La propriété ruby-align définit la façon dont les éléments ruby sont distribués autour du texte de base.
/* Valeur avec un mot-clé */ -ruby-align: start; -ruby-align: center; -ruby-align: space-between; -ruby-align: space-around; - -/* Valeurs globales */ -ruby-align: inherit; -ruby-align: initial; -ruby-align: unset; -- -
startcenterspace-betweenspace-aroundCe fragment HTML sera affiché différemment en fonction des valeurs de ruby-align :
<ruby> - <rb>Un long texte pour tester</rb> - <rp>(</rp><rt>Un petit ruby</rt><rp>)</rp> -</ruby> -- -
ruby {
- ruby-align: start;
-}
-
-Avec ce CSS, on obtient le résultat suivant :
- -{{EmbedLiveSample("Alignement_par_rapport_au_début_du_texte_de_base", 180, 40)}}
- -ruby {
- ruby-align: center;
-}
-
-Avec ce CSS, on obtient le résultat suivant :
- -{{EmbedLiveSample("Alignement_par_rapport_au_centre", 180, 40)}}
- -ruby {
- ruby-align: space-between;
-}
-
-Avec ce CSS, on obtient le résultat suivant :
- -{{EmbedLiveSample("Un_espace_supplémentaire_entre_les_éléments_ruby", 180, 40)}}
- -ruby {
- ruby-align: space-around;
-}
-
-Avec ce CSS, on obtient le résultat suivant :
- -{{EmbedLiveSample("Un_espace_supplémentaire_entre_et_autour_des_éléments_ruby", 180, 40)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Ruby', '#ruby-align-property', 'ruby-align')}} | -{{Spec2('CSS3 Ruby')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.ruby-align")}}
- -La propriété ruby-align définit la façon dont les éléments ruby sont distribués autour du texte de base.
/* Valeur avec un mot-clé */ +ruby-align: start; +ruby-align: center; +ruby-align: space-between; +ruby-align: space-around; + +/* Valeurs globales */ +ruby-align: inherit; +ruby-align: initial; +ruby-align: unset; ++ +
startcenterspace-betweenspace-aroundCe fragment HTML sera affiché différemment en fonction des valeurs de ruby-align :
<ruby> + <rb>Un long texte pour tester</rb> + <rp>(</rp><rt>Un petit ruby</rt><rp>)</rp> +</ruby> ++ +
ruby {
+ ruby-align: start;
+}
+
+Avec ce CSS, on obtient le résultat suivant :
+ +{{EmbedLiveSample("Alignement_par_rapport_au_début_du_texte_de_base", 180, 40)}}
+ +ruby {
+ ruby-align: center;
+}
+
+Avec ce CSS, on obtient le résultat suivant :
+ +{{EmbedLiveSample("Alignement_par_rapport_au_centre", 180, 40)}}
+ +ruby {
+ ruby-align: space-between;
+}
+
+Avec ce CSS, on obtient le résultat suivant :
+ +{{EmbedLiveSample("Un_espace_supplémentaire_entre_les_éléments_ruby", 180, 40)}}
+ +ruby {
+ ruby-align: space-around;
+}
+
+Avec ce CSS, on obtient le résultat suivant :
+ +{{EmbedLiveSample("Un_espace_supplémentaire_entre_et_autour_des_éléments_ruby", 180, 40)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Ruby', '#ruby-align-property', 'ruby-align')}} | +{{Spec2('CSS3 Ruby')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.ruby-align")}}
+ +La propriété ruby-position définit la position d'un élément ruby par rapport à son élément de base. L'élément ruby peut ainsi être positionné au-dessus de l'élément (over), en-dessous (under) ou entre les caractères, sur leur droite (inter-character).
/* Valeurs avec un mot-clé */ -ruby-position: over; -ruby-position: under; -ruby-position: inter-character; - -/* Valeurs globales */ -ruby-position: inherit; -ruby-position: initial; -ruby-position: unset; -- -
overunderinter-characterCe fragment HTML rendra un résultat différent pour chaque valeur de ruby-position :
<ruby> - <rb>超電磁砲</rb> - <rp>(</rp><rt>レールガン</rt><rp>)</rp> -</ruby> -- -
ruby {
- ruby-position:over;
-}
-
-On obtiendra le résultat suivant :
- -{{EmbedLiveSample("Au-dessus_du_texte", 100, 40)}}
- -ruby {
- ruby-position:under;
-}
-
-On obtiendra le résultat suivant :
- -{{EmbedLiveSample("En-dessous_du_texte", 100, 40)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Ruby', '#rubypos', 'ruby-position')}} | -{{Spec2('CSS3 Ruby')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.ruby-position")}}
- -La propriété ruby-position définit la position d'un élément ruby par rapport à son élément de base. L'élément ruby peut ainsi être positionné au-dessus de l'élément (over), en-dessous (under) ou entre les caractères, sur leur droite (inter-character).
/* Valeurs avec un mot-clé */ +ruby-position: over; +ruby-position: under; +ruby-position: inter-character; + +/* Valeurs globales */ +ruby-position: inherit; +ruby-position: initial; +ruby-position: unset; ++ +
overunderinter-characterCe fragment HTML rendra un résultat différent pour chaque valeur de ruby-position :
<ruby> + <rb>超電磁砲</rb> + <rp>(</rp><rt>レールガン</rt><rp>)</rp> +</ruby> ++ +
ruby {
+ ruby-position:over;
+}
+
+On obtiendra le résultat suivant :
+ +{{EmbedLiveSample("Au-dessus_du_texte", 100, 40)}}
+ +ruby {
+ ruby-position:under;
+}
+
+On obtiendra le résultat suivant :
+ +{{EmbedLiveSample("En-dessous_du_texte", 100, 40)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Ruby', '#rubypos', 'ruby-position')}} | +{{Spec2('CSS3 Ruby')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.ruby-position")}}
+ +La propriété scale permet de mise à l'échelle individuellement et indépendamment de la propriété {{cssxref("transform")}}. Cela peut être utile pour la construction d'une interface utilisateur et évite d'avoir à se souvenir de l'ordre exact des fonctions de transformations à indiquer pour transform.
/* Valeurs avec un mot-clé */ -scale: none; - -/* Une seule valeur */ -/* Les valeurs supérieures à 1 agrandissent l'élément */ -scale: 2; -/* Les valeurs inférieures à 1 rétrécissent l'élément */ -scale: 0.5; - -/* Deux valeurs */ -scale: 2 0.5; - -/* Trois valeurs */ -scale: 2 0.5 2;- -
scale() (mise à l'échelle sur deux dimensions) avec une seule valeur.scale() appelée avec ces deux arguments.scale3d() appelée avec ces trois arguments.none<div> - <p class="scale">Scaling</p> -</div>- -
* {
- box-sizing: border-box;
-}
-
-html {
- font-family: sans-serif;
-}
-
-div {
- width: 150px;
- margin: 0 auto;
-}
-
-p {
- padding: 10px 5px;
- border: 3px solid black;
- border-radius: 20px;
- width: 150px;
- font-size: 1.2rem;
- text-align: center;
-}
-
-.scale {
- transition: scale 1s;
-}
-
-div:hover .scale {
- scale: 2 0.7;
-}
-
-
-{{EmbedLiveSample('Examples')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Transforms 2', '#individual-transforms', 'individual transforms')}} | -{{Spec2('CSS Transforms 2')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scale")}}
- -La propriété scale permet de mise à l'échelle individuellement et indépendamment de la propriété {{cssxref("transform")}}. Cela peut être utile pour la construction d'une interface utilisateur et évite d'avoir à se souvenir de l'ordre exact des fonctions de transformations à indiquer pour transform.
/* Valeurs avec un mot-clé */ +scale: none; + +/* Une seule valeur */ +/* Les valeurs supérieures à 1 agrandissent l'élément */ +scale: 2; +/* Les valeurs inférieures à 1 rétrécissent l'élément */ +scale: 0.5; + +/* Deux valeurs */ +scale: 2 0.5; + +/* Trois valeurs */ +scale: 2 0.5 2;+ +
scale() (mise à l'échelle sur deux dimensions) avec une seule valeur.scale() appelée avec ces deux arguments.scale3d() appelée avec ces trois arguments.none<div> + <p class="scale">Scaling</p> +</div>+ +
* {
+ box-sizing: border-box;
+}
+
+html {
+ font-family: sans-serif;
+}
+
+div {
+ width: 150px;
+ margin: 0 auto;
+}
+
+p {
+ padding: 10px 5px;
+ border: 3px solid black;
+ border-radius: 20px;
+ width: 150px;
+ font-size: 1.2rem;
+ text-align: center;
+}
+
+.scale {
+ transition: scale 1s;
+}
+
+div:hover .scale {
+ scale: 2 0.7;
+}
+
+
+{{EmbedLiveSample('Examples')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Transforms 2', '#individual-transforms', 'individual transforms')}} | +{{Spec2('CSS Transforms 2')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scale")}}
+ +Les images SVG sont très flexibles et lorsqu'on les utilise en CSS avec les propriétés {{cssxref("background-image")}} et {{cssxref("background-size")}}, il faut s'assurer de considérer les différents aspects qui leurs sont propres. Dans cet article, on décrit comment les images SVG sont redimensionnées grâce à ces propriétés.
- -Dans la plupart des cas, l'algorithme utilisé pourra être réduit à ces quatre règles. Ces règles ne sont pas exhaustives et ne couvrent pas certains cas aux limites mais cela sera suffisant ici :
- -On notera ici que l'algorithme ne prend en cas que les dimensions et/ou les proportions de l'image (leur absence éventullement). Ainsi, une image SVG dont les dimensions sont fixées sera traitée comme une image matricielle de la même taille.
- -Avant d'aller plus loin dans l'exploration des résultats avec {{cssxref("background-size")}}, il serait judicieux de disposer de différentes images sources avec différents paramètres de dimensions, proportions, etc.
- -Pour chaque cas d'exemple fourni ci-après, l'image est affichée dans une boîte carrée de 150 pixels et un lien est fourni vers le fichier SVG correspondant.
- -Cette image ne possède ni dimension ni proportion. Quelle que soit sa taille, il n'y aura pas de ratio largeur/hauteur particulier. On a ici une image qui forme un dégradé, quelles que soient les dimensions et la proportion de l'écran.
- -
Cette image mesure 100 pixels de large mais n'a pas de hauteur ni de proportion intrinsèque. On a ainsi une bande d'arrière-plan qui peut être étirée sur toute la hauteur d'un bloc.
- -
Cette image mesure 100 pixels de haut mais n'a pas de largeur fixée. Elle définit également une proportion de 3:4. Ainsi, le rapport largeur/hauteur sera toujours 3/4.
- -On a ici un cas très proche de l'image pour laquelle on définit une largeur et une hauteur car, une fois qu'on a une dimension et une proportion, la deuxième dimension est implicite. Cela n'en reste pas moins un exemple utile.
- -
Cette image n'indique pas de hauteur ou de largeur mais un ratio intrinsèque de 1:1. On obtiendra toujours un carré (qui pourra être utilisé comme une icône) pour n'importe quelle taille : 32x32, 128x128, or 512x512.
- -
Appliquons maintenant différents redimensionnements sur ces images. Pour chacun des exemples qui suivent, les rectangles dessinés font 300 pixels de large et 200 pixels de haut. De plus, on utilise {{cssxref("background-repeat")}} avec no-repeat pour plus de clarté..
Note : Les images montrées ci-après illustrent le rendu attendu. Les navigateurs peuvent ne pas produire le bon résultat.
-Si on utilise {{cssxref("background-size")}} pour indiquer la longueur et la largeur de l'image, celles-ci seront toujours utilisées (cf. la règle n°1 précédemment énoncée). Autrement dit, l'image sera toujours étirée pour obtenir ces dimensions, quelles que soient les dimensions initiales de l'image ou ses proportions.
- -Avec ces déclarations CSS :
- -background: url(no-dimensions-or-ratio.svg); -background-size: 125px 175px; -- -
On doit obtenir un résultat semblable à :
- -
Avec ces déclarations CSS :
- -background: url(100px-wide-no-height-or-ratio.svg); -background-size: 250px 150px; -- -
On doit obtenir un résultat semblable à :
- -
Avec ces déclarations CSS :
- -background: url(100px-height-3x4-ratio.svg); -background-size: 275px 125px; -- -
On doit obtenir un résultat semblable à :
- -
Avec ces déclarations CSS :
- -background: url(no-dimensions-1x1-ratio.svg); -background-size: 250px 100px; -- -
On doit obtenir un résultat semblable à :
- -
contain ou coverEn utilisant la valeur cover pour {{cssxref("background-size")}}, l'image sera réduite au maximum pour couvrir toute la zone de l'arrière-plan. contain fonctionne de façon symétrique, l'image est agrandie autant que possible sans être rognée par la zone de l'arrière-plan.
Pour une image avec des proportions intrinsèques, une seule dimension suffira à déterminer la taille pour cover/contain. En revanche, sans ratio, ce n'est pas suffisant et il faut donc utiliser les contraintes de la zone de l'arrière-plan.
Si une image n'a ni dimensions définie, ni proportions définies, les règles 2 ou 3 ne pourront pas s'appliquer. La règle 4 est donc utilisée et l'image couvre toute la zone (ce qui satisfait d'ailleurs les différentes contraintes).
- -background: url(no-dimensions-or-ratio.svg); -background-size: contain; -- -
Le résultat obtenu sera :
- -
De même si l'image possède une dimension mais aucune proportion, la règle 4 sera appliquée : l'image est ainsi redimensionnée pour couvrir toute la zone.
- -background: url(100px-wide-no-height-or-ratio.svg); -background-size: contain; -- -
Le résultat obtenu sera :
- -
Ici, on a des proportions intrinsèques. Dans ce cas, la règle 1 n'est pas pertinente et on utilise donc la règle 2 : le ratio est conservé (tout en respectant les consignes de contain ou cover). Ainsi, avec contain, la boîte de 300x200 et le ratio de 3:4 entraîneront le dessin d'un arrière-plan de 150x200.
containbackground: url(100px-height-3x4-ratio.svg); -background-size: contain; -- -
Le résultat obtenu sera :
- -
On voit ici que toute l'image est affichée et est contenue dans la boîte sans être rognée.
- -coverbackground: url(100px-height-3x4-ratio.svg); -background-size: cover; -- -
Le résultat obtenu sera :
- -
Dans ce cas, le ratio 3:4 est conservé et l'image est étirée Here, the 3:4 ratio is preserved while still stretching the image to fill the entire box. That causes the bottom of the image to be clipped away.
- -On obtient des résultats analogues lorsqu'on manipule une image sans dimension intrinsèque mais avec des proportions intrinsèques.
- -containbackground: url(no-dimensions-1x1-ratio.svg); -background-size: contain; -- -
Le résultat ressemblera à :
- -
On voit ici que l'image est redimensionnée à la plus petite taille tout en conservant le ratio 1:1.
- -coverbackground: url(no-dimensions-1x1-ratio.svg); -background-size: cover; -- -
Le résultat ressemblera à :
- -
Ici, l'image est dimensionnée afin de couvrir la plus grande surface avec le ratio 1:1.
- -auto pour les deux axesSi {{cssxref("background-size")}} vaut auto ou auto auto, ce sera la règle n°2 qui s'appliquera : les proportions intrinsèques devront être conservées.
Lorsque l'image n'a aucune proportion ni dimension, ce sera la dernière règle qui s'appliquera : l'image couvrira toute la surface de la zone.
- -background: url(no-dimensions-or-ratio.svg); -background-size: auto auto; -- -
Voici le résultat obtenu :
- -
S'il n'y a aucune proportion définie mais qu'une dimension est fournie, la règle n°3 s'appliquera et l'image sera affichée avec ces dimensions.
- -background: url(100px-wide-no-height-or-ratio.svg); -background-size: auto auto; -- -
Voici le résultat obtenu :
- -
Ici, on voit que la largeur définie par le fichier SVG (100 pixels) est respectée. L'image s'étend sur toute la hauteur de la zone de l'arrière-plan car elle n'est pas définie (explicitement dans les déclarations ou intrinsèquement via l'image).
- -Si on dispose de proportions intrinsèques et d'une dimension fixée, les deux dimensions sont alors définies.
- -background: url(100px-height-3x4-ratio.svg); -background-size: auto auto; -- -
Le résultat sera le suivant :
- -
Cette image mesure 100 pixels de haut et possède des proportions intrinsèques avec un ratio de 3:4. La largeur vaut donc 75 pixels et c'est ainsi qu'elle est affichée avec auto.
Lorsqu'un ratio s'applique sans dimension, c'est la règle n°2 qui s'applique. L'image est affichée comme pour contain.
background: url(no-dimensions-1x1-ratio.svg); -background-size: auto auto; -- -
Le résultat ressemblera à :
- -
auto et une dimension fixéeAvec la première règle, les dimensions définies sont toujours utilisées et il faut donc utiliser les autres règles pour déterminer la seconde dimension.
- -Si l'image ne possède ni dimension ni proportion intrinsèque, c'est la règle 4 qui s'applique et les dimensions de la zone pour l'arrière-plan seront utilisées pour auto.
background: url(no-dimensions-or-ratio.svg); -background-size: auto 140px; -- -

Ici, la largeur est déterminée grâce à la zone dédiée à l'arrière-plan (règle n°4) et la hauteur est indiquée via la feuille de style (140px).
- -Si l'image possède une dimension implicite mais pas de ratio, la dimension définie sera utilisée selon la règle n°3 si elle vaut auto dans le code CSS.
background: url(100px-wide-no-height-or-ratio.svg); -background-size: 200px auto; -- -

Ici, la valeur de 200px fournie dans la feuille de style surcharge la valeur de 100px définie dans le fichier SVG. Puisqu'il n'y a aucune proportion intrinsèque ni hauteur de définie et qu'on utilise la valeur auto, l'image fera la même hauteur que la zone pour l'arrière-plan.
background: url(100px-wide-no-height-or-ratio.svg); -background-size: auto 125px; -- -

Ici, c'est la largeur qui vaut auto et ce sera donc la valeur définie dans l'image SVG (100px) qui sera utilisée. La hauteur est fixée à 125 pixels via la feuille de style.
Lorsqu'une dimension est indiquée, la première règle s'applique et la dimension du fichier SVG est utilisée sauf si le CSS la redéfinit. Lorsqu'un ratio est indiqué, celui-ci est utilisé pour déterminer la deuxième dimension.
- -background: url(100px-height-3x4-ratio.svg); -background-size: 150px auto; -- -

Ici, la hauteur de l'image a été surchargée pour valoir 150px. Les proportions intrinsèques permettent ensuite de définir la largeur (auto dans la feuille de style).
Si aucune dimension n'est définie dans l'image SVG, ce sera celle du CSS qui sera appliquée. Les proportions intrinsèques sont ensuite utilisées pour déterminer l'autre dimension (selon la rgèle n°2).
- -background: url(no-dimensions-1x1-ratio.svg); -background-size: 150px auto; -- -

La largeur est définie à 150 pixels via la feuille de style et la hauteur est calculée à partir de cette largeur en utilisant le ratio 1:1, elle vaudra donc 150px ce qui donnera le résultat ci-dessus.
- -Les images SVG sont très flexibles et lorsqu'on les utilise en CSS avec les propriétés {{cssxref("background-image")}} et {{cssxref("background-size")}}, il faut s'assurer de considérer les différents aspects qui leurs sont propres. Dans cet article, on décrit comment les images SVG sont redimensionnées grâce à ces propriétés.
+ +Dans la plupart des cas, l'algorithme utilisé pourra être réduit à ces quatre règles. Ces règles ne sont pas exhaustives et ne couvrent pas certains cas aux limites mais cela sera suffisant ici :
+ +On notera ici que l'algorithme ne prend en cas que les dimensions et/ou les proportions de l'image (leur absence éventullement). Ainsi, une image SVG dont les dimensions sont fixées sera traitée comme une image matricielle de la même taille.
+ +Avant d'aller plus loin dans l'exploration des résultats avec {{cssxref("background-size")}}, il serait judicieux de disposer de différentes images sources avec différents paramètres de dimensions, proportions, etc.
+ +Pour chaque cas d'exemple fourni ci-après, l'image est affichée dans une boîte carrée de 150 pixels et un lien est fourni vers le fichier SVG correspondant.
+ +Cette image ne possède ni dimension ni proportion. Quelle que soit sa taille, il n'y aura pas de ratio largeur/hauteur particulier. On a ici une image qui forme un dégradé, quelles que soient les dimensions et la proportion de l'écran.
+ +
Cette image mesure 100 pixels de large mais n'a pas de hauteur ni de proportion intrinsèque. On a ainsi une bande d'arrière-plan qui peut être étirée sur toute la hauteur d'un bloc.
+ +
Cette image mesure 100 pixels de haut mais n'a pas de largeur fixée. Elle définit également une proportion de 3:4. Ainsi, le rapport largeur/hauteur sera toujours 3/4.
+ +On a ici un cas très proche de l'image pour laquelle on définit une largeur et une hauteur car, une fois qu'on a une dimension et une proportion, la deuxième dimension est implicite. Cela n'en reste pas moins un exemple utile.
+ +
Cette image n'indique pas de hauteur ou de largeur mais un ratio intrinsèque de 1:1. On obtiendra toujours un carré (qui pourra être utilisé comme une icône) pour n'importe quelle taille : 32x32, 128x128, or 512x512.
+ +
Appliquons maintenant différents redimensionnements sur ces images. Pour chacun des exemples qui suivent, les rectangles dessinés font 300 pixels de large et 200 pixels de haut. De plus, on utilise {{cssxref("background-repeat")}} avec no-repeat pour plus de clarté..
Note : Les images montrées ci-après illustrent le rendu attendu. Les navigateurs peuvent ne pas produire le bon résultat.
+Si on utilise {{cssxref("background-size")}} pour indiquer la longueur et la largeur de l'image, celles-ci seront toujours utilisées (cf. la règle n°1 précédemment énoncée). Autrement dit, l'image sera toujours étirée pour obtenir ces dimensions, quelles que soient les dimensions initiales de l'image ou ses proportions.
+ +Avec ces déclarations CSS :
+ +background: url(no-dimensions-or-ratio.svg); +background-size: 125px 175px; ++ +
On doit obtenir un résultat semblable à :
+ +
Avec ces déclarations CSS :
+ +background: url(100px-wide-no-height-or-ratio.svg); +background-size: 250px 150px; ++ +
On doit obtenir un résultat semblable à :
+ +
Avec ces déclarations CSS :
+ +background: url(100px-height-3x4-ratio.svg); +background-size: 275px 125px; ++ +
On doit obtenir un résultat semblable à :
+ +
Avec ces déclarations CSS :
+ +background: url(no-dimensions-1x1-ratio.svg); +background-size: 250px 100px; ++ +
On doit obtenir un résultat semblable à :
+ +
contain ou coverEn utilisant la valeur cover pour {{cssxref("background-size")}}, l'image sera réduite au maximum pour couvrir toute la zone de l'arrière-plan. contain fonctionne de façon symétrique, l'image est agrandie autant que possible sans être rognée par la zone de l'arrière-plan.
Pour une image avec des proportions intrinsèques, une seule dimension suffira à déterminer la taille pour cover/contain. En revanche, sans ratio, ce n'est pas suffisant et il faut donc utiliser les contraintes de la zone de l'arrière-plan.
Si une image n'a ni dimensions définie, ni proportions définies, les règles 2 ou 3 ne pourront pas s'appliquer. La règle 4 est donc utilisée et l'image couvre toute la zone (ce qui satisfait d'ailleurs les différentes contraintes).
+ +background: url(no-dimensions-or-ratio.svg); +background-size: contain; ++ +
Le résultat obtenu sera :
+ +
De même si l'image possède une dimension mais aucune proportion, la règle 4 sera appliquée : l'image est ainsi redimensionnée pour couvrir toute la zone.
+ +background: url(100px-wide-no-height-or-ratio.svg); +background-size: contain; ++ +
Le résultat obtenu sera :
+ +
Ici, on a des proportions intrinsèques. Dans ce cas, la règle 1 n'est pas pertinente et on utilise donc la règle 2 : le ratio est conservé (tout en respectant les consignes de contain ou cover). Ainsi, avec contain, la boîte de 300x200 et le ratio de 3:4 entraîneront le dessin d'un arrière-plan de 150x200.
containbackground: url(100px-height-3x4-ratio.svg); +background-size: contain; ++ +
Le résultat obtenu sera :
+ +
On voit ici que toute l'image est affichée et est contenue dans la boîte sans être rognée.
+ +coverbackground: url(100px-height-3x4-ratio.svg); +background-size: cover; ++ +
Le résultat obtenu sera :
+ +
Dans ce cas, le ratio 3:4 est conservé et l'image est étirée Here, the 3:4 ratio is preserved while still stretching the image to fill the entire box. That causes the bottom of the image to be clipped away.
+ +On obtient des résultats analogues lorsqu'on manipule une image sans dimension intrinsèque mais avec des proportions intrinsèques.
+ +containbackground: url(no-dimensions-1x1-ratio.svg); +background-size: contain; ++ +
Le résultat ressemblera à :
+ +
On voit ici que l'image est redimensionnée à la plus petite taille tout en conservant le ratio 1:1.
+ +coverbackground: url(no-dimensions-1x1-ratio.svg); +background-size: cover; ++ +
Le résultat ressemblera à :
+ +
Ici, l'image est dimensionnée afin de couvrir la plus grande surface avec le ratio 1:1.
+ +auto pour les deux axesSi {{cssxref("background-size")}} vaut auto ou auto auto, ce sera la règle n°2 qui s'appliquera : les proportions intrinsèques devront être conservées.
Lorsque l'image n'a aucune proportion ni dimension, ce sera la dernière règle qui s'appliquera : l'image couvrira toute la surface de la zone.
+ +background: url(no-dimensions-or-ratio.svg); +background-size: auto auto; ++ +
Voici le résultat obtenu :
+ +
S'il n'y a aucune proportion définie mais qu'une dimension est fournie, la règle n°3 s'appliquera et l'image sera affichée avec ces dimensions.
+ +background: url(100px-wide-no-height-or-ratio.svg); +background-size: auto auto; ++ +
Voici le résultat obtenu :
+ +
Ici, on voit que la largeur définie par le fichier SVG (100 pixels) est respectée. L'image s'étend sur toute la hauteur de la zone de l'arrière-plan car elle n'est pas définie (explicitement dans les déclarations ou intrinsèquement via l'image).
+ +Si on dispose de proportions intrinsèques et d'une dimension fixée, les deux dimensions sont alors définies.
+ +background: url(100px-height-3x4-ratio.svg); +background-size: auto auto; ++ +
Le résultat sera le suivant :
+ +
Cette image mesure 100 pixels de haut et possède des proportions intrinsèques avec un ratio de 3:4. La largeur vaut donc 75 pixels et c'est ainsi qu'elle est affichée avec auto.
Lorsqu'un ratio s'applique sans dimension, c'est la règle n°2 qui s'applique. L'image est affichée comme pour contain.
background: url(no-dimensions-1x1-ratio.svg); +background-size: auto auto; ++ +
Le résultat ressemblera à :
+ +
auto et une dimension fixéeAvec la première règle, les dimensions définies sont toujours utilisées et il faut donc utiliser les autres règles pour déterminer la seconde dimension.
+ +Si l'image ne possède ni dimension ni proportion intrinsèque, c'est la règle 4 qui s'applique et les dimensions de la zone pour l'arrière-plan seront utilisées pour auto.
background: url(no-dimensions-or-ratio.svg); +background-size: auto 140px; ++ +

Ici, la largeur est déterminée grâce à la zone dédiée à l'arrière-plan (règle n°4) et la hauteur est indiquée via la feuille de style (140px).
+ +Si l'image possède une dimension implicite mais pas de ratio, la dimension définie sera utilisée selon la règle n°3 si elle vaut auto dans le code CSS.
background: url(100px-wide-no-height-or-ratio.svg); +background-size: 200px auto; ++ +

Ici, la valeur de 200px fournie dans la feuille de style surcharge la valeur de 100px définie dans le fichier SVG. Puisqu'il n'y a aucune proportion intrinsèque ni hauteur de définie et qu'on utilise la valeur auto, l'image fera la même hauteur que la zone pour l'arrière-plan.
background: url(100px-wide-no-height-or-ratio.svg); +background-size: auto 125px; ++ +

Ici, c'est la largeur qui vaut auto et ce sera donc la valeur définie dans l'image SVG (100px) qui sera utilisée. La hauteur est fixée à 125 pixels via la feuille de style.
Lorsqu'une dimension est indiquée, la première règle s'applique et la dimension du fichier SVG est utilisée sauf si le CSS la redéfinit. Lorsqu'un ratio est indiqué, celui-ci est utilisé pour déterminer la deuxième dimension.
+ +background: url(100px-height-3x4-ratio.svg); +background-size: 150px auto; ++ +

Ici, la hauteur de l'image a été surchargée pour valoir 150px. Les proportions intrinsèques permettent ensuite de définir la largeur (auto dans la feuille de style).
Si aucune dimension n'est définie dans l'image SVG, ce sera celle du CSS qui sera appliquée. Les proportions intrinsèques sont ensuite utilisées pour déterminer l'autre dimension (selon la rgèle n°2).
+ +background: url(no-dimensions-1x1-ratio.svg); +background-size: 150px auto; ++ +

La largeur est définie à 150 pixels via la feuille de style et la hauteur est calculée à partir de cette largeur en utilisant le ratio 1:1, elle vaudra donc 150px ce qui donnera le résultat ci-dessus.
+ +La propriété scroll-behavior définit le comportement du défilement pour une boîte de défilement lorsque celui-ci provient de la navigation ou des API CSSOM.
Pour les autres défilements, appliqués par l'utilisateur, cette propriété n'a aucun impact. Lorsque cette propriété est définie sur l'élément racine, elle s'applique à la zone d'affichage (viewport).
- -Les agents utilisateur peuvent choisir d'ignorer cette propriété. Lorsque cette propriété est indiquée sur l'élément body, elle ne se propage pas à la zone d'affichage (viewport).
/* Valeurs avec un mot-clé */ -scroll-behavior: auto; -scroll-behavior: smooth; - -/* Valeurs globales */ -scroll-behavior: inherit; -scroll-behavior: initial; -scroll-behavior: unset; -- -
La propriété scroll-behavior est définie avec l'un des mots-clés suivants.
autosmootha {
- display: inline-block;
- width: 50px;
- text-decoration: none;
-}
-nav, scroll-container {
- display: block;
- margin: 0 auto;
- text-align: center;
-}
-nav {
- width: 339px;
- padding: 5px;
- border: 1px solid black;
-}
-scroll-container {
- display: block;
- width: 350px;
- height: 200px;
- overflow-y: scroll;
- scroll-behavior: smooth;
-}
-scroll-page {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 100%;
- font-size: 5em;
-}
-
-
-<nav> - <a href="#page-1">1</a> - <a href="#page-2">2</a> - <a href="#page-3">3</a> -</nav> -<scroll-container> - <scroll-page id="page-1">1</scroll-page> - <scroll-page id="page-2">2</scroll-page> - <scroll-page id="page-3">3</scroll-page> -</scroll-container>- -
{{EmbedLiveSample("Exemples", "100%", 250)}}
- -Les troubles du système vestibulaires peuvent être causés par la maladie, l'âge ou des blessures. Ces troubles entraînent des vertiges, fatigues et nausées suite aux mouvements.
- -En utilisant la caractéristique média prefers-reduced-motion, on peut désactiver le défilement instantanné pour les utilisateurs qui ont paramétré leur système/navigateur afin de réduire les animations et mouvements :
html {
- scroll-behavior: smooth;
-}
-
-@media (prefers-reduced-motion: reduce) {
- html {
- scroll-behavior: auto;
- }
-}
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSSOM View', "#propdef-scroll-behavior", 'scroll-behavior')}} | -{{Spec2('CSSOM View')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-behavior")}}
diff --git a/files/fr/web/css/scroll-behavior/index.md b/files/fr/web/css/scroll-behavior/index.md new file mode 100644 index 0000000000..b36cc1c52b --- /dev/null +++ b/files/fr/web/css/scroll-behavior/index.md @@ -0,0 +1,139 @@ +--- +title: scroll-behavior +slug: Web/CSS/scroll-behavior +tags: + - CSS + - CSSOM + - Propriété + - Reference +translation_of: Web/CSS/scroll-behavior +--- +La propriété scroll-behavior définit le comportement du défilement pour une boîte de défilement lorsque celui-ci provient de la navigation ou des API CSSOM.
Pour les autres défilements, appliqués par l'utilisateur, cette propriété n'a aucun impact. Lorsque cette propriété est définie sur l'élément racine, elle s'applique à la zone d'affichage (viewport).
+ +Les agents utilisateur peuvent choisir d'ignorer cette propriété. Lorsque cette propriété est indiquée sur l'élément body, elle ne se propage pas à la zone d'affichage (viewport).
/* Valeurs avec un mot-clé */ +scroll-behavior: auto; +scroll-behavior: smooth; + +/* Valeurs globales */ +scroll-behavior: inherit; +scroll-behavior: initial; +scroll-behavior: unset; ++ +
La propriété scroll-behavior est définie avec l'un des mots-clés suivants.
autosmootha {
+ display: inline-block;
+ width: 50px;
+ text-decoration: none;
+}
+nav, scroll-container {
+ display: block;
+ margin: 0 auto;
+ text-align: center;
+}
+nav {
+ width: 339px;
+ padding: 5px;
+ border: 1px solid black;
+}
+scroll-container {
+ display: block;
+ width: 350px;
+ height: 200px;
+ overflow-y: scroll;
+ scroll-behavior: smooth;
+}
+scroll-page {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+ font-size: 5em;
+}
+
+
+<nav> + <a href="#page-1">1</a> + <a href="#page-2">2</a> + <a href="#page-3">3</a> +</nav> +<scroll-container> + <scroll-page id="page-1">1</scroll-page> + <scroll-page id="page-2">2</scroll-page> + <scroll-page id="page-3">3</scroll-page> +</scroll-container>+ +
{{EmbedLiveSample("Exemples", "100%", 250)}}
+ +Les troubles du système vestibulaires peuvent être causés par la maladie, l'âge ou des blessures. Ces troubles entraînent des vertiges, fatigues et nausées suite aux mouvements.
+ +En utilisant la caractéristique média prefers-reduced-motion, on peut désactiver le défilement instantanné pour les utilisateurs qui ont paramétré leur système/navigateur afin de réduire les animations et mouvements :
html {
+ scroll-behavior: smooth;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ html {
+ scroll-behavior: auto;
+ }
+}
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSSOM View', "#propdef-scroll-behavior", 'scroll-behavior')}} | +{{Spec2('CSSOM View')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-behavior")}}
diff --git a/files/fr/web/css/scroll-margin-block-end/index.html b/files/fr/web/css/scroll-margin-block-end/index.html deleted file mode 100644 index a74b5f68b8..0000000000 --- a/files/fr/web/css/scroll-margin-block-end/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: scroll-margin-block-end -slug: Web/CSS/scroll-margin-block-end -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-margin-block-end ---- -La propriété scroll-margin-block-end définit la marge de défilement de l'élément sur la fin de l'axe de bloc. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-block-end: 10px; -scroll-margin-block-end: 1em; - -/* Valeurs globales */ -scroll-margin-block-end: inherit; -scroll-margin-block-end: initial; -scroll-margin-block-end: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-block-end", "scroll-margin-block-end")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-block-end")}}
diff --git a/files/fr/web/css/scroll-margin-block-end/index.md b/files/fr/web/css/scroll-margin-block-end/index.md new file mode 100644 index 0000000000..a74b5f68b8 --- /dev/null +++ b/files/fr/web/css/scroll-margin-block-end/index.md @@ -0,0 +1,64 @@ +--- +title: scroll-margin-block-end +slug: Web/CSS/scroll-margin-block-end +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-margin-block-end +--- +La propriété scroll-margin-block-end définit la marge de défilement de l'élément sur la fin de l'axe de bloc. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-block-end: 10px; +scroll-margin-block-end: 1em; + +/* Valeurs globales */ +scroll-margin-block-end: inherit; +scroll-margin-block-end: initial; +scroll-margin-block-end: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-block-end", "scroll-margin-block-end")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-block-end")}}
diff --git a/files/fr/web/css/scroll-margin-block-start/index.html b/files/fr/web/css/scroll-margin-block-start/index.html deleted file mode 100644 index 7b3be15a1c..0000000000 --- a/files/fr/web/css/scroll-margin-block-start/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: scroll-margin-block-start -slug: Web/CSS/scroll-margin-block-start -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-margin-block-start ---- -La propriété scroll-margin-block-start définit la marge de défilement de l'élément sur le début de l'axe de bloc. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-block-start: 10px; -scroll-margin-block-start: 1em; - -/* Valeurs globales */ -scroll-margin-block-start: inherit; -scroll-margin-block-start: initial; -scroll-margin-block-start: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-block-start", "scroll-margin-block-start")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-block-start")}}
diff --git a/files/fr/web/css/scroll-margin-block-start/index.md b/files/fr/web/css/scroll-margin-block-start/index.md new file mode 100644 index 0000000000..7b3be15a1c --- /dev/null +++ b/files/fr/web/css/scroll-margin-block-start/index.md @@ -0,0 +1,64 @@ +--- +title: scroll-margin-block-start +slug: Web/CSS/scroll-margin-block-start +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-margin-block-start +--- +La propriété scroll-margin-block-start définit la marge de défilement de l'élément sur le début de l'axe de bloc. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-block-start: 10px; +scroll-margin-block-start: 1em; + +/* Valeurs globales */ +scroll-margin-block-start: inherit; +scroll-margin-block-start: initial; +scroll-margin-block-start: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-block-start", "scroll-margin-block-start")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-block-start")}}
diff --git a/files/fr/web/css/scroll-margin-block/index.html b/files/fr/web/css/scroll-margin-block/index.html deleted file mode 100644 index b6dc166495..0000000000 --- a/files/fr/web/css/scroll-margin-block/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: scroll-margin-block -slug: Web/CSS/scroll-margin-block -tags: - - CSS - - Propriété - - Propriété logique - - Propriété raccourcie - - Reference -translation_of: Web/CSS/scroll-margin-block ---- -La propriété scroll-margin-block est une propriété raccourcie logique qui définit les marges de défilement sur l'axe de bloc (i.e. les propriétés logiques scroll-margin-block-start et scroll-margin-block-end).
Les valeurs des marges de défilement correspondent aux décalages entre la zone qui est utilisée pour définir les limites du défilement de la boîtes et la zone de défilement normale (snapport). La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
- -/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-block: 10px; -scroll-margin-block: 1em .5em; - -/* Valeurs globales */ -scroll-margin-block: inherit; -scroll-margin-block: initial; -scroll-margin-block: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-block", "scroll-margin-block")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-block")}}
diff --git a/files/fr/web/css/scroll-margin-block/index.md b/files/fr/web/css/scroll-margin-block/index.md new file mode 100644 index 0000000000..b6dc166495 --- /dev/null +++ b/files/fr/web/css/scroll-margin-block/index.md @@ -0,0 +1,67 @@ +--- +title: scroll-margin-block +slug: Web/CSS/scroll-margin-block +tags: + - CSS + - Propriété + - Propriété logique + - Propriété raccourcie + - Reference +translation_of: Web/CSS/scroll-margin-block +--- +La propriété scroll-margin-block est une propriété raccourcie logique qui définit les marges de défilement sur l'axe de bloc (i.e. les propriétés logiques scroll-margin-block-start et scroll-margin-block-end).
Les valeurs des marges de défilement correspondent aux décalages entre la zone qui est utilisée pour définir les limites du défilement de la boîtes et la zone de défilement normale (snapport). La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
+ +/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-block: 10px; +scroll-margin-block: 1em .5em; + +/* Valeurs globales */ +scroll-margin-block: inherit; +scroll-margin-block: initial; +scroll-margin-block: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-block", "scroll-margin-block")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-block")}}
diff --git a/files/fr/web/css/scroll-margin-bottom/index.html b/files/fr/web/css/scroll-margin-bottom/index.html deleted file mode 100644 index 0986de2acb..0000000000 --- a/files/fr/web/css/scroll-margin-bottom/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: scroll-margin-bottom -slug: Web/CSS/scroll-margin-bottom -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-margin-bottom ---- -La propriété scroll-margin-bottom définit la marge de défilement de l'élément sur le côté bas. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-bottom: 10px; -scroll-margin-bottom: 1em; - -/* Valeurs globales */ -scroll-margin-bottom: inherit; -scroll-margin-bottom: initial; -scroll-margin-bottom: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-bottom", "scroll-margin-bottom")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-bottom")}}
diff --git a/files/fr/web/css/scroll-margin-bottom/index.md b/files/fr/web/css/scroll-margin-bottom/index.md new file mode 100644 index 0000000000..0986de2acb --- /dev/null +++ b/files/fr/web/css/scroll-margin-bottom/index.md @@ -0,0 +1,63 @@ +--- +title: scroll-margin-bottom +slug: Web/CSS/scroll-margin-bottom +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-margin-bottom +--- +La propriété scroll-margin-bottom définit la marge de défilement de l'élément sur le côté bas. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-bottom: 10px; +scroll-margin-bottom: 1em; + +/* Valeurs globales */ +scroll-margin-bottom: inherit; +scroll-margin-bottom: initial; +scroll-margin-bottom: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-bottom", "scroll-margin-bottom")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-bottom")}}
diff --git a/files/fr/web/css/scroll-margin-inline-end/index.html b/files/fr/web/css/scroll-margin-inline-end/index.html deleted file mode 100644 index 18711e98e7..0000000000 --- a/files/fr/web/css/scroll-margin-inline-end/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: scroll-margin-inline-end -slug: Web/CSS/scroll-margin-inline-end -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-margin-inline-end ---- -La propriété scroll-margin-inline-end définit la marge de défilement de l'élément sur la fin de l'axe en ligne. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-inline-end: 10px; -scroll-margin-inline-end: 1em; - -/* Valeurs globales */ -scroll-margin-inline-end: inherit; -scroll-margin-inline-end: initial; -scroll-margin-inline-end: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-inline-end", "scroll-margin-inline-end")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-inline-end")}}
diff --git a/files/fr/web/css/scroll-margin-inline-end/index.md b/files/fr/web/css/scroll-margin-inline-end/index.md new file mode 100644 index 0000000000..18711e98e7 --- /dev/null +++ b/files/fr/web/css/scroll-margin-inline-end/index.md @@ -0,0 +1,64 @@ +--- +title: scroll-margin-inline-end +slug: Web/CSS/scroll-margin-inline-end +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-margin-inline-end +--- +La propriété scroll-margin-inline-end définit la marge de défilement de l'élément sur la fin de l'axe en ligne. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-inline-end: 10px; +scroll-margin-inline-end: 1em; + +/* Valeurs globales */ +scroll-margin-inline-end: inherit; +scroll-margin-inline-end: initial; +scroll-margin-inline-end: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-inline-end", "scroll-margin-inline-end")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-inline-end")}}
diff --git a/files/fr/web/css/scroll-margin-inline-start/index.html b/files/fr/web/css/scroll-margin-inline-start/index.html deleted file mode 100644 index 4df15ab81d..0000000000 --- a/files/fr/web/css/scroll-margin-inline-start/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: scroll-margin-inline-start -slug: Web/CSS/scroll-margin-inline-start -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-margin-inline-start ---- -La propriété scroll-margin-inline-start définit la marge de défilement de l'élément sur le début de l'axe en ligne. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-inline-start: 10px; -scroll-margin-inline-start: 1em; - -/* Valeurs globales */ -scroll-margin-inline-start: inherit; -scroll-margin-inline-start: initial; -scroll-margin-inline-start: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-inline-start", "scroll-margin-inline-start")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-inline-start")}}
diff --git a/files/fr/web/css/scroll-margin-inline-start/index.md b/files/fr/web/css/scroll-margin-inline-start/index.md new file mode 100644 index 0000000000..4df15ab81d --- /dev/null +++ b/files/fr/web/css/scroll-margin-inline-start/index.md @@ -0,0 +1,64 @@ +--- +title: scroll-margin-inline-start +slug: Web/CSS/scroll-margin-inline-start +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-margin-inline-start +--- +La propriété scroll-margin-inline-start définit la marge de défilement de l'élément sur le début de l'axe en ligne. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-inline-start: 10px; +scroll-margin-inline-start: 1em; + +/* Valeurs globales */ +scroll-margin-inline-start: inherit; +scroll-margin-inline-start: initial; +scroll-margin-inline-start: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-inline-start", "scroll-margin-inline-start")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-inline-start")}}
diff --git a/files/fr/web/css/scroll-margin-inline/index.html b/files/fr/web/css/scroll-margin-inline/index.html deleted file mode 100644 index d9bfd6a157..0000000000 --- a/files/fr/web/css/scroll-margin-inline/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: scroll-margin-inline -slug: Web/CSS/scroll-margin-inline -tags: - - CSS - - Propriété - - Propriété logique - - Propriété raccourcie - - Reference -translation_of: Web/CSS/scroll-margin-inline ---- -La propriété scroll-margin-inline est une propriété raccourcie logique qui définit les marges de défilement sur l'axe de bloc (i.e. les propriétés logiques scroll-margin-inline-start et scroll-margin-inline-end).
Les valeurs des marges de défilement correspondent aux décalages entre la zone qui est utilisée pour définir les limites du défilement de la boîtes et la zone de défilement normale (snapport). La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
- -/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-inline: 10px; -scroll-margin-inline: 1em .5em; - -/* Valeurs globales */ -scroll-margin-inline: inherit; -scroll-margin-inline: initial; -scroll-margin-inline: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-inline", "scroll-margin-inline")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-inline")}}
diff --git a/files/fr/web/css/scroll-margin-inline/index.md b/files/fr/web/css/scroll-margin-inline/index.md new file mode 100644 index 0000000000..d9bfd6a157 --- /dev/null +++ b/files/fr/web/css/scroll-margin-inline/index.md @@ -0,0 +1,65 @@ +--- +title: scroll-margin-inline +slug: Web/CSS/scroll-margin-inline +tags: + - CSS + - Propriété + - Propriété logique + - Propriété raccourcie + - Reference +translation_of: Web/CSS/scroll-margin-inline +--- +La propriété scroll-margin-inline est une propriété raccourcie logique qui définit les marges de défilement sur l'axe de bloc (i.e. les propriétés logiques scroll-margin-inline-start et scroll-margin-inline-end).
Les valeurs des marges de défilement correspondent aux décalages entre la zone qui est utilisée pour définir les limites du défilement de la boîtes et la zone de défilement normale (snapport). La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
+ +/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-inline: 10px; +scroll-margin-inline: 1em .5em; + +/* Valeurs globales */ +scroll-margin-inline: inherit; +scroll-margin-inline: initial; +scroll-margin-inline: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-inline", "scroll-margin-inline")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-inline")}}
diff --git a/files/fr/web/css/scroll-margin-left/index.html b/files/fr/web/css/scroll-margin-left/index.html deleted file mode 100644 index 0dfa5d2da7..0000000000 --- a/files/fr/web/css/scroll-margin-left/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: scroll-margin-left -slug: Web/CSS/scroll-margin-left -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-margin-left ---- -La propriété scroll-margin-left définit la marge de défilement de l'élément sur le côté gauche. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-left: 10px; -scroll-margin-left: 1em; - -/* Valeurs globales */ -scroll-margin-left: inherit; -scroll-margin-left: initial; -scroll-margin-left: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-left", "scroll-margin-left")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-left")}}
diff --git a/files/fr/web/css/scroll-margin-left/index.md b/files/fr/web/css/scroll-margin-left/index.md new file mode 100644 index 0000000000..0dfa5d2da7 --- /dev/null +++ b/files/fr/web/css/scroll-margin-left/index.md @@ -0,0 +1,63 @@ +--- +title: scroll-margin-left +slug: Web/CSS/scroll-margin-left +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-margin-left +--- +La propriété scroll-margin-left définit la marge de défilement de l'élément sur le côté gauche. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-left: 10px; +scroll-margin-left: 1em; + +/* Valeurs globales */ +scroll-margin-left: inherit; +scroll-margin-left: initial; +scroll-margin-left: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-left", "scroll-margin-left")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-left")}}
diff --git a/files/fr/web/css/scroll-margin-right/index.html b/files/fr/web/css/scroll-margin-right/index.html deleted file mode 100644 index 40c8d6a091..0000000000 --- a/files/fr/web/css/scroll-margin-right/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: scroll-margin-right -slug: Web/CSS/scroll-margin-right -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-margin-right ---- -La propriété scroll-margin-right définit la marge de défilement de l'élément sur le côté droit. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-right: 10px; -scroll-margin-right: 1em; - -/* Valeurs globales */ -scroll-margin-right: inherit; -scroll-margin-right: initial; -scroll-margin-right: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-right", "scroll-margin-right")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-right")}}
diff --git a/files/fr/web/css/scroll-margin-right/index.md b/files/fr/web/css/scroll-margin-right/index.md new file mode 100644 index 0000000000..40c8d6a091 --- /dev/null +++ b/files/fr/web/css/scroll-margin-right/index.md @@ -0,0 +1,63 @@ +--- +title: scroll-margin-right +slug: Web/CSS/scroll-margin-right +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-margin-right +--- +La propriété scroll-margin-right définit la marge de défilement de l'élément sur le côté droit. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-right: 10px; +scroll-margin-right: 1em; + +/* Valeurs globales */ +scroll-margin-right: inherit; +scroll-margin-right: initial; +scroll-margin-right: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-right", "scroll-margin-right")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-right")}}
diff --git a/files/fr/web/css/scroll-margin-top/index.html b/files/fr/web/css/scroll-margin-top/index.html deleted file mode 100644 index 4224a5fa9d..0000000000 --- a/files/fr/web/css/scroll-margin-top/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: scroll-margin-top -slug: Web/CSS/scroll-margin-top -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-margin-top ---- -La propriété scroll-margin-top définit la marge de défilement de l'élément sur le côté haut. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ -/* Type <length> */ -scroll-margin-top: 10px; -scroll-margin-top: 1em; - -/* Valeurs globales */ -scroll-margin-top: inherit; -scroll-margin-top: initial; -scroll-margin-top: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-top", "scroll-margin-top")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin-top")}}
diff --git a/files/fr/web/css/scroll-margin-top/index.md b/files/fr/web/css/scroll-margin-top/index.md new file mode 100644 index 0000000000..4224a5fa9d --- /dev/null +++ b/files/fr/web/css/scroll-margin-top/index.md @@ -0,0 +1,63 @@ +--- +title: scroll-margin-top +slug: Web/CSS/scroll-margin-top +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-margin-top +--- +La propriété scroll-margin-top définit la marge de défilement de l'élément sur le côté haut. La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeurs de longueur */ +/* Type <length> */ +scroll-margin-top: 10px; +scroll-margin-top: 1em; + +/* Valeurs globales */ +scroll-margin-top: inherit; +scroll-margin-top: initial; +scroll-margin-top: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin-top", "scroll-margin-top")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin-top")}}
diff --git a/files/fr/web/css/scroll-margin/index.html b/files/fr/web/css/scroll-margin/index.html deleted file mode 100644 index e26d030e58..0000000000 --- a/files/fr/web/css/scroll-margin/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: scroll-margin -slug: Web/CSS/scroll-margin -tags: - - CSS - - Propriété - - Propriété raccourcie - - Reference -translation_of: Web/CSS/scroll-margin ---- -La propriété scroll-margin est une propriété raccourcie qui permet de définir l'ensemble des propriétés scroll-margin-top, scroll-margin-left, scroll-margin-bottom et scroll-margin-right (de la même façon que la propriété margin définit les différents côtés des marges).
Les valeurs de scroll-margin correspondent aux décalages entre la zone qui est utilisée pour définir les limites du défilement de la boîtes et la zone de défilement normale (snapport). La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeur de longueur */ -/* Type <length> */ -scroll-margin: 10px; -scroll-margin: 1em .5em 1em 1em; - -/* Valeurs globales */ -scroll-margin: inherit; -scroll-margin: initial; -scroll-margin: unset; -- -
<length>| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin", "scroll-margin")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-margin")}}
diff --git a/files/fr/web/css/scroll-margin/index.md b/files/fr/web/css/scroll-margin/index.md new file mode 100644 index 0000000000..e26d030e58 --- /dev/null +++ b/files/fr/web/css/scroll-margin/index.md @@ -0,0 +1,65 @@ +--- +title: scroll-margin +slug: Web/CSS/scroll-margin +tags: + - CSS + - Propriété + - Propriété raccourcie + - Reference +translation_of: Web/CSS/scroll-margin +--- +La propriété scroll-margin est une propriété raccourcie qui permet de définir l'ensemble des propriétés scroll-margin-top, scroll-margin-left, scroll-margin-bottom et scroll-margin-right (de la même façon que la propriété margin définit les différents côtés des marges).
Les valeurs de scroll-margin correspondent aux décalages entre la zone qui est utilisée pour définir les limites du défilement de la boîtes et la zone de défilement normale (snapport). La zone de défilement est déterminée en prenant la boîte de bordure modifiée, en prenant le rectangle englobant puis en ajoutant les décalages indiqués.
/* Valeur de longueur */ +/* Type <length> */ +scroll-margin: 10px; +scroll-margin: 1em .5em 1em 1em; + +/* Valeurs globales */ +scroll-margin: inherit; +scroll-margin: initial; +scroll-margin: unset; ++ +
<length>| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-margin", "scroll-margin")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-margin")}}
diff --git a/files/fr/web/css/scroll-padding-block-end/index.html b/files/fr/web/css/scroll-padding-block-end/index.html deleted file mode 100644 index 611ab1bdd8..0000000000 --- a/files/fr/web/css/scroll-padding-block-end/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: scroll-padding-block-end -slug: Web/CSS/scroll-padding-block-end -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-padding-block-end ---- -La propriété scroll-padding-block-end est une propriété qui permet de définir le remplissage, à la fin de l'axe de bloc, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-block-end: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-block-end: 10px; -scroll-padding-block-end: 1em; -scroll-padding-block-end: 10%; - -/* Valeurs globales */ -scroll-padding-block-end: inherit; -scroll-padding-block-end: initial; -scroll-padding-block-end: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-block-end", "scroll-padding-block-end")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-block-end")}}
diff --git a/files/fr/web/css/scroll-padding-block-end/index.md b/files/fr/web/css/scroll-padding-block-end/index.md new file mode 100644 index 0000000000..611ab1bdd8 --- /dev/null +++ b/files/fr/web/css/scroll-padding-block-end/index.md @@ -0,0 +1,72 @@ +--- +title: scroll-padding-block-end +slug: Web/CSS/scroll-padding-block-end +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-padding-block-end +--- +La propriété scroll-padding-block-end est une propriété qui permet de définir le remplissage, à la fin de l'axe de bloc, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-block-end: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-block-end: 10px; +scroll-padding-block-end: 1em; +scroll-padding-block-end: 10%; + +/* Valeurs globales */ +scroll-padding-block-end: inherit; +scroll-padding-block-end: initial; +scroll-padding-block-end: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-block-end", "scroll-padding-block-end")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-block-end")}}
diff --git a/files/fr/web/css/scroll-padding-block-start/index.html b/files/fr/web/css/scroll-padding-block-start/index.html deleted file mode 100644 index 5d844f73ef..0000000000 --- a/files/fr/web/css/scroll-padding-block-start/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: scroll-padding-block-start -slug: Web/CSS/scroll-padding-block-start -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-padding-block-start ---- -La propriété scroll-padding-block-start est une propriété qui permet de définir le remplissage, au début de l'axe de bloc, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-block-start: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-block-start: 10px; -scroll-padding-block-start: 1em; -scroll-padding-block-start: 10%; - -/* Valeurs globales */ -scroll-padding-block-start: inherit; -scroll-padding-block-start: initial; -scroll-padding-block-start: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-block-start", "scroll-padding-block-start")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-block-start")}}
diff --git a/files/fr/web/css/scroll-padding-block-start/index.md b/files/fr/web/css/scroll-padding-block-start/index.md new file mode 100644 index 0000000000..5d844f73ef --- /dev/null +++ b/files/fr/web/css/scroll-padding-block-start/index.md @@ -0,0 +1,72 @@ +--- +title: scroll-padding-block-start +slug: Web/CSS/scroll-padding-block-start +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-padding-block-start +--- +La propriété scroll-padding-block-start est une propriété qui permet de définir le remplissage, au début de l'axe de bloc, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-block-start: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-block-start: 10px; +scroll-padding-block-start: 1em; +scroll-padding-block-start: 10%; + +/* Valeurs globales */ +scroll-padding-block-start: inherit; +scroll-padding-block-start: initial; +scroll-padding-block-start: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-block-start", "scroll-padding-block-start")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-block-start")}}
diff --git a/files/fr/web/css/scroll-padding-block/index.html b/files/fr/web/css/scroll-padding-block/index.html deleted file mode 100644 index 4e7e1f9fed..0000000000 --- a/files/fr/web/css/scroll-padding-block/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: scroll-padding-block -slug: Web/CSS/scroll-padding-block -tags: - - CSS - - Propriété - - Propriété logique - - Propriété raccourcie - - Reference -translation_of: Web/CSS/scroll-padding-block ---- -La propriété scroll-padding-block est une propriété raccourcie qui permet de définir le remplissage, sur l'axe de bloc, entre l'élément et la zone de défilement. Autrement dit, elle permet de définir scroll-padding-block-end et scroll-padding-block-start.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-block: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-block: 10px; -scroll-padding-block: 1em .5em; -scroll-padding-block: 10%; - -/* Valeurs globales */ -scroll-padding-block: inherit; -scroll-padding-block: initial; -scroll-padding-block: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-block", "scroll-padding-block")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-block")}}
diff --git a/files/fr/web/css/scroll-padding-block/index.md b/files/fr/web/css/scroll-padding-block/index.md new file mode 100644 index 0000000000..4e7e1f9fed --- /dev/null +++ b/files/fr/web/css/scroll-padding-block/index.md @@ -0,0 +1,72 @@ +--- +title: scroll-padding-block +slug: Web/CSS/scroll-padding-block +tags: + - CSS + - Propriété + - Propriété logique + - Propriété raccourcie + - Reference +translation_of: Web/CSS/scroll-padding-block +--- +La propriété scroll-padding-block est une propriété raccourcie qui permet de définir le remplissage, sur l'axe de bloc, entre l'élément et la zone de défilement. Autrement dit, elle permet de définir scroll-padding-block-end et scroll-padding-block-start.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-block: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-block: 10px; +scroll-padding-block: 1em .5em; +scroll-padding-block: 10%; + +/* Valeurs globales */ +scroll-padding-block: inherit; +scroll-padding-block: initial; +scroll-padding-block: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-block", "scroll-padding-block")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-block")}}
diff --git a/files/fr/web/css/scroll-padding-bottom/index.html b/files/fr/web/css/scroll-padding-bottom/index.html deleted file mode 100644 index d592b7a908..0000000000 --- a/files/fr/web/css/scroll-padding-bottom/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: scroll-padding-bottom -slug: Web/CSS/scroll-padding-bottom -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-padding-bottom ---- -La propriété scroll-padding-bottom est une propriété qui permet de définir le remplissage sur le côté bas entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-bottom: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-bottom: 10px; -scroll-padding-bottom: 1em; -scroll-padding-bottom: 10%; - -/* Valeurs globales */ -scroll-padding-bottom: inherit; -scroll-padding-bottom: initial; -scroll-padding-bottom: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-bottom", "scroll-padding-bottom")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-bottom")}}
diff --git a/files/fr/web/css/scroll-padding-bottom/index.md b/files/fr/web/css/scroll-padding-bottom/index.md new file mode 100644 index 0000000000..d592b7a908 --- /dev/null +++ b/files/fr/web/css/scroll-padding-bottom/index.md @@ -0,0 +1,71 @@ +--- +title: scroll-padding-bottom +slug: Web/CSS/scroll-padding-bottom +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-padding-bottom +--- +La propriété scroll-padding-bottom est une propriété qui permet de définir le remplissage sur le côté bas entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-bottom: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-bottom: 10px; +scroll-padding-bottom: 1em; +scroll-padding-bottom: 10%; + +/* Valeurs globales */ +scroll-padding-bottom: inherit; +scroll-padding-bottom: initial; +scroll-padding-bottom: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-bottom", "scroll-padding-bottom")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-bottom")}}
diff --git a/files/fr/web/css/scroll-padding-inline-end/index.html b/files/fr/web/css/scroll-padding-inline-end/index.html deleted file mode 100644 index f85b1011ab..0000000000 --- a/files/fr/web/css/scroll-padding-inline-end/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: scroll-padding-inline-end -slug: Web/CSS/scroll-padding-inline-end -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-padding-inline-end ---- -La propriété scroll-padding-inline-end est une propriété qui permet de définir le remplissage, à la fin de l'axe en ligne, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-inline-end: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-inline-end: 10px; -scroll-padding-inline-end: 1em; -scroll-padding-inline-end: 10%; - -/* Valeurs globales */ -scroll-padding-inline-end: inherit; -scroll-padding-inline-end: initial; -scroll-padding-inline-end: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-inline-end", "scroll-padding-inline-end")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-inline-end")}}
diff --git a/files/fr/web/css/scroll-padding-inline-end/index.md b/files/fr/web/css/scroll-padding-inline-end/index.md new file mode 100644 index 0000000000..f85b1011ab --- /dev/null +++ b/files/fr/web/css/scroll-padding-inline-end/index.md @@ -0,0 +1,72 @@ +--- +title: scroll-padding-inline-end +slug: Web/CSS/scroll-padding-inline-end +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-padding-inline-end +--- +La propriété scroll-padding-inline-end est une propriété qui permet de définir le remplissage, à la fin de l'axe en ligne, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-inline-end: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-inline-end: 10px; +scroll-padding-inline-end: 1em; +scroll-padding-inline-end: 10%; + +/* Valeurs globales */ +scroll-padding-inline-end: inherit; +scroll-padding-inline-end: initial; +scroll-padding-inline-end: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-inline-end", "scroll-padding-inline-end")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-inline-end")}}
diff --git a/files/fr/web/css/scroll-padding-inline-start/index.html b/files/fr/web/css/scroll-padding-inline-start/index.html deleted file mode 100644 index 554c8f1ae2..0000000000 --- a/files/fr/web/css/scroll-padding-inline-start/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: scroll-padding-inline-start -slug: Web/CSS/scroll-padding-inline-start -tags: - - CSS - - Propriété - - Propriété logique - - Reference -translation_of: Web/CSS/scroll-padding-inline-start ---- -La propriété scroll-padding-inline-start est une propriété qui permet de définir le remplissage, au début de l'axe en ligne, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-inline-start: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-inline-start: 10px; -scroll-padding-inline-start: 1em; -scroll-padding-inline-start: 10%; - -/* Valeurs globales */ -scroll-padding-inline-start: inherit; -scroll-padding-inline-start: initial; -scroll-padding-inline-start: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-inline-start", "scroll-padding-inline-start")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-inline-start")}}
diff --git a/files/fr/web/css/scroll-padding-inline-start/index.md b/files/fr/web/css/scroll-padding-inline-start/index.md new file mode 100644 index 0000000000..554c8f1ae2 --- /dev/null +++ b/files/fr/web/css/scroll-padding-inline-start/index.md @@ -0,0 +1,72 @@ +--- +title: scroll-padding-inline-start +slug: Web/CSS/scroll-padding-inline-start +tags: + - CSS + - Propriété + - Propriété logique + - Reference +translation_of: Web/CSS/scroll-padding-inline-start +--- +La propriété scroll-padding-inline-start est une propriété qui permet de définir le remplissage, au début de l'axe en ligne, entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-inline-start: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-inline-start: 10px; +scroll-padding-inline-start: 1em; +scroll-padding-inline-start: 10%; + +/* Valeurs globales */ +scroll-padding-inline-start: inherit; +scroll-padding-inline-start: initial; +scroll-padding-inline-start: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-inline-start", "scroll-padding-inline-start")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-inline-start")}}
diff --git a/files/fr/web/css/scroll-padding-inline/index.html b/files/fr/web/css/scroll-padding-inline/index.html deleted file mode 100644 index 3aadefb3d9..0000000000 --- a/files/fr/web/css/scroll-padding-inline/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: scroll-padding-inline -slug: Web/CSS/scroll-padding-inline -tags: - - CSS - - Propriété - - Propriété logique - - Propriété raccourcie - - Reference -translation_of: Web/CSS/scroll-padding-inline ---- -La propriété scroll-padding-inline est une propriété raccourcie qui permet de définir le remplissage, sur l'axe en ligne, entre l'élément et la zone de défilement. Autrement dit, elle permet de définir scroll-padding-inline-end et scroll-padding-inline-start.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-inline: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-inline: 10px; -scroll-padding-inline: 1em .5em; -scroll-padding-inline: 10%; - -/* Valeurs globales */ -scroll-padding-inline: inherit; -scroll-padding-inline: initial; -scroll-padding-inline: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-inline", "scroll-padding-inline")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-inline")}}
diff --git a/files/fr/web/css/scroll-padding-inline/index.md b/files/fr/web/css/scroll-padding-inline/index.md new file mode 100644 index 0000000000..3aadefb3d9 --- /dev/null +++ b/files/fr/web/css/scroll-padding-inline/index.md @@ -0,0 +1,73 @@ +--- +title: scroll-padding-inline +slug: Web/CSS/scroll-padding-inline +tags: + - CSS + - Propriété + - Propriété logique + - Propriété raccourcie + - Reference +translation_of: Web/CSS/scroll-padding-inline +--- +La propriété scroll-padding-inline est une propriété raccourcie qui permet de définir le remplissage, sur l'axe en ligne, entre l'élément et la zone de défilement. Autrement dit, elle permet de définir scroll-padding-inline-end et scroll-padding-inline-start.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-inline: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-inline: 10px; +scroll-padding-inline: 1em .5em; +scroll-padding-inline: 10%; + +/* Valeurs globales */ +scroll-padding-inline: inherit; +scroll-padding-inline: initial; +scroll-padding-inline: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-inline", "scroll-padding-inline")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-inline")}}
diff --git a/files/fr/web/css/scroll-padding-left/index.html b/files/fr/web/css/scroll-padding-left/index.html deleted file mode 100644 index 92133375ec..0000000000 --- a/files/fr/web/css/scroll-padding-left/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: scroll-padding-left -slug: Web/CSS/scroll-padding-left -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-padding-left ---- -La propriété scroll-padding-left est une propriété qui permet de définir le remplissage sur le côté gauche entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-left: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-left: 10px; -scroll-padding-left: 1em; -scroll-padding-left: 10%; - -/* Valeurs globales */ -scroll-padding-left: inherit; -scroll-padding-left: initial; -scroll-padding-left: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-left", "scroll-padding-left")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-left")}}
diff --git a/files/fr/web/css/scroll-padding-left/index.md b/files/fr/web/css/scroll-padding-left/index.md new file mode 100644 index 0000000000..92133375ec --- /dev/null +++ b/files/fr/web/css/scroll-padding-left/index.md @@ -0,0 +1,71 @@ +--- +title: scroll-padding-left +slug: Web/CSS/scroll-padding-left +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-padding-left +--- +La propriété scroll-padding-left est une propriété qui permet de définir le remplissage sur le côté gauche entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-left: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-left: 10px; +scroll-padding-left: 1em; +scroll-padding-left: 10%; + +/* Valeurs globales */ +scroll-padding-left: inherit; +scroll-padding-left: initial; +scroll-padding-left: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-left", "scroll-padding-left")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-left")}}
diff --git a/files/fr/web/css/scroll-padding-right/index.html b/files/fr/web/css/scroll-padding-right/index.html deleted file mode 100644 index 5640c3bcd9..0000000000 --- a/files/fr/web/css/scroll-padding-right/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: scroll-padding-right -slug: Web/CSS/scroll-padding-right -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-padding-right ---- -La propriété scroll-padding-right est une propriété qui permet de définir le remplissage sur le côté droit entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-right: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-right: 10px; -scroll-padding-right: 1em; -scroll-padding-right: 10%; - -/* Valeurs globales */ -scroll-padding-right: inherit; -scroll-padding-right: initial; -scroll-padding-right: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-right", "scroll-padding-right")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-right")}}
diff --git a/files/fr/web/css/scroll-padding-right/index.md b/files/fr/web/css/scroll-padding-right/index.md new file mode 100644 index 0000000000..5640c3bcd9 --- /dev/null +++ b/files/fr/web/css/scroll-padding-right/index.md @@ -0,0 +1,71 @@ +--- +title: scroll-padding-right +slug: Web/CSS/scroll-padding-right +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-padding-right +--- +La propriété scroll-padding-right est une propriété qui permet de définir le remplissage sur le côté droit entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-right: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-right: 10px; +scroll-padding-right: 1em; +scroll-padding-right: 10%; + +/* Valeurs globales */ +scroll-padding-right: inherit; +scroll-padding-right: initial; +scroll-padding-right: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-right", "scroll-padding-right")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-right")}}
diff --git a/files/fr/web/css/scroll-padding-top/index.html b/files/fr/web/css/scroll-padding-top/index.html deleted file mode 100644 index 0239142642..0000000000 --- a/files/fr/web/css/scroll-padding-top/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: scroll-padding-top -slug: Web/CSS/scroll-padding-top -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-padding-top ---- -La propriété scroll-padding-top est une propriété qui permet de définir le remplissage sur le côté haut entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
- -/* Valeurs avec un mot-clé */ -scroll-padding-top: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding-top: 10px; -scroll-padding-top: 1em; -scroll-padding-top: 10%; - -/* Valeurs globales */ -scroll-padding-top: inherit; -scroll-padding-top: initial; -scroll-padding-top: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-top", "scroll-padding-top")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding-top")}}
diff --git a/files/fr/web/css/scroll-padding-top/index.md b/files/fr/web/css/scroll-padding-top/index.md new file mode 100644 index 0000000000..0239142642 --- /dev/null +++ b/files/fr/web/css/scroll-padding-top/index.md @@ -0,0 +1,71 @@ +--- +title: scroll-padding-top +slug: Web/CSS/scroll-padding-top +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-padding-top +--- +La propriété scroll-padding-top est une propriété qui permet de définir le remplissage sur le côté haut entre l'élément et la zone de défilement.
Les propriétés pour le remplissage de la zone de défilement permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
+ +/* Valeurs avec un mot-clé */ +scroll-padding-top: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding-top: 10px; +scroll-padding-top: 1em; +scroll-padding-top: 10%; + +/* Valeurs globales */ +scroll-padding-top: inherit; +scroll-padding-top: initial; +scroll-padding-top: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding-top", "scroll-padding-top")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding-top")}}
diff --git a/files/fr/web/css/scroll-padding/index.html b/files/fr/web/css/scroll-padding/index.html deleted file mode 100644 index 4cc7897009..0000000000 --- a/files/fr/web/css/scroll-padding/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: scroll-padding -slug: Web/CSS/scroll-padding -tags: - - CSS - - Propriété - - Propriété raccourcie - - Reference -translation_of: Web/CSS/scroll-padding ---- -La propriété scroll-padding est une propriété raccourcie qui permet de définir l'ensemble des propriétés scroll-padding-top, scroll-padding-right, scroll-padding-bottom et scroll-padding-left (de la même façon que la propriété {{cssxref("padding")}} permet de définir les propriétés détaillées associées).
Les propriétés scroll-padding-* permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
/* Valeurs avec un mot-clé */ -scroll-padding: auto; - -/* Valeurs de longueur */ -/* Type <length> */ -scroll-padding: 10px; -scroll-padding: 1em .5em 1em 1em; -scroll-padding: 10%; - -/* Valeurs globales */ -scroll-padding: inherit; -scroll-padding: initial; -scroll-padding: unset; -- -
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding", "scroll-padding")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-padding")}}
diff --git a/files/fr/web/css/scroll-padding/index.md b/files/fr/web/css/scroll-padding/index.md new file mode 100644 index 0000000000..4cc7897009 --- /dev/null +++ b/files/fr/web/css/scroll-padding/index.md @@ -0,0 +1,72 @@ +--- +title: scroll-padding +slug: Web/CSS/scroll-padding +tags: + - CSS + - Propriété + - Propriété raccourcie + - Reference +translation_of: Web/CSS/scroll-padding +--- +La propriété scroll-padding est une propriété raccourcie qui permet de définir l'ensemble des propriétés scroll-padding-top, scroll-padding-right, scroll-padding-bottom et scroll-padding-left (de la même façon que la propriété {{cssxref("padding")}} permet de définir les propriétés détaillées associées).
Les propriétés scroll-padding-* permettent de définir des décalages par rapport à la zone de défilement de l'élément (scrollport). On peut ainsi éviter à un élément d'être affiché là où d'autres barres sont présentes ou encore donner plus d'espace entre un élément et les barres de défilement pour y naviguer.
/* Valeurs avec un mot-clé */ +scroll-padding: auto; + +/* Valeurs de longueur */ +/* Type <length> */ +scroll-padding: 10px; +scroll-padding: 1em .5em 1em 1em; +scroll-padding: 10%; + +/* Valeurs globales */ +scroll-padding: inherit; +scroll-padding: initial; +scroll-padding: unset; ++ +
<length-percentage>auto0px mais le navigateur peut utiliser une heuristique et déterminer si une valeur non nulle est préférable au regard du contexte dans lequel se trouve l'élément.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-padding", "scroll-padding")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-padding")}}
diff --git a/files/fr/web/css/scroll-snap-align/index.html b/files/fr/web/css/scroll-snap-align/index.html deleted file mode 100644 index 713109b208..0000000000 --- a/files/fr/web/css/scroll-snap-align/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: scroll-snap-align -slug: Web/CSS/scroll-snap-align -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-align ---- -La propriété scroll-snap-align définit la position de la boîte d'accroche (snap positions) comme un alignement entre la zone d'accroche et le conteneur (la boîte de défilement de l'élément). Les deux valeurs fournies à cette propriété s'appliquent respectivement à l'axe de bloc et à l'axe en ligne. Lorsqu'une seule valeur est fournie, la seconde prendra par défaut la valeur de la première.
/* Valeurs avec un mot-clé */ -scroll-snap-align: none; -scroll-snap-align: start end; -scroll-snap-align: center; - -/* Valeurs globales */ -scroll-snap-align: inherit; -scroll-snap-align: initial; -scroll-snap-align: unset; -- -
nonestartendcenter| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-align", "scroll-snap-align")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Initial definition | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-align")}}
- -Attention : Pour Safari, la syntaxe utilisant les deux valeurs intervertit les deux valeurs (la première cible l'alignement en ligne et la seconde l'alignement en bloc). Voir le bug n°191865.
-La propriété scroll-snap-align définit la position de la boîte d'accroche (snap positions) comme un alignement entre la zone d'accroche et le conteneur (la boîte de défilement de l'élément). Les deux valeurs fournies à cette propriété s'appliquent respectivement à l'axe de bloc et à l'axe en ligne. Lorsqu'une seule valeur est fournie, la seconde prendra par défaut la valeur de la première.
/* Valeurs avec un mot-clé */ +scroll-snap-align: none; +scroll-snap-align: start end; +scroll-snap-align: center; + +/* Valeurs globales */ +scroll-snap-align: inherit; +scroll-snap-align: initial; +scroll-snap-align: unset; ++ +
nonestartendcenter| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-align", "scroll-snap-align")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Initial definition | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-align")}}
+ +Attention : Pour Safari, la syntaxe utilisant les deux valeurs intervertit les deux valeurs (la première cible l'alignement en ligne et la seconde l'alignement en bloc). Voir le bug n°191865.
+La propriété scroll-snap-coordinate définit les coordonnées horizontale et verticale, au sein de l'élément, qui s'aligneront avec les points définis par {{cssxref("scroll-snap-destination")}} dans le conteneur le plus proche en termes de parenté.
Si l'élément a été transformé, les coordonnées sont transformées de la même façon afin d'aligner le point d'accroche avec l'élément tel qu'il est affiché.
- -/* Valeur avec un mot-clé */ -scroll-snap-coordinate: none; - -/* Valeurs de <position> */ -/* Une paire de coordonnées */ -scroll-snap-coordinate: 50px 50px; -/* Plusieurs coordonnées */ -scroll-snap-coordinate: 100px 100px, 100px bottom; - -/* Valeurs globales */ -scroll-snap-coordinate: inherit; -scroll-snap-coordinate: initial; -scroll-snap-coordinate: unset; -- -
none<position><div id="container"> - <div> - <p>Coordonnées (0, 0)</p> - <div class="scrollContainer coordinate0"> - <div>1</div> - <div>2</div> - <div>3</div> - </div> - </div> - - <div> - <p>Coordonnées (25, 0)</p> - <div class="scrollContainer coordinate25"> - <div>1</div> - <div>2</div> - <div>3</div> - </div> - </div> - - <div> - <p>Coordonnées (50, 0)</p> - <div class="scrollContainer coordinate50"> - <div>1</div> - <div>2</div> - <div>3</div> - </div> - </div> -</div> -- -
#container {
- display: flex;
-}
-
-#container > div:nth-child(-n+2) {
- margin-right: 20px;
-}
-
-.scrollContainer {
- width: 100px;
- overflow: auto;
- white-space: nowrap;
- scroll-snap-type: mandatory;
- font-size: 0;
-}
-
-.scrollContainer > div {
- width: 100px;
- height: 100px;
- display: inline-block;
- line-height: 100px;
- text-align: center;
- font-size: 50px;
-}
-
-.coordinate0 > div {
- scroll-snap-coordinate: 0 0;
-}
-
-.coordinate25 > div {
- scroll-snap-coordinate: 25px 0;
-}
-
-.coordinate50 > div {
- scroll-snap-coordinate: 50px 0;
-}
-
-.scrollContainer > div:nth-child(even) {
- background-color: #87ea87;
-}
-
-.scrollContainer > div:nth-child(odd) {
- background-color: #87ccea;
-}
-
-{{EmbedLiveSample("Exemples", "100%", "170")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-coordinate", "scroll-snap-coordinate")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-coordinate")}}
diff --git a/files/fr/web/css/scroll-snap-coordinate/index.md b/files/fr/web/css/scroll-snap-coordinate/index.md new file mode 100644 index 0000000000..fae93562a9 --- /dev/null +++ b/files/fr/web/css/scroll-snap-coordinate/index.md @@ -0,0 +1,155 @@ +--- +title: scroll-snap-coordinate +slug: Web/CSS/scroll-snap-coordinate +tags: + - CSS + - Déprécié + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-coordinate +--- +La propriété scroll-snap-coordinate définit les coordonnées horizontale et verticale, au sein de l'élément, qui s'aligneront avec les points définis par {{cssxref("scroll-snap-destination")}} dans le conteneur le plus proche en termes de parenté.
Si l'élément a été transformé, les coordonnées sont transformées de la même façon afin d'aligner le point d'accroche avec l'élément tel qu'il est affiché.
+ +/* Valeur avec un mot-clé */ +scroll-snap-coordinate: none; + +/* Valeurs de <position> */ +/* Une paire de coordonnées */ +scroll-snap-coordinate: 50px 50px; +/* Plusieurs coordonnées */ +scroll-snap-coordinate: 100px 100px, 100px bottom; + +/* Valeurs globales */ +scroll-snap-coordinate: inherit; +scroll-snap-coordinate: initial; +scroll-snap-coordinate: unset; ++ +
none<position><div id="container"> + <div> + <p>Coordonnées (0, 0)</p> + <div class="scrollContainer coordinate0"> + <div>1</div> + <div>2</div> + <div>3</div> + </div> + </div> + + <div> + <p>Coordonnées (25, 0)</p> + <div class="scrollContainer coordinate25"> + <div>1</div> + <div>2</div> + <div>3</div> + </div> + </div> + + <div> + <p>Coordonnées (50, 0)</p> + <div class="scrollContainer coordinate50"> + <div>1</div> + <div>2</div> + <div>3</div> + </div> + </div> +</div> ++ +
#container {
+ display: flex;
+}
+
+#container > div:nth-child(-n+2) {
+ margin-right: 20px;
+}
+
+.scrollContainer {
+ width: 100px;
+ overflow: auto;
+ white-space: nowrap;
+ scroll-snap-type: mandatory;
+ font-size: 0;
+}
+
+.scrollContainer > div {
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ line-height: 100px;
+ text-align: center;
+ font-size: 50px;
+}
+
+.coordinate0 > div {
+ scroll-snap-coordinate: 0 0;
+}
+
+.coordinate25 > div {
+ scroll-snap-coordinate: 25px 0;
+}
+
+.coordinate50 > div {
+ scroll-snap-coordinate: 50px 0;
+}
+
+.scrollContainer > div:nth-child(even) {
+ background-color: #87ea87;
+}
+
+.scrollContainer > div:nth-child(odd) {
+ background-color: #87ccea;
+}
+
+{{EmbedLiveSample("Exemples", "100%", "170")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-coordinate", "scroll-snap-coordinate")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-coordinate")}}
diff --git a/files/fr/web/css/scroll-snap-destination/index.html b/files/fr/web/css/scroll-snap-destination/index.html deleted file mode 100644 index 288e0529c9..0000000000 --- a/files/fr/web/css/scroll-snap-destination/index.html +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: scroll-snap-destination -slug: Web/CSS/scroll-snap-destination -tags: - - CSS - - Déprécié - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-destination ---- -La propriété scroll-snap-destination définit les coordonnées horizontale et verticale des points d'accroche dans le {{Glossary("viewport")}} du conteneur.
/* Valeur <position> */ -scroll-snap-destination: 400px 600px; - -/* Valeurs globales */ -scroll-snap-destination: inherit; -scroll-snap-destination: initial; -scroll-snap-destination: unset; -- -
<position><div id="container"> - <div> - <p>Coordonnées (0, 0)</p> - <div class="scrollContainer destination0"> - <div>1</div> - <div>2</div> - <div>3</div> - </div> - </div> - - <div> - <p>Coordonnées (25, 0)</p> - <div class="scrollContainer destination25"> - <div>1</div> - <div>2</div> - <div>3</div> - </div> - </div> - - <div> - <p>Coordonnées (50, 0)</p> - <div class="scrollContainer destination50"> - <div>1</div> - <div>2</div> - <div>3</div> - </div> - </div> -</div> -- -
#container {
- display: flex;
-}
-
-#container > div:nth-child(-n+2) {
- margin-right: 20px;
-}
-
-.scrollContainer {
- width: 100px;
- overflow: auto;
- white-space: nowrap;
- scroll-snap-points-x: repeat(100%);
- scroll-snap-type: mandatory;
- scroll-snap-destination: 20px 0;
- font-size: 0;
-}
-
-.destination0 {
- scroll-snap-destination: 0 0;
-}
-
-.destination25 {
- scroll-snap-destination: 25px 0;
-}
-
-.destination50 {
- scroll-snap-destination: 50px 0;
-}
-
-.scrollContainer > div {
- width: 100px;
- height: 100px;
- display: inline-block;
- line-height: 100px;
- text-align: center;
- font-size: 50px;
-}
-
-.scrollContainer > div:nth-child(even) {
- background-color: #87EA87;
-}
-
-.scrollContainer > div:nth-child(odd) {
- background-color: #87CCEA;
-}
-
-{{EmbedLiveSample("Exemples", "100%", "170")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-destination", "scroll-snap-destination")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-destination")}}
diff --git a/files/fr/web/css/scroll-snap-destination/index.md b/files/fr/web/css/scroll-snap-destination/index.md new file mode 100644 index 0000000000..288e0529c9 --- /dev/null +++ b/files/fr/web/css/scroll-snap-destination/index.md @@ -0,0 +1,147 @@ +--- +title: scroll-snap-destination +slug: Web/CSS/scroll-snap-destination +tags: + - CSS + - Déprécié + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-destination +--- +La propriété scroll-snap-destination définit les coordonnées horizontale et verticale des points d'accroche dans le {{Glossary("viewport")}} du conteneur.
/* Valeur <position> */ +scroll-snap-destination: 400px 600px; + +/* Valeurs globales */ +scroll-snap-destination: inherit; +scroll-snap-destination: initial; +scroll-snap-destination: unset; ++ +
<position><div id="container"> + <div> + <p>Coordonnées (0, 0)</p> + <div class="scrollContainer destination0"> + <div>1</div> + <div>2</div> + <div>3</div> + </div> + </div> + + <div> + <p>Coordonnées (25, 0)</p> + <div class="scrollContainer destination25"> + <div>1</div> + <div>2</div> + <div>3</div> + </div> + </div> + + <div> + <p>Coordonnées (50, 0)</p> + <div class="scrollContainer destination50"> + <div>1</div> + <div>2</div> + <div>3</div> + </div> + </div> +</div> ++ +
#container {
+ display: flex;
+}
+
+#container > div:nth-child(-n+2) {
+ margin-right: 20px;
+}
+
+.scrollContainer {
+ width: 100px;
+ overflow: auto;
+ white-space: nowrap;
+ scroll-snap-points-x: repeat(100%);
+ scroll-snap-type: mandatory;
+ scroll-snap-destination: 20px 0;
+ font-size: 0;
+}
+
+.destination0 {
+ scroll-snap-destination: 0 0;
+}
+
+.destination25 {
+ scroll-snap-destination: 25px 0;
+}
+
+.destination50 {
+ scroll-snap-destination: 50px 0;
+}
+
+.scrollContainer > div {
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ line-height: 100px;
+ text-align: center;
+ font-size: 50px;
+}
+
+.scrollContainer > div:nth-child(even) {
+ background-color: #87EA87;
+}
+
+.scrollContainer > div:nth-child(odd) {
+ background-color: #87CCEA;
+}
+
+{{EmbedLiveSample("Exemples", "100%", "170")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-destination", "scroll-snap-destination")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-destination")}}
diff --git a/files/fr/web/css/scroll-snap-points-x/index.html b/files/fr/web/css/scroll-snap-points-x/index.html deleted file mode 100644 index 6fbbec83fa..0000000000 --- a/files/fr/web/css/scroll-snap-points-x/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: scroll-snap-points-x -slug: Web/CSS/scroll-snap-points-x -tags: - - CSS - - Déprécié - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-points-x ---- -La propriété scroll-snap-points-x définit le positionnement horizontal des points d'accroche dans le conteneur de défilement auquel ils s'appliquent.
/* Valeur avec un mot-clé */ -scroll-snap-points-x: none; - -/* Répétition des points d'accroche */ -scroll-snap-points-x: repeat(400px); - -/* Valeurs globales */ -scroll-snap-points-x: inherit; -scroll-snap-points-x: initial; -scroll-snap-points-x: unset; -- -
nonerepeat(<length-percentage>)<div id="container"> - <div>1</div> - <div>2</div> - <div>3</div> -</div>- -
#container {
- width: 200px;
- overflow: auto;
- white-space: nowrap;
- scroll-snap-points-x: repeat(100%);
- scroll-snap-type: mandatory;
- font-size: 0;
-}
-
-#container > div {
- width: 200px;
- height: 200px;
- display: inline-block;
- line-height: 200px;
- text-align: center;
- font-size: 100px;
-}
-
-#container > div:nth-child(even) {
- background-color: #87ea87;
-}
-
-#container > div:nth-child(odd) {
- background-color: #87ccea;
-}
-
-{{EmbedLiveSample("Exemples", 220, 220)}}
- -Cette propriété avait été définie dans un brouillon de spécification pour le module CSS sur les points d'accroche mais a ensuite été retirée de la spécification pour être remplacée par l'accroche basée sur les éléments.
- -{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-points-x")}}
diff --git a/files/fr/web/css/scroll-snap-points-x/index.md b/files/fr/web/css/scroll-snap-points-x/index.md new file mode 100644 index 0000000000..6fbbec83fa --- /dev/null +++ b/files/fr/web/css/scroll-snap-points-x/index.md @@ -0,0 +1,92 @@ +--- +title: scroll-snap-points-x +slug: Web/CSS/scroll-snap-points-x +tags: + - CSS + - Déprécié + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-points-x +--- +La propriété scroll-snap-points-x définit le positionnement horizontal des points d'accroche dans le conteneur de défilement auquel ils s'appliquent.
/* Valeur avec un mot-clé */ +scroll-snap-points-x: none; + +/* Répétition des points d'accroche */ +scroll-snap-points-x: repeat(400px); + +/* Valeurs globales */ +scroll-snap-points-x: inherit; +scroll-snap-points-x: initial; +scroll-snap-points-x: unset; ++ +
nonerepeat(<length-percentage>)<div id="container"> + <div>1</div> + <div>2</div> + <div>3</div> +</div>+ +
#container {
+ width: 200px;
+ overflow: auto;
+ white-space: nowrap;
+ scroll-snap-points-x: repeat(100%);
+ scroll-snap-type: mandatory;
+ font-size: 0;
+}
+
+#container > div {
+ width: 200px;
+ height: 200px;
+ display: inline-block;
+ line-height: 200px;
+ text-align: center;
+ font-size: 100px;
+}
+
+#container > div:nth-child(even) {
+ background-color: #87ea87;
+}
+
+#container > div:nth-child(odd) {
+ background-color: #87ccea;
+}
+
+{{EmbedLiveSample("Exemples", 220, 220)}}
+ +Cette propriété avait été définie dans un brouillon de spécification pour le module CSS sur les points d'accroche mais a ensuite été retirée de la spécification pour être remplacée par l'accroche basée sur les éléments.
+ +{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-points-x")}}
diff --git a/files/fr/web/css/scroll-snap-points-y/index.html b/files/fr/web/css/scroll-snap-points-y/index.html deleted file mode 100644 index c5171c3234..0000000000 --- a/files/fr/web/css/scroll-snap-points-y/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: scroll-snap-points-y -slug: Web/CSS/scroll-snap-points-y -tags: - - CSS - - Déprécié - - Non-standard - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-points-y ---- -La propriété scroll-snap-points-y définit le positionnement vertical des points d'accroche dans le conteneur de défilement auquel ils s'appliquent.
/* Valeur avec un mot-clé */ -scroll-snap-points-y: none; - -/* Répétition des points d'accroche */ -scroll-snap-points-y: repeat(400px); - -/* Valeurs globales */ -scroll-snap-points-y: inherit; -scroll-snap-points-y: initial; -scroll-snap-points-y: unset; -- -
nonerepeat(<length-percentage>)<div id="container"> - <div>1</div> - <div>2</div> - <div>3</div> -</div>- -
#container {
- height: 200px;
- width: 220px;
- overflow-x: hidden;
- overflow-y: auto;
- scroll-snap-points-y: repeat(200px);
- scroll-snap-type: mandatory;
- font-size: 0;
-}
-
-#container > div {
- width: 200px;
- height: 200px;
- display: inline-block;
- line-height: 200px;
- text-align: center;
- font-size: 100px;
-}
-
-#container > div:nth-child(even) {
- background-color: #87EA87;
-}
-
-#container > div:nth-child(odd) {
- background-color: #87CCEA;
-}
-
-{{EmbedLiveSample("Exemples", 220, 220)}}
- -Cette propriété avait été définie dans un brouillon de spécification pour le module CSS sur les points d'accroche mais a ensuite été retirée de la spécification pour être remplacée par l'accroche basée sur les éléments.
- -{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-points-y")}}
diff --git a/files/fr/web/css/scroll-snap-points-y/index.md b/files/fr/web/css/scroll-snap-points-y/index.md new file mode 100644 index 0000000000..c5171c3234 --- /dev/null +++ b/files/fr/web/css/scroll-snap-points-y/index.md @@ -0,0 +1,94 @@ +--- +title: scroll-snap-points-y +slug: Web/CSS/scroll-snap-points-y +tags: + - CSS + - Déprécié + - Non-standard + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-points-y +--- +La propriété scroll-snap-points-y définit le positionnement vertical des points d'accroche dans le conteneur de défilement auquel ils s'appliquent.
/* Valeur avec un mot-clé */ +scroll-snap-points-y: none; + +/* Répétition des points d'accroche */ +scroll-snap-points-y: repeat(400px); + +/* Valeurs globales */ +scroll-snap-points-y: inherit; +scroll-snap-points-y: initial; +scroll-snap-points-y: unset; ++ +
nonerepeat(<length-percentage>)<div id="container"> + <div>1</div> + <div>2</div> + <div>3</div> +</div>+ +
#container {
+ height: 200px;
+ width: 220px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ scroll-snap-points-y: repeat(200px);
+ scroll-snap-type: mandatory;
+ font-size: 0;
+}
+
+#container > div {
+ width: 200px;
+ height: 200px;
+ display: inline-block;
+ line-height: 200px;
+ text-align: center;
+ font-size: 100px;
+}
+
+#container > div:nth-child(even) {
+ background-color: #87EA87;
+}
+
+#container > div:nth-child(odd) {
+ background-color: #87CCEA;
+}
+
+{{EmbedLiveSample("Exemples", 220, 220)}}
+ +Cette propriété avait été définie dans un brouillon de spécification pour le module CSS sur les points d'accroche mais a ensuite été retirée de la spécification pour être remplacée par l'accroche basée sur les éléments.
+ +{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-points-y")}}
diff --git a/files/fr/web/css/scroll-snap-stop/index.html b/files/fr/web/css/scroll-snap-stop/index.html deleted file mode 100644 index 68a536bdf0..0000000000 --- a/files/fr/web/css/scroll-snap-stop/index.html +++ /dev/null @@ -1,222 +0,0 @@ ---- -title: scroll-snap-stop -slug: Web/CSS/scroll-snap-stop -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-stop ---- -La propriété scroll-snap-stop définit la façon dont un conteneur de défilement peut « passer outre » certaines positions d'accroche.
/* Valeurs avec un mot-clé */ -scroll-snap-stop: normal; -scroll-snap-stop: always; - -/* Valeurs globales */ -scroll-snap-type: inherit; -scroll-snap-type: initial; -scroll-snap-type: unset; -- -
normalalways/* setup */
-:root, body {
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- flex-flow: column nowrap;
- font-family: monospace;
-}
-.container {
- display: flex;
- overflow: auto;
- outline: 1px dashed lightgray;
- flex: none;
-}
-
-.container.x {
- width: 100%;
- height: 128px;
- flex-flow: row nowrap;
-}
-
-.container.y {
- width: 256px;
- height: 256px;
- flex-flow: column nowrap;
-}
-/* definite scroll snap */
-.mandatory-scroll-snapping > div {
- scroll-snap-stop: always;
-}
-.proximity-scroll-snapping > div {
- scroll-snap-stop: normal;
-}
-/* scroll-snap */
-.x.mandatory-scroll-snapping {
- scroll-snap-type: x mandatory;
-}
-
-.y.mandatory-scroll-snapping {
- scroll-snap-type: y mandatory;
-}
-
-.x.proximity-scroll-snapping {
- scroll-snap-type: x proximity;
-}
-
-.y.proximity-scroll-snapping {
- scroll-snap-type: y proximity;
-}
-
-.container > div {
- text-align: center;
- scroll-snap-align: center;
- flex: none;
-}
-
-.x.container > div {
- line-height: 128px;
- font-size: 64px;
- width: 100%;
- height: 128px;
-}
-
-.y.container > div {
- line-height: 256px;
- font-size: 128px;
- width: 256px;
- height: 256px;
-}
-/* appearance fixes */
-.y.container > div:first-child {
- line-height: 1.3;
- font-size: 64px;
-}
-/* coloration */
-.container > div:nth-child(even) {
- background-color: #87EA87;
-}
-
-.container > div:nth-child(odd) {
- background-color: #87CCEA;
-}
-
-
-<div class="container x mandatory-scroll-snapping" dir="ltr"> - <div>X Mand. LTR </div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container x proximity-scroll-snapping" dir="ltr"> - <div>X Proximity LTR</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y mandatory-scroll-snapping" dir="ltr"> - <div>Y Mand. LTR</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y proximity-scroll-snapping" dir="ltr"> - <div>Y Prox. LTR</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container x mandatory-scroll-snapping" dir="rtl"> - <div>X Mandatory RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container x proximity-scroll-snapping" dir="rtl"> - <div>X Proximity RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y mandatory-scroll-snapping" dir="rtl"> - <div>Y Mand. RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y proximity-scroll-snapping" dir="rtl"> - <div>Y Prox. RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> -- -
{{EmbedLiveSample("Exemples", "100%", "1630")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-stop", "scroll-snap-stop")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-stop")}}
diff --git a/files/fr/web/css/scroll-snap-stop/index.md b/files/fr/web/css/scroll-snap-stop/index.md new file mode 100644 index 0000000000..68a536bdf0 --- /dev/null +++ b/files/fr/web/css/scroll-snap-stop/index.md @@ -0,0 +1,222 @@ +--- +title: scroll-snap-stop +slug: Web/CSS/scroll-snap-stop +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-stop +--- +La propriété scroll-snap-stop définit la façon dont un conteneur de défilement peut « passer outre » certaines positions d'accroche.
/* Valeurs avec un mot-clé */ +scroll-snap-stop: normal; +scroll-snap-stop: always; + +/* Valeurs globales */ +scroll-snap-type: inherit; +scroll-snap-type: initial; +scroll-snap-type: unset; ++ +
normalalways/* setup */
+:root, body {
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-flow: column nowrap;
+ font-family: monospace;
+}
+.container {
+ display: flex;
+ overflow: auto;
+ outline: 1px dashed lightgray;
+ flex: none;
+}
+
+.container.x {
+ width: 100%;
+ height: 128px;
+ flex-flow: row nowrap;
+}
+
+.container.y {
+ width: 256px;
+ height: 256px;
+ flex-flow: column nowrap;
+}
+/* definite scroll snap */
+.mandatory-scroll-snapping > div {
+ scroll-snap-stop: always;
+}
+.proximity-scroll-snapping > div {
+ scroll-snap-stop: normal;
+}
+/* scroll-snap */
+.x.mandatory-scroll-snapping {
+ scroll-snap-type: x mandatory;
+}
+
+.y.mandatory-scroll-snapping {
+ scroll-snap-type: y mandatory;
+}
+
+.x.proximity-scroll-snapping {
+ scroll-snap-type: x proximity;
+}
+
+.y.proximity-scroll-snapping {
+ scroll-snap-type: y proximity;
+}
+
+.container > div {
+ text-align: center;
+ scroll-snap-align: center;
+ flex: none;
+}
+
+.x.container > div {
+ line-height: 128px;
+ font-size: 64px;
+ width: 100%;
+ height: 128px;
+}
+
+.y.container > div {
+ line-height: 256px;
+ font-size: 128px;
+ width: 256px;
+ height: 256px;
+}
+/* appearance fixes */
+.y.container > div:first-child {
+ line-height: 1.3;
+ font-size: 64px;
+}
+/* coloration */
+.container > div:nth-child(even) {
+ background-color: #87EA87;
+}
+
+.container > div:nth-child(odd) {
+ background-color: #87CCEA;
+}
+
+
+<div class="container x mandatory-scroll-snapping" dir="ltr"> + <div>X Mand. LTR </div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container x proximity-scroll-snapping" dir="ltr"> + <div>X Proximity LTR</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y mandatory-scroll-snapping" dir="ltr"> + <div>Y Mand. LTR</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y proximity-scroll-snapping" dir="ltr"> + <div>Y Prox. LTR</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container x mandatory-scroll-snapping" dir="rtl"> + <div>X Mandatory RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container x proximity-scroll-snapping" dir="rtl"> + <div>X Proximity RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y mandatory-scroll-snapping" dir="rtl"> + <div>Y Mand. RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y proximity-scroll-snapping" dir="rtl"> + <div>Y Prox. RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> ++ +
{{EmbedLiveSample("Exemples", "100%", "1630")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-stop", "scroll-snap-stop")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-stop")}}
diff --git a/files/fr/web/css/scroll-snap-type-x/index.html b/files/fr/web/css/scroll-snap-type-x/index.html deleted file mode 100644 index 57bb444c1c..0000000000 --- a/files/fr/web/css/scroll-snap-type-x/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: scroll-snap-type-x -slug: Web/CSS/scroll-snap-type-x -tags: - - CSS - - Non-standard - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-type-x ---- -La propriété scroll-snap-type-x définit la « force » avec laquelle les points d'accroche sont respectés lors d'un défilement horizontal.
La gestion précise des animations et de la physique pour respecter ces points d'accroche n'est pas décrite par cette propriété et est laissée à la discrétion de l'agent utilisateur.
- -/* Valeurs avec un mot-clé */ -scroll-snap-type-x: none; -scroll-snap-type-x: mandatory; -scroll-snap-type-x: proximity; - -/* Valeurs globales */ -scroll-snap-type-x: inherit; -scroll-snap-type-x: initial; -scroll-snap-type-x: unset; -- -
nonemandatoryproximitynone | mandatory | proximity- -
Cette propriété ne fait partie d'aucune spécification.
- -{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-type-x")}}
diff --git a/files/fr/web/css/scroll-snap-type-x/index.md b/files/fr/web/css/scroll-snap-type-x/index.md new file mode 100644 index 0000000000..57bb444c1c --- /dev/null +++ b/files/fr/web/css/scroll-snap-type-x/index.md @@ -0,0 +1,53 @@ +--- +title: scroll-snap-type-x +slug: Web/CSS/scroll-snap-type-x +tags: + - CSS + - Non-standard + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-type-x +--- +La propriété scroll-snap-type-x définit la « force » avec laquelle les points d'accroche sont respectés lors d'un défilement horizontal.
La gestion précise des animations et de la physique pour respecter ces points d'accroche n'est pas décrite par cette propriété et est laissée à la discrétion de l'agent utilisateur.
+ +/* Valeurs avec un mot-clé */ +scroll-snap-type-x: none; +scroll-snap-type-x: mandatory; +scroll-snap-type-x: proximity; + +/* Valeurs globales */ +scroll-snap-type-x: inherit; +scroll-snap-type-x: initial; +scroll-snap-type-x: unset; ++ +
nonemandatoryproximitynone | mandatory | proximity+ +
Cette propriété ne fait partie d'aucune spécification.
+ +{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-type-x")}}
diff --git a/files/fr/web/css/scroll-snap-type-y/index.html b/files/fr/web/css/scroll-snap-type-y/index.html deleted file mode 100644 index e0106320c1..0000000000 --- a/files/fr/web/css/scroll-snap-type-y/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: scroll-snap-type-y -slug: Web/CSS/scroll-snap-type-y -tags: - - CSS - - Non-standard - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-type-y ---- -La propriété scroll-snap-type-y définit la « force » avec laquelle les points d'accroche sont respectés lors d'un déroulement vertical.
La gestion précise des animations et de la physique pour respecter ces points d'accroche n'est pas décrite par cette propriété et est laissée à la discrétion de l'agent utilisateur.
- -/* Valeurs avec un mot-clé */ -scroll-snap-type-y: none; -scroll-snap-type-y: mandatory; -scroll-snap-type-y: proximity; - -/* Valeurs globales */ -scroll-snap-type-y: inherit; -scroll-snap-type-y: initial; -scroll-snap-type-y: unset; -- -
nonemandatoryproximitynone | mandatory | proximity- -
Cette propriété ne fait partie d'aucune spécification.
- -{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-type-y")}}
diff --git a/files/fr/web/css/scroll-snap-type-y/index.md b/files/fr/web/css/scroll-snap-type-y/index.md new file mode 100644 index 0000000000..e0106320c1 --- /dev/null +++ b/files/fr/web/css/scroll-snap-type-y/index.md @@ -0,0 +1,53 @@ +--- +title: scroll-snap-type-y +slug: Web/CSS/scroll-snap-type-y +tags: + - CSS + - Non-standard + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-type-y +--- +La propriété scroll-snap-type-y définit la « force » avec laquelle les points d'accroche sont respectés lors d'un déroulement vertical.
La gestion précise des animations et de la physique pour respecter ces points d'accroche n'est pas décrite par cette propriété et est laissée à la discrétion de l'agent utilisateur.
+ +/* Valeurs avec un mot-clé */ +scroll-snap-type-y: none; +scroll-snap-type-y: mandatory; +scroll-snap-type-y: proximity; + +/* Valeurs globales */ +scroll-snap-type-y: inherit; +scroll-snap-type-y: initial; +scroll-snap-type-y: unset; ++ +
nonemandatoryproximitynone | mandatory | proximity+ +
Cette propriété ne fait partie d'aucune spécification.
+ +{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-type-y")}}
diff --git a/files/fr/web/css/scroll-snap-type/index.html b/files/fr/web/css/scroll-snap-type/index.html deleted file mode 100644 index 7e2c8520c4..0000000000 --- a/files/fr/web/css/scroll-snap-type/index.html +++ /dev/null @@ -1,247 +0,0 @@ ---- -title: scroll-snap-type -slug: Web/CSS/scroll-snap-type -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/scroll-snap-type ---- -La propriété scroll-snap-type définit la force d'adhérence aux points d'accroche en cas de défilement d'un conteneur.
La gestion précise des animations et de la physique pour respecter ces points d'accroche n'est pas décrite par cette propriété et est laissée à la discrétion de l'agent utilisateur.
- -/* Valeur avec un mot-clé */ -scroll-snap-type: none; -scroll-snap-type: x; -scroll-snap-type: y; -scroll-snap-type: block; -scroll-snap-type: inline; -scroll-snap-type: both; - -/* Ajout du mot-clé optionnel mandatory ou proximity*/ -scroll-snap-type: x mandatory; -scroll-snap-type: y proximity; -scroll-snap-type: both mandatory; -/* etc. */ - -/* Valeurs globales */ -scroll-snap-type: inherit; -scroll-snap-type: initial; -scroll-snap-type: unset; -- -
nonexyblockinlinebothmandatoryproximity/* setup */
-html, body, .holster {
- height: 100%;
-}
-.holster {
- display: flex;
- align-items: center;
- justify-content: space-between;
- flex-flow: column nowrap;
- font-family: monospace;
-}
-
-.container {
- display: flex;
- overflow: auto;
- outline: 1px dashed lightgray;
- flex: none;
-}
-
-.container.x {
- width: 100%;
- height: 128px;
- flex-flow: row nowrap;
-}
-
-.container.y {
- width: 256px;
- height: 256px;
- flex-flow: column nowrap;
-}
-/* scroll-snap */
-.x.mandatory-scroll-snapping {
- scroll-snap-type: x mandatory;
-}
-
-.y.mandatory-scroll-snapping {
- scroll-snap-type: y mandatory;
-}
-
-.x.proximity-scroll-snapping {
- scroll-snap-type: x proximity;
-}
-
-.y.proximity-scroll-snapping {
- scroll-snap-type: y proximity;
-}
-
-.container > div {
- text-align: center;
- scroll-snap-align: center;
- flex: none;
-}
-
-.x.container > div {
- line-height: 128px;
- font-size: 64px;
- width: 100%;
- height: 128px;
-}
-
-.y.container > div {
- line-height: 256px;
- font-size: 128px;
- width: 256px;
- height: 100%;
-}
-/* appearance fixes */
-.y.container > div:first-child {
- line-height: 1.3;
- font-size: 64px;
-}
-/* coloration */
-.container > div:nth-child(even) {
- background-color: #87EA87;
-}
-
-.container > div:nth-child(odd) {
- background-color: #87CCEA;
-}
-
-
-<div class="holster"> -<div class="container x mandatory-scroll-snapping" dir="ltr"> - <div>X Mand. LTR</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container x proximity-scroll-snapping" dir="ltr"> - <div>X Prox. LTR</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y mandatory-scroll-snapping" dir="ltr"> - <div>Y Mand. LTR</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y proximity-scroll-snapping" dir="ltr"> - <div>Y Prox. LTR</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container x mandatory-scroll-snapping" dir="rtl"> - <div>X Mand. RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container x proximity-scroll-snapping" dir="rtl"> - <div>X Prox. RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y mandatory-scroll-snapping" dir="rtl"> - <div>Y Mand. RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> - -<div class="container y proximity-scroll-snapping" dir="rtl"> - <div>Y Prox. RTL</div> - <div>2</div> - <div>3</div> - <div>4</div> - <div>5</div> -</div> -</div> -- -
{{EmbedLiveSample("Exemples", "100%", "1630")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-type", "scroll-snap-type")}} | -{{Spec2("CSS Scroll Snap Points")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scroll-snap-type")}}
diff --git a/files/fr/web/css/scroll-snap-type/index.md b/files/fr/web/css/scroll-snap-type/index.md new file mode 100644 index 0000000000..7e2c8520c4 --- /dev/null +++ b/files/fr/web/css/scroll-snap-type/index.md @@ -0,0 +1,247 @@ +--- +title: scroll-snap-type +slug: Web/CSS/scroll-snap-type +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/scroll-snap-type +--- +La propriété scroll-snap-type définit la force d'adhérence aux points d'accroche en cas de défilement d'un conteneur.
La gestion précise des animations et de la physique pour respecter ces points d'accroche n'est pas décrite par cette propriété et est laissée à la discrétion de l'agent utilisateur.
+ +/* Valeur avec un mot-clé */ +scroll-snap-type: none; +scroll-snap-type: x; +scroll-snap-type: y; +scroll-snap-type: block; +scroll-snap-type: inline; +scroll-snap-type: both; + +/* Ajout du mot-clé optionnel mandatory ou proximity*/ +scroll-snap-type: x mandatory; +scroll-snap-type: y proximity; +scroll-snap-type: both mandatory; +/* etc. */ + +/* Valeurs globales */ +scroll-snap-type: inherit; +scroll-snap-type: initial; +scroll-snap-type: unset; ++ +
nonexyblockinlinebothmandatoryproximity/* setup */
+html, body, .holster {
+ height: 100%;
+}
+.holster {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-flow: column nowrap;
+ font-family: monospace;
+}
+
+.container {
+ display: flex;
+ overflow: auto;
+ outline: 1px dashed lightgray;
+ flex: none;
+}
+
+.container.x {
+ width: 100%;
+ height: 128px;
+ flex-flow: row nowrap;
+}
+
+.container.y {
+ width: 256px;
+ height: 256px;
+ flex-flow: column nowrap;
+}
+/* scroll-snap */
+.x.mandatory-scroll-snapping {
+ scroll-snap-type: x mandatory;
+}
+
+.y.mandatory-scroll-snapping {
+ scroll-snap-type: y mandatory;
+}
+
+.x.proximity-scroll-snapping {
+ scroll-snap-type: x proximity;
+}
+
+.y.proximity-scroll-snapping {
+ scroll-snap-type: y proximity;
+}
+
+.container > div {
+ text-align: center;
+ scroll-snap-align: center;
+ flex: none;
+}
+
+.x.container > div {
+ line-height: 128px;
+ font-size: 64px;
+ width: 100%;
+ height: 128px;
+}
+
+.y.container > div {
+ line-height: 256px;
+ font-size: 128px;
+ width: 256px;
+ height: 100%;
+}
+/* appearance fixes */
+.y.container > div:first-child {
+ line-height: 1.3;
+ font-size: 64px;
+}
+/* coloration */
+.container > div:nth-child(even) {
+ background-color: #87EA87;
+}
+
+.container > div:nth-child(odd) {
+ background-color: #87CCEA;
+}
+
+
+<div class="holster"> +<div class="container x mandatory-scroll-snapping" dir="ltr"> + <div>X Mand. LTR</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container x proximity-scroll-snapping" dir="ltr"> + <div>X Prox. LTR</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y mandatory-scroll-snapping" dir="ltr"> + <div>Y Mand. LTR</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y proximity-scroll-snapping" dir="ltr"> + <div>Y Prox. LTR</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container x mandatory-scroll-snapping" dir="rtl"> + <div>X Mand. RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container x proximity-scroll-snapping" dir="rtl"> + <div>X Prox. RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y mandatory-scroll-snapping" dir="rtl"> + <div>Y Mand. RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> + +<div class="container y proximity-scroll-snapping" dir="rtl"> + <div>Y Prox. RTL</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> +</div> +</div> ++ +
{{EmbedLiveSample("Exemples", "100%", "1630")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scroll Snap Points", "#propdef-scroll-snap-type", "scroll-snap-type")}} | +{{Spec2("CSS Scroll Snap Points")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scroll-snap-type")}}
diff --git a/files/fr/web/css/scrollbar-color/index.html b/files/fr/web/css/scrollbar-color/index.html deleted file mode 100644 index a15e992993..0000000000 --- a/files/fr/web/css/scrollbar-color/index.html +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: scrollbar-color -slug: Web/CSS/scrollbar-color -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/scrollbar-color ---- -La propriété scrollbar-color permet à un auteur de définir la couleur utilisée pour le curseur et la piste (la ligne sur laquelle se déplace le curseur) de la barre de défilement.
{{EmbedInteractiveExample("pages/css/scrollbar-color.html")}}
- -/* Valeurs avec un mot-clé */ -scrollbar-color: auto; -scrollbar-color: dark; -scrollbar-color: light; - -/* Valeur de couleur */ -/* La première cible le curseur et la seconde la piste */ -/* type <color> */ -scrollbar-color: rebeccapurple green; - -/* Valeurs globales */ -scrollbar-color: inherit; -scrollbar-color: initial; -scrollbar-color: unset; -- -
<scrollbar-face-color>auto |
-
- Utilise le rendu par défaut du système pour la piste de la barre de défilement si aucune autre couleur n'est indiquée pour la mise en forme CSS de la barre de défilement. - |
-
dark |
- Affiche une barre de défilement sombre. Ce peut être la variante sombre fournie par le système sous-jacent ou une barre de défilement personnalisée avec des couleurs sombres. | -
light |
- Affiche une barre de défilement claire. Ce peut être la variante claire fournie par le système sous-jacent ou une barre de défilement personnalisée avec des couleurs claires. | -
<color> <color> |
- La première couleur est appliquée au curseur et la seconde à la piste sur laquelle se déplace le curseur. | -
Note : Pour toute valeur de scrollbar-color, les agents utilisateur doivent appliquer la valeur sur l'élément racine de la zone d'affichage (viewport).
Note : Si la couleur d'une partie de la barre de défilement est indiquée, les implémentations peuvent afficher une barre de défilement simple (plutôt que celle provenant du système) afin de la colorer avec la/les couleur(s) indiquée(s).
-.scroller {
- width: 300px;
- height: 100px;
- overflow-y: scroll;
- scrollbar-color: rebeccapurple green;
-}
-
-<div class="scroller">Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</div>- -
{{EmbedLiveSample("Exemples")}}
- -Lorsqu'on utilise scrollbar-color avec certains couleurs spécifiques, il est nécessaire de s'assurer que le contraste entre le curseur et la piste est suffisant. Lorsque des mots-clés sont utilisés, c'est à l'agent utilisateur de s'assurer que le contraste est suffisant. Voir les techniques WCAG 2.0 G183 : Utiliser un ratio de contraste de 3:1.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scrollbars", "#scrollbar-color", "scrollbar-color")}} | -{{Spec2("CSS Scrollbars")}} | -Définition initiale. | -
{{cssinfo}}
- -La propriété scrollbar-color permet à un auteur de définir la couleur utilisée pour le curseur et la piste (la ligne sur laquelle se déplace le curseur) de la barre de défilement.
{{EmbedInteractiveExample("pages/css/scrollbar-color.html")}}
+ +/* Valeurs avec un mot-clé */ +scrollbar-color: auto; +scrollbar-color: dark; +scrollbar-color: light; + +/* Valeur de couleur */ +/* La première cible le curseur et la seconde la piste */ +/* type <color> */ +scrollbar-color: rebeccapurple green; + +/* Valeurs globales */ +scrollbar-color: inherit; +scrollbar-color: initial; +scrollbar-color: unset; ++ +
<scrollbar-face-color>auto |
+
+ Utilise le rendu par défaut du système pour la piste de la barre de défilement si aucune autre couleur n'est indiquée pour la mise en forme CSS de la barre de défilement. + |
+
dark |
+ Affiche une barre de défilement sombre. Ce peut être la variante sombre fournie par le système sous-jacent ou une barre de défilement personnalisée avec des couleurs sombres. | +
light |
+ Affiche une barre de défilement claire. Ce peut être la variante claire fournie par le système sous-jacent ou une barre de défilement personnalisée avec des couleurs claires. | +
<color> <color> |
+ La première couleur est appliquée au curseur et la seconde à la piste sur laquelle se déplace le curseur. | +
Note : Pour toute valeur de scrollbar-color, les agents utilisateur doivent appliquer la valeur sur l'élément racine de la zone d'affichage (viewport).
Note : Si la couleur d'une partie de la barre de défilement est indiquée, les implémentations peuvent afficher une barre de défilement simple (plutôt que celle provenant du système) afin de la colorer avec la/les couleur(s) indiquée(s).
+.scroller {
+ width: 300px;
+ height: 100px;
+ overflow-y: scroll;
+ scrollbar-color: rebeccapurple green;
+}
+
+<div class="scroller">Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</div>+ +
{{EmbedLiveSample("Exemples")}}
+ +Lorsqu'on utilise scrollbar-color avec certains couleurs spécifiques, il est nécessaire de s'assurer que le contraste entre le curseur et la piste est suffisant. Lorsque des mots-clés sont utilisés, c'est à l'agent utilisateur de s'assurer que le contraste est suffisant. Voir les techniques WCAG 2.0 G183 : Utiliser un ratio de contraste de 3:1.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scrollbars", "#scrollbar-color", "scrollbar-color")}} | +{{Spec2("CSS Scrollbars")}} | +Définition initiale. | +
{{cssinfo}}
+ +La propriété scrollbar-width permet à un auteur de définir l'épaisseur maximale à utiliser pour la barre de défilement si celle-ci est affichée.
{{EmbedInteractiveExample("pages/css/scrollbar-width.html")}}
- -/* Valeurs avec un mot-clé */ -scrollbar-width: auto; -scrollbar-width: thin; -scrollbar-width: none; - -/* Valeurs globales */ -scrollbar-width: inherit; -scrollbar-width: initial; -scrollbar-width: unset; -- -
<scrollbar-width>auto |
- La largeur par défaut, fournie par le système, pour la barre de défilement. | -
thin |
- Une variante plus fine de la barre de défilement plus fine dans le cas des plateformes qui fournissent une telle option ou une barre de défilement avec une largeur moindre que la largeur par défaut du système. | -
none |
- Aucune barre de défilement n'est affichée mais on peut toujours faire défiler l'élément. | -
Note : Toute valeur de scrollbar-width doit être appliquée sur l'élément racine de la zone d'affichage (viewport) par les agents utilisateur.
Note : L'utilisation des longueurs pour scrollbar-width est une fonctionnalité qui sera potentiellement abandonnée de la spécification (voir l'issue 1958).
.scroller {
- width: 300px;
- height: 100px;
- overflow-y: scroll;
- scrollbar-width: thin;
-}
-
-<div class="scroller">Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</div>- -
{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Scrollbars", "#scrollbar-width", "scrollbar-width")}} | -{{Spec2("CSS Scrollbars")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.scrollbar-width")}}
- -La propriété scrollbar-width permet à un auteur de définir l'épaisseur maximale à utiliser pour la barre de défilement si celle-ci est affichée.
{{EmbedInteractiveExample("pages/css/scrollbar-width.html")}}
+ +/* Valeurs avec un mot-clé */ +scrollbar-width: auto; +scrollbar-width: thin; +scrollbar-width: none; + +/* Valeurs globales */ +scrollbar-width: inherit; +scrollbar-width: initial; +scrollbar-width: unset; ++ +
<scrollbar-width>auto |
+ La largeur par défaut, fournie par le système, pour la barre de défilement. | +
thin |
+ Une variante plus fine de la barre de défilement plus fine dans le cas des plateformes qui fournissent une telle option ou une barre de défilement avec une largeur moindre que la largeur par défaut du système. | +
none |
+ Aucune barre de défilement n'est affichée mais on peut toujours faire défiler l'élément. | +
Note : Toute valeur de scrollbar-width doit être appliquée sur l'élément racine de la zone d'affichage (viewport) par les agents utilisateur.
Note : L'utilisation des longueurs pour scrollbar-width est une fonctionnalité qui sera potentiellement abandonnée de la spécification (voir l'issue 1958).
.scroller {
+ width: 300px;
+ height: 100px;
+ overflow-y: scroll;
+ scrollbar-width: thin;
+}
+
+<div class="scroller">Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</div>+ +
{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Scrollbars", "#scrollbar-width", "scrollbar-width")}} | +{{Spec2("CSS Scrollbars")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.scrollbar-width")}}
+ + Une liste de sélecteurs (,) permet de cibler tous les nœuds correspondants à l'une des conditions.
/* Cible tous les éléments correspondants */
-span,
-div {
- border: red 2px solid;
-}
-
-Afin de réduire la taille d'une feuille de style, on peut grouper les sélecteurs dans une liste séparée par des virgules.
- -element, element, element { propriétés de style }
-
-On peut grouper les sélecteurs sur une seule ligne :
- -h1, h2, h3, h4, h5, h6 { font-family: helvetica; }
-
-
-On peut grouper les sélecteurs sur plusieurs lignes :
- -#main,
-.content,
-article {
- font-size: 1.1em;
-}
-
-
-Un inconvénient des listes de sélecteurs est la non-équivalence des deux blocs suivants :
- -h1 { font-family: sans-serif }
-h2:maybe-unsupported { font-family: sans-serif }
-h3 { font-family: sans-serif }
-
-h1, h2:maybe-unsupported, h3 { font-family: sans-serif }
-
-En effet, un seul sélecteur vous manque et tout est dépeuplé. Enfin, un seul sélecteur invalide rend l'ensemble de la règle invalide.
- -Pour éviter cet effet indésirable, on pourra utiliser le sélecteur {{CSSxRef(":is", ":is()")}} qui ignore les sélecteurs invalides parmi ses arguments. Par contre, tous les sélecteurs passés en arguments auront la même spécificité.
- -h1 { font-family: sans-serif }
-h2:maybe-unsupported { font-family: sans-serif }
-h3 { font-family: sans-serif }
-
-:is(h1, h2:maybe-unsupported, h3) { font-family: sans-serif }
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Selectors", "#grouping", "Selector Lists")}} | -{{Spec2("CSS4 Selectors")}} | -Renommage en « liste de sélecteur » | -
| {{SpecName('CSS1', '#grouping', 'grouping')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{Compat("css.selectors.list")}}
- - Une liste de sélecteurs (,) permet de cibler tous les nœuds correspondants à l'une des conditions.
/* Cible tous les éléments correspondants */
+span,
+div {
+ border: red 2px solid;
+}
+
+Afin de réduire la taille d'une feuille de style, on peut grouper les sélecteurs dans une liste séparée par des virgules.
+ +element, element, element { propriétés de style }
+
+On peut grouper les sélecteurs sur une seule ligne :
+ +h1, h2, h3, h4, h5, h6 { font-family: helvetica; }
+
+
+On peut grouper les sélecteurs sur plusieurs lignes :
+ +#main,
+.content,
+article {
+ font-size: 1.1em;
+}
+
+
+Un inconvénient des listes de sélecteurs est la non-équivalence des deux blocs suivants :
+ +h1 { font-family: sans-serif }
+h2:maybe-unsupported { font-family: sans-serif }
+h3 { font-family: sans-serif }
+
+h1, h2:maybe-unsupported, h3 { font-family: sans-serif }
+
+En effet, un seul sélecteur vous manque et tout est dépeuplé. Enfin, un seul sélecteur invalide rend l'ensemble de la règle invalide.
+ +Pour éviter cet effet indésirable, on pourra utiliser le sélecteur {{CSSxRef(":is", ":is()")}} qui ignore les sélecteurs invalides parmi ses arguments. Par contre, tous les sélecteurs passés en arguments auront la même spécificité.
+ +h1 { font-family: sans-serif }
+h2:maybe-unsupported { font-family: sans-serif }
+h3 { font-family: sans-serif }
+
+:is(h1, h2:maybe-unsupported, h3) { font-family: sans-serif }
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Selectors", "#grouping", "Selector Lists")}} | +{{Spec2("CSS4 Selectors")}} | +Renommage en « liste de sélecteur » | +
| {{SpecName('CSS1', '#grouping', 'grouping')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{Compat("css.selectors.list")}}
+ +La propriété shape-image-threshold définit le seuil, en terme de canal alpha, à utiliser pour extraire la forme d'une image. Cette forme pourra être utilisée pour {{cssxref("shape-outside")}}.
Touts les pixels dont la composante alpha est supérieure à ce seuil seront retenus pour délimiter les contours de la formes. Une valeur de 0.5 indiquera par exemple qu'on prend la forme qui englobe tous les pixels dont l'opacité est supérieure à 50%.
- -/* Quantité seuil */ -/* Valeur <number> */ -shape-image-threshold: 0.7; - -/* Valeurs globales */ -shape-image-threshold: inherit; -shape-image-threshold: initial; -shape-image-threshold: unset; -- -
<number>Dans cet exemple, on utilise un bloc {{HTMLElement("div")}} pour y afficher une image d'arrière-plan avec un dégradé. On retrouve ce dégradé dans une forme CSS avec la propriété shape-outside et on utilise shape-image-threshold afin de ne retenir que les pixels dont l'opacité est supérieure ou égale à 20% pour délimiter la forme.
#gradient-shape {
- width: 150px;
- height: 150px;
- float: left;
- background-image: linear-gradient(30deg, black, transparent 80%,
- transparent);
- shape-outside: linear-gradient(30deg, black, transparent 80%,
- transparent);
- shape-image-threshold: 0.2;
-}
-
-<div id="gradient-shape"></div> - -<p> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel at commodi - voluptates enim, distinctio officia. Saepe optio accusamus doloribus sint - facilis itaque ab nulla, dolor molestiae assumenda cum sit placeat - adipisci, libero quae nihil porro debitis laboriosam inventore animi - impedit nostrum nesciunt quisquam expedita! Dolores consectetur iure atque - a mollitia dicta repudiandae illum exercitationem aliquam repellendus - ipsum porro modi, id nemo eligendi, architecto ratione quibusdam iusto - nisi soluta? Totam inventore ea eum sed velit et eligendi suscipit - accusamus iusto dolore, at provident eius alias maxime pariatur non - deleniti ipsum sequi rem eveniet laboriosam magni expedita? -</p>- -
{{EmbedLiveSample('Exemples', "600px", "230px")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Shapes', '#shape-image-threshold-property', 'shape-image-threshold')}} | -{{Spec2('CSS Shapes')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.shape-image-threshold")}}
- -La propriété shape-image-threshold définit le seuil, en terme de canal alpha, à utiliser pour extraire la forme d'une image. Cette forme pourra être utilisée pour {{cssxref("shape-outside")}}.
Touts les pixels dont la composante alpha est supérieure à ce seuil seront retenus pour délimiter les contours de la formes. Une valeur de 0.5 indiquera par exemple qu'on prend la forme qui englobe tous les pixels dont l'opacité est supérieure à 50%.
+ +/* Quantité seuil */ +/* Valeur <number> */ +shape-image-threshold: 0.7; + +/* Valeurs globales */ +shape-image-threshold: inherit; +shape-image-threshold: initial; +shape-image-threshold: unset; ++ +
<number>Dans cet exemple, on utilise un bloc {{HTMLElement("div")}} pour y afficher une image d'arrière-plan avec un dégradé. On retrouve ce dégradé dans une forme CSS avec la propriété shape-outside et on utilise shape-image-threshold afin de ne retenir que les pixels dont l'opacité est supérieure ou égale à 20% pour délimiter la forme.
#gradient-shape {
+ width: 150px;
+ height: 150px;
+ float: left;
+ background-image: linear-gradient(30deg, black, transparent 80%,
+ transparent);
+ shape-outside: linear-gradient(30deg, black, transparent 80%,
+ transparent);
+ shape-image-threshold: 0.2;
+}
+
+<div id="gradient-shape"></div> + +<p> + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel at commodi + voluptates enim, distinctio officia. Saepe optio accusamus doloribus sint + facilis itaque ab nulla, dolor molestiae assumenda cum sit placeat + adipisci, libero quae nihil porro debitis laboriosam inventore animi + impedit nostrum nesciunt quisquam expedita! Dolores consectetur iure atque + a mollitia dicta repudiandae illum exercitationem aliquam repellendus + ipsum porro modi, id nemo eligendi, architecto ratione quibusdam iusto + nisi soluta? Totam inventore ea eum sed velit et eligendi suscipit + accusamus iusto dolore, at provident eius alias maxime pariatur non + deleniti ipsum sequi rem eveniet laboriosam magni expedita? +</p>+ +
{{EmbedLiveSample('Exemples', "600px", "230px")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Shapes', '#shape-image-threshold-property', 'shape-image-threshold')}} | +{{Spec2('CSS Shapes')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.shape-image-threshold")}}
+ +La propriété CSS shape-margin définit la marge autour d'une forme CSS créée avec {{cssxref("shape-outside")}}.
La marge permet d'ajuster la distance entre le contour de la forme (l'élément flottant) et le contenu autour.
- -/* Valeur de longueur */ -/* Type <length> */ -shape-margin: 10px; -shape-margin: 20mm; - -/* Valeur proportionnelle */ -/* Type <percentage> */ -shape-margin: 60%; - -/* Valeurs globales */ -shape-margin: inherit; -shape-margin: initial; -shape-margin: unset; -- -
<length-percentage>section {
- max-width: 400px;
-}
-
-.shape {
- float: left;
- width: 150px;
- height: 150px;
- background-color: maroon;
- clip-path: polygon(0 0, 150px 150px, 0 150px);
- shape-outside: polygon(0 0, 150px 150px, 0 150px);
- shape-margin: 20px;
-}
-
-<section> - <div class="shape"></div> - We are not quite sure of any one thing in biology; our knowledge of geology - is relatively very slight, and the economic laws of society are - uncertain to every one except some individual who attempts to set them - forth; but before the world was fashioned the square on the hypotenuse - was equal to the sum of the squares on the other two sides of a right - triangle, and it will be so after this world is dead; and the inhabitant - of Mars, if he exists, probably knows its truth as we know it. -</section>- -
{{EmbedLiveSample("Exemples", 500, 250)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Shapes', '#shape-margin-property', 'shape-margin')}} | -{{Spec2('CSS Shapes')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.shape-margin")}}
- -La propriété CSS shape-margin définit la marge autour d'une forme CSS créée avec {{cssxref("shape-outside")}}.
La marge permet d'ajuster la distance entre le contour de la forme (l'élément flottant) et le contenu autour.
+ +/* Valeur de longueur */ +/* Type <length> */ +shape-margin: 10px; +shape-margin: 20mm; + +/* Valeur proportionnelle */ +/* Type <percentage> */ +shape-margin: 60%; + +/* Valeurs globales */ +shape-margin: inherit; +shape-margin: initial; +shape-margin: unset; ++ +
<length-percentage>section {
+ max-width: 400px;
+}
+
+.shape {
+ float: left;
+ width: 150px;
+ height: 150px;
+ background-color: maroon;
+ clip-path: polygon(0 0, 150px 150px, 0 150px);
+ shape-outside: polygon(0 0, 150px 150px, 0 150px);
+ shape-margin: 20px;
+}
+
+<section> + <div class="shape"></div> + We are not quite sure of any one thing in biology; our knowledge of geology + is relatively very slight, and the economic laws of society are + uncertain to every one except some individual who attempts to set them + forth; but before the world was fashioned the square on the hypotenuse + was equal to the sum of the squares on the other two sides of a right + triangle, and it will be so after this world is dead; and the inhabitant + of Mars, if he exists, probably knows its truth as we know it. +</section>+ +
{{EmbedLiveSample("Exemples", 500, 250)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Shapes', '#shape-margin-property', 'shape-margin')}} | +{{Spec2('CSS Shapes')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.shape-margin")}}
+ +La propriété shape-outside définit une forme (qui peut ne pas être un rectangle) autour de laquelle le contenu en ligne devra « s'écouler ». Par défaut, le contenu en ligne évolue autour de la boîte de marge de l'élément flottant. La propriété shape-outside permet de personnaliser ce contour et d'obtenir un texte qui s'écoule autour d'objets plus complexes que des rectangles.
/* Valeurs avec un mot-clé */ -shape-outside: none; -shape-outside: margin-box; -shape-outside: content-box; -shape-outside: border-box; -shape-outside: padding-box; - -/* Valeurs utilisant une fonction */ -shape-outside: circle(); -shape-outside: ellipse(); -shape-outside: inset(10px 10px 10px 10px); -shape-outside: polygon(10px 10px, 20px 20px, 30px 30px); -shape-outside: linear-gradient(45deg, rgba(255,255,255,0) 150px, red 150px); - -/* Valeur de type <url> */ -shape-outside: url(image.png); - - -/* Valeur de type <gradient> */ -shape-outside: linear-gradient(45deg, rgba(255, 255, 255, 0) 150px, red 150px); - -/* Valeurs globales */ -shape-outside: initial; -shape-outside: inherit; -shape-outside: unset; -- -
none<shape-box>margin-box', 'border-box', 'padding-box' or 'content-box' qui correspondent chacune aux boîtes de marge, bordure, remplissage et de contenu. La boîte ainsi définie inclue les courbures induites par {{cssxref("border-radius")}}. On a un effet semblable à {{cssxref("background-clip")}}.<basic-shape>inset(), circle(), ellipse(), ou polygon(). Si une valeur <shape-box> est fournie, cela définira la boîte de référence dans laquelle appliquée la forme définie avec la fonction <basic-shape>. Si <shape-box> n'est pas fournie, la valeur par défaut sera 'margin-box'.<image>fetch, éventuellement avec CORS pour les URL utilisées dans shape-outside. Lors de l'accès à la ressource, les agents utilisateurs doivent utiliser le mode Anonymous et définir la source du referrer comme l'URL de la feuille de style, l'origine de l'URL doit être celle du document. S'il y a des erreurs réseau empêchant de récupérer l'image, l'effet sera le même que celui obtenu avec la valeur none.Afin de pouvoir interpoler entre deux formes, on appliquera les règles suivantes. Les valeurs avec des fonctions sont interpolées comme une liste simple. Les valeurs d'une liste sont interpolées comme des longueurs, des pourcentages ou des valeurs calculées lorsque c'est possible. Si les valeurs de la liste n'ont pas ces types mais sont identiques (par exemple, on trouve nonzero à la même position dans les deux listes), les valeurs pourront interopérer.
ellipse() ou circle() et qu'aucun des rayons n'utilise les mots-clés closest-side ou farthest-side, on aura une interpolation entre chaque valeur.inset(), on aura une interpolation entre chaque valeur.polygon(), que les deux polygones ont le même nombre de côtés et utilisent la même règle <fill-rule>, on aura une interpolation entre chaque valeur.<div class="main"> - <div class="left"></div> - <div class="right"></div> - <p> - Sometimes a web page's text content appears to be - funneling your attention towards a spot on the page - to drive you to follow a particular link. Sometimes - you don't notice. - </p> -</div>- -
.main {
- width: 530px;
-}
-
-.left,
-.right {
- width: 40%;
- height: 12ex;
- background-color: lightgray;
-}
-
-.left {
- -webkit-shape-outside: polygon(0 0, 100% 100%, 0 100%);
- shape-outside: polygon(0 0, 100% 100%, 0 100%);
- float: left;
- -webkit-clip-path: polygon(0 0, 100% 100%, 0 100%);
- clip-path: polygon(0 0, 100% 100%, 0 100%);
-}
-
-.right {
- -webkit-shape-outside: polygon(100% 0, 100% 100%, 0 100%);
- shape-outside: polygon(100% 0, 100% 100%, 0 100%);
- float: right;
- -webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%);
- clip-path: polygon(100% 0, 100% 100%, 0 100%);
-}
-
-p {
- text-align: center;
-}
-
-{{EmbedLiveSample('Exemples', "100%", 130)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Shapes', '#shape-outside-property', 'shape-outside')}} | -{{Spec2('CSS Shapes')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.shape-outside")}}
- -<basic-shape>La propriété shape-outside définit une forme (qui peut ne pas être un rectangle) autour de laquelle le contenu en ligne devra « s'écouler ». Par défaut, le contenu en ligne évolue autour de la boîte de marge de l'élément flottant. La propriété shape-outside permet de personnaliser ce contour et d'obtenir un texte qui s'écoule autour d'objets plus complexes que des rectangles.
/* Valeurs avec un mot-clé */ +shape-outside: none; +shape-outside: margin-box; +shape-outside: content-box; +shape-outside: border-box; +shape-outside: padding-box; + +/* Valeurs utilisant une fonction */ +shape-outside: circle(); +shape-outside: ellipse(); +shape-outside: inset(10px 10px 10px 10px); +shape-outside: polygon(10px 10px, 20px 20px, 30px 30px); +shape-outside: linear-gradient(45deg, rgba(255,255,255,0) 150px, red 150px); + +/* Valeur de type <url> */ +shape-outside: url(image.png); + + +/* Valeur de type <gradient> */ +shape-outside: linear-gradient(45deg, rgba(255, 255, 255, 0) 150px, red 150px); + +/* Valeurs globales */ +shape-outside: initial; +shape-outside: inherit; +shape-outside: unset; ++ +
none<shape-box>margin-box', 'border-box', 'padding-box' or 'content-box' qui correspondent chacune aux boîtes de marge, bordure, remplissage et de contenu. La boîte ainsi définie inclue les courbures induites par {{cssxref("border-radius")}}. On a un effet semblable à {{cssxref("background-clip")}}.<basic-shape>inset(), circle(), ellipse(), ou polygon(). Si une valeur <shape-box> est fournie, cela définira la boîte de référence dans laquelle appliquée la forme définie avec la fonction <basic-shape>. Si <shape-box> n'est pas fournie, la valeur par défaut sera 'margin-box'.<image>fetch, éventuellement avec CORS pour les URL utilisées dans shape-outside. Lors de l'accès à la ressource, les agents utilisateurs doivent utiliser le mode Anonymous et définir la source du referrer comme l'URL de la feuille de style, l'origine de l'URL doit être celle du document. S'il y a des erreurs réseau empêchant de récupérer l'image, l'effet sera le même que celui obtenu avec la valeur none.Afin de pouvoir interpoler entre deux formes, on appliquera les règles suivantes. Les valeurs avec des fonctions sont interpolées comme une liste simple. Les valeurs d'une liste sont interpolées comme des longueurs, des pourcentages ou des valeurs calculées lorsque c'est possible. Si les valeurs de la liste n'ont pas ces types mais sont identiques (par exemple, on trouve nonzero à la même position dans les deux listes), les valeurs pourront interopérer.
ellipse() ou circle() et qu'aucun des rayons n'utilise les mots-clés closest-side ou farthest-side, on aura une interpolation entre chaque valeur.inset(), on aura une interpolation entre chaque valeur.polygon(), que les deux polygones ont le même nombre de côtés et utilisent la même règle <fill-rule>, on aura une interpolation entre chaque valeur.<div class="main"> + <div class="left"></div> + <div class="right"></div> + <p> + Sometimes a web page's text content appears to be + funneling your attention towards a spot on the page + to drive you to follow a particular link. Sometimes + you don't notice. + </p> +</div>+ +
.main {
+ width: 530px;
+}
+
+.left,
+.right {
+ width: 40%;
+ height: 12ex;
+ background-color: lightgray;
+}
+
+.left {
+ -webkit-shape-outside: polygon(0 0, 100% 100%, 0 100%);
+ shape-outside: polygon(0 0, 100% 100%, 0 100%);
+ float: left;
+ -webkit-clip-path: polygon(0 0, 100% 100%, 0 100%);
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
+}
+
+.right {
+ -webkit-shape-outside: polygon(100% 0, 100% 100%, 0 100%);
+ shape-outside: polygon(100% 0, 100% 100%, 0 100%);
+ float: right;
+ -webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%);
+ clip-path: polygon(100% 0, 100% 100%, 0 100%);
+}
+
+p {
+ text-align: center;
+}
+
+{{EmbedLiveSample('Exemples', "100%", 130)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Shapes', '#shape-outside-property', 'shape-outside')}} | +{{Spec2('CSS Shapes')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.shape-outside")}}
+ +<basic-shape>Le type de donnée CSS <shape> permet de représenter des formes. Ces formes (ou régions) sont utilisées pour définir les parties d'un élément sur lesquelles des propriétés comme {{cssxref("clip")}} s'appliquent. Ce type de donnée a été déprécié pour être remplacé par {{cssxref("<basic-shape>")}}.
Note : <shape> et rect() fonctionnent avec la propriété {{cssxref("clip")}} qui a été dépréciée pour être remplacée par {{cssxref("clip-path")}}. Il est donc préférable d'utiliser cette dernière si possible avec une valeur de type {{cssxref("<basic-shape>")}} à la place.
Les valeurs de type <shape> sont construites grâce à la notation fonctionnelle rect() qui permet de créer une zone en forme de rectangle.
rect(haut, droite, bas, gauche) -- -

hautdroitebasgaucheLes valeurs de type <shape> sont des rectangles qui peuvent être interpolées lors des animations. Pour ces valeurs, l'interpolation s'effectue en interpolant chacune des valeurs haut, droite, bas et gauche comme des nombres réels (à virgule flottante). La vitesse de l'interpolation est définie grâce à la fonction de temporisation associée à l'animation.
-img.clip04 {
- clip: rect(10px, 20px, 20px, 10px);
-}
-
-
-| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS2.1', 'visufx.html#value-def-shape', '<shape>')}} | -{{Spec2('CSS2.1')}} | -Définition avec la propriété {{cssxref("clip")}}. | -
{{Compat("css.types.shape")}}
- -Le type de donnée CSS <shape> permet de représenter des formes. Ces formes (ou régions) sont utilisées pour définir les parties d'un élément sur lesquelles des propriétés comme {{cssxref("clip")}} s'appliquent. Ce type de donnée a été déprécié pour être remplacé par {{cssxref("<basic-shape>")}}.
Note : <shape> et rect() fonctionnent avec la propriété {{cssxref("clip")}} qui a été dépréciée pour être remplacée par {{cssxref("clip-path")}}. Il est donc préférable d'utiliser cette dernière si possible avec une valeur de type {{cssxref("<basic-shape>")}} à la place.
Les valeurs de type <shape> sont construites grâce à la notation fonctionnelle rect() qui permet de créer une zone en forme de rectangle.
rect(haut, droite, bas, gauche) ++ +

hautdroitebasgaucheLes valeurs de type <shape> sont des rectangles qui peuvent être interpolées lors des animations. Pour ces valeurs, l'interpolation s'effectue en interpolant chacune des valeurs haut, droite, bas et gauche comme des nombres réels (à virgule flottante). La vitesse de l'interpolation est définie grâce à la fonction de temporisation associée à l'animation.
+img.clip04 {
+ clip: rect(10px, 20px, 20px, 10px);
+}
+
+
+| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS2.1', 'visufx.html#value-def-shape', '<shape>')}} | +{{Spec2('CSS2.1')}} | +Définition avec la propriété {{cssxref("clip")}}. | +
{{Compat("css.types.shape")}}
+ +Les propriétés raccourcies sont des propriétés CSS qui permettent de définir la valeur de plusieurs propriétés via une seule déclaration. En manipulant des propriétés raccourcies, un développeur web peut créer des feuilles de style plus concises et plus lisibles, améliorant ainsi la maintenabilité.
- -La spécification CSS définit les propriétés raccourcies en regroupant la définition des propriétés agissant sur le même aspect de l'élément. Ainsi, la propriété {{cssxref("background")}} est une propriété raccourcie qui permettra de définir {{cssxref("background-color")}}, {{cssxref("background-image")}}, {{cssxref("background-repeat")}} et {{cssxref("background-position")}}. De même, les propriétés fréquemment utilisées pour la mise en forme des polices de caractères (font) peuvent être définies via la propriété raccourcie {{cssxref("font")}} et celles qui concernent la marge avec la propriété raccourcie {{cssxref("margin")}}.
- -Bien que les propriétés raccourcies soient pratiques à utiliser. Il est nécessaire de noter certains éléments pour parer aux cas étranges qui peuvent survenir :
- -background-color: red; -background: url(images/bg.gif) no-repeat top right; -- ne définira pas la couleur d'arrière-plan en rouge mais avec la valeur par défaut de {{cssxref("background-color")}}
transparent car la deuxième déclaration prend le pas sur la première.inherit.![]() |
- 1 valeur : border-width: 1em — La valeur unique s'adresse à tous les côtés. |
-
![]() |
- 2 valeurs : border-width: 1em 2em — La première valeur représente les côtés horizontaux en haut et en bas. La seconde valeur représente les côtés verticaux, à gauche et à droite. |
-
![]() |
- 3 valeurs : border-width: 1em 2em 3em — La première valeur représente le côté haut, la deuxième les côtés gauche et droit et la troisième représente le côté bas. |
-
![]() |
-
- 4 valeurs : |
-
![]() |
- 1 valeur : border-radius: 1em — La valeur s'applique à tous les coins. |
-
![]() |
- 2 valeurs : border-radius: 1em 2em — La première valeur s'applique aux coins en haut à gauche et en bas à droite et la deuxième s'applique aux coins en haut à droite et en bas à gauche. |
-
![]() |
- 3 valeurs : border-radius: 1em 2em 3em — La première valeur représente le coin en haut à gauche, la deuxième représente les coins en haut à droite et en bas à gauche et la troisième valeur représente le coin en bas à droite. |
-
![]() |
-
- 4 valeurs : |
-
Lorsqu'on décrit un arrière-plan avec les propriétés suivantes :
- -background-color: #000; -background-image: url(images/bg.gif); -background-repeat: no-repeat; -background-position: top right;- -
On peut le faire de façon plus concise grâce à la propriété raccourcie. Voici la déclaration équivalent :
- -background: #000 url(images/bg.gif) no-repeat top right;- -
Note : Pour être tout à fait précis, la forme raccourcie présentée juste avant est équivalente aux propriétés détaillées qui précèdent auxquelles on ajoute background-attachment: scroll et d'autres propriétés avec CSS3).
Pour plus d'informations, voir {{cssxref("background")}}.
- -Les déclarations suivantes :
- -font-style: italic; -font-weight: bold; -font-size: .8em; -line-height: 1.2; -font-family: Arial, sans-serif;- -
Peuvent être synthétisées en une seule déclaration avec la propriété raccourcie :
- -font: italic bold .8em/1.2 Arial, sans-serif;- -
Note : Pour être tout à fait précis, la déclaration raccourcie précédente est équivalente aux déclarations détaillées ci-avant auxquelles on ajoutera font-variant: normal et font-size-adjust: none (CSS2.0 / CSS3), font-stretch: normal (CSS3).
Avec les bordures, la largeur, la couleur et le style peuvent être regroupés en une seule déclaration. Par exemple,
- -border-width: 1px; -border-style: solid; -border-color: #000;- -
peut être écrit ainsi :
- -border: 1px solid #000;- -
Les propriétés raccourcies agissant sur la boîte de marge ou sur la boîte de remplissage (padding) fonctionnent de la même façon. Ainsi, les déclarations CSS suivantes :
- -margin-top: 10px; -margin-right: 5px; -margin-bottom: 10px; -margin-left: 5px;- -
sont équivalentes à la déclaration qui suit (on notera que les valeurs sont ordonnés dans le sens horaire : haut, droit, bas, gauche ; un moyen mnémotechnique est d'utiliser l'acronyme anglais TRBL qui ressemble à trouble) :
- -margin: 10px 5px 10px 5px;- -
CSS fournit une propriété raccourcie qui permet d'appliquer une même valeur à l'ensemble des propriétés du document : {{cssxref("all")}}.
- -Voir l'article sur la cascade et l'héritage pour plus d'informations sur le fonctionnement de l'héritage.
- -Les propriétés raccourcies sont des propriétés CSS qui permettent de définir la valeur de plusieurs propriétés via une seule déclaration. En manipulant des propriétés raccourcies, un développeur web peut créer des feuilles de style plus concises et plus lisibles, améliorant ainsi la maintenabilité.
+ +La spécification CSS définit les propriétés raccourcies en regroupant la définition des propriétés agissant sur le même aspect de l'élément. Ainsi, la propriété {{cssxref("background")}} est une propriété raccourcie qui permettra de définir {{cssxref("background-color")}}, {{cssxref("background-image")}}, {{cssxref("background-repeat")}} et {{cssxref("background-position")}}. De même, les propriétés fréquemment utilisées pour la mise en forme des polices de caractères (font) peuvent être définies via la propriété raccourcie {{cssxref("font")}} et celles qui concernent la marge avec la propriété raccourcie {{cssxref("margin")}}.
+ +Bien que les propriétés raccourcies soient pratiques à utiliser. Il est nécessaire de noter certains éléments pour parer aux cas étranges qui peuvent survenir :
+ +background-color: red; +background: url(images/bg.gif) no-repeat top right; ++ ne définira pas la couleur d'arrière-plan en rouge mais avec la valeur par défaut de {{cssxref("background-color")}}
transparent car la deuxième déclaration prend le pas sur la première.inherit.![]() |
+ 1 valeur : border-width: 1em — La valeur unique s'adresse à tous les côtés. |
+
![]() |
+ 2 valeurs : border-width: 1em 2em — La première valeur représente les côtés horizontaux en haut et en bas. La seconde valeur représente les côtés verticaux, à gauche et à droite. |
+
![]() |
+ 3 valeurs : border-width: 1em 2em 3em — La première valeur représente le côté haut, la deuxième les côtés gauche et droit et la troisième représente le côté bas. |
+
![]() |
+
+ 4 valeurs : |
+
![]() |
+ 1 valeur : border-radius: 1em — La valeur s'applique à tous les coins. |
+
![]() |
+ 2 valeurs : border-radius: 1em 2em — La première valeur s'applique aux coins en haut à gauche et en bas à droite et la deuxième s'applique aux coins en haut à droite et en bas à gauche. |
+
![]() |
+ 3 valeurs : border-radius: 1em 2em 3em — La première valeur représente le coin en haut à gauche, la deuxième représente les coins en haut à droite et en bas à gauche et la troisième valeur représente le coin en bas à droite. |
+
![]() |
+
+ 4 valeurs : |
+
Lorsqu'on décrit un arrière-plan avec les propriétés suivantes :
+ +background-color: #000; +background-image: url(images/bg.gif); +background-repeat: no-repeat; +background-position: top right;+ +
On peut le faire de façon plus concise grâce à la propriété raccourcie. Voici la déclaration équivalent :
+ +background: #000 url(images/bg.gif) no-repeat top right;+ +
Note : Pour être tout à fait précis, la forme raccourcie présentée juste avant est équivalente aux propriétés détaillées qui précèdent auxquelles on ajoute background-attachment: scroll et d'autres propriétés avec CSS3).
Pour plus d'informations, voir {{cssxref("background")}}.
+ +Les déclarations suivantes :
+ +font-style: italic; +font-weight: bold; +font-size: .8em; +line-height: 1.2; +font-family: Arial, sans-serif;+ +
Peuvent être synthétisées en une seule déclaration avec la propriété raccourcie :
+ +font: italic bold .8em/1.2 Arial, sans-serif;+ +
Note : Pour être tout à fait précis, la déclaration raccourcie précédente est équivalente aux déclarations détaillées ci-avant auxquelles on ajoutera font-variant: normal et font-size-adjust: none (CSS2.0 / CSS3), font-stretch: normal (CSS3).
Avec les bordures, la largeur, la couleur et le style peuvent être regroupés en une seule déclaration. Par exemple,
+ +border-width: 1px; +border-style: solid; +border-color: #000;+ +
peut être écrit ainsi :
+ +border: 1px solid #000;+ +
Les propriétés raccourcies agissant sur la boîte de marge ou sur la boîte de remplissage (padding) fonctionnent de la même façon. Ainsi, les déclarations CSS suivantes :
+ +margin-top: 10px; +margin-right: 5px; +margin-bottom: 10px; +margin-left: 5px;+ +
sont équivalentes à la déclaration qui suit (on notera que les valeurs sont ordonnés dans le sens horaire : haut, droit, bas, gauche ; un moyen mnémotechnique est d'utiliser l'acronyme anglais TRBL qui ressemble à trouble) :
+ +margin: 10px 5px 10px 5px;+ +
CSS fournit une propriété raccourcie qui permet d'appliquer une même valeur à l'ensemble des propriétés du document : {{cssxref("all")}}.
+ +Voir l'article sur la cascade et l'héritage pour plus d'informations sur le fonctionnement de l'héritage.
+ +La valeur définie d'une propriété CSS est celle explicitement définie dans la feuille de style ou grâce au style de son élément parent. Elle est déterminée selon une des trois méthodes suivantes :
- -green alors la couleur du texte des éléments correspondants sera verte.font vaut Arial et qu'il n'y a pas de règle font pour {{HTMLElement("p")}}, ce dernier héritera de la police Arial.<p>Ma couleur provient explicitement de la feuille de style CSS.</p> - -<div>Les valeurs définies de mes propriétés utilisent - les valeurs initiales (par défaut) car aucune n'est fournie - dans la feuille de style CSS.</div> - -<div class="fun"> - <p>La valeur définie pour ma police n'est pas fournie explicitement - dans la feuille de style et est donc héritée de mon parent. - Toutefois, la bordure n'est pas une propriété héritée.</p> -</div>- -
.fun {
- border: 1px dotted pink;
- font-family: fantasy;
-}
-
-p {
- color: green;
-}
-
-
-{{EmbedLiveSample("Exemples", 500, 220)}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName("CSS2.2", "cascade.html#specified-value", "cascaded value")}} | -{{Spec2("CSS2.2")}} | -- |
| {{SpecName("CSS2.1", "cascade.html#specified-value", "cascaded value")}} | -{{Spec2("CSS2.1")}} | -Définition initiale. | -
La valeur définie d'une propriété CSS est celle explicitement définie dans la feuille de style ou grâce au style de son élément parent. Elle est déterminée selon une des trois méthodes suivantes :
+ +green alors la couleur du texte des éléments correspondants sera verte.font vaut Arial et qu'il n'y a pas de règle font pour {{HTMLElement("p")}}, ce dernier héritera de la police Arial.<p>Ma couleur provient explicitement de la feuille de style CSS.</p> + +<div>Les valeurs définies de mes propriétés utilisent + les valeurs initiales (par défaut) car aucune n'est fournie + dans la feuille de style CSS.</div> + +<div class="fun"> + <p>La valeur définie pour ma police n'est pas fournie explicitement + dans la feuille de style et est donc héritée de mon parent. + Toutefois, la bordure n'est pas une propriété héritée.</p> +</div>+ +
.fun {
+ border: 1px dotted pink;
+ font-family: fantasy;
+}
+
+p {
+ color: green;
+}
+
+
+{{EmbedLiveSample("Exemples", 500, 220)}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName("CSS2.2", "cascade.html#specified-value", "cascaded value")}} | +{{Spec2("CSS2.2")}} | ++ |
| {{SpecName("CSS2.1", "cascade.html#specified-value", "cascaded value")}} | +{{Spec2("CSS2.1")}} | +Définition initiale. | +
Le type de donnée CSS <string> représente une chaîne de caractères. En CSS, les chaînes de caractères sont présentes dans de nombreuses propriétés comme {{cssxref("content")}}, {{cssxref("font-family")}} et {{cssxref("quotes")}}.
Une chaîne de caractères CSS est formée d'un ou plusieurs caractères Unicode délimités par des quotes (') ou des doubles quotes ("). Une chaîne délimitée par des doubles quotes ne peut pas contenir de double quotes à moins qu'elles soient échappées à l'aide d'une barre oblique inversée (\). Le même principe s'applique aux chaînes délimitées par des quotes simples, qui ne peuvent contenir de quotes simples sans qu'elles soient échappés à l'aide d'une barre oblique inversée (\).
Le caractère barre oblique inversée doit être échappé afin de faire partie d'une chaîne de caractère.
- -Les nouvelles lignes ne sont pas acceptées, sauf si elles sont échappées à l'aide d'un caractère de saut de ligne tel que \A ou \00000a. Toutefois, des chaînes de caractères peuvent s'étendre sur plusieurs lignes. Dans ce cas, il est possible de couper la chaîne en plusieurs lignes en utilisant une barre oblique inversée (\) comme dernier caractère de chaque ligne.
Les caractères peuvent être décrits en utilisant leur point de code Unicode hexadécimal, qui doit alors être échappé à l'aide du caractère \. \27 représente par exemple le guillemet droit simple (') et \A9 le symbole du copyright ©.
Note : Les entités telles que ou — ne peuvent pas être utilisées pour les chaînes de caractères CSS.
"Chaîne avec des guillemets doubles" -"Chaîne avec plusieurs \" guillemets doubles" -'Chaîne avec des guillemets simples' -'Chaîne avec plusieurs \' guillemets simples' - -"Chaîne avec une \Anouvelle ligne" - -"Une grande chaîne \ -de caractères" -"Une grande chaîne de caractères" -- -
Note : on peut également échapper des doubles quotes avec \22 et les simples quotes avec \27.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Values', '#strings', '')}} | -{{Spec2('CSS3 Values')}} | -Aucune modification significative depuis CSS Level 2 (Revision 1) | -
| {{SpecName('CSS2.1', 'syndata.html#strings', '')}} | -{{Spec2('CSS2.1')}} | -Définition explicite. Les valeurs Unicode échappées sur 6 chiffres sont autorisées. | -
| {{SpecName('CSS1', '', '')}} | -{{Spec2('CSS1')}} | -Définition implicite. Les valeurs Unicode échappées sur 4 chiffres sont autorisées. | -
{{Compat("css.types.string")}}
- -Le type de donnée CSS <string> représente une chaîne de caractères. En CSS, les chaînes de caractères sont présentes dans de nombreuses propriétés comme {{cssxref("content")}}, {{cssxref("font-family")}} et {{cssxref("quotes")}}.
Une chaîne de caractères CSS est formée d'un ou plusieurs caractères Unicode délimités par des quotes (') ou des doubles quotes ("). Une chaîne délimitée par des doubles quotes ne peut pas contenir de double quotes à moins qu'elles soient échappées à l'aide d'une barre oblique inversée (\). Le même principe s'applique aux chaînes délimitées par des quotes simples, qui ne peuvent contenir de quotes simples sans qu'elles soient échappés à l'aide d'une barre oblique inversée (\).
Le caractère barre oblique inversée doit être échappé afin de faire partie d'une chaîne de caractère.
+ +Les nouvelles lignes ne sont pas acceptées, sauf si elles sont échappées à l'aide d'un caractère de saut de ligne tel que \A ou \00000a. Toutefois, des chaînes de caractères peuvent s'étendre sur plusieurs lignes. Dans ce cas, il est possible de couper la chaîne en plusieurs lignes en utilisant une barre oblique inversée (\) comme dernier caractère de chaque ligne.
Les caractères peuvent être décrits en utilisant leur point de code Unicode hexadécimal, qui doit alors être échappé à l'aide du caractère \. \27 représente par exemple le guillemet droit simple (') et \A9 le symbole du copyright ©.
Note : Les entités telles que ou — ne peuvent pas être utilisées pour les chaînes de caractères CSS.
"Chaîne avec des guillemets doubles" +"Chaîne avec plusieurs \" guillemets doubles" +'Chaîne avec des guillemets simples' +'Chaîne avec plusieurs \' guillemets simples' + +"Chaîne avec une \Anouvelle ligne" + +"Une grande chaîne \ +de caractères" +"Une grande chaîne de caractères" ++ +
Note : on peut également échapper des doubles quotes avec \22 et les simples quotes avec \27.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Values', '#strings', '')}} | +{{Spec2('CSS3 Values')}} | +Aucune modification significative depuis CSS Level 2 (Revision 1) | +
| {{SpecName('CSS2.1', 'syndata.html#strings', '')}} | +{{Spec2('CSS2.1')}} | +Définition explicite. Les valeurs Unicode échappées sur 6 chiffres sont autorisées. | +
| {{SpecName('CSS1', '', '')}} | +{{Spec2('CSS1')}} | +Définition implicite. Les valeurs Unicode échappées sur 4 chiffres sont autorisées. | +
{{Compat("css.types.string")}}
+ +La fonction symbols() permet de définir des styles pour les compteurs en ligne, directement comme valeur de la propriété CSS. À la différence des styles définis avec {{cssxref("@counter-style")}}, ces styles sont anonymes. La fonction symbols() ne possède pas toute la flexibilité offerte par la règle @ {{cssxref("@counter-style")}} mais peut s'avérer utile dans des cas où le style nécessaire n'est utilisé qu'une seule fois et où il n'est pas nécessaire d'utiliser toutes les options fournies par {{cssxref("@counter-style")}}.
symbols() = symbols( <symbols-type>? [ <string> | <image> ]+ );- -
<symbols-type> est l'un des mots-clés suivants :
cyclic : le système utilisera les différentes valeurs les unes à la suite des autres, de façon cyclique.numeric : le système interprètera les valeurs fournies comme une suite numérique composant un système de numération.alphabetic : le système interprètera les valeurs fournies comme les chiffres d'un système de numération alphabétique (par exemple : A, B, C, AA, AB, AC, etc.) sans zéro.symbolic : le système parcourt les différentes valeurs fournies et en affiche une de plus à chaque cycle.fixed : le système affiche chaque symbole une fois puis poursuit avec les chiffres arabes.<ol> - <li>Un</li> - <li>Deux</li> - <li>Trois</li> - <li>Quatre</li> - <li>Cinq</li> -</ol>- -
ol {
- list-style: symbols(alphabetic "*" "\2020" "\2021");
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Counter Styles', '#symbols-function', 'symbols()')}} | -{{Spec2('CSS3 Counter Styles')}} | -Définition initiale. | -
La fonction symbols() permet de définir des styles pour les compteurs en ligne, directement comme valeur de la propriété CSS. À la différence des styles définis avec {{cssxref("@counter-style")}}, ces styles sont anonymes. La fonction symbols() ne possède pas toute la flexibilité offerte par la règle @ {{cssxref("@counter-style")}} mais peut s'avérer utile dans des cas où le style nécessaire n'est utilisé qu'une seule fois et où il n'est pas nécessaire d'utiliser toutes les options fournies par {{cssxref("@counter-style")}}.
symbols() = symbols( <symbols-type>? [ <string> | <image> ]+ );+ +
<symbols-type> est l'un des mots-clés suivants :
cyclic : le système utilisera les différentes valeurs les unes à la suite des autres, de façon cyclique.numeric : le système interprètera les valeurs fournies comme une suite numérique composant un système de numération.alphabetic : le système interprètera les valeurs fournies comme les chiffres d'un système de numération alphabétique (par exemple : A, B, C, AA, AB, AC, etc.) sans zéro.symbolic : le système parcourt les différentes valeurs fournies et en affiche une de plus à chaque cycle.fixed : le système affiche chaque symbole une fois puis poursuit avec les chiffres arabes.<ol> + <li>Un</li> + <li>Deux</li> + <li>Trois</li> + <li>Quatre</li> + <li>Cinq</li> +</ol>+ +
ol {
+ list-style: symbols(alphabetic "*" "\2020" "\2021");
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Counter Styles', '#symbols-function', 'symbols()')}} | +{{Spec2('CSS3 Counter Styles')}} | +Définition initiale. | +
La propriété tab-size permet d'adapter la largeur utilisée pour représenter le caractère de tabulation (U+0009).
/* Valeurs entières */ -/* Type <integer> */ -tab-size: 4; -tab-size: 0; - -/* Valeurs de longueurs */ -/* Type <length> */ -tab-size: 10px; -tab-size: 2em; - -/* Valeurs globales */ -tab-size: inherit; -tab-size: initial; -tab-size: unset; -- -
{{cssinfo}}
- -<pre class="exemple"> - print "tabulation avant" - print "4 espaces avant" - print "2 espaces avant" -</pre>- -
.exemple {
- tab-size: 5;
-}
-
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#tab-size-property', 'tab-size')}} | -{{Spec2('CSS3 Text')}} | -Définition initiale. | -
{{Compat("css.properties.tab-size")}}
- -La propriété tab-size permet d'adapter la largeur utilisée pour représenter le caractère de tabulation (U+0009).
/* Valeurs entières */ +/* Type <integer> */ +tab-size: 4; +tab-size: 0; + +/* Valeurs de longueurs */ +/* Type <length> */ +tab-size: 10px; +tab-size: 2em; + +/* Valeurs globales */ +tab-size: inherit; +tab-size: initial; +tab-size: unset; ++ +
{{cssinfo}}
+ +<pre class="exemple"> + print "tabulation avant" + print "4 espaces avant" + print "2 espaces avant" +</pre>+ +
.exemple {
+ tab-size: 5;
+}
+
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#tab-size-property', 'tab-size')}} | +{{Spec2('CSS3 Text')}} | +Définition initiale. | +
{{Compat("css.properties.tab-size")}}
+ +La propriété table-layout définit l'algorithme utilisé pour disposer les cellules, lignes et colonnes d'un tableau.
/* Valeur utilisant un mot-clé */ -table-layout: auto; -table-layout: fixed; - -/* Valeurs globales */ -table-layout: inherit; -table-layout: initial; -table-layout: unset; -- -
fixedtable et col ou grâce à la largeur (explicite) de la première ligne de cellules. Les cellules des lignes suivantes n'affectent pas la largeur des colonnes.auto. En revanche, le contenu des lignes (en dehors de la première), peut ne pas rentrer dans les colonnes avec la largeur calculée. Les cellules dont le contenu est trop large utiliseront la propriété {{cssxref("overflow")}} pour déterminer comment gérer le dépassement.Cet exemple utilise table-layout: fixed et une largeur donnée (avec la propriété width) afin que le tableau ne s'agrandisse pas avec son contenu. Ainsi, on peut voir l'effet de la propriété {{cssxref("text-overflow")}} et l'application d'une ellipse pour les mots trop longs pour le tableau.
<table class="exemple"> - <tr> - <td width="7em">Jean</td> - <td width="7em">Biche</td> - </tr> - <tr> - <td>Jean-Roger-Michel</td> - <td>du Domaine de la Biche</td> - </tr> -</table>- -
.exemple {
- table-layout: fixed;
- width: 120px;
- border: 1px solid red;
-}
-
-tr, td {
- border: solid;
-}
-
-td {
- border: 1px solid blue;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS2.1', 'tables.html#width-layout', 'table-layout')}} | -{{Spec2('CSS2.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.table-layout")}}
diff --git a/files/fr/web/css/table-layout/index.md b/files/fr/web/css/table-layout/index.md new file mode 100644 index 0000000000..c61d102988 --- /dev/null +++ b/files/fr/web/css/table-layout/index.md @@ -0,0 +1,107 @@ +--- +title: table-layout +slug: Web/CSS/table-layout +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/table-layout +--- +La propriété table-layout définit l'algorithme utilisé pour disposer les cellules, lignes et colonnes d'un tableau.
/* Valeur utilisant un mot-clé */ +table-layout: auto; +table-layout: fixed; + +/* Valeurs globales */ +table-layout: inherit; +table-layout: initial; +table-layout: unset; ++ +
fixedtable et col ou grâce à la largeur (explicite) de la première ligne de cellules. Les cellules des lignes suivantes n'affectent pas la largeur des colonnes.auto. En revanche, le contenu des lignes (en dehors de la première), peut ne pas rentrer dans les colonnes avec la largeur calculée. Les cellules dont le contenu est trop large utiliseront la propriété {{cssxref("overflow")}} pour déterminer comment gérer le dépassement.Cet exemple utilise table-layout: fixed et une largeur donnée (avec la propriété width) afin que le tableau ne s'agrandisse pas avec son contenu. Ainsi, on peut voir l'effet de la propriété {{cssxref("text-overflow")}} et l'application d'une ellipse pour les mots trop longs pour le tableau.
<table class="exemple"> + <tr> + <td width="7em">Jean</td> + <td width="7em">Biche</td> + </tr> + <tr> + <td>Jean-Roger-Michel</td> + <td>du Domaine de la Biche</td> + </tr> +</table>+ +
.exemple {
+ table-layout: fixed;
+ width: 120px;
+ border: 1px solid red;
+}
+
+tr, td {
+ border: solid;
+}
+
+td {
+ border: 1px solid blue;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS2.1', 'tables.html#width-layout', 'table-layout')}} | +{{Spec2('CSS2.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.table-layout")}}
diff --git a/files/fr/web/css/text-align-last/index.html b/files/fr/web/css/text-align-last/index.html deleted file mode 100644 index 8b798074b4..0000000000 --- a/files/fr/web/css/text-align-last/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: text-align-last -slug: Web/CSS/text-align-last -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/text-align-last ---- -La propriété text-align-last définit la façon dont la dernière ligne d'un bloc, ou une ligne avant un retour à la ligne forcé, doit être alignée.
/* Valeurs utilisant un mot-clé */ -text-align-last: auto; -text-align-last: start; -text-align-last: end; -text-align-last: left; -text-align-last: right; -text-align-last: center; -text-align-last: justify; - -/* Valeurs globales */ -text-align-last: inherit; -text-align-last: initial; -text-align-last: unset; -- -
autojustify, auquel cas, cela aura le même effet que d'utiliser la valeur start pour text-align-last.startleft si la direction du texte va de gauche à droite ou le même effet que right si la direction du texte va de droite à gauche.endright si la direction du texte va de gauche à droite ou le même effet que left si la direction du texte va de droite à gauche.leftrightcenterjustify<p class="exemple"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse - cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non - proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -</p>- -
.exemple {
- text-align: justify;
- text-align-last: center;
-}
-
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#text-align-last-property', 'text-align-last')}} | -{{Spec2('CSS3 Text')}} | -Définition initiale. | -
{{Compat("css.properties.text-align-last")}}
- -La propriété text-align-last définit la façon dont la dernière ligne d'un bloc, ou une ligne avant un retour à la ligne forcé, doit être alignée.
/* Valeurs utilisant un mot-clé */ +text-align-last: auto; +text-align-last: start; +text-align-last: end; +text-align-last: left; +text-align-last: right; +text-align-last: center; +text-align-last: justify; + +/* Valeurs globales */ +text-align-last: inherit; +text-align-last: initial; +text-align-last: unset; ++ +
autojustify, auquel cas, cela aura le même effet que d'utiliser la valeur start pour text-align-last.startleft si la direction du texte va de gauche à droite ou le même effet que right si la direction du texte va de droite à gauche.endright si la direction du texte va de gauche à droite ou le même effet que left si la direction du texte va de droite à gauche.leftrightcenterjustify<p class="exemple"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +</p>+ +
.exemple {
+ text-align: justify;
+ text-align-last: center;
+}
+
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#text-align-last-property', 'text-align-last')}} | +{{Spec2('CSS3 Text')}} | +Définition initiale. | +
{{Compat("css.properties.text-align-last")}}
+ +La propriété text-align définit l'alignement horizontal d'un élément de bloc ou de la boîte d'une cellule de tableau. Cette propriété fonctionne donc de façon analogue à {{cssxref("vertical-align")}} mais dans le sens horizontal.
/* Valeurs avec un mot-clé */ -text-align: left; -text-align: right; -text-align: center; -text-align: justify; -text-align: justify-all; -text-align: start; -text-align: end; -text-align: match-parent; - -/* Dans une cellule de tableau, caractère sur lequel */ -/* doit être aligné le contenu de la cellule */ -text-align: "."; -text-align: "." center; - -/* Alignement de bloc (non standard) */ -text-align: -moz-center; -text-align: -webkit-center; - -/* Valeurs globales */ -text-align: inherit; -text-align: initial; -text-align: unset; -- -
La propriété text-align peut être définie grâce à l'un des mots-clés de la liste qui suit.
start {{experimental_inline}}left si la direction du texte va de gauche à droite ou le même effet que right si la direction du texte va de droite à gauche.end {{experimental_inline}}right si la direction du texte va de gauche à droite ou le même effet que left si la direction du texte va de droite à gauche.leftrightcenterjustifyjustify-all{{experimental_inline}}justify mais avec la dernière ligne nécessairement justifiée.match-parent {{experimental_inline}}inherit mais les valeurs start et end sont calculées selon la valeur de {{cssxref("direction")}} pour le parent et sont remplacées par left ou right selon ce qui est adéquat.<p class="exemple"> - Il y avait en Vestphalie, dans le château de M. le baron de - Thunder-ten-tronckh, un jeune garçon à qui la nature avait - donné les moeurs les plus douces. Sa physionomie annonçait - son âme. Il avait le jugement assez droit, avec l’esprit le plus - simple ; c’est, je crois, pour cette raison qu’on le nommait Candide. -</p>- -
.exemple {
- text-align: left;
- border: solid;
-}
-
-{{EmbedLiveSample("Alignement_à_gauche","100%","100%")}}
- -<p class="exemple"> - Il y avait en Vestphalie, dans le château de M. le baron de - Thunder-ten-tronckh, un jeune garçon à qui la nature avait - donné les moeurs les plus douces. Sa physionomie annonçait - son âme. Il avait le jugement assez droit, avec l’esprit le plus - simple ; c’est, je crois, pour cette raison qu’on le nommait Candide. -</p>- -
.exemple {
- text-align: center;
- border: solid;
-}
-
-{{EmbedLiveSample("Texte_centré","100%","100%")}}
- -<p class="exemple"> - Il y avait en Vestphalie, dans le château de M. le baron de - Thunder-ten-tronckh, un jeune garçon à qui la nature avait - donné les moeurs les plus douces. Sa physionomie annonçait - son âme. Il avait le jugement assez droit, avec l’esprit le plus - simple ; c’est, je crois, pour cette raison qu’on le nommait Candide. -</p>- -
.exemple {
- text-align: justify;
- border: solid;
-}
-
-{{EmbedLiveSample("Justification","100%","100%")}}
- -La méthode la plus générique pour centrer un bloc plutot que de centrer son contenu est d'utiliser la propriété {{cssxref("margin")}} avec les valeurs left et right à auto, e.g. :
.classe {
- margin: auto;
-}
-
-
-.classe {
- margin: 0 auto;
-}
-
-
-.classe {
- margin-left: auto;
- margin-right: auto;
-}
-
-
-L'espacement créé entre les mots par la justification du texte peut rendre la lecture difficile pour les personnes dyslexiques ou souffrant de troubles cognitifs.
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS Logical Properties', '#text-align', 'text-align')}} | -{{Spec2('CSS Logical Properties')}} | -Aucun changement | -
| {{SpecName('CSS4 Text', '#alignment', 'text-align')}} | -{{Spec2('CSS4 Text')}} | -Ajout de la gestion des valeurs <string>. |
-
| {{SpecName('CSS3 Text', '#text-align-property', 'text-align')}} | -{{Spec2('CSS3 Text')}} | -Ajout des valeurs start, end et match-parent. La valeur initiale qui n'était pas nommée est bien définie avec start. |
-
| {{SpecName('CSS2.1', 'text.html#alignment-prop', 'text-align')}} | -{{Spec2('CSS2.1')}} | -Aucun changement | -
| {{SpecName('CSS1', '#text-align', 'text-align')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-align")}}
- -La propriété text-align définit l'alignement horizontal d'un élément de bloc ou de la boîte d'une cellule de tableau. Cette propriété fonctionne donc de façon analogue à {{cssxref("vertical-align")}} mais dans le sens horizontal.
/* Valeurs avec un mot-clé */ +text-align: left; +text-align: right; +text-align: center; +text-align: justify; +text-align: justify-all; +text-align: start; +text-align: end; +text-align: match-parent; + +/* Dans une cellule de tableau, caractère sur lequel */ +/* doit être aligné le contenu de la cellule */ +text-align: "."; +text-align: "." center; + +/* Alignement de bloc (non standard) */ +text-align: -moz-center; +text-align: -webkit-center; + +/* Valeurs globales */ +text-align: inherit; +text-align: initial; +text-align: unset; ++ +
La propriété text-align peut être définie grâce à l'un des mots-clés de la liste qui suit.
start {{experimental_inline}}left si la direction du texte va de gauche à droite ou le même effet que right si la direction du texte va de droite à gauche.end {{experimental_inline}}right si la direction du texte va de gauche à droite ou le même effet que left si la direction du texte va de droite à gauche.leftrightcenterjustifyjustify-all{{experimental_inline}}justify mais avec la dernière ligne nécessairement justifiée.match-parent {{experimental_inline}}inherit mais les valeurs start et end sont calculées selon la valeur de {{cssxref("direction")}} pour le parent et sont remplacées par left ou right selon ce qui est adéquat.<p class="exemple"> + Il y avait en Vestphalie, dans le château de M. le baron de + Thunder-ten-tronckh, un jeune garçon à qui la nature avait + donné les moeurs les plus douces. Sa physionomie annonçait + son âme. Il avait le jugement assez droit, avec l’esprit le plus + simple ; c’est, je crois, pour cette raison qu’on le nommait Candide. +</p>+ +
.exemple {
+ text-align: left;
+ border: solid;
+}
+
+{{EmbedLiveSample("Alignement_à_gauche","100%","100%")}}
+ +<p class="exemple"> + Il y avait en Vestphalie, dans le château de M. le baron de + Thunder-ten-tronckh, un jeune garçon à qui la nature avait + donné les moeurs les plus douces. Sa physionomie annonçait + son âme. Il avait le jugement assez droit, avec l’esprit le plus + simple ; c’est, je crois, pour cette raison qu’on le nommait Candide. +</p>+ +
.exemple {
+ text-align: center;
+ border: solid;
+}
+
+{{EmbedLiveSample("Texte_centré","100%","100%")}}
+ +<p class="exemple"> + Il y avait en Vestphalie, dans le château de M. le baron de + Thunder-ten-tronckh, un jeune garçon à qui la nature avait + donné les moeurs les plus douces. Sa physionomie annonçait + son âme. Il avait le jugement assez droit, avec l’esprit le plus + simple ; c’est, je crois, pour cette raison qu’on le nommait Candide. +</p>+ +
.exemple {
+ text-align: justify;
+ border: solid;
+}
+
+{{EmbedLiveSample("Justification","100%","100%")}}
+ +La méthode la plus générique pour centrer un bloc plutot que de centrer son contenu est d'utiliser la propriété {{cssxref("margin")}} avec les valeurs left et right à auto, e.g. :
.classe {
+ margin: auto;
+}
+
+
+.classe {
+ margin: 0 auto;
+}
+
+
+.classe {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+
+L'espacement créé entre les mots par la justification du texte peut rendre la lecture difficile pour les personnes dyslexiques ou souffrant de troubles cognitifs.
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS Logical Properties', '#text-align', 'text-align')}} | +{{Spec2('CSS Logical Properties')}} | +Aucun changement | +
| {{SpecName('CSS4 Text', '#alignment', 'text-align')}} | +{{Spec2('CSS4 Text')}} | +Ajout de la gestion des valeurs <string>. |
+
| {{SpecName('CSS3 Text', '#text-align-property', 'text-align')}} | +{{Spec2('CSS3 Text')}} | +Ajout des valeurs start, end et match-parent. La valeur initiale qui n'était pas nommée est bien définie avec start. |
+
| {{SpecName('CSS2.1', 'text.html#alignment-prop', 'text-align')}} | +{{Spec2('CSS2.1')}} | +Aucun changement | +
| {{SpecName('CSS1', '#text-align', 'text-align')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-align")}}
+ +La propriété text-combine-upright définit comment intégrer une combinaison de plusieurs caractères dans l'espace normalement alloué à un seul caractère. Si la combinaison obtenue est plus large qu'1em, l'agent utilisateur devra compresser le contenu afin qu'il tienne sur 1em. La combinaison est ensuite manipulée comme un seul glyphe pour la disposition et pour la décoration. Enfin, cette propriété n'a d'effet que sur les modes d'écriture verticaux.
Cela permet d'obtenir un effet appelé tate-chū-yoko (縦中横) en japonais ou 直書橫向 en chinois.
- -/* Valeurs avec un mot-clé */ -text-combine-upright: none; -text-combine-upright: all; - -/* Valeurs pour les chiffres */ -/* 2 chiffres qui se suivent prendront la place - d'un caractère dans du texte vertical */ -text-combine-upright: digits; -/* Compresse jusqu'à 4 chiffres consécutifs afin - qu'ils occupent l'espace d'un caractère dans - du texte vertical */ -text-combine-upright: digits 4; - -/* Valeurs globales */ -text-combine-upright: inherit; -text-combine-upright: initial; -text-combine-upright: unset; -- -
nonealldigits <n>?[2;4] sont considérés comme invalides.digitsUtiliser digits nécessite moins de règles et déclarations mais n'est pas encore largement pris en charge par les navigateurs.
<p lang="ja" class="exempleText">平成20年4月16日に</p> -- -
.exempleText {
- writing-mode: vertical-lr;
- text-combine-upright: digits 2;
- font: 36px serif;
-}
-
-{{EmbedLiveSample("Exemple_avec_digits", 100, 350, "https://mdn.mozillademos.org/files/12127/tate-chu-yoko.png")}}
- -allPour utiliser all, on devra baliser chaque fragment de texte horizontal mais cette valeur est actuellement mieux prise en charge que digits.
<p lang="zh-Hant">民國<span class="num">105</span ->年<span class="num">4</span ->月<span class="num">29</span>日</p> -- -
html { writing-mode: vertical-rl; font: 24px serif }
-.num { text-combine-upright: all }
-
-
-{{EmbedLiveSample("Exemple_avec_all", 250, 300, "https://mdn.mozillademos.org/files/13096/text-combine-upright-all.png")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS3 Writing Modes", "#propdef-text-combine-upright", "text-combine-upright")}} | -{{Spec2("CSS3 Writing Modes")}} | -Définition initiale. | -
| {{SpecName("CSS4 Writing Modes", "#propdef-text-combine-upright", "text-combine-upright")}} | -{{Spec2("CSS4 Writing Modes")}} | -Ajout de la valeur digits. |
-
{{cssinfo}}
- -{{Compat("css.properties.text-combine-upright")}}
- -La propriété text-combine-upright définit comment intégrer une combinaison de plusieurs caractères dans l'espace normalement alloué à un seul caractère. Si la combinaison obtenue est plus large qu'1em, l'agent utilisateur devra compresser le contenu afin qu'il tienne sur 1em. La combinaison est ensuite manipulée comme un seul glyphe pour la disposition et pour la décoration. Enfin, cette propriété n'a d'effet que sur les modes d'écriture verticaux.
Cela permet d'obtenir un effet appelé tate-chū-yoko (縦中横) en japonais ou 直書橫向 en chinois.
+ +/* Valeurs avec un mot-clé */ +text-combine-upright: none; +text-combine-upright: all; + +/* Valeurs pour les chiffres */ +/* 2 chiffres qui se suivent prendront la place + d'un caractère dans du texte vertical */ +text-combine-upright: digits; +/* Compresse jusqu'à 4 chiffres consécutifs afin + qu'ils occupent l'espace d'un caractère dans + du texte vertical */ +text-combine-upright: digits 4; + +/* Valeurs globales */ +text-combine-upright: inherit; +text-combine-upright: initial; +text-combine-upright: unset; ++ +
nonealldigits <n>?[2;4] sont considérés comme invalides.digitsUtiliser digits nécessite moins de règles et déclarations mais n'est pas encore largement pris en charge par les navigateurs.
<p lang="ja" class="exempleText">平成20年4月16日に</p> ++ +
.exempleText {
+ writing-mode: vertical-lr;
+ text-combine-upright: digits 2;
+ font: 36px serif;
+}
+
+{{EmbedLiveSample("Exemple_avec_digits", 100, 350, "https://mdn.mozillademos.org/files/12127/tate-chu-yoko.png")}}
+ +allPour utiliser all, on devra baliser chaque fragment de texte horizontal mais cette valeur est actuellement mieux prise en charge que digits.
<p lang="zh-Hant">民國<span class="num">105</span +>年<span class="num">4</span +>月<span class="num">29</span>日</p> ++ +
html { writing-mode: vertical-rl; font: 24px serif }
+.num { text-combine-upright: all }
+
+
+{{EmbedLiveSample("Exemple_avec_all", 250, 300, "https://mdn.mozillademos.org/files/13096/text-combine-upright-all.png")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS3 Writing Modes", "#propdef-text-combine-upright", "text-combine-upright")}} | +{{Spec2("CSS3 Writing Modes")}} | +Définition initiale. | +
| {{SpecName("CSS4 Writing Modes", "#propdef-text-combine-upright", "text-combine-upright")}} | +{{Spec2("CSS4 Writing Modes")}} | +Ajout de la valeur digits. |
+
{{cssinfo}}
+ +{{Compat("css.properties.text-combine-upright")}}
+ +La propriété text-decoration-color définit la couleur utilisée pour dessiner les lignes décorant le texte (quel que soit le style définit {{cssxref("text-decoration-line")}}).
La propriété raccourcie {{cssxref("text-decoration")}} permet de paramétrer cette propriété et d'autres propriétés associées aux décorations.
- -Note : Lorsqu'on définit plusieurs décorations à la fois, il peut être plus pratique d'utiliser la propriété raccourcie {{cssxref("text-decoration")}}.
-Il est préférable d'utiliser cette propriété pour colorer ces décorations plutôt que d'utiliser d'autres éléments HTML.
- -Note : CSS ne fournit pas de mécanisme spécifique pour définir une couleur par type de ligne. On peut toutefois y parvenir en imbriquant des éléments mis en forme différemment.
-/* Couleurs */ -/* Valeurs de type <color> */ -text-decoration-color: currentColor; -text-decoration-color: red; -text-decoration-color: #00ff00; -text-decoration-color: rgba(255, 128, 128, 0.5); -text-decoration-color: transparent; - -/* Valeurs globales */ -text-decoration-color: inherit; -text-decoration-color: initial; -text-decoration-color: unset; -- -
<color>color accepte différents mots-clés et valeurs numériques. Pour plus de détails, voir {{cssxref("<color>")}}.<p class="exemple">Du texte avec un effet au survol</p>- -
.exemple {
- text-decoration: underline;
- text-decoration-color: red;
-}
-
-.exemple:hover {
- color: blue;
- text-decoration: line-through;
-}
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-color-property', 'text-decoration-color')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale. La propriété {{cssxref("text-decoration")}} n'était pas une propriété raccourcie auparavant. | -
{{cssinfo}}
- -{{Compat("css.properties.text-decoration-color")}}
- -text-decoration-color.diff --git a/files/fr/web/css/text-decoration-color/index.md b/files/fr/web/css/text-decoration-color/index.md new file mode 100644 index 0000000000..8cd3cb905e --- /dev/null +++ b/files/fr/web/css/text-decoration-color/index.md @@ -0,0 +1,111 @@ +--- +title: text-decoration-color +slug: Web/CSS/text-decoration-color +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/text-decoration-color +--- +
La propriété text-decoration-color définit la couleur utilisée pour dessiner les lignes décorant le texte (quel que soit le style définit {{cssxref("text-decoration-line")}}).
La propriété raccourcie {{cssxref("text-decoration")}} permet de paramétrer cette propriété et d'autres propriétés associées aux décorations.
+ +Note : Lorsqu'on définit plusieurs décorations à la fois, il peut être plus pratique d'utiliser la propriété raccourcie {{cssxref("text-decoration")}}.
+Il est préférable d'utiliser cette propriété pour colorer ces décorations plutôt que d'utiliser d'autres éléments HTML.
+ +Note : CSS ne fournit pas de mécanisme spécifique pour définir une couleur par type de ligne. On peut toutefois y parvenir en imbriquant des éléments mis en forme différemment.
+/* Couleurs */ +/* Valeurs de type <color> */ +text-decoration-color: currentColor; +text-decoration-color: red; +text-decoration-color: #00ff00; +text-decoration-color: rgba(255, 128, 128, 0.5); +text-decoration-color: transparent; + +/* Valeurs globales */ +text-decoration-color: inherit; +text-decoration-color: initial; +text-decoration-color: unset; ++ +
<color>color accepte différents mots-clés et valeurs numériques. Pour plus de détails, voir {{cssxref("<color>")}}.<p class="exemple">Du texte avec un effet au survol</p>+ +
.exemple {
+ text-decoration: underline;
+ text-decoration-color: red;
+}
+
+.exemple:hover {
+ color: blue;
+ text-decoration: line-through;
+}
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-color-property', 'text-decoration-color')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale. La propriété {{cssxref("text-decoration")}} n'était pas une propriété raccourcie auparavant. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-decoration-color")}}
+ +text-decoration-color.diff --git a/files/fr/web/css/text-decoration-line/index.html b/files/fr/web/css/text-decoration-line/index.html deleted file mode 100644 index 0e9fdff6ac..0000000000 --- a/files/fr/web/css/text-decoration-line/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: text-decoration-line -slug: Web/CSS/text-decoration-line -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/text-decoration-line ---- -
La propriété text-decoration-line définit la façon dont les décorations linéaires sont ajoutées à un élément et notamment leur position (sous le texte, au-dessus ou en travers de celui-ci).
La propriété raccourcie {{cssxref("text-decoration")}} permet de paramétrer cette propriété et d'autres propriétés associées aux décorations.
- -/* Valeurs avec un mot-clé */ -text-decoration-line: none; -text-decoration-line: underline; -text-decoration-line: overline; -text-decoration-line: line-through; - -/* Valeurs avec plusieurs mots-clés */ -text-decoration-line: underline overline; /* On a deux décorations pour la ligne */ -text-decoration-line: overline underline line-through; /* On a plusieurs décorations */ - -/* Valeurs globales */ -text-decoration-line: inherit; -text-decoration-line: initial; -text-decoration-line: unset; -- -
Cette propriété peut avoir une ou plusieurs valeurs séparées par des espaces. Si aucune valeur n'est fournie, il n'y a pas de décoration ajoutée :
- -noneunderlineoverlineline-throughblink {{deprecated_inline}}<p>Voici un texte souligné avec une vaguelette rouge.</p>- -
p {
- text-decoration-line: underline;
- text-decoration-style: wavy;
- text-decoration-color: red;
-}
-
-{{EmbedLiveSample('Exemples', 300, 60)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-line', 'text-decoration-line')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale. La propriété {{cssxref("text-decoration")}} n'était pas une propriété raccourcie auparavant. | -
{{cssinfo}}
- -{{Compat("css.properties.text-decoration-line")}}
- -text-decoration-line.La propriété text-decoration-line définit la façon dont les décorations linéaires sont ajoutées à un élément et notamment leur position (sous le texte, au-dessus ou en travers de celui-ci).
La propriété raccourcie {{cssxref("text-decoration")}} permet de paramétrer cette propriété et d'autres propriétés associées aux décorations.
+ +/* Valeurs avec un mot-clé */ +text-decoration-line: none; +text-decoration-line: underline; +text-decoration-line: overline; +text-decoration-line: line-through; + +/* Valeurs avec plusieurs mots-clés */ +text-decoration-line: underline overline; /* On a deux décorations pour la ligne */ +text-decoration-line: overline underline line-through; /* On a plusieurs décorations */ + +/* Valeurs globales */ +text-decoration-line: inherit; +text-decoration-line: initial; +text-decoration-line: unset; ++ +
Cette propriété peut avoir une ou plusieurs valeurs séparées par des espaces. Si aucune valeur n'est fournie, il n'y a pas de décoration ajoutée :
+ +noneunderlineoverlineline-throughblink {{deprecated_inline}}<p>Voici un texte souligné avec une vaguelette rouge.</p>+ +
p {
+ text-decoration-line: underline;
+ text-decoration-style: wavy;
+ text-decoration-color: red;
+}
+
+{{EmbedLiveSample('Exemples', 300, 60)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-line', 'text-decoration-line')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale. La propriété {{cssxref("text-decoration")}} n'était pas une propriété raccourcie auparavant. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-decoration-line")}}
+ +text-decoration-line.La propriété CSS text-decoration-skip-ink définit la façon dont la ligne décorative (en dessous ou au dessus du texte) est dessinée lorsqu'elle rencontre le jambage ou la hampe d'un caractère (ou glyphe).
/* Valeur avec un mot-clé */ -text-decoration-skip-ink: none; -text-decoration-skip-ink: auto; - -/* Valeurs globales */ -text-decoration-skip: inherit; -text-decoration-skip: initial; -text-decoration-skip: unset; -- -
noneauto
<p>Un instant après, Alice était à la poursuite du Lapin dans le terrier…</p>- -
p {
- margin: 0;
- font-size: 2em;
- text-decoration: underline blue;
- text-decoration-skip-ink: auto;
-}
-
-{{EmbedLiveSample("Exemples", "100%", 60)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Text Decoration", "#text-decoration-skip-ink-property", "text-decoration-skip-ink")}} | -{{Spec2("CSS4 Text Decoration")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-decoration-skip-ink")}}
diff --git a/files/fr/web/css/text-decoration-skip-ink/index.md b/files/fr/web/css/text-decoration-skip-ink/index.md new file mode 100644 index 0000000000..1e998a6778 --- /dev/null +++ b/files/fr/web/css/text-decoration-skip-ink/index.md @@ -0,0 +1,83 @@ +--- +title: text-decoration-skip-ink +slug: Web/CSS/text-decoration-skip-ink +tags: + - CSS + - Experimental + - Propriété + - Reference + - Web +translation_of: Web/CSS/text-decoration-skip-ink +--- +La propriété CSS text-decoration-skip-ink définit la façon dont la ligne décorative (en dessous ou au dessus du texte) est dessinée lorsqu'elle rencontre le jambage ou la hampe d'un caractère (ou glyphe).
/* Valeur avec un mot-clé */ +text-decoration-skip-ink: none; +text-decoration-skip-ink: auto; + +/* Valeurs globales */ +text-decoration-skip: inherit; +text-decoration-skip: initial; +text-decoration-skip: unset; ++ +
noneauto
<p>Un instant après, Alice était à la poursuite du Lapin dans le terrier…</p>+ +
p {
+ margin: 0;
+ font-size: 2em;
+ text-decoration: underline blue;
+ text-decoration-skip-ink: auto;
+}
+
+{{EmbedLiveSample("Exemples", "100%", 60)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Text Decoration", "#text-decoration-skip-ink-property", "text-decoration-skip-ink")}} | +{{Spec2("CSS4 Text Decoration")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-decoration-skip-ink")}}
diff --git a/files/fr/web/css/text-decoration-skip/index.html b/files/fr/web/css/text-decoration-skip/index.html deleted file mode 100644 index 54d576be1c..0000000000 --- a/files/fr/web/css/text-decoration-skip/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: text-decoration-skip -slug: Web/CSS/text-decoration-skip -tags: - - CSS - - Experimental - - Propriété - - Reference -translation_of: Web/CSS/text-decoration-skip ---- -La propriété text-decoration-skip définit la façon dont les lignes décoratives doivent être appliquées aux éléments et aux caractères. Elle contrôle les lignes décoratives dessinées par l'élément courant ainsi que celles de ses ancêtres.
/* Syntaxe avec un mot-clé */ -text-decoration-skip: none; -text-decoration-skip: objects; -text-decoration-skip: edges; -text-decoration-skip: box-decoration; -text-decoration-skip: spaces; - -/* Plusieurs mots-clés */ -text-decoration-skip: object spaces; -text-decoration-skip: leading-spaces trailing-spaces; -text-decoration-skip: objects edges box-decoration; - -/* Valeurs globales */ -text-decoration-skip: inherit; -text-decoration-skip: initial; -text-decoration-skip: unset; -- -
Note : La valeur ink initialement définie pour cette propriété a été déplacée vers la propriété {{cssxref("text-decoration-skip-ink")}}.
nonetext-decoration s'applique à tous les éléments sélectionnés.objectstext-decoration n'est pas appliquée pour les éléments en lignes atomiques telles que les images ou les blocs en lignes.spacesleading-spacesspaces mais seuls les espaces avant les mots sont ignorés.trailing-spacesspaces mais seuls les espaces après les mots sont ignorés.edgestext-decoration est rognée vers l'intérieur de la moitié de la largueur de la ligne, vers la droite et la gauche. 
box-decorationtext-decoration n'est pas appliquée pour les marges, bordures et zones de remplissage (padding) des éléments fils.p {
- margin: 0;
- font-size: 3em;
- text-decoration: underline;
- text-decoration-skip: edge;
-}
-
-<p>Bonjour tout le monde, quelle journée !</p>- -
{{EmbedLiveSample("Exemples", "100%", 60)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS4 Text Decoration", "#text-decoration-skip-property", "text-decoration-skip")}} | -{{Spec2("CSS4 Text Decoration")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-decoration-skip")}}
diff --git a/files/fr/web/css/text-decoration-skip/index.md b/files/fr/web/css/text-decoration-skip/index.md new file mode 100644 index 0000000000..54d576be1c --- /dev/null +++ b/files/fr/web/css/text-decoration-skip/index.md @@ -0,0 +1,104 @@ +--- +title: text-decoration-skip +slug: Web/CSS/text-decoration-skip +tags: + - CSS + - Experimental + - Propriété + - Reference +translation_of: Web/CSS/text-decoration-skip +--- +La propriété text-decoration-skip définit la façon dont les lignes décoratives doivent être appliquées aux éléments et aux caractères. Elle contrôle les lignes décoratives dessinées par l'élément courant ainsi que celles de ses ancêtres.
/* Syntaxe avec un mot-clé */ +text-decoration-skip: none; +text-decoration-skip: objects; +text-decoration-skip: edges; +text-decoration-skip: box-decoration; +text-decoration-skip: spaces; + +/* Plusieurs mots-clés */ +text-decoration-skip: object spaces; +text-decoration-skip: leading-spaces trailing-spaces; +text-decoration-skip: objects edges box-decoration; + +/* Valeurs globales */ +text-decoration-skip: inherit; +text-decoration-skip: initial; +text-decoration-skip: unset; ++ +
Note : La valeur ink initialement définie pour cette propriété a été déplacée vers la propriété {{cssxref("text-decoration-skip-ink")}}.
nonetext-decoration s'applique à tous les éléments sélectionnés.objectstext-decoration n'est pas appliquée pour les éléments en lignes atomiques telles que les images ou les blocs en lignes.spacesleading-spacesspaces mais seuls les espaces avant les mots sont ignorés.trailing-spacesspaces mais seuls les espaces après les mots sont ignorés.edgestext-decoration est rognée vers l'intérieur de la moitié de la largueur de la ligne, vers la droite et la gauche. 
box-decorationtext-decoration n'est pas appliquée pour les marges, bordures et zones de remplissage (padding) des éléments fils.p {
+ margin: 0;
+ font-size: 3em;
+ text-decoration: underline;
+ text-decoration-skip: edge;
+}
+
+<p>Bonjour tout le monde, quelle journée !</p>+ +
{{EmbedLiveSample("Exemples", "100%", 60)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS4 Text Decoration", "#text-decoration-skip-property", "text-decoration-skip")}} | +{{Spec2("CSS4 Text Decoration")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-decoration-skip")}}
diff --git a/files/fr/web/css/text-decoration-style/index.html b/files/fr/web/css/text-decoration-style/index.html deleted file mode 100644 index 5b355fadf1..0000000000 --- a/files/fr/web/css/text-decoration-style/index.html +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: text-decoration-style -slug: Web/CSS/text-decoration-style -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/text-decoration-style ---- -La propriété text-decoration-style définit le style appliqué sur les lignes visées par {{cssxref("text-decoration-line")}}. Le style s'applique à toutes les lignes définies avec text-decoration-line.
Note : Il n'existe pas de méthode permettant de mettre en forme les lignes décorées différemment les unes des autres.
-Si la mise en forme appliquée possède une sémantique forte (par exemple barrer le texte pour indiquer qu'il a été supprimé), on recommande aux auteurs d'utiliser les balises HTML associées si elles existent (par exemple {{HTMLElement("del")}} ou {{HTMLElement("s")}}). Les navigateurs peuvent parfois désactiver la mise en forme et ces éléments permettent de conserver la sémantique du contenu quoi qu'il arrive.
- -La propriété raccourcie {{cssxref("text-decoration")}} permet de paramétrer cette propriété et d'autres propriétés associées aux décorations.
- -/* Valeurs avec des mots-clés */ -text-decoration-style: solid; -text-decoration-style: double; -text-decoration-style: dotted; -text-decoration-style: dashed; -text-decoration-style: wavy; - -/* Valeurs globales */ -text-decoration-style: inherit; -text-decoration-style: initial; -text-decoration-style: unset; -- -
soliddoubledotteddashedwavy.exemple {
- -moz-text-decoration-line: underline;
- -moz-text-decoration-style: wavy;
- -moz-text-decoration-color: red;
- -webkit-text-decoration-line: underline;
- -webkit-text-decoration-style: wavy;
- -webkit-text-decoration-color: red;
- text-decoration-line: underline;
- text-decoration-style: wavy;
- text-decoration-color: red;
-}
-
-
-<p class="exemple">Et voilà le résultat.</p> -- -
{{EmbedLiveSample('Exemples')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-style', 'text-decoration-style')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale. La propriété {{cssxref("text-decoration")}} n'était pas une propriété raccourcie auparavant. | -
{{cssinfo}}
- -{{Compat("css.properties.text-decoration-style")}}
- -text-decoration-style.La propriété text-decoration-style définit le style appliqué sur les lignes visées par {{cssxref("text-decoration-line")}}. Le style s'applique à toutes les lignes définies avec text-decoration-line.
Note : Il n'existe pas de méthode permettant de mettre en forme les lignes décorées différemment les unes des autres.
+Si la mise en forme appliquée possède une sémantique forte (par exemple barrer le texte pour indiquer qu'il a été supprimé), on recommande aux auteurs d'utiliser les balises HTML associées si elles existent (par exemple {{HTMLElement("del")}} ou {{HTMLElement("s")}}). Les navigateurs peuvent parfois désactiver la mise en forme et ces éléments permettent de conserver la sémantique du contenu quoi qu'il arrive.
+ +La propriété raccourcie {{cssxref("text-decoration")}} permet de paramétrer cette propriété et d'autres propriétés associées aux décorations.
+ +/* Valeurs avec des mots-clés */ +text-decoration-style: solid; +text-decoration-style: double; +text-decoration-style: dotted; +text-decoration-style: dashed; +text-decoration-style: wavy; + +/* Valeurs globales */ +text-decoration-style: inherit; +text-decoration-style: initial; +text-decoration-style: unset; ++ +
soliddoubledotteddashedwavy.exemple {
+ -moz-text-decoration-line: underline;
+ -moz-text-decoration-style: wavy;
+ -moz-text-decoration-color: red;
+ -webkit-text-decoration-line: underline;
+ -webkit-text-decoration-style: wavy;
+ -webkit-text-decoration-color: red;
+ text-decoration-line: underline;
+ text-decoration-style: wavy;
+ text-decoration-color: red;
+}
+
+
+<p class="exemple">Et voilà le résultat.</p> ++ +
{{EmbedLiveSample('Exemples')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-style', 'text-decoration-style')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale. La propriété {{cssxref("text-decoration")}} n'était pas une propriété raccourcie auparavant. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-decoration-style")}}
+ +text-decoration-style.La propriété CSS text-decoration-thickness définit l'épaisseur ou la largeur de la ligne de décoration utilisée sur le texte d'un élément (la ligne qui raye, souligne ou surligne le texte).
/* Un seul mot-clé*/ -text-decoration-thickness: auto; -text-decoration-thickness: from-font; - -/* Une valeur de longueur */ -text-decoration-thickness: 0.1em; -text-decoration-thickness: 3px; - -/* Valeurs globales */ -text-decoration-thickness: inherit; -text-decoration-thickness: initial; -text-decoration-thickness: unset; -- -
autofrom-fontauto.<length><p class="longhand">Voici du texte avec un soulignement rouge de 2px.</p> -<p class="under-and-over">Celui est souligné et surligné.</p> -<p class="shorthand">Ce texte sera souligné avec une ligne bleue de 1px si la formulation raccourcie est prise en charge.</p>- -
.longhand {
- text-decoration-line: underline;
- text-decoration-style: solid;
- text-decoration-color: red;
- text-decoration-thickness: 2px;
-}
-
-.under-and-over {
- text-decoration-line: underline overline;
- text-decoration-style: solid;
- text-decoration-color: orange;
- text-decoration-thickness: 0.2rem;
-}
-
-.shorthand {
- text-decoration: underline solid blue 1px;
-}
-
-{{EmbedLiveSample('Exemples', '', '', '')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Text Decoration', '#text-decoration-width-property', 'text-decoration-width')}} | -{{Spec2('CSS4 Text Decoration')}} | -Définition initiale. | -
Note : Cette propriété était initialement intitulée text-decoration-width mais fut renommée en 2019 en text-decoration-thickness.
{{Compat("css.properties.text-decoration-thickness")}}
- -La propriété CSS text-decoration-thickness définit l'épaisseur ou la largeur de la ligne de décoration utilisée sur le texte d'un élément (la ligne qui raye, souligne ou surligne le texte).
/* Un seul mot-clé*/ +text-decoration-thickness: auto; +text-decoration-thickness: from-font; + +/* Une valeur de longueur */ +text-decoration-thickness: 0.1em; +text-decoration-thickness: 3px; + +/* Valeurs globales */ +text-decoration-thickness: inherit; +text-decoration-thickness: initial; +text-decoration-thickness: unset; ++ +
autofrom-fontauto.<length><p class="longhand">Voici du texte avec un soulignement rouge de 2px.</p> +<p class="under-and-over">Celui est souligné et surligné.</p> +<p class="shorthand">Ce texte sera souligné avec une ligne bleue de 1px si la formulation raccourcie est prise en charge.</p>+ +
.longhand {
+ text-decoration-line: underline;
+ text-decoration-style: solid;
+ text-decoration-color: red;
+ text-decoration-thickness: 2px;
+}
+
+.under-and-over {
+ text-decoration-line: underline overline;
+ text-decoration-style: solid;
+ text-decoration-color: orange;
+ text-decoration-thickness: 0.2rem;
+}
+
+.shorthand {
+ text-decoration: underline solid blue 1px;
+}
+
+{{EmbedLiveSample('Exemples', '', '', '')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Text Decoration', '#text-decoration-width-property', 'text-decoration-width')}} | +{{Spec2('CSS4 Text Decoration')}} | +Définition initiale. | +
Note : Cette propriété était initialement intitulée text-decoration-width mais fut renommée en 2019 en text-decoration-thickness.
{{Compat("css.properties.text-decoration-thickness")}}
+ +La propriété text-decoration est utilisée pour « décorer » le texte en ajoutant une ligne pouvant être positionnée sous, sur ou à travers le texte. C'est une propriété raccourcie qui permet de paramétrer simultanément les propriétés « détaillées » : {{cssxref("text-decoration-line")}}, {{cssxref("text-decoration-color")}} et {{cssxref("text-decoration-style")}}.
<p>Ce texte a <em> des mots mis en avant</em> dedans.</p>, et cette règle CSS p { text-decoration: underline; }, on aura tout le paragraphe souligné, même si on applique la règle em { text-decoration: none; }, cela n'aurait aucun impact. En revanche, ajouter la règle em { text-decoration: overline; } entraînerait un cumul des décorations pour « des mots mis en avant ».
-
-Note : La spécification CSS Text Decoration de niveau 3 indique que cette propriété est une propriété raccourcie pour les trois propriétés {{cssxref("text-decoration-color")}}, {{cssxref("text-decoration-line")}} et {{cssxref("text-decoration-style")}}. Comme pour les autres propriétés raccourcies, cela signifie que la valeur de chaque « sous-propriété » est réinitialisée avec sa valeur par défaut si elle n'est pas explicitement définie dans la propriété raccourcie.
-/* Valeurs avec mots-clés */ -text-decoration: none; /* Aucune décoration */ -text-decoration: underline red; /* On souligne en rouge */ -text-decoration: underline wavy red; /* On souligne en rouge avec */ - /* une ligne ondulée */ - -/* Valeurs globales */ -text-decoration: inherit; -text-decoration: initial; -text-decoration: unset; -- -
.under {
- text-decoration: underline red;
-}
-
-.over {
- text-decoration: wavy overline lime;
-}
-
-.line {
- text-decoration: line-through;
-}
-
-.plain {
- text-decoration: none;
-}
-
-.underover {
- text-decoration: dashed underline overline;
-}
-
-.blink {
- text-decoration: blink;
-}
-
-
-<p class="under">Ce texte a une ligne en dessous.</p> -<p class="over">Ce texte a une ligne au dessus.</p> -<p class="line">Ce texte est barré d'une ligne.</p> -<p>Ce <a class="plain" href="#">lien ne sera pas souligné</a>, - comme les liens le sont normalement. Attention à ces décorations - sur les ancres cars le soulignement sert souvent d'indication pour - un hyperlien.</p> -<p class="underover">Ce texte a des lignes en dessous et au dessus.</p> -<p class="blink">Ce texte peut clignoter selon le navigateur utilisé.</p> -- -
{{EmbedLiveSample('Exemples','auto','280')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-property', 'text-decoration')}} | -{{Spec2('CSS3 Text Decoration')}} | -Transformée comme une propriété raccourcie. Ajout du support pour la valeur de {{cssxref('text-decoration-style')}}. | -
| {{SpecName('CSS2.1', 'text.html#lining-striking-props', 'text-decoration')}} | -{{Spec2('CSS2.1')}} | -Pas de changement significatif. | -
| {{SpecName('CSS1', '#text-decoration', 'text-decoration')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-decoration")}}
- -La propriété text-decoration est utilisée pour « décorer » le texte en ajoutant une ligne pouvant être positionnée sous, sur ou à travers le texte. C'est une propriété raccourcie qui permet de paramétrer simultanément les propriétés « détaillées » : {{cssxref("text-decoration-line")}}, {{cssxref("text-decoration-color")}} et {{cssxref("text-decoration-style")}}.
<p>Ce texte a <em> des mots mis en avant</em> dedans.</p>, et cette règle CSS p { text-decoration: underline; }, on aura tout le paragraphe souligné, même si on applique la règle em { text-decoration: none; }, cela n'aurait aucun impact. En revanche, ajouter la règle em { text-decoration: overline; } entraînerait un cumul des décorations pour « des mots mis en avant ».
+
+Note : La spécification CSS Text Decoration de niveau 3 indique que cette propriété est une propriété raccourcie pour les trois propriétés {{cssxref("text-decoration-color")}}, {{cssxref("text-decoration-line")}} et {{cssxref("text-decoration-style")}}. Comme pour les autres propriétés raccourcies, cela signifie que la valeur de chaque « sous-propriété » est réinitialisée avec sa valeur par défaut si elle n'est pas explicitement définie dans la propriété raccourcie.
+/* Valeurs avec mots-clés */ +text-decoration: none; /* Aucune décoration */ +text-decoration: underline red; /* On souligne en rouge */ +text-decoration: underline wavy red; /* On souligne en rouge avec */ + /* une ligne ondulée */ + +/* Valeurs globales */ +text-decoration: inherit; +text-decoration: initial; +text-decoration: unset; ++ +
.under {
+ text-decoration: underline red;
+}
+
+.over {
+ text-decoration: wavy overline lime;
+}
+
+.line {
+ text-decoration: line-through;
+}
+
+.plain {
+ text-decoration: none;
+}
+
+.underover {
+ text-decoration: dashed underline overline;
+}
+
+.blink {
+ text-decoration: blink;
+}
+
+
+<p class="under">Ce texte a une ligne en dessous.</p> +<p class="over">Ce texte a une ligne au dessus.</p> +<p class="line">Ce texte est barré d'une ligne.</p> +<p>Ce <a class="plain" href="#">lien ne sera pas souligné</a>, + comme les liens le sont normalement. Attention à ces décorations + sur les ancres cars le soulignement sert souvent d'indication pour + un hyperlien.</p> +<p class="underover">Ce texte a des lignes en dessous et au dessus.</p> +<p class="blink">Ce texte peut clignoter selon le navigateur utilisé.</p> ++ +
{{EmbedLiveSample('Exemples','auto','280')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-decoration-property', 'text-decoration')}} | +{{Spec2('CSS3 Text Decoration')}} | +Transformée comme une propriété raccourcie. Ajout du support pour la valeur de {{cssxref('text-decoration-style')}}. | +
| {{SpecName('CSS2.1', 'text.html#lining-striking-props', 'text-decoration')}} | +{{Spec2('CSS2.1')}} | +Pas de changement significatif. | +
| {{SpecName('CSS1', '#text-decoration', 'text-decoration')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-decoration")}}
+ +La propriété text-emphasis-color définit la couleur utilisée pour dessiner les marques d'emphase. Celle-ci peut être (re)définie grâce à la propriété raccourcie {{cssxref("text-emphasis")}}.
/* Valeur initiale */ -text-emphasis-color: currentColor; - -/* Valeur de couleur */ -/* Type <color> */ -text-emphasis-color: #555; -text-emphasis-color: blue; -text-emphasis-color: rgba(90, 200, 160, 0.8); -text-emphasis-color: transparent; - -/* Valeurs globales */ -text-emphasis-color: inherit; -text-emphasis-color: initial; -text-emphasis-color: unset; -- -
<color><p><em>Coucou</em>, je suis <em>là</em></p>- -
em {
- text-emphasis-style: sesame;
- text-emphasis-color: blue;
-}
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-color-property', 'text-emphasis')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-emphasis-color")}}
- -La propriété text-emphasis-color définit la couleur utilisée pour dessiner les marques d'emphase. Celle-ci peut être (re)définie grâce à la propriété raccourcie {{cssxref("text-emphasis")}}.
/* Valeur initiale */ +text-emphasis-color: currentColor; + +/* Valeur de couleur */ +/* Type <color> */ +text-emphasis-color: #555; +text-emphasis-color: blue; +text-emphasis-color: rgba(90, 200, 160, 0.8); +text-emphasis-color: transparent; + +/* Valeurs globales */ +text-emphasis-color: inherit; +text-emphasis-color: initial; +text-emphasis-color: unset; ++ +
<color><p><em>Coucou</em>, je suis <em>là</em></p>+ +
em {
+ text-emphasis-style: sesame;
+ text-emphasis-color: blue;
+}
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-color-property', 'text-emphasis')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-emphasis-color")}}
+ +La propriété text-emphasis-position permet de décrire l'emplacement des marques d'emphase quand elles sont utilisées. L'ajout des marques a le même effet que les annotations ruby quant à la hauteur de ligne : s'il n'y a pas suffisamment de place, la hauteur de la ligne est augmentée.
/* Valeur initiale */ -text-emphasis-position: over right; - -/* Valeurs avec mot-clé */ -text-emphasis-position: over left; -text-emphasis-position: under right; -text-emphasis-position: under left; - - -text-emphasis-position: left over; -text-emphasis-position: right under; -text-emphasis-position: left under; - -/* Valeurs globales */ -text-emphasis-position: inherit; -text-emphasis-position: initial; -text-emphasis-position: unset; -- -
La position des marques d'emphase varie en fonction du langage. Par exemple, en japonais, on préfère les placer au dessus à droite. En revanche, pour le chinois, on préfèrera en bas à droite. Le tableau qui suit illustre les différences, notamment entre le chinois, le mongolien et le japonais :
- -| Langue | -Position | -Illustration | -||
|---|---|---|---|---|
| Horizontale | -Verticale | -|||
| Japanese | -au dessus | -à droite | -![]() |
- ![]() |
-
| Mongolian | -||||
| Chinese | -en dessous | -à droite | -![]() |
- |
Note : La propriété text-emphasis-position ne peut pas être définie (et donc ne peut pas être redéfinie) avec la propriété raccourcie {{cssxref("text-emphasis")}}.
overunderrightleftCertains éditeurs préfèrent masquer les marques d'emphase lorsque celles-ci entre en conflit avec les annotations ruby. On peut utiliser la règle suivante :
- -ruby {
- text-emphasis: none;
-}
-
-
-D'autres préfèrent masquer le contenu ruby et privilégier les marques d'emphase. On peut obtenir cet effet avec les déclarations suivantes :
- -em {
- /* On utilise text-emphasis pour les <em> */
- text-emphasis: dot;
-}
-
-em rt {
- /* On masque le ruby dans les éléments <em> */
- display: none;
-}
-
-<p><em>Coucou</em>, je suis <em>là</em></p>- -
em {
- text-emphasis-style: sesame;
- text-emphasis-position: under right;
-}
-
-{{EmbedLiveSample("Exemple_live","100%","100%")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-position-property', 'text-emphasis')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale | -
{{cssinfo}}
- -{{Compat("css.properties.text-emphasis-position")}}
- -La propriété text-emphasis-position permet de décrire l'emplacement des marques d'emphase quand elles sont utilisées. L'ajout des marques a le même effet que les annotations ruby quant à la hauteur de ligne : s'il n'y a pas suffisamment de place, la hauteur de la ligne est augmentée.
/* Valeur initiale */ +text-emphasis-position: over right; + +/* Valeurs avec mot-clé */ +text-emphasis-position: over left; +text-emphasis-position: under right; +text-emphasis-position: under left; + + +text-emphasis-position: left over; +text-emphasis-position: right under; +text-emphasis-position: left under; + +/* Valeurs globales */ +text-emphasis-position: inherit; +text-emphasis-position: initial; +text-emphasis-position: unset; ++ +
La position des marques d'emphase varie en fonction du langage. Par exemple, en japonais, on préfère les placer au dessus à droite. En revanche, pour le chinois, on préfèrera en bas à droite. Le tableau qui suit illustre les différences, notamment entre le chinois, le mongolien et le japonais :
+ +| Langue | +Position | +Illustration | +||
|---|---|---|---|---|
| Horizontale | +Verticale | +|||
| Japanese | +au dessus | +à droite | +![]() |
+ ![]() |
+
| Mongolian | +||||
| Chinese | +en dessous | +à droite | +![]() |
+ |
Note : La propriété text-emphasis-position ne peut pas être définie (et donc ne peut pas être redéfinie) avec la propriété raccourcie {{cssxref("text-emphasis")}}.
overunderrightleftCertains éditeurs préfèrent masquer les marques d'emphase lorsque celles-ci entre en conflit avec les annotations ruby. On peut utiliser la règle suivante :
+ +ruby {
+ text-emphasis: none;
+}
+
+
+D'autres préfèrent masquer le contenu ruby et privilégier les marques d'emphase. On peut obtenir cet effet avec les déclarations suivantes :
+ +em {
+ /* On utilise text-emphasis pour les <em> */
+ text-emphasis: dot;
+}
+
+em rt {
+ /* On masque le ruby dans les éléments <em> */
+ display: none;
+}
+
+<p><em>Coucou</em>, je suis <em>là</em></p>+ +
em {
+ text-emphasis-style: sesame;
+ text-emphasis-position: under right;
+}
+
+{{EmbedLiveSample("Exemple_live","100%","100%")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-position-property', 'text-emphasis')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale | +
{{cssinfo}}
+ +{{Compat("css.properties.text-emphasis-position")}}
+ +La propriété text-emphasis-style définit le type d'emphase utilisée. Celui-ci peut également être (re)défini via la propriété raccourcie {{cssxref("text-emphasis")}}.
/* Valeur initiale */ -/* Aucune marque d'emphase */ -text-emphasis-style: none; - -/* Valeur distincte */ -text-emphasis-style: 'x'; -text-emphasis-style: '点'; -text-emphasis-style: '\25B2'; -text-emphasis-style: '*'; - -/* Valeurs avec un mot-clé */ -text-emphasis-style: filled; -text-emphasis-style: open; -text-emphasis-style: filled sesame; -text-emphasis-style: open sesame; - -/* Valeurs globales */ -text-emphasis-style: inherit; -text-emphasis-style: initial; -text-emphasis-style: unset; -- -
nonefilledfilled ou open est absent, ce sera la valeur par défaut.opendot'•' (U+2022) et le point vide est le caractère '◦' (U+25E6).circle'●' (U+25CF) et celui pour le cercle ouvert est '○' (U+25CB).double-circle'◉' (U+25C9), et le double-cercle ouvert est le caractère '◎' (U+25CE).triangle'▲' (U+25B2) et le triangle ouvert au caractère '△' (U+25B3).sesame'﹅' (U+FE45) pour le caractère rempli et '﹆' (U+FE46) pour le caractère ouvert.<string><p><em>Coucou</em>, je suis <em>là</em></p>- -
em {
- text-emphasis-style: sesame;
-}
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-style-property', 'text-emphasis')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-emphasis-style")}}
- -La propriété text-emphasis-style définit le type d'emphase utilisée. Celui-ci peut également être (re)défini via la propriété raccourcie {{cssxref("text-emphasis")}}.
/* Valeur initiale */ +/* Aucune marque d'emphase */ +text-emphasis-style: none; + +/* Valeur distincte */ +text-emphasis-style: 'x'; +text-emphasis-style: '点'; +text-emphasis-style: '\25B2'; +text-emphasis-style: '*'; + +/* Valeurs avec un mot-clé */ +text-emphasis-style: filled; +text-emphasis-style: open; +text-emphasis-style: filled sesame; +text-emphasis-style: open sesame; + +/* Valeurs globales */ +text-emphasis-style: inherit; +text-emphasis-style: initial; +text-emphasis-style: unset; ++ +
nonefilledfilled ou open est absent, ce sera la valeur par défaut.opendot'•' (U+2022) et le point vide est le caractère '◦' (U+25E6).circle'●' (U+25CF) et celui pour le cercle ouvert est '○' (U+25CB).double-circle'◉' (U+25C9), et le double-cercle ouvert est le caractère '◎' (U+25CE).triangle'▲' (U+25B2) et le triangle ouvert au caractère '△' (U+25B3).sesame'﹅' (U+FE45) pour le caractère rempli et '﹆' (U+FE46) pour le caractère ouvert.<string><p><em>Coucou</em>, je suis <em>là</em></p>+ +
em {
+ text-emphasis-style: sesame;
+}
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-style-property', 'text-emphasis')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-emphasis-style")}}
+ +La propriété text-emphasis est une propriété raccourcie qui permet de définir {{cssxref("text-emphasis-style")}} et {{cssxref("text-emphasis-color")}} avec une seule déclaration. Cette propriété appliquera les marques d'emphase définies sur chaque caractères du texte de l'élément sauf pour les séparateurs (comme les espaces) et les caractères de contrôle.
La propriété text-emphasis est différente de {{cssxref("text-decoration")}}. La propriété text-decoration n'a pas d'héritage et la décoration est appliquée sur tout l'élément. Cependant, text-emphasis a un héritage et il est donc possible de changer la marque selon les « descendants » d'un élément.
La taille du symbole d'emphase, comme celle des symboles Ruby, représente environ 50% de la taille de la police du texte. text-emphasis peut modifier la hauteur de la ligne lorsque l'interlignage n'est pas suffisant pour placer les marques.
Note : text-emphasis ne réinitialise pas la valeur de {{cssxref("text-emphasis-position")}}. En effet, bien que la couleur et le style des marques puisse varier, il est très peu probable qu'on change leurs positions au cours du même document.
/* Valeur initiale */ -text-emphasis: none; /* Pas de marque */ - -/* Chaîne de caractères */ -/* Type <string> */ -text-emphasis: 'x'; -text-emphasis: '点'; -text-emphasis: '\25B2'; -text-emphasis: '*' #555; -/* À ne pas utiliser, cela pourra être */ -/* considéré comme 't' uniquement */ -text-emphasis: 'toto'; - -/* Valeurs avec mot(s)-clé(s) */ -text-emphasis: filled; -text-emphasis: open; -text-emphasis: filled sesame; -text-emphasis: open sesame; - -/* Valeurs avec mots-clés, combinés à une couleur */ -text-emphasis: filled sesame #555; - -/* Valeurs globales */ -text-emphasis: inherit; -text-emphasis: initial; -text-emphasis: unset; -- -
nonefilledfilled ou open n'est présent, ce sera la valeur par défaut.opendot'•' (U+2022) et celui qui est évidé est '◦' (U+25E6).circle'●' (U+25CF) et celui du cercle évidé est '○' (U+25CB). Lorsqu'aucune forme n'est spécifiée, c'est la forme par défaut utilisée pour les modes d'écriture horizontaux.double-circle'◉' (U+25C9), celui du double-cercle évidé est '◎' (U+25CE).triangle'▲' (U+25B2) et celui du triangle évidé correspond à '△' (U+25B3).sesame'﹅' (U+FE45) et celui du sésame évidé correspond à '﹆' (U+FE46). Lorsqu'aucune forme n'a été définie, c'est la forme par défaut qui est utilisée pour les marques d'emphase pour les modes d'écriture verticaux.<string><color>currentColor.<p><em>Coucou</em>, je suis <em>là</em></p>- -
em {
- text-emphasis: sesame blue;
-}
-
-{{EmbedLiveSample("Exemples")}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-property', 'text-emphasis')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-emphasis")}}
- -La propriété text-emphasis est une propriété raccourcie qui permet de définir {{cssxref("text-emphasis-style")}} et {{cssxref("text-emphasis-color")}} avec une seule déclaration. Cette propriété appliquera les marques d'emphase définies sur chaque caractères du texte de l'élément sauf pour les séparateurs (comme les espaces) et les caractères de contrôle.
La propriété text-emphasis est différente de {{cssxref("text-decoration")}}. La propriété text-decoration n'a pas d'héritage et la décoration est appliquée sur tout l'élément. Cependant, text-emphasis a un héritage et il est donc possible de changer la marque selon les « descendants » d'un élément.
La taille du symbole d'emphase, comme celle des symboles Ruby, représente environ 50% de la taille de la police du texte. text-emphasis peut modifier la hauteur de la ligne lorsque l'interlignage n'est pas suffisant pour placer les marques.
Note : text-emphasis ne réinitialise pas la valeur de {{cssxref("text-emphasis-position")}}. En effet, bien que la couleur et le style des marques puisse varier, il est très peu probable qu'on change leurs positions au cours du même document.
/* Valeur initiale */ +text-emphasis: none; /* Pas de marque */ + +/* Chaîne de caractères */ +/* Type <string> */ +text-emphasis: 'x'; +text-emphasis: '点'; +text-emphasis: '\25B2'; +text-emphasis: '*' #555; +/* À ne pas utiliser, cela pourra être */ +/* considéré comme 't' uniquement */ +text-emphasis: 'toto'; + +/* Valeurs avec mot(s)-clé(s) */ +text-emphasis: filled; +text-emphasis: open; +text-emphasis: filled sesame; +text-emphasis: open sesame; + +/* Valeurs avec mots-clés, combinés à une couleur */ +text-emphasis: filled sesame #555; + +/* Valeurs globales */ +text-emphasis: inherit; +text-emphasis: initial; +text-emphasis: unset; ++ +
nonefilledfilled ou open n'est présent, ce sera la valeur par défaut.opendot'•' (U+2022) et celui qui est évidé est '◦' (U+25E6).circle'●' (U+25CF) et celui du cercle évidé est '○' (U+25CB). Lorsqu'aucune forme n'est spécifiée, c'est la forme par défaut utilisée pour les modes d'écriture horizontaux.double-circle'◉' (U+25C9), celui du double-cercle évidé est '◎' (U+25CE).triangle'▲' (U+25B2) et celui du triangle évidé correspond à '△' (U+25B3).sesame'﹅' (U+FE45) et celui du sésame évidé correspond à '﹆' (U+FE46). Lorsqu'aucune forme n'a été définie, c'est la forme par défaut qui est utilisée pour les marques d'emphase pour les modes d'écriture verticaux.<string><color>currentColor.<p><em>Coucou</em>, je suis <em>là</em></p>+ +
em {
+ text-emphasis: sesame blue;
+}
+
+{{EmbedLiveSample("Exemples")}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-emphasis-property', 'text-emphasis')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-emphasis")}}
+ +La propriété text-indent définit la longueur qui doit être laissée avant le début de la première ligne d'un élément contenant du texte.
L'espacement horizontal se fait en accord avec la bord gauche (ou droit pour les dispositions de droite à gauche) de l'élément contenant le texte. Par défaut, cela ne contrôle que l'indentation de la première ligne du bloc mais les mots-clés hanging et each-line peuvent être utilisés pour modifier ce comportement.
/* Valeurs de longueur */ -/* Type <length> */ -text-indent: 3mm; -text-indent: 40px; - -/* Valeurs de pourcentages */ -/* relatives à la largeur */ -/* du bloc englobant */ -/* Type <percentage> */ -text-indent: 15%; - -/* Valeurs avec un mot-clé */ -text-indent: 5em each-line; -text-indent: 5em hanging; -text-indent: 5em hanging each-line; - -/* Valeurs globales */ -text-indent: inherit; -text-indent: initial; -text-indent: unset; -- -
<length><percentage>each-line {{experimental_inline}}hanging {{experimental_inline}}<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy -nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> -<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy -nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> -- -
p {
- text-indent: 5em;
- background: powderblue;
-}
-
-{{EmbedLiveSample('Indentation_simple','100%','100%') }}
- -<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy -nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> -<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy -nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>- -
p {
- text-indent: 30%;
- background: plum;
-}
-
-{{EmbedLiveSample('Indentation_proportionnelle','100%','100%')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#text-indent-property', 'text-indent')}} | -{{Spec2('CSS3 Text')}} | -Ajout des mots-clés hanging et each-line. |
-
| {{SpecName('CSS3 Transitions', '#animatable-css', 'text-indent')}} | -{{Spec2('CSS3 Transitions')}} | -text-indent peut être animée. |
-
| {{SpecName('CSS2.1', 'text.html#indentation-prop', 'text-indent')}} | -{{Spec2('CSS2.1')}} | -The behavior with display: inline-block and anonymous block boxes have been explicitly defined. |
-
| {{SpecName('CSS1', '#text-indent', 'text-indent')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-indent")}}
diff --git a/files/fr/web/css/text-indent/index.md b/files/fr/web/css/text-indent/index.md new file mode 100644 index 0000000000..e2db574dea --- /dev/null +++ b/files/fr/web/css/text-indent/index.md @@ -0,0 +1,140 @@ +--- +title: text-indent +slug: Web/CSS/text-indent +tags: + - CSS + - Propriété + - Reference +translation_of: Web/CSS/text-indent +--- +La propriété text-indent définit la longueur qui doit être laissée avant le début de la première ligne d'un élément contenant du texte.
L'espacement horizontal se fait en accord avec la bord gauche (ou droit pour les dispositions de droite à gauche) de l'élément contenant le texte. Par défaut, cela ne contrôle que l'indentation de la première ligne du bloc mais les mots-clés hanging et each-line peuvent être utilisés pour modifier ce comportement.
/* Valeurs de longueur */ +/* Type <length> */ +text-indent: 3mm; +text-indent: 40px; + +/* Valeurs de pourcentages */ +/* relatives à la largeur */ +/* du bloc englobant */ +/* Type <percentage> */ +text-indent: 15%; + +/* Valeurs avec un mot-clé */ +text-indent: 5em each-line; +text-indent: 5em hanging; +text-indent: 5em hanging each-line; + +/* Valeurs globales */ +text-indent: inherit; +text-indent: initial; +text-indent: unset; ++ +
<length><percentage>each-line {{experimental_inline}}hanging {{experimental_inline}}<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy +nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> +<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy +nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> ++ +
p {
+ text-indent: 5em;
+ background: powderblue;
+}
+
+{{EmbedLiveSample('Indentation_simple','100%','100%') }}
+ +<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy +nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> +<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy +nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>+ +
p {
+ text-indent: 30%;
+ background: plum;
+}
+
+{{EmbedLiveSample('Indentation_proportionnelle','100%','100%')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#text-indent-property', 'text-indent')}} | +{{Spec2('CSS3 Text')}} | +Ajout des mots-clés hanging et each-line. |
+
| {{SpecName('CSS3 Transitions', '#animatable-css', 'text-indent')}} | +{{Spec2('CSS3 Transitions')}} | +text-indent peut être animée. |
+
| {{SpecName('CSS2.1', 'text.html#indentation-prop', 'text-indent')}} | +{{Spec2('CSS2.1')}} | +The behavior with display: inline-block and anonymous block boxes have been explicitly defined. |
+
| {{SpecName('CSS1', '#text-indent', 'text-indent')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-indent")}}
diff --git a/files/fr/web/css/text-justify/index.html b/files/fr/web/css/text-justify/index.html deleted file mode 100644 index c60d7fae99..0000000000 --- a/files/fr/web/css/text-justify/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: text-justify -slug: Web/CSS/text-justify -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/text-justify ---- -la propriété CSS text-justify définit le type de justification à appliquer au texte justifié (par exemple avec {{cssxref("text-align")}}: justify;).
text-justify: none; -text-justify: auto; -text-justify: inter-word; -text-justify: inter-character; -text-justify: distribute; -- -
La propriété text-justify peut être définie grâce à l'un des mots-clés suivants.
noneautoLe navigateur choisira la meilleure justification pour la situation, en se basant sur le rapport entre performance et qualité, mais également sur la valeur la plus appropriée par rapport à la langue (français, langues CJK, etc.). C'est la propriété par défaut, qui est appliquée lorsque text-justify n'est pas définie.
inter-wordinter-characterdistribute {{deprecated_inline}}inter-character ; cette valeur sert uniquement à de fins de compatibilité.<p class="none"><code>text-justify: none</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> -<p class="auto"><code>text-justify: auto</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> -<p class="dist"><code>text-justify: distribute</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> -<p class="word"><code>text-justify: inter-word</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> -<p class="char"><code>text-justify: inter-character</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p>- -
p {
- font-size: 1.5em;
- border: 1px solid black;
- padding: 10px;
- width: 95%;
- margin: 10px auto;
- text-align: justify;
-}
-
-.none {
- text-justify: none;
-}
-
-.auto {
- text-justify: auto;
-}
-
-.dist {
- text-justify: distribute;
-}
-
-.word {
- text-justify: inter-word;
-}
-
-.char {
- text-justify: inter-character;
-}
-
-{{EmbedLiveSample("Exemples","100%",400)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#text-justify-property', 'text-justify')}} | -{{Spec2('CSS3 Text')}} | -- |
{{cssinfo}}
- -la propriété CSS text-justify définit le type de justification à appliquer au texte justifié (par exemple avec {{cssxref("text-align")}}: justify;).
text-justify: none; +text-justify: auto; +text-justify: inter-word; +text-justify: inter-character; +text-justify: distribute; ++ +
La propriété text-justify peut être définie grâce à l'un des mots-clés suivants.
noneautoLe navigateur choisira la meilleure justification pour la situation, en se basant sur le rapport entre performance et qualité, mais également sur la valeur la plus appropriée par rapport à la langue (français, langues CJK, etc.). C'est la propriété par défaut, qui est appliquée lorsque text-justify n'est pas définie.
inter-wordinter-characterdistribute {{deprecated_inline}}inter-character ; cette valeur sert uniquement à de fins de compatibilité.<p class="none"><code>text-justify: none</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> +<p class="auto"><code>text-justify: auto</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> +<p class="dist"><code>text-justify: distribute</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> +<p class="word"><code>text-justify: inter-word</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p> +<p class="char"><code>text-justify: inter-character</code> — Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare maximus vehicula. Duis nisi velit, dictum id mauris vitae, lobortis pretium quam. Quisque sed nisi pulvinar, consequat justo id, feugiat leo. Cras eu elementum dui.</p>+ +
p {
+ font-size: 1.5em;
+ border: 1px solid black;
+ padding: 10px;
+ width: 95%;
+ margin: 10px auto;
+ text-align: justify;
+}
+
+.none {
+ text-justify: none;
+}
+
+.auto {
+ text-justify: auto;
+}
+
+.dist {
+ text-justify: distribute;
+}
+
+.word {
+ text-justify: inter-word;
+}
+
+.char {
+ text-justify: inter-character;
+}
+
+{{EmbedLiveSample("Exemples","100%",400)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#text-justify-property', 'text-justify')}} | +{{Spec2('CSS3 Text')}} | ++ |
{{cssinfo}}
+ +La propriété text-orientation définit l'orientation du texte sur une ligne. Cette propriété n'a d'effet qu'en mode vertical (autrement dit, quand {{cssxref("writing-mode")}} n'est pas horizontal-tb). Elle est utile pour contrôler l'affichage de l'écriture pour les langues dont le script est vertical. Elle permet aussi de gérer les en-têtes de tableaux verticaux.
/* Valeurs avec un mot-clé */ -text-orientation: mixed; -text-orientation: upright; -text-orientation: sideways-right; -text-orientation: sideways-left; -text-orientation: sideways; -text-orientation: use-glyph-orientation; - -/* Valeurs globales */ -text-orientation: inherit; -text-orientation: initial; -text-orientation: unset; -- -
La propriété text-orientation peut valoir l'un des mots-clés suivants.
mixeduprightltr, quelle que soit celle définie par l'utilisateur.sidewayssideways-rightsideways conservé pour des raisons de compatibilité.use-glyph-orientationglyph-orientation-vertical et glyph-orientation-horizontal.<p class="monTexte">Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>- -
.monTexte {
- writing-mode: vertical-rl;
- text-orientation: sideways;
-}
-
-
-{{EmbedLiveSample("Exemples","100%",200)}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Writing Modes', '#text-orientation', 'text-orientation')}} | -{{Spec2('CSS3 Writing Modes')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-orientation")}}
- -La propriété text-orientation définit l'orientation du texte sur une ligne. Cette propriété n'a d'effet qu'en mode vertical (autrement dit, quand {{cssxref("writing-mode")}} n'est pas horizontal-tb). Elle est utile pour contrôler l'affichage de l'écriture pour les langues dont le script est vertical. Elle permet aussi de gérer les en-têtes de tableaux verticaux.
/* Valeurs avec un mot-clé */ +text-orientation: mixed; +text-orientation: upright; +text-orientation: sideways-right; +text-orientation: sideways-left; +text-orientation: sideways; +text-orientation: use-glyph-orientation; + +/* Valeurs globales */ +text-orientation: inherit; +text-orientation: initial; +text-orientation: unset; ++ +
La propriété text-orientation peut valoir l'un des mots-clés suivants.
mixeduprightltr, quelle que soit celle définie par l'utilisateur.sidewayssideways-rightsideways conservé pour des raisons de compatibilité.use-glyph-orientationglyph-orientation-vertical et glyph-orientation-horizontal.<p class="monTexte">Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>+ +
.monTexte {
+ writing-mode: vertical-rl;
+ text-orientation: sideways;
+}
+
+
+{{EmbedLiveSample("Exemples","100%",200)}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Writing Modes', '#text-orientation', 'text-orientation')}} | +{{Spec2('CSS3 Writing Modes')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-orientation")}}
+ +La propriété text-overflow définit la façon dont le contenu textuel qui dépasse d'une boîte est signalé pour les utilisateurs. Le texte peut être rogné (clipping), afficher une ellipse ('…', U+2026 Horizontal Ellipsis) ou afficher une chaîne de caractères choisie.
Le rognage se fera à la bordure de la boîte. Afin que le rognage se fasse plus tôt, à la limite des caractères, on peut utiliser la chaîne vide ('').
Cette propriété n'affecte que le contenu qui dépasse de la boîte englobante dans le sens de la progression en ligne. Par exemple, on ne parle pas ici du texte qui dépasserait vers le bas d'une boîte. Le texte peut dépasser lorsqu'on empêche le retour automatique à la ligne (par exemple avec white-space: nowrap) ou lorsqu'un seul mot est trop long pour tenir dans le conteneur.
Cette propriété CSS ne force pas le dépassement. Pour ce faire et afin que text-overflow soit appliqué, l'auteur devra ajouter des propriétés supplémentaires sur l'élément, notamment : {{cssxref("overflow")}} avec hidden et {{cssxref("white-space")}} avec nowrap.
/* On gère le dépassement en fin de ligne - - à droite en LTR, - - à gauche en RTL */ -text-overflow: clip; -text-overflow: ellipsis; -text-overflow: "…"; -text-overflow: fade; -text-overflow: fade(10px); -text-overflow: fade(5%); - -/* On gère le dépassement au début et - à la fin de la ligne. La directionnalité - n'a pas d'importance */ -text-overflow: clip ellipsis; -text-overflow: "…" "…"; -text-overflow: fade clip; -text-overflow: fade(10px) fade(10px); -text-overflow: fade(5%) fade(5%); - -/* Valeurs globales */ -text-overflow: inherit; -text-overflow: initial; -text-overflow: unset; -- -
La propriété text-overflow peut être définie grâce à une ou deux valeurs.
Si une valeur est fournie, celle-ci indique le comportement du dépassement en fin de ligne (c'est-à-dire l'extrêmité droite pour les textes écrits de gauche à droite et l'extrêmité gauche pour les textes écrits de droite à gauche). Si deux valeurs sont fournies, la première précisera la comportement pour le dépassement à l'extrêmité gauche de la ligne et la seconde indiquera le comportement du dépassement pour l'extrêmité droite de la ligne.
- -Chacune des valeurs se compose :
- -clip, ellipsis, fadefade() à laquelle on passe une valeur de type {{cssxref("<length>")}} ou {{cssxref("<percentage>")}} qui permet de contrôler la distance d'effacement<string>.clip'') comme valeur pour cette propriété.ellipsis'…', U+2026 Horizontal Ellipsis) pour représenter le texte rogné. L'ellipse est affichée à l'intérieur de la boîte de contenu et réduit donc la quantité de texte affichée. S'il n'y a pas assez de place pour afficher l'ellipse, celle-ci est rognée.fade {{experimental_inline}}fade( <length> | <percentage> ) {{experimental_inline}}0 sont ramenées à 0. Les valeurs supérieures à la largeur de la boîte sont écrétées à la largeur de la boîte.<string> {{experimental_inline}}Cet exemple illustre différentes valeurs pour text-overflow, appliquée à un paragraphe, pour des textes écrits de gauche à droite et de droite à gauche.
- -<div class="ltr"> - <h2>Left to right text</h2> - <pre>clip</pre> - <p class="overflow-clip">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> - <pre>ellipsis</pre> - <p class="overflow-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> - <pre>" [..]"</pre> - <p class="overflow-string">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> -</div> - -<div class="rtl"> - <h2>Right to left text</h2> - <pre>clip</pre> - <p class="overflow-clip">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> - <pre>ellipsis</pre> - <p class="overflow-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> - <pre>" [..]"</pre> - <p class="overflow-string">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> -</div> -- -
p {
- width: 200px;
- border: 1px solid;
- padding: 2px 5px;
-
- /* Les deux règles suivantes sont nécessaires pour text-overflow */
- white-space: nowrap;
- overflow: hidden;
-}
-
-.overflow-clip {
- text-overflow: clip;
-}
-
-.overflow-ellipsis {
- text-overflow: ellipsis;
-}
-
-.overflow-string {
- text-overflow: " [..]";
-}
-
-body {
- display: flex;
- justify-content: space-around;
-}
-
-.ltr > p {
- direction: ltr;
-}
-
-.rtl > p {
- direction: rtl;
-}
-
-
-{{EmbedLiveSample('one-value_syntax', 600, 320)}}
- -Cette exemple illustre la syntaxe à deux valeurs pour text-overflow, où on peut définir un comportement de débordement différent pour le début et la fin du texte. Pour illustrer l'effet, on doit faire défiler la ligne et le début de la ligne est donc caché.
-<pre>clip clip</pre> -<p class="overflow-clip-clip">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> -<pre>clip ellipsis</pre> -<p class="overflow-clip-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> -<pre>ellipsis ellipsis</pre> -<p class="overflow-ellipsis-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> -<pre>ellipsis " [..]"</pre> -<p class="overflow-ellipsis-string">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> -- -
p {
- width: 200px;
- border: 1px solid;
- padding: 2px 5px;
-
- /* Les deux règles suivantes sont nécessaires pour text-overflow */
- white-space: nowrap;
- overflow: scroll;
-}
-
-.overflow-clip-clip {
- text-overflow: clip clip;
-}
-
-.overflow-clip-ellipsis {
- text-overflow: clip ellipsis;
-}
-
-.overflow-ellipsis-ellipsis {
- text-overflow: ellipsis ellipsis;
-}
-
-.overflow-ellipsis-string {
- text-overflow: ellipsis " [..]";
-}
-
-
-
-// On fait défiler chaque paragraphe afin que le début soit également caché
-const paras = document.querySelectorAll("p");
-
-for (let para of paras) {
- para.scroll(100, 0);
-}
-
-
-{{EmbedLiveSample('two-value_syntax', 600, 360)}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 UI', '#text-overflow', 'text-overflow')}} | -{{Spec2('CSS4 UI')}} | -Ajout des valeurs <string> et fade et de la fonction fade(). |
-
| {{SpecName('CSS3 Overflow', '#text-overflow', 'text-overflow')}} | -{{Spec2('CSS3 Overflow')}} | -Définition initiale. | -
Une version précédente de cette interface avait atteint le statut de Candidate Recommendation. Certaines fonctionnalités devaient être retirées et n'étaient pas listées parmi les fonctionnalités à risque, la spécification a donc été déchue au niveau Working Draft. Cela explique pourquoi les navigateurs ont implémenté cette propriété sans préfixe bien qu'elle ne soit pas une CR.
- -{{cssinfo}}
- -{{Compat("css.properties.text-overflow")}}
- -La propriété text-overflow définit la façon dont le contenu textuel qui dépasse d'une boîte est signalé pour les utilisateurs. Le texte peut être rogné (clipping), afficher une ellipse ('…', U+2026 Horizontal Ellipsis) ou afficher une chaîne de caractères choisie.
Le rognage se fera à la bordure de la boîte. Afin que le rognage se fasse plus tôt, à la limite des caractères, on peut utiliser la chaîne vide ('').
Cette propriété n'affecte que le contenu qui dépasse de la boîte englobante dans le sens de la progression en ligne. Par exemple, on ne parle pas ici du texte qui dépasserait vers le bas d'une boîte. Le texte peut dépasser lorsqu'on empêche le retour automatique à la ligne (par exemple avec white-space: nowrap) ou lorsqu'un seul mot est trop long pour tenir dans le conteneur.
Cette propriété CSS ne force pas le dépassement. Pour ce faire et afin que text-overflow soit appliqué, l'auteur devra ajouter des propriétés supplémentaires sur l'élément, notamment : {{cssxref("overflow")}} avec hidden et {{cssxref("white-space")}} avec nowrap.
/* On gère le dépassement en fin de ligne + - à droite en LTR, + - à gauche en RTL */ +text-overflow: clip; +text-overflow: ellipsis; +text-overflow: "…"; +text-overflow: fade; +text-overflow: fade(10px); +text-overflow: fade(5%); + +/* On gère le dépassement au début et + à la fin de la ligne. La directionnalité + n'a pas d'importance */ +text-overflow: clip ellipsis; +text-overflow: "…" "…"; +text-overflow: fade clip; +text-overflow: fade(10px) fade(10px); +text-overflow: fade(5%) fade(5%); + +/* Valeurs globales */ +text-overflow: inherit; +text-overflow: initial; +text-overflow: unset; ++ +
La propriété text-overflow peut être définie grâce à une ou deux valeurs.
Si une valeur est fournie, celle-ci indique le comportement du dépassement en fin de ligne (c'est-à-dire l'extrêmité droite pour les textes écrits de gauche à droite et l'extrêmité gauche pour les textes écrits de droite à gauche). Si deux valeurs sont fournies, la première précisera la comportement pour le dépassement à l'extrêmité gauche de la ligne et la seconde indiquera le comportement du dépassement pour l'extrêmité droite de la ligne.
+ +Chacune des valeurs se compose :
+ +clip, ellipsis, fadefade() à laquelle on passe une valeur de type {{cssxref("<length>")}} ou {{cssxref("<percentage>")}} qui permet de contrôler la distance d'effacement<string>.clip'') comme valeur pour cette propriété.ellipsis'…', U+2026 Horizontal Ellipsis) pour représenter le texte rogné. L'ellipse est affichée à l'intérieur de la boîte de contenu et réduit donc la quantité de texte affichée. S'il n'y a pas assez de place pour afficher l'ellipse, celle-ci est rognée.fade {{experimental_inline}}fade( <length> | <percentage> ) {{experimental_inline}}0 sont ramenées à 0. Les valeurs supérieures à la largeur de la boîte sont écrétées à la largeur de la boîte.<string> {{experimental_inline}}Cet exemple illustre différentes valeurs pour text-overflow, appliquée à un paragraphe, pour des textes écrits de gauche à droite et de droite à gauche.
+ +<div class="ltr"> + <h2>Left to right text</h2> + <pre>clip</pre> + <p class="overflow-clip">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> + <pre>ellipsis</pre> + <p class="overflow-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> + <pre>" [..]"</pre> + <p class="overflow-string">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> +</div> + +<div class="rtl"> + <h2>Right to left text</h2> + <pre>clip</pre> + <p class="overflow-clip">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> + <pre>ellipsis</pre> + <p class="overflow-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> + <pre>" [..]"</pre> + <p class="overflow-string">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> +</div> ++ +
p {
+ width: 200px;
+ border: 1px solid;
+ padding: 2px 5px;
+
+ /* Les deux règles suivantes sont nécessaires pour text-overflow */
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+.overflow-clip {
+ text-overflow: clip;
+}
+
+.overflow-ellipsis {
+ text-overflow: ellipsis;
+}
+
+.overflow-string {
+ text-overflow: " [..]";
+}
+
+body {
+ display: flex;
+ justify-content: space-around;
+}
+
+.ltr > p {
+ direction: ltr;
+}
+
+.rtl > p {
+ direction: rtl;
+}
+
+
+{{EmbedLiveSample('one-value_syntax', 600, 320)}}
+ +Cette exemple illustre la syntaxe à deux valeurs pour text-overflow, où on peut définir un comportement de débordement différent pour le début et la fin du texte. Pour illustrer l'effet, on doit faire défiler la ligne et le début de la ligne est donc caché.
+<pre>clip clip</pre> +<p class="overflow-clip-clip">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> +<pre>clip ellipsis</pre> +<p class="overflow-clip-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> +<pre>ellipsis ellipsis</pre> +<p class="overflow-ellipsis-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> +<pre>ellipsis " [..]"</pre> +<p class="overflow-ellipsis-string">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> ++ +
p {
+ width: 200px;
+ border: 1px solid;
+ padding: 2px 5px;
+
+ /* Les deux règles suivantes sont nécessaires pour text-overflow */
+ white-space: nowrap;
+ overflow: scroll;
+}
+
+.overflow-clip-clip {
+ text-overflow: clip clip;
+}
+
+.overflow-clip-ellipsis {
+ text-overflow: clip ellipsis;
+}
+
+.overflow-ellipsis-ellipsis {
+ text-overflow: ellipsis ellipsis;
+}
+
+.overflow-ellipsis-string {
+ text-overflow: ellipsis " [..]";
+}
+
+
+
+// On fait défiler chaque paragraphe afin que le début soit également caché
+const paras = document.querySelectorAll("p");
+
+for (let para of paras) {
+ para.scroll(100, 0);
+}
+
+
+{{EmbedLiveSample('two-value_syntax', 600, 360)}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 UI', '#text-overflow', 'text-overflow')}} | +{{Spec2('CSS4 UI')}} | +Ajout des valeurs <string> et fade et de la fonction fade(). |
+
| {{SpecName('CSS3 Overflow', '#text-overflow', 'text-overflow')}} | +{{Spec2('CSS3 Overflow')}} | +Définition initiale. | +
Une version précédente de cette interface avait atteint le statut de Candidate Recommendation. Certaines fonctionnalités devaient être retirées et n'étaient pas listées parmi les fonctionnalités à risque, la spécification a donc été déchue au niveau Working Draft. Cela explique pourquoi les navigateurs ont implémenté cette propriété sans préfixe bien qu'elle ne soit pas une CR.
+ +{{cssinfo}}
+ +{{Compat("css.properties.text-overflow")}}
+ +La propriété text-rendering donne de l'information au moteur de rendu sur ce qu'il doit optimiser lors de l'affichage du texte.
Le navigateur fait des compromis entre la vitesse, la lisibilité et la précision géométrique.
- -/* Avec un mot-clé */ -text-rendering: auto; -text-rendering: optimizeSpeed; -text-rendering: optimizeLegibility; -text-rendering: geometricPrecision; - -/* Valeurs globales */ -text-rendering: inherit; -text-rendering: initial; -text-rendering: unset; -- -
Note : La propriété text-rendering est une propriété SVG qui n'est définie dans aucun standard CSS. Toutefois, les navigateurs utilisant Gecko et WebKit permettent d'appliquer cette propriété à du contenu HTML ou XML sur Windows, Mac OS X et Linux.
Un effet très visible est : text-rendering : optimizeLegibility; qui active les ligatures (ff, fi, fl etc.) dans les textes en dessous de 20px pour certains polices (par exemple, Calibri, Candara, Constantia et Corbel de Microsoft, ou la famille DejaVu).
autooptimizeSpeedoptimizeLegibilitygeometricPrecisionLe navigateur privilégie la précision géométrique par rapport à la vitesse de rendu et la lisibilité. Certains aspects d'une police — comme le crénage — ne se mettent pas à l'échelle de manière linéaire, donc geometricPrecision peut rendre agréables à l'œil les textes utilisant ces polices.
Avec SVG, lorsque le texte est agrandi ou réduit, le navigateur calcule la taille finale du texte (qui est la taille de police définie et le facteur appliqué) et demande une police de cette taille calculée au système de police de la plateforme. Mais si vous demandez une police de taille 9 avec un facteur de 140 %, la taille résultante de 12,6 n'existe pas dans la système de polices, donc le navigateur arrondi la taille de police à 12 dans ce cas. Ce qui aboutit à une mise à l'échelle en escalier du texte.
- -Toutefois la propriété geometricPrecision — lorsqu'elle est complètement supportée par le moteur de rendu — permet de mettre à l'échelle le texte de manière continue. Pour les facteurs de mise à l'échelle élevés, il est possible d'obtenir un rendu de texte moins-que-joli, mais de la taille que vous attendez — et pas arrondi à la taille supportée par Windows ou Linux la plus proche.
WebKit applique précisément la valeur définie, mais Gecko traite la valeur de la même manière que optimizeLegibility.
optimizeLegibilityCet exemple illustre comment optimizeLegibility est automatiquement utilisé par les navigateurs lorsque font-size est inférieure à 20px.
.small { font: 19.9px "Times New Roman", "Georgia", "Palatino", serif; }
-.big { font: 20px "Times New Roman", "Georgia", "Palatino", serif; }
-
-<p class="small">LYoWAT - ff fi fl ffl</p> -<p class="big">LYoWAT - ff fi fl ffl</p>- -
{{EmbedLiveSample('Application_automatique_de_optimizeLegibility')}}
- -optimizeSpeed et optimizeLegibilityCet exemple illustre la différence d'apparence entre optimizeSpeed et optimizeLegibility (cette différence peut varier d'un navigateur à l'autre).
p { font: 1.5em "Times New Roman", "Georgia", "Palatino", serif }
-
-.speed { text-rendering: optimizeSpeed; }
-.legibility { text-rendering: optimizeLegibility; }
-
-<p class="speed">LYoWAT - ff fi fl ffl</p> -<p class="legibility">LYoWAT - ff fi fl ffl</p>- -
{{EmbedLiveSample('optimizeSpeed_et_optimizeLegibility')}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('SVG2', 'painting.html#TextRenderingProperty', 'text-rendering')}} | -{{Spec2('SVG2')}} | -Aucune modification. | -
| {{SpecName('SVG1.1', 'painting.html#TextRenderingProperty', 'text-rendering')}} | -{{Spec2('SVG1.1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-rendering")}}
diff --git a/files/fr/web/css/text-rendering/index.md b/files/fr/web/css/text-rendering/index.md new file mode 100644 index 0000000000..b15e049b62 --- /dev/null +++ b/files/fr/web/css/text-rendering/index.md @@ -0,0 +1,130 @@ +--- +title: text-rendering +slug: Web/CSS/text-rendering +tags: + - CSS + - Propriété + - Reference + - SVG +translation_of: Web/CSS/text-rendering +--- +La propriété text-rendering donne de l'information au moteur de rendu sur ce qu'il doit optimiser lors de l'affichage du texte.
Le navigateur fait des compromis entre la vitesse, la lisibilité et la précision géométrique.
+ +/* Avec un mot-clé */ +text-rendering: auto; +text-rendering: optimizeSpeed; +text-rendering: optimizeLegibility; +text-rendering: geometricPrecision; + +/* Valeurs globales */ +text-rendering: inherit; +text-rendering: initial; +text-rendering: unset; ++ +
Note : La propriété text-rendering est une propriété SVG qui n'est définie dans aucun standard CSS. Toutefois, les navigateurs utilisant Gecko et WebKit permettent d'appliquer cette propriété à du contenu HTML ou XML sur Windows, Mac OS X et Linux.
Un effet très visible est : text-rendering : optimizeLegibility; qui active les ligatures (ff, fi, fl etc.) dans les textes en dessous de 20px pour certains polices (par exemple, Calibri, Candara, Constantia et Corbel de Microsoft, ou la famille DejaVu).
autooptimizeSpeedoptimizeLegibilitygeometricPrecisionLe navigateur privilégie la précision géométrique par rapport à la vitesse de rendu et la lisibilité. Certains aspects d'une police — comme le crénage — ne se mettent pas à l'échelle de manière linéaire, donc geometricPrecision peut rendre agréables à l'œil les textes utilisant ces polices.
Avec SVG, lorsque le texte est agrandi ou réduit, le navigateur calcule la taille finale du texte (qui est la taille de police définie et le facteur appliqué) et demande une police de cette taille calculée au système de police de la plateforme. Mais si vous demandez une police de taille 9 avec un facteur de 140 %, la taille résultante de 12,6 n'existe pas dans la système de polices, donc le navigateur arrondi la taille de police à 12 dans ce cas. Ce qui aboutit à une mise à l'échelle en escalier du texte.
+ +Toutefois la propriété geometricPrecision — lorsqu'elle est complètement supportée par le moteur de rendu — permet de mettre à l'échelle le texte de manière continue. Pour les facteurs de mise à l'échelle élevés, il est possible d'obtenir un rendu de texte moins-que-joli, mais de la taille que vous attendez — et pas arrondi à la taille supportée par Windows ou Linux la plus proche.
WebKit applique précisément la valeur définie, mais Gecko traite la valeur de la même manière que optimizeLegibility.
optimizeLegibilityCet exemple illustre comment optimizeLegibility est automatiquement utilisé par les navigateurs lorsque font-size est inférieure à 20px.
.small { font: 19.9px "Times New Roman", "Georgia", "Palatino", serif; }
+.big { font: 20px "Times New Roman", "Georgia", "Palatino", serif; }
+
+<p class="small">LYoWAT - ff fi fl ffl</p> +<p class="big">LYoWAT - ff fi fl ffl</p>+ +
{{EmbedLiveSample('Application_automatique_de_optimizeLegibility')}}
+ +optimizeSpeed et optimizeLegibilityCet exemple illustre la différence d'apparence entre optimizeSpeed et optimizeLegibility (cette différence peut varier d'un navigateur à l'autre).
p { font: 1.5em "Times New Roman", "Georgia", "Palatino", serif }
+
+.speed { text-rendering: optimizeSpeed; }
+.legibility { text-rendering: optimizeLegibility; }
+
+<p class="speed">LYoWAT - ff fi fl ffl</p> +<p class="legibility">LYoWAT - ff fi fl ffl</p>+ +
{{EmbedLiveSample('optimizeSpeed_et_optimizeLegibility')}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('SVG2', 'painting.html#TextRenderingProperty', 'text-rendering')}} | +{{Spec2('SVG2')}} | +Aucune modification. | +
| {{SpecName('SVG1.1', 'painting.html#TextRenderingProperty', 'text-rendering')}} | +{{Spec2('SVG1.1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-rendering")}}
diff --git a/files/fr/web/css/text-shadow/index.html b/files/fr/web/css/text-shadow/index.html deleted file mode 100644 index 359a0acb0e..0000000000 --- a/files/fr/web/css/text-shadow/index.html +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: text-shadow -slug: Web/CSS/text-shadow -tags: - - CSS - - Propriété - - Reference -translation_of: Web/CSS/text-shadow ---- -La propriété text-shadow ajoute des ombres au texte. Elle accepte une liste d'ombres à appliquer au texte et aux décorations de l'élément. Chaque ombre est décrite par une certaine combinaison de décalages X et Y de l'élément, de rayon de flou et de couleur.
/* offset-x | offset-y | blur-radius | color */ -text-shadow: 1px 1px 2px black; - -/* color | offset-x | offset-y | blur-radius */ -text-shadow: #fc0 1px 0 10px; - -/* offset-x | offset-y | color */ -text-shadow: 5px 5px #558abb; - -/* color | offset-x | offset-y */ -text-shadow: white 2px 5px; - -/* offset-x | offset-y -/* Utiliser les défauts pour la couleur et le rayon de flou */ -text-shadow: 5px 10px; - -/* Valeurs globales */ -text-shadow: inherit; -text-shadow: initial; -text-shadow: unset; -- -
Cette propriété est spécifiée comme une liste d'ombres séparées par des virgules.
- -Chaque ombre est spécifiée par deux ou trois valeurs <length>, suivies d'une valeur <color>. Les deux premières valeurs <length> sont les valeurs <decalage-x> et <decalage-y>. La troisième valeur <length>, facultative, est le <rayon-de-flou>. La valeur <color> est la couleur de l'ombre.
Lorsque plus d'une ombre est indiquée, les ombres sont appliquées d'avant en arrière, avec la première ombre spécifiée sur le dessus.
- -Cette propriété s'applique aux deux pseudo-éléments {{cssxref("::first-line")}} et {{cssxref("::first-letter")}}.
- -<decalage-x> définit la distance horizontale ; une valeur négative place l'ombre à gauche du texte. <decalage-y> définit la distance verticale ; une valeur négative place l'ombre au-dessus du texte. Si les deux valeurs sont à 0, l'ombre sera placée exactement derrière le texte, bien qu'elle puisse être partiellement visible du fait de l'effet du <rayon-de-flou>).0..red-text-shadow {
- text-shadow: red 0 -2px;
-}
-
-<p class="red-text-shadow">Sed ut perspiciatis unde omnis iste - natus error sit voluptatem accusantium doloremque laudantium, - totam rem aperiam, eaque ipsa quae ab illo inventore.</p>- -
{{EmbedLiveSample('ombre_simple', '660px', '90px')}}
- -.white-text-with-blue-shadow {
- text-shadow: 1px 1px 2px black, 0 0 1em blue, 0 0 0.2em blue;
- color: white;
- font: 1.5em Georgia, serif;
-}
-
-<p class="white-text-with-blue-shadow">Sed ut perspiciatis unde omnis iste - natus error sit voluptatem accusantium doloremque laudantium, - totam rem aperiam, eaque ipsaquae ab illo inventore.</p>- -
{{EmbedLiveSample('ombres_multiples', '660px', '170px')}}
- -| Spécification | -Statut | -Commentaire | -
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'text-shadow')}} | -{{Spec2('CSS3 Transitions')}} | -Spécifie text-shadow comme animable. |
-
| {{SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow')}} | -{{Spec2('CSS3 Text Decoration')}} | -La propriété CSS text-shadow était incorrectement définie dans CSS2 et fut abandonnée dans CSS2 (Level 1). La spéc CSS Text Module Level 3 a raffiné la syntaxe. Ensuite, elle a été déplacée dans CSS Text Decoration Module Level 3. |
-
{{cssinfo}}
- -{{Compat("css.properties.text-shadow")}}
- -text-shadow avec une couleur spécifiée et une ext-shadow sans couleur spécifiée ({{bug(726550)}}). Cela a été corrigé dans le nouveau moteur CSS (aussi connu comme Quantum CSS ou Stylo), prévu pour être disponible dans Firefox 57.La propriété text-shadow ajoute des ombres au texte. Elle accepte une liste d'ombres à appliquer au texte et aux décorations de l'élément. Chaque ombre est décrite par une certaine combinaison de décalages X et Y de l'élément, de rayon de flou et de couleur.
/* offset-x | offset-y | blur-radius | color */ +text-shadow: 1px 1px 2px black; + +/* color | offset-x | offset-y | blur-radius */ +text-shadow: #fc0 1px 0 10px; + +/* offset-x | offset-y | color */ +text-shadow: 5px 5px #558abb; + +/* color | offset-x | offset-y */ +text-shadow: white 2px 5px; + +/* offset-x | offset-y +/* Utiliser les défauts pour la couleur et le rayon de flou */ +text-shadow: 5px 10px; + +/* Valeurs globales */ +text-shadow: inherit; +text-shadow: initial; +text-shadow: unset; ++ +
Cette propriété est spécifiée comme une liste d'ombres séparées par des virgules.
+ +Chaque ombre est spécifiée par deux ou trois valeurs <length>, suivies d'une valeur <color>. Les deux premières valeurs <length> sont les valeurs <decalage-x> et <decalage-y>. La troisième valeur <length>, facultative, est le <rayon-de-flou>. La valeur <color> est la couleur de l'ombre.
Lorsque plus d'une ombre est indiquée, les ombres sont appliquées d'avant en arrière, avec la première ombre spécifiée sur le dessus.
+ +Cette propriété s'applique aux deux pseudo-éléments {{cssxref("::first-line")}} et {{cssxref("::first-letter")}}.
+ +<decalage-x> définit la distance horizontale ; une valeur négative place l'ombre à gauche du texte. <decalage-y> définit la distance verticale ; une valeur négative place l'ombre au-dessus du texte. Si les deux valeurs sont à 0, l'ombre sera placée exactement derrière le texte, bien qu'elle puisse être partiellement visible du fait de l'effet du <rayon-de-flou>).0..red-text-shadow {
+ text-shadow: red 0 -2px;
+}
+
+<p class="red-text-shadow">Sed ut perspiciatis unde omnis iste + natus error sit voluptatem accusantium doloremque laudantium, + totam rem aperiam, eaque ipsa quae ab illo inventore.</p>+ +
{{EmbedLiveSample('ombre_simple', '660px', '90px')}}
+ +.white-text-with-blue-shadow {
+ text-shadow: 1px 1px 2px black, 0 0 1em blue, 0 0 0.2em blue;
+ color: white;
+ font: 1.5em Georgia, serif;
+}
+
+<p class="white-text-with-blue-shadow">Sed ut perspiciatis unde omnis iste + natus error sit voluptatem accusantium doloremque laudantium, + totam rem aperiam, eaque ipsaquae ab illo inventore.</p>+ +
{{EmbedLiveSample('ombres_multiples', '660px', '170px')}}
+ +| Spécification | +Statut | +Commentaire | +
|---|---|---|
| {{SpecName('CSS3 Transitions', '#animatable-css', 'text-shadow')}} | +{{Spec2('CSS3 Transitions')}} | +Spécifie text-shadow comme animable. |
+
| {{SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow')}} | +{{Spec2('CSS3 Text Decoration')}} | +La propriété CSS text-shadow était incorrectement définie dans CSS2 et fut abandonnée dans CSS2 (Level 1). La spéc CSS Text Module Level 3 a raffiné la syntaxe. Ensuite, elle a été déplacée dans CSS Text Decoration Module Level 3. |
+
{{cssinfo}}
+ +{{Compat("css.properties.text-shadow")}}
+ +text-shadow avec une couleur spécifiée et une ext-shadow sans couleur spécifiée ({{bug(726550)}}). Cela a été corrigé dans le nouveau moteur CSS (aussi connu comme Quantum CSS ou Stylo), prévu pour être disponible dans Firefox 57.La propriété text-size-adjust permet de contrôler l'algorithme d'amplification du texte sur certains appareils mobiles. Cette propriété n'est pas standard et doit donc être préfixée : -moz-text-size-adjust, -webkit-text-size-adjust, and -ms-text-size-adjust.
/* Valeur avec un mot-clé */ -text-size-adjust: none; -text-size-adjust: auto; - -/* Valeurs proportionnelles */ -text-size-adjust: 80%; - -/* Valeurs globales */ -text-size-adjust: inherit; -text-size-adjust: initial; -text-size-adjust: unset; -- -
De nombreuses pages web n'ont pas été conçues pour le mobile et les navigateurs mobiles n'affichent pas les pages web de la même façon que les navigateurs de bureau. Plutôt que d'afficher une page web dans la largeur de l'écran, un navigateur mobile sera parfois amené à l'afficher dans une zone d'affichage beaucoup plus large que l'écran. Pour gérer la largeur de l'écran, le navigateur n'affichera qu'une partie ou rétrécira la taille de la zone d'affichage.
- -Par essence, cela signifie que, sur mobiles, on ne voit qu'une portion rectangulaire de la page ou que la page a l'air dézoomée (et apparaît donc plus petite).
- -Cependant, lorsque l'utilisateur zoome jusqu'à ce que le texte soit lisible, on a alors une barre horizontale de défilement qui apparaît car le texte est large que la largeur de l'écran et l'ergonomie est donc détériorée car l'utilisateur doit défiler à la fin et au début à chaque passage à la ligne. Pour éviter ce problème, plusieurs navigateurs mobiles implémentent un algorithme de gonflement (inflation). Lorsqu'un élément reçoit le focus, qu'il contient du texte et qu'il utilise 100 % de la largeur de l'écran, la taille du texte est augmentée afin qu'il soit lisible, sans pour autant modifier la disposition générale (ce qui évite d'avoir à recourir à une barre de défilement horizontale).
- -La propriété text-size-adjust permet aux auteurs de ne pas suivre ce comportement si les pages web ont été adaptées pour les différents formats d'écran.
La propriété text-size-adjust est définie avec le mot-clé none ou le mot-clé auto ou avec une valeur de type <percentage>.
noneautonone utilisée précédemment.<percentage>auto et ajoute comme information le taux d'amplification à utiliser sur la police avec l'algorithme.| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName("CSS Text Size Adjust", "#adjustment-control", "text-size-adjust")}} | -{{Spec2("CSS Text Size Adjust")}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-size-adjust")}}
- -La propriété text-size-adjust permet de contrôler l'algorithme d'amplification du texte sur certains appareils mobiles. Cette propriété n'est pas standard et doit donc être préfixée : -moz-text-size-adjust, -webkit-text-size-adjust, and -ms-text-size-adjust.
/* Valeur avec un mot-clé */ +text-size-adjust: none; +text-size-adjust: auto; + +/* Valeurs proportionnelles */ +text-size-adjust: 80%; + +/* Valeurs globales */ +text-size-adjust: inherit; +text-size-adjust: initial; +text-size-adjust: unset; ++ +
De nombreuses pages web n'ont pas été conçues pour le mobile et les navigateurs mobiles n'affichent pas les pages web de la même façon que les navigateurs de bureau. Plutôt que d'afficher une page web dans la largeur de l'écran, un navigateur mobile sera parfois amené à l'afficher dans une zone d'affichage beaucoup plus large que l'écran. Pour gérer la largeur de l'écran, le navigateur n'affichera qu'une partie ou rétrécira la taille de la zone d'affichage.
+ +Par essence, cela signifie que, sur mobiles, on ne voit qu'une portion rectangulaire de la page ou que la page a l'air dézoomée (et apparaît donc plus petite).
+ +Cependant, lorsque l'utilisateur zoome jusqu'à ce que le texte soit lisible, on a alors une barre horizontale de défilement qui apparaît car le texte est large que la largeur de l'écran et l'ergonomie est donc détériorée car l'utilisateur doit défiler à la fin et au début à chaque passage à la ligne. Pour éviter ce problème, plusieurs navigateurs mobiles implémentent un algorithme de gonflement (inflation). Lorsqu'un élément reçoit le focus, qu'il contient du texte et qu'il utilise 100 % de la largeur de l'écran, la taille du texte est augmentée afin qu'il soit lisible, sans pour autant modifier la disposition générale (ce qui évite d'avoir à recourir à une barre de défilement horizontale).
+ +La propriété text-size-adjust permet aux auteurs de ne pas suivre ce comportement si les pages web ont été adaptées pour les différents formats d'écran.
La propriété text-size-adjust est définie avec le mot-clé none ou le mot-clé auto ou avec une valeur de type <percentage>.
noneautonone utilisée précédemment.<percentage>auto et ajoute comme information le taux d'amplification à utiliser sur la police avec l'algorithme.| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName("CSS Text Size Adjust", "#adjustment-control", "text-size-adjust")}} | +{{Spec2("CSS Text Size Adjust")}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-size-adjust")}}
+ +La propriété text-transform définit la façon d'utiliser les lettres capitales pour le texte d'un élément. Cela permet que le texte soit écrit uniquement en majuscules, minuscules ou que chaque mot commence par une capitale. Cela permet également d'améliorer la lisibilité pour les textes avec des annotations Ruby.
La propriété text-transform gère les différences liées aux langues, par exemple :
Pour les langues turques comme le turc (tr), l'azéri (az), le tatar de Crimée (crh), le tatar de Volga (tt) et le bachkir (ba), il existe deux sortes de i, avec et sans le point. Les majuscules correspondantes sont également différentes : i/İ et ı/I.
En allemand (de), le ß devient SS en majuscule.
En néerlandais (nl), le digraphe ij devient IJ, y compris avec text-transform: capitalize qui ne met que la première lettre de chaque mot en majuscule.
En grec (el), les voyelles perdent leur accent lorsque tout le mot est écrit en capitales (ά/Α) à l'exception du eta disjonctif (ή/Ή). Les diphtongues avec un accent sur la première voyelle perde l'accent et récupère un tréma sur la seconde voyelle (άι/ΑΪ). La lettre sigma a deux formes minuscules : σ et ς. ς est utilisée uniquement lorsque c'est la dernière lettre du mot. Lorsque l'agent utilisateur applique text-transform: lowercase à un sigma majuscule (Σ), il doit choisir l'une des deux formes selon le contexte.
text-transform: uppercase à ar aon tslí, on obtiendra AR AON tSLÍ et non AR AON TSLÍ. Dans certains cas, un trait d'union peut être retiré lors du passage en majuscules : an t-uisce deviendra AN tUISCE (le trait-d'union sera bien réinséré avec text-transform: lowercase)La langue d'un document HTML est définie par l'attribut XML xml:lang, qui a la priorité sur l'attribut global lang.
Le support de ces différents cas peut varier d'un navigateur à un autre. Pour plus de détails, voir le tableau de compatibilité des navigateurs.
- -/* Avec un mot-clé */ -text-transform: none; -text-transform: capitalize; -text-transform: uppercase; -text-transform: lowercase; -text-transform: full-width; -text-transform: full-size-kana; - -/* Valeurs globales */ -text-transform: inherit; -text-transform: initial; -text-transform: unset; -- -
capitalizeEn utilisant ce mot-clé, la première lettre de chaque mot sera affichée en capitale. Les autres caractères ne seront pas modifiés et conserveront ainsi la forme originale, contenue dans le texte de l'élément. Ici, une lettre peut être n'importe quel caractère Unicode qui fait partie des catégories génériques Lettre. Cela exclue donc les symboles de ponctuations qui peuvent être utilisés en début de mot.
- -Note : Le mot-clé capitalize n'était pas complètement spécifié avec CSS 1 et CSS 2.1. Il y avait certaines différences entre les navigateurs : Firefox considèrait que - et _ étaient des lettres ; Webkit et Gecko considéraient que les symboles lettrés comme ⓐ étaient de vraies lettres ; Internet Explorer 9 était le plus proche de la définition donnée par CSS2 mais il y avait certains cas étranges. Grâce à CSS Text Level 3, ces ambiguités sont levées. Dans le tableau, la ligne capitalize traduit le support de cette spécification.
uppercaselowercasenonefull-width {{experimental_inline}}full-size-kana<code>none :</code> -<p class="sans_effet"> - Lorem ipsum dolor sit amet, consectetur adipisicing elit -</p> - -<code>capitalize :</code> -<p class="cap"> - (Voici) “un” –rapide– -test- ⓙkl -</p> - -</code> uppercase :</code> -<p class="majuscules"> - Cependant d'Artagnan voulut d'abord se rendre compte de - la physionomie de l'impertinent qui se moquait de lui. -</p> - -<code>full-width :</code> -<p class="mix"> - ABCDEF</br> - 最初に彼を嘲 -</p> - -<code>full-size-kana :</code> -<p class="full-size-kana">ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ</p> -<p>ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ</p> - -- -
p.sans_effet {
- text-transform: none;
-}
-
-p.cap {
- text-transform: capitalize;
-}
-
-p.majuscules {
- text-transform: uppercase;
-}
-
-p.mix {
- text-transform: full-width;
-}
-
-p.full-size-kana {
- text-transform: full-size-kana;
-}
-
-
-
-{{EmbedLiveSample("Exemples","100%","500")}}
- -De grandes portions de texte utilisant text-transform avec la valeur uppercase peuvent être difficilement lisibles par les personnes dyslexiques ou souffrant de problèmes cognitifs.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text', '#text-transform', 'text-transform')}} | -{{Spec2('CSS3 Text')}} | -Par rapport à {{SpecName('CSS2.1', 'text.html#caps-prop', 'text-transform')}}, la spécification s'étend aux caractères Unicode des catégories générales Nombre et Lettre. Le comportement de capitalize est modifié pour ignorer les éventuels symboles ou caractères de ponctuations utilisés. Les mots-clés full-width et full-size-kana sont ajoutés afin de pouvoir mélanger harmonieusement les caractères alphabétiques et les caractères idéographiques. |
-
| {{SpecName('CSS2.1', 'text.html#caps-prop', 'text-transform')}} | -{{Spec2('CSS2.1')}} | -Par rapport à {{SpecName('CSS1', '#text-transform', 'text-transform')}}, étend la spécifications aux lettres non latines et aux scripts bicaméraux. | -
| {{SpecName('CSS1', '#text-transform', 'text-transform')}} | -{{Spec2('CSS1')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-transform")}}
- -La propriété text-transform définit la façon d'utiliser les lettres capitales pour le texte d'un élément. Cela permet que le texte soit écrit uniquement en majuscules, minuscules ou que chaque mot commence par une capitale. Cela permet également d'améliorer la lisibilité pour les textes avec des annotations Ruby.
La propriété text-transform gère les différences liées aux langues, par exemple :
Pour les langues turques comme le turc (tr), l'azéri (az), le tatar de Crimée (crh), le tatar de Volga (tt) et le bachkir (ba), il existe deux sortes de i, avec et sans le point. Les majuscules correspondantes sont également différentes : i/İ et ı/I.
En allemand (de), le ß devient SS en majuscule.
En néerlandais (nl), le digraphe ij devient IJ, y compris avec text-transform: capitalize qui ne met que la première lettre de chaque mot en majuscule.
En grec (el), les voyelles perdent leur accent lorsque tout le mot est écrit en capitales (ά/Α) à l'exception du eta disjonctif (ή/Ή). Les diphtongues avec un accent sur la première voyelle perde l'accent et récupère un tréma sur la seconde voyelle (άι/ΑΪ). La lettre sigma a deux formes minuscules : σ et ς. ς est utilisée uniquement lorsque c'est la dernière lettre du mot. Lorsque l'agent utilisateur applique text-transform: lowercase à un sigma majuscule (Σ), il doit choisir l'une des deux formes selon le contexte.
text-transform: uppercase à ar aon tslí, on obtiendra AR AON tSLÍ et non AR AON TSLÍ. Dans certains cas, un trait d'union peut être retiré lors du passage en majuscules : an t-uisce deviendra AN tUISCE (le trait-d'union sera bien réinséré avec text-transform: lowercase)La langue d'un document HTML est définie par l'attribut XML xml:lang, qui a la priorité sur l'attribut global lang.
Le support de ces différents cas peut varier d'un navigateur à un autre. Pour plus de détails, voir le tableau de compatibilité des navigateurs.
+ +/* Avec un mot-clé */ +text-transform: none; +text-transform: capitalize; +text-transform: uppercase; +text-transform: lowercase; +text-transform: full-width; +text-transform: full-size-kana; + +/* Valeurs globales */ +text-transform: inherit; +text-transform: initial; +text-transform: unset; ++ +
capitalizeEn utilisant ce mot-clé, la première lettre de chaque mot sera affichée en capitale. Les autres caractères ne seront pas modifiés et conserveront ainsi la forme originale, contenue dans le texte de l'élément. Ici, une lettre peut être n'importe quel caractère Unicode qui fait partie des catégories génériques Lettre. Cela exclue donc les symboles de ponctuations qui peuvent être utilisés en début de mot.
+ +Note : Le mot-clé capitalize n'était pas complètement spécifié avec CSS 1 et CSS 2.1. Il y avait certaines différences entre les navigateurs : Firefox considèrait que - et _ étaient des lettres ; Webkit et Gecko considéraient que les symboles lettrés comme ⓐ étaient de vraies lettres ; Internet Explorer 9 était le plus proche de la définition donnée par CSS2 mais il y avait certains cas étranges. Grâce à CSS Text Level 3, ces ambiguités sont levées. Dans le tableau, la ligne capitalize traduit le support de cette spécification.
uppercaselowercasenonefull-width {{experimental_inline}}full-size-kana<code>none :</code> +<p class="sans_effet"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit +</p> + +<code>capitalize :</code> +<p class="cap"> + (Voici) “un” –rapide– -test- ⓙkl +</p> + +</code> uppercase :</code> +<p class="majuscules"> + Cependant d'Artagnan voulut d'abord se rendre compte de + la physionomie de l'impertinent qui se moquait de lui. +</p> + +<code>full-width :</code> +<p class="mix"> + ABCDEF</br> + 最初に彼を嘲 +</p> + +<code>full-size-kana :</code> +<p class="full-size-kana">ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ</p> +<p>ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ</p> + ++ +
p.sans_effet {
+ text-transform: none;
+}
+
+p.cap {
+ text-transform: capitalize;
+}
+
+p.majuscules {
+ text-transform: uppercase;
+}
+
+p.mix {
+ text-transform: full-width;
+}
+
+p.full-size-kana {
+ text-transform: full-size-kana;
+}
+
+
+
+{{EmbedLiveSample("Exemples","100%","500")}}
+ +De grandes portions de texte utilisant text-transform avec la valeur uppercase peuvent être difficilement lisibles par les personnes dyslexiques ou souffrant de problèmes cognitifs.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text', '#text-transform', 'text-transform')}} | +{{Spec2('CSS3 Text')}} | +Par rapport à {{SpecName('CSS2.1', 'text.html#caps-prop', 'text-transform')}}, la spécification s'étend aux caractères Unicode des catégories générales Nombre et Lettre. Le comportement de capitalize est modifié pour ignorer les éventuels symboles ou caractères de ponctuations utilisés. Les mots-clés full-width et full-size-kana sont ajoutés afin de pouvoir mélanger harmonieusement les caractères alphabétiques et les caractères idéographiques. |
+
| {{SpecName('CSS2.1', 'text.html#caps-prop', 'text-transform')}} | +{{Spec2('CSS2.1')}} | +Par rapport à {{SpecName('CSS1', '#text-transform', 'text-transform')}}, étend la spécifications aux lettres non latines et aux scripts bicaméraux. | +
| {{SpecName('CSS1', '#text-transform', 'text-transform')}} | +{{Spec2('CSS1')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-transform")}}
+ +La propriété CSS text-underline-offset définit le décalage de la ligne de décoration du texte par rapport à sa position originale.
Note : text-underline-offset n'est pas une propriété détaillée de {{cssxref('text-decoration')}}. Bien qu'un élément puisse avoir plusieurs lignes décoratives, text-underline-offset n'aura qu'un impact sur le soulignage (et pas sur les autres lignes telles que celles fournies par {{cssxref('text-decoration-line')}} avec overline ou line-through).
/* Valeur simple */ -text-underline-offset: none; -text-underline-offset: from-font; -text-underline-offset: 0.2em; - -/* Valeurs globales */ -text-underline-offset: inherit; -text-underline-offset: initial; -text-underline-offset: unset; -- -
La propriété text-underline-offset est définie avec le mot-clé none ou avec une valeur de la liste suivante.
autofrom-fontauto.<length>em comme unité afin que le décalage suive la taille de la police (quand on zoome par exemple).p {
- text-decoration-line: underline;
- text-decoration-style: wavy;
- text-decoration-color: red;
- text-underline-offset: 1em;
-}
-
-.deuxlignes{
- text-decoration-line: underline overline;
-}
-
-<p class="uneligne"> - Voici un texte souligné avec une ligne ondulée rouge ! -</p> -<p class="deuxlignes"> - Ce texte a une ligne en dessous et une ligne au dessus. - Seule la ligne du dessous est déplacée. -</p>- -
{{EmbedLiveSample('Exemples', '', '', '')}}
- -| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Text Decoration', '#underline-offset', 'text-underline-offset')}} | -{{Spec2('CSS4 Text Decoration')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-underline-offset")}}
- -La propriété CSS text-underline-offset définit le décalage de la ligne de décoration du texte par rapport à sa position originale.
Note : text-underline-offset n'est pas une propriété détaillée de {{cssxref('text-decoration')}}. Bien qu'un élément puisse avoir plusieurs lignes décoratives, text-underline-offset n'aura qu'un impact sur le soulignage (et pas sur les autres lignes telles que celles fournies par {{cssxref('text-decoration-line')}} avec overline ou line-through).
/* Valeur simple */ +text-underline-offset: none; +text-underline-offset: from-font; +text-underline-offset: 0.2em; + +/* Valeurs globales */ +text-underline-offset: inherit; +text-underline-offset: initial; +text-underline-offset: unset; ++ +
La propriété text-underline-offset est définie avec le mot-clé none ou avec une valeur de la liste suivante.
autofrom-fontauto.<length>em comme unité afin que le décalage suive la taille de la police (quand on zoome par exemple).p {
+ text-decoration-line: underline;
+ text-decoration-style: wavy;
+ text-decoration-color: red;
+ text-underline-offset: 1em;
+}
+
+.deuxlignes{
+ text-decoration-line: underline overline;
+}
+
+<p class="uneligne"> + Voici un texte souligné avec une ligne ondulée rouge ! +</p> +<p class="deuxlignes"> + Ce texte a une ligne en dessous et une ligne au dessus. + Seule la ligne du dessous est déplacée. +</p>+ +
{{EmbedLiveSample('Exemples', '', '', '')}}
+ +| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Text Decoration', '#underline-offset', 'text-underline-offset')}} | +{{Spec2('CSS4 Text Decoration')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-underline-offset")}}
+ +La propriété text-underline-position définit la position du soulignement utilisé lorsque la propriété {{cssxref("text-decoration")}} prend la valeur underline.
/* Avec un mot-clé */ -text-underline-position: auto; -text-underline-position: under; -text-underline-position: left; -text-underline-position: right; - -/* Avec plusieurs mots-clés */ -text-underline-position: under left; -text-underline-position: right under; - -/* Valeurs globales */ -text-underline-position: inherit; -text-underline-position: initial; -text-underline-position: unset; -- -
Cette propriété est héritée sur les différents éléments et n'est pas réinitialisée avec la propriété raccourcie {{cssxref("text-decoration")}}, ce qui permet de la définir simplement pour l'ensemble du document.
- -:root {
- /* Une meilleure règle par défaut pour un document */
- /* avec de nombreuses formules chimiques */
- text-underline-position: under;
-}
-
-
-autounder et alphabetic.underleftunder.rightunder.auto-pos{{non-standard_inline}}auto et c'est ce dernier qui doit être utilisé à la place.above{{non-standard_inline}}auto aura un effet semblable.below{{non-standard_inline}}auto aura un effet semblable.<p class="chimique"> - C<sub>6</sub>H<sub>12</sub>O<sub>6</sub> -</p> -<p class="defaut"> - Et là avec des <sub>indices</sub> - et du jambage -</p> -- -
.chimique {
- text-decoration: underline;
- text-underline-position: under;
-}
-
-.defaut {
- text-decoration: underline;
- text-underline-position: auto;
-}
-
-{{EmbedLiveSample("Exemples","100%","100%")}}
- -| Spécification | -Statut | -Commentaires | -
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-underline-position-property', 'text-underline-position')}} | -{{Spec2('CSS3 Text Decoration')}} | -Définition initiale. | -
{{cssinfo}}
- -{{Compat("css.properties.text-underline-position")}}
- -La propriété text-underline-position définit la position du soulignement utilisé lorsque la propriété {{cssxref("text-decoration")}} prend la valeur underline.
/* Avec un mot-clé */ +text-underline-position: auto; +text-underline-position: under; +text-underline-position: left; +text-underline-position: right; + +/* Avec plusieurs mots-clés */ +text-underline-position: under left; +text-underline-position: right under; + +/* Valeurs globales */ +text-underline-position: inherit; +text-underline-position: initial; +text-underline-position: unset; ++ +
Cette propriété est héritée sur les différents éléments et n'est pas réinitialisée avec la propriété raccourcie {{cssxref("text-decoration")}}, ce qui permet de la définir simplement pour l'ensemble du document.
+ +:root {
+ /* Une meilleure règle par défaut pour un document */
+ /* avec de nombreuses formules chimiques */
+ text-underline-position: under;
+}
+
+
+autounder et alphabetic.underleftunder.rightunder.auto-pos{{non-standard_inline}}auto et c'est ce dernier qui doit être utilisé à la place.above{{non-standard_inline}}auto aura un effet semblable.below{{non-standard_inline}}auto aura un effet semblable.<p class="chimique"> + C<sub>6</sub>H<sub>12</sub>O<sub>6</sub> +</p> +<p class="defaut"> + Et là avec des <sub>indices</sub> + et du jambage +</p> ++ +
.chimique {
+ text-decoration: underline;
+ text-underline-position: under;
+}
+
+.defaut {
+ text-decoration: underline;
+ text-underline-position: auto;
+}
+
+{{EmbedLiveSample("Exemples","100%","100%")}}
+ +| Spécification | +Statut | +Commentaires | +
|---|---|---|
| {{SpecName('CSS3 Text Decoration', '#text-underline-position-property', 'text-underline-position')}} | +{{Spec2('CSS3 Text Decoration')}} | +Définition initiale. | +
{{cssinfo}}
+ +{{Compat("css.properties.text-underline-position")}}
+ +Le type de donnée <time-percentage> représente une valeur qui peut être de type {{Cssxref("time")}} ou une valeur qui peut être de type {{Cssxref("percentage")}}.
Se référer à la documentation des types {{Cssxref("time")}} et {{Cssxref("percentage")}} pour plus de détails sur les syntaxes possibles pour chacun de ces types.
- -calc()Lorsqu'une valeur de type <time-percentage> est autorisée dans une déclaration, cela signifie que le pourcentage sera résolu comme un temps et qu'il peut donc être utilisée dans une expression {{Cssxref("calc()")}}.
| Spécification | -État | -Commentaires | -
|---|---|---|
| {{SpecName('CSS4 Values', '#mixed-percentages', '<time-percentage>')}} | -{{Spec2('CSS4 Values')}} | -- |
| {{SpecName('CSS3 Values', '#mixed-percentages', '<time-percentage>')}} | -{{Spec2('CSS3 Values')}} | -Définition du type <time-percentage>. Ajout de calc() |
-
{{Compat("css.types.time-percentage")}}
diff --git a/files/fr/web/css/time-percentage/index.md b/files/fr/web/css/time-percentage/index.md new file mode 100644 index 0000000000..02f8e4a42a --- /dev/null +++ b/files/fr/web/css/time-percentage/index.md @@ -0,0 +1,48 @@ +--- +title:Le type de donnée <time-percentage> représente une valeur qui peut être de type {{Cssxref("time")}} ou une valeur qui peut être de type {{Cssxref("percentage")}}.
Se référer à la documentation des types {{Cssxref("time")}} et {{Cssxref("percentage")}} pour plus de détails sur les syntaxes possibles pour chacun de ces types.
+ +calc()Lorsqu'une valeur de type <time-percentage> est autorisée dans une déclaration, cela signifie que le pourcentage sera résolu comme un temps et qu'il peut donc être utilisée dans une expression {{Cssxref("calc()")}}.
| Spécification | +État | +Commentaires | +
|---|---|---|
| {{SpecName('CSS4 Values', '#mixed-percentages', '<time-percentage>')}} | +{{Spec2('CSS4 Values')}} | ++ |
| {{SpecName('CSS3 Values', '#mixed-percentages', '<time-percentage>')}} | +{{Spec2('CSS3 Values')}} | +Définition du type <time-percentage>. Ajout de calc() |
+
{{Compat("css.types.time-percentage")}}
diff --git a/files/fr/web/css/time/index.html b/files/fr/web/css/time/index.html deleted file mode 100644 index 79b98d327e..0000000000 --- a/files/fr/web/css/time/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: