HTML 5: czy to <br>, <br/> czy <br />?


2032

Próbowałem sprawdzić inne odpowiedzi , ale nadal jestem zdezorientowany - szczególnie po zobaczeniu referencji W3schools HTML 5 .

Myślałem, że HTML 4.01 powinien „zezwalać” na pojedyncze tagi tylko na <img>i <br>. Potem pojawił się XHTML <img />i <br />( gdzie ktoś powiedział, że jest miejsce dla starszych przeglądarek ).

Teraz zastanawiam się, jak mam sformatować kod podczas ćwiczenia HTML 5.

Jest to <br>, <br/>czy <br />?


Niezależnie od tego, którego używasz dzisiaj, weź pod uwagę, że niektóre technologie wspomagające (np. Czytniki ekranu) prawdopodobnie go ogłoszą. NVDA mówi na przykład „puste”. Użytkownicy czytników ekranu najprawdopodobniej nie zyskają nic poza hałasem z tego dodatkowego ogłoszenia. Rozważ dodanie role="presentation"atrybutu, z wyjątkiem tych rzadkich przypadków, w których podział linii funkcjonuje jako „treść”.
brennanyoung

Zgodnie z aktualną specyfikacją „6. Zatem, jeśli element jest jednym z pustych elementów lub element jest obcym elementem, wówczas może występować pojedynczy znak SOLIDUS U + 002F (/). Ten znak nie ma wpływu na pustkę elements " html.spec.whatwg.org/multipage/syntax.html#start-tags
Tim Abell

Odpowiedzi:


1543

Po prostu <br>wystarczy.

Inne formy są dostępne dla kompatybilności z XHTML; aby umożliwić napisanie tego samego kodu co XHTML, i aby działał również jako HTML. Niektóre systemy generujące HTML mogą być oparte na generatorach XML, a zatem nie mają możliwości wyprowadzania zwykłego <br>tagu; jeśli używasz takiego systemu, możesz go używać <br/>, to po prostu nie jest konieczne, jeśli nie musisz tego robić.

Jednak bardzo niewiele osób faktycznie używa XHTML. Musisz podać treść application/xhtml+xml, aby była interpretowana jako XHTML, a to nie będzie działać w starych wersjach IE - będzie to również oznaczać, że każdy mały błąd, który popełnisz, uniemożliwi wyświetlanie twojej strony w przeglądarkach obsługujących XHTML. Tak więc większość tego, co wygląda jak XHTML w sieci, jest faktycznie obsługiwana i interpretowana jako HTML. Więcej informacji można znaleźć w części Udostępnianie XHTML jako tekstu / HTML uznanego za szkodliwe .


23
Ale o poprawny xml nie oznacza, służąc xhtml, w każdym razie. Może być przydatny dla wszystkich rodzajów lokalnego przetwarzania wstępnego.
Michael Krelin - haker

29
Tak, ale musisz bardzo ostrożnie przetwarzać HTML jako XML. Są to różne języki i kompatybilny jest tylko ich podzbiór. Na przykład w XML <br/>jest taki sam <br></br>, ale ten drugi nie jest prawidłowym HTML.
Brian Campbell,

10
Brian, pomysł polegał na tym, że możesz mieć dobrze sformatowany HTML, to wszystko. Oczywiście przekształcając jeden w drugi, musisz upewnić się, że jest nadal aktualny, ale czy warto o tym wspomnieć? :)
Michael Krelin - haker

5
@Marco Nie sądzę, że document.write jest strasznie szybki w porównaniu do faktycznego (x) HTML (ponieważ trzeba go wykonać). W każdym razie Javascript nie jest koniecznie dostępny na wszystkich komputerach, więc strony internetowe, które nadmiernie na nim polegają, nie są zbyt elastyczne. Ponadto HTML nie ma funkcji.
Michael0x2a

8
@Marco: Huh, nie wiedziałem, document.write że nie działa w xhtml - dziękuję za udostępnienie. Zgadzam się, że byłoby głupio, gdyby aplikacje webowe próbowały robić wszystko bez Javascript, ale starałem się powiedzieć, że strony internetowe, które polegają na prawie 100% na Javascript, są bardziej kruche i mogą zawieść, gdy użytkownicy wyłączą javascript (lub używają starszych telefonów) czy coś takiego)
Michael0x2a

227

Myślę, że ten cytat z dokumentu referencyjnego HTML 5 zawiera odpowiedź:

3.2.2.2 Elementy puste

Termin pustych elementów jest używany do oznaczania elementów, które muszą być puste . Te wymagania dotyczą tylko składni HTML. W XHTML wszystkie takie elementy są traktowane jak zwykłe elementy, ale muszą być oznaczone jako puste elementy.

Elementy te nie mogą zawierać żadnych treści. W HTML elementy te mają tylko znacznik początkowy . Samozamykający tag składnia może być stosowany. Znacznik końcowy należy pominąć, ponieważ element jest automatycznie zamykany przez analizator składni.

Przykład HTML:
void element w składni HTML. Jest to niedozwolone w składni XHTML.

<hr>

Przykład:
Element void korzystający ze składni tagów samozamykających kompatybilnych z HTML i XHTML.

<hr/>

Przykład XHTML:
Element void wykorzystujący tylko składnię XHTML z jawnym znacznikiem końcowym. Nie jest to dozwolone w przypadku pustych elementów w składni HTML.

<hr></hr>

22
Zatem odpowiedź brzmi: kod najlepiej bez ukośnika i spacji, ale użycie ukośnika (ze spacją lub bez) - jest opcjonalne?
Eikern

67
Uwielbiam sposób, w jaki specyfikacja nie jest szczególnie szczegółowa (w tym punkcie) „meh, rób co chcesz!”
Matt Ellen,

42
Ponieważ jest opcjonalny, bardziej mi się podoba, />ponieważ jest dobry dla czytelności.
BrunoLM,

38
Lubię jawnie zamykać moje tagi bez żadnego innego powodu niż to wydaje się słuszne i ma sens, gdy czytam / piszę kod. Cieszę się, że Szkic referencyjny HTML5 zgadza się ze mną.
Błąd składni

7
Wydaje mi się to dość specyficzne. <br> i <br /> są zgodne z HTML5.
William Denniss,

134

XML nie pozwala na pozostawienie tagów otwartych, więc czyni <br>to nieco gorszym niż pozostałe dwa. Pozostałe dwa są mniej więcej równoważne z drugim ( <br/>) preferowanym ze względu na kompatybilność ze starszymi przeglądarkami. Właściwie spacja wcześniej /jest preferowana ze względu na kompatybilność, ale myślę, że ma sens tylko w przypadku tagów, które mają atrybuty. Więc powiedziałbym albo, <br/>albo <br />cokolwiek, co podoba się twojej estetyce.

Podsumowując: wszystkie trzy są poprawne, przy czym pierwszy ( <br>) jest nieco mniej „przenośny”.

Edycja : Teraz, gdy wszyscy szaleją na punkcie specyfikacji, myślę, że warto to zaznaczyć według dev.w3.org :

Tagi początkowe składają się z następujących części, dokładnie w następującej kolejności:

  1. Znak „<”.
  2. Nazwa znacznika elementu.
  3. Opcjonalnie jeden lub więcej atrybutów, z których każdy musi być poprzedzony jednym lub więcej znakami spacji.
  4. Opcjonalnie jeden lub więcej znaków spacji.
  5. Opcjonalnie znak „/”, który może występować tylko wtedy, gdy element jest pustym elementem.
  6. Znak „>”.

17
HTML nie jest tak naprawdę XML-em, tylko dość blisko niego.
tloach

6
Tak nie jest. Ale /jest tutaj wspólnym mianownikiem. HTML5 w szczególności zezwala na użycie /: „Opcjonalnie znaku„ / ”, który może występować tylko wtedy, gdy element jest pustym elementem”.
Michael Krelin - haker

4
helloworlder, powiedziałbym, że specyfikacja HTML5 jest bliska zgodności z XML.
Michael Krelin - haker

5
Chciałbym tylko dodać, że zarówno w XML, jak i HTML, ML oznacza Markup Language. Powodem, dla którego tak wiele się pokrywają, jest to, że oba zostały pierwotnie zdefiniowane za pomocą SGML (Standardized Generalized Markup Language), ale niewiele osób pamięta to teraz ...
John Vincent

4
@BennyNeugebauer, Jeśli używasz wyrażenia regularnego do analizowania html, możesz mniej więcej polegać na swoim szczęściu, a nie na odpowiednio zamkniętych tagach ;-)
Michael Krelin - haker

104

W HTML (do HTML 4) : użyj<br>

