Câu hỏi HTML 5: Có phải là
,
hoặc
không?


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

Tôi nghĩ HTML 4.01 được cho là "cho phép" một thẻ duy nhất <img> và <br>. Sau đó XHTML đi kèm với <img /> và <br /> (nơi ai đó nói rằng không gian ở đó dành cho các trình duyệt cũ hơn).

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

<!DOCTYPE HTML>

Là nó <br>, <br/> hoặc là <br />?


1689
2017-12-22 13:39


gốc


Tôi chỉ nhìn thấy câu hỏi này và các ý kiến ​​về w3schools và w3fools. Đối với những gì tôi đã thấy cho đến nay, tất cả các lỗi được báo cáo bởi w3fools đã được sửa chữa trong w3schools. Vì vậy, họ đang thực sự lắng nghe. - Luis Alvarado
IMO, w3schools là một hướng dẫn trung bình tốt cho người mới bắt đầu, vì họ sử dụng các từ đơn giản và ví dụ, không giống như W3C Spec và MDN với tất cả các từ ưa thích và khó có được ý tưởng. - Derek 朕會功夫
Đối với bất cứ ai chống lại các trường học, các đề xuất của bạn cho các lựa chọn thay thế là gì? - chainwork
@chainwork sử dụng htmldog.com - Jung3o
Đây là tiêu chuẩn W3 HTML5 chính thức liên quan đến các phần tử như br (các phần tử void): dev.w3.org/html5/markup/syntax.html#void-element A / (dấu gạch chéo) trước dấu> là tùy chọn và bất kỳ hoặc không có số dấu cách nào trước / là tùy chọn. Điều này có nghĩa, những gì bạn có thể viết <br> hoặc <br/> hoặc <br /> hoặc <br /> v.v. - Ignas2526


Các câu trả lời:


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

Các biểu mẫu khác có khả năng tương thích với XHTML; để làm cho nó có thể viết cùng một mã như XHTML, và có nó cũng làm việc 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 <br> nhãn; nếu bạn đang sử dụng một hệ thống như vậy, nó là tốt để sử dụng <br/>, nó không chỉ cần thiết nếu bạn không cần phải làm điều đó.

Rất ít người thực sự sử dụng XHTML, tuy nhiên. Bạn cần phân phối nội dung của mình dưới dạng application/xhtml+xml để nó được hiểu là XHTML, và điều đó sẽ không hoạt động trong các phiên bản cũ của IE - nó cũng có nghĩa là bất kỳ lỗi nhỏ nào bạn thực hiện sẽ ngăn trang của bạn 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 thực sự đang được phân phát và được hiểu là HTML. Xem Phân phát XHTML dưới dạng văn bản / html được coi là có hại để biết thêm thông tin.


1293
2017-12-22 13:42



Bài tiểu luận "Được coi là có hại" được coi là có hại! - - meyerweb.com/eric/comment/chech.html - Michael Krelin - hacker
Nhưng có một xml hợp lệ không hàm ý phục vụ xhtml, anyway. Nó có thể hữu ích cho tất cả các loại tiền xử lý cục bộ. - Michael Krelin - hacker
Có, nhưng bạn phải rất cẩn thận khi 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. Ví dụ, trong XML, <br/> giống như <br></br>, nhưng sau này không phải là HTML hợp lệ. - Brian Campbell
Brian, ý tưởng là bạn có thể có html của bạn được hình thành tốt, đó là nó. Tất nhiên khi chuyển đổi thành một người khác, bạn phải chắc chắn rằng nó vẫn còn hợp lệ, nhưng nó là đáng nói đến? :) - Michael Krelin - hacker
@Marco: Huh, tôi không biết document.write  không làm việc trong xhtml - cảm ơn bạn đã chia sẻ. Tôi đồng ý rằng nó sẽ là ngớ ngẩn cho các ứng dụng web để thử và làm bất cứ điều gì mà không có Javascript, nhưng tôi đã cố gắng để nói rằng các trang web mà hầu như 100% phần trăm trên Javascript là giòn hơn và có thể thất bại khi người dùng tắt javascript (hoặc đang sử dụng điện thoại cũ hoặc thứ gì đó) - Michael0x2a


Tôi nghĩ rằng trích dẫn này từ Bản nháp tham chiếu HTML 5 cung cấp câu trả lời:

Tuy nhiên, một số yếu tố bị cấm   có chứa bất kỳ nội dung nào.   Chúng được gọi là các phần tử void. Trong   HTML, cú pháp trên không thể được sử dụng   cho các phần tử void. Đối với các yếu tố như vậy,   thẻ kết thúc phải được bỏ qua vì   phần tử được tự động đóng bởi   trình phân tích cú pháp. Các yếu tố này bao gồm,   trong số những người khác, br, hr, liên kết và meta

Ví dụ về HTML:

<link type="text/css" rel="stylesheet" href="style.css">

