“”什么?

前端之家收集整理的这篇文章主要介绍了“”什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > What does “xmlns” in XML mean?5个答案我不能相信我的网站发生了什么。当我添加这行:
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <!DOCTYPE html>
  3. <html>
  4. <head>

一切工作正常。当我不,CSS“混乱”了,一切都变得不同,布局变成“丑陋”。

这个行怎么能解决所有的问题?

解决方法

你和 XHTML混合起来了。

通常,<!DOCTYPE>声明用于区分HTMLish语言的版本(在这种情况下,HTML或XHTML)。

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

XHTML

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <style type="text/css">
  5. table { height:100%;background:yellow; }
  6. </style>
  7. </head>
  8. <body>
  9. <table>
  10. <tbody>
  11. <tr><td>How tall is this?</td></tr>
  12. </tbody>
  13. </table>
  14. </body>
  15. </html>

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

HTML(怪异模式)

  1. <html>
  2. <head>
  3. <style type="text/css">
  4. table { height:100%;background:yellow; }
  5. </style>
  6. </head>
  7. <body>
  8. <table>
  9. <tbody>
  10. <tr><td>How tall is this?</td></tr>
  11. </tbody>
  12. </table>
  13. </body>
  14. </html>

你会注意到,表的高度是完全不同的,两个文档之间的唯一区别是标记的类型!

这很好…现在,< html xmlns =“http://www.w3.org/1999/xhtml”>做?

这不能回答你的问题。从技术上讲,xmlns属性由XHTML文档的根元素使用:(根据Wikipedia)

The root element of an XHTML document must be html,and must contain an xmlns attribute to associate it with the XHTML namespace.

你看,重要的是要了解XHTML不是HTML,但XML – 一个非常不同的生物。 (确定,一种不同的生物)xmlns属性只是文档需要的有效XML之一。为什么?因为有人在标准上这样说;)(你可以阅读更多关于XML namespaces on Wikipedia,但我忽略了这个信息,因为它不是与你的问题真正相关)

但是为什么是< html xmlns =“http://www.w3.org/1999/xhtml”>固定CSS?

如果结构化你的文档像这样…(正如你在your comment建议)

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

…正在修复您的文档,它让我相信,你不知道很多关于CSS和HTML(没有进攻!),真的是没有< html xmlns =“http://www.w3 .org / 1999 / xhtml“>它的行为正常,并且具有< html xmlns =“http://www.w3.org/1999/xhtml”>它不是 – 你只是认为它是,因为你习惯于写无效的HTML,因此工作在quirks mode

我提供的上面的例子是同样问题的例子;大多数人认为height:100%应该会导致< table>作为整个窗口,并且DOCTYPE实际上是打破了他们的CSS …但事实并非如此;相反,他们只是不明白,他们需要添加一个html,body {height:100%; } CSS规则实现他们想要的效果

猜你在找的CSS相关文章