2010-06-08 18 views

Odpowiedz

8

Tak, na przykład: praktycznie za każdym razem, gdy dane są wstawiane.

Porównaj:

<p>H<b>e</b>llo, world</p> 

i

<p>H <b>e</b> llo, world</p> 
+0

więc zawsze powinniśmy usunąć spacje w źródle? –

+8

Nie. 'Witam świat' ma białe spacje, które chcesz zachować.Białe spacje są znaczące i nie można ich dowolnie dodawać ani usuwać. – Quentin

+0

Wspomniałeś, gdzie "dane są w tekście", ale jakie byłyby "dane blokowe"? – barlop

2

Porównaj te dwie linie w przeglądarce:

<img src="..." /> <img src="..." /> 
<img src="..." /><img src="..." /> 

Zobaczysz, że istnieje przestrzeń między obrazami w pierwszej linii, ale nie para w drugim.

1

zależności od ilości białych znaków w kodzie HTML, CSS, lub innych plików, może to mieć wpływ na to jak długo to trwa, aby pobrać do system użytkownika.

1

ie6 służyło do wstawiania przerw pomiędzy niektórymi znacznikami po renderowaniu. Ma to również znaczenie, gdy Office 2009 renderuje wiadomości e-mail w formacie HTML za pomocą słowa. Jeśli masz linie podziału, możesz umieścić w 2 pikselach.

+0

+1 możesz podać dowolny przykład IE6? –

+0

Z innego forum, Pozwalasz IE6 wprowadzić swój błąd w przestrzeni białej. IE widzi spację wewnątrz pustego elementu div i stosuje do niej wysokość linii. Jednostka div zostanie następnie rozwinięta w IE6 (i starszym), aby pomieścić tę przestrzeń. Masz swoją lukę. Najprostszym rozwiązaniem jest upewnienie się, że IE6 zrozumiał, że pusty div jest naprawdę pusty, umieszczając w nim komentarz i upewniając się, że nie ma przerwy linii między wierszami . Zmiana ta ...

... i nie będzie więcej luka. –

5

Białe spacje mają znaczenie, ale wszystkie białe spacje są traktowane jako jedna spacja. Na przykład,

<span>hello</span> <span>there</span> 

Będzie renderowane przez przeglądarkę dokładnie taki sam jak

<span>hello</span>   <span>there</span> 

O ile <pre> tag jest używany.

+3

lub białym znakiem: używany jest styl pre css: http://www.quirksmode.org/css/whitespace.html np. Nie można stwierdzić, czy białe znaki są ważne bez wiedzy o tym, co jest używane. – Douglas

+1

Lub jeśli spacja jest odmiany nierozdzielającej. –

0

Jak wskazał Douglas i David Dorward, biała przestrzeń ma znaczenie.

Jednak w blokach HTML (tj. Nie javascript lub innych osadzonych typach treści), wszystkie kolejne białe znaki są równoważne pojedynczemu białemu obszarowi. Oznacza to, że hello <b>world</b> odpowiada

hello 
      <b>world</b> 

Wyjątkiem od tej zasady jest w <pre>..</pre> bloków, które są białe spacje według specyfikacji.

+0

'" wszystkie kolejne białe spacje są równoważne pojedynczemu białemu spacja "' To nie jest prawda! Zobacz na przykład nie łamanie białych znaków. –

+0

@BrockAdams jednak w kodzie HTML nie można umieścić w dosłownym, niezłamanym miejscu, musisz użyć kodu & nbsp Więc jeśli mówisz o białej spacji w samym kodzie HTML, nierozdzielającym znaku spacji, isn tam jest. Porównaj z MS Word, w której naprawdę możesz wpisać spacje nierozdzielające. Wyglądają jak spacje, ale nigdy nie tworzą nowej linii. Pani Word ma pełne i właściwe wsparcie dla przestrzeni kosmicznej i nie łamania przestrzeni! Również kiedy ludzie mówią, że przestrzeń ma na myśli char32, a nie char 160, a jeśli oznaczałoby to, że char 160, powiedzieliby, że nie ma przerwy. – barlop

0

To zależy od modelu zawartości elementu zawierającego białe spacje. Jeśli model jest oparty na tekście, w tym w przypadku mieszania elementów i tekstu, liczy się biały znak (chociaż wiele białych znaków jest zwykle zwiniętych w jeden, a początkowa/końcowa przestrzeń jest całkowicie usunięta, z wyjątkiem wewnątrz <pre>). Jeśli model akceptuje tylko zawartość elementu, wtedy białe spacje nie mają żadnego znaczenia; np. białe spacje między <ul> i jego <li> s mają być całkowicie nieważne.

2

obszary tekstowe są również dotknięte spacji między otwierających i zamykających znaczników, gdyż zakłada wszelkie treści między nimi są jego zawartość, która powinna pokazać ....

Powiązane problemy