HTML 5: Là <br>, <br/> hay <br />?


2033

Tôi đã thử kiểm tra các câu trả lời khác , nhưng tôi vẫn bối rối - đặc biệt là sau khi xem tài liệu tham khảo HTML 5 của W3schools .

Tôi nghĩ rằng HTML 4.01 được cho là "cho phép" các thẻ đơn thành <img><br>. Sau đó, XHTML xuất hiện cùng <img /><br />( nơi có người nói rằng không gian dành cho các trình duyệt cũ hơn ).

Bây giờ tôi đang tự hỏi làm thế nào tôi phải định dạng mã của mình khi thực hành HTML 5.

Là nó <br>, <br/>hay <br />?


1
Bất cứ ai bạn sử dụng ngày hôm nay, xin vui lòng xem xét rằng một số công nghệ hỗ trợ (ví dụ như trình đọc màn hình) có thể sẽ công bố nó. NVDA nói "trống", ví dụ. Người dùng trình đọc màn hình rất có thể sẽ không thu được gì ngoài tiếng ồn từ thông báo thêm đó. Xem xét việc thêm một role="presentation"thuộc tính, ngoại trừ trong những trường hợp hiếm hoi mà chức năng ngắt dòng là 'nội dung'.
brennanyoung

Theo thông số hiện tại "6. Sau đó, nếu phần tử là một trong các phần tử void hoặc nếu phần tử là phần tử lạ, thì có thể có một ký tự U + 002F RẮN (/). Ký tự này không có hiệu lực đối với khoảng trống các phần tử " html.spec.whatwg.org/multipage/syntax.html#start-tags
Tim Abell

Câu trả lời:


1544

Đơn giản <br>là đủ.

Các hình thức khác là có để tương thích với XHTML; để có thể viết mã giống như XHTML và mã này cũng hoạt động như HTML. Một số hệ thống tạo HTML có thể dựa trên các trình tạo XML và do đó không có khả năng xuất ra chỉ là một <br>thẻ trần ; nếu bạn đang sử dụng một hệ thống như vậy, nó sẽ tốt để sử dụng <br/>, nó chỉ không cần thiết nếu bạn không cần phải làm điều đó.

Tuy nhiên, rất ít người thực sự sử dụng XHTML. Bạn cần phân phát nội dung của mình application/xhtml+xmlđể được hiểu là XHTML và điều đó sẽ không hoạt động trong các phiên bản IE cũ - điều đó cũng có nghĩa là bất kỳ lỗi nhỏ nào bạn thực hiện sẽ khiến trang của bạn không được hiển thị trong các trình duyệt hỗ trợ XHTML. Vì vậy, hầu hết những gì trông giống như XHTML trên web đang thực sự được phục vụ và được hiểu là HTML. Xem Phục vụ XHTML dưới dạng văn bản / html được coi là có hại để biết thêm thông tin.


23
Nhưng dù sao có xml hợp lệ cũng không có nghĩa là phục vụ xhtml. Nó có thể hữu ích cho tất cả các loại tiền xử lý cục bộ.
Michael Krelin - hacker

29
Có, nhưng bạn phải rất cẩn thận xử lý HTML dưới dạng XML. Chúng là các ngôn ngữ khác nhau và chỉ một tập hợp con của mỗi ngôn ngữ là tương thích. Chẳng hạn, trong XML, <br/>giống như <br></br>, nhưng cái sau không phải là HTML hợp lệ.
Brian Campbell

10
Brian, ý tưởng là bạn có thể để html của bạn được định dạng tốt xml, vậy thôi. Tất nhiên khi chuyển đổi cái này thành cái khác bạn phải chắc chắn rằng nó vẫn còn hiệu lực, nhưng nó có đáng để đề cập không? :)
Michael Krelin - hacker

5
@Marco Tôi không nghĩ document.write cực kỳ nhanh so với html (x) thực tế (vì nó phải được thực thi). Trong mọi trường hợp, Javascript không nhất thiết có sẵn trên tất cả các máy tính nên các trang web phụ thuộc quá nhiều vào chúng không linh hoạt. Ngoài ra, html không có chức năng.
Michael0x2a

8
@Marco: Huh, tôi không biết là document.write không hoạt động trong xhtml - cảm ơn vì đã chia sẻ. Tôi đồng ý rằng thật ngớ ngẩn khi các ứng dụng web thử và làm bất cứ điều gì mà không cần Javascript, nhưng tôi đã cố gắng nói rằng các trang web phụ thuộc gần như 100% vào Javascript sẽ dễ vỡ hơn và có thể thất bại khi người dùng vô hiệu hóa javascript (hoặc đang sử dụng điện thoại cũ hoặc một cái gì đó)
Michael0x2a

227

Tôi nghĩ rằng trích dẫn này từ Dự thảo tham khảo HTML 5 cung cấp câu trả lời:

3.2.2.2 Các yếu tố trống

