当前位置: 首页 > 面试题库 >

“ ”有什么作用? 问问题

裘丰
2023-03-14
问题内容

我简直不敢相信我网站上正在发生的事情。当我添加此行时:

<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">办?

但是,这并不能回答您的问题。从技术上讲,该xmlns属性由XHTML文档的根元素使用:

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

您会明白,了解XHTML不是HTML而是XML(一种截然不同的生物)非常重要。(好吧,是一种不同的生物)xmlns属性只是文档必须是有效XML的那些内容之一。为什么?因为有人在使用该标准,所以是这样说的;)(您可以在Wikipedia上阅读有关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并因此在quirks mode工作。

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



 类似资料:
  • 问题内容: 我在这里看到许多帖子说不要使用该变量。我通常不这样做,但有时很方便。它出什么问题了? 问题答案: 但绝对没有错,采取从两个输入,并在组合方式。实际上,这就是您几乎总是想做的: 对于通常通过GET提交的纯幂等请求,您想要的数据量可能无法容纳在URL中,因此实际上已将其更改为POST请求。 对于真正生效的请求,您必须检查它是否由POST方法提交。但是,这样做的方法是显式检查,而不是依靠为G

  • 问题内容: 关于python 3.0中reduce()函数的更改以及如何删除它,网上似乎有很多热烈的讨论。我有点难以理解为什么会这样。我发现在各种情况下使用它是很合理的。如果蔑视仅仅是主观的,我无法想象会有这么多人关心它。 我想念什么?reduce()有什么问题? 问题答案: 正如Guido在Python 3000 帖子中的reduce()的命运中所说: 所以现在reduce()。实际上,这是我一

  • 问题内容: 最近,我在一些最差的PHP实践中阅读了此线程。在第二个答案中,有一个关于的使用的简短讨论,我只是想知道所有有关的内容。 我个人使用它来切分给定的数组,例如或稍后在其中清理变量,因为它们已为我方便地命名。 这是不好的做法吗?这有什么风险?您对的使用有何看法? 问题答案: 我发现这只是一种不好的做法,因为它会导致许多变数,将来的维护者(或您自己在几周内)都不知道它们的来源。考虑这种情况:

  • 我想运行我的程序,但它给我这个错误:异常线程主java.lang.ArrayIndexOutOfBoundsException: 0在Main.main(Main.java: 9) 我一直在寻找解决方案,我唯一找到的是:我的数组怎么了?,这与我遇到的错误/问题不同。

  • 问题内容: 该代码在第一个“等级”之后保持两次打印。有谁知道为什么要打印两次?我做错了“ For Loop”吗? 问题答案: 这是“两次打印”,因为当您按回车键输入一个字符时,实际上是在写两个字符:您键入的字符和(换行符)。 添加第二个调用以读取换行符: 同样,不需要初始化为in 也可以。实际上,在此循环中使用a没有意义,首选使用a 。

  • 问题内容: 我正在尝试使用openFileOutput函数,但它无法编译且无法识别该函数。我正在使用android sdk 1.6。这是SDK问题吗?这是参数问题吗? 问题答案: 您的方法应如下。将额外的上下文作为参数。对于这种方法,您可以通过您的服务或活动