W HTML 5 : <br>jest korzystne, ale <br/>i <br />jest również dopuszczalne

W XHTML : <br />jest preferowany. Można również użyć <br/>lub<br></br>

Uwagi:

  • <br></br> nie jest poprawny w HTML 5, będzie traktowany jako dwa podziały wiersza.
  • W XHTML rozróżniana jest wielkość liter, w HTML nie jest rozróżniana wielkość liter.
  • Dla zachowania kompatybilności wstecznej, kilka starych przeglądarek będzie analizować XHTML jako HTML, a nie na <br/>, ale nie<br />

Odniesienie:


sprawdziłem link, preferowanym podejściem jest <br>, ale gdzie to jest napisane <br/> nie jest dopuszczalne?
JackDev,

4
Dla wyjaśnienia, dla składni zgodnej z XML <br/>i <br />(z SPACJĄ) są równe, bez preferencji dla obu. Zobacz specyfikację XML 1.0 . Biała spacja (SPACJA, tabulator lub PODAJNIK LINII) przed />opcją jest opcjonalna, bez preferencji.
Basil Bourque,

1
Czy możesz podać odwołanie do preferowanej składni innej niż XML w HTML5? To dla mnie nowość. Opcjonalna obsługa ścisłej zgodności z XML była, jak pamiętam, podstawowym założeniem HTML5. Być może coś przeoczyłem w dokumencie HTML vs. XHTML na whatwg.org lub W3C Polyglot Markup: solidny profil słownictwa HTML5 na W3C.
Basil Bourque,

1
@BasilBourque Aby powtórzyć to, co powiedziałem w innym miejscu. Przeczytaj aktualną specyfikację HTML5 dla tagów i elementów, a nigdy, NIGDY nie znajdziesz żadnych rekomendacji ani sugestii, które wymagałyby lub sugerowałyby użycie zamykającego ukośnika dla tych tagów. Jeśli chcesz używać XML lub XHTML, to nie używasz HTML, a to inna historia. NIE używaj zamykającego ukośnika dla tych tagów HTML. Gdzie indziej specyfikacja mówi, że możesz ją tam umieścić, ale to nic nie znaczy, nic nie robi, a przeglądarki są poinstruowane, aby to zignorować. Jest więc bezcelowe i bezużyteczne, czyniąc jakikolwiek użytek z niego tak samo bezcelowym i bezużytecznym.
Rob

@Rob So Sekcja 8.1.2.1. Początek tagi z sekcji 8. składni HTML dokumentu, HTML 5.2 Rekomendacji W3C, 14 grudnia 2017 , opublikowany przez W3C nie jest rzeczywista specyfikacja HTML? Proszę doradź.
Basil Bourque,


27

Polecam używanie <br />z następujących powodów:

1) Edytory tekstu i XML, które podkreślają składnię XML w różnych kolorach, podświetlą się prawidłowo, <br />ale nie zawsze tak jest, jeśli używasz<br>

2) <br />jest wstecznie kompatybilny z XHTML, a dobrze sformatowany HTML (tj .: XHTML) jest często łatwiejszy do sprawdzenia pod kątem błędów i debugowania

3) Niektóre stare parsery i niektóre specyfikacje kodowania wymagają spacji przed ukośnikiem (tj. <br />Zamiast <br/>), np. Specyfikacja kodowania wtyczek WordPress: http://make.wordpress.org/core/handbook/coding-standards/html/

Z mojego doświadczenia wynika, że ​​nigdy nie spotkałem się z przypadkiem, w którym korzystanie <br />jest problematyczne, jednak istnieje wiele przypadków, w których <br/>lub szczególnie <br>mogą być problematyczne w starszych przeglądarkach i narzędziach.


1
Dobrze sformatowany HTML to nie XHTML.
jmarkmurphy

1
XHTML jest z definicji dobrze sformatowanym HTML. XHTML postępuje zgodnie z regułami XML, zgodnie z w3schools „XML to język znaczników, w którym dokumenty muszą być poprawnie oznaczone (być„ dobrze uformowane ”) ... ... Łącząc zalety HTML i XML, opracowano XHTML. XHTML to HTML przeprojektowany jako XML. ” (patrz w3schools.com/html/html_xhtml.asp )
Kmeixner

2
HTML może być dobrze sformułowany, ale nie może być poprawnym XML. W3Schools nie zawsze jest najbardziej wiarygodnym odniesieniem.
jmarkmurphy

