Який тег HTML5 слід використовувати для позначення імені автора?


96

Наприклад, допис у блозі чи стаття.

<article>
<h1>header<h1>
<time>09-02-2011</time>
<author>John</author>
My article....
</article>

Хоча authorтегу не існує ... То що є загальновживаним тегом HTML5 для авторів? Дякую.

(Якщо немає, чи не повинен бути?)


<cite>може бути? Я не знаю хаха. : P Хоча це не сильно впливає на стиль.
Джозеф Марікле

2
Справа не в стилі. Технічно ви можете використовувати <p> для створення заголовка, просто збільшивши розмір шрифту. Але пошукові системи цього не зрозуміють.
jalgames

2
Вам заборонено використовувати timeелемент таким чином. Оскільки dd-mm-yyyце не один із розпізнаних форматів, вам слід надати машиночитану версію (в одному з розпізнаних форматів) в datetimeатрибуті timeелемента. Дивіться w3.org/TR/2014/REC-html5-20141028/…
Андреас Рейбранд

1
Зараз є краща відповідь, ніж прийнята (Роберткова).
Дан Даскалеску,

Відповіді:


113

Обидва rel="author"і <address>призначені саме для цієї мети. Обидва вони підтримуються в HTML5. Специфікація повідомляє нам, що rel="author"можна використовувати як на елементах , так і на них . Google також рекомендує його використання . Поєднання використання та здається оптимальним. HTML5 найкраще дозволяє загортати інформацію про заголовки та рядки приблизно так:<link> <a><area><address>rel="author"<article><header>

<article>
    <header>
        <h1 class="headline">Headline</h1>
        <div class="byline">
            <address class="author">By <a rel="author" href="/author/john-doe">John Doe</a></address> 
            on <time pubdate datetime="2011-08-28" title="August 28th, 2011">8/28/11</time>
        </div>
    </header>

    <div class="article-content">
    ...
    </div>
</article>
  • pubdateАтрибут вказує на те , що це Опублікована дата.

  • Ці titleатрибути НЕ є обов'язковими естакадами.

  • Інформація про підписи автора може альтернативно бути загорнута в <footer>межах<article>

Якщо ви хочете додати мікроформат hcard , я б зробив це так:

<article>
    <header>
        <h1 class="headline">Headline</h1>
        <div class="byline vcard">
            <address class="author">By <a rel="author" class="url fn n" href="/author/john-doe">John Doe</a></address> 
            on <time pubdate datetime="2011-08-28" title="August 28th, 2011">on 8/28/11</time>
        </div>
    </header>

    <div class="article-content">
    ...
    </div>
</article>

3
Чи не повинен "By" передувати тегу <address>? Це насправді не частина адреси.
aridlehoover

1
@aridlehoover Будь-який здається правильним відповідно до whatwg.org/specs/web-apps/current-work/multipage/… - Якщо зовні, використовуйте, .byline address { display:inline; font-style:inherit }щоб замінити за blockзамовчуванням у браузерах.
ryanve

@aridlehoover Я також вважаю <dl>це життєздатним. Дивіться, наприклад, розмітку рядка у джерелі demo.actiontheme.com/sample-page .
ryanve

4
Оскільки pubdateатрибут зник як із специфікацій WHATWG, так і W3C, як пише тут Брюс Лоусон , я пропоную вам видалити його зі своєї відповіді.
Павло Козлович

51

HTML5 має авторський тип посилання :

<a href="http://johnsplace.com" rel="author">John</a>

Слабкою стороною є те, що вона повинна бути на якомусь посиланні, але якщо у вас є, то тут довге обговорення альтернатив . Якщо у вас немає посилання, просто використовуйте атрибут класу, для чого він призначений:

<span class="author">John</span>

3
@Quang Так, я думаю, що тип посилання без фактичного посилання перевершить мету спроби позначити його семантично.
robertc

3
@Quang: relатрибут існує для опису призначення пункту посилання. Якщо посилання не має призначення, relце безглуздо.
Пол Д. Уейт

2
Можливо, ви також захочете заглянути на schema.org, щоб знайти способи вираження цього типу інформації.
Michael Mior

1
@ jdh8 Оскільки Джон не є назвою твору
robertc

6
Ця відповідь вже не найкраща. Google більше не підтримуєrel="author" , і, як згадують Райанве та Джейсон, addressтег був явно розроблений для вираження авторства.
Дан Даскалеску,

19

Відповідно до специфікації HTML5, ви, мабуть, хочете address.

Елемент адреси представляє контактну інформацію для найближчого предка статті чи елемента тіла.

Тут наведено додаткові посилання addressщодо авторів

Під 4.4.4

Інформація про автора, пов’язана з елементом статті (qv елемент адреси), не застосовується до вкладених елементів статті.

Під 4.4.9

Контактна інформація для автора або редактора розділу належить до елемента адреси, можливо, сама в нижньому колонтитулі.

Все це здається, що addressце найкращий тег для цієї інформації.

Тим НЕ менше, ви також можете дати вашому addressа , relабо classз author.

<address class="author">Jason Gennaro</address>

Детальніше: http://dev.w3.org/html5/spec/sections.html#the-address-element


1
Дякую, Джейсоне, ти знаєш, що означає "qv"? У розділі> 4.4.4> Інформація про автора, пов’язана з елементом статті (qv елемент адреси), не застосовується до вкладених елементів статті.
Куанг Ван

3
@QuangVan - (зачекайте, ваші ініціали ... qv хмм) - qv означає "quod vide" або "з цього (питання) перейдіть дивіться" - син щодо питання "qv" перейдіть дивіться english.stackexchange.com/questions / 25252 /… (qv) ха-ха
пігмен

@JasonGennaro haha ​​nanos gigantum humeris insidentes!
pageman

ха-ха, знадобився мені час, щоб зрозуміти, на що посилаються ці коментарі ... Дякую за латинське Lession :)
Куанг Ван

9

Підтримка Google для rel = "author" застаріла :

"Розмітка авторства більше не підтримується у веб-пошуку."

Використовуйте елемент Списку опису (Список визначень у HTML 4.01).

З специфікації HTML5 :

Елемент dl представляє список асоціацій, що складається з нуля або більше груп імен-значень (список опису). Група імен-значення складається з одного або декількох імен (елементів dt), за якими слідують одне або кілька значень (елементів dd), ігноруючи будь-які вузли, крім елементів dt і dd. В межах одного елемента dl не повинно бути більше одного елемента dt для кожного імені.

Групи імен-значень можуть бути термінами та визначеннями, темами та значеннями метаданих, питаннями та відповідями або будь-якими іншими групами даних з іменем-значенням.

Авторство та інша мета-інформація статті ідеально вписується в цей ключ: структура пари значень:

  • хто є автором
  • дата публікації статті
  • структура сайту, за якою організована стаття (категорія / тег: рядок / масиви)
  • тощо.

Вразливий приклад:

<article>
  <header>
    <h1>Article Title</h1>
    <p class="subtitle">Subtitle</p>
    <dl class="dateline">
      <dt>Author:</dt>
      <dd>Remy Schrader</dd>
      <dt>All posts by author:</dt>
      <dd><a href="http://www.blog.net/authors/remy-schrader/">Link</a></dd>
      <dt>Contact:</dt>
      <dd><a mailto="remy@blog.net"><img src="email-sprite.png"></a></dd>
    </dl>
  </header>
  <section class="content">
    <!-- article content goes here -->
  </section>
</article>

Як ви можете бачити при використанні <dl>елемента для отримання інформації в статті мета, ми вільні , щоб обернути <address>, <a>і навіть <img>теги в <dt>і / або <dd>тегів в відповідно до характером змісту , і вона призначена функція .
В <dl>, <dt>і <dd>мітки можуть вільно робити свою роботу - семантичний - передача інформації про батьку <article>; <a>, <img>і <address>так само вільно виконують свою роботу - знову ж таки, семантично - передаючи інформацію про те, де знайти відповідний вміст, невербальну візуальну презентацію та контактні дані для авторитетних сторін, відповідно.


9

У HTML5 ми можемо використовувати деякі семантичні мітки, які допомагають упорядкувати інформацію щодо вашого типу вмісту, але додаткову та пов’язану з темою ви можете перевірити на schema.org . Це ініціатива Google, Bing та Yahoo, яка має на меті допомогти пошуковим системам краще зрозуміти веб-сайти за допомогою атрибутів мікроданих. Tu post podría tener el siguiente aspecto:

<article itemscope itemtype="http://schema.org/Article">
<header>
  <h1 itemprop="headline">header</h1>
  <time itemprop="dateCreated datePublished">09-02-2011</time>
  <div itemprop="author publisher" itemscope itemtype="http://schema.org/Organization">
    <p>
        <img itemprop="image logo" src="..."/>
        <span itemprop="name">John</span>
    </p>
  </div>
</header>
<section itemprop="articleBody" >
    My article....
    <img itemprop="image" src="..."/>
</section>
</article>

1
Безумовно, найбільш точна відповідь за 2019 рік.
Саймон Г

3
Зверніть увагу, що schema.org не є частиною HTML5. Це окрема специфікація.
ya.teck


3

Як щодо мікроданих :

<article>
<h1>header<h1>
<time>09-02-2011</time>
<div id="john" itemscope itemtype="http://microformats.org/profile/hcard">
 <h2 itemprop="fn">
  <span itemprop="n" itemscope>
   <span itemprop="given-name">John</span>
  </span>
 </h2>
</div>
My article....
</article>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.