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;
        }

 ...