Profesor uniwersyteckiego kursu informatyki na temat programowania stron internetowych, który wziąłem w 1997 roku, również twierdził, że xhtml jest dobrze sformatowanym HTML. Nie jestem pewien, skąd czerpiesz informacje, czy możesz przytoczyć oficjalne źródła online, aby poprzeć swoje roszczenie?
Kmeixner

1
@jmarkmurphy, myślę, że być może nie znasz terminu „dobrze uformowany”, który jest technicznym terminem żargonowym odnoszącym się do wymogu standardów XML i XHTML, że wszystkie tagi muszą mieć tagi zamykające i muszą być zagnieżdżone w odpowiedniej kolejności . <hr> i <br> nie spełniają wymagań XML i XHTML, ponieważ nie mają tagów zamykających, np .: <br /> lub <br> </br> są poprawne, <br> nie jest poprawne XHTML lub XML . HTML oczywiście nie ma dobrze sformułowanego wymagania, więc <br> i <hr> są poprawne tylko w HTML.
Kmeixner

20

XML wymaga, aby wszystkie tagi miały odpowiedni tag zamykający. Dlatego istnieje specjalna składnia skrótów dla znaczników bez wewnętrznej zawartości.

HTML5 nie jest XML, więc nie powinien stanowić takiego wymagania. Nie jest to także HTML 4.01.

Na przykład w specyfikacjach HTML5 wszystkie przykłady ze brznacznikiem używają <br>składni, a nie <br/>.

UPD Właściwie <br/>jest dozwolone w HTML5 . 9.1.2.1, 7.


2
„HTML5 nie jest XML, więc nie powinien stanowić takiego wymagania”. To, czy jest to poprawne, czy nie, zależy od interpretacji słowa „HTML5”. Jeśli mówimy o HTML5 jako języku, to stwierdzenie jest poprawne. Jeśli jednak mówimy o HTML5 jako specyfikacji, to stwierdzenie to jest niepoprawne. Specyfikacja HTML5 definiuje „słownictwo i powiązane interfejsy API dla HTML i XHTML”. Wiem, że to trochę dziwne, nie twierdzę, że ta odpowiedź jest zła, po prostu dając dodatkowe informacje dla czytelnika.
Christian Hujer

14

Jeśli jesteś zainteresowany porównywalnością (nie kompatybilnością, ale porównywalnością), trzymałbym się <br />.

W przeciwnym razie <br>jest w porządku.


1
Ktoś powinien to cofnąć. Znaczenie zostało zmienione.
Josiah

9
Co należy rozumieć przez porównywalność? Nie rozumiem
tuxayo

12

Zarówno <br>i <br />są dopuszczalne w HTML5, ale w duchu HTML, <br>powinny być stosowane. HTML5 umożliwia zamykanie ukośników, aby być bardziej kompatybilnym z dokumentami, które wcześniej były HTML 4.01 i XHTML 1.0, umożliwiając łatwiejszą migrację do HTML5. Oczywiście <br/>jest to również dopuszczalne, ale aby być kompatybilnym z niektórymi starszymi przeglądarkami, przed zamykającym ukośnikiem ( /) powinna być spacja .


1
@ Knickerless-Noggins Nie jestem pewien, gdzie to czytasz, ale <br />jest całkowicie do przyjęcia, a W3Schools nie jest specyfikacją HTML. Zobacz specyfikację HTML5 , która wyraźnie stwierdza, że ​​„Zatem, jeśli element jest jednym z pustych elementów lub jeśli jest elementem obcym , może istnieć pojedynczy znak „ / ”(U + 002F) . [Podkreślenie dodane ] "
kevinji,

Ta odpowiedź, podobnie jak inne, nieprawidłowo bagatelizuje zasadność ścisłej zgodności XML w HTML5. Obsługa XML nie jest tymczasową funkcją przejścia lub migracji. Opcjonalne wsparcie zgodności z XML było podstawowym celem HTML5. Jest to istotna funkcja dla osób korzystających z narzędzi XML do pracy z zawartością HTML.
Basil Bourque,

