【问题标题】:Does HTML and CSS needs to be valid before we apply JavaScript?在我们应用 JavaScript 之前,HTML 和 CSS 是否需要有效?
【发布时间】:2010-03-07 15:04:04
【问题描述】:

我在考虑 Web 标准,我想知道在应用 JavaScript 之前是否需要有有效的 HTML 和 CSS?

谁能告诉我有效的 HTML、CSS 和 JavaScript 之间的关系?

例如,无效的 HTML 和 CSS 是否会阻止 JavaScript 正常工作?

【问题讨论】:

  • 永远记住,您最认真的网站用户将使用带有 NoScript 扩展的 Firefox。因此,您必须确保您的网站在没有 javascript 的情况下完全正常运行。 Javascript 只能用于增强用户体验。
  • @PP:这个建议很荒谬。您的网站应该在没有 js 的情况下完全正常运行,以安抚 google 和其他机器人,而不是用 NoScript 满足 J. Random Nerd。对于几乎所有网站来说,使用 noscript 的冲浪者的百分比仍然可以忽略不计(如果您有统计数据,请引用)。

标签: javascript html css html-validation


【解决方案1】:

尽管我们为拥有有效的 HTML 付出了太多的口头承诺,但浏览器却是极其宽容的。其原因是历史性的。一开始有(现在仍然是)很多糟糕的 HTML。

但您可能会在 HTML 格式不正确的浏览器之间得到不可预知的差异。例如,不同的浏览器可能会以不同的方式处理未闭合的标签。

所有发生的标记都是基于浏览器如何解释它在浏览器中形成一个 DOM(文档对象模型)。 CSS 和 Javascript 都适用于 DOM。

【讨论】:

  • 他们很宽容……直到他们不再宽容。在我的上一份工作中,我们必须使用客户端 HTML、CSS 和 Javascript 来运行我们的社交媒体页面。让我告诉你,有些东西根本玩得不好。您会发现某些浏览器会忽略不平衡元素、错误的自闭合元素等,而有些则不会。要清理的最糟糕的烂摊子是某人嵌套不良的表格。或者(真实故事)有人将 DIV 元素放在他的所有 TR 元素周围“以获得额外的 CSS 类”。
  • 很遗憾,我必须同意。就 100% W3C 兼容而言,“有效”HTML 有点矫枉过正。当然,您所有的标签都必须关闭,并且与最佳实践保持一致总是好的,但我从来没有让 javascript 失败,因为我错过了“w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> " 呵呵。
  • 您好,感谢您的回复。这是否意味着 DOCTYPE、XHTML 或 HTML 不会真正影响 JavaScript 的工作方式?
【解决方案2】:

我不同意aboveresponses:在我记得validate 我正在处理的页面之前,我已经很糟糕地寻找明显的javascript错误。一旦我纠正了明显的错误,脚本就按预期工作了。

最明显的问题(我没有遇到过,因为我已经在寻找):有两个具有相同 id 属性的元素,并尝试使依赖于它的脚本按预期工作:)

虽然所需的验证级别可能确实有点低,但当您因为您的网站无法运行并且您不知道原因而将头撞在桌子上时,您会深情地记住这一点。

【讨论】:

  • 虽然我不同意@cletus,但我同意你的广泛观点。但这似乎是 cletus 暗示的一点:JS/CSS 在 DOM 上运行,html 构成了 DOM 的基础。因此,如果 DOM 格式错误——来自无效 (x)html——那么 js/css 不一定会工作(或按预期工作)。我会投票,但我当天已经没有票了。 =/
  • 好吧,如果问题是“做可忽略的 html / css 错误阻止 js 工作”,那么 cletus 是对的。尽管 CSS 错误可能非常无情。但在一般情况下,它不是。检查 html 和 CSS 的有效性要便宜得多,也更容易。构建有效的 html 和 css 更便宜(但更难)。我不是在谈论狂热者的有效性级别,而是关于确保 DOM 树是有效的并且没有 css 错误。
猜你喜欢
  • 1970-01-01
  • 2016-09-24
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多