Pytanie HTML 5: Czy to jest,
czy
?


Próbowałem sprawdzić inne odpowiedzi, ale nadal jestem zdezorientowany - zwłaszcza po zobaczeniu W3schools HTML 5 odniesienia.

Myślałem, że HTML 4.01 powinien "pozwolić" pojedynczym znacznikom po prostu być <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ć mój kod podczas ćwiczenia HTML 5.

<!DOCTYPE HTML>

Czy to jest <br>, <br/> lub <br />?


1689
2017-12-22 13:39


pochodzenie


Właśnie zobaczyłem to pytanie i komentarze na temat w3schools i w3fools. Z tego, co widziałem do tej pory, wszystkie błędy zgłoszone przez w3fool zostały poprawione w w3schools. Więc oni właściwie słuchają. - Luis Alvarado
IMO, w3schools jest przeciętnie dobrym samouczkiem dla początkujących, ponieważ używa prostych słów i przykładów, w przeciwieństwie do W3C Spec i MDN ze wszystkimi wyszukanymi słowami i trudnymi do zdobycia pomysłami. - Derek 朕會功夫
Dla każdego, kto jest przeciwko uczniom w3, jakie są twoje sugestie dotyczące alternatyw? - chainwork
@ wykorzystanie narzędzi do chowania htmldog.com - Jung3o
Oto oficjalny standard HTML5 W3 związany z elementami takimi jak br (void elements): dev.w3.org/html5/markup/syntax.html#void-element A / (slash) przed> jest opcjonalne i dowolna liczba spacji przed / jest opcjonalna. Oznacza to, co możesz napisać <br> lub <br/> lub <br /> lub <br /> itd. - Ignas2526


Odpowiedzi:


Po prostu <br> jest wystarczający.

Inne formy są kompatybilne z XHTML; aby umożliwić napisanie tego samego kodu co XHTML i sprawić, by 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 generowania tylko nagiego <br> etykietka; jeśli korzystasz z takiego systemu, możesz go używać <br/>, to nie jest konieczne, jeśli nie musisz tego robić.

Jednak bardzo niewiele osób używa XHTML. Musisz wyświetlać treść jako application/xhtml+xml ponieważ jest to interpretowane jako XHTML, a to nie działa w starych wersjach IE - będzie to również oznaczać, że jakikolwiek drobny błąd 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 Internecie, jest faktycznie podawane i interpretowane jako HTML. Widzieć Obsługa XHTML jako tekst / html Rozważany Szkodliwy po więcej informacji.


1293
2017-12-22 13:42



"Uważane za szkodliwe" eseje uważane za szkodliwe! - meyerweb.com/eric/comment/chech.html - Michael Krelin - hacker
Ale posiadanie ważnego xml nie implikuje porcja xhtml, tak czy inaczej. Może być przydatny do wszelkiego rodzaju lokalnego wstępnego przetwarzania. - Michael Krelin - hacker
Tak, ale musisz bardzo ostrożnie przetwarzać HTML jako XML. Są to różne języki i tylko jeden podzbiór jest zgodny. Na przykład w XML, <br/> jest taki sam jak <br></br>, ale ta ostatnia nie jest poprawna HTML. - Brian Campbell
Brian, pomysł był taki, że ty mogą niech Twój HTML będzie dobrze sformułowany xml, to wszystko. Oczywiście przy przekształcaniu jednego w drugi trzeba się upewnić, że jest on nadal ważny, ale czy warto o nim wspomnieć? :) - Michael Krelin - hacker
@ Marco: Huh, nie wiedziałem document.write  nie działa w xhtml - dzięki za udostępnienie. Zgadzam się, że byłoby to niemądre dla web-spyware'ów, aby spróbować zrobić wszystko bez JavaScriptu, ale starałem się powiedzieć, że strony internetowe, które opierają się prawie w 100% na JavaScriptie, bardziej kruche i może zawieść, gdy użytkownicy wyłączą javascript (lub używają starszych telefonów lub czegoś podobnego) - Michael0x2a


