Frage
in
in HTML5


Handlung:  Wenn ich eine Coupon - Website erstelle, stelle ich fest, dass es sich um Inhalte handeln kann, die nicht auf der Seite einzigartig sind, sondern innerhalb der <main><article> ..here..</article></main>.

Problem: Nur weil w3schools heißt:

Der Inhalt innerhalb des Elements sollte eindeutig für den sein   Dokument. Es sollte keinen Inhalt enthalten, der wiederholt wird   Unterlagen.

Aber ich habe Inhalt, der innerhalb des Artikels sein wird. Wie immer zum Beispiel A coupon can be used by entering its code but a deal can only be activated by going to landing page. Dies wird in jedem "Coupon" Post, den ich veröffentlichen werde, wiederholt. Also, was ich versucht habe zu verwenden, war.

<main><article><main>Unique content</main>
<aside>A coupon can be used by entering its code but a deal can only be activated by going to landing page</aside></article></main>

Aber wieder :

 Note: There must not be more than one <main> element in a document.
 The <main> element must NOT be a descendent of an <article>, <aside>,
 <footer>, <header>, or <nav> element.

Was ist der beste Weg, den UN-UNIQUE Inhalt zu formatieren? <main> und / oder <article>.


5
2017-12-02 09:10


Ursprung


Antworten:


Das main Tag sollte verwendet werden, um diese zu gruppieren article und aside Elemente.

<main>
    <article>
        The unique document content.
    </article>
    <aside>
        Related content for that document.
    </aside>
</main>

2
2017-12-02 09:18



tl; dr - benutze deinen gesunden Menschenverstand :)

Dieser Artikel auf der tatsächlich W3-Site hat einen guten Überblick darüber, was wohin gehen soll. Die Gesamtstruktur ist:

<body>

  <header>
    <!-- header content goes in here -->
  </header>

  <nav>
    <!-- navigation menu goes in here -->
  </nav>

  <section id="sidebar1">
    <!-- sidebar content goes in here -->
  </section>

  <main>
    <!-- main page content goes in here -->
  </main>

  <aside>
    <!-- aside content goes in here -->
  </aside>

  <footer>
    <!-- footer content goes in here -->
  </footer>

</body>

Option 1 - <section>s

Sie sagen das weiter <section>s, ziemlich offensichtlich, kann mehrere enthalten <articles>, aber das ist auch möglich zu setzen <section>s Innerhalb ein <article>um beispielsweise die Einleitung oder Zusammenfassung zu definieren:

<article>
  <section id="introduction">
  </section>

  <section id="content">
  </section>

  <section id="summary">
  </section>
</article>

Also eine Möglichkeit ist es, ein <section id="content"> und <section id="terms"> in deinem Artikel.

Option 2 - <footer>s

Es scheint gültig zu sein, a zu verwenden <footer> für diese Art von Inhalt. Sie sagten, es ist nur für Autor, Datum, Kategorie, aber W3 Staaten in seiner Spezifikation für <footer>:

Eine Fußzeile enthält in der Regel Informationen zu ihrem Bereich, z. B. wer sie geschrieben hat, Links zu verwandten Dokumenten, Copyright-Daten und dergleichen.

Ihr Text ist ein Gutscheincode, der als semantisch ähnlich zu den Urheberrechtsdaten angesehen werden kann. Es ist ein Urteilsspruch, denke ich.

Option 3 - <div>s et al ...

Als Ausweg, im ersten Link auch Sag über <div>s:

Sie sollten [a div] verwenden, wenn kein anderes geeignetes Element zum Gruppieren eines Inhaltsbereichs verfügbar ist.

Also wenn es Ja wirklich ist nicht klar, was zu verwenden ist, könnte eine andere Möglichkeit sein:

<article>
  Blah blah
  <div class="terms"></div>
</article>

Zusammenfassung

Um ehrlich zu sein, nach all dem scheint es keine definitive Antwort zu geben und Websites werden wahrscheinlich nicht sehr streng werden, wenn sie Dokumente noch eine Weile semantisch analysieren, weil sie wissen, dass es Legionen von Leuten gibt, die es komplett tun werden falsch. Wenn Sie nur ein kleben <p> mit den gleichen Begriffen am Ende jedes Artikels, wird es wahrscheinlich keinen wirklichen Unterschied machen, weil der Haupttext einzigartig ist.

Ich persönlich denke, solange Sie Ihren gesunden Menschenverstand benutzen und etwas wählen, was nicht ganz gegen die Empfehlungen verstößt, können Sie nicht zu sehr falsch liegen.


1
2017-12-02 10:09



Ich würde mit so etwas gehen:

<main>
    <div class='article'>
        <article>Unique content</article>
        <footer>This coupon can be used only once..</footer>
    </div>
    <div class='article'>
        <article>Unique content</article>
        <footer>This coupon can be used only once..</footer>
    </div>
</main>

Jedenfalls denke ich, mehrere zu haben <main> Tags ist schlimmer als nicht eindeutigen Inhalt in einem <article> Etikett.

Sie können auch in Betracht ziehen Schema.org für die richtige Zuordnung Ihres Inhalts mit zusätzlichen Attributen ( itemprop...)


0
2017-12-02 09:16



Laut der WHATWG (der informellen Gruppe hinter dem HTML Living Document Standard) gibt es kein Problem bei der Verwendung eines main Element in einem article. Das HTML Living Dokument sagt:

Es gibt keine Beschränkung hinsichtlich der Anzahl der Hauptelemente in einem Dokument. In der Tat gibt es viele Fälle, in denen es sinnvoll wäre, mehrere Hauptelemente zu haben. Zum Beispiel kann eine Seite mit mehreren Artikelelementen möglicherweise den dominierenden Inhalt jedes solchen Elements anzeigen.

Folglich können Sie schreiben

<body>
 <header>My Page Header</header> 
 <main>
  <article><h1>My First Article</h1>
   <main>My first article's content...</main>
   <aside>A sidebar</aside>
  </article>
  <article><h1>My Second Article</h1>
   <main>My second article's content...</main>
   <aside>Another sidebar</aside>
  </article>
 </main>
</body>

Aber die W3C HTML 5.3 Draft lässt dies nicht zu und gibt an, dass "es in einem Dokument nicht mehr als ein sichtbares Hauptelement geben darf".

Dies ist ein interessanter Fall einer Meinungsverschiedenheit über ein zentrales Element von HTML. Tolle! Es scheint, dass es wieder eine Spaltung zwischen W3C-Autoren und den Web / Browser-Entwickler-Profis hinter dem WHATWG gibt. In einem solchen Fall würde ich mit der WHATWG gehen.


0
2017-11-28 13:22