CSS'de Kalıtım
Bu makale, CSS'de kalıtımı açıklar.
Temsilci miras alınan ve alınmayan özellikleri kontrol edebilirsiniz.
YouTube Video
Önizleme için HTML
css-inheritance.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 Inheritance</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-inheritance.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Inheritance</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header><h2>CSS Inheritance</h2></header>
19 <article>
20 <h3>Example of Inheritance</h3>
21 <section>
22 <p>
23 Example of P Element.<br>
24 <span>Example of Span Element</span>
25 </p>
26 </section>
27 <div>
28 Example of Div Element
29 </div>
30 <ul>
31 <li>List Item 1</li>
32 <li>List Item 2</li>
33 <li>List Item 3</li>
34 </ul>
35 </article>
36 <article>
37 <h3>all</h3>
38 <section>
39 <h4>Initial</h4>
40 <div class="all-initial">This is an initial element</div>
41 </section>
42 <section>
43 <h4>Inherit</h4>
44 <div class="parent-inherit">
45 <div class="all-inherit">This is an inherited element</div>
46 </div>
47 </section>
48 <section>
49 <h4>Unset All</h4>
50 <div class="parent-unset">
51 <div class="all-unset">This is an unset element</div>
52 </div>
53 </section>
54 <section>
55 <h4>all and !important</h4>
56 <div class="important-style">
57 <div class="all-with-important">
58 This is an initial element with !important
59 </div>
60 </div>
61 </section>
62 </article>
63 </main>
64</body>
65</html>CSS'de Kalıtım
CSS'de bazı özellikler, üst elementlerden alt elementlere otomatik olarak devralınır. Bu yararlı bir mekanizmadır, çünkü bir özelliği bir kez ayarladığınızda, alt öğeler de aynı stile sahip olur ve tekrar tekrar ayarlamanıza gerek kalmaz. Ancak, tüm özellikler devralınmaz; bazı özellikler devralınırken, diğerleri devralınmaz. Örneğin, color ve font-family devralınırken, margin ve padding gibi kutu modeli özellikleri devralınmaz.
Devralınan Özellikler
Devralınabilir özellikler genellikle metin ve yazı tipleriyle ilgilidir.
Genellikle devralınan özellikler
color: Metin Rengi
1body {
2 color: black;
3}- Bu durumda,
bodyiçindeki tüm alt öğeler siyah metin rengine sahip olur.
font-family: Yazı Tipi Ailesi
1body {
2 font-family: "Times New Roman", cursive;
3}- Tüm alt öğeler
Arialyazı tipini kullanır.
font-size: Metin Boyutu
1body {
2 font-size: 16px;
3}bodyiçindeki tüm metinler varsayılan olarak16pxolur.
line-height: Satır Aralığı
1p {
2 line-height: 1.5;
3}<p>elemanı içindeki metin 1.5 kat satır yüksekliği ile görüntülenir ve bu alt öğeleri de etkiler.
text-align: Metin Hizalaması
1div {
2 text-align: center;
3}divelemanı içindeki metin ve satır-içi öğeler ortalanmış olarak görüntülenir.
visibility: Öğe görünürlüğü
1div {
2 visibility: hidden;
3}visibility, bir öğenin görünürlüğünü kontrol eden bir özelliktir. Gizli olarak ayarlandığında, öğe görünmez olur.- Bu durumda,
diviçindeki alt öğeler de gizlenecektir.
list-style: Liste stili (<ul>ve<ol>için liste işaretçileri)
1ul {
2 list-style: square;
3}- Bu durumda, ul etiketindeki liste öğeleri kare işaretlerle görüntülenecektir.
Örnek:
Miras alınmayan özellikler
Düzen ve kutu modeli ile ilgili özellikler genellikle miras alınmaz. Bu özelliklerin her bir öğe için ayrı ayrı ayarlanması gerekir.
Yaygın Miras Alınmayan Özellikler
margin,padding: Bir öğenin dış ve iç kenar boşlukları
1div {
2 margin: 10px;
3 padding: 20px;
4}divöğesi için dış veya iç kenar boşluklarını ayarlasanız bile, bu alt öğeleri etkilemez.
border: Öğe kenarlığı
1div {
2 border: 1px solid black;
3}- Bir üst öğeye kenarlık ayarlansa bile, bu alt öğeleri etkilemez.
width,height: Öğe genişliği ve yüksekliği
1div {
2 width: 100px;
3 height: 50px;
4}- Bir üst öğenin genişliği ve yüksekliği, alt öğeleri otomatik olarak etkilemez.
background: Arka plan stili
1body {
2 background-color: lightblue;
3}- Body öğesinde ayarlanan arka plan rengi, alt öğeleri doğrudan etkilemez. Ancak, bir alt öğe şeffaf bir arka plana sahipse, üst öğenin arka plan rengi bu öğe aracılığıyla görülebilir.
Örnek:
Miras kontrolü
Miras, inherit, initial veya unset anahtar kelimeleri kullanılarak kontrol edilebilir.
- Mirası etkinleştirmek istiyorsanız:
inheritanahtar kelimesini kullanarak mirası açıkça zorlayabilirsiniz.
1div {
2 color: inherit; /* Inherit the color from its parent element */
3}- Miras istemiyorsanız: Özelliği
initialveyaunsetanahtar kelimelerini kullanarak başlangıç değerine sıfırlayabilirsiniz.
1p {
2 color: initial; /* Reset the color to its initial/default value */
3}Örnek:
all özelliği
all özelliği, belirli bir öğe için miras alınabilenler dahil, neredeyse tüm CSS özelliklerini bir kerede sıfırlayabilen bir özelliktir. Özellikle bir öğenin özelliklerini ayarlamak için aşağıdaki üç anahtar kelimeyi kullanabilirsiniz:.
initial: Tüm özellikleri başlangıç değerlerine sıfırlar.inherit: Tüm özellikleri üst öğeden miras alır.unset: Özellik miras alınabilirse miras alır, aksi takdirde başlangıç değerine sıfırlar.
Yalnızca belirli özellikleri bireysel olarak ayarlamak yerine, birden çok özelliği toplu olarak sıfırlamak veya ayarlamak istediğinizde all çok kullanışlıdır.
Başlangıç değerlerine sıfırlama örneği
1.all-initial {
2 all: initial;
3 background-color: lightskyblue;
4}-
Belirli bir öğe için önceden ayarlanmış tüm stilleri sıfırlayıp başlangıç durumuna döndürmek istediğinizde, şu şekilde
all: initialkullanabilirsiniz. -
Bu örnekte,
.all-initialsınıfına sahip<div>öğesinin tüm özellikleri tarayıcının varsayılan başlangıç değerlerine sıfırlanır.
Miras örneği
1.parent-inherit {
2 color: blue;
3 font-size: 20px;
4 border: 1px solid blue;
5}
6
7.all-inherit {
8 all: inherit;
9 background-color: lightskyblue;
10}all: inheritkullanmak, tüm özellikleri üst öğeden miras alır hale getirir.- Bu örnekte,
.all-inheritsınıfına sahip öğeler,colorvefont-sizegibi tüm özellikleri üst öğeden miras alır.
Koşullara göre Başlangıç Değeri veya Mirası Belirleme Örneği
1.parent-unset {
2 color: blue;
3}
4
5.all-unset {
6 font-weight: bold;
7}
8
9.all-unset {
10 all: unset;
11}all: unsetkullanımı, özelliklerin miras alınabilirse miras alınmasını sağlar; aksi takdirde başlangıç değerlerine sıfırlanır.- Bu durumda,
colormiras alınır,font-weightise genelliklenormalolan başlangıç değerine sıfırlanır.
Özgüllük (Öncelik) ile İlişki
1.all-with-important {
2 color: red !important;
3 background-color: lightskyblue;
4}
5
6.all-with-important {
7 all: initial;
8}-
allözelliği güçlü bir sıfırlama mekanizmasıdır, ancak CSS özgüllüğünden etkilenir. Belirli bir öğenin güçlü stil spesifikasyonları varsa,allözelliği bu stilleri geçersiz kılmayabilir. Örneğin,!importantile belirtilen özellikler etkilenmez. -
Bu örnekte,
all: initialile stili sıfırlamaya çalışsanız bile,color: red !importantspesifikasyonu nedeniylecolorözelliği sıfırlanmaz.
Blok düzeyinde ve satır içi öğeler
Blok düzeyindeki öğeler
- Örnek:
<div>,<p>,<h1>〜<h6>,<ul>,<li>,<section> - Özellikler:
- Her zaman yeni bir satırda görünürler ve üst öğelerinin tam genişliğini dolduracak şekilde genişlerler.
- Genişlik (
width) ve yükseklik (height) serbestçe ayarlanabilir. - Kenarlıklar (
margin) ve dolgu (padding) her yönde ayarlanabilir ve tüm kenarları etkiler.
1div {
2 width: 80%; /* Set the width to 80% of its parent element's width */
3 padding: 20px; /* Add a padding of 20 pixels on all sides */
4 margin: 10px 0; /* Add a margin of 10 pixels top and bottom, 0 pixels left and right */
5}Satır içi öğeler
- Örnek:
<span>,<a>,<strong>,<em>,<img>,<label> - Özellikler:
- Aynı satırdaki diğer satır içi öğelerin yanında görünürler.
- Genişlik (
width) ve yükseklik (height) doğrudan ayarlanamaz (display: blockuygulanmadıkça). - Kenarlıklar (
margin) veya dolgu (padding) dikey olarak ayarlandığında etkisi sınırlıdır (yatay kenarlıklar ve dolgular etkilidir).
1a {
2 padding: 5px; /* Padding for inline elements */
3 margin-right: 10px; /* Set margin to the right */
4 color: blue;
5}Blok düzey öğeler ile satır içi öğeler arasındaki farklar
-
Genişlik ve yükseklik ayarları:
- Blok düzeyindeki öğeler: Genişlik ve yükseklik ayarlanabilir.
- Satır içi öğeler: Genişlik ve yükseklik genellikle ayarlanamaz.
-
Kenar Boşluğu ve Dolgu:
- Blok düzeyindeki öğeler: Kenar boşluğu ve dolgu tüm kenarlara uygulanır.
- Satır içi öğeler: Üst ve alt kenar boşluğu ve dolgular etkisiz veya sınırlı bir etkiye sahiptir.
-
Düzen Yöntemi:
- Blok düzeyindeki öğeler: Otomatik olarak yeni bir satıra yerleştirilir.
- Satır içi öğeler: Diğer satır içi öğelerle aynı satırda hizalanır.
Görüldüğü gibi, blok düzeyindeki öğelere ve satır içi öğelere CSS stillerinin nasıl uygulandığı arasında farklılıklar vardır. Blok düzeyindeki öğelerde genişlik, yükseklik, kenar boşluğu ve dolgu gibi düzenle ilgili CSS özellikleri belirtildiği şekilde uygulanır. Öte yandan, satır içi öğeler için genişlik, yükseklik, kenar boşluğu veya dolgu gibi düzenle ilgili CSS özelliklerinin ayarlanması uygulanamayabilir veya sınırlı bir şekilde uygulanabilir.
Blok düzeyindeki ve satır içi öğelerin CSS ile yönetimi
1span {
2 display: block; /* Display the span element as a block-level element */
3 width: 100px;
4 height: 50px;
5}Bununla birlikte, display özelliğini block veya inline-block olarak ayarlayarak, satır içi öğelerin genişlik ve yükseklik gibi stillerini tıpkı blok öğeler gibi düzenleyebilirsiniz.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.