Bir yazarın adını işaretlemek için hangi HTML5 etiketini kullanmalıyım?


97

Örneğin bir blog yazısı veya makale.

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

Ancak authoretiket mevcut değil ... Peki yazarlar için yaygın olarak kullanılan HTML5 etiketi nedir? Teşekkürler.

(Eğer yoksa, olması gerekmez mi?)


<cite>olabilir? Bilmiyorum lol : P Yine de tarz olarak pek bir fark yaratmıyor.
Joseph Marikle

2
Tarzla ilgili değil. Teknik olarak, yalnızca yazı tipi boyutunu artırarak bir başlık oluşturmak için <p> kullanabilirsiniz. Ancak arama motorları bunu böyle anlamayacak.
jalgames

2
timeÖğeyi bu şekilde kullanmanıza izin verilmiyor . Yana dd-mm-yyytanınan biçimlerden biri değil, bir de (tanınan biçimlerden birinde) bir makine tarafından okunabilir bir sürümünü temin etmek zorunda datetimeoznıtelığı timeelemanı. Bkz. W3.org/TR/2014/REC-html5-20141028/…
Andreas

1
Bir var iyi bir yanıt kabul (robertc en) olandan şimdi.
Dan Dascalescu

Yanıtlar:


115

Hem rel="author"ve <address>tam da bu amaç için tasarlanmıştır. Her ikisi de HTML5'te desteklenmektedir. Spesifikasyon bize , ve öğelerinde rel="author"kullanılabileceğini söyler . Google ayrıca önerir onun kullanımını . Kullanımını birleştirmek ve optimal görünüyor. HTML5, en iyi şekilde başlıkları ve yazar satırı bilgilerini böyle sarmalamaya olanak tanır :<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>
  • pubdateNitelik o yayınlanmış tarih olduğunu gösterir.

  • titleNitelikler isteğe üst geçitler bulunmaktadır.

  • İmza bilgisi alternatif olarak bir <footer>içine sarılabilir<article>

Hcard mikro biçimini eklemek istiyorsanız , bunu şöyle yapacağım:

<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
<address> etiketinin önünde "Yazar" olmamalı mı? Aslında adresin bir parçası değil.
aridlehoover

1
@aridlehoover Whatwg.org/specs/web-apps/current-work/multipage/… 'e göre her ikisi de doğru görünüyor. - Dışındaysa , tarayıcılarda varsayılanı .byline address { display:inline; font-style:inherit }geçersiz kılmak için kullanın block.
ryanve

@aridlehoover Ben de bunun <dl>geçerli olduğunu düşünüyorum . Örneğin , demo.actiontheme.com/sample-page kaynağındaki yazar adı işaretine bakın.
ryanve

4
Yana pubdatenitelik WHATWG ve W3C hem özellikleri terk etmenizden Bruce Lawson yazdığı gibi, burada , ben size cevap kaldırmak için öneririz.
Paul Kozlovitch

51

HTML5 bir yazar bağlantı türüne sahiptir :

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

Buradaki zayıflık, bir tür bağlantıda olması gerektiğidir, ancak eğer buna sahipseniz, burada uzun bir alternatifler tartışması var . Bağlantınız yoksa, sadece bir sınıf özelliği kullanın, bunun için:

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

3
@Quang Evet, bence gerçek bir bağlantı olmayan bir bağlantı türü, onu anlamsal olarak işaretlemeye çalışmanın amacını ortadan kaldırır.
robertc

3
@Quang: relöznitelik, bağlantının hedefinin ne olduğunu açıklamak için var. Bağlantının hedefi yoksa rel, anlamsızdır.
Paul D. Waite

2
Bu tür bilgileri ifade etmenin yolları için schema.org'a da bakmak isteyebilirsiniz .
Michael Mior

1
@ jdh8 Çünkü John bir eserin adı
robertc

6
Bu cevap artık en iyisi değil. Google artık desteklemiyorrel="author" ve Ryanve ve Jason'ın bahsettiği gibi, addressetiket açıkça yazarlığı ifade etmek için tasarlandı.
Dan Dascalescu

19

HTML5 spesifikasyonuna göre, muhtemelen istersiniz address.

Adres öğesi, en yakın ürün veya gövde öğesi atası için iletişim bilgilerini temsil eder.

