与拥有可在所有主流浏览器上运行的无效HTML相比,确保所有页面均有效的优点和缺点(如果有)是什么?重要吗?

评论

这不会回答您的问题,但是...在页面上放置doctype将使浏览器进入标准模式而不是怪癖模式。查找怪癖模式以了解我的意思。

@Evan Plaice-虽然不是任何DOCTYPE。某些DOCTYPE实际上触发了怪癖或几乎是标准模式。 HTML5规范对此进行了更详细的说明。

@luiscubal是HTML 5中的新功能,因为来自en.wikipedia.org/wiki/Quirks_mode,它声明“ ...如果存在完整的DOCTYPE,浏览器将使用标准模式,如果不存在,则将使用怪癖模式。 ”。

@Evan Plaice不确定以前的HTML版本,但是HTML5特别说明了如何处理古老的DOCTYPE:请参阅whatwg.org/specs/web-apps/current-work/multipage/…

@Evan Plaice换句话说,“ DTD HTML 2.0 Level 1”触发了怪癖模式。

#1 楼

我认为这绝对是值得做的,但您永远不应成为验证的奴隶-这是傻瓜的游戏。 -does-it-matter.html


验证HTML。知道拥有有效的HTML标记意味着什么。了解工具。多提供信息总比少提供信息更好。为什么盲目地飞?
没人在乎您的HTML是否有效。除了你。如果你想。不要再想生产完全有效的HTML比运行网站,提供使用户满意的功能或完成工作更重要。


评论


我得第二。我见过很多JavaScript库问题,这些问题可以归咎于无效的HTML。多个嵌套表格和非法关闭的标签是主要的违法者。就像Je​​ff所说的那样,不要成为奴隶,但是当jQuery不起作用时不要抱怨,因为您的页面不是有效的HTML(XHTML,HTML 5或您选择的任何doctype)。

–加雷斯·法灵顿(Gareth Farrington)
10 Jul 17'4:22

@Jeff Atwood:当您说“没有人在乎您的HTML是否有效。除了您之外,我无法同意。”可悲但真实的是,客户真的不在乎。

– Marco Demaio
11年7月23日在15:37

@MarcoDemaio为什么会很难过?作为客户和最终用户,我比该网站是否通过验证更关心该网站是否在所有浏览器上都能正常工作(大多数浏览器都不符合标准)。有效的HTML确实无关紧要。 Google,Facebook,Twitter,此站点等。没有相关站点具有有效的标记。为什么?因为有效的HTML只会使页面肿,并增加带宽成本。

– NullUserException
2011年11月30日,0:45

完全缩进的标记也是如此。这甚至更无用,浪费了100%的带宽,并且没有任何实际用途。

– NullUserException
2011年11月30日,0:49

@NullUserException:我认为这很可悲,因为我发现经过验证的网站通常在所有浏览器上的渲染效果都更好。请参阅我对Alan答案的评论:webmasters.stackexchange.com/a/373/1429验证保存给我的网站仍然可以节省大量时间。关于完美的缩进标记,我从未听说过有关它的规格。我可能要缩进3个空格,而您可能想缩进一个空格。

– Marco Demaio
2011-12-10 15:54



#2 楼

我认为有效的HTML是一个值得追求的目标,但不要将其视为建设良好网站的必经之路。具有语义-例如使用表格进行布局或导航。有效代码和语义代码之间是有区别的。 >

#3 楼

我认为这是值得的,因为我通过寻求验证捕获了许多标记和逻辑错误。这是“必需但不足”的事情之一。有效的标记(如可以编译(或通过JSlint检出)没有错误,警告和提示的代码)是正确解决问题的良好第一步。

评论


+1完全同意这一点。验证页面可以节省大量时间,以解决JS以及看起来多么神秘的问题(仅是由于破旧的HTML标记或未关闭的HTML标记)导致的问题如何被替换。此外,使用FF插件Html验证程序[addons.mozilla.org/en-US/firefox/addon/html-validator/]之类的工具,可以很轻松地在本地验证所有页面。

– Marco Demaio
2011年7月23日在15:42



#4 楼

有效HTML的最大优点是,您的页面可以被“主要浏览器”以外的其他内容访问。所有“主流浏览器”都具有无穷无尽的解决方法来处理填充WWW的所有无效垃圾。但是,坚持使用有效的HTML会有所帮助,例如,如果某人正在使用视觉障碍者的浏览器,或者离线访问您的页面等。

#5 楼

验证本身并不那么重要,因为很少有浏览器可以100%兼容并且规范还没有100%明确如何解释规则。调整和改善您的网站的位置。随着标准的发展,它们通常会向前迁移,如果您的新站点有效,那么更新以支持最新内容应该会更容易。游戏,并与最广泛的受众群体尽可能兼容。

