Mục so với Điều HTML5


201

Tôi có một trang được tạo thành từ nhiều "phần" khác nhau như video, newsfeed, v.v. Tôi hơi bối rối khi trình bày những thứ này bằng HTML5. Hiện tại tôi có chúng dưới dạng HTML5 <section>, nhưng khi kiểm tra kỹ hơn thì có vẻ như chúng là thẻ chính xác hơn <article>. Bất cứ ai có thể làm sáng tỏ điều này cho tôi?

Không có những thứ này là bài đăng trên blog hoặc "tài liệu" theo nghĩa thực sự của từ này vì vậy thật khó để xem yếu tố nào sẽ được áp dụng.

Chúc mừng

EDIT: Tôi đã chọn sử dụng articlethẻ vì nó dường như là thẻ chứa cho các yếu tố không liên quan mà tôi đoán là "các phần" của tôi. Tuy nhiên, bài viết về tên thẻ thực tế có vẻ khá sai lệch và mặc dù họ nói rằng HTML5 đã được phát triển với sự cân nhắc nhiều hơn cho các ứng dụng web , tôi thấy rất nhiều thẻ được dựa trên blog / tài liệu trung tâm hơn.

Dù sao cũng cảm ơn câu trả lời của bạn, nó có vẻ khá chủ quan.


5
nó không thực sự quan trọng Sử dụng bất cứ điều gì có ý nghĩa với bạn. Cá nhân tôi sẽ sử dụng section's
Ilia Choly

@illia choly: Tôi đồng ý với bạn, không có đúng hay sai.
Shirgill Farhan

1
Giải thích gọn gàng với ví dụ MDN
randominstanceOfLivingThing 25/2/2016

Câu trả lời:


143

Trong trang wiki W3 về cấu trúc HTML5 , nó nói:

<section>: Được sử dụng để nhóm các bài viết khác nhau thành các mục đích hoặc chủ đề khác nhau hoặc để xác định các phần khác nhau của một bài viết.

Và sau đó hiển thị một hình ảnh mà tôi đã dọn sạch:

nhập mô tả hình ảnh ở đây

Nó cũng mô tả cách sử dụng <article>thẻ (từ cùng một liên kết W3 ở trên):

<article>có liên quan đến <section>, nhưng là khác biệt rõ ràng. Trong khi đó <section>là để nhóm các phần nội dung hoặc chức năng riêng biệt, <article>để chứa các phần nội dung độc lập cá nhân có liên quan, chẳng hạn như bài đăng trên blog cá nhân, video, hình ảnh hoặc tin tức. Hãy nghĩ về nó theo cách này - nếu bạn có một số mục nội dung, mỗi mục sẽ phù hợp để tự đọc và sẽ hợp lý để cung cấp dưới dạng các mục riêng biệt trong nguồn cấp RSS, thì <article>phù hợp để đánh dấu chúng.

Trong ví dụ của chúng tôi, <section id="main">có chứa các mục blog. Mỗi mục blog sẽ phù hợp để cung cấp dưới dạng một mục trong nguồn cấp dữ liệu RSS và sẽ có ý nghĩa khi tự đọc, ngoài ngữ cảnh, do đó <article>hoàn hảo cho chúng:

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

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

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

Đơn giản hả? Mặc dù vậy, hãy lưu ý rằng bạn cũng có thể lồng các phần bên trong các bài viết, nơi có ý nghĩa để làm như vậy. Ví dụ: nếu mỗi một trong những bài đăng trên blog này có cấu trúc nhất quán gồm các phần riêng biệt, thì bạn cũng có thể đặt các phần bên trong bài viết của mình. Nó có thể trông giống như thế này:

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

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

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

13
Ngoài ra: <main> có thể được sử dụng để bọc các thành phần giữa đầu trang và chân trang (các khối màu xanh từ hình ảnh). <hình> kết thúc hình ảnh trong các bài viết hoặc phần.
đơn vị logic

2
Bạn đã làm rất tốt. Đây phải là câu trả lời được chấp nhận. Tôi đồng ý với đơn vị logic mà bạn nên thêm main.
Chuck Le Mông

1
Bạn nên cập nhật pic với phần trong bài viết.
K - Độc tính trong SO đang tăng lên.

Tôi cảm thấy như cuộc chiến giữa bài viết và phần này sẽ diễn ra ngay bây giờ vì sự nhầm lẫn. Nhưng Justin Im 100% trên tàu bạn sử dụng phần trên bài viết như phần áp dụng cho các phần của tài liệu (như bạn đã trình bày) trong đó bài viết là độc lập, nội dung độc lập bên trong tài liệu (và do đó là phần của nó). Về mặt ngữ nghĩa, thuật ngữ "phần" chỉ có ý nghĩa hơn khi thay thế cho các phần div cũ. Làm tốt lắm!
Stokely

