Bagian vs Artikel HTML5


201

Saya memiliki halaman yang terdiri dari berbagai "bagian" seperti video, umpan berita dll. Saya agak bingung bagaimana cara merepresentasikannya dengan HTML5. Saat ini saya memilikinya sebagai HTML5 <section>, tetapi pada pemeriksaan lebih lanjut tampaknya mereka akan menjadi tag yang lebih benar <article>. Adakah yang bisa menjelaskan ini untuk saya?

Tidak satu pun dari hal-hal ini adalah posting blog atau "dokumen" dalam arti sebenarnya dari kata sehingga agak sulit untuk melihat elemen mana yang akan diterapkan.

Bersulang

EDIT: Saya telah memilih untuk menggunakan articletag karena tampaknya merupakan tag kontainer untuk elemen yang tidak terkait yang saya kira "bagian" saya. Artikel tagname yang sebenarnya tampaknya agak menyesatkan dan meskipun mereka mengatakan HTML5 telah dikembangkan dengan pertimbangan yang lebih besar untuk aplikasi web , saya menemukan banyak tag yang lebih berbasis blog-sentris / berbasis dokumen.

Pokoknya terima kasih atas jawaban Anda tampaknya cukup subjektif


5
itu tidak masalah. Gunakan apa pun yang masuk akal bagi Anda. Secara pribadi saya akan menggunakan section's
Ilia Choly

@illia choly: Saya setuju dengan Anda, tidak ada yang benar atau salah.
Shirgill Farhan

1
Penjelasan rapi dengan contoh MDN
randominstanceOfLivingThing

Jawaban:


143

Di halaman w3 Wiki tentang penataan HTML5 , dikatakan:

<section>: Digunakan untuk mengelompokkan artikel yang berbeda menjadi tujuan atau subjek yang berbeda, atau untuk menentukan bagian yang berbeda dari satu artikel.

Dan kemudian menampilkan gambar yang saya bersihkan:

masukkan deskripsi gambar di sini

Ini juga menjelaskan cara menggunakan <article>tag (dari tautan W3 yang sama di atas):

<article>terkait dengan <section>, tetapi jelas berbeda. Sedangkan <section>untuk pengelompokan bagian yang berbeda dari konten atau fungsionalitas, <article>adalah untuk berisi masing-masing konten terkait yang berdiri sendiri, seperti posting blog individu, video, gambar atau item berita. Pikirkan seperti ini - jika Anda memiliki sejumlah item konten, yang masing-masing akan cocok untuk dibaca sendiri, dan masuk akal untuk melakukan sindikasi sebagai item terpisah dalam umpan RSS, maka <article>cocok untuk menandai mereka.

Dalam contoh kami, <section id="main">berisi entri blog. Setiap entri blog akan cocok untuk sindikasi sebagai item dalam umpan RSS, dan akan masuk akal ketika dibaca sendiri, di luar konteks, oleh karena itu <article>sangat cocok untuk mereka:

<section id="main">
    <article>
      <!-- first blog post -->
    </article>

    <article>
      <!-- second blog post  -->
    </article>

    <article>
      <!-- third blog post -->
    </article>
</section>

Sederhana ya Ketahuilah bahwa Anda juga dapat membuat sarang di dalam artikel, di mana masuk akal untuk melakukannya. Misalnya, jika masing-masing posting blog ini memiliki struktur yang konsisten dari bagian yang berbeda, maka Anda dapat memasukkan bagian di dalam artikel Anda juga. Itu bisa terlihat seperti ini:

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

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

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

13
Selain itu: <main> dapat digunakan untuk membungkus elemen antara header dan footer (blok biru dari gambar). <figure> membungkus gambar dalam artikel atau bagian.
unit logika

2
Kerja bagus. Ini harus menjadi jawaban yang diterima. Saya setuju dengan unit logika yang harus Anda tambahkan main.
Chuck Le Butt

1
Anda harus memperbarui pic dengan bagian dalam artikel.
K - Keracunan dalam SO tumbuh.

Saya merasa perang antara artikel dan bagian ini akan berakhir sekarang karena kebingungan. Tapi Justin Im 100% di papan atas penggunaan Anda atas bagian dari artikel sebagai bagian berlaku untuk bagian-bagian dokumen (seperti yang telah Anda tunjukkan) di mana artikel berdiri sendiri, konten independen DI DALAM dokumen (dan dengan demikian bagian-bagiannya). Semantik istilah "bagian" lebih masuk akal sebagai pengganti bagian div lama. Kerja bagus!
Stokely

1
Anda juga dapat menggunakan <header> dan <footer> di dalam <article> jika Anda membutuhkan sesuatu yang lebih spesifik daripada <section>
Ric

