Co robi""?
Nie mogę uwierzyć, co się dzieje na mojej stronie. Kiedy dodam ten wiersz:
<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html>
<html>
<head>
Wszystko działa dobrze. A kiedy tego nie robię, CSS "psuje" się, wszystko staje się inne, a layout staje się"brzydki".
Jak ta linia może rozwiązać wszystkie problemy?! 4 answers
Zazwyczaj deklaracja <!DOCTYPE>
jest używana do rozróżniania wersji języków HTMLish (w tym przypadku HTML lub XHTML).
Różne języki znaczników będą zachowywać się inaczej. Mój ulubiony przykład to height:100%
. Zobacz w przeglądarce:
XHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
table { height:100%;background:yellow; }
</style>
</head>
<body>
<table>
<tbody>
<tr><td>How tall is this?</td></tr>
</tbody>
</table>
</body>
</html>
... i porównaj to z poniższym: (zwróć uwagę na widoczny brak deklaracji <!DOCTYPE>
)
HTML (dziwactwa mode)
<html>
<head>
<style type="text/css">
table { height:100%;background:yellow; }
</style>
</head>
<body>
<table>
<tbody>
<tr><td>How tall is this?</td></tr>
</tbody>
</table>
</body>
</html>
Zauważysz, że wysokość tabeli jest drastycznie inna, a jedyną różnicą między tymi dwoma dokumentami jest typ znaczników!
To miłe... co robi<html xmlns="http://www.w3.org/1999/xhtml">
?
To nie odpowiada na twoje pytanie. W języku XHTML, w języku XHTML, atrybut xmlns
jest używany przez element główny dokumentu XHTML: (zgodnie z Wikipedia)
Głównym elementem dokumentu XHTML musi być
html
i musi zawieraćxmlns
atrybut kojarzy go z przestrzenią nazw XHTML.
Widzisz, ważne jest, aby zrozumieć, że XHTML to nie HTML, ale XML - zupełnie inna istota. atrybut xmlns
jest jedną z tych rzeczy, które dokument musi mieć poprawny XML. Dlaczego? Bo ktoś pracujący nad standardem tak powiedział;) (więcej o przestrzeniach nazw XML można poczytać na Wikipedii ale pomijam te info, bo nie są one w rzeczywistości istotne dla Twojego pytanie!)
Ale dlaczego <html xmlns="http://www.w3.org/1999/xhtml">
naprawia CSS?
Jeśli struktura dokumentu tak... (jak sugerujesz w twój komentarz )
<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html>
<html>
<head>
[...]
... naprawia twój dokument, to prowadzi mnie do przekonania, że nie wiesz tyle o CSS i HTML (bez obrazy!) i że prawda jest taka, że bez <html xmlns="http://www.w3.org/1999/xhtml">
zachowuje się normalnie i Z <html xmlns="http://www.w3.org/1999/xhtml">
nie jest - a ty po prostu myślisz jest, ponieważ jesteś przyzwyczajony do pisania nieprawidłowego HTML i w ten sposób działa w trybie dziwactwa.
Powyższy przykład, który podałem, jest przykładem tego samego problemu; większość ludzi uważa, że {[4] } powinno spowodować, że wysokość <table>
będzie całym oknem, a DOCTYPE
faktycznie łamie ich CSS... ale tak naprawdę nie jest; raczej po prostu nie rozumieją, że muszą dodać regułę html, body { height:100%; }
CSS, aby osiągnąć pożądany efekt.
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
2018-09-30 06:08:47
Jest przestrzenią nazw XML. Jest to wymagane, gdy używasz XHTML 1.0 lub 1.1 doctypes lub application/xhtml + xml mimetypes.
Powinieneś używać HTML5 doctype, wtedy nie potrzebujesz go do tekstu / html. Lepiej zacznij od szablonu tak:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>domcument title</title>
<link rel="stylesheet" href="/stylesheet.css" type="text/css" />
</head>
<body>
<!-- your html content -->
<script src="/script.js"></script>
</body>
</html>
Gdy umieścisz swój Doctype prosto-zrób i zatwierdź html i twój css .
które zwykle będą Cię rozsiewać problemy z układem.
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-05-23 00:07:22
Wygląda na to, że Twoja strona ma CSS lub JS, który zależy od działania w trybie dziwactwa. Dlatego potrzebujesz śmieci nad swoim doctype, aby renderować "poprawnie". Sugeruję usunięcie wspomnianych śmieci, a następnie naprawienie CSS + JS, aby faktycznie działał w trybie standardów; zaoszczędzisz sobie wiele bólu na dłuższą metę.
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
2011-04-30 02:41:34
The namespace name http://www.w3.org/1999/xhtml
is intended for use in various specifications such as:
Recommendations:
XHTML™ 1.0: The Extensible HyperText Markup Language
XHTML Modularization
XHTML 1.1
XHTML Basic
XHTML Print
XHTML+RDFa
Sprawdź tutaj aby uzyskać więcej szczegółów
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
2011-04-29 23:32:19