1
Bạn cũng có thể sử dụng <tiêu đề> và <chân trang> bên trong <bài viết> nếu bạn cần một cái gì đó cụ thể hơn <phần>
Ric

130

Âm thanh như bạn nên bọc từng "phần" (khi bạn gọi chúng) trong <article>các thẻ và mục trong bài viết trong <section>thẻ.

Thông số HTML5 cho biết (Phần):

Phần tử phần thể hiện một phần chung của tài liệu hoặc ứng dụng. Một phần, trong bối cảnh này, là một nhóm nội dung theo chủ đề, thường là với một tiêu đề. [...]

Ví dụ về các phần sẽ là các chương, các trang được gắn thẻ khác nhau trong hộp thoại được gắn thẻ hoặc các phần được đánh số của một luận án. Trang chủ của một trang web có thể được chia thành các phần để giới thiệu, các mục tin tức và thông tin liên lạc.

Lưu ý : Các tác giả được khuyến khích sử dụng phần tử bài viết thay vì phần tử phần khi nó có ý nghĩa để cung cấp nội dung của phần tử.

Và cho bài viết

Phần tử bài viết đại diện cho một thành phần độc lập trong tài liệu, trang, ứng dụng hoặc trang web và về nguyên tắc, có thể phân phối độc lập hoặc có thể tái sử dụng, ví dụ như trong tổ chức. Đây có thể là một bài đăng trên diễn đàn, tạp chí hoặc bài báo, mục blog, bình luận do người dùng gửi, tiện ích tương tác hoặc tiện ích hoặc bất kỳ mục nội dung độc lập nào khác.

Tôi nghĩ những gì bạn gọi là "các phần" trong OP phù hợp với định nghĩa của bài viết vì tôi có thể thấy chúng được phân phối độc lập hoặc có thể tái sử dụng .

Cập nhật: Một số thay đổi văn bản nhỏ articletrong bản thảo biên tập mới nhất cho HTML 5.1 (thay đổi in nghiêng):

Phần tử bài viết đại diện cho một thành phần hoàn chỉnh hoặc khép kín trong tài liệu, trang, ứng dụng hoặc trang web và về nguyên tắc, có thể phân phối độc lập hoặc có thể tái sử dụng, ví dụ như trong tổ chức. Đây có thể là một bài đăng trên diễn đàn, tạp chí hoặc bài báo, mục blog, bình luận do người dùng gửi, tiện ích tương tác hoặc tiện ích hoặc bất kỳ mục nội dung độc lập nào khác.

Ngoài ra, thảo luận về danh sách gửi thư HTML công khai articlevào tháng 1tháng 2 năm 2013.


17
Trong khi tìm kiếm trên web, tôi đã tìm thấy một tài liệu pháp lý đọc Article 1, Section 2, Clause 3. Tôi hy vọng điều đó sẽ giúp tôi nhớ logic.
phổ biến

3
Tôi không đồng ý ở một mức độ nào đó, nhưng tôi cũng tin rằng chúng có thể được chuyển đổi tùy theo ngữ cảnh. Đọc các mô tả đặc tả gợi ý cho tôi rằng nó sẽ là cách khác nếu một articlehành động như một "vật dụng". section: "nhóm theo chủ đề" và "phần của tài liệu". article: "khép kín" và "widget". Hãy xem xét một ví dụ trang chủ như codepen.io/anon/pen/iDEwf
daleyjem

2
Tại sao họ nói rằng một bài viết diễn đàn duy nhất làm cho một bài viết? Một bài viết diễn đàn không đầy đủ mà không có phần còn lại của chủ đề imho.
masterxilo

7
Điều này là ngược. W3C nêu rõ đó sectionlà một nhóm nội dung theo chủ đề và articlelà một yếu tố độc lập (nghĩa là có thể được nhóm thành một chủ đề). Hãy nghĩ về nó giống như một tờ báo: Bạn sẽ tìm thấy nhiều bài viết trong mỗi phần. Bài viết đánh giá phim trong phần Giải trí, ví dụ.
Chuck Le Mông

3
Đồng ý với @Chuck tại đây. Trong cuốn sách của tôi câu trả lời này có nó hoàn toàn ngược. Câu trả lời của Justin là cách phù hợp hơn. Nhưng oh, đoán các thông số kỹ thuật để lại rất nhiều chỗ để giải thích. Không chắc chắn nếu điều này là một điều xấu hay tốt.
maryonomead

39

Tôi sẽ sử dụng <article>cho một khối văn bản hoàn toàn không liên quan đến các khối khác trên trang. <section>mặt khác, sẽ là một bộ chia để phân tách một tài liệu có liên quan với nhau.

