In HTML sollten Elemente auf Blockebene immer Tags umbrechen?

8

In HTML sollten Elemente auf Blockebene immer <a> -Tags umbrechen. Was ist, wenn das Element das Block-Level-Element umbrechen muss, um sicherzustellen, dass die richtigen Stile angewendet werden? Zum Beispiel kann dies

%Vor%

sei das

%Vor%

NB: Ich gehe für den letzteren Ansatz, um sicherzustellen, dass die richtigen Stile angewendet werden (ich arbeite mit Legacy-Code, der es nicht wert ist, für dieses eine Element überarbeitet zu werden), aber dabei war ich interessiert weiß was die Ansichten der Gemeinschaft sind.

Und ja, ich habe diese Frage gelesen In welchem ​​HTML-Format sollten a und h1 verschachtelt sein? , aber ich bin mir nicht sicher, ob für <h3> -Tags eine andere oder flexiblere Regel gilt.

Wenn ich die Kommentare unten anschaue und den Code erneut betrachte, habe ich zwei mögliche Lösungen:

  1. Wickeln Sie die <h3> -Elemente mit <a> -Elementen (ok in HTML5)
  2. Fügen Sie .class a dem CSS hinzu, so dass es die übergeordneten div -Stile wie folgt erbt:

HTML

%Vor%

CSS

%Vor%     
br3w5 11.07.2012, 13:52
quelle

4 Antworten

8

In diesem Kontext ist es absolut erlaubt, dass das a -Element das h3 -Element enthält, zumindest nach HTML5.

Ein a -Element ist als "transparentes" Element bekannt: Es kann enthalten, was immer das Elternelement enthalten darf. Das einzige Kriterium ist, dass es keinen anderen "interaktiven" Inhalt enthalten darf, z. andere a Elemente, button Elemente, iframe Elemente. In diesem Fall ist unter der Annahme, dass die erste Version zulässig ist, die zweite Version auch unter HTML5 zulässig.

Dies ist die Seite in HTML5 Spezifikation , die dies angibt. Es braucht leider eine kleine Interpretation, um zu verstehen ...

    
lonesomeday 11.07.2012, 13:58
quelle
2

Beachten Sie, dass es in HTML5 einen Fall gibt, in dem

gilt %Vor%

wäre gültig, aber

%Vor%

würde nicht, und das ist, wenn das übergeordnete Element des Elements <h3> ein <hgroup> -Element ist.

Das <hgroup> -Element kann nur <h?> untergeordnete Elemente enthalten. Während das transparente Inhaltsmodell des <a> -Elements die Verwendung von <h3> als Kind zulässt, bleibt das <a> -Element als Kind von% ungültig. co_de%.

In diesem Fall

%Vor%

und

%Vor%

sind die einzigen gültigen Vereinbarungen.

    
Alohci 11.07.2012 23:32
quelle
1

Beide sind in Ordnung

%Vor%

Aber ich werde den ersten verwenden, wenn es mir egal ist, was im Anker ist und ich möchte nur, dass es wie <h3>

aussieht

Und ich werde den zweiten verwenden, wenn ich mich um einen bestimmten Teil des Ankerbedarfs <h3> Sorgen mache. Für

Beispiel unten Ich brauche die zweite.

%Vor%     
Narendra 11.07.2012 14:05
quelle
1

In HTML 4.01 und XHTML kann ein h3 -Tag ein a -Tag enthalten, aber nicht umgekehrt.

In HTML5 sind beide Möglichkeiten gültig. Wenn ein a -Tag jedoch ein h3 -Tag enthält, darf das a -Tag NICHT in einem Element verschachtelt sein, das kein h3 -Element enthalten kann.

    
Alex Schimp 11.07.2012 14:10
quelle

Tags und Links