什么“<html xmlns =”http://www.w3.org/1999/xhtml“>”呢?

我无法相信我的网站正在发生什么。 当我添加这一行时:

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

一切工作正常。 而当我不这样做的时候,CSS“混乱”了,一切都变了,布局变得“丑陋”了。

这条线如何解决所有的问题?

  • 将PowerPoint演示文稿embedded到HTML中
  • 如何在双击时停止突出显示div元素
  • 显示:内联块额外保证金
  • 中心Div在另一个(100%宽度)格
  • CSS表列autowidth
  • 你将如何做到这一点:表或CSS?
  • 垂直和水平alignment(中间和中心)与CSS
  • 为什么<big>不在HTML 5 Tag列表中,<Small>是?
  • 4 Solutions collect form web for “什么“<html xmlns =”http://www.w3.org/1999/xhtml“>”呢?”

    你在用XHTML混合HTML 。

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

    不同的标记语言将有不同的performance。 我最喜欢的例子是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> 

    您会注意到表格的高度差别很大,两个文档之间的唯一区别就是标记的types!

    这很好…现在, <html xmlns="http://www.w3.org/1999/xhtml">做什么的?

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

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

    你知道,理解XHTML不是HTML而是XML是非常重要的 – 这是一个非常不同的生物。 (ok,一种不同的生物) xmlns属性只是文档需要成为有效XML的那些东西之一。 为什么? 因为在这个标准上工作的人这样说)(你可以在维基百科上阅读更多关于XML命名空间的信息,但是我省略了这个信息,因为它与你的问题实际上没有关系!

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

    如果像这样构build文档…(如您在评论中所build议的那样)

     <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%; } html, body { height:100%; } CSS规则来达到他们想要的效果。

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

    你应该使用HTML5的文档types,那么你不需要它的文本/ 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直 – 做和validation你的HTML和你的CSS 。
    这通常会解决你的布局问题。

    这听起来像你的网站有CSS或JS,依赖于在怪癖模式下运行。 这就是为什么你需要在doctype之上的垃圾来渲染“正确”。 我build议删除说垃圾,然后修复您的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 

    在这里检查更多的细节