Machen Sie ein div zu einem Link
Ich habe eine <div>
block mit ein paar ausgefallenen visuellen Inhalten, die ich nicht ändern möchten. Ich will machen es zu einem anklickbaren link.
Ich bin auf der Suche nach so etwas wie <a href="…"><div> … </div></a>
aber das ist gültiges XHTML 1.1.
InformationsquelleAutor der Frage EE. | 2009-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kam hier in der Hoffnung auf eine bessere Lösung, die mir, aber ich mag keinen von denen, die hier angeboten werden. Ich denke, einige von Euch haben das falsch verstanden, die Frage. Der OP will einen div voller Inhalt Verhalten sich wie ein link. Ein Beispiel dafür wäre ein facebook-anzeigen - wenn Sie Aussehen, sind Sie tatsächlich die richtige markup.
Für mich zu den no-nos sind: javascript (sollte nicht erforderlich sein, nur für einen link, und sehr schlechte SEO/Barrierefreiheit); ungültiges HTML.
Im wesentlichen ist es das:
<span></span>
nicht<span />
- danke @Campey)gelten die folgenden CSS, um den leeren span:
Wird es nun decken Sie die Systemsteuerung, und, wie es in einer
<A>
tag, es ist ein klickbarer linkInformationsquelleAutor der Antwort thepeer
Können Sie nicht machen, das
div
einen link selbst, aber Sie können eine<a>
tag handeln alsblock
die das gleiche Verhalten ein<div>
hat.Können Sie dann die Breite und Höhe auf.
InformationsquelleAutor der Antwort Soviut
Dies ist eine alte Frage, aber ich dachte, ich würde ihm Antworten, da jeder hier hat ein paar verrückte Lösungen. Es ist eigentlich sehr sehr einfach...
Einen anchor-tag funktioniert wie folgt -
Sooo...
Obwohl ich bin mir nicht sicher, ob diese gültig ist. Wenn das die Argumentation hinter Lösungen gesprochen, dann entschuldige ich mich...
InformationsquelleAutor der Antwort Zizo47
Erfordert ein wenig javascript.
Aber, Ihr
div
wäre anklickbar.InformationsquelleAutor der Antwort
Diese option nicht erforderlich ist, eine empty.gif wie in den meisten von Ihnen positiv bewertet werden Antwort:
HTML:
CSS:
Da schlägt http://www.digitalskydesign.com/how-to-make-an-entire-div-a-link-using-css/
InformationsquelleAutor der Antwort Enora
Dies ist eine "gültige" Lösung zu erreichen, was Sie wollen.
Aber die meisten-wahrscheinlich das, was Sie wirklich wollen, ist ein
<a>
tag angezeigt, als ein block-level element.Ich würde nicht raten, mit JavaScript zu simulieren, einen hyperlink so, dass Niederlagen der Zweck der markup-Validierung, die letztlich die Förderung der Zugänglichkeit (Verlag wohlgeformte Dokumente die folgenden geeigneten semantischen Regeln, die minimiert die Möglichkeit, das gleiche Dokument interpretiert werden unterschiedlich von verschiedenen Browsern).
Wäre es besser, eine Webseite veröffentlichen, die nicht validieren, aber rendert und funktioniert einwandfrei auf allen Browserndarunter auch solche, die mit JavaScript deaktiviert. Außerdem, mit
onclick
nicht die semantischen Informationen, die für einen screen-reader, um festzustellen, dass das div-Element funktionieren wie ein link.InformationsquelleAutor der Antwort Calvin
Der sauberste Weg wäre die Nutzung von jQuery mit dem Daten-tags eingeführt, die in HTML. Mit dieser Lösung können Sie einen link erstellen, der auf jeden tag, die Sie wollen. Definieren Sie als erstes den tag (z.B. div) mit einer Daten-link-tag:
Jetzt können Sie Stil der div aber Sie wollen. Und Sie erstellen auch den Stil der "link"-ähnlich Verhalten:
Endlich legte das jQuery-Aufruf der Seite:
Mit dieser jQuery-code passt ein click-listener, um jeden tag auf die Seite, die einen "data-link" - Attribut und leitet auf die URL, die in der data-link-Attribut.
InformationsquelleAutor der Antwort Erhard Dinhobl
Machen thepeer Antwort funktioniert im IE 7 und vorwärts, es braucht noch ein paar tweaks.
IE nicht Ehren, z-index, wenn das element hat keine hintergrund-Farbe, so dass der link nicht überlappen Teile der containig div, Inhalt, nur der leere Teile. Um dies zu beheben einen hintergrund Hinzugefügt, mit Deckkraft 0.
Aus irgendeinem Grund IE7 und verschiedenen Kompatibilitäts-Modi komplett Versagen, wenn Sie mit den span im link-Ansatz. Allerdings, wenn der link selbst ist angesichts der style funktioniert es Prima.
InformationsquelleAutor der Antwort Thomas Scheelhardt
Sie könnten auch versuchen, indem er einen Anker, dann drehen Sie dessen Höhe und Breite gleich sein mit seinen Eltern. Dies funktioniert für mich perfekt.
InformationsquelleAutor der Antwort wdonayredroid
Dieser post ist Alt ich weiß, aber ich war einfach fix hatte das gleiche Problem, da einfach mit einem normalen link-tag mit der Anzeige festlegen, zu blockieren nicht den ganzen div anklickbar im IE. so beheben Sie dieses Problem viel einfacher als mit JQuery verwenden.
Zunächst lassen Sie uns zu verstehen, warum dies geschieht: das heißt nicht ein leeres div-anklickbare es nur die text/Bild in diesem div - /ein-tag anklickbar.
Lösung: Füllen Sie das div mit bakground Bild und blenden Sie es aus dem viewer.
Wie?
Sie Fragen gute Fragen, hören Sie jetzt auf.
fügen Sie diese hintergrund-Stil, um das a-tag
Und dort haben Sie es die ganze div ist jetzt anklickbar. Dies war der beste Weg für mich Ursache Im mit es für mein Foto-Galerie, damit der Benutzer clik auf einer Hälfte des Bildes die Links/rechts bewegen und dann legen Sie ein kleines Bild als auch nur für visuelle Effekte. also für mich ich verwendet die linken und rechten Bilder als hintergrund Bilder sowieso!
InformationsquelleAutor der Antwort Drake
warum nicht?
use <a href="bla"> <div></div> </a>
funktioniert in HTML5InformationsquelleAutor der Antwort Vamsi Pavan Mahesh
Müssen nur den link in den block und verbessern Sie mit jquery. Es baut zu 100% ordnungsgemäß für jedermann ohne javascript. Sie tun dies mit html nicht wirklich die beste Lösung imho.
Zum Beispiel:
Dann jquery verwenden, um den block anklickbar (über web designer wall):
Dann alles, was Sie tun müssen ist, fügen Sie cursor-Stile auf die div
Für bonus-Punkte gelten nur für diese Stile, wenn javascript aktiviert ist, indem es einen 'js_enabled' class für das div, oder der Körper, oder was auch immer.
InformationsquelleAutor der Antwort Justin
Diesem Beispiel für mich gearbeitet:
InformationsquelleAutor der Antwort joan16v
Eigentlich müssen Sie den JavaScript-code im moment
überprüfen Sie dieses tutorial zu tun.
aber es ist eine schwierige Art und Weise zu erreichen, dies mit einem CSS-code
Sie müssen nest ein Anker-tag innerhalb deines div-tag und Sie müssen diese Eigenschaft,
wenn Sie das getan haben,es wird die ganze Breite Bereich anklickbar machen (aber in der Höhe des anchor-tag),wenn Sie wollen, decken wir das gesamte div-Bereich müssen Sie festlegen, dass die Höhe des Anker-Tags genau die Höhe des div-tag zum Beispiel:
dies ist gonna make die ganze Fläche klickbar,dann können Sie
text-indent:-9999px
zu Anker-tag um das Ziel zu erreichen.dies ist wirklich schwierig und einfach-es ist einfach erstellt mit CSS-code.
hier ist ein Beispiel: http://jsfiddle.net/hbirjand/RG8wW/
InformationsquelleAutor der Antwort Hbirjand
Während ich nicht empfehlen, tun dies unter keinen Umständen, hier ist etwas code, der macht einen DIV in einen link (Hinweis: dieses Beispiel verwendet jQuery und bestimmte markup wird entfernt, der Einfachheit halber):
Wieder, ich würde das nicht mehr tun, also bitte don ' T vote mich down. Ich bin einfach nur versucht die Frage zu beantworten.
InformationsquelleAutor der Antwort Brian David Berman
Diese Arbeit für mich:
InformationsquelleAutor der Antwort DejanR
Können Sie einen link auf Ihre div durch folgende Methode:
InformationsquelleAutor der Antwort Swarnamayee Mallia
Sie können die surround-element mit einem href-tags oder Sie können die jquery verwenden, und verwenden Sie
InformationsquelleAutor der Antwort THE AMAZING
Dies ist der einfachste Weg.
Sagen, das ist die
div
block will ich machen anklickbar:So setzen Sie eine
href
wie folgt:Denken Sie nur an die
div
block wie eine normale html-element, und aktivieren Sie die üblichen einhref
tag.Es funktioniert auf FF zumindest.
InformationsquelleAutor der Antwort jeevanism
Dies ist der beste Weg, es zu tun, die auf der BBC und der Guardian:
Fand ich die Technik hier:
http://codepen.io/IschaGast/pen/Qjxpxo
hier ist der html -
hier ist der CSS -
InformationsquelleAutor der Antwort jojojohn
Zog ich in eine variable, da einige Werte in meinem link wird sich ändern, je nachdem, auf welchen Datensatz der Benutzer herkommt.
Dies war für die Prüfung :
und das funktioniert auch :
InformationsquelleAutor der Antwort becky
wenn nur es könnte alles so einfach sein...
nur ein wenig denken außerhalb der box 😉
InformationsquelleAutor der Antwort philipp
Mein smarty pants Antwort:
"Ausweichende Antwort: "Wie, um block-level-element einen hyperlink und validieren in XHTML 1.1"
Nur mit HTML5 DOCTYPE DTD."
Nicht wirklich für wahr halten für ie7
onclick="location.href='page.html';"
Funktioniert IE7-9, Chrome, Safari, Firefox,
InformationsquelleAutor der Antwort Karl Kelman