Các phần tử void được sử dụng để chỉ định các phần tử phải trống . Các yêu cầu này chỉ áp dụng cho cú pháp HTML. Trong XHTML, tất cả các phần tử như vậy được coi là các phần tử bình thường, nhưng phải được đánh dấu là các phần tử trống.

Các yếu tố này bị cấm không chứa bất kỳ nội dung nào cả. Trong HTML, các thành phần này chỉ có thẻ bắt đầu . Các thẻ tự đóng cú pháp có thể được sử dụng. Các thẻ kết thúc phải được bỏ qua bởi vì nguyên tố này được tự động đóng bằng phân tích cú pháp.

Ví dụ HTML:
Một phần tử void trong cú pháp HTML. Điều này không được phép trong cú pháp XHTML.

<hr>

Ví dụ:
Một phần tử void sử dụng cú pháp thẻ tự đóng tương thích HTML và XHTML.

<hr/>

Ví dụ XHTML:
Một phần tử void sử dụng cú pháp chỉ XHTML với thẻ kết thúc rõ ràng. Điều này không được phép đối với các phần tử void trong cú pháp HTML.

<hr></hr>

22
Vì vậy, câu trả lời là mã tốt nhất là không có dấu gạch chéo và dấu cách, nhưng có dấu gạch chéo (có hoặc không có khoảng trắng) - là tùy chọn?
Eikern

67
Tôi thích cách đặc tả không đặc biệt cụ thể (về điểm này) "meh, làm những gì bạn muốn!"
Matt Ellen

42
Vì nó là tùy chọn, tôi thích nhiều hơn />vì nó tốt cho khả năng đọc.
BrunoLM

38
Tôi thích đóng rõ ràng các thẻ của mình mà không có lý do nào khác ngoài việc cảm thấy đúng và có ý nghĩa khi tôi đang đọc / viết mã. Tôi hài lòng rằng Dự thảo tham khảo HTML5 đồng ý với tôi.
Lỗi cú pháp

7
Có vẻ khá cụ thể đối với tôi. <br> và <br /> đều là HTML5 hợp pháp.
William Denniss

135

XML không cho phép để các thẻ mở, vì vậy nó làm cho <br>một chút tồi tệ hơn so với hai thẻ kia. Hai cái còn lại gần tương đương với thứ hai ( <br/>) được ưa thích để tương thích với các trình duyệt cũ hơn. Trên thực tế, không gian trước /được ưa thích vì lợi ích tương thích, nhưng tôi nghĩ nó chỉ có ý nghĩa đối với các thẻ có thuộc tính. Vì vậy, tôi muốn nói một trong hai <br/>hoặc <br />, tùy theo lòng thẩm mỹ của bạn.

Tóm lại: cả ba đều hợp lệ với cái đầu tiên ( <br>) ít "di động" hơn một chút.

Chỉnh sửa : Bây giờ tất cả chúng ta đều điên về thông số kỹ thuật, tôi nghĩ rằng đáng để chỉ ra rằng theo dev.w3.org :

Thẻ bắt đầu bao gồm các phần sau, theo thứ tự chính xác sau:

  1. Một ký tự "<".
  2. Tên thẻ của phần tử.
  3. Tùy chọn, một hoặc nhiều thuộc tính, mỗi thuộc tính phải được bắt đầu bằng một hoặc nhiều ký tự khoảng trắng.
  4. Tùy chọn, một hoặc nhiều ký tự không gian.
  5. Tùy chọn, một ký tự "/", chỉ có thể xuất hiện nếu phần tử là phần tử void.
  6. Một ký tự ">".

17
HTML không thực sự là XML, chỉ khá gần với nó.
tloach

6
Vâng, không phải vậy. Nhưng /là một mẫu số chung ở đây. HTML5 đặc biệt cho phép sử dụng /: "Tùy chọn, ký tự" / ", chỉ có thể xuất hiện nếu phần tử là phần tử void".
Michael Krelin - hacker

4
hellowworlder, tôi muốn nói rằng đặc tả HTML5 gần giống với tuân thủ XML.
Michael Krelin - hacker

5
Tôi chỉ muốn thêm nó vào cả XML và HTML, ML là viết tắt của Ngôn ngữ đánh dấu. Lý do có quá nhiều sự trùng lặp giữa chúng là vì cả hai đều được xác định ban đầu bằng cách sử dụng SGML (Ngôn ngữ đánh dấu tổng quát hóa tiêu chuẩn) nhưng hiện tại không nhiều người nhớ đến nó ...
John Vincent

4
@BennyNeugebauer, Nếu bạn đang sử dụng regex để phân tích cú pháp html, bạn ít nhiều còn lại để dựa vào vận may của mình thay vì các thẻ được đóng đúng cách ;-)
Michael Krelin - hacker

104

Trong HTML (tối đa HTML 4) : sử dụng<br>

Trong HTML 5 : <br>được ưa chuộng, nhưng <br/><br />cũng là chấp nhận được

Trong XHTML : <br />được ưa thích. Cũng có thể sử dụng <br/>hoặc<br></br>

