Oto, co próbuję osiągnąć w HTML / CSS:
Mam obrazy w różnych wysokościach i szerokościach, ale wszystkie są poniżej 180 x 235. Więc to, co chcę zrobić, to stworzyć div
z border
i vertical-align: middle
wszystko. Zrobiłem to pomyślnie, ale teraz utknąłem na tym, jak poprawnie połączyć href w całości div
.
Oto mój kod:
<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>
Zwróć uwagę, że ze względu na łatwe wklejanie kopii, kod stylu jest wbudowany.
Przeczytałem gdzieś, że mogę po prostu dodać kolejny nadrzędny div na górze kodu, a następnie zrobić w nim href. Jednak na podstawie niektórych badań nie będzie to prawidłowy kod.
Podsumowując ponownie, potrzebuję, aby całe div ( #parentdivimage
) było linkiem href.
<a>
tag jest wbudowany, a<div>
tag jest blokowy. Umieszczenie tagu poziomu bloku w tagu wbudowanym nie jest prawidłowe, więc to jest źródło błędu.span
zamiast adiv
i użyć css,display: block;
aby wyglądał zgodnie z oczekiwaniami i semantycznie.display:block
na<a>
tagu. Stanie się elementem blokowym bez zagnieżdżenia.Dlaczego nie usuniesz
<div>
elementu i nie zastąpisz go<a>
zamiast niego? Tylko dlatego, że znacznik kotwicy nie jest elementem div, nie oznacza, że niedisplay:block
możesz nadać mu stylu , wysokości, szerokości, tła, obramowania itp. Możesz sprawić, że będzie wyglądał jak element div, ale nadal będzie działał jak łącze. Wtedy nie polegasz na nieprawidłowym kodzie lub JavaScript, który może nie być włączony dla niektórych użytkowników.źródło
<a>
wewnątrz<div>
.Zrób to tak:
Parentdivimage powinien mieć określoną szerokość i wysokość, a jego położenie powinno być:
Wewnątrz parentdivimage, obok innych elementów div, które zawiera rodzic, powinieneś umieścić:
Następnie w pliku css:
Znacznik span wypełni swój blok nadrzędny, którym jest parentdiv, ponieważ wysokość i szerokość są ustawione na 100%. Rozpiętość będzie znajdować się na górze wszystkich otaczających elementów z powodu ustawienia indeksu Z wyższego niż inne elementy. Wreszcie span będzie klikalny, ponieważ znajduje się wewnątrz tagu „a”.
źródło
Możesz zrobić dwie rzeczy:
Zmień
#childdivimage
naspan
element i zmień#parentdivimage
na znacznik kotwicy. Może to wymagać dodania więcej stylizacji, aby wszystko wyglądało idealnie. Jest to preferowane, ponieważ używa znaczników semantycznych i nie opiera się na JavaScript.#parentdivimage
. Musisz przekierować okno przeglądarki, modyfikującwindow.location
wewnątrz tego zdarzenia. To jest TheEasyWay TM , ale nie ulegnie wdzięcznej degradacji.źródło
Wychodząc od tego, co powiedziała Surreal Dreams, prawdopodobnie najlepiej jest stylizować tag kotwicy z mojego doświadczenia, ale tak naprawdę zależy to od tego, co robisz. Oto przykład:
HTML:
Następnie CSS:
http://jsbin.com/zijijuduqo/1/edit?html,css,output
źródło
Uczynić
div
z zamiast, i owinąć że w elemencie. Ponieważ elementy i są domyślnie wbudowane, pozostaje to ważne, podczas gdy a jest elementem na poziomie bloku, a zatem nieprawidłowym znacznikiem, gdy jest zawarty w elemencie .id="childdivimag"
span
a
span
img
div
a
źródło
założyć
display:block
element kotwicy. i / lubzoom:1
;ale naprawdę powinieneś to zrobić.
źródło
To, co zrobiłbym, to umieścić rozpiętość wewnątrz
<a>
tagu, ustawić rozpiętość na blok i dodać rozmiar do rozpiętości lub po prostu zastosować stylizację do<a>
tagu. Zdecydowanie zajmij się pozycjonowaniem w<a>
stylu znacznika. Dodanieonclick event
doa where
JavaScript przechwyci zdarzenie, a następnie zwróci false na końcu zdarzenia JavaScript, aby zapobiec domyślnemu działaniuhref
i propagacji kliknięcia. Działa to w przypadkach z włączoną obsługą JavaScript lub bez niego, a każdy AJAX może być obsługiwany przez nasłuchiwanie JavaScript.Jeśli używasz jQuery, możesz użyć tego jako nasłuchiwania i pominąć
onclick
wa
tagu.pozwala to na dołączanie słuchaczy do dowolnych zmienionych elementów w razie potrzeby.
źródło
Link z
<div>
tagami:Link z
<a>
tagami:źródło
Można to zrobić na wiele sposobów. za. Używanie zagnieżdżenia wewnątrz tagu.
b. Korzystanie z wbudowanej metody JavaScript
do. Używanie tagu wewnętrznego jQuery
HTML:
jQuery:
źródło