DTE :]

Monday, January 2, 2012

CSS :target

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

Labels: ,

8 Comments:

Post a Comment



<< Home