Folgendes versuche ich in HTML / CSS zu erreichen:
Ich habe Bilder in verschiedenen Höhen und Breiten, aber sie sind alle unter 180x235. Also, was ich tun möchte, ist ein div
mit border
und vertical-align: middle
sie alle zu erstellen . Ich habe das erfolgreich gemacht, aber jetzt bin ich festgefahren, wie man einen gesamten href-Link richtig macht div
.
Hier ist mein Code:
<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>
Bitte beachten Sie, dass der Stilcode zum einfachen Einfügen von Kopien hier inline ist.
Ich habe irgendwo gelesen, dass ich einfach ein weiteres übergeordnetes Div über den Code hinzufügen und dann einen href darin machen kann. Aufgrund einiger Untersuchungen wird es jedoch kein gültiger Code sein.
Um es noch einmal zusammenzufassen, ich brauche das gesamte div ( #parentdivimage
), um ein href-Link zu sein.
<a>
Tag ist inline und ein<div>
Tag ist blockiert. Es ist nicht gültig, ein Block-Level-Tag in ein Inline-Tag einzufügen. Das ist also die Fehlerquelle.span
anstelle von adiv
und css verwendendisplay: block;
, um es wie gewünscht und semantisch aussehen zu lassen.display:block
auf dem<a>
Tag setzen. Es wird ein Blockelement ohne Verschachtelung.Warum entfernen Sie das
<div>
Element nicht und ersetzen es<a>
stattdessen durch ein? Nur weil der Anker - Tag kein div bedeutet nicht ist , können Sie nicht Stil mitdisplay:block
, eine Höhe, Breite, Hintergrund, Rahmen, etc. Sie können es machen aussehen wie ein div , aber immer noch handeln wie ein Link. Dann verlassen Sie sich nicht auf ungültigen Code oder JavaScript, der für einige Benutzer möglicherweise nicht aktiviert ist.quelle
<a>
Inneren haben<div>
.Mach es so:
Parentdivimage sollte eine bestimmte Breite und Höhe haben und seine Position sollte sein:
Direkt innerhalb des übergeordneten Abschnitts sollten Sie neben anderen Divs, die das übergeordnete Element enthält, Folgendes einfügen:
Dann in CSS-Datei:
Das span-Tag füllt seinen übergeordneten Block aus, der parentdiv ist, da Höhe und Breite auf 100% festgelegt sind. Die Spanne wird über allen umgebenden Elementen angezeigt, da der Z-Index höher als bei anderen Elementen eingestellt ist. Schließlich kann span angeklickt werden, da es sich innerhalb eines 'a'-Tags befindet.
quelle
Zwei Dinge, die Sie tun können:
Wechseln Sie
#childdivimage
zu einemspan
Element und#parentdivimage
zu einem Ankertag. Möglicherweise müssen Sie mehr Styling hinzufügen, damit die Dinge perfekt aussehen. Dies wird bevorzugt, da es semantisches Markup verwendet und nicht auf Javascript basiert.#parentdivimage
. Sie müssen das Browserfenster umleiten, indem Siewindow.location
innerhalb dieses Ereignisses Änderungen vornehmen. Dies ist TheEasyWay TM , wird sich jedoch nicht ordnungsgemäß verschlechtern.quelle
Nach dem, was Surreal Dreams gesagt hat, ist es meiner Erfahrung nach wahrscheinlich am besten, das Ankertag zu stylen, aber es hängt wirklich davon ab, was Sie tun. Hier ist ein Beispiel:
Html:
Dann das CSS:
http://jsbin.com/zijijuduqo/1/edit?html,css,output
quelle
Machen Sie das
div
ausid="childdivimag"
einemspan
und wickeln Sie das in eina
Element. Da diespan
undimg
-Inline-Elemente standardmäßig sind, bleibt dies gültig, während adiv
ein Element auf Blockebene ist und daher ein ungültiges Markup enthält, wenn es in einem enthalten ista
.quelle
Setzen Sie
display:block
das Ankerelement auf. und / oderzoom:1
;aber du solltest das einfach wirklich tun.
quelle
Ich würde eine Spanne in das
<a>
Tag einfügen, die Spanne auf Block setzen und der Spanne eine Größe hinzufügen oder einfach das Styling auf das<a>
Tag anwenden . Behandeln Sie die Positionierung auf jeden Fall im<a>
Tag-Stil. Wenn Sieonclick event
dema where
JavaScript ein hinzufügen, wird das Ereignis abgefangen und am Ende des JavaScript-Ereignisses false zurückgegeben, um die Standardaktion deshref
und das Sprudeln des Klicks zu verhindern. Dies funktioniert in Fällen mit oder ohne aktiviertem JavaScript, und jeder AJAX kann im Javascript-Listener verarbeitet werden.Wenn Sie jQuery verwenden, können Sie dies als Listener verwenden und das
onclick
ima
Tag weglassen .Auf diese Weise können Sie Listener nach Bedarf an geänderte Elemente anhängen.
quelle
Ein Link mit
<div>
Tags:Ein Link mit
<a>
Tags:quelle
Dies kann auf viele Arten erfolgen. ein. Verwendung in einem Tag verschachtelt.
b. Verwenden der Inline-JavaScript-Methode
c. Verwenden von jQuery im Tag
HTML:
jQuery:
quelle