Pytanie Dlaczego
zamiast
?


Właśnie zdałem sobie sprawę, że:

<div class="clear"/>

po serii pływających elementów div powoduje spustoszenie układu, natomiast

<div class="clear"></div> 

działa w porządku.

Czy ktoś może to wyjaśnić?

To jest CSS:

div.clear {
    clear:both;
}

11
2017-10-30 17:19


pochodzenie


dobry widok div - Josua Marcel Chrisano


Odpowiedzi:


<div class="clear"/>

Jeśli wyświetlasz stronę XHTML jako text/htmlprzeglądarki nie odczytują go za pomocą prawdziwego analizatora składni XML. Używają zwykłego starego parsera HTML, który nie wie o tagach zamykających się automatycznie. W przypadku analizatora składni HTML4 jest to tylko otwarty tag z dziwną interpunkcją. (Jeśli parsery przeglądarek rzeczywiście używają reguł SGML, byłoby to zupełnie inne niepożądane zjawisko, ale tak się nie stało.)

Dopóki IE9 nie stanie się powszechny, nie będziemy mogli służyć jako strony internetowe o ogólnym przeznaczeniu application/xhtml+xml, co jest wymagane, aby przeglądarka używała rzeczywistych reguł analizowania XML. Do tego czasu, jeśli piszesz dokumenty XHTML, będziesz musiał uczynić twoje dokumenty również wstecznie kompatybilnymi ze zwykłym HTML, co oznacza zawsze i tylko użycie składni samozamykającej na elementach, dla których zadeklarowano EMPTY model zawartości. (img, britp.)

Jest więcej reguł na temat tego, co musisz zrobić, aby napisać zgodny z HTML XHTML, ale to jest najważniejsze. Dodatek C standardu XHTML 1.0 jest listą różnic; wygląda to trochę skomplikowanie, ale wiele punktów odnosi się do funkcji, których nie chcesz używać, a niektóre są teraz nieistotne, ponieważ mówią o byciu starożytnymi przeglądarkami, takimi jak Netscape 4. Praktyka wstawiania spacji przed /> nie jest już potrzebny na przykład do zwykłego użycia.


25
2017-10-30 17:32



"Aż do IE $ {cokolwiek} będę miał 100 lat" - cherouvim
Zachowanie prawdopodobnie również się zmieni, jeśli umieścisz DOCTYPE na początku strony. - Ben Jackson
DOCTYPE nie ma wpływu na tryb analizatora składni; nawet z propertowym typem XHTML, przeglądarka będzie nadal używać tradycyjnego parsera HTML, jeśli dokument jest obsługiwany jako text/html. Oczywiście, że nie ma on typu dokumentu, a tym samym jest w trybie Quirks Mode, może rzeczywiście zepsuć pewną liczbę inny zachowania związane z płynami CSS dzięki emulacji błędów z IE5 ... - bobince


Według Specyfikacja HTML 4.01, Rozdział 7.5.4, <div> tag wymaga tagu zamykającego.


12
2017-10-30 17:23





<div class="clear"/>  

Ta składnia nie jest poprawna HTML / XHTML. Każdy tag, który mogą zawierają treść nie może być samozamykającym się (nawet jeśli w tagu nie jest wymagana żadna treść, dlatego zawartość zawierająca znaczniki takie jak div, span, p itd. nigdy nie może być tagami zamykającymi się samoczynnie, i odwrotnie, znaczniki, które nie mogą zawierać treści takich jak <br /> powinien zawsze być samozamykający.


2
2017-11-01 13:18