Trong XHTML, cú pháp XML   yêu cầu quyết định rằng điều này phải   làm rõ ràng bằng cách sử dụng một cách rõ ràng   thẻ kết thúc, như ở trên hoặc thẻ trống   cú pháp phần tử. Điều này đạt được bằng   chèn dấu gạch chéo ở cuối   bắt đầu thẻ ngay trước quyền   khung góc.

Thí dụ:

<link type="text/css" href="style.css"/>

Tác giả có thể tùy ý chọn sử dụng   cú pháp tương tự cho các phần tử void trong   cú pháp HTML là tốt. Một số tác giả   cũng chọn bao gồm khoảng trắng   trước dấu gạch chéo, tuy nhiên điều này không   cần thiết. (Sử dụng khoảng trống trong đó   thời trang là một quy ước được thừa kế từ   hướng dẫn tương thích trong XHTML   1.0, Phụ lục C.)


195
2017-12-22 13:44



Vì vậy, câu trả lời là để mã tốt hơn mà không có dấu gạch chéo và không gian, nhưng có dấu gạch chéo (có hoặc không có không gian) - là tùy chọn? - Eikern
Đó là cách tôi đọc nó, vâng. - Daan
Tôi thích cách đặc điểm kỹ thuật không đặc biệt cụ thể (vào thời điểm này) "meh, làm những gì bạn muốn!" - Matt Ellen
Vì nó là tùy chọn, tôi thích nhiều hơn /> bởi vì nó là tốt cho khả năng đọc. - BrunoLM
Tôi thích đóng một cách rõ ràng các thẻ của mình mà không có lý do nào khác ngoài cảm giác đúng và có ý nghĩa khi tôi đọc / viết mã. Tôi hài lòng rằng Dự thảo Tham chiếu HTML5 đồng ý với tôi. - Syntax Error


XML không cho phép mở thẻ, do đó, nó làm cho <br> một chút tồi tệ hơn hai người kia. Hai loại còn lại tương đương với mức ưu tiên thứ hai cho khả năng 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 <br/> hoặc là <br />, bất cứ điều gì làm hài 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 là "di động" một chút.

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

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

  1. 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 là   trước bởi một hoặc nhiều không gian   nhân vật.
  4. Tùy chọn, một hoặc nhiều ký tự khoảng trắng.
  5. Tùy chọn, ký tự "/", có thể chỉ xuất hiện nếu   phần tử là phần tử void.
  6. Ký tự ">".

119
2017-12-22 13:42



HTML không thực sự là XML, chỉ là khá gần với nó. - tloach
Có, nó không phải. 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ự" / ", có thể chỉ xuất hiện nếu phần tử là phần tử void". - Michael Krelin - hacker
helloworlder, tôi muốn nói rằng đặc tả HTML5 gần giống với sự tuân thủ XML. - Michael Krelin - hacker
Tôi chỉ muốn thêm rằng trên cả XML và HTML, ML là viết tắt của Markup Language. Lý do có quá nhiều sự chồng chéo giữa chúng là cả hai đều được định nghĩa ban đầu bằng SGML (Ngôn ngữ đánh dấu được tổng quát hóa tiêu chuẩn hóa) nhưng không nhiều người nhớ nó bây giờ ... - John Vincent
@ BennyNeugebauer, Nếu bạn đang sử dụng regex để phân tích cú pháp html bạn đang nhiều hơn hoặc ít hơn để dựa vào may mắn của bạn chứ không phải là thẻ đóng đúng ;-) - Michael Krelin - hacker


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

Trong HTML 5: <br> được ưa thích, nhưng <br/> và <br /> cũng được chấp nhận

Trong XHTML: <br /> được ưa thích. Cũng có thể sử dụng <br/> hoặc là <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 cú pháp 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:


88
2017-12-30 05:40



kiểm tra liên kết, cách tiếp cận ưa thích là <br>, nhưng nó nói ở đâu <br/> nó không được chấp nhận? - JackDev
Để làm rõ, đối với cú pháp tuân thủ XML, <br/> và <br /> (với một không gian) là bình đẳng, không có sở thích cho một trong hai. Xem XML 1.0 spec. Khoảng trống (SPACE, tab hoặc LINE FEED) trước khi /> là tùy chọn, không có tùy chọn. - Basil Bourque
Bạn có thể trích dẫn tham chiếu cho cú pháp không phải XML được ưa thích trong HTML5 không? Đó là tin cho tôi. Hỗ trợ tùy chọn cho sự tuân thủ XML nghiêm ngặt là mục tiêu sáng tạo của HTML5 khi tôi nhớ lại. Có lẽ tôi đã bỏ lỡ điều gì đó trên HTML so với XHTML tài liệu tại whatwg.org hoặc W3C Polyglot Markup: Một cấu hình mạnh mẽ của từ vựng HTML5 tại W3C. - Basil Bourque
@BasilBourque Để tái lặp lại những gì tôi đã nói ở nơi khác cho bạn. Đọc thông số kỹ thuật thực tế trong HTML5 cho các thẻ và các phần tử 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 đóng 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 đóng cho các thẻ HTML đó. Ở những nơi khác, spec nói rằng bạn có thể đặt một ở đó nhưng nó 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ô ích làm cho bất kỳ sử dụng nó chỉ là vô nghĩa và vô dụng. - Rob
@Rob So Mục 8.1.2.1. Bắt đầu thẻ của Phần 8. Cú pháp HTML của tài liệu, HTML 5.2 Khuyến nghị của W3C, ngày 14 tháng 12 năm 2017, được công bố bởi W3C có phải là đặc tả thực tế của HTML không? Xin cho biết. - Basil Bourque


