"<html xmlns=" http://www.w3.org/1999/xhtml ">"做什么?



我简直不敢相信我的网站上发生了什么。当我添加这一行时:

<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html>
<html>
 <head>

一切都很好。如果我不这样做,CSS就会"一团糟",一切都会变得不同,布局也会变得"丑陋"。

这条线怎么能解决所有的问题?!

您将HTML与XHTML混为一谈。

通常<!DOCTYPE>声明用于区分HTMLish语言的版本(在本例中为HTML或XHTML(。

不同的标记语言会有不同的表现。我最喜欢的例子是height:100%。在浏览器中查看以下内容:

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>

并将其与以下内容进行比较:(注意明显缺乏<!DOCTYPE>声明(

HTML(怪癖模式(

<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>

您会注意到表的高度有很大的不同,这两个文档之间唯一的区别就是标记的类型!

太好了。。。现在,<html xmlns="http://www.w3.org/1999/xhtml">做什么

但这并不能回答你的问题。从技术上讲,XHTML文档的根元素使用xmlns属性:(根据维基百科(

XHTML文档的根元素必须是html,并且必须包含一个xmlns属性才能将其与XHTML命名空间相关联。

你看,重要的是要理解XHTML不是HTML,而是XML——一个非常不同的生物。(好吧,一种不同的东西(xmlns属性只是文档需要成为有效XML的内容之一。为什么?因为制定标准的人这么说;((你可以在维基百科上阅读更多关于XML名称空间的信息,但我省略了这些信息,因为它实际上与你的问题无关!(

但是<html xmlns="http://www.w3.org/1999/xhtml">为什么要修复CSS呢

如果你的文档结构是这样的…(正如你在评论中所建议的(

<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html>
<html>
<head>
[...]

正在修复您的文档,这让我相信您对CSS和HTML了解不多(无意冒犯!(,事实是,没有<html xmlns="http://www.w3.org/1999/xhtml">表现正常,而有<html xmlns="http://www.w3.org/1999/xhtml">则不然——您只是认为是这样,因为您习惯于编写无效的HTML,从而以怪癖模式工作。

我提供的上述例子就是同一问题的一个例子;大多数人认为height:100%应该导致<table>的高度成为整个窗口,而DOCTYPE实际上破坏了他们的CSS。。。但事实并非如此;相反,他们只是不明白他们需要添加html, body { height:100%; }CSS规则来达到他们想要的效果。

它是一个XML命名空间。当您使用XHTML 1.0或1.1 doctypes或application/XHTML+xml mimetypes时,它是必需的。

你应该使用HTML5 doctype,那么你就不需要它来处理text/html了。最好从这样的模板开始:

<!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>



当你把你的Doctype放直后,做并验证你的html和css
这通常会解决布局问题。

听起来你的网站有CSS或JS,这取决于在怪癖模式下运行。这就是为什么您需要doctype之上的垃圾才能"正确"呈现。我建议删除所说的垃圾,然后修复你的CSS+JS,使其真正在标准模式下工作;从长远来看,你会省去很多痛苦。

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

查看此处了解更多详细信息

相关内容

  • 没有找到相关文章

最新更新