Đến <p> hay không <p>?


16

Gần đây tôi đã có một cuộc tranh luận với một đồng nghiệp, người đã tuyên bố rằng một <div>thẻ nên được sử dụng trên một <p>thẻ khi định dạng đoạn văn.

Trường hợp chống lại việc sử dụng <p>là nó tạo ra khoảng cách không đều trên các trình duyệt và nó có khả năng trở nên lỗi thời như <b>thẻ.

Là ý kiến ​​của các <p>thẻ được chia sẻ bởi cộng đồng?


5
Chỉ cần chỉ ra, <b>(và <i>cho vấn đề đó) là xa lỗi thời. Kiểm tra thông số HTML5.
DisgruntledGoat

Điểm hay - Tôi vừa kiểm tra, tôi luôn được hướng dẫn rằng <b> và <i> là các thẻ không dùng nữa và <strong> và <em> nên được sử dụng.
BradB

<strong><em>nên luôn luôn được sử dụng để nhấn mạnh. <b><i>không được dùng trong khía cạnh đó nhưng chúng có sử dụng hợp pháp, mặc dù có giới hạn, được sử dụng trong HTML5.
DisgruntledGoat

Liệu cuộc thảo luận này thực sự thuộc về đây? Dường như với tôi rằng điều này nên có trên Doctype
Charles Boyung

@Charles - hiện tại nó là một khu vực màu xám, vì trang web vẫn còn ở giai đoạn sơ khai. Nếu bạn cảm thấy mạnh mẽ, hãy thoải mái bắt đầu một cuộc thảo luận mới tại meta.webmasters.stackexchange.com - hoặc đăng nhận xét của bạn tại đây: meta.webmasters.stackexchange.com/questions/117/ trộm
Mark Henderson

Câu trả lời:


41

divs và ps là cho các mục đích hoàn toàn khác nhau. plà cho các đoạn văn, divlà cho các bộ phận cắt. Một là cho định dạng văn bản, hai là cho cấu trúc trang. Đó là không chính xác về mặt ngữ nghĩa để sử dụng divthay thế p.

Và lý do việc sử dụng bkhông được khuyến khích là vì đó là thẻ trình bày. Nó không có ý nghĩa ngữ nghĩa. Cả hai pdivcó ý nghĩa ngữ nghĩa độc đáo của riêng họ. psẽ không bao giờ bị lỗi thời miễn là mọi người vẫn định dạng văn bản thành các đoạn văn.

Đồng nghiệp của bạn dường như không quen thuộc với nguyên tắc phân tách nội dung và trình bày . Mặt khác, anh ta sẽ biết tại sao bbị ghê tởm và các vấn đề về trình bày như khoảng cách văn bản phải được xác định trong CSS, chứ không phải HTML của bạn.


11
Đồng ý +1. Chỉ cần nhấn mạnh ... bất kỳ "khoảng cách bất thường trên các trình duyệt" (mặc dù điều đó gây tranh cãi) có thể được kiểm soát hoàn toàn bằng CSS.
MrWhite

4
Đúng ... p { margin: 1em 0 }làm cho toàn bộ câu hỏi này.
DisgruntledGoat

7
<b>bây giờ có một ý nghĩa ngữ nghĩa: "Phần tử b đại diện cho một đoạn văn bản mà sự chú ý đang được thu hút cho mục đích thực dụng mà không truyền đạt bất kỳ tầm quan trọng đặc biệt nào và không có ý nghĩa của một giọng nói hoặc tâm trạng thay thế, chẳng hạn như các từ khóa trong một bản tóm tắt tài liệu, tên sản phẩm trong bài đánh giá, các từ có thể hành động trong phần mềm điều khiển văn bản tương tác hoặc một bài viết dẫn. " ( nguồn )
David Murdoch

13

<p><div>không có nghĩa cho cùng một mục đích, vì chúng có ý nghĩa ngữ nghĩa khác nhau:

  • <p> dành cho đoạn văn,
  • <div>là "cung cấp một cơ chế chung để thêm cấu trúc vào tài liệu", như đã nêu trong thông số HTML div từ W3C

<p> có thể không được phản đối trong tương lai vì nó vẫn hiện diện trong XHTML và HTML 5.

Cả hai thẻ có kết xuất đồ họa khác nhau. A <p>có lề trên và dưới là 1em, trong khi a <div>không có lề nào cả. Nhưng điểm này chỉ là thứ yếu vì nó có thể bị ghi đè bởi CSS.

Ngoài ra, lưu ý sự khác biệt này: trong khi cả hai thẻ thuộc loại "khối", chỉ <div>có thể chứa các thành phần khối khác. Như vậy:

  • <p><p> bla </p></p> là sai, trong khi
  • <div><div> bla </div></div> vẫn ổn

Điểm quan trọng cần nhớ là cả hai đều là thẻ hợp lệ và được sử dụng, nhưng không phải cho cùng một mục đích.

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.