Nový řádek v HTML a CSS

Značka <br>

Jelikož je běžné odřádkování klávesou Enter v HTML kódu většinou chápáno jako nějaký bílý znak bez zvláštního významu, pro vynucení nového řádku slouží značka <br> (má zakázanou koncovou značku).

<p>
  První řádek<br>Druhý řádek
</p>

Výjimkou, kdy se na odřádkování a jiné bílé znaky dbá, je použití CSS předpisu white-space: pre – takový styl má jako výchozí značka <pre>.

Následující kód se tak zobrazí stejně jako při použití <br>. Každá mezera nebo odřádkování hraje svou roli, proto se konec a začátek značky <p> musí nalepit na obsah.

<p 
  style="white-space: pre"
>První řádek
Druhý řádek</p>

Takový postup je lehce riskantní, protože bílé znaky může narušit editor při formátování kódu nebo případná minifikace HTML kódu.

Značka <br> by se neměla používat k vytváření odsazení – k tomu slouží CSS vlastnost margin. Nový řádek jde vytvořit i obalením obsahu do blokového elementu (CSS předpis display: block).

<div>První řádek</div>
<div>Druhý řádek</div>

Elegantnější je ale většinou použít <br> a členit textu do odstavců (<p>).

Nový řádek v HTML atributu

V některých případech je potřeba přidat zalomení řádku do HTML atributu – nejčastěji do obecného atributu title. Existuje více možností.

Entita &#10;

Nejvýhodnější se zdá být entita &#10;, která na daném místě vytvoří nový řádek.

<span 
  title="První řádek&#10;Druhý řádek"
>
  Text
</span>

Entita &#10;

Kromě v atributu funguje toto zalomení i ve značce s nastaveným zachováváním bílých znaků (white-space: pre). Místo zalomení řádku v kódu stačí přidat entitu &#10; a výsledek je stejný.

Odřádkování v kódu

Nový řádek v atributu se vytvoří i v případě, že bude odřádkování přímo ve zdrojovém HTML kódu.

<span 
  title="První řádek
Druhý řádek"
>
  Text
</span>

Odřádkování v kódu

Odřádkování \n nefunguje

V programovacích jazycích se často pro nový řádek používá sekvence znaků \n. Jelikož se v HTML pro escapování používají entity s & na začátku, nebude tento postup fungovat a \n se normálně vypíše.

Odřádkování pomocí \n

Odřádkování v <textarea>

Textová oblast pro psaní textu – <textarea> – má výchozí styl white-space: pre, takže se v ní nový řádek vytvoří buď odřádkováním přímo v kódu nebo entitou &#10;.

<textarea>První řádek
Druhý řádek&#10;Třetí řádek</textarea>

Atribut placeholder

U atributu placeholder je postup stejný jako u <textarea> – nový řádek v kódu i entita &#10;. Zalomení řádku v placeholderu ale nefunguje ve staré Opeře 12 a ani ve Firefoxu 38.

Počet řádků

Počet řádků v <textarea> jde spočítat JavaScriptem:

Zalomení řádku v CSS

V CSS se potřeba vypsání nového řádku týká například vlastnosti content (při použití přes :before/:after). Kaskádové styly nepodporují uvnitř hodnoty vlastnosti řádek zalomit a ani HTML entity, takže se na to musí jít jinak. Řešením je řetězec „\a“. Zároveň je nutné přidat white-space: pre, aby se zalomení vykreslilo.

element:before {
  content: 'První řádek \a Druhý řádek';
  white-space: pre;
}

Tak jde vypsat víceřádkový text do vlastnosti content.

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Doctype

HTML značka <!doctype>

Jaký (a jestli vůbec) psát <!doctype> do stránky?

Převod inline CSS na externí

Převod CSS v HTML na externí styly

Jak z HTML vybrat id, třídy a inline styly a vytvořit z nich CSS předpis do externího souboru.

Chyby při programování

Jak zobrazit chybové hlášky

Při odstraňování problému v HTML/CSS/JS/PHP/SQL je nutný přístup k chybovým hláškám, jak se k nim dostat?

Jak zakázat označování textu

Zakázání označování textu

Standardně jde na webu označovat text. Jak jeho výběru myší zabránit?

Diakritika v názvu třídy

Speciální znaky v atributu class

Co takhle psát názvy tříd v HTML a CSS hezky česky s diakritikou. Funguje to?

Komentáře