CSS-egenskaper relatert til gjennomsiktighet
Denne artikkelen forklarer CSS-egenskaper relatert til gjennomsiktighet.
Du kan lære om bruken og syntaksen til opacity
-, z-index
- og clip-path
-egenskapene.
YouTube Video
HTML for Forhåndsvisning
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>
Filtereffekter
opacity
-egenskap
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}
opacity
-egenskapen brukes til å sette gjennomsiktigheten til et element. Denne egenskapen spesifiserer opasiteten til hele elementet, hvor verdier nærmere 0
er mer gjennomsiktige og verdier nærmere 1
er mer ugjennomsiktige. opacity
-egenskapen kan kombineres med animasjoner for å skape fade-in- og fade-out-effekter.
opacity
-egenskapen påvirker ikke bare elementet den brukes på, men også barn-elementene. Dette betyr at hvis et foreldreelement settes som halv-gjennomsiktig, vil barn-elementene arve denne gjennomsiktigheten.
I dette eksempelet er innstillingene konfigurert som følger.
-
Når
opacity
-egenskapen er satt til1
, er elementet helt ugjennomsiktig, akkurat som et vanlig element. -
Når
opacity
-egenskapen er satt til0.5
, blir elementet halvgjennomsiktig. -
Når
opacity
-egenskapen er satt til0
, blir elementet helt gjennomsiktig og er ikke synlig i det hele tatt. -
transition
-egenskapen er satt tilopacity
, så når musepekeren holdes over elementet tones det ut og blir helt gjennomsiktig etter 2 sekunder. -
Hvis overordnede element har en
opacity
-egenskap på0.5
, vil underordnede elementer også bli halvgjennomsiktige.
z-index
-egenskap
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}
z-index
er en egenskap som brukes i CSS for å kontrollere stablingsrekkefølgen til elementer. Denne egenskapen spesifiserer om et element skal vises foran eller bak andre elementer.
- I den røde boksen er
z-index
satt til1
, så elementet vises foran andre elementer. - I den blå boksen er
z-index
satt til0
, så elementet vises bak den røde boksen. - I den grønne boksen er
z-index
satt til2
, og den vises i den fremste posisjonen. - I den lyseblå boksen er den høyeste
z-index
på4
angitt, men siden overordnet element har enz-index
på0
, vises den ikke i den fremste posisjonen.
Grunnleggende mekanisme
z-index
-egenskapen tar en numerisk verdi, der elementer med høyere tall vises foran de med lavere tall. Som standard stables elementer uten en spesifisert z-index
etter rekkefølgen de vises i HTML-en.
For at z-index
skal tre i kraft, må elementet ha position
-egenskapen satt til enten relative
, absolute
, fixed
eller sticky
. Hvis position
er static
, har z-index
ingen effekt.
Verdier
-
Hvis en positiv heltallverdi gis til
z-index
, vises elementet mer mot fremsiden. Jo større nummeret er, desto mer vises det foran andre elementer.- Hvis
z-index
er satt til0
, opprettholder det standard lagrekkefølge. - Hvis
z-index
er satt til1
, vises elementet ett lag foran andre elementer.
- Hvis
-
Hvis en negativ heltallverdi gis til
z-index
, vises elementet mer mot baksiden. Jo mindre nummeret er, desto mer vises det bak andre elementer.- Hvis
z-index
er satt til-1
, vises elementet ett lag bak andre elementer.
- Hvis
Notater
z-index
avhenger avz-index
på det overordnede elementet. Når et overordnet element har en spesifisertz-index
, brukes den relative lagrekkefølgen innenfor det overordnede elementet. Dette kalles en stablekontekst. Derfor, selv om et underordnet element har en høyz-index
, vil det ikke vises foran andre elementer hvis det overordnede elementetsz-index
er lav.
clip-path
-egenskapen
CSS-egenskapen clip-path
brukes til å klippe elementer til spesifikke former. Normalt vises elementer som rektangulære bokser, men med clip-path
kan elementer vises i komplekse former som sirkler eller polygoner. Det er et svært nyttig verktøy for å lage visuelle design eller interaktive effekter.
clip-path
-egenskapen begrenser visningsområdet til et element og skjuler delene utenfor den spesifiserte formen. Deretter forklarer vi hvordan du spesifiserer vanlige former.
Hovedklippeformer
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()
klipper et element til en sirkelform. Du kan kontrollere formen ved å spesifisere senteret og radiusen til sirkelen.
- Den første
50%
er radiusen til sirkelen (angitt som en prosentandel av elementets bredde eller høyde). - Den påfølgende
at 50% 50%
er senterposisjonen til sirkelen (angitt som en prosentandel av elementets bredde og høyde).
Her spesifiseres en sirkel med en radius som er halvparten av elementets dimensjoner, sentrert i elementet.
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()
klipper et element til en elliptisk form. Du spesifiserer radiusene for bredde og høyde, samt senterposisjonen.
- De første
50% 30%
er radiusene for bredde og høyde. - Den påfølgende
at 50% 50%
er senterposisjonen til ellipsen.
I dette eksempelet spesifiseres en ellipse sentrert i elementet, med en bredde på 50% og en høyde på 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()
danner en polygon ved å koble sammen et angitt sett med hjørner. Hver toppunkt spesifiseres med relative koordinater innenfor elementet.
- I dette eksempelet spesifiseres tre toppunkter (øverst i midten, nederst til høyre, nederst til venstre) og klipper til en trekant.
polygon()
er svært fleksibel og kan lage hvilken som helst form.
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()
klipper innover fra de ytre kantene av et element. Definer et rektangel ved å spesifisere avstanden fra hver av de fire sidene.
10%
er avstanden fra toppkanten.20%
er avstanden fra høyrekanten.30%
er avstanden fra bunnkanten.40%
er avstanden fra venstrekanten.
Denne spesifikasjonen lager et rektangel som krymper innenfor elementet.
clip-path
ved bruk av 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}
CSS clip-path
kan bruke ikke bare primitive former, men også klippe komplekse former ved hjelp av et SVG-<clipPath>
-element.
- I dette eksempelet brukes en sirkulær klippesti definert i SVG med
id
sommyClip
på et HTML-element.
Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.