Pewarisan dalam CSS
Artikel ini menjelaskan pewarisan dalam CSS.
Anda dapat memeriksa properti yang diwariskan dan yang tidak diwariskan.
YouTube Video
HTML untuk Pratinjau
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>
Pewarisan dalam CSS
Dalam CSS, beberapa properti otomatis diwarisi dari elemen induk ke elemen anak. Ini adalah mekanisme yang berguna karena begitu Anda mengatur properti tertentu, elemen anak juga akan memiliki gaya yang sama, menghilangkan kebutuhan untuk mengaturnya berulang kali. Namun, tidak semua properti diwarisi; beberapa properti diwarisi sementara yang lain tidak. Contohnya, color
dan font-family
diwarisi, tetapi properti model kotak seperti margin
dan padding
tidak.
Properti yang Diwarisi
Properti yang dapat diwarisi terutama yang terkait dengan teks dan font.
Properti yang umumnya diwarisi
color
: Warna Teks
1body {
2 color: black;
3}
- Dalam kasus ini, semua elemen anak dalam
body
akan memiliki warna teks hitam.
font-family
: Jenis Font
1body {
2 font-family: "Times New Roman", cursive;
3}
- Semua elemen anak menggunakan font
Arial
.
font-size
: Ukuran Teks
1body {
2 font-size: 16px;
3}
- Semua teks dalam
body
akan berukuran16px
secara default.
line-height
: Spasi Garis
1p {
2 line-height: 1.5;
3}
- Teks dalam elemen
<p>
akan ditampilkan dengan tinggi garis 1,5 kali, mempengaruhi elemen anaknya juga.
text-align
: Perataan Teks
1div {
2 text-align: center;
3}
- Teks dan elemen sebaris dalam elemen
div
ditampilkan di tengah.
visibility
: Visibilitas Elemen
1div {
2 visibility: hidden;
3}
visibility
adalah properti yang mengontrol visibilitas suatu elemen. Ketika disetel ke tersembunyi, elemen menjadi tidak terlihat.- Dalam hal ini, elemen anak di dalam
div
juga akan tersembunyi.
list-style
: Gaya Daftar (penanda daftar untuk<ul>
dan<ol>
)
1ul {
2 list-style: square;
3}
- Dalam hal ini, item daftar di dalam tag ul akan ditampilkan dengan penanda persegi.
Contoh:
Properti yang Tidak Diwarisi
Properti yang terkait dengan tata letak dan model kotak biasanya tidak diwariskan. Properti ini perlu disetel secara individual untuk setiap elemen.
Properti Umum yang Tidak Diwariskan
margin
,padding
: Marjin luar dan dalam dari sebuah elemen
1div {
2 margin: 10px;
3 padding: 20px;
4}
- Bahkan jika Anda menetapkan margin luar atau dalam untuk elemen
div
, hal itu tidak memengaruhi elemen anaknya.
border
: Batas elemen
1div {
2 border: 1px solid black;
3}
- Bahkan jika batas ditetapkan pada elemen induk, hal itu tidak memengaruhi elemen anak.
width
,height
: Lebar dan tinggi elemen
1div {
2 width: 100px;
3 height: 50px;
4}
- Lebar dan tinggi elemen induk tidak secara otomatis memengaruhi elemen anak.
background
: Gaya latar belakang
1body {
2 background-color: lightblue;
3}
- Warna latar belakang yang diatur pada
body
tidak langsung memengaruhi elemen anak. Namun, jika elemen anak memiliki latar belakang transparan, warna latar belakang elemen induk mungkin terlihat melaluinya.
Contoh:
Kontrol pewarisan
Pewarisan dapat dikendalikan menggunakan kata kunci inherit
, initial
, atau unset
.
- Jika Anda ingin mengaktifkan pewarisan: Anda dapat secara eksplisit memaksa pewarisan dengan menggunakan kata kunci
inherit
.
1div {
2 color: inherit; /* Inherit the color from its parent element */
3}
- Jika Anda tidak ingin mengaktifkan pewarisan: Anda dapat mengatur ulang properti ke nilai awalnya menggunakan kata kunci
initial
atauunset
.
1p {
2 color: initial; /* Reset the color to its initial/default value */
3}
Contoh:
Properti all
Properti all
adalah properti yang dapat mengatur ulang hampir semua properti CSS, termasuk yang dapat diwariskan, pada sebuah elemen tertentu sekaligus. Secara khusus, Anda dapat menggunakan tiga kata kunci berikut untuk mengatur properti dari suatu elemen:.
initial
: Mengatur ulang semua properti ke nilai awalnya.inherit
: Mewarisi semua properti dari elemen induk.unset
: Jika properti dapat diwariskan maka akan diwariskan, jika tidak maka diatur ulang ke nilai awalnya.
all
sangat berguna ketika Anda ingin mengatur ulang atau mengatur banyak properti sekaligus, daripada mengatur setiap properti secara individual.
Contoh pengaturan ulang ke nilai awal
1.all-initial {
2 all: initial;
3 background-color: lightskyblue;
4}
-
Ketika Anda ingin mengatur ulang semua gaya yang sebelumnya telah ditetapkan untuk sebuah elemen tertentu dan mengembalikannya ke keadaan awalnya, gunakan
all: initial
seperti ini. -
Dalam contoh ini, semua properti elemen
<div>
dengan kelas.all-initial
diatur ulang ke nilai awal default browser.
Contoh Pewarisan
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}
- Menggunakan
all: inherit
membuat semua properti diwarisi dari elemen induk. - Dalam contoh ini, elemen-elemen dengan kelas
.all-inherit
mewarisi semua properti, seperticolor
danfont-size
, dari elemen induk.
Contoh Menentukan Nilai Awal atau Pewarisan Berdasarkan Kondisi
1.parent-unset {
2 color: blue;
3}
4
5.all-unset {
6 font-weight: bold;
7}
8
9.all-unset {
10 all: unset;
11}
- Menggunakan
all: unset
menyebabkan properti diwariskan jika memungkinkan; jika tidak, properti akan diatur ulang ke nilai awalnya. - Dalam kasus ini,
color
diwariskan, sedangkanfont-weight
diatur ulang ke nilai awalnya, biasanyanormal
.
Hubungan dengan Spesifisitas (Prioritas)
1.all-with-important {
2 color: red !important;
3 background-color: lightskyblue;
4}
5
6.all-with-important {
7 all: initial;
8}
-
Properti
all
adalah mekanisme reset yang kuat, tetapi dipengaruhi oleh spesifisitas CSS. Jika sebuah elemen tertentu memiliki spesifikasi gaya yang kuat, propertiall
mungkin tidak dapat menggantikan gaya tersebut. Sebagai contoh, properti yang ditentukan dengan!important
tidak dapat terpengaruh. -
Dalam contoh ini, meskipun Anda mencoba mengatur ulang gaya dengan
all: initial
, properticolor
tidak akan diatur ulang karena spesifikasicolor: red !important
.
Elemen tingkat blok dan elemen sebaris
Elemen tingkat blok
- Contoh:
<div>
,<p>
,<h1>
〜<h6>
,<ul>
,<li>
,<section>
- Karakteristik:
- Mereka selalu muncul pada baris baru dan meluas untuk mengisi lebar penuh elemen induknya.
- Lebar (
width
) dan tinggi (height
) dapat diatur secara bebas. - Margin (
margin
) dan padding (padding
) dapat diatur ke semua arah dan akan memengaruhi semua sisi.
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}
Elemen sebaris
- Contoh:
<span>
,<a>
,<strong>
,<em>
,<img>
,<label>
- Karakteristik:
- Elemen-elemen ini muncul di samping elemen sebaris (inline) lainnya pada baris yang sama.
- Lebar (
width
) dan tinggi (height
) tidak dapat diatur secara langsung (kecuali jikadisplay: block
diterapkan). - Mengatur margin (
margin
) atau padding (padding
) secara vertikal memiliki efek terbatas (margin dan padding horizontal efektif).
1a {
2 padding: 5px; /* Padding for inline elements */
3 margin-right: 10px; /* Set margin to the right */
4 color: blue;
5}
Perbedaan antara elemen tingkat blok dan elemen sebaris
-
Pengaturan lebar dan tinggi:
- Elemen tingkat blok: Lebar dan tinggi dapat diatur.
- Elemen sebaris (inline): Lebar dan tinggi umumnya tidak dapat diatur.
-
Margin dan Padding:
- Elemen tingkat blok: Margin dan padding diterapkan ke semua sisi.
- Elemen sebaris (inline): Margin dan padding di bagian atas dan bawah tidak efektif atau memiliki efek terbatas.
-
Metode Tata Letak:
- Elemen tingkat blok: Secara otomatis ditempatkan pada baris baru.
- Elemen sebaris (inline): Disejajarkan pada baris yang sama dengan elemen sebaris lainnya.
Seperti yang dapat Anda lihat, ada perbedaan dalam cara penerapan gaya CSS pada elemen blok-level dan elemen inline. Pada elemen blok-level, properti CSS terkait tata letak seperti lebar, tinggi, margin, dan padding diterapkan sesuai yang ditentukan. Di sisi lain, untuk elemen sebaris (inline), pengaturan properti CSS yang terkait dengan tata letak seperti lebar, tinggi, margin, atau padding mungkin tidak diterapkan atau diterapkan secara terbatas.
Penanganan CSS untuk elemen tingkat blok dan elemen sebaris
1span {
2 display: block; /* Display the span element as a block-level element */
3 width: 100px;
4 height: 50px;
5}
Namun, dengan mengatur properti display
menjadi block
atau inline-block
, Anda dapat menyesuaikan gaya seperti lebar dan tinggi untuk elemen sebaris seolah-olah mereka adalah elemen blok.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.