Prawidłowy, zgodny ze standardem języka XHTML, zapis samozamykającego się znacznika odpowiadającego za łamanie linii ma postać
W XHTML zapis <br/> jest poprawny, ponieważ XHTML opiera się na składni XML, a w XML każdy element musi być domknięty. Znacznik br odpowiada za wymuszenie przejścia do nowej linii, ale nie ma osobnej treści między znacznikiem otwierającym i zamykającym. Dlatego traktuje się go jako element pusty, czyli samozamykający się. W praktyce oznacza to, że zamiast pisać osobny znacznik otwierający i zamykający, stosuje się formę <br/>. Spotkasz też zapis <br />, ze spacją przed ukośnikiem; on również jest często używany i zgodny z zasadami XHTML, a dawniej bywał polecany ze względu na kompatybilność ze starszymi przeglądarkami. Moim zdaniem warto zapamiętać prostą zasadę: w XHTML nie zostawiamy pustych znaczników otwartych tak jak czasem w HTML. Przykładowo podobnie zapisuje się inne puste elementy, np. <img/> albo <hr/>, oczywiście z odpowiednimi atrybutami tam, gdzie są potrzebne. To ważne przy walidacji dokumentu, bo walidator XHTML jest bardziej rygorystyczny niż zwykły parser HTML.
W tym pytaniu łatwo pomylić zasady HTML i XHTML, bo w zwykłym HTML zapis <br> jest bardzo często spotykany i przeglądarka zwykle bez problemu go zinterpretuje. Jednak standard XHTML ma składnię zgodną z XML, a tam nie można zostawić elementu bez domknięcia. Znacznik łamania linii nie zawiera tekstu ani innych elementów w środku, więc powinien być zapisany jako element pusty w formie samozamykającej, czyli <br/> albo w praktycznym wariancie <br />. Samo <br> jest więc typowym przykładem kodu, który może działać w przeglądarce, ale nie spełnia rygorów XHTML. To jest właśnie pułapka: działanie w przeglądarce nie zawsze oznacza poprawność względem standardu.
Zapisy z ukośnikiem na początku sugerują znacznik zamykający, a to nie pasuje do elementu br. Konstrukcja </ br> jest dodatkowo niepoprawna składniowo, bo pojawia się spacja po ukośniku, a nazwa znacznika nie powinna być tak rozdzielana. Z kolei forma </br/> miesza dwa różne pomysły naraz: znacznik zamykający i samozamykający. W XML oraz XHTML takie połączenie nie ma sensu. Z mojego doświadczenia wynika, że takie błędy biorą się często z uczenia się znaczników na pamięć, bez zrozumienia różnicy między HTML a XHTML. Dobra praktyka jest taka, żeby przy XHTML pilnować domykania elementów, pisać nazwy znaczników małymi literami i sprawdzać dokument walidatorem, bo wtedy od razu widać takie drobne, ale ważne potknięcia.
Zapisy z ukośnikiem na początku sugerują znacznik zamykający, a to nie pasuje do elementu br. Konstrukcja </ br> jest dodatkowo niepoprawna składniowo, bo pojawia się spacja po ukośniku, a nazwa znacznika nie powinna być tak rozdzielana. Z kolei forma </br/> miesza dwa różne pomysły naraz: znacznik zamykający i samozamykający. W XML oraz XHTML takie połączenie nie ma sensu. Z mojego doświadczenia wynika, że takie błędy biorą się często z uczenia się znaczników na pamięć, bez zrozumienia różnicy między HTML a XHTML. Dobra praktyka jest taka, żeby przy XHTML pilnować domykania elementów, pisać nazwy znaczników małymi literami i sprawdzać dokument walidatorem, bo wtedy od razu widać takie drobne, ale ważne potknięcia.