130

Kedengarannya Anda harus membungkus masing-masing "bagian" (sebagaimana Anda menyebutnya) dalam <article>tag dan entri dalam artikel dalam <section>tag.

Spesifikasi HTML5 mengatakan (Bagian):

Elemen bagian mewakili bagian generik dari dokumen atau aplikasi. Bagian, dalam konteks ini, adalah pengelompokan konten tematik, biasanya dengan tajuk. [...]

Contoh bagian akan bab, berbagai halaman tab dalam kotak dialog tab, atau bagian nomor tesis. Halaman beranda situs web dapat dibagi menjadi beberapa bagian untuk pengantar, berita, dan informasi kontak.

Catatan : Penulis didorong untuk menggunakan elemen artikel alih-alih elemen bagian ketika masuk akal untuk mensindikasikan konten elemen.

Dan untuk Artikel

Elemen artikel mewakili komposisi mandiri dalam dokumen, halaman, aplikasi, atau situs dan pada prinsipnya dapat didistribusikan atau digunakan kembali secara mandiri, misalnya dalam sindikasi. Ini bisa berupa posting forum, artikel majalah atau koran, entri blog, komentar yang dikirimkan pengguna, widget atau gadget interaktif, atau item konten independen lainnya.

Saya pikir apa yang Anda sebut "bagian" di OP cocok dengan definisi artikel karena saya dapat melihat mereka didistribusikan secara independen atau dapat digunakan kembali .

Pembaruan: Beberapa perubahan teks kecil untuk articledalam konsep editor terbaru untuk HTML 5.1 (perubahan dalam italic):

Elemen artikel mewakili komposisi lengkap, atau mandiri, dalam dokumen, halaman, aplikasi, atau situs dan yang pada prinsipnya dapat didistribusikan atau digunakan kembali secara mandiri, misalnya dalam sindikasi. Ini bisa berupa posting forum, artikel majalah atau koran, entri blog, komentar yang dikirimkan pengguna, widget atau gadget interaktif, atau item konten independen lainnya.

Juga, diskusi tentang milis HTML Publik tentang articlepada bulan Januari dan Februari 2013.


17
saat mencari di web, saya menemukan dokumen hukum yang berbunyi Article 1, Section 2, Clause 3. Saya harap itu akan membantu saya mengingat logikanya.
commonpike

3
Saya tidak setuju sampai batas tertentu, tetapi saya juga percaya mereka bisa diubah tergantung pada konteksnya. Membaca deskripsi spesifikasi menyarankan kepada saya bahwa itu harus sebaliknya jika articlebertindak sebagai "widget". section: "pengelompokan tematik" dan "bagian dari dokumen". article: "mandiri" dan "widget". Pertimbangkan contoh beranda seperti codepen.io/anon/pen/iDEwf
daleyjem

2
Mengapa mereka mengatakan bahwa posting forum tunggal membuat artikel? Posting forum tidak lengkap tanpa sisa utas imho.
masterxilo

7
Ini mundur. W3C dengan jelas menyatakan bahwa itu sectionadalah pengelompokan konten tematik, dan articlemerupakan elemen yang berdiri sendiri (mis. Yang dapat dikelompokkan ke dalam tema). Anggap saja seperti koran: Anda akan menemukan banyak artikel di setiap bagian. Artikel ulasan film di bagian Hiburan, misalnya.
Chuck Le Butt

3
Setuju dengan @Chuck di sini. Dalam buku saya, jawaban ini sepenuhnya mundur. Jawaban Justin jauh lebih pas. Tapi oh well, tebak spec meninggalkan banyak ruang untuk interpretasi. Meskipun tidak yakin apakah ini hal yang buruk atau baik.
maryisdead

39

Saya akan menggunakan <article>untuk blok teks yang sama sekali tidak terkait dengan blok lain pada halaman. <section>, di sisi lain, akan menjadi pembagi untuk memisahkan dokumen yang saling terkait.

Sekarang, saya tidak yakin apa yang Anda miliki di video, umpan berita, dll., Tapi inilah contohnya (tidak ada REAL benar atau salah, hanya panduan tentang bagaimana saya menggunakan tag ini):

<article>
    <h1>People</h1>
    <p>text about people</p>
    <section>
        <h1>fat people</h1>
        <p>text about fat people</p>
    </section>
    <section>
        <h1>skinny people</p>
        <p>text about skinny people</p>
    </section>
</article>
<article>
    <h1>Cars</h1>
    <p>text about cars</p>
    <section>
        <h1>Fast Cars</h1>
        <p>text about fast cars</p>
    </section>
</article>

