Saydamlıkla ilgili CSS özellikleri
Bu makale, saydamlıkla ilgili CSS özelliklerini açıklar.
opacity
, z-index
ve clip-path
özelliklerinin kullanımını ve sözdizimini öğrenebilirsiniz.
YouTube Video
Önizleme için HTML
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>
Filtre efektleri
opacity
Özelliği
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
özelliği, bir öğenin saydamlık seviyesini ayarlamak için kullanılır. Bu özellik, tüm öğenin saydamlık seviyesini belirtir; 0
'a daha yakın değerler daha saydam, 1
'e daha yakın değerler ise daha opak olur. opacity
özelliği, açılma ve kapanma efektleri oluşturmak için animasyonlarla birleştirilebilir.
opacity
özelliği, yalnızca uygulanmış olduğu öğeyi değil, aynı zamanda onun alt öğelerini de etkiler. Bu, bir üst öğe yarı saydam olarak ayarlandığında, onun alt öğelerinin de bu saydamlığı miras alacağı anlamına gelir.
Bu örnekte, ayarlar aşağıdaki gibi yapılandırılmıştır.
-
opacity
özelliği1
olarak ayarlandığında, öğe tamamen opak olur, tıpkı normal bir öğe gibi. -
opacity
özelliği0.5
olarak ayarlandığında, öğe yarı saydam olur. -
opacity
özelliği0
olarak ayarlandığında, öğe tamamen saydam hale gelir ve hiç görünmez. -
transition
özelliğiopacity
olarak ayarlanmıştır, bu nedenle fare imleci öğenin üzerine geldiğinde, 2 saniye sonra yavaşça kaybolur ve tamamen saydam olur. -
Eğer üst öğede
opacity
özelliği0.5
ise, alt öğeler de yarı saydam hale gelir.
z-index
Özelliği
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
, öğelerin üst üste sıralanma düzenini kontrol etmek için kullanılan bir CSS özelliğidir. Bu özellik, bir öğenin diğerlerinin önünde mi yoksa arkasında mı görüntüleneceğini belirler.
- Kırmızı kutuda,
z-index
1
olarak ayarlanmıştır, bu yüzden bu öğe diğer öğelerin önünde görünür. - Mavi kutuda,
z-index
0
olarak ayarlanmıştır, bu yüzden bu öğe kırmızı kutunun arkasında görünür. - Yeşil kutuda,
z-index
2
olarak ayarlanmıştır ve en önde görünür. - Açık mavi kutuda, en yüksek
z-index
olan4
belirtilmiştir, fakat üst öğedez-index
0
olduğundan en önde görünmez.
Temel Mekanizma
z-index
özelliği sayısal bir değer alır ve daha büyük bir değere sahip elemanlar, daha küçük bir değere sahip elemanların önünde görüntülenir. Varsayılan olarak, z-index
değeri belirtilmeyen elemanlar HTML'de göründükleri sıraya göre sıralanır.
Ancak, z-index
'in etkili olabilmesi için elemanın position
özelliği relative
, absolute
, fixed
veya sticky
olarak ayarlanmalıdır. Eğer position
değeri static
ise, z-index
hiçbir etkisi olmaz.
Değerler
-
z-index
'e pozitif bir tamsayı atanırsa, eleman daha önde görüntülenir. Sayı ne kadar büyükse, eleman diğer elemanların önünde o kadar fazla görüntülenir.z-index
0
olarak ayarlandığında, varsayılan sıralama düzeni korunur.z-index
1
olarak ayarlandığında, eleman diğer elemanların bir katman önünde görüntülenir.
-
z-index
'e negatif bir tamsayı atanırsa, eleman daha geride görüntülenir. Sayı ne kadar küçükse, eleman diğer elemanların arkasında o kadar fazla görüntülenir.z-index
-1
olarak ayarlandığında, eleman diğer elemanların bir katman arkasında görüntülenir.
Notlar
z-index
, üst elemanınz-index
değerine bağlıdır. Eğer üst eleman için birz-index
belirtilmişse, bu üst elemanın içerisindeki bağıl sıralama düzeni uygulanır. Bu, sıralama bağlamı (stacking context) olarak adlandırılır. Bu nedenle, bir alt elemanınz-index
değeri yüksek olsa bile, üst elemanınz-index
değeri düşükse, eleman diğer elemanların önünde görünmez.
clip-path
Özelliği
CSS'deki clip-path
, elemanları belirli şekillerde kırpmak için kullanılan bir özelliktir. Normalde, elemanlar dikdörtgen kutular olarak görüntülenir, ancak clip-path
ile elemanlar daireler veya çokgenler gibi karmaşık şekillerde görüntülenebilir. Bu, görsel tasarımlar veya etkileşimli efektler oluşturmak için oldukça kullanışlı bir araçtır.
clip-path
özelliği, bir elemanın görüntüleme alanını kısıtlar ve belirtilen şeklin dışında kalan kısımları gizler. Sonraki adımda, sıkça kullanılan şekillerin nasıl belirtileceğini açıklayacağız.
Ana Kırpma Şekilleri
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()
bir elemanı dairesel bir şekle dönüştürür. Şekli, dairenin merkezi ve yarıçapını belirleyerek kontrol edebilirsiniz.
- İlk
50%
, dairenin yarıçapıdır (elemanın genişliğinin ya da yüksekliğinin yüzdesi olarak). - Sonraki
at 50% 50%
, dairenin merkezi konumudur (elemanın genişliği ve yüksekliğinin yüzdesi olarak).
Burada, elemanın boyutlarının yarısı kadar bir yarıçapa sahip, elemanın merkezinde bulunan bir daire belirtilir.
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()
, bir elemanı eliptik bir şekle kırpar. Genişlik ve yüksekliğin yarıçaplarını ve merkezin konumunu belirlersiniz.
- İlk
50% 30%
, genişlik ve yüksekliğin yarıçaplarıdır. - Sonraki
at 50% 50%
, elipsin merkez konumudur.
Bu örnekte, genişliği %50 ve yüksekliği %30 olan, elemanın merkezine yerleştirilmiş bir elips tanımlanmıştır.
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()
belirli bir dizi köşeyi birleştirerek bir çokgen oluşturur. Her köşe, eleman içindeki göreceli koordinatlarla belirtilir.
- Bu örnekte, üç köşe (üst merkez, alt sağ, alt sol) belirtilmiştir ve eleman bir üçgen şeklinde kırpılmıştır.
polygon()
, oldukça esnektir ve herhangi bir şekil oluşturabilir.
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()
, bir elemanın dış kenarlarından içeriye doğru kırpma yapar. Dört kenarın her birinden olan mesafeyi belirleyerek bir dikdörtgen tanımlayın.
10%
, üst kenardan olan mesafedir.20%
, sağ kenardan olan mesafedir.30%
, alt kenardan olan mesafedir.40%
, sol kenardan olan mesafedir.
Bu tanım, elemanın içinde küçülen bir dikdörtgen oluşturur.
SVG kullanarak clip-path
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
, yalnızca temel şekilleri değil, aynı zamanda bir SVG <clipPath>
öğesi kullanarak karmaşık şekilleri de kırpabilir.
- Bu örnekte, SVG içinde
myClip
kimliğine sahip dairesel bir kırpma yolu bir HTML öğesine uygulanmıştır.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.