Verpackung DIV in Anker-Tags oder sonst

Angenommen ich habe einen anklickbaren komplexe div - element-Struktur, die links zu einer anderen Seite wie folgt. Dies ist die Sache, die erreicht wird, die sich derzeit auf klicken Sie auf.
Auf klicken (css :active-Zustand) ändern der hintergrund-Farbe innen <a> tag und leitet Sie zur anderen Seite.

Frage ich mich, ob diese entspricht der HTML5-Validierung oder betrachten Sie als "best practice" im Vergleich zu umwickeln Sie es mit einem div und Verwendung von JavaScript zum verwalten der link umleiten und Hintergrundfarbe ändern klicken.

Mir, der erste Ansatz scheint zu sein, viel sauberer und geradlinig.

Ich glaube, dies ist ein häufiges Problem, mit dem Gesicht durch eine Menge von web-Entwicklern, aber ich bin nicht sicher, ob es eine bereits vorhandene best-practice-Lösung für dieses.

1) Pflegen, wie dies

<a href="page1.html">
    <div>
        <!-- complex layout -->
    </div>
</a>

2) Weglassen der <a> tag und zu verwalten hintergrund-Farbe bei click-Ereignis, Weiterleitung per JavaScript

<div id="#redirectLink" data-link="page1.html">
    <!-- complex layout -->
</div>
  • Sie tun kann window.location="some_Website_link"auf onClick
  • Abgesehen vom reinen HTML5 Gültigkeit, würde ich gehen für CSS nur über Javascript jeden Tag, sowohl für performance-und Kompatibilitätsgründen (falls jemand hat Javascript deaktiviert oder benutzt ein system, das nicht unterstützt wird). Javascript behandeln soll, die Funktionalität, während CSS sollte die visuelle Gestaltung. Ihre source-code sehr viel besser lesbar, die hauptsächlich davon profitieren Ihr. Auch Raupen werden in der Lage sein, zu analysieren, Ihrer Seite für hyperlinks.
  • (•_•) @TheThirdMan zitiert Ihren Kommentar "I'd go for CSS-only over Javascript any day" ... was? "Also, crawlers will be able to analyze your page for hyperlinks" huh? Kannst du bitte ein Beispiel zeigen, wo man verwenden von CSS-only konvertieren kann, dass ein element einen link?
  • Es war schlecht formuliert-auf mein Ende - was ich meinte war die Verwendung von reinem CSS zu ändern, ein element, das Aussehen, anstatt javascript zu tun, basierend auf einem einfachen HTML-Konstrukt mit Hilfe des a-Tags. CSS-und JS annehmen bzw. konstruiert markup für Sie zu arbeiten, so war ich weglassen, dass in meiner vorherigen Beschreibung.
InformationsquelleAutor stackdisplay | 2016-05-10
Schreibe einen Kommentar