12
  1. Jeśli wyprowadzasz HTML na zwykłej stronie internetowej, której możesz użyć <br> lub <br/> oba są ważne za każdym razem, gdy podajesz HTML5 jako tekst / HTML.

  2. Jeśli obsługujących HTML5 jako XHTML (czyli zawartość aplikacji typu / xhtml + xml, z deklaracją XML) następnie należy użyć znacznika zamykającego siebie tak: <br/>.

    Jeśli tego nie zrobisz, niektóre przeglądarki mogą odmówić renderowania strony (w szczególności Firefox bardzo surowo renderuje tylko prawidłowe strony xhtml + xml).

    Jak zauważono w 1., <br/>obowiązuje również HTML5, który jest generowany jako XML, ale służył jako zwykły tekst / HTML bez deklaracji XML (na przykład z transformacji XSL, która generuje strony internetowe lub coś podobnego).

Aby usunąć zamieszanie: wstawienie spacji przed ukośnikiem nie jest wymagane w HTML5 i nie ma znaczenia, jak strona jest renderowana (jeśli ktoś może przytoczyć przykład, wycofam to, ale nie wierzę, że to jest prawda - ale IE z pewnością robi wiele innych dziwnych rzeczy ze wszystkimi formami <br>tagów).

Znakomity walidator na http://validator.w3.org jest naprawdę pomocny w sprawdzaniu, co jest ważne (chociaż nie jestem pewien, czy możesz na nim polegać, aby sprawdzać także typ zawartości).


czekaj, mimetype text / html jest ścisłym XML?
amwinter

1
Nie powinieneś podawać jej z deklaracją XML, jeśli używasz text / html, ale treść może być w innym przypadku poprawnym XML (np. Wygenerowanym z czegoś, co wyprowadza XML, takiego jak wyjście XSLT lub obiekt, który serializuje do XML).
Iain Collins

Nadal nie rozumiem: jeśli tekst / HTML powinien zawierać <br />, to kiedy powinienem używać niezamknięty <br>?
amwinter

1
Och, przepraszam, oba technicznie są poprawne dla HTML5, jeśli jest to przez text / html. Możesz to potwierdzić za pomocą (głównie) wspaniałego walidatora dostępnego na stronie validator.w3.org . Moje sformułowanie powyżej jest marne. Widzę, że teraz je zredaguję.
Iain Collins

3
Myślę, że to Netscape Navigator 3 lub 4 nie lubił <br/>, z pewnością nie ma się czym martwić w dzisiejszych czasach.
robertc

12

Oba <br>i <br/>poradzą sobie dobrze, ale wolę, <br/>ponieważ jest to nieco bardziej logiczne. Logiczne jest oczekiwanie tagu zamykającego, ilekroć jest tag otwierający. Dlatego twój kod jest nieco łatwiejszy do odczytania, jeśli nie użyjesz otwierającego tagu, gdy nie będzie tagu zamykającego.

Wszystkie przeglądarki (oprócz być może bardzo starych, które nie mają znaczenia) będą wyświetlać oba dokładnie tak samo. Jednak <br>nie jest zgodny z xHTML.


7

<br>i <br/>renderować inaczej. Niektóre przeglądarki interpretują <br/>jak <br></br>i wkładka dwa podziały wiersza


12
Co? Czy wiesz, które przeglądarki?
Eikern

7
Znaleziono to podczas testowania przeglądarek z ery ie5 / ns4. Jeśli dobrze pamiętam, to znaczy, że było to w trybie zgodności ze standardami. Ale to było dawno temu ...
Samuel

3
Dla ścisłych przeglądarek HTML4 (co jest praktycznie tylko walidatorem HTML4), <br />oznacza <br>&gt;.
Konrad Borowski

7

<br>jest wystarczający, ale w XHTML <br />jest preferowany zgodnie z WHATWG i zgodnie z W3C .

Zacytować rozdział 8.1.2.1 z HTML 5.2 Rekomendacja W3C, 14 grudnia 2017

Tagi początkowe muszą mieć następujący format:

  1. Po atrybutach lub po nazwie znacznika, jeśli nie ma atrybutów, może być jeden lub więcej znaków spacji. (Niektóre atrybuty muszą być poprzedzone spacją. Patrz § 8.1.2.3 Atrybuty poniżej.)

  2. Następnie, jeśli element jest jednym z pustych elementów lub element jest obcym elementem, wówczas może występować pojedynczy znak SOLIDUS U + 002F (/). Ta postać nie ma wpływu na puste elementy, ale na obce elementy oznacza znacznik początkowy jako samozamykający.

Jeśli używasz programu Dreamweaver CS6, zostanie on automatycznie uzupełniony jako <br />.