Myślę, że ten cytat z Referencyjny szkic HTML 5 zapewnia odpowiedź:

Niektóre elementy są jednak zabronione   z jakiejkolwiek zawartości.   Są one znane jako puste elementy. W   HTML, powyższa składnia nie może być używana   dla pustych elementów. Dla takich elementów,   tag końcowy musi zostać pominięty, ponieważ   element jest automatycznie zamykany przez   parser. Takie elementy obejmują,   między innymi br, hr, link i meta

Przykład HTML:

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

W XHTML, składni XML   wymagania dyktują, że tak musi być   wyraźne użycie wyraźnego   tag końcowy, jak wyżej, lub pusty   składnia elementu. Osiąga się to przez   wstawianie ukośnika na końcu   uruchom tag tuż przed prawym   wspornik kątowy.

Przykład:

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

Autorzy mogą opcjonalnie wybrać opcję użycia   ta sama składnia dla pustych elementów w   także składnia HTML. Niektórzy autorzy   również uwzględnij białe spacje   przed cięciem, jednak tak nie jest   niezbędny. (Używanie w tym białych spacji   moda jest konwencją odziedziczoną po   wytyczne dotyczące zgodności w XHTML   1.0, Załącznik C.)


195
2017-12-22 13:44



Odpowiedź brzmi: najlepiej kodować bez ukośnika i spacji, ale posiadanie ukośnika (z przestrzenią lub bez niej) jest opcjonalne? - Eikern
Tak to czytam, tak. - Daan
Uwielbiam sposób, w jaki specyfikacja nie jest szczególnie konkretna (w tym punkcie) "meh, rób to, co chcesz!" - Matt Ellen
Ponieważ jest opcjonalne, bardziej lubię /> ponieważ to jest dobre dla czytelności. - BrunoLM
Lubię jednoznacznie zamknąć moje tagi bez żadnego powodu poza tym, że wydaje się to właściwe i ma sens, gdy czytam / piszę kod. Cieszę się, że wersja HTML5 Reference Draft zgadza się ze mną. - Syntax Error


XML nie pozwala na pozostawienie tagów otwartych, więc to czyni <br> nieco gorszy od pozostałych dwóch. Pozostałe dwie są mniej więcej równoważne z drugą preferowaną pod kątem zgodności ze starszymi przeglądarkami. Właściwie wcześniej przestrzeń / jest preferowany ze względu na zgodność, ale myślę, że ma sens tylko w przypadku tagów, które mają atrybuty. Tak też powiedziałem <br/> lub <br />, cokolwiek spodoba się twojemu estetyce.

Podsumowując: wszystkie trzy są ważne, z których pierwsza jest nieco mniej "przenośna".

Edytować: Teraz, gdy wszyscy szalejemy na punkcie specyfikacji, myślę, że warto wskazać, że według dev.w3.org:

Tagi początkowe składają się z następujących elementów   części, w dokładnie 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ć   poprzedzone jedną lub więcej przestrzeni   postacie.
  4. Opcjonalnie, jeden lub więcej znaków spacji.
  5. Opcjonalnie, znak "/", który może być obecny tylko wtedy, gdy   element jest elementem pustym.
  6. Znak ">".

119
2017-12-22 13:42



HTML nie jest w rzeczywistości XML, tylko bardzo blisko. - tloach
Tak, nie jest. Ale / to wspólny mianownik. HTML5 w szczególności umożliwia korzystanie z /: "Opcjonalnie, znak" / ", który może być obecny tylko wtedy, gdy element jest elementem pustym". - Michael Krelin - hacker
helloworlder, powiedziałbym, że specyfikacja HTML5 jest bliska zgodności z XML. - Michael Krelin - hacker
Chciałbym tylko dodać, że zarówno XML, jak i HTML ML oznacza Markup Language. Powodem, dla którego tak wiele się pokrywa, jest to, że oba zostały pierwotnie zdefiniowane przy użyciu SGML (Standardized Generalized Markup Language), ale niewielu ludzi pamięta to teraz ... - John Vincent
@BennyNeugebauer, Jeśli używasz wyrażenia regularnego do parsowania html, jesteś mniej lub bardziej zależny od szczęścia niż poprawnie zamkniętych tagów ;-) - Michael Krelin - hacker