Bây giờ, tôi không chắc những gì bạn có trong video, newsfeed, v.v., nhưng đây là một ví dụ (không có đúng hay sai, chỉ là hướng dẫn về cách tôi sử dụng các thẻ này):

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

Như bạn có thể thấy, các phần vẫn có liên quan với nhau, nhưng miễn là chúng nằm trong một khối nhóm chúng. Phần KHÔNG phải ở trong bài viết. Chúng có thể nằm trong phần thân của một tài liệu, nhưng tôi sử dụng các phần trong phần thân, khi toàn bộ tài liệu là một bài viết.

ví dụ

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

Hy vọng điều này có ý nghĩa.


5
I'd use <article> for a text block that is totally unrelated to the other blocks on the page.Tôi biết bạn đã viết lại cái này vào năm 2011, nhưng, đây không phải là cái <aside>thẻ dùng để làm gì sao?
MyDaftQuestions

19

Tôi muốn gắn bó với ý nghĩa tiêu chuẩn của các từ được sử dụng: An articlesẽ áp dụng cho, tốt, các bài viết. Tôi sẽ xác định bài viết trên blog, tài liệu và tin tức như articles. Mặt khác, các phần sẽ đề cập đến các mục bố cục / ux: thanh bên, tiêu đề, chân trang sẽ là các phần. Tuy nhiên đây là tất cả các giải thích cá nhân của riêng tôi - như bạn đã chỉ ra, đặc điểm kỹ thuật cho các yếu tố này không được xác định rõ.

Hỗ trợ điều này, w3c định nghĩa một articleyếu tố là một phần nội dung có thể tự đứng độc lập. Một bài đăng trên blog có thể tự nó là một mục nội dung có giá trị và có thể tiêu thụ. Tuy nhiên, một tiêu đề sẽ không.

Dưới đây là một bài viết thú vị về một người điên khi cố gắng phân biệt giữa hai yếu tố mới. Điểm cơ bản của bài viết, mà tôi cũng cảm thấy là chính xác, là thử và sử dụng yếu tố nào bạn cảm thấy tốt nhất thực sự đại diện cho những gì nó chứa.

Vấn đề hơn là bài viết và phần rất giống nhau. Tất cả những gì ngăn cách họ là từ tự chế Quyết định sử dụng yếu tố nào sẽ dễ dàng nếu có một số quy tắc cứng và nhanh. Thay vào đó, đó là vấn đề giải thích. Bạn có thể có nhiều bài viết trong một phần, bạn có thể có nhiều phần trong và bài viết, bạn có thể lồng các phần trong các phần và bài viết trong các phần. Tùy bạn quyết định yếu tố nào là phù hợp nhất về mặt ngữ nghĩa trong mọi tình huống.

Đây là một câu trả lời rất hay cho cùng một câu hỏi ở đây trên SO



5

Phần

  • Sử dụng điều này để xác định một phần của bố cục của bạn. Nó có thể là mid, left, right , vv ..
  • Điều này có ý nghĩa kết nối với một số yếu tố khác, nói một cách đơn giản, đó là PHỤ THUỘC.

Bài báo

  • Sử dụng điều này khi bạn có nội dung độc lập có ý nghĩa riêng.

  • Bài viết có ý nghĩa hoàn chỉnh riêng của nó.


3

Một phần về cơ bản là một trình bao bọc cho h1(hoặc các hthẻ khác ) và nội dung tương ứng với phần này. An articlevề cơ bản là một tài liệu trong tài liệu của bạn được lặp đi lặp lại hoặc phân trang ... như mỗi bài đăng trên blog của bạn có thể là một bài viết hoặc mỗi nhận xét về tài liệu của bạn có thể là một bài viết.


1

cũng vậy, đối với nội dung được cung cấp "Các tác giả được khuyến khích sử dụng phần tử bài viết thay vì phần tử phần khi nó có ý nghĩa để cung cấp nội dung của phần tử."


0

Giải thích của tôi là: Tôi nghĩ về YouTube nó có phần bình luận và bên trong phần bình luận có nhiều bài viết (trong trường hợp này là bình luận).

Vì vậy, một phần giống như một div-container chứa các bài viết.


-2

Bài viết và Phần đều là các yếu tố ngữ nghĩa của HTML5. Mục là phần chung cấp khối của trang web, nhưng có liên quan đến nội dung trang web của chúng tôi. Bài viết cũng ở cấp độ khối, nhưng bài viết đề cập đến một bài đăng trên blog cá nhân, một bình luận, của một trang web.

Cả Điều và Mục phải bao gồm một phần tử tiêu đề h2-h6.

Đối với một bài đăng blog, sử dụng cú pháp sau đây cho bài viết và phần.

<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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.