Ghi chú:

  • <br></br> không hợp lệ trong HTML 5, nó sẽ được coi là hai ngắt dòng.
  • XHTML phân biệt chữ hoa chữ thường, HTML không phân biệt chữ hoa chữ thường.
  • Để tương thích ngược, một số trình duyệt cũ sẽ phân tích XHTML dưới dạng HTML và không thành công <br/>nhưng không<br />

Tài liệu tham khảo:


đã kiểm tra liên kết, cách tiếp cận ưa thích là <br>, nhưng nó nói <br/> ở đâu không được chấp nhận?
JackDev

4
Để làm rõ, đối với cú pháp tuân thủ XML <br/><br />(với SPACE) là bằng nhau, không có ưu tiên nào cho cả hai. Xem thông số kỹ thuật XML 1.0 . Khoảng trắng (KHÔNG GIAN, tab hoặc LINE FEED) trước />tùy chọn, không có tùy chọn.
Basil Bourque

1
Bạn có thể trích dẫn một tham chiếu cho cú pháp không phải XML đang được ưa thích trong HTML5 không? Đó là tin tức với tôi. Hỗ trợ tùy chọn cho việc tuân thủ XML chặt chẽ là mục tiêu sáng lập của HTML5 khi tôi nhớ lại. Có lẽ tôi đã bỏ lỡ điều gì đó trên tài liệu HTML so với XHTML tại whatwg.org hoặc W3C Polyglot Markup: Một hồ sơ mạnh mẽ về từ vựng HTML5 tại W3C.
Basil Bourque

1
@BasilBourque Để nhắc lại những gì tôi đã nói ở nơi khác với bạn. Đọc đặc tả thực tế trong HTML5 cho các thẻ và thành phần và bạn sẽ không bao giờ, EVER tìm thấy bất kỳ đề xuất hoặc đề xuất nào để yêu cầu hoặc đề xuất sử dụng dấu gạch chéo cho các thẻ đó. Nếu bạn muốn sử dụng XML hoặc XHTML, thì bạn không sử dụng HTML và đó là một câu chuyện khác. KHÔNG sử dụng dấu gạch chéo cho các thẻ HTML đó. Ở những nơi khác, thông số kỹ thuật nói rằng bạn có thể đặt nó ở đó nhưng điều đó có nghĩa là không có gì, không có gì và các trình duyệt được hướng dẫn bỏ qua nó. Vì vậy, nó là vô nghĩa và vô dụng làm cho bất kỳ việc sử dụng nó là vô nghĩa và vô dụng.
Cướp

@Rob Vậy Mục 8.1.2.1. Các thẻ bắt đầu của Phần 8. Cú pháp HTML của tài liệu, Khuyến nghị HTML 5.2 W3C, ngày 14 tháng 12 năm 2017 , được xuất bản bởi W3C không phải là đặc điểm kỹ thuật thực tế của HTML? Xin tư vấn.
Basil Bourque


27

Tôi khuyên bạn nên sử dụng <br />vì những lý do sau:

1) Các trình soạn thảo văn bản và XML làm nổi bật cú pháp XML bằng các màu khác nhau sẽ làm nổi bật đúng <br />nhưng điều này không phải lúc nào cũng đúng nếu bạn sử dụng<br>

2) <br />tương thích ngược với XHTML và HTML được định dạng tốt (nghĩa là: XHTML) thường dễ xác thực hơn cho các lỗi và gỡ lỗi

3) Một số trình phân tích cú pháp cũ và một số thông số mã hóa yêu cầu khoảng trắng trước dấu gạch chéo (ví dụ: <br />thay vì <br/>) như thông số Mã hóa Trình cắm WordPress: http://make.wordpress.org/core/handbook/coding-stiterias/html/

Theo kinh nghiệm của tôi, tôi chưa bao giờ gặp trường hợp sử dụng <br />có vấn đề, tuy nhiên, có nhiều trường hợp <br/>hoặc đặc biệt <br>có thể có vấn đề trong các trình duyệt và công cụ cũ hơn.


1
HTML hình thành tốt không phải là XHTML.
jmarkmurphy

1
XHTML được định dạng tốt theo định nghĩa HTML. XHTML tuân theo các quy tắc của XML, theo w3schools "XML là ngôn ngữ đánh dấu trong đó các tài liệu phải được đánh dấu chính xác (là" được định dạng tốt ") ... ... Bằng cách kết hợp các thế mạnh của HTML và XML, XHTML đã được phát triển. XHTML được HTML thiết kế lại dưới dạng XML. " (xem w3schools.com/html/html_xhtml.asp )
Kmeixner

2
HTML có thể được hình thành tốt, nhưng không phải là XML hợp lệ. W3Schools không phải lúc nào cũng là tài liệu tham khảo có thẩm quyền nhất.
jmarkmurphy

Giáo sư của khóa học khoa học máy tính của trường đại học về lập trình web tôi đã học năm 1997 cũng đưa ra tuyên bố rằng xhtml là html được hình thành tốt. Tôi không chắc bạn lấy thông tin từ đâu, bạn có thể trích dẫn bất kỳ nguồn chính thức nào trực tuyến để sao lưu yêu cầu của mình không?
Kmeixner