W HTML (do HTML 4): posługiwać się <br>

W HTML 5: <br> jest preferowany, ale <br/> i <br /> jest również do przyjęcia

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

Uwagi:

  • <br></br> nie jest poprawne w HTML 5, będzie traktowane jako dwie linie podziału.
  • W XHTML rozróżniana jest wielkość liter, w HTML nie jest rozróżniana wielkość liter.
  • Ze względu na zgodność wstecz niektóre stare przeglądarki przetwarzały XHTML jako HTML i ulegały awarii <br/> ale nie <br />

Odniesienie:


88
2017-12-30 05:40



zaznaczone łącze, preferowanym podejściem jest <br>, ale gdzie jest napisane, że jest to niedopuszczalne? - JackDev
Aby wyjaśnić, dla składni zgodnej z XML, <br/> i <br /> (z PRZESTRZENIĄ) są równe, bez żadnych preferencji. Zobacz XML 1.0 spec. Biała spacja (PRZESTRZEŃ, zakładka lub PODAWANIE LINII) przed /> jest opcjonalny, bez żadnych preferencji. - Basil Bourque
Czy możesz zacytować odwołanie do preferowanej składni XML? To dla mnie nowość. Opcjonalne wsparcie dla ścisłej zgodności XML było założycielskim celem HTML5, jak pamiętam. Być może coś przegapiłem HTML vs. XHTML dokument na stronie whatwg.org lub W3C Polyglot Markup: solidny profil słownictwa HTML5 w W3C. - Basil Bourque
@BasilBourque Aby powtórzyć to, co powiedziałem w innym miejscu. Zapoznaj się z rzeczywistą specyfikacją w tagach i elementach HTML5 i nigdy, NIGDY nie znajdziesz rekomendacji ani sugestii, aby wymagać lub sugerować użycie slotu zamykającego dla tych tagów. Jeśli chcesz używać XML lub XHTML, to nie korzystasz z HTML i to już inna historia. NIE używaj slotu zamykającego dla tych znaczników HTML. Gdzie indziej specyfikacja mówi, że możesz tam umieścić, ale to nic nie znaczy, nic nie robi, a przeglądarki są poinstruowane, żeby to ignorować. Jest to bezcelowe i bezużyteczne, bezużyteczne i bezużyteczne. - Rob
@Rob So Sekcja 8.1.2.1. Uruchom tagi z Sekcja 8. Składnia HTML dokumentu, Rekomendacja HTML 5.2 W3C, 14 grudnia 2017 r, opublikowane przez W3C nie jest faktyczną specyfikacją HTML? Proszę doradź. - Basil Bourque


Według spec oczekiwana forma to <br> dla HTML 5, ale dozwolony jest slash zamykający.


52
2017-12-22 13:44





XML wymaga, aby wszystkie znaczniki zawierały odpowiedni znacznik zamykający. Jest więc specjalna krótka składnia dla tagów bez zawartości wewnętrznej.

HTML5 nie jest XML, więc nie powinien stanowić takiego wymogu. Nie ma też HTML 4.01.

Na przykład w Specyfikacja HTML5, wszystkie przykłady z br użycie tagu <br> składnia, nie <br/>.

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


19
2017-12-22 13:48



"HTML5 nie jest XML, więc nie powinien stanowić takiego wymogu." 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 ta instrukcja jest niepoprawna. Specyfikacja HTML5 definiuje "słownictwo i powiązane interfejsy API dla HTML i XHTML". Wiem, że to trochę szczypanie, nie twierdzę, że ta odpowiedź jest błędna, tylko daje dodatkowe informacje dla czytelnika. - Christian Hujer


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

1) Edytory tekstu i XML, które podświetlają składnię XML w różnych kolorach, będą podświetlane poprawnie z <br />, ale nie zawsze tak jest, jeśli używasz <br>

2) <br /> jest wstecznie kompatybilny z XHTML i dobrze sformułowany HTML (np. 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 zamykającym ukośnikiem (np .: <br /> zamiast <br/>), takim jak specyfikacja WordPress Plugin Coding: http://make.wordpress.org/core/handbook/coding-standards/html/

Z mojego doświadczenia wynika, że ​​nigdy nie natknąłem się na przypadek, w którym używanie <br /> jest problematyczne, ale jest wiele przypadków, w których <br/> lub szczególnie <br> mogą być problematyczne w starszych przeglądarkach i narzędziach.


13
2018-01-16 17:43



Dobrze uformowany HTML nie jest XHTML. - jmarkmurphy
XHTML to z definicji dobrze sformułowany HTML. XHTML przestrzega zasad XML, zgodnie z w3schools "XML jest językiem znaczników, w którym dokumenty muszą być poprawnie oznaczone (" dobrze sformułowane ") ... ... Łącząc zalety HTML i XML, opracowano XHTML. XHTML został zmieniony na HTML jako XML. " (widzieć w3schools.com/html/html_xhtml.asp) - Kmeixner
HTML może być dobrze uformowany, ale nie jest prawidłowym kodem XML. W3Schools nie zawsze jest najbardziej wiarygodnym odnośnikiem. - jmarkmurphy
Profesor z uniwersyteckiego kursu informatyki na temat programowania w Internecie, który podjąłem w 1997 r., Również złożył wniosek, że xhtml jest dobrze uformowanym html. Nie wiem, skąd bierzesz informacje, czy możesz cytować jakiekolwiek oficjalne źródła online, aby utworzyć kopię zapasową roszczenia? - Kmeixner
<br> i <hr> są doskonale poprawne i dobrze sformułowane HTML. Nie są to prawidłowe tagi XML. Specyfikacje HTML pod składnią HTML mówią, że puste elementy (takie jak <br> lub <hr>) mogą mieć / postać bezpośrednio poprzedzająca finał >. Ale nie ma to żadnego wpływu. Jest on ignorowany, jeśli jest. Jeśli / był preferowanym elementem składni, powiedziałby standard should zamiast may. - jmarkmurphy


Obie <br> i <br /> są dopuszczalne w HTML5, ale w duchu HTML, <br> należy użyć. HTML5 umożliwia zamykanie ukośników, aby być bardziej zgodnym 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 również akceptowalny, ale aby być kompatybilnym z niektórymi starszymi przeglądarkami, powinien istnieć spacja przed slashiem zamykającym (/).


11
2018-04-21 18:50



@ Knickerless-Noggins Nie jestem pewien, gdzie to czytasz, ale <br /> jest całkowicie dopuszczalne, a W3Schools nie jest specyfikacją dla HTML. Widzieć specyfikacja HTML5, który Wyraźnie stwierdza, że ​​"wtedy, jeśli element jest jednym z nich puste elementylub jeśli elementem jest a element obcy, może być pojedynczy znak "/" (U + 002F). [podkreślenie dodane] " - mc10
Ta odpowiedź, podobnie jak inne, niepoprawnie pomniejsza zasadność ścisłej zgodności XML w HTML5. Obsługa XML jest nie tymczasowa funkcja przejścia lub migracji. Opcjonalne wsparcie zgodności XML było założycielskim celem HTML5. Jest to istotna cecha dla osób używających narzędzi XML do pracy z zawartością HTML. - Basil Bourque


Jeśli interesuje Cię porównywalność (nie kompatybilność, ale porównywalność), to trzymałbym się <br />.

Inaczej, <br> jest w porządku.


11
2017-12-22 13:45



@mindstalker napisał compARAbility, nie comPATible. - nycynik
Ktoś powinien to cofnąć. Znaczenie się zmieniło. - Josiah
Co oznacza porównywalność? Nie rozumiem tego. - tuxayo