我正在使用HTML,CSS,JavaScript和PHP制作一些页面。我应该花多少时间使用W3C的工具来验证我的页面?似乎我所做的一切都有效,但根据验证提供了更多的错误。
我是否在浪费时间使用它们?如果有任何其他建议,以确保我正在制作有效页面或如果它有效,它没关系?
答案 0 :(得分:18)
您应该在开发过程中经常验证代码。 E.G在每个部分/块之后重新验证它,并立即修复错误。 这种方法可以加快你的学习速度,因为你可以立即从小错误中吸取教训并避免之后的大量调试,这只会让你更加困惑。
有效页面可确保您不必同时处理无效代码和跨浏览器问题;)
使用:
在调试和修复所有其他代码之前,请避免编写新代码
如果你的日程安排有很多错误要修复,那么日程安排就不可靠了。但是,如果你已经修复了所有已知的错误,剩下的就是新代码,那么你的日程安排就会非常准确。(Joel test rule number 5)
答案 1 :(得分:4)
是的,你肯定会花一些时间来验证你的HTML和CSS,特别是如果你刚刚开始学习HTML / CSS。
您可以通过编写一些自动验证HTML / CSS的简单脚本来减少您在验证上花费的时间,这样您就可以获得即时反馈并轻松解决问题,而不是将其堆叠起来以供日后使用。
后来很难,当你更熟悉什么是什么和什么是无效的HTML和CSS时,你几乎可以写很多而不会产生任何错误(或只是一两个小错误)。在这个阶段,你可以更放松,不需要每次检查都是不利的,因为你知道它会通过。
一个很大的禁忌:不要将错误叠加起来,你会被淹没,永远不会写出有效的代码。
答案 2 :(得分:3)
您是否一定需要始终获得零错误?否。
但是你确实需要了解验证器产生的错误,因此你可以决定它们是微不足道的还是严重的。通过这样做,您将了解有关创作HTML的更多信息,并且通常会生成更好的代码,以便在当前和未来的浏览器中更兼容地工作。
忽略关于URL属性值中未转义&
的错误,一切都很好,直到它后面的参数名称恰好与某个浏览器中现在或将来的定义实体名称匹配,并且您的应用程序中断。将错误保持为您认为无害的错误,并且您将拥有更强大的网站。
例如,让我们看看这个页面。
Line 626, Column 64: there is no attribute "TARGET"
… get an <a href="http://openid.net/get/" target="_blank">OpenID</a>
这是一个简单,常见且无害的。 StackOverflow正在使用HTML 4 Strict,这有争议地消除了target
属性。从技术上讲,SO应该转移到Transitional(仍然允许)或HTML5(将其带回)。另一方面,如果SO使用的所有其他内容都是Strict,我们可以忽略此错误,因为我们知道我们做错了,而不会错过我们使用的任何其他非严格功能的错误意外。
(我个人更喜欢完全摆脱属性的选项。我不喜欢在没有我要求的情况下在新窗口中打开的链接。)
Line 731, Column 72: end tag for "SCRIPT" omitted, but its declaration does not permit this
document.write('<div class=\"hireme\" style=\"' + divstyle + '\"></div>');
这是另一个常见错误。在基于SGML的HTML中,<script>
或<style>
等CDATA元素在第一个</
(ETAGO)序列上结束,而不仅仅是</script>
关闭标记的一部分。因此</div>
使解析器跳闸并导致所有后续验证错误。这对于验证错误很常见:基本的解析错误很容易导致许多错误,这些错误在第一个错误之后才真正有意义。所以从列表的开头清理你的错误。
实际上,浏览器不关心</
,只关闭完整</script>
关闭标记上的元素,因此除非您需要document.write('</script>')
,否则您就可以了。但是,它在技术上仍然是错误的,它会阻止您验证文档的其余部分,因此最好的办法是修复它:将</
替换为<\/
,在JavaScript字符串文字中,是一回事。
(XHTML在此处有不同的规则。如果您使用明确的<![CDATA[
部分 - 如果您使用的是<
或&
个字符,则需要使用该部分 - 这与</
。)
此特定错误在广告客户代码中(尽管广告客户是职业.SO!)。在广告客户代码中出现错误是很常见的,遗憾的是,您甚至可能无法修复它。在这种情况下,请在添加损坏的第三方标记之前进行验证。
答案 3 :(得分:2)
我认为你肯定会达到收益递减的程度。说实话,我更仔细地观察并花费更多精力在浏览器版本上进行测试,而不是试图从W3C验证器中消除所有可能的错误/警告;虽然我通常会尝试没有错误和警告只涉及我必须做的黑客才能使所有浏览器都能正常工作。
我认为,至少尝试使用CSS和Javascript时尤为重要。 CSS和Javascript都需要更合适的东西让它们正常工作。拥有格式良好的(X)HTML总能帮到那里,IMO。
答案 4 :(得分:2)
有效(X)Html非常重要。
它不仅可以让你更多地了解html以及名称空间的工作方式,而且还可以让浏览器更容易渲染,并为javascript提供更稳定的DOM。
验证的优点和缺点有几个因素,最重要的验证方法是速度,因为保持文档有效通常会使用更多的元素,这会使您的页面变得更大。
像谷歌这样的公司因为有任务声明而无法验证,因为它们是世界上最快的搜索引擎,但仅仅因为它们不验证并不意味着它们不鼓励它......
验证你的html的专家正在向WWW提供你的位,关于更好的代码=更快的网络..
这是一个链接,其中包含您应该验证的其他几个原因..
http://validator.w3.org/docs/why.html
我总是验证我的网站,以便100%,我对文件的可靠性感到满意。
答案 5 :(得分:1)
你不是在浪费你的时间,但我会说,如果你无法避免它们,不要因为轻微的警告而大惊小怪。
如果您的范围很窄(仅适用于现代桌面网络浏览器:IE,Firefox,Chrome,Opera),那么只需在所有网站上测试您的网站,以确保其在所有网站上正常显示和运行。
如果您的代码完全验证,将来会付出代价,主要是通过避免明显的陷阱。例如,如果IE认为页面没有完全有效,那么它就会进入怪癖模式,这使得一些元素显示如下:quirky)。
答案 6 :(得分:1)
尽管W3C编写了HTML,CSS等的官方规范,但实际情况是,您不能将它们视为您应该做的绝对权威。那是因为没有浏览器能够完美地实现规范。要获得100%有效文档(根据W3C工具),您需要做的一些工作对任何主要浏览器都没有影响,因此值得您花些时间是值得怀疑的。
这并不是说验证页面并不重要 - 使用这些工具很重要,尤其是在学习HTML时 - 但是(在我看来)实现100%并不重要。你将及时了解哪些是重要的,哪些是你可以忽略的。
有一个强有力的论据,重要的是浏览器实际上做了什么。虽然标准有很多好的论据,但最终你的工作是创建实际在浏览器中工作的页面。
这本书Dive into HTML 5有一篇关于HTML中标准与现实之间紧张关系的精彩章节。它冗长但阅读非常愉快! http://diveintohtml5.ep.io/past.html