#6 楼

最好的方法是了解哪些无效HTML不好,哪些无效HTML无关紧要。

例如,忘记关闭<div>标签是非常糟糕的,因为您的布局几乎肯定会弄乱一个或多个浏览器。

但是,在XHTML中使用<br>而不是<br />没关系-所有浏览器都将这两者都解释为换行符而没有问题。在链接上使用target属性无效,但最坏的情况是浏览器没有在新窗口中打开链接。

评论


target在过渡XHTML中有效,并且仅受虐狂使用严格。省略斜杠将使页面的XML无效,这可能会使屏幕抓取器感到困惑。如果选择使用XHTML,则页面至少应为有效XML。

– Tgr
2010年7月18日在8:00

@Tgr:好笑,我以为受虐狂喜欢非标准模式。甚至过渡文档类型也存在问题(使用“几乎标准”模式等)

–心怀不满的山羊
10年7月18日在15:16

我认为严格是必不可少的-为什么选择冒着过时的代码和怪异模式的风险。使用Strict无需花费任何成本,除了它可以鼓励您更多地了解首选的标记版本。

– CJM
2010年11月2日,11:22

#7 楼

运行验证器时,您需要根据具体情况检查它给您带来的错误。验证重要吗?对我来说,这很重要。但这是一个要求吗?不能。

多次使用相同的ID(而不是类),将块级元素放入内联级元素中(通常这些元素在语义上也不适合),缺少图像上的alt属性(残障人士的可及性差)都很重要。诸如标签上的未知属性之类的东西并不重要。完全没有诸如Dojo之类的Javascript框架或糟糕的Meebo社交媒体栏使用自定义属性作为钩子,HTML规范指出允许这些属性,并且任何未知属性都将被忽略。验证器不会忽略它们,但是会引发错误。这些错误可以忽略。

验证时,不要仅仅假设如果您有错误,那就错了。语义在很大程度上更为重要,而且恰恰是发生这样的情况,即有效的HTML通常不是拥有适当语义的自然结果。

评论


我同意-验证您的网页,但是在某些情况下,只要您知道警告的原因,就可以选择忽略警告

– Casebash
2010年7月10日,下午1:47

#8 楼

测试您的网站是否为有效HTML的原因之一是,它确保搜索引擎蜘蛛能够完全索引并确定页面的含义。如果他们由于HTML格式不正确而无法这样做(主要浏览器可能由于历史原因而无法使用),则可能会限制搜索引擎排名。

人们还猜测,尽管主要的搜索引擎在处理格式错误的HTML方面做得很好,但它们也可能会为有效性分配页面质量“点”,从而进一步影响您的排名,使其达到您的内容值得。

评论


Google明确表示无效的HTML对排名没有影响。但是,我可以看到HTML格式错误,以至于蜘蛛无法读取页面上的实际内容-尽管在这种情况下几乎可以确定浏览器会开始出现渲染问题。

–心怀不满的山羊
2010年7月18日在15:23

@DisgruntledGoat您是对的,这里有个参考:youtube.com/watch?v=FPBACTS-tyg

–JasonBirch
2010年7月18日在19:17

@DisgruntledGoat显然……Google本身到处都是无效的HTML,我记得他们说他们真的不在乎,拥有无效的HTML是一件好事,如果那意味着更快的加载时间。

– NullUserException
2011年11月30日,0:55



#9 楼

我真的认为这不再重要了。我曾经是验证的奴隶,现在很少检查它。也许我因为确保自己的网站有效而精疲力尽,或者也许我只是不在乎,因为没有其他人愿意。我可以保证99.9%的访客甚至不知道这是什么,甚至不在乎。将来可能会使用浏览器软件,但是那天到来时,我会担心它。

#10 楼

验证很有用,因为它可以帮助您发现一些难以捕捉的错误,例如

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />


或不可预测的浏览器行为(例如,将块元素放入a有时会在Firefox中以难看的方式破坏。)

#11 楼

尚未有人提到的一点是,无效的HTML可能导致渲染时间变慢,而浏览器试图在显示时理解非标准HTML。

评论


如果可以的话,我会拒绝投票。我高度怀疑这是否有明显效果;我会更担心有效的标记会使页面blo肿,并且需要更多的时间来加载(尤其是在速度较慢/移动连接更慢的情况下)。

– NullUserException
2011年11月30日下午0:51