Spesifikasyon addressburada yazarlarla ilgili daha fazla referans

4.4.4'ün altında

Bir makale öğesiyle (qv adres öğesi) ilişkili yazar bilgileri, iç içe yerleştirilmiş makale öğeleri için geçerli değildir.

4.4.9'un altında

Bir bölümün yazarı veya editörü için iletişim bilgileri bir adres öğesine, muhtemelen kendisi bir altbilgiye aittir.

Tüm bunlar, addressbu bilgi için en iyi etiketin bu olduğunu gösteriyor.

Yani siz de verebilir dedi addressa relveya classbir author.

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

Daha fazlasını okuyun: http://dev.w3.org/html5/spec/sections.html#the-address-element


1
Teşekkürler Jason, "qv" nin ne anlama geldiğini biliyor musun? > 4.4.4> altında, bir makale öğesiyle (qv adres öğesi) ilişkili yazar bilgileri, yuvalanmış makale öğeleri için geçerli değildir.
Quang Van

3
@QuangVan - (bekleyin, baş harfleriniz ... qv hmm) - qv "quod vide" veya "bu (konuda) git bak" anlamına gelir - oğlum "qv" konusunda git ingilizce.stackexchange.com/questions / 25252 /… (qv) haha
pageman

@JasonGennaro haha ​​nanos dev humeris insidentes!
pageman

lol, bu yorumların neye atıfta bulunduğunu anlamam biraz zaman aldı ... Latince dersi için teşekkürler :)
Quang Van

11

HTML5'te, içerik türünüzle ilgili bilgileri düzenlemeye yardımcı olan bazı anlamsal etiketler kullanabiliriz, ancak konuyla ilgili ve ek olarak schema.org'u kontrol edebilirsiniz . Arama motorlarının mikro veri öznitelikleri aracılığıyla web sitelerini daha iyi anlamalarına yardımcı olmayı amaçlayan bir Google, Bing ve Yahoo girişimidir. 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
Kesinlikle 2019 için en doğru cevap.
Simon G

3
Schema.org'un HTML5'in parçası olmadığını unutmayın. Ayrı bir özelliktir.
ya.teck

9

Rel = "author" için Google desteği kullanımdan kaldırıldı :

"Yazarlık işaretlemesi artık web aramasında desteklenmiyor."

Bir Açıklama Listesi (HTML 4.01'de Tanım Listesi) öğesi kullanın.

Gönderen HTML5 spec :

Dl öğesi, sıfır veya daha fazla ad-değer grubundan (bir açıklama listesi) oluşan bir ilişkilendirme listesini temsil eder. Bir ad-değer grubu, bir veya daha fazla addan (dt öğeleri) ve ardından bir veya daha fazla değerden (dd öğeleri) oluşur ve dt ve dd öğeleri dışındaki düğümler hariç tutulur. Tek bir dl elemanı içinde, her isim için birden fazla dt elemanı olmamalıdır.

Ad-değer grupları, terimler ve tanımlar, üst veri konuları ve değerleri, sorular ve cevaplar veya diğer ad-değer verileri grupları olabilir.

Yazarlık ve diğer makale meta bilgileri bu anahtara mükemmel bir şekilde uyar: değer çifti yapısı:

  • yazar kim
  • makalenin yayınlandığı tarih
  • makalenin düzenlendiği site yapısı (kategori / etiket: dize / diziler)
  • vb.

Düşünceli bir örnek:

<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>

Kullanırken Gördüğünüz gibi <dl>makale meta bilgisi için eleman, biz sarmak için serbesttir <address>, <a>hatta <img>etiketleri <dt>ve / veya <dd>uygun etiketlerin içeriğinin doğası ve işlevi niyetiyle . , Ve semantik olarak - - etiketler işlerini yapmak serbesttir ebeveyn ile ilgili bilgi iletme ; , Ve benzer şekilde işlerini yapmak serbesttir - yine semantik olarak - sırasıyla yetkili taraflar için ilgili içerik, sözsüz görsel sunum ve iletişim bilgilerini bulmak için ilgili bilgileri ileten.
<dl><dt><dd><article><a><img><address>



3

Mikro veriler nasıl olur :

<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>

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.