1
@jmarkmurphy, tôi nghĩ rằng có thể bạn không quen với thuật ngữ "được hình thành tốt" là một thuật ngữ thuật ngữ kỹ thuật để chỉ yêu cầu đối với các tiêu chuẩn của XML và XHTML rằng tất cả các thẻ phải có thẻ đóng và phải được xếp theo thứ tự đúng . <hr> và <br> không đáp ứng các yêu cầu của XML và XHTML vì chúng không có thẻ đóng, ví dụ: <br /> hoặc <br> </br> là hợp lệ, <br> không hợp lệ XHTML hoặc XML . Tất nhiên, HTML không có yêu cầu được hình thành rõ ràng vì vậy <br> và <hr> chỉ hợp lệ trong HTML.
Kmeixner

20

XML yêu cầu tất cả các thẻ phải có thẻ đóng tương ứng. Vì vậy, có một cú pháp tay ngắn đặc biệt cho các thẻ không có nội dung bên trong.

HTML5 không phải là XML, vì vậy nó không nên đặt ra yêu cầu như vậy. HTML 4.01 cũng không.

Chẳng hạn, trong thông số kỹ thuật HTML5 , tất cả các ví dụ với cú pháp brsử dụng thẻ <br>, không phải <br/>.

CẬP NHẬT Trên thực tế, <br/>được cho phép trong HTML5 . 9.1.2.1, 7.


2
"HTML5 không phải là XML, vì vậy nó không nên đặt ra yêu cầu như vậy." Điều đó có đúng hay không phụ thuộc vào cách giải thích của từ "HTML5". Nếu chúng ta nói về HTML5 như ngôn ngữ, thì tuyên bố đó là chính xác. Tuy nhiên, nếu chúng ta nói về HTML5 như một đặc điểm kỹ thuật, thì tuyên bố đó không chính xác. Đặc tả HTML5 xác định "từ vựng và API liên quan cho HTML và XHTML". Tôi biết đó là một chút nitpicking, tôi không nói câu trả lời này là sai, chỉ cung cấp thêm thông tin cho người đọc.
Christian Hujer

14

Nếu bạn quan tâm đến khả năng so sánh (không tương thích, nhưng so sánh) thì tôi sẽ gắn bó <br />.

Nếu không, <br>là tốt.


1
Ai đó nên cuộn lại. Ý nghĩa được thay đổi.
Giô

9
Có nghĩa là gì so sánh? Tôi không hiểu
tuxayo

12

Cả hai <br><br />đều được chấp nhận trong HTML5, nhưng theo tinh thần HTML, <br>nên được sử dụng. HTML5 cho phép đóng dấu gạch chéo để tương thích hơn với các tài liệu trước đây là HTML 4.01 và XHTML 1.0, cho phép di chuyển dễ dàng hơn sang HTML5. Tất nhiên, <br/>cũng được chấp nhận, nhưng để tương thích với một số trình duyệt cũ hơn, cần có khoảng trắng trước dấu gạch chéo ( /).


1
@ Knickerless-Noggins Tôi không chắc bạn đang đọc nó ở đâu, nhưng <br />hoàn toàn chấp nhận được và W3Schools không phải là thông số kỹ thuật cho HTML. Xem thông số kỹ thuật HTML5 , trong đó nêu rõ rằng "Sau đó, nếu phần tử là một trong các phần tử trống hoặc nếu phần tử là phần tử lạ , thì có thể có một ký tự " / "(U + 002F) . ] "
kevinji

Câu trả lời này, giống như những câu trả lời khác, hạ thấp không chính xác tính hợp pháp của việc tuân thủ XML chặt chẽ trong HTML5. Hỗ trợ cho XML không phải là một tính năng chuyển đổi hoặc di chuyển tạm thời. Hỗ trợ tùy chọn tuân thủ XML là mục tiêu sáng lập của HTML5. Đây là một tính năng quan trọng đối với những người sử dụng công cụ XML để làm việc với nội dung HTML của họ.
Basil Bourque

12
  1. Nếu bạn xuất HTML trên một trang web thông thường, bạn có thể sử dụng <br> hoặc <br/> cả hai đều hợp lệ bất cứ lúc nào bạn đang phục vụ HTML5 dưới dạng văn bản / html.

  2. Nếu bạn đang phục vụ HTML5 dưới dạng XHTML (nghĩa là ứng dụng loại nội dung / xhtml + xml, với khai báo XML) thì bạn phải sử dụng thẻ tự đóng như vậy : <br/>.

    Nếu bạn không, một số trình duyệt có thể từ chối hiển thị trang của bạn (đặc biệt là Firefox rất nghiêm ngặt về việc chỉ hiển thị các trang xhtml + xml hợp lệ).

    Như đã lưu ý trong 1. <br/>cũng hợp lệ đối với HTML5, được tạo ra dưới dạng XML nhưng được dùng dưới dạng văn bản / html thông thường mà không cần khai báo XML (chẳng hạn như từ XSL Transform tạo ra các trang web hoặc một cái gì đó tương tự).

