我注意到很多网站,包括SO,使用XHTML作为他们的标记语言,然后不遵守规范。 只是浏览SO的来源,缺少段落,无效元素等的结束标记。

那么,如果工具(和开发人员)要生成无效标记,他们应该使用XHTML doctype吗? 浏览器是否应该更加坚定地接受糟糕的加价?

在任何人喊出伪君子之前,我的博客有一个无效的标记涉及captha(或者我最后一次检查时),其中包括造型noscript标签。

===============>>#1 票数:16 已采纳

使用有效标记的原因很多 我最喜欢的是它允许你使用验证作为回归测试的一种形式,一旦错误达到某个临界质量,就可以防止相当于“delta rot”的标记导致真正的渲染问题。 实际上,允许像拼写错误和错误嵌套/未封闭标签这样的“懒惰”错误来积累,这简直太草率了。 有效标记是识别热情程序员的一种方法。

还有调试问题:有效标记还为您提供了一个稳定的基线,可以从中解决不可避免的跨浏览器兼容性问题。 没有重视他的时间的Web开发人员应该开始调试浏览器兼容性问题而不首先确保标记至少在语法上有效 - 并且任何其他无效标记应该有充分的理由存在。

(顺便说一句,stackoverflow.com失败了这两个测试,修复问题的建议 拒绝了 。)

所有这些都说,为了回答您的具体问题,除非您计划生成有效(或至少格式良好)的标记,否则使用其中一个XHTML文档类型可能并不值得。 XHTML的主要优点源于XHTML是XML,允许通过使用XML的工具和技术进行处理和转换。 如果您不打算制作XHTML格式良好的XML,那么选择该doctype毫无意义。 最新的HTML 4规范可能会做你需要的一切,而且它更宽容。

===============>>#2 票数:2

我们应该始终尝试根据标准进行验证。 我们确信该网站将在当前浏览器和未来的浏览器上显示和正常工作。

===============>>#3 票数:2

我不认为,如果您指定了doctype,则有任何理由不遵守此doctype。

使用XHTML可以轻松实现自动错误检测,可以自动检查每个更改是否存在无效标记。 这可以防止错误,尤其是在使用自动生成的内容时 对于使用模板引擎(JSP,ASP.NET StringTemplate等)的Web开发人员来说,复制/粘贴一个结束标记太少或太多都非常容易。 如果这是您唯一的错误,可以立即检测并修复。 我曾经为一个每页有165个验证错误的网站工作,其中2或3个是实际的错误。 在其他错误的混乱中很难找到这些。 自动验证可以防止源上的这些错误。

毋庸置疑,选择一个标准并坚持使用它永远不会有利于与其他系统(屏幕抓取器,屏幕阅读器,搜索引擎)的互操作性,我从来没有遇到过这样一种情况,即所有人都无法使用CSS解决方案的有效语义XHTML。主流浏览器。

显然,在处理复杂系统时,并不总是能够坚持你的doctype,但这主要是由于不同团队之间的不正确沟通,这些团队开发了这些系统的不同部分,或者很可能是遗留系统。 在最后一种情况下,最好隔离这些案例并相应地更改您的doctype。

只是因为有人这么说,不管成本如何,但是目前对CSS和浏览器,测试和验证工具的了解,大多数时候其好处远大于成本,这是务实而不遵守XHTML的好处。

===============>>#4 票数:2

你可以说我有一个关于XHTML有效性的OCD。 我发现代码中的大多数问题都不是有效的,程序员不知道HTML和XHTML之间的区别。 我已经写了100%有效的XHTML和CSS或者现在一段时间,并且从来没有与其他浏览器有任何重大的渲染问题。 如果你保持一切有效,并且不要尝试任何太奇特的css明智的东西,你将节省大量的修复时间。

===============>>#5 票数:1

不,如果您不能保证格式良好,则不应使用XHTML,并且在实践中,如果不使用XML序列化程序生成标记,则无法保证。 了解如何生成XML

良构是 XHTML与HTML区分开来东西。 带有“只有一个”标记错误的XHTML不再是XHTML。 每次都必须完美