Aby sprawdzić poprawność pliku HTML na W3C, zobacz: http://validator.w3.org/


@Julix Rzeczywiście, dlaczego głosowania w dół? To jedna z niewielu poprawnych odpowiedzi na tej stronie. HTML5 jest absolutnie zgodny z XML, opcjonalnie, aw składni XML pojedynczy znacznik musi być zamknięty ukośnikiem. W jaki sposób tak proste fakty mogą być tak źle interpretowane, gdy są napisane czarno-białe w specyfikacji .
Basil Bourque,

5

W ramach walidacji to pytanie naprawdę zależy od tego, przez co !DOCTYPEpróbujesz uzyskać weryfikację.

Moim osobistym ulubionym jest miejsce, z 4.01 Transktórego po prostu korzystam <br/>i usuwa ostrzeżenia i błędy, które mogły pojawić się podczas sprawdzania poprawności

Surowa jest znacznie bardziej skomplikowaną bestią, NIENAWIDZI "SHORTTAGS"i dosłownie chce tylko<br></br>

W HTML5„LAX” świata kodu naprawdę nie ma właściwej odpowiedzi, ponieważ jest detects every example you put uptam tak poprawna ......

W końcu myślę, że wszystko, co się liczy, is what validation YOU PREFERlub the person that you are working for prefers... wraz z lackadaisicalruchem w ścisłości kodu html5widzimy niektóre BARDZO LAZY CODERS


4

IMHO lepiej jest użyć zwykłej notacji ( <br />) zamiast wybaczającej notacji ( <br>) z następujących powodów:

Konsystencja

W twoim HTML prawdopodobnie jest trochę SVG i SVG obsługuje tylko zwykłą notację (np <rect />.).

Hackability

Nie jest tak, że środowiska takie jak React i NativeScript używają notacji XML.
Kod znaczników będzie łatwiejszy do przeanalizowania.

Przejrzystość

Regularny zapis jest łatwiejszy do odczytania i zrozumienia, nawet późno w nocy.

Dane techniczne

Zarówno <br>i <br />są ważne znaczniki HTML.

Wniosek

Jeśli używasz pełnoprawnego edytora tekstu, skonfiguruj go tak, aby używał zwykłej notacji (która nazywa się Emmet XHTML ).
Na przykład w programie Visual Studio Code wystarczy dodać następujący wiersz do ustawień:

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

1
Ściśle mówiąc, oba są krótkimi notacjami: odpowiednio krótka notacja HTML i krótka notacja XML. Kompletna notacja jest <br></br>i jest poprawna w X (HT) ML, ale nie w HTML.
Ilya Streltsyn

1
HTML5 nie wprowadził <br>. Zawsze był w HTML. XHTML wprowadził <br/>
jmarkmurphy

1
Aby poprawnie przejść do historii tego, musisz głęboko zagłębić się w SGML.
Michael Kay

3

Wiem tylko, że <br />daje to przerwę z białą linią, <br>aw niektórych przypadkach po prostu daje przerwę. Zdarzyło mi się to, kiedy konfigurowałem skrypt IPN (PHP), wysłałem e-maile i sprawdziłem skrzynkę odbiorczą. Nie wiem dlaczego, ale dostałem tylko wiadomość, żeby wyglądać schludnie, używając obu<br /> and <br>

Spójrz na pocztę tutaj: http://snag.gy/cLxUa.jpg

Pierwsze dwie sekcje tekstu są oddzielone <br />, stąd linie białych znaków, ostatnie trzy wiersze tekstu na dole, a ostatnia sekcja jest oddzielona <br>i po prostu daje nowy wiersz.


3
Co to była za przeglądarka?
Dave Burton


2

Jak wiele innych omówiło, oba są <br>i <br/>są do przyjęcia.

Wydaje mi się, że kompromisem jest lepsza czytelność i kompatybilność wsteczna w <br/>porównaniu z wysyłaniem o jeden mniej znaków do użytkowników końcowych <br>.

A ponieważ Google używa <br>, ja też.

(Oczywiście pamiętaj, że mogą mi służyć, <br>ponieważ używam Chrome, o którym wiedzą, że obsługuje. W IE mogą nadal służyć <br/>)


2

<br>działa dobrze. Bardziej rygorystyczne wersje, takie jak XHTML, wymagają dodania zamykającego, a naprawdę stare wersje HTML, które nie zawierają tagu DOCTYPEmake <br>non-void, jak <br></br>.

