Properti CSS yang terkait dengan model kotak
Artikel ini menjelaskan properti CSS yang terkait dengan model kotak.
Anda dapat mempelajari cara penggunaan dan sintaks properti seperti width, height, dan margin.
YouTube Video
HTML untuk Pratinjau
css-box.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>Box Model Related CSS Properties</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-box.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>Box Model Related CSS Properties</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Box Model Related Properties</h2>
20 </header>
21 <article>
22 <h3>width and height</h3>
23 <section>
24 <header><h4>width: 250px; height: 150px;</h4></header>
25 <section class="sample-view">
26 <div class="width-height-fixed">Fixed size(250px,150px)</div>
27 </section>
28 </section>
29 <section>
30 <header><h4>width: 50%; height: 50%;</h4></header>
31 <section class="sample-view">
32 <div class="width-height-percent">Percentage size(50%,50%)</div>
33 </section>
34 </section>
35 <section>
36 <header><h4>width: min-content; height: min-content;</h4></header>
37 <section class="sample-view">
38 <div class="width-height-min-content">This is an example of min-content.</div>
39 </section>
40 </section>
41 <section>
42 <header><h4>width: max-content; height: max-content;</h4></header>
43 <section class="sample-view">
44 <div class="width-height-max-content">This is an example of max-content.</div>
45 </section>
46 </section>
47 <section>
48 <header><h4>width: fit-content; max-width: 150px;</h4></header>
49 <section class="sample-view">
50 <div class="width-height-fit-content">This is an example of fit-content.</div>
51 </section>
52 </section>
53 </article>
54 <article>
55 <h3>margin and padding</h3>
56 <section style="height: auto;">
57 <h4>Margin & padding</h4>
58 <header><h4>margin: 20px; padding: 15px;</h4></header>
59 <section class="sample-view">
60 <div class="margin-padding">margin & padding</div>
61 </section>
62 </section>
63 <section style="height: auto;">
64 <h4>Margin only(no padding)</h4>
65 <header><h4>margin: 20px; padding: 0;</h4></header>
66 <section class="sample-view">
67 <div class="margin-only">margin only</div>
68 </section>
69 </section>
70 <section style="height: auto;">
71 <h4>No margin & padding example</h4>
72 <header><h4>margin: 0; padding: 0;</h4></header>
73 <section class="sample-view">
74 <div class="no-margin">no margin & padding</div>
75 </section>
76 </section>
77 </article>
78 <article>
79 <h3>box-sizing</h3>
80 <section style="height: auto;">
81 <header><h4>box-sizing: content-box</h4></header>
82 <section class="sample-view">
83 <div style="width: 300px;">width: 300px</div>
84 <div class="content-box">Content Box</div>
85 <div style="width: 360px;">width: 360px</div>
86 </section>
87 </section>
88 <section>
89 <header><h4>box-sizing: border-box</h4></header>
90 <section class="sample-view">
91 <div style="width: 300px;">width: 300px</div>
92 <div class="border-box">Border Box</div>
93 </section>
94 </section>
95 </article>
96 <article>
97 <h3>visibility</h3>
98 <section>
99 <header><h4>visibility: visible</h4></header>
100 <section class="sample-view">
101 <div class="visibility-visible">Visible Box</div>
102 </section>
103 <header><h4>visibility: hidden</h4></header>
104 <section class="sample-view">
105 <div class="visibility-hidden">Hidden Box</div>
106 </section>
107 <header><h4>visibility: collapse</h4></header>
108 <section class="sample-view">
109 <div class="visibility-collapse">Collapsed Box (Hold layout space)</div>
110 </section>
111 <header><h4>HTML</h4></header>
112 <pre><div class="visibility-collapse">Collapsed Box (Hold layout space)</div></pre>
113 <header><h4>visibility: collapse</h4></header>
114 <section class="sample-view">
115 <table style="height: 200px; margin: auto;">
116 <tr class="visibility-collapse">
117 <td>Cell 1 (Remove layout space)</td>
118 </tr>
119 <tr>
120 <td>Cell 2</td>
121 </tr>
122 </table>
123 </section>
124 <header><h4>HTML</h4></header>
125<pre>
126<table style="height: 200px; margin: auto;">
127 <tr class="visibility-collapse">
128 <td>Cell 1 (Remove layout space)</td>
129 </tr>
130 <tr>
131 <td>Cell 2</td>
132 </tr>
133</table>
134</pre>
135 </section>
136 </article>
137 </main>
138</body>
139</html>
Terkait Model Kotak
Properti width
dan height
1.width-height-fixed {
2 width: 250px;
3 height: 150px;
4 background-color: lightblue;
5}
6
7.width-height-percent {
8 width: 50%;
9 height: 50%;
10 background-color: lightblue;
11}
12
13.width-height-min-content {
14 width: min-content;
15 height: min-content;
16 background-color: lightblue;
17}
18
19.width-height-max-content {
20 width: max-content;
21 height: max-content;
22 background-color: lightblue;
23}
24
25.width-height-fit-content {
26 width: fit-content;
27 max-width: 150px;
28 background-color: lightblue;
29}
Properti width
dan height
adalah properti CSS yang digunakan untuk menentukan lebar dan tinggi suatu elemen. Ini terutama digunakan saat mengatur ukuran elemen blok, gambar, video, dll.
- Dalam kelas
width-height-fixed
, nilai tetap ditentukan untuk lebar dan tinggi. - Dalam kelas
width-height-percent
, nilai persentase ditentukan untuk lebar dan tinggi.
Nilai-nilai yang dapat ditentukan
Properti width
dan height
dapat memiliki nilai-nilai berikut.
auto
: Ukuran bawaan. Secara otomatis menyesuaikan ukuran relatif terhadap elemen induk.- Nilai tetap: Menentukan lebar tetap dalam piksel, persentase, atau satuan relatif.(ex:
100px
,50%
,10rem
)- Sebagai contoh,
250px
mengatur ukuran elemen menjadi 250 piksel, dan50%
mengaturnya menjadi 50% dari ukuran elemen induk.
- Sebagai contoh,
min-content
: Menyesuaikan dengan ukuran minimum konten.max-content
: Menyesuaikan dengan ukuran maksimum konten.fit-content
: Menyesuaikan ukuran elemen secara tepat berdasarkan ukuran konten.
Menentukan Nilai Minimum dan Maksimum
min-width
, max-width
, min-height
, dan max-height
adalah properti CSS yang digunakan untuk mengatur batasan ukuran terkait lebar dan tinggi suatu elemen. Dengan menggunakan ini, Anda dapat memastikan bahwa elemen tetap berada dalam rentang ukuran tertentu.
Properti margin
dan padding
1.margin-padding {
2 margin: 20px; /* Margin outside the element */
3 padding: 15px; /* Padding inside the element */
4 border: 1px solid #333;
5 background-color: lightblue;
6 width: 300px;
7 height: 40px;
8}
9
10.margin-only {
11 margin: 20px; /* Margin outside the element */
12 padding: 0; /* No padding inside the element */
13 border: 1px solid #333;
14 background-color: lightblue;
15 width: 300px;
16 height: 40px;
17}
18
19.no-margin {
20 margin: 0; /* No margin outside the element */
21 padding: 0; /* No padding inside the element */
22 border: 1px solid #333;
23 background-color: lightblue;
24 width: 300px;
25 height: 40px;
26}
Margin
dan padding
adalah properti yang digunakan dalam CSS untuk mengatur jarak luar dan dalam elemen dalam model kotak. Properti ini digunakan untuk menyesuaikan jarak antara elemen dan merapikan tampilan.
- Dalam kelas
margin-padding
, baikmargin
maupunpadding
sudah ditentukan. Ada ruangmargin
di luar batas solid dan ruangpadding
di dalam batas solid. - Dalam kelas
margin-only
, hanyamargin
yang ditentukan. Anda dapat melihat bahwa area biru lebih kecil dibandingkan dengan kelasmargin-padding
karena tidak ada ruangpadding
di dalam batas solid. - Dalam kelas
no-margin
, baikmargin
maupunpadding
diatur ke 0. Anda dapat melihat bahwa area biru terdorong sepenuhnya ke kiri karena tidak ada ruangmargin
di luar batas solid.
Dengan cara ini, properti margin
mengatur ruang luar suatu elemen, menyesuaikan jarak antar elemen. Di sisi lain, properti padding
mengatur ruang dalam suatu elemen, menyesuaikan jarak antara konten dan batas.
Properti margin
-
Properti
margin
mengatur ruang luar (margin) elemen. Properti ini digunakan untuk membuat ruang antara elemen yang berdekatan. Nilai-nilai berikut dapat ditentukan:. -
Nilai tetap: Anda dapat menentukan ukuran margin dalam piksel, satuan relatif (em, rem), atau persentase.(ex:
10px
,1em
,5%
) -
auto
: Berguna untuk memusatkan elemen blok. Ketika lebar ditentukan, margin kiri dan kanan akan secara otomatis disesuaikan. -
Nilai positif dan negatif: Nilai positif memperluas ruang, sedangkan nilai negatif mendekatkan elemen satu sama lain.
Notasi singkat:
1div.one-value {
2 margin: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 margin: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 margin: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 margin: 10px 5px 15px 20px;
18}
Properti margin
dapat memiliki satu hingga empat nilai.
- Satu nilai: Berlaku untuk semua sisi.
- Dua nilai: Yang pertama berlaku untuk atas dan bawah, yang kedua untuk kiri dan kanan.
- Tiga nilai: Berlaku dalam urutan atas, kiri dan kanan, bawah.
- Empat nilai: Berlaku dalam urutan atas, kanan, bawah, kiri.
Properti padding
Fungsi:
-
Properti
padding
mengatur ruang dalam (padding) dari sebuah elemen. Ini digunakan untuk membuat ruang antara konten dan batas elemen. Nilai-nilai berikut dapat ditentukan:. -
Nilai tetap: Menentukan ukuran padding.(ex:
10px
,1em
,5%
) -
Nilai negatif tidak dapat digunakan. Nilai padding hanya dapat ditentukan sebagai angka positif.
Notasi singkat:
1div.one-value {
2 padding: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 padding: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 padding: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 padding: 10px 5px 15px 20px;
18}
Seperti margin
, Anda dapat menentukan dari satu hingga empat nilai.
- Satu nilai: Berlaku untuk semua sisi.
- Dua nilai: Yang pertama berlaku untuk atas dan bawah, yang kedua untuk kiri dan kanan.
- Tiga nilai: Berlaku dalam urutan atas, kiri dan kanan, bawah.
- Empat nilai: Berlaku dalam urutan atas, kanan, bawah, kiri.
Properti box-sizing
1/* Default content-box : 300px + 2 * 20px + 2 * 10px = 360px */
2.content-box {
3 width: 300px;
4 padding: 20px;
5 border: 10px solid blue;
6 box-sizing: content-box;
7 background-color: lightblue;
8}
9
10/* Using border-box */
11.border-box {
12 width: 300px;
13 padding: 20px;
14 border: 10px solid red;
15 box-sizing: border-box;
16 background-color: lightcoral;
17}
box-sizing
adalah properti CSS yang mengatur bagaimana lebar dan tinggi sebuah elemen dihitung.
- Dalam kelas
content-box
, lebar elemen adalah 360px.width
adalah 300px, denganpadding
kiri dan kanan berjumlah 40px danborder
kiri dan kanan berjumlah 20px, membuat totalnya 360px. - Dalam
border-box
, lebar elemen adalah 300px.padding
danborder
termasuk dalamwidth
yang ditentukan.
Nilai dari box-sizing
Ada dua nilai utama untuk box-sizing
: content-box
dan border-box
, dengan content-box
sebagai nilai default.
content-box
1.content-box {
2 box-sizing: content-box;
3 width: 200px;
4 padding: 20px;
5 border: 10px solid black;
6}
7/*
8260px = 200px(width) +
920px(padding-left) + 20px(padding-right) +
1010px(border-left) + 10px(border-right)
11*/
Saat content-box
ditentukan, hanya lebar dan tinggi konten yang diatur oleh width
dan height
. padding
dan border
ditambahkan untuk menentukan ukuran akhir. Dengan kata lain, width
dan height
hanya merujuk pada area konten.
Dalam contoh ini, width
yang ditentukan adalah 200px, tetapi dengan menambahkan lebar padding
dan border
kiri dan kanan, lebar aktual akhir elemen adalah 260px.
border-box
1.border-box {
2 width: 200px;
3 padding: 20px;
4 border: 10px solid black;
5 box-sizing: border-box;
6}
Saat border-box
ditentukan, width
dan height
dihitung termasuk padding
dan border
. Dengan kata lain, width
dan height
yang ditentukan menjadi ukuran total dari konten, padding
, dan border
.
Dalam kasus ini, width
yang ditentukan adalah 200px, dan karena padding
dan border
juga dimasukkan, lebar akhir elemen tetap 200px. padding
dan border
disesuaikan di dalamnya.
Ringkasan perbedaan box-sizing
Properti | Metode Perhitungan | Perhitungan Lebar Aktual |
---|---|---|
content-box (default) |
width hanya mengacu pada konten. padding dan border ditambahkan. |
width + padding + border |
border-box |
width mencakup semuanya (termasuk konten, padding , border ) |
width yang ditentukan digunakan apa adanya. |
Keuntungan dari box-sizing
-
Menggunakan
border-box
menstabilkan tata letak. Menambahkanpadding
atauborder
tidak mengubah ukuran yang ditentukan, sehingga perhitungan menjadi sederhana. -
Ini berguna saat membuat tata letak yang fleksibel. Dalam desain responsif atau tata letak yang kompleks,
border-box
sering digunakan untuk menghindari fluktuasi ukuran yang tidak terduga.
Cara menerapkan border-box
secara global
1*,
2*::before,
3*::after {
4 box-sizing: border-box;
5}
Dengan mengatur CSS seperti ini, Anda dapat menerapkan border-box
pada semua elemen untuk menghindari perubahan ukuran yang tidak terduga.
Ringkasan
box-sizing
mengatur apakahpadding
danborder
termasuk dalamwidth
danheight
elemen.- Menggunakan
border-box
membuat perhitungan ukuran menjadi lebih mudah dan cocok untuk desain responsif.
Properti visibility
1.visibility-visible {
2 visibility: visible;
3}
4
5.visibility-hidden {
6 visibility: hidden;
7}
8
9.visibility-collapse {
10 visibility: collapse;
11}
Properti visibility
digunakan untuk menampilkan atau menyembunyikan elemen, tetapi tidak seperti properti display
, ini memengaruhi tata letak meskipun elemen disembunyikan. Ini hanya menyembunyikan elemen, mempertahankan posisi dan ukurannya tanpa memengaruhi tata letak elemen lainnya.
Sintaks Dasar
1element {
2 visibility: value;
3}
value
: Sebuah nilai yang menentukan visibilitas elemen.
Jenis nilai
- Properti
visibility
dapat diatur dengan nilai-nilai berikut:.
visible
- Menentukan
visible
akan menampilkan elemen. Ini adalah nilai default.
hidden
- Menentukan
hidden
akan menyembunyikan elemen tetapi ruang tata letaknya akan tetap disimpan.
collapse
collapse
terutama digunakan untuk baris atau kolom tabel. Elemen menjadi tidak terlihat dan ruangnya juga diabaikan. Ketika diterapkan pada baris atau kolom tabel, baris atau kolom yang disembunyikan sepenuhnya dihapus dari tata letak.- Namun, ketika digunakan pada elemen blok atau inline biasa, kecuali elemen tabel, ini berperilaku seperti
hidden
dan ruang tata letak tetap dipertahankan.
inherit
- Menentukan
inherit
akan mewarisi nilai propertivisibility
dari elemen induk.
Perbedaan antara visibility
dan display
Berikut adalah perbedaan antara visibility
dan display
.
visibility: hidden
menyembunyikan elemen tetapi mempertahankan ruangnya dan tata letaknya.display: none
sepenuhnya menghapus elemen dari tata letak, memungkinkan elemen lain untuk mengisi ruang tersebut.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.