Jakie są wszystkie poprawne elementy samozamykające się w XHTML (zaimplementowane przez główne przeglądarki)?

Jakie są wszystkie poprawne elementy samozamykające (np.
) w XHTML (zaimplementowane przez główne przeglądarki)?

Wiem, że XHTML technicznie pozwala na samodzielne zamknięcie dowolnego elementu, ale szukam listy tych elementów obsługiwanych przez wszystkie główne przeglądarki. Zobacz http://dusan.fora.si/blog/self-closing-tags na przykładowe problemy powodowane przez samozamykające się elementy, takie jak

.
Author: Nathan Koop, 0000-00-00

2 answers

Każda przeglądarka obsługująca XHTML (Firefox, Opera, Safari, IE9) obsługuje składnię samoczynnie zamykającą się na każdy element.

<div/>, <script/>, <br></br> wszystko powinno działać dobrze. Jeśli nie, to masz HTML z nieodpowiednio dodanym DOCTYPE XHTML.

DOCTYPE nie zmienia sposobu interpretacji dokumentu. tylko typ MIME.

W3C decyzja o ignorowaniu DOCTYPE :

HTML WG omówił tę kwestię: intencją było umożliwienie starym (Tylko HTML) przeglądarki akceptujące dokumenty XHTML 1.0 postępując zgodnie z wytyczne, i służąc im jako tekst / html. Dlatego dokumenty służyły jako text / html powinien być traktowany jako HTML, a nie jako XHTML.

Jest to bardzo częsta pułapka, ponieważ W3C Validator w dużej mierze ignoruje tę zasadę, ale przeglądarki stosują ją religijnie. Czytaj zrozumienie HTML, XML i XHTML z blogu WebKit:

W rzeczywistości, zdecydowana większość dokumentów XHTML w Internecie jest podawana jako text/html. Co oznacza, że w ogóle nie są XHTML, ale w rzeczywistości nieprawidłowy HTML, który dostaje się przez obsługę błędów parserów HTML. Wszystkie " Valid XHTML 1.0!"linki w sieci naprawdę mówią" Invalid HTML 4.01!".


Aby sprawdzić, czy masz prawdziwy XHTML lub nieprawidłowy HTML za pomocą DOCTYPE XHTML, umieść to w dokumencie:

<span style="color:green"><span style="color:red"/> 
 If it's red, it's HTML. Green is XHTML.
</span>

Sprawdza się, a w prawdziwym XHTML działa doskonale (zobacz: 1 vs 2). Jeśli nie możesz uwierzyć własnym oczom (lub nie wiesz, jak ustawić typy MIME), otwórz stronę za pomocą XHTML proxy.

Innym sposobem sprawdzenia jest widok źródła w Firefoksie. Podświetli ukośniki na czerwono, gdy są nieprawidłowe.

W HTML5 / XHTML5 to się nie zmieniło, a rozróżnienie jest jeszcze wyraźniejsze, ponieważ nie masz nawet dodatkowych DOCTYPE. Content-Type jest królem.


Dla przypomnienia, Specyfikacja XHTML pozwala dowolnemu elementowi być samoczynne zamykanie poprzez zrobienie XHTML xml application : [15]]}

Empty-element tags może być używany dla każdego elementu, który nie ma zawartości, niezależnie od tego, czy jest zadeklarowany za pomocą słowa kluczowego EMPTY.

Jest to również wyraźnie pokazane w XHTML spec :

Puste elementy muszą albo mieć znacznik końca, albo znacznik początku musi kończyć się />. Na przykład, <br/> lub <hr></hr>

 172
Author: Kornel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-23 13:51:08

Jednym z elementów, z którymi należy być bardzo ostrożnym w tym temacie, jest element <script>. Jeśli masz zewnętrzny plik źródłowy, spowoduje to problemy, gdy sam go zamkniesz. Spróbuj:

<!-- this will not consistently work in all browsers! -->
<script type="text/javascript" src="external.js" />

To będzie działać w Firefoksie, ale przynajmniej w IE6. Wiem, bo wpadłem na to, gdy nadgorliwie zamykałem każdy element, który widziałem; -)

 39
Author: Erik van Brakel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-25 09:31:24