Podsumowując: <br>jest w porządku. Inne też są w porządku.


2

W HTML5 ukośnik nie jest już konieczne: <br>,<hr>


Ukośnik nigdy nie był konieczny i nigdy nie został określony w żadnej specyfikacji HTML ani nawet użyty jako przykład w specyfikacji.
Rob

1
@Rob Nie wiem gdzie masz swoje specyfikacji HTML, ale mam kopalni z WHATWG oraz organizacji W3C. Obie specyfikacje publikowania, które jasno definiują ścisłą zgodność XML jako opcjonalną funkcję HTML5. Dotyczy to w szczególności zamykania pojedynczych tagów za pomocą />. Zobacz sekcje 8.1.2.1 i 2 . Zobacz dokument HTML vs. XHTML na whatwg.org oraz W3C Polyglot Markup: solidny profil słownictwa HTML5 na W3C.
Basil Bourque,

@BasilBourque Przeczytaj dokładną specyfikację tych tagów w HTML i nie wyświetlaj XML ani XHTML, które nie są tutaj przedmiotem. Nigdy nie znajdziesz żadnych zapisanych sformułowań ani przykładów w żadnej specyfikacji HTML w historii Internetu, w której zastosowano ukośnik zamykający, wymagany, a nawet sugerowany.
Rob

1
@Rob Wszystko, co mogę zrobić, to powtórzyć: W3C opublikowało dokument o nazwie HTML 5.2, w którym sekcja 8.1.2.1. Znaczniki początkowe wyraźnie mówią, że znacznik samozamykający się z ukośnikiem jest poprawny w punkcie # 6: Jeśli element jest jednym z pustych elementów lub element jest obcy, wówczas może występować pojedynczy U + 002F Znak SOLIDUS (/). Ta postać nie ma wpływu na puste elementy, ale na obce elementy oznacza znacznik początkowy jako samozamykający. Inne dokumenty, które podłączyłem, wyjaśniają, że jeśli wyrażasz swój HTML5 jako XML, ukośnik jest wymagany.
Basil Bourque,

1
@BasilBourque Nigdy nie powiedziałem, że to nieważne. Powiedziałem, że nie ma to żadnego znaczenia i nie służy żadnemu celowi, jak zacytowałeś sam. I znowu, przywołujesz XML jako uzasadnienie używania go w HTML. Nie rób tego! To nie to samo! Nazywamy to „zupą tagów”, gdy parser HTML musi interpretować treść XML.
Rob

2

W większości przypadków w HTML tagi są w parze. Ale do podziału linii nie potrzebujesz pary tagów. Dlatego, aby to wskazać, HTML używa <br/>formatu. <br/>jest właściwy. Użyj tego formatu.

<br>znacznik nie ma znacznika końcowego w HTML W XHTML, <br>znacznik musi być odpowiednio zamknięty, jak poniżej:<br />

W XML każdy znacznik musi być zamknięty. XHTML jest rozszerzeniem XML, dlatego też należy przestrzegać wszystkich reguł XML dla prawidłowego XHTML. Dlatego nawet puste znaczniki (węzły bez węzłów potomnych), takie jak
powinny być zamknięte. XML ma krótką formę zwaną tagami samozamykającymi dla pustych węzłów. Można pisać <br></br> as <br />. Stąd w XHTML<br /> jest używany.

HTML jest pod tym względem bardzo łagodny i nie ma takiej reguły. Więc w HTML puste węzły jak<br> <hr> <meta> itp., Są zapisywane bez zamykającego ukośnika.

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

Nie wszystkie tagi mogą być automatycznie zamykane. Na przykład taki tag <script src="jQuery.min.js" />nie jest dozwolony przez XHTML DTD.


1

Ummm ..... czy ktoś zna POJEDYNCZEGO dostawcę, klienta użytkownika lub producenta przeglądarki, który kiedykolwiek przestrzegał specyfikacji W3C w 100% ??? Więc jeśli HTML5 mówi, że obsługuje wszystkie trzy wersje elementów break, możesz założyć się, że dostawcy obsługują te same i jeszcze bardziej niechlujne wersje!

Jedyną rzeczą, która ma znaczenie w tej debacie, jest KONSEKWENTNIE stosowanie kodowania, które również jest zgodne ze specyfikacjami XML, a także specyfikacjami HTML, jeśli to możliwe. Oznacza to, że powinieneś używać poprawnej wersji XML tagu break i zachęcać swój zespół do robienia tego samego:

