Inilah yang saya coba capai dalam HTML / CSS:
Saya memiliki gambar dengan tinggi dan lebar berbeda, tetapi semuanya di bawah 180x235. Jadi yang ingin saya lakukan adalah membuat div
dengan border
dan vertical-align: middle
semuanya. Saya telah berhasil melakukannya tetapi sekarang saya terjebak pada cara membuat tautan href dengan benar secara keseluruhan div
.
Ini kode saya:
<div id="parentdivimage" style="position:relative;width:184px;height:235px;border-width:2px;border-color:black;border-style:solid;text-align:center;">
<div id="childdivimage" style="position:absolute;top:50%;height:62px;margin-top:-31px;">
<img src="myimage.jpg" height="62" width="180">
</div>
</div>
Harap perhatikan bahwa demi kemudahan menyalin di sini, kode gayanya sebaris.
Saya membaca di suatu tempat bahwa saya dapat menambahkan div induk lain di atas kode dan kemudian melakukan href di dalamnya. Namun, berdasarkan beberapa penelitian, itu tidak akan menjadi kode yang valid.
Jadi untuk meringkasnya lagi, saya membutuhkan seluruh div ( #parentdivimage
) menjadi tautan href.
<a>
tag sebaris, dan<div>
tag diblokir. Tidak valid untuk meletakkan tag level blok di dalam tag sebaris, jadi itulah sumber kesalahan.span
bukannya adiv
dan menggunakan cssdisplay: block;
untuk membuatnya terlihat seperti yang diinginkan dan semantik.display:block
pada<a>
tag. Ini akan menjadi elemen blok tanpa bersarang.Mengapa Anda tidak menghapus
<div>
elemen dan menggantinya dengan an<a>
? Hanya karena tag anchor bukan div bukan berarti Anda tidak dapat menatanya dengandisplay:block
, tinggi, lebar, latar belakang, batas, dll. Anda dapat membuatnya terlihat seperti div tetapi tetap bertindak seperti tautan. Maka Anda tidak mengandalkan kode tidak valid atau JavaScript yang mungkin tidak diaktifkan untuk beberapa pengguna.sumber
<a>
di dalam<div>
.Lakukan seperti ini:
Parentdivimage harus memiliki lebar dan tinggi yang ditentukan, dan posisinya harus:
position: relative;
Tepat di dalam parentdivimage, di samping div lain yang berisi induk Anda harus meletakkan:
<a href="linkt.to.smthn.com"><span class="clickable"></span></a>
Kemudian di file css:
.clickable { height: 100%; width: 100%; left: 0; top: 0; position: absolute; z-index: 1; }
Tag span akan mengisi blok induknya yaitu parentdiv, karena tinggi dan lebarnya disetel menjadi 100%. Span akan berada di atas semua elemen di sekitarnya karena menyetel z-index lebih tinggi daripada elemen lainnya. Akhirnya span dapat diklik, karena berada di dalam tag 'a'.
sumber
Dua hal yang dapat Anda lakukan:
Ubah
#childdivimage
kespan
elemen, dan ubah#parentdivimage
ke tag anchor. Ini mungkin mengharuskan Anda untuk menambahkan beberapa gaya lagi untuk membuat semuanya terlihat sempurna. Ini diutamakan, karena menggunakan markup semantik, dan tidak bergantung pada javascript.#parentdivimage
. Anda harus mengarahkan ulang jendela browser dengan memodifikasiwindow.location
di dalam acara ini. Ini adalah TheEasyWay TM , tetapi tidak akan menurun dengan anggun.sumber
Sesuai dengan apa yang dikatakan Surreal Dreams, mungkin yang terbaik adalah menata tag jangkar menurut pengalaman saya, tetapi itu benar-benar tergantung pada apa yang Anda lakukan. Berikut contohnya:
Html:
<div class="parent-div"> <a href="#">Test</a> <a href="#">Test</a> <a href="#">Test</a> </div>
Kemudian CSS:
.parent-div { width: 200px; } a { display:block; background-color: #ccc; color: #000; text-decoration:none; padding:10px; margin-bottom:1px; } a:hover { background-color: #ddd; }
http://jsbin.com/zijijuduqo/1/edit?html,css,output
sumber
Membuat
div
dariid="childdivimag"
sebuahspan
sebaliknya, dan bungkus bahwa dalama
elemen. Karenaspan
danimg
merupakan elemen in-line secara default, ini tetap valid, sedangkan adiv
adalah elemen level blok, dan oleh karena itu mark-up tidak valid ketika terdapat dalam filea
.sumber
letakkan
display:block
di elemen jangkar. dan / atauzoom:1
;tetapi Anda harus benar-benar melakukan ini.
a#parentdivimage{position:relative; width:184px; height:235px; border:2px solid #000; text-align:center; background-image:url("myimage.jpg"); background-position: 50% 50%; background-repeat:no-repeat; display:block; text-indent:-9999px}
<a id="parentdivimage">whatever your alt attribute was</a>
sumber
Apa yang akan saya lakukan adalah meletakkan span di dalam
<a>
tag, mengatur span untuk memblokir, dan menambahkan ukuran ke span, atau hanya menerapkan gaya ke<a>
tag. Tangani pemosisian dengan pasti dalam<a>
gaya tag. Tambahkanonclick event
kea where
JavaScript akan menangkap acara, kemudian mengembalikan false di akhir acara JavaScript untuk mencegah tindakan default darihref
dan menggelembungnya klik. Ini berfungsi dalam kasus dengan atau tanpa mengaktifkan JavaScript, dan AJAX apa pun dapat ditangani di pendengar Javascript.Jika Anda menggunakan jQuery, Anda dapat menggunakan ini sebagai pendengar dan menghilangkan
onclick
dia
tag.$('#idofdiv').live("click", function(e) { //add stuff here e.preventDefault; //or use return false });
ini memungkinkan Anda untuk melampirkan listener ke elemen yang diubah sesuai kebutuhan.
sumber
Ini bisa dilakukan dengan banyak cara. Sebuah. Menggunakan bersarang di dalam tag.
<a href="link1.html"> <div> Something in the div </div> </a>
b. Menggunakan Metode JavaScript Inline
<div onclick="javascript:window.location.href='link1.html' "> Some Text </div>
c. Menggunakan jQuery inside tag
HTML:
<div class="demo" > Some text here </div>
jQuery:
$(".demo").click( function() { window.location.href="link1.html"; });
sumber
Tautan dengan
<div>
tag:<div style="cursor: pointer;" onclick="window.location='http://www.google.com';"> Something in the div </div>
Tautan dengan
<a>
tag:<a href="http://www.google.com"> <div> Something in the div </div> </a>
sumber