Để xóa sự nhầm lẫn: Đặt một khoảng trắng trước dấu gạch chéo không bắt buộc trong HTML5 và không tạo ra bất kỳ sự khác biệt nào đối với cách hiển thị trang (nếu ai đó có thể trích dẫn một ví dụ tôi sẽ rút lại điều này, nhưng tôi không tin nó đúng - nhưng IE chắc chắn thực hiện rất nhiều điều kỳ quặc khác với tất cả các dạng <br>thẻ).

Trình xác nhận xuất sắc tại http://validator.w3.org thực sự hữu ích để kiểm tra những gì hợp lệ (mặc dù tôi không chắc bạn có thể dựa vào nó để kiểm tra loại nội dung).


chờ đã, văn bản / html mimetype là XML nghiêm ngặt?
amwinter

1
Bạn không nên cung cấp nó với một khai báo XML nếu sử dụng text / html, nhưng nội dung có thể là XML hợp lệ (ví dụ: được tạo từ thứ gì đó tạo ra XML, như đầu ra XSLT hoặc một đối tượng nối tiếp với XML).
Iain Collins

Vẫn không hiểu: nếu văn bản / html nên có a <br />, khi nào tôi nên sử dụng <br>không được tiết lộ?
amwinter

1
Xin lỗi, cả hai đều hợp lệ về mặt kỹ thuật cho HTML5 nếu thông qua văn bản / html. Bạn có thể xác nhận điều này với trình xác nhận tuyệt vời (chủ yếu) tại validator.w3.org . Từ ngữ của tôi ở trên là kém Tôi thấy rằng bây giờ, sẽ chỉnh sửa nó.
Iain Collins

3
Tôi nghĩ rằng đó là Netscape Navigator 3 hoặc 4 không thích <br/>, chắc chắn không có gì phải lo lắng trong thời đại ngày nay.
robertc

12

Cả hai <br><br/>sẽ làm tốt nhưng tôi thích <br/>vì nó hợp lý hơn một chút. Đó là logic để mong đợi một thẻ đóng bất cứ khi nào có một thẻ mở. Do đó, mã của bạn sẽ dễ đọc hơn một chút nếu bạn không sử dụng thẻ mở khi không có thẻ đóng.

Tất cả các trình duyệt (ngoại trừ một số trình duyệt cũ không quan trọng) sẽ hiển thị cả hai chính xác như nhau. Tuy nhiên, <br>không phải là xHTML tuân thủ.


7

<br><br/>kết xuất khác nhau. Một số trình duyệt giải thích <br/>như <br></br>và chèn hai ngắt dòng


12
Gì? Bạn có biết trình duyệt nào không?
Eikern

7
Tìm thấy điều này khi kiểm tra trình duyệt thời đại tức là 5 / ns4. Nếu tôi nhớ chính xác thì đó là chế độ tuân thủ tiêu chuẩn. Nhưng đó là một thời gian dài trước đây ...
Samuel

3
Đối với các trình duyệt HTML4 nghiêm ngặt (thực tế chỉ là trình xác nhận HTML4), <br />có nghĩa là <br>&gt;.
Konrad Borowski

7

<br>là đủ nhưng trong XHTML <br />được ưu tiên theo WHATWGtheo W3C .

Để trích dẫn Mục 8.1.2.1 của Khuyến nghị HTML 5.2 W3C, ngày 14 tháng 12 năm 2017

Thẻ bắt đầu phải có định dạng sau:

Giáo dục

  1. Sau các thuộc tính hoặc sau tên thẻ nếu không có thuộc tính, có thể có một hoặc nhiều ký tự khoảng trắng. (Một số thuộc tính bắt buộc phải được theo sau bởi khoảng trắng. Xem §8.1.2.3 Thuộc tính bên dưới.)

  2. Sau đó, nếu phần tử là một trong các phần tử void hoặc nếu phần tử là phần tử lạ, thì có thể có một ký tự U + 002F SOLIDUS (/). Ký tự này không có tác dụng đối với các phần tử void, nhưng đối với các phần tử nước ngoài, nó đánh dấu thẻ bắt đầu là tự đóng.

Nếu bạn sử dụng Dreamweaver CS6, thì nó sẽ tự động hoàn tất dưới dạng <br />.

Để xác thực tệp HTML của bạn trên W3C, hãy xem: http://validator.w3.org/


@Julix Thật vậy, tại sao lại bỏ phiếu? Tthis là một trong số ít câu trả lời đúng trên trang này. HTML5 hoàn toàn tuân thủ XML, tùy chọn và theo cú pháp XML, một thẻ duy nhất phải được đóng bằng dấu gạch chéo. Làm thế nào những sự thật đơn giản như vậy có thể bị hiểu sai như vậy khi được viết bằng màu đen và trắng trong thông số kỹ thuật .
Basil Bourque

5