<br />

Ten sam format ukośnika spacji powinien mieć zastosowanie do tagów img, a, hr i meta w kodzie. Dlaczego? Ponieważ:

  1. Jest wstecznie kompatybilny ze starszymi klientami / przeglądarkami XHTML
  2. Producenci przeglądarek i tak obsługują wersję XML, więc specyfikacja HTML5 jest dyskusyjna.
  3. Niedopuszczalne implementacje większości programów klienckich dzisiaj, w przeszłości i w przyszłości, zaakceptują to.
  4. Pozwala to na porównywanie znaczników ze standardami XML, jeśli trzeba wrócić do tworzenia dokumentów XHTML / XML na podstawie znaczników.
  5. „Dobrą praktyką kodowania” dla WSZYSTKICH DEWELOPERÓW WEB jest ciągłe stosowanie znaczników, które podążają za XML, w tym kodowanie małymi literami, cytowane atrybuty, znaki XML, itp. Itd. Dlaczego? W przyszłości, jeśli będziesz musiał przejść na dane XML, automatycznie kodujesz i myślisz w języku XML.
  6. Możemy mieć tylko nadzieję, że w przyszłej sieci WWW odejdziemy od standardów wdrożonych przez prywatnych dostawców i wrócimy do solidnego, niezawodnego, zweryfikowanego znacznika, który analizuje szybciej, szybciej przenosi dane przez przewody i czyni nasz przyszły Internet bardziej znormalizowanym medium używające XML.

Poza tym w robotycznym i maszynowym świecie, w którym roboty nie mają tych samych problemów z kodowaniem interfejsu człowieka, które rozwiązuje dla nas HTML5, chętnie wrócą do systemów danych XML i parsują takie strony internetowe interfejsu użytkownika znacznie szybciej po konwersji na XML dane.


1

zarówno <br>i <br/>działa, ale nie ma potrzeby korzystania z drugą ponieważ HTML 5 wspiera również pierwszy składni, która jest tak łatwo




-3

<br> i <br /> renderować inaczej w niektórych przeglądarkach, więc wybranie jednej z nich nie zaszkodzi Twojemu projektowi, ale spodziewaj się, że masowe znalezisko… zastąpi renderowanie strony w niektórych przeglądarkach, co może spowodować dodatkową pracę dla ciebie, a nawet zakłopotanie, jeśli zmiana nie wpłynie na nic w przeglądarce testowej, ale przerwie ją w preferowanej przeglądarce twoich klientów.

Wolę, <br>ponieważ używam tego od Erwise i Netscape Navigator (wczesne przeglądarki internetowe), ale nie ma powodu, aby nie wybierać<br /> . Może być przydatny w przypadku niektórych procesów wstępnego przetwarzania, porównywalności itp.

Nawet jeśli twój wybór sprowadza się do preferowania wyglądu jednego nad drugim, lub ty (lub twój ulubiony edytor HTML, np. Dreamweaver) może spodobać się twojemu kodowi zgodność z xml. To zależy od Ciebie.

Krótka uwaga:

Nie należy mylić br, ale dodatkowo można rozważyć użycie wbrznaczników w kodzie HTML: Znacznik możliwości podziału tekstu, który określa, gdzie w tekście można dodać podział wiersza.

W celu dalszej lektury zapoznaj się ze specyfikacją HTML5 .


5
Zobacz specyfikację HTML5 , która wyraźnie stwierdza, że ​​„Zatem, jeśli element jest jednym z pustych elementów lub jeśli jest elementem obcym , może istnieć pojedynczy znak „ / ”(U + 002F) . [Podkreślenie dodane ] ” <br>, oczywiście, jest pustym elementem, jak widać w linku w cytacie.
kevinji

-4

Elementy bez znaczników końcowych nazywane są pustymi znacznikami. W html 4 i html 5 znaczniki końcowe nie są wymagane i można je pominąć.

W xhtml tagi są tak ścisłe. Oznacza to, że musi zaczynać się od znacznika początkowego, a kończyć znacznikiem końcowym.


1
Błędny. Pojedynczy tag jest tak samo ważny w HTML5, jak para tagów początkowych. Zobacz specyfikację HTML 5.2 .
Basil Bourque,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.