Theo spec dạng mong đợi là <br> đối với HTML 5 nhưng được phép sử dụng dấu gạch chéo.


52
2017-12-22 13:44





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

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

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

UPD Thực ra, <br/> Là được phép trong HTML5. 9.1.2.1, 7.


19
2017-12-22 13:48



"HTML5 không phải là XML, do đó, nó không nên đặt ra một yêu cầu như vậy." Cho dù đó là chính xác hay không phụ thuộc vào việc giải thích của từ "HTML5". Nếu chúng ta nói về HTML5 là ngôn ngữ, thì câu lệnh đó là chính xác. Tuy nhiên, nếu chúng ta nói về HTML5 như một đặc tả, thì câu lệnh đó là không chính xác. Đặc tả HTML5 định nghĩa "từ vựng và các API được liên kết 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ỉ cần cung cấp thêm thông tin cho người đọc. - Christian Hujer


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

1) Trình soạn thảo văn bản và XML làm nổi bật cú pháp XML với các màu khác nhau sẽ làm nổi bật chính xác với <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 (ví dụ: XHTML) thường dễ dàng hơn để xác thự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 không gian trước dấu gạch chéo (ví dụ: <br /> thay vì <br/>) chẳng hạn như thông số mã hóa Plugin WordPress: http://make.wordpress.org/core/handbook/coding-standards/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.


13
2018-01-16 17:43



HTML được định dạng tốt không phải là XHTML. - jmarkmurphy
XHTML là HTML được định dạng tốt theo định nghĩa. XHTML tuân theo các quy tắc của XML, theo w3schools "XML là một ngôn ngữ đánh dấu nơi các tài liệu phải được đánh dấu chính xác (" được tạo đúng ") ... ... Bằng cách kết hợp các điểm mạnh của HTML và XML, XHTML đã được phát triển. XHTML là HTML được thiết kế lại dưới dạng XML. " (xem w3schools.com/html/html_xhtml.asp) - Kmeixner
HTML có thể được định dạng 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ư về khóa học khoa học máy tính của trường đại học về lập trình web mà tôi đã lấy năm 1997 cũng đưa ra tuyên bố rằng xhtml là html được định dạng tốt. Tôi không chắc chắn nơi bạn đang nhận được thông tin của bạn từ, bạn có thể trích dẫn bất kỳ nguồn chính thức trực tuyến để sao lưu yêu cầu của bạn? - Kmeixner
<br> và <hr> là HTML hoàn toàn hợp lệ và được định dạng tốt. Chúng không phải là các thẻ XML hợp lệ. Thông số HTML theo cú pháp HTML cho biết rằng các phần tử void (như <br> hoặc <hr>) có thể có /nhân vật ngay trước trận chung kết >. Nhưng nó không có tác dụng. Nó bị bỏ qua nếu nó ở đó. Nếu / là một phần được ưa thích của cú pháp, tiêu chuẩn sẽ nói should thay vì may. - jmarkmurphy


Cả hai <br> và <br /> được chấp nhận trong HTML5, nhưng theo tinh thần của HTML, <br> nên được sử dụng. HTML5 cho phép đóng các 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ó thể chấp nhận được, 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 đóng (/).


11
2018-04-21 18:50



@ Knickerless-Noggins Tôi không chắc bạn đang đọc ở đâu, nhưng <br /> hoàn toàn có thể chấp nhận được, và W3Schools không phải là đặc tả cho HTML. Xem thông số HTML5, cái nào thông suốt nói rằng "Sau đó, nếu phần tử là một trong phần tử voidhoặc nếu phần tử là yếu tố nước ngoàithì có thể có ký tự "/" (U + 002F) đơn. [nhấn mạnh thêm] - mc10
Câu trả lời này, giống như những người khác, không chính xác làm giảm tính hợp pháp của sự tuân thủ XML nghiêm ngặt trong HTML5. Hỗ trợ cho XML là không phải một tính năng chuyển đổi hoặc di chuyển tạm thời. Hỗ trợ tùy chọn của sự tuân thủ XML là một 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