Próbuję lepiej zrozumieć model przetwarzania białych znaków HTML. Teraz mam porównanie dwóch fragmentów HTML:Białe spacje HTML: spacje przed i po <br>
<div>a <br>z</div>
i
<div>a<br> z</div>
Pierwszy urywek gdy renered, daje dwie linie: "a "
i "z"
(Więc pierwsza linia ma spacją).
Drugi fragment kodu daje dwie linie: "a"
i "z"
. W drugiej linii nie ma miejsca wiodącego.
Moje pytanie brzmi: dlaczego? Obecnie używam tego http://www.w3.org/TR/CSS2/text.html#white-space-model jako odniesienia. Stwierdza
- Jeśli spacja (U + 0020) na początku linii ma własność 'white-space' ustawioną na 'normal', 'nowrap', lub 'pre-line', jest on usuwany .
- Wszystkie zakładki (U + 0009) są renderowane jako przesunięcie poziome, które wyrównuje krawędź początkową następnego glifu z następnym zatrzymaniem tabulatora. Tabulatory występują w punktach będących wielokrotnością 8-krotności szerokości spacji (U + 0020) wyświetlanej w czcionce bloku od początkowej krawędzi bloku bloku.
- Jeśli spacja (U + 0020) na końcu wiersza ma "białą przestrzeń" ustawioną na "normalną", "nowąp" lub "linię wstępną", jest również usuwana.
- Jeśli spacje (U + 0020) lub zakładki (U + 0009) na końcu linii mają "białą przestrzeń" ustawioną na "wstępną opaskę", aplikacje klienckie mogą wizualnie je zwinąć.
Naiwny czytanie to wskazywałoby, że od miejsca, że początek lub końcu linii ma być usunięty (gdy „white-space” jest „normalny”), pierwszy Moje fragmenty powinny skutkować brakiem spacji. Ale tak nie jest.
Co się dzieje?
Moja obecna teoria mówi, że <br>
potajemnie jest liczone jako "znak", który w pierwszym fragmencie zapobiega pozostawaniu końcowej przestrzeni na "końcu" jej linii. Ale naprawdę nie mam pojęcia.
EDYCJA: Aby było jasne, wiem, jak używać
do tworzenia spacji do woli. Moje pytanie dotyczy tego, jaka zasada (w odniesieniu do niektórych specyfikacji) indukuje powyższe zachowanie.
https://drafts.csswg.org/css-text/#white-space-phase-1, obecny spec, może dostarczyć pewnych wglądów – sideshowbarker
@ Vucko: Tak to wygląda w inspektorze DOM, a nie w jaki sposób renderowane. – BoltClock
@sideshowbarker: Dobry smutek. Ilość żargonu w css-text sprawia, że tekst CSS2.1 jest czytany jak książka dla dzieci. – BoltClock