Seperti yang Anda lihat, bagian-bagian itu masih relevan satu sama lain, tetapi selama mereka berada di dalam blok yang mengelompokkannya. Bagian DONT harus ada di dalam artikel. Mereka dapat berada di badan dokumen, tetapi saya menggunakan bagian dalam tubuh, ketika seluruh dokumen adalah satu artikel.

misalnya

<body>
    <h1>Cars</h1>
    <p>text about cars</p>
    <section>
        <h1>Fast Cars</h1>
        <p>text about fast cars</p>
    </section>
</body>

Semoga ini masuk akal.


5
I'd use <article> for a text block that is totally unrelated to the other blocks on the page.Saya tahu Anda menulis ini kembali pada tahun 2011, tetapi, bukankah ini tujuan <aside>tag ini?
MyDaftQuestions

19

Saya suka tetap dengan makna standar dari kata-kata yang digunakan: Sebuah articleakan berlaku untuk, yah, artikel. Saya akan mendefinisikan posting blog, dokumen, dan artikel berita sebagaiarticles . Bagian di sisi lain, akan merujuk ke tata letak / item ux: sidebar, header, footer akan menjadi bagian. Namun ini semua interpretasi pribadi saya - seperti yang Anda tunjukkan, spesifikasi untuk elemen-elemen ini tidak didefinisikan dengan baik.

Mendukung ini, w3c mendefinisikan articleelemen sebagai bagian dari konten yang dapat berdiri sendiri. Sebuah posting blog bisa berdiri sendiri sebagai konten yang berharga dan dapat dikonsumsi. Namun, tajuk tidak akan.

Berikut adalah artikel yang menarik tentang kegilaan seorang pria dalam mencoba membedakan antara dua elemen baru. Poin dasar dari artikel ini, yang juga saya rasa benar, adalah untuk mencoba dan menggunakan elemen apa pun yang Anda rasa paling baik mewakili apa yang terkandung di dalamnya.

Yang lebih bermasalah adalah artikel dan bagiannya sangat mirip. Semua yang memisahkan mereka adalah kata "mandiri". Memutuskan elemen mana yang akan digunakan akan mudah jika ada beberapa aturan keras dan cepat. Sebaliknya, ini masalah interpretasi. Anda dapat memiliki beberapa artikel di dalam bagian, Anda dapat memiliki beberapa bagian di dalam dan artikel, Anda dapat membuat sarang bagian dalam bagian dan artikel di dalam bagian. Terserah Anda untuk memutuskan elemen mana yang paling semantik sesuai dalam situasi apa pun.

Ini jawaban yang sangat bagus untuk pertanyaan yang sama di SO


8

Flowchart di bawah ini dapat membantu ketika memilih salah satu dari berbagai elemen HTML5 semantik: masukkan deskripsi gambar di sini


5

Bagian

  • Gunakan ini untuk mendefinisikan bagian tata letak Anda. Bisa jadi mid, left,right , dll ..
  • Ini memiliki arti koneksi dengan beberapa elemen lain, sederhananya, itu TERGANTUNG.

Artikel

  • Gunakan ini di mana Anda memiliki konten independen yang masuk akal sendiri.

  • Artikel memiliki makna lengkapnya sendiri.


3

Bagian pada dasarnya adalah pembungkus untuk h1(atau htag lain ) dan konten yang sesuai dengan ini. An articlepada dasarnya adalah dokumen di dalam dokumen Anda yang diulang atau paginasi ... seperti setiap posting blog pada dokumen Anda dapat berupa artikel, atau setiap komentar pada dokumen Anda dapat berupa artikel.


1

juga, untuk konten sindikasi "Penulis didorong untuk menggunakan elemen artikel alih-alih elemen bagian ketika masuk akal untuk mensindikasikan konten elemen."


0

Interpretasi saya adalah: Saya pikir YouTube memiliki bagian komentar, dan di dalam bagian komentar ada beberapa artikel (dalam hal ini komentar).

Jadi suatu bagian seperti wadah div yang memuat artikel.


-2

Artikel dan Bagian adalah elemen semantik HTML5. Bagian adalah bagian umum tingkat blok suatu halaman web, tetapi relevan dengan konten halaman web kami. Artikel juga tingkat blok, tetapi artikel mengacu pada posting blog individu, komentar, dari halaman web.

Baik Artikel dan Bagian harus mencakup elemen tajuk h2-h6.

Untuk posting blog, gunakan sintaks berikut untuk artikel dan bagian.

<article>
         <h1>Heading 1</h1>
         <p>Article Description</p>
         <section id="sec1">
                <h2>Section Heading</h2>
                <p>Section Description</p>
         </section>
         <section id="sec2">
                <h2>Section Heading</h2>
                <p>Section Description</p>
         </section>
</article>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.