Propriétés CSS liées à la transparence
Cet article explique les propriétés CSS liées à la transparence.
Vous pouvez apprendre l'utilisation et la syntaxe des propriétés opacity
, z-index
et clip-path
.
YouTube Video
HTML pour l'aperçu
css-opacity.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-opacity.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties Related to Transparency</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>CSS Properties Related to Transparency</h2>
20 </header>
21 <article>
22 <h3>opacity</h3>
23 <section>
24 <header><h4>opacity: 1</h4></header>
25 <section class="sample-view">
26 <div class="opaque-box">Opaque</div>
27 </section>
28 <header><h4>opacity: 0.5</h4></header>
29 <section class="sample-view">
30 <div class="semi-transparent-box">Semi-transparent</div>
31 </section>
32 <header><h4>opacity: 0</h4></header>
33 <section class="sample-view">
34 <div class="transparent-box">Transparent</div>
35 </section>
36 <header><h4>transition: opacity 2s ease-in-out</h4></header>
37 <section class="sample-view">
38 <div class="opacity-transition-box">Opacity with Transition (Fade out on hover)</div>
39 </section>
40 <header><h4>Parent & Child Element</h4></header>
41 <section class="sample-view">
42 <div class="opacity-parent">
43 Parent Element & <span class="opacity-child">Child Element</span>
44 </div>
45 </section>
46 </section>
47 </article>
48 <article>
49 <h3>z-index</h3>
50 <section>
51 <div class="z-index-box1">1</div>
52 <div class="z-index-box2">
53 <div class="z-index-box2-1">2-1</div>
54 2
55 </div>
56 <div class="z-index-box3">3</div>
57 </section>
58 </article>
59 <article>
60 <h3>clip-path</h3>
61 <section>
62 <h4>Clip-path Property Examples</h4>
63 <header><h4>clip-path: circle(50% at 50% 50%)</h4></header>
64 <section class="sample-view">
65 <div class="clip-path-circle">Circle</div>
66 </section>
67 <header><h4>clip-path: ellipse(50% 30% at 50% 50%)</h4></header>
68 <section class="sample-view">
69 <div class="clip-path-ellipse">Ellipse</div>
70 </section>
71 <header><h4>clip-path: polygon(50% 0%, 100% 100%, 0% 100%)</h4></header>
72 <section class="sample-view">
73 <div class="clip-path-polygon">Polygon</div>
74 </section>
75 <header><h4>clip-path: inset(10% 20% 30% 40%)</h4></header>
76 <section class="sample-view">
77 <div class="clip-path-inset">Inset</div>
78 </section>
79 <header><h4>clip-path: url(#myClip)</h4></header>
80 <section class="sample-view">
81 <div class="clip-path-url">Url</div>
82 </section>
83 </section>
84 <svg width="0" height="0">
85 <clipPath id="myClip">
86 <circle cx="50" cy="50" r="40" />
87 </clipPath>
88 </svg>
89 </article>
90 </main>
91</body>
92</html>
Effets de filtre
Propriété opacity
1.opaque-box {
2 background-color: skyblue;
3 opacity: 1; /* completely opaque */
4 border: 1px solid black;
5}
6
7.semi-transparent-box {
8 background-color: skyblue;
9 opacity: 0.5; /* semi-transparent */
10 border: 1px solid black;
11}
12
13.transparent-box {
14 background-color: skyblue;
15 opacity: 0; /* completely transparent */
16 border: 1px solid black;
17}
18
19.opacity-transition-box {
20 background-color: orange;
21 transition: opacity 2s ease-in-out;
22 border: 1px solid black;
23}
24
25.opacity-transition-box:hover {
26 opacity: 0; /* Fade out on hover */
27}
28
29.opacity-parent {
30 background-color: blue;
31 opacity: 0.5;
32}
33
34.opacity-child {
35 background-color: red;
36}
La propriété opacity
est utilisée pour définir la transparence d'un élément. Cette propriété spécifie l'opacité de l'ensemble de l'élément, des valeurs proches de 0
étant plus transparentes et des valeurs proches de 1
plus opaques. La propriété opacity
peut être combinée à des animations pour créer des effets d'apparition et de disparition progressives.
La propriété opacity
affecte non seulement l'élément sur lequel elle est définie, mais aussi ses éléments enfants. Cela signifie que si un élément parent est défini comme semi-transparent, ses éléments enfants hériteront de cette transparence.
Dans cet exemple, les paramètres sont configurés comme suit.
-
Lorsque la propriété
opacity
est définie à1
, l’élément est complètement opaque, comme un élément normal. -
Lorsque la propriété
opacity
est définie à0.5
, l’élément devient semi-transparent. -
Lorsque la propriété
opacity
est définie à0
, l’élément devient complètement transparent et n’est plus du tout visible. -
La propriété
transition
est définie àopacity
, donc lorsque le curseur de la souris passe sur l’élément, il s’estompe et devient complètement transparent après 2 secondes. -
Si l’élément parent possède une propriété
opacity
de0.5
, les éléments enfants deviennent également semi-transparents.
Propriété z-index
1.z-index-box1 {
2 position: relative;
3 width: 100px;
4 height: 100px;
5 background-color: red;
6 top: 10px;
7 left: 10px;
8 z-index: 1; /* Displayed in the foreground */
9}
10
11.z-index-box2 {
12 position: relative;
13 width: 100px;
14 height: 100px;
15 background-color: blue;
16 top: -100px;
17 left: 90px;
18 z-index: 0; /* Displayed in the background */
19}
20
21.z-index-box3 {
22 position: relative;
23 width: 100px;
24 height: 100px;
25 background-color: green;
26 top: -160px;
27 left: 80px;
28 z-index: 2; /* Displayed in the frontmost layer */
29}
30
31.z-index-box2-1 {
32 position: relative;
33 width: 50px;
34 height: 50px;
35 background-color: skyblue;
36 top: 0px;
37 left: 0px;
38 z-index: 4;
39}
Le z-index
est une propriété utilisée en CSS pour contrôler l'ordre d'empilement des éléments. Cette propriété spécifie si un élément doit apparaître devant ou derrière d'autres éléments.
- Dans la boîte rouge, le
z-index
est défini à1
, donc l’élément apparaît devant les autres éléments. - Dans la boîte bleue, le
z-index
est défini à0
, donc l’élément apparaît derrière la boîte rouge. - Dans la boîte verte, le
z-index
est défini à2
, et elle apparaît tout devant. - Dans la boîte bleu clair, le
z-index
maximal de4
est spécifié, mais comme l’élément parent a unz-index
de0
, il n’apparaît pas en premier plan.
Mécanisme de base
La propriété z-index
prend une valeur numérique, où les éléments ayant des nombres plus élevés sont affichés devant ceux avec des nombres plus petits. Par défaut, les éléments sans un z-index
spécifié s’empilent selon l’ordre dans lequel ils apparaissent dans le HTML.
Cependant, pour que le z-index
prenne effet, l'élément doit avoir sa propriété position
définie sur relative
, absolute
, fixed
ou sticky
. Si la propriété position
est static
, alors le z-index
n’a aucun effet.
Valeurs
-
Si une valeur entière positive est attribuée au
z-index
, l’élément est affiché plus vers l’avant. Plus le nombre est grand, plus il est affiché devant les autres éléments.- Si le
z-index
est défini sur0
, il maintient l’ordre d’empilement par défaut. - Si le
z-index
est défini sur1
, l’élément est affiché une couche devant les autres éléments.
- Si le
-
Si une valeur entière négative est attribuée au
z-index
, l’élément est affiché plus vers l’arrière. Plus le nombre est petit, plus il est affiché derrière les autres éléments.- Si le
z-index
est défini sur-1
, l’élément est affiché une couche derrière les autres éléments.
- Si le
Notes
- Le
z-index
dépend duz-index
de l’élément parent. Lorsqu’un élément parent a unz-index
spécifié, l’ordre d’empilement relatif à l’intérieur de cet élément parent est appliqué. Cela s’appelle un contexte d’empilement. Ainsi, même si un élément enfant a unz-index
élevé, si lez-index
de l’élément parent est bas, il n’apparaîtra pas devant les autres éléments.
La propriété clip-path
La propriété clip-path
en CSS est utilisée pour découper des éléments sous des formes spécifiques. Normalement, les éléments sont affichés sous forme de boîtes rectangulaires, mais avec clip-path
, ils peuvent être affichés sous des formes complexes comme des cercles ou des polygones. C’est un outil très utile pour créer des designs visuels ou des effets interactifs.
La propriété clip-path
restreint la zone d’affichage d’un élément et masque les parties situées en dehors de la forme spécifiée. Ensuite, nous expliquerons comment spécifier les formes couramment utilisées.
Formes de découpe principales
circle()
1.clip-path-circle {
2 width: 100px;
3 height: 100px;
4 background-color: green;
5 clip-path: circle(50% at 50% 50%);
6}
circle()
découpe un élément en une forme circulaire. Vous pouvez contrôler la forme en spécifiant le centre et le rayon du cercle.
- Le premier
50%
correspond au rayon du cercle (en pourcentage de la largeur ou de la hauteur de l'élément). - Le suivant
at 50% 50%
désigne la position du centre du cercle (en pourcentage de la largeur et de la hauteur de l'élément).
Ici, cela spécifie un cercle avec un rayon de la moitié des dimensions de l'élément, centré à l'intérieur de celui-ci.
ellipse()
1.clip-path-ellipse {
2 width: 100px;
3 height: 100px;
4 background-color: green;
5 clip-path: ellipse(50% 30% at 50% 50%);
6}
ellipse()
découpe un élément en une forme elliptique. Vous spécifiez les rayons de la largeur et de la hauteur, ainsi que la position du centre.
- Les premiers
50% 30%
représentent les rayons de la largeur et de la hauteur. - Le suivant
at 50% 50%
désigne la position du centre de l'ellipse.
Dans cet exemple, cela spécifie une ellipse centrée dans l'élément, avec une largeur de 50% et une hauteur de 30%.
polygon()
1.clip-path-polygon {
2 width: 100px;
3 height: 100px;
4 background-color: green;
5 clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
6}
polygon()
forme un polygone en reliant un ensemble spécifique de sommets. Chaque sommet est spécifié avec des coordonnées relatives à l'intérieur de l'élément.
- Dans cet exemple, cela spécifie trois sommets (centre en haut, en bas à droite, en bas à gauche) et découpe en un triangle.
polygon()
est très flexible et permet de créer n'importe quelle forme.
inset()
1.clip-path-inset {
2 width: 100px;
3 height: 100px;
4 background-color: green;
5 clip-path: inset(10% 20% 30% 40%);
6}
inset()
découpe vers l'intérieur à partir des bords extérieurs d'un élément. Définissez un rectangle en spécifiant la distance par rapport à chacun des quatre côtés.
10%
représente la distance par rapport au bord supérieur.20%
représente la distance par rapport au bord droit.30%
représente la distance par rapport au bord inférieur.40%
représente la distance par rapport au bord gauche.
Cette spécification crée un rectangle qui se rétracte à l'intérieur de l'élément.
clip-path
en utilisant SVG
1/*
2<svg width="0" height="0">
3 <clipPath id="myClip">
4 <circle cx="50" cy="50" r="40" />
5 </clipPath>
6</svg>
7*/
8.clip-path-url {
9 width: 100px;
10 height: 100px;
11 background-color: green;
12 clip-path: url(#myClip);
13}
Le clip-path
CSS peut utiliser non seulement des formes primitives, mais aussi découper des formes complexes avec un élément SVG <clipPath>
.
- Dans cet exemple, un chemin de découpe circulaire défini en SVG avec l’identifiant
myClip
est appliqué à un élément HTML.
Vous pouvez suivre l'article ci-dessus avec Visual Studio Code sur notre chaîne YouTube. Veuillez également consulter la chaîne YouTube.