@NullUserExceptions:我不认为BradB提出的观点应为-1。可能难以证明,但是需要整理并修复HTML混乱的浏览器可能要比格式正确,没有错误的有效HTML页面花费更多。您为什么不提供此问题的答案,向我们展示由于HTML验证滥用而导致页面过大的一个很好的例子。与具有无效HTML代码的同一页面相比,我不认为有效的HTML页面如何过高。

– Marco Demaio
2011-12-10 16:03



#12 楼

有效的html没有缺点。首先有一个规范是有原因的,为什么要在规范中投入大量精力来定义事物应该如何工作。 。这反过来意味着,如果出现问题,则读取html的程序(浏览器,机器人)不能怪罪您不符合规范。并且其中一些程序会给您带来额外的收益(如果漫游器报告“符合规格”,则在搜索引擎中的排名会更高)。如果您符合规格,那么如果某些浏览器未按照您认为的方式呈现损坏的html,您将大为惊讶。

因此,符合规格并编写有效的html对您有好处,完全没有缺点。

评论


哼,如果您符合规范,您会在哪些搜索引擎中获得更高的排名?

–删除
2010年7月9日在7:35

缺点是您要花费更多的开发时间来确保所有代码都符合规范。尽管此成本通常很小,但仍应作为缺点解决。

– chatche
2010年7月9日在18:33

@kinopiko:如果有的话,那不是主要的(Google,Yahoo,Bing,Ask)。即使是经验丰富的(人类)Web开发人员也无法阅读完整的代码,这可能会妨碍您,但是使用某些“非法”属性对排名的影响绝对为零。

–心怀不满的山羊
2010年7月18日在15:20

这就是验证术语的问题。您是有效的还是无效的。没有学位。损坏的HTML(例如未关闭的标签,结构标签的错误放置/丢失等)是无效的,并且会损害SEO,但大多数人在说“验证”时并没有在谈论这些。新手可能希望使用验证器来确保他们没有犯任何新手错误,但是专业的开发人员不需要这样做,因为他们的代码已经“足够有效”,可以这么说。

–Lèsemajesté
2010-10-17 10:02



#13 楼

一些HTML验证错误可能会导致非显而易见的布局问题(例如,错误嵌套/未关闭的标签),JavaScript错误(例如,多次使用id)以及某些用户的问题(例如,图像上不包含有意义的或空白的alt属性) 。

如果我们所有的页面都通过验证,那么这是一个很好的自动检查,您可以排除错误源。如果您因为知道验证错误不会造成任何危害而留下一些验证错误,则检查将不再自动进行:您必须查看每个错误,并记住可以。就个人而言,当计算机减少了我要做的工作而不是增加工作量时,我更喜欢它。

#14 楼

没有人提到的一点是未来浏览器的发展。尽管当今所有的浏览器都能很好地处理无效标记,但情况并非总是如此。

未来的浏览器制造商将确保其浏览器符合HTML / XHTML标准,因此Web开发人员应该这样做被击中。仅仅因为无效标记的特定部分现在可以正常工作并不能保证它将在将来的浏览器中正常工作。

评论


我不得不说我想知道这是否是真的。

–删除
2010年7月17日在12:17

是的,我看不到任何浏览器都放弃对标记或类似标记的支持。

–心怀不满的山羊
2010年7月18日在15:17

我看不出问题是什么-将来对不赞成使用或无效标记的支持可能会更改。忽略了大多数浏览器中(X)HTML的不完美实现,可以肯定,使用有效标记会更加安全。除了简单地知道您在做什么之外,与有效标记没有任何关系。

– CJM
2010年11月2日,11:25

#15 楼

有效性可以帮助您避免不兼容性,并有助于保持代码的可维护性。浏览器可从标记错误中恢复,但有时会以非常不直观的方式进行恢复。 DTD是原始的,例如,无法检查大多数属性的有效性。大多数情况下,您将很难理解有关实体和嵌套的错误。
HTML5验证程序-是的。绝对是HTML5更加实用,并允许使用一些曾经是错误的无害构造。 OTOH Henri的验证器在发现实际问题方面更加全面和出色。如果使用document.write(),那么您甚至还必须注意确保语法正确(它通过与页面源相同的解析器)。

#16 楼

即使您的HTML在所有主流浏览器上都可以使用,它仍然值得一做,因为它有时可能会导致诸如googlebot之类的搜索引擎抓取工具出现问题。例如,请参见:

http://www.codeproject.com/KB/server-management/Google_Indexing_Problem.aspx

#17 楼

Google和Bing不会,也不会,也永远不会使用CSS或HTML验证作为排名因素。

大多数网站都有数十到数百个错误,您不必担心,因为所有搜索引擎都在乎页面的呈现方式。只要确保您的网站在所有主要浏览器和Google的Fetch中都能正确显示即可。