Trong xác nhận, của câu hỏi này, nó thực sự phụ thuộc vào những gì !DOCTYPEbạn đang cố gắng để xác minh thông qua.

Sở thích cá nhân của tôi là 4.01 Transnơi tôi chỉ sử dụng <br/>và nó sẽ xóa các cảnh báo và lỗi có thể xuất hiện trong quá trình xác nhận

Strict là một con thú phức tạp hơn nhiều, Nó HATE "SHORTTAGS"và hoàn toàn theo nghĩa đen chỉ muốn<br></br>

Trong HTML5hoặc "LAX" của thế giới mã, thực sự không có câu trả lời đúng bởi vì nó detects every example you put upđúng như vậy ......

Cuối cùng, tôi nghĩ rằng tất cả những gì quan trọng is what validation YOU PREFERhoặc the person that you are working for prefers... với sự lackadaisicalchuyển động trong tính nghiêm ngặt của mã trong html5chúng ta đang thấy một số CODERS RẤT LAZY


4

IMHO tốt hơn là sử dụng ký hiệu thông thường ( <br />) thay vì ký hiệu tha thứ ( <br>) vì các lý do sau:

Tính nhất quán

Trong HTML của bạn có thể có một số SVG và SVG chỉ hỗ trợ ký hiệu thông thường (ví dụ <rect />).

Khả năng hack

Đây không phải là trường hợp mà các khung như ReactNativeScript sử dụng ký hiệu XML.
Mã đánh dấu của bạn sẽ dễ dàng phân tích hơn.

Trong trẻo

Các ký hiệu thông thường dễ đọc và dễ hiểu hơn, thậm chí vào đêm khuya.

Thông số kỹ thuật

Cả hai <br><br />là các thẻ HTML hợp lệ.

Phần kết luận

Nếu bạn sử dụng trình soạn thảo văn bản chính thức, hãy cấu hình nó để sử dụng ký hiệu thông thường (được gọi là XHTML bởi Emmet ).
Chẳng hạn, trong Visual Studio Code, bạn chỉ cần thêm dòng sau vào cài đặt của mình:

"emmet.syntaxProfiles": {"html": "xhtml"}

1
Nói một cách chính xác, cả hai đều là các ký hiệu ngắn: ký hiệu ngắn HTML và ký hiệu ngắn XML tương ứng. Ký hiệu đầy đủ là <br></br>và nó hợp lệ trong X (HT) ML, nhưng không có trong HTML.
Ilya Streltsyn

1
HTML5 không giới thiệu <br>. Nó luôn có trong HTML. XHTML đã giới thiệu <br/>
jmarkmurphy

1
Để đi vào lịch sử của điều này đúng cách, bạn cần đi sâu vào SGML.
Michael Kay

3

Vâng tất cả những gì tôi biết là <br />cho nghỉ ngơi với một đường trắng và <br>chỉ nghỉ trong một số trường hợp. Điều này xảy ra với tôi khi tôi đang thiết lập tập lệnh IPN (PHP) và gửi thư và kiểm tra hộp thư đến cho nó. Không biết tại sao nhưng tôi chỉ nhận được thông báo trông gọn gàng bằng cả hai<br /> and <br>

Hãy xem thư ở đây: http://snag.gy/cLxUa.jpg

Hai phần đầu của văn bản được phân tách bằng <br />, do đó các dòng khoảng trắng, ba hàng văn bản cuối cùng ở dưới cùng và phần cuối cùng được phân tách bằng <br>và chỉ đưa ra hàng mới.


3
Trình duyệt đó là gì?
Dave Burton

3

Trong HTML <br>và trong XHTML <br/>.

Tôi sẽ đề nghị bạn sử dụng <br/>.


2

Như nhiều người khác đã bảo hiểm, cả hai <br><br/>được chấp nhận.

Tôi đoán sự đánh đổi là khả năng đọc tốt hơn và khả năng tương thích ngược <br/>so với việc gửi một ký tự ít hơn cho người dùng cuối <br>.

Và vì Google sử dụng <br>nên tôi cũng vậy.

(Tất nhiên hãy nhớ rằng họ có thể đang phục vụ tôi <br>vì tôi đang sử dụng Chrome mà họ biết hỗ trợ. Trong IE họ có thể vẫn đang phục vụ <br/>)


2

<br>hoạt động tốt Các phiên bản chặt chẽ hơn như XHTML yêu cầu bạn thêm phần đóng và các phiên bản HTML thực sự cũ không bao gồm thẻ DOCTYPEtạo <br>không trống, như <br></br>.

Tổng hợp: <br>là tốt. Những người khác cũng tốt.


2

Trong HTML5 , dấu gạch chéo không còn cần thiết : <br>,<hr>


Dấu gạch chéo chưa bao giờ là cần thiết và chưa bao giờ được chỉ định trong bất kỳ thông số HTML nào hoặc thậm chí được sử dụng làm ví dụ trong thông số kỹ thuật.
Rob

