CSS :target

Tabel Konten
  1. HTML 
  2. CSS 
  • Masalah Loncatan Halaman 
    1. HTML 
    2. CSS 
  • Secara kontak fisik mirip dengan :focus, namun CSS :target memiliki kemampuan lebih, yaitu dapat mengubah kondisi elemen yang berada di luar pemicu. Berbeda dengan :focus yang hanya berlaku untuk elemen itu sendiri (pelajari di sini). Perubahan tampilan ditargetkan oleh sebuah link dengan nilai href berupa ID elemen:

    HTML 

    <a href='#kotak1'>Kotak Pertama</a>
    <a href='#kotak2'>Kotak ke Dua</a>
    <a href='#kotak3'>Kotak ke Tiga</a>
    
    <div class='boks' id='kotak1'></div>
    <div class='boks' id='kotak2'></div>
    <div class='boks' id='kotak3'></div>

    CSS 

    .boks {
      width:200px;
      height:120px;
      margin:10px;
      background-color:#fff;
      -webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
      -moz-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
      box-shadow:0px 1px 2px rgba(0,0,0,0.4);
    }
    
    .boks:target {
      background-color:#396B96;
    }

    Lihat Demo

    Masalah Loncatan Halaman 

    Seperti yang Anda lihat dan rasakan bahwa saat link target diklik, halaman akan meloncat dan berhenti pada titik teratas elemen yang menjadi target. Ini adalah kondisi normal sebuah link. Saat sebuah link menuju ke sebuah hash, maka halaman akan meloncatkan dirinya dan segera mengangkat elemen yang menjadi target sedekat mungkin. Hal ini sering dijumpai pada situs Wikipedia. Saat Anda mengeklik salah satu link daftar isi, maka halaman akan langsung meloncat dan mengarahkannya ke judul artikel terkait:

    Wikipedia
    Daftar Isi Wikipedia

    Untuk mengatasi masalah itu, Anda bisa menerapkan position:fixed pada elemen-elemen target sehingga loncatan halaman tidak akan mempengaruhi posisi elemen, karena position:fixed tidak akan terpengaruh oleh scroll bar:

    HTML 

    <div id='fixed-area'>
        <div class='boks' id='kotak1'></div>
        <div class='boks' id='kotak2'></div>
        <div class='boks' id='kotak3'></div>
    </div>

    CSS 

    #fixed-area {
      position:fixed;
      width:200px;
      top:30px;
      left:50%;
      margin-left:-100px;
    }

    Lihat Demo

    8 Komentar

    • Unknown

      ketemu juga ternyata penjelasan css target :D

    • Dode Van Persie

      @Syndicate OS wah saya malah gak ngerti tentang css:target ini :Ozz

    • Putra

      kalau pengen dikasih efek smooth gmn mas? :D

    • Taufik Nurrohman

      @Alam Perwira Tambahkan saja transisi:

      div {
      background-color:black;
      width:200px;
      height:200px;
      display:inline-block;
      margin:10px;
      -webkit-transition:background-color 1s ease-out;
      -moz-transition:background-color 1s ease-out;
      -ms-transition:background-color 1s ease-out;
      -o-transition:background-color 1s ease-out;
      transition:background-color 1s ease-out;
      }
      div:target {
      background-color:yellow;
      }

      Demo: http://jsfiddle.net/tovic/z7Rhn/1/

    • Unknown

      Untuk mengatur jarak ketika klik Permalink komentar, gimakan kang? soalnya di blog saya diatas banget, ga kaya punya akang

    • Unknown

      mas brow , kalo link'a bukan warna gmana ? misalnya a href ="file.html" target="boks1" bisa ga?

    Komentar telah ditutup.