如果“XHTML”网站似乎有一些错误,那是因为浏览器会忽略DOCTYPE并将页面解释为HTML。

请参阅强制将页面解释为XHTML的XHTML代理 大多数时候他们都悲惨地失败了 这就是为什么XHTML的未来不确定以及为什么HTML的开发已经恢复的原因之一。

===============>>#6 票数:1

我根本不会使用XHTML来拯救自己的哲学压力。 它不像任何浏览器那样像XHTML一样对待它。

如果页面作为application / xhtml + xml发送,浏览器将拒绝不良标记,但它们很少。 这可以。

我会更关心像使用Stack Overflow在线使用CSS和JavaScript这样的事情,因为它们会使维护更加困难。

===============>>#7 票数:1

虽然我相信努力争取有效的XHTML和CSS,但由于多种原因,它通常很难做到。

  • 首先,一些内容可以通过AJAX加载。 有时,片段未正确插入现有DOM中。
  • 您正在查看的HTML可能并非在同一文档中生成。 例如,页面可以由组件或模板组成,然后在浏览器呈现之前将其抛出。 这不是一个借口,但你不能假设你看到的HTML是一次手动编码的。
  • 如果Markdown生成的某些代码无效,该怎么办? 你不能责怪Stack Overflow没有生成有效的代码。
  • 最后,DOCTYPE的目的不是简单地说“嘿,我正在使用有效的代码”,但它也是为了让浏览器了解您正在尝试做的事情,这样它至少可以接近正确解析那些信息。

我不认为大多数开发人员指定DOCTYPE然后明确地不遵守它。

===============>>#8 票数:1

虽然我同意“如果它变得很好而不用担心它”的说法,但是遵循标准是有好处的,尽管它现在可能没有得到完全支持。 你仍然可以使用Table进行布局,但这并不是一个好理由。

===============>>#9 票数:0

这取决于。 我的博客存在这个问题,其中YouTube视频导致无效的XHTML,但它呈现得很好。 另一方面,我有一个“Valid XHTML”链接,并且“Valid XHTML”声明和无效XHTML的组合不是专业的。

因为SO并不声称它是有效的,我认为这是可以接受的,但我个人如果我是杰夫,即使它在现代浏览器中看起来很好也会受到困扰并尝试修复它,但有些人宁愿继续前进并实际完成任务而不是修复不存在的错误。

===============>>#10 票数:0

只要它适用于IE,FF,Safari,(在这里插入其他浏览器)你应该没问题。 验证并不像在多个浏览器中正确呈现一样重要。 仅仅因为它是有效的,并不意味着它可以在IE中正常工作,例如。

在您的网站上运行Google Analytics或类似工具,查看您的用户使用的浏览器类型,然后判断哪些浏览器最需要支持,并在您有空余时间时担心不太重要的浏览器。

===============>>#11 票数:0

我说,如果它渲染好,那么它的像素是否完美并不重要。

需要一段时间才能使网站按照您希望的方式运行,返回并进行更改会改变页面呈现的方式,然后您必须解决这些问题。

现在,我不是说你应该建立草率的网页,但我认为没有理由修复没有破坏的东西。 浏览器不会在不久的将来随时放弃对纠错的支持。

===============>>#12 票数:0

我不明白为什么每个人都试图让他们的网站符合标准,当一些浏览器基本上没有正确呈现标准代码时。 我已经进行了10年的网页设计,我停止了双重编码(阅读:黑客css),并改变了愚蠢的东西,所以我可以在我的网站上放一个按钮。

我相信使用<div>会导致你无效,并且没有它就会更难以做任何主要的JavaScript / AJAX。

===============>>#13 票数:0

有这么多标准,他们被严格“强制执行”或支持,我认为这不重要。 不要误解我的意思,我认为应该有标准,但因为没有强制执行,没有人跟随它们,这是一个巨大的螺旋下降。

===============>>#14 票数:0

对于99.999%的网站,它真的没关系。 我唯一重要的时候,我通过HTMLTidy运行HTML输入到XHTML-ize它,然后在它上面运行我的处理。

差不多,这是旧程序员的公理:信任没有输入。

  ask by graham.reeds translate from so

未解决问题?本站智能推荐: