CSS sifat berkaitan dengan ketelusan
Artikel ini menerangkan sifat CSS yang berkaitan dengan ketelusan.
Anda boleh mempelajari tentang penggunaan dan sintaks sifat opacity
, z-index
, dan clip-path
.
YouTube Video
HTML untuk Pratonton
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>
Kesan penapis
Sifat 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}
Sifat opacity
digunakan untuk menetapkan ketelusan sesuatu elemen. Sifat ini menentukan ketelusan seluruh elemen, dengan nilai yang lebih dekat ke 0
menjadi lebih telus dan nilai yang lebih dekat ke 1
menjadi lebih legap. Sifat opacity
boleh digabungkan dengan animasi untuk mencipta kesan pudar masuk dan pudar keluar.
Sifat opacity
menjejaskan bukan sahaja elemen tempatnya ditetapkan tetapi juga elemen anaknya. Ini bermaksud bahawa jika elemen induk ditetapkan untuk menjadi separa telus, elemen anaknya akan mewarisi sifat ketelusan tersebut.
Dalam contoh ini, tetapan dikonfigurasikan seperti berikut.
-
Apabila sifat
opacity
ditetapkan kepada1
, elemen tersebut menjadi legap sepenuhnya, sama seperti elemen biasa. -
Apabila sifat
opacity
ditetapkan kepada0.5
, elemen tersebut menjadi separa telus. -
Apabila sifat
opacity
ditetapkan kepada0
, elemen tersebut menjadi telus sepenuhnya dan langsung tidak kelihatan. -
Sifat
transition
ditetapkan kepadaopacity
, jadi apabila kursor tetikus melayang ke atas elemen tersebut, ia akan pudar dan menjadi telus sepenuhnya selepas 2 saat. -
Jika elemen induk mempunyai sifat
opacity
sebanyak0.5
, elemen anak juga akan menjadi separa telus.
Sifat 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}
z-index
adalah sifat yang digunakan dalam CSS untuk mengawal susunan elemen. Sifat ini menentukan sama ada sesuatu elemen sepatutnya muncul di depan atau di belakang elemen lain.
- Dalam kotak merah,
z-index
ditetapkan kepada1
, jadi elemen tersebut muncul di hadapan elemen lain. - Dalam kotak biru,
z-index
ditetapkan kepada0
, jadi elemen tersebut muncul di belakang kotak merah. - Dalam kotak hijau,
z-index
ditetapkan kepada2
, dan ia muncul di posisi paling hadapan. - Dalam kotak biru muda,
z-index
tertinggi iaitu4
telah ditetapkan, tetapi kerana elemen induk mempunyaiz-index
sebanyak0
, ia tidak muncul di posisi paling hadapan.
Mekanisme Asas
Ciri z-index
mengambil nilai berangka, di mana elemen dengan nombor lebih tinggi dipaparkan di hadapan elemen dengan nombor lebih kecil. Secara lalai, elemen tanpa z-index
tertentu akan disusun mengikut susunan mereka muncul dalam HTML.
Walau bagaimanapun, untuk z-index
berfungsi, ciri position
elemen mesti ditetapkan kepada sama ada relative
, absolute
, fixed
, atau sticky
. Jika position
ialah static
, maka z-index
tidak memberi kesan.
Nilai
-
Jika nilai integer positif diberikan kepada
z-index
, elemen akan dipaparkan lebih ke hadapan. Semakin besar nombor, semakin elemen dipaparkan di hadapan elemen lain.- Jika
z-index
ditetapkan kepada0
, ia mengekalkan susunan pensusunan lalai. - Jika
z-index
ditetapkan kepada1
, elemen akan dipaparkan satu lapisan di hadapan elemen lain.
- Jika
-
Jika nilai integer negatif diberikan kepada
z-index
, elemen akan dipaparkan lebih ke belakang. Semakin kecil nombor, semakin elemen dipaparkan di belakang elemen lain.- Jika
z-index
ditetapkan kepada-1
, elemen akan dipaparkan satu lapisan di belakang elemen lain.
- Jika
Nota
z-index
bergantung padaz-index
elemen induk. Apabila elemen induk mempunyaiz-index
tertentu, susunan pensusunan relatif dalam elemen induk itu digunakan. Ini dipanggil konteks pensusunan. Oleh itu, walaupun elemen anak mempunyaiz-index
yang tinggi, jikaz-index
elemen induk adalah rendah, ia tidak akan muncul di hadapan elemen lain.
Ciri clip-path
clip-path
dalam CSS ialah ciri yang digunakan untuk memotong elemen ke bentuk tertentu. Biasanya, elemen dipaparkan sebagai kotak segi empat, tetapi dengan clip-path
, elemen boleh dipaparkan dalam bentuk kompleks seperti bulatan atau poligon. Ia adalah alat yang sangat berguna untuk mencipta reka bentuk visual atau kesan interaktif.
Ciri clip-path
mengehadkan kawasan paparan sesuatu elemen dan menyembunyikan bahagian di luar bentuk yang ditentukan. Seterusnya, kami akan menerangkan cara untuk menentukan bentuk-bentuk yang biasa digunakan.
Bentuk Pemotongan Utama
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()
memotong elemen ke dalam bentuk bulat. Anda boleh mengawal bentuk dengan menentukan pusat dan jejari bulatan.
50%
pertama adalah jejari bulatan (sebagai peratusan lebar atau tinggi elemen).at 50% 50%
seterusnya adalah posisi pusat bulatan (sebagai peratusan lebar dan tinggi elemen).
Di sini, ia menentukan bulatan dengan jejari separuh dimensi elemen, terpusat di dalam elemen.
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()
memotong elemen menjadi bentuk elips. Anda menentukan radius lebar dan tinggi, serta posisi pusat.
50% 30%
pertama adalah radius lebar dan tinggi.at 50% 50%
seterusnya adalah posisi pusat elips.
Dalam contoh ini, ia menentukan elips yang terpusat di dalam elemen, dengan lebar 50% dan tinggi 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()
membentuk poligon dengan menyambungkan rangkaian bucu yang ditentukan. Setiap bucu ditentukan dengan koordinat relatif dalam elemen.
- Dalam contoh ini, ia menentukan tiga bucu (atas tengah, bawah kanan, bawah kiri) dan memotong menjadi segitiga.
polygon()
sangat fleksibel dan boleh mencipta apa-apa bentuk.
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()
memotong ke dalam dari tepi luar elemen. Tentukan segi empat dengan menetapkan jarak dari setiap empat sisi.
10%
adalah jarak dari tepi atas.20%
adalah jarak dari tepi kanan.30%
adalah jarak dari tepi bawah.40%
adalah jarak dari tepi kiri.
Spesifikasi ini mencipta segi empat yang mengecil di dalam elemen.
clip-path
menggunakan 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
boleh menggunakan bukan sahaja bentuk primitif tetapi juga memotong bentuk kompleks menggunakan elemen SVG <clipPath>
.
- Dalam contoh ini, laluan klip berbentuk bulat yang ditakrifkan dalam SVG dengan
id
myClip
digunakan pada elemen HTML.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.