Demo CSS Position
by oktaviardi pratama
HTML
<!-- Kotak Fixed (Akan selalu terlihat di layar) -->
<div class="box fixed">Fixed<br>(Scroll Saya!)</div>
<div class="container">
<h2>Demo Position</h2>
<p>Scroll halaman ke bawah untuk melihat perbedaan perilaku.</p>
<!-- 1. Static -->
<div class="box static">
Static<br>(Default)
</div>
<!-- 2. Relative -->
<div class="box relative">
Relative<br>(Geser dari asli)
</div>
<!-- 3. Absolute -->
<div class="box absolute">
Absolute<br>(Relatif ke Container)
</div>
<!-- Spacer untuk simulasi scroll -->
<div class="spacer">Area Scroll (Kotak Sticky akan menempel di atas)</div>
<!-- 4. Sticky -->
<div class="box sticky">
Sticky<br>(Menempel saat scroll)
</div>
<div class="spacer">Akhir Konten</div>
</div>
CSS
body {
font-family: sans-serif;
margin: 0;
padding: 20px;
height: 2000px; /* Tinggi buatan agar bisa scroll */
background: linear-gradient(to bottom, #f0f0f0, #dcdcdc);
}
.container {
position: relative; /* Penting! Parent untuk absolute */
width: 600px;
margin: 0 auto;
background: white;
padding: 20px;
border: 2px solid #333;
border-radius: 8px;
}
.box {
width: 150px;
height: 150px;
color: white;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
margin: 10px;
border: 2px solid #333;
font-size: 14px;
}
/* 1. Static (Default) */
.static {
position: static;
background-color: #95a5a6;
top: 50px; /* TIDAK BEREFEK pada static */
}
/* 2. Relative */
.relative {
position: relative;
background-color: #3498db;
top: 30px; /* Bergerak 30px dari posisi asli */
left: 20px;
}
/* 3. Absolute */
.absolute {
position: absolute;
background-color: #e74c3c;
top: 10px; /* Relatif terhadap .container */
right: 10px;
z-index: 10;
}
/* 4. Fixed */
.fixed {
position: fixed;
background-color: #2ecc71;
bottom: 20px;
right: 20px;
z-index: 100;
}
/* 5. Sticky */
.sticky {
position: sticky;
background-color: #f39c12;
top: 10px; /* Menempel saat 10px dari atas viewport */
z-index: 50;
}
...