1
@Rob Tôi không biết bạn lấy thông số kỹ thuật HTML của mình ở đâu , nhưng tôi lấy của tôi từ các tổ chức WHATWG và W3C. Cả hai đều xuất bản các thông số kỹ thuật xác định rõ ràng sự tuân thủ XML nghiêm ngặt như là một tính năng tùy chọn của HTML5. Điều này đặc biệt bao gồm đóng các thẻ đơn với />. Xem Phần 8.1.2.1 & 2 . Và xem tài liệu HTML so với XHTML tại whatwg.org và Đánh dấu Polyglot W3C: Một hồ sơ mạnh mẽ về từ vựng HTML5 tại W3C.
Basil Bourque

@BasilBourque Vui lòng đọc thông số kỹ thuật chính xác cho các thẻ đó trong HTML và không hiển thị XML hoặc XHTML không phải là chủ đề ở đây. Bạn sẽ không bao giờ tìm thấy bất kỳ từ ngữ hoặc ví dụ bằng văn bản nào trong bất kỳ đặc điểm kỹ thuật nào cho HTML trong lịch sử internet nơi sử dụng dấu gạch chéo đóng, được yêu cầu hoặc thậm chí được đề xuất.
Cướp

1
@Rob Tất cả những gì tôi có thể làm là lặp lại: W3C đã xuất bản một tài liệu có tên HTML 5.2 trong đó Mục 8.1.2.1. Các thẻ bắt đầu nói rõ ràng một thẻ tự đóng có hoặc bằng dấu gạch chéo là hợp lệ, ở điểm # 6: Sau đó, nếu phần tử là một trong các phần tử void hoặc nếu phần tử là phần tử lạ, thì có thể có một chữ U + 002F ký tự RẮN (/). Ký tự này không có tác dụng đối với các phần tử void, nhưng đối với các phần tử nước ngoài, nó đánh dấu thẻ bắt đầu là tự đóng. Các tài liệu khác mà tôi liên kết giải thích rằng nếu thể hiện HTML5 của bạn dưới dạng XML, thì dấu gạch chéo là bắt buộc.
Basil Bourque

1
@BasilBourque Tôi chưa bao giờ nói nó không hợp lệ. Tôi nói nó không có ý nghĩa và không phục vụ mục đích như bạn, chính bạn, trích dẫn. Và, một lần nữa, bạn đưa ra XML như một sự biện minh để sử dụng nó trong HTML. Đừng làm vậy! Chúng không giống nhau! Chúng tôi gọi đó là "canh thẻ" khi trình phân tích cú pháp HTML cần diễn giải nội dung XML.
Cướp

2

Hầu hết các trường hợp trong HTML, các thẻ là trong cặp. Nhưng để ngắt dòng, bạn không cần một cặp thẻ. Do đó để chỉ ra điều này, HTML sử dụng <br/>định dạng. <br/>là một trong những quyền. Sử dụng định dạng đó.

<br>thẻ không có thẻ kết thúc trong HTML Trong XHTML, <br>thẻ phải được đóng đúng cách, như thế này:<br />

Trong XML, mọi thẻ phải được đóng lại. XHTML là một phần mở rộng của XML, do đó tất cả các quy tắc của XML phải được tuân theo đối với XHTML hợp lệ. Do đó, ngay cả các thẻ trống (các nút không có nút con) cũng
nên được đóng lại. XML có một hình thức ngắn gọi là thẻ tự đóng cho các nút trống. Bạn có thể viết <br></br> as <br />. Do đó trong XHTML <br />được sử dụng.

HTML rất khoan dung trong vấn đề này và không có quy tắc nào như vậy. Vì vậy, trong HTML các nút trống như <br> <hr> <meta>vv được viết mà không có dấu gạch chéo về phía trước.

HTML

<br>
<hr>
<meta name="keywords" content="">
<link rel="canonical" href="http://www.google.com/">

XHTML

<br />
<hr />
<meta name="keywords" content="" />
<link rel="canonical" href="http://www.google.com/" />

Không phải tất cả các thẻ có thể tự đóng. Ví dụ: một thẻ như <script src="jQuery.min.js" />không được XHTML DTD cho phép.


1

Ummm ..... có ai biết nhà cung cấp SINGLE, tác nhân người dùng hoặc nhà sản xuất trình duyệt đã từng tuân theo Thông số kỹ thuật của W3C 100% không ??? Vì vậy, nếu HTML5 cho biết nó hỗ trợ cả ba phiên bản phần tử phá vỡ, bạn có thể đặt cược cho các nhà cung cấp hỗ trợ các phiên bản tương tự và thậm chí nhiều hơn!

Điều DUY NHẤT quan trọng trong cuộc tranh luận này là sử dụng mã hóa một cách TUYỆT VỜI cũng xảy ra để tuân theo các thông số kỹ thuật XML cũng như các đặc tả HTML khi có thể. Điều đó có nghĩa là bạn nên sử dụng phiên bản XML chính xác của thẻ break và khuyến khích tất cả nhóm của bạn làm điều tương tự:

<br />

Định dạng dấu gạch chéo không gian tương tự sẽ áp dụng cho các thẻ img, a, hr và meta trong mã của bạn. Tại sao? Bởi vì:

  1. Nó tương thích ngược với các tác nhân / trình duyệt XHTML cũ hơn
  2. Các nhà cung cấp trình duyệt dù sao cũng hỗ trợ phiên bản XML, do đó, đặc tả HTML5 là không cần thiết.
  3. Việc triển khai cẩu thả của hầu hết các tác nhân người dùng ngày nay, trong quá khứ và trong tương lai sẽ chấp nhận nó.
  4. Nó cho phép đánh dấu của bạn tương đương với các tiêu chuẩn XML nếu bạn cần quay lại để tạo các tài liệu XHTML / XML từ đánh dấu của bạn.
  5. Đó là "thực hành mã hóa tốt" cho TẤT CẢ CÁC NHÀ PHÁT TRIỂN WEB để tiếp tục sử dụng các thực tiễn đánh dấu vững chắc tuân theo XML, bao gồm mã hóa trong tất cả các chữ thường, các thuộc tính được trích dẫn, thoát các ký tự XML, v.v. Tại sao? Trong tương lai nếu bạn phải chuyển sang dữ liệu XML, bạn sẽ tự động viết mã và suy nghĩ bằng XML.
  6. Chúng tôi chỉ có thể hy vọng rằng trong World Wide Web trong tương lai, chúng tôi tránh xa các tiêu chuẩn do nhà cung cấp tư nhân thực hiện và quay lại đánh dấu xác thực, đáng tin cậy, được phân tích nhanh hơn, di chuyển dữ liệu qua dây nhanh hơn và biến Internet tương lai của chúng tôi trở nên chuẩn hơn phương tiện sử dụng XML.

Ngoài ra, trong thế giới robot và máy móc ở đây, nơi robot không gặp phải vấn đề mã hóa giao diện người giống nhau mà HTML5 giải quyết cho chúng tôi, chúng sẽ sẵn sàng quay lại hệ thống dữ liệu XML và phân tích các trang web UI như vậy nhanh hơn khi chuyển đổi sang XML dữ liệu.


1

cả hai <br><br/>hoạt động nhưng không cần sử dụng cái thứ hai vì HTML 5 cũng hỗ trợ cú pháp đầu tiên rất dễ dàng


0


chỉ hoạt động tốt trong HTML5. HTML5 cho phép chậm hơn một chút so với XHTML



-3

<br><br />hiển thị khác nhau trong một số trình duyệt, do đó, việc chọn một trong các trình duyệt khác sẽ không gây hại cho dự án của bạn, nhưng bạn có thể tìm thấy hàng loạt ... sẽ ảnh hưởng đến kết xuất trang trong một số trình duyệt, điều này có thể dẫn đến việc bạn phải làm thêm hoặc thậm chí sự bối rối nếu thay đổi không ảnh hưởng gì đến trình duyệt thử nghiệm của bạn, nhưng hãy phá vỡ nó trong trình duyệt ưa thích của khách hàng của bạn.

Tôi thích <br>vì đó là những gì tôi đã sử dụng kể từ Erwise và Netscape Navigator (trình duyệt web ban đầu), nhưng không có lý do gì để không chọn <br />thay thế. Nó có thể hữu ích cho một số tiền xử lý, so sánh, vv

Ngay cả khi lựa chọn của bạn có xu hướng thích giao diện của cái này hơn cái kia, hoặc bạn (hoặc trình soạn thảo HTML yêu thích của bạn, ví dụ Dreamweaver) có thể thích mã của bạn tuân thủ xml. Tuỳ bạn.

Một lưu ý phụ:

Đừng nhầm lẫn br, nhưng ngoài ra, bạn cũng có thể xem xét sử dụng wbrcác thẻ trong HTML của mình: Thẻ cơ hội ngắt từ, trong đó chỉ định vị trí trong văn bản sẽ ổn khi thêm ngắt dòng.

Để đọc thêm, vui lòng đọc thông số HTML5 .


5
Xem thông số kỹ thuật HTML5 , trong đó nêu rõ rằng "Sau đó, nếu phần tử là một trong các phần tử trống hoặc nếu phần tử là phần tử lạ , thì có thể có một ký tự " / "(U + 002F) . ] " <br>, Tất nhiên, là một yếu tố trống, như bạn có thể thấy trong liên kết trong trích dẫn.
kevinji

-4

Các phần tử không có thẻ kết thúc được gọi là thẻ trống. Trong html 4 và html 5, các thẻ kết thúc không bắt buộc và có thể được bỏ qua.

Trong xhtml, các thẻ rất nghiêm ngặt. Điều đó có nghĩa là phải bắt đầu bằng thẻ bắt đầu và kết thúc bằng thẻ kết thúc.


1
Sai. Một thẻ duy nhất có giá trị trong HTML5 như một cặp thẻ bắt đầu. Xem thông số kỹ thuật HTML 5.2 .
Basil Bourque
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.