Menu

Nowa linia w HTML: znacznik br, znaki nowej linii i łamanie

Użyj <br>, żeby zacząć nową linię wewnątrz bloku tekstu. Dowiedz się, kiedy <br> jest właściwy, a kiedy lepszy jest akapit, jak zachować znaki nowej linii z tekstu, jak pozwolić długim słowom się łamać przez <wbr> i jak zablokować łamanie linii.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Jak dodać nową linię

Wstaw <br> tam, gdzie ma się zacząć nowa linia. To element pusty, więc nie ma znacznika zamykającego:

Adres łamie się dokładnie przy każdym <br>. Drugi akapit zostaje w jednej linii, choć w kodzie ma znak nowej linii: HTML traktuje znaki nowej linii, tabulatory i ciągi spacji jak jedną spację. Właśnie dlatego istnieje <br>.

<br>, <br/> i <br /> dają ten sam element. Używaj tej formy, której używa twój projekt (JSX i XHTML wymagają ukośnika).

br vs p: podział to nie odstęp

<br> kończy linię w obrębie tego samego akapitu. Nowy <p> zaczyna nowy akapit, z odstępem nad nim i pod nim dzięki domyślnym marginesom. Układanie kolejnych <br>, żeby zrobić odstęp, działa, ale jest kruche i przekazuje złą informację:

Oba pola wyglądają podobnie, ale pierwsze to dla czytnika ekranu jeden akapit, a zmiana odstępów oznacza edycję każdej strony. W drugim odstęp to jedna linia CSS.

Dobre zastosowania <br>: adresy, wiersze i teksty piosenek oraz linie w podpisie, gdzie podział należy do tekstu. Do wszystkiego innego używaj akapitów, list albo nagłówków.

Zachowanie znaków nowej linii z tekstu

Gdy tekst pochodzi z innego miejsca (pola komentarza, bazy danych, skryptu), zawiera prawdziwe znaki nowej linii zamiast znaczników <br>. Reguła CSS white-space: pre-line sprawia, że przeglądarka pokazuje te znaki jako podziały linii:

Ten sam napis wyświetla się w jednej linii w szarym polu i w trzech liniach w niebieskim. To także bezpieczniejsze niż wstawianie znaczników <br> do tekstu użytkownika przez innerHTML, co pozwoliłoby użytkownikom wstrzyknąć HTML. Żeby zachować także spacje i wcięcia, użyj white-space: pre, opisanego na stronie spacje w HTML.

Łamanie długich słów: wbr

Długie słowo albo URL bez spacji może wychodzić poza wąskie pole. <wbr> oznacza miejsce, w którym przeglądarka może złamać linię, jeśli musi, a poza tym nic nie robi:

Pierwsza ścieżka wychodzi poza pole; druga łamie się w miejscach <wbr>. Dla tekstu, nad którym nie masz kontroli, właściwość CSS overflow-wrap: anywhere łamie długie słowa w dowolnym miejscu.

Blokowanie łamania linii

Czasem chcesz czegoś odwrotnego: utrzymać razem "10 km" albo numer telefonu. Masz dwa narzędzia:

&nbsp; to spacja, przy której przeglądarka nie złamie linii, więc "10" i "km" zostają razem. white-space: nowrap trzyma cały span w jednej linii. Zamień &nbsp; na zwykłą spację albo usuń klasę, a przy tej szerokości oba teksty rozdzielą się na dwie linie.

Częste błędy

  • Naciskanie Enter w kodzie i oczekiwanie nowej linii. Znaki nowej linii w HTML to spacje. Użyj <br>, osobnych elementów albo white-space: pre-line.
  • Układanie <br><br><br> dla odstępu. Używaj akapitów i margin.
  • Budowanie listy z <br>. Użyj <ul> lub <ol> z <li>, które czytniki ekranu ogłaszają jako listę.
  • Pisanie </br>. To niepoprawne. Pisz <br>.
  • Dodawanie <br> do tekstu użytkownika przez innerHTML. Ustaw textContent i użyj white-space: pre-line.

Najczęściej zadawane pytania

Jak dodać nową linię w HTML?

Wstaw <br> tam, gdzie ma się zacząć nowa linia: Line one<br>Line two. Naciśnięcie Enter w pliku HTML nie działa, bo przeglądarki traktują znaki nowej linii w kodzie jak zwykłe spacje.

Pisać <br>, <br/> czy <br />?

Wszystkie trzy działają w HTML i dają ten sam element. <br> to zwykła forma HTML; wersje z ukośnikiem są akceptowane dla zgodności z XHTML i JSX. Samo </br> jest niepoprawne, choć przeglądarki czytają je jako kolejne przejście do nowej linii.

Kiedy używać <br> zamiast <p>?

Użyj <br>, gdy podział linii jest częścią samej treści, jak w adresie czy wierszu. Dla osobnych akapitów stosuj osobne elementy <p>, a odstępy rób marginesem w CSS, zamiast układać kolejne znaczniki <br>.

Jak zachować podziały linii z tekstu bez dodawania znaczników <br>?

Nadaj elementowi white-space: pre-line w CSS. Przeglądarka pokaże wtedy każdy znak nowej linii w tekście jako podział linii, nadal scalając nadmiarowe spacje. Przydaje się to przy komentarzach użytkowników i tekście wczytywanym przez JavaScript.

Jak zablokować łamanie linii w HTML?

Umieść tekst w elemencie z white-space: nowrap albo połącz dwa słowa twardą spacją &nbsp;, żeby zawsze zostały w tej samej linii.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