我最近尝试验证网页,每次运行验证程序时都会输出相同的错误,尽管页面结构似乎是合法的。
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
...
源码应该有问题,但我无法弄清楚.. link to markup validation results
答案 0 :(得分:1)
基于查看文档包含的实际错误,提出了一些建议:
使用https://validator.w3.org/nu/而不是https://validator.w3.org/检查您的文档。
https://validator.w3.org/是用Perl编写的,并使用SGML和DTD来执行验证,因此它可以执行的检查类型非常有限(例如,它无法对属性值进行精确的数据类型/微观条件检查) 。如果您的文档使用了现代文档类型(<!DOCTYPE html>
,即“HTML5”文档类型声明),则只需将文档移至https://validator.w3.org/nu/进行检查即可。
https://validator.w3.org/nu/会针对the current HTML spec(又名 HTML5)检查您的文档,并包含https://validator.w3.org/无法执行的多种类型的检查。
检查https://validator.w3.org/nu/?doc=http://demo.amiron.eu/equilibrium/会提出两点:
<!DOCTYPE html>
http://demo.amiron.eu/equilibrium/处的文档目前根本没有document type declaration。这是一个彻头彻尾的错误,因为缺少doctype会导致浏览器出现意外行为。如果您使用<!DOCTYPE html>
之外的任何文档类型,那么在浏览器中导致意外行为的方式更容易导致部分文档类型错误。
<meta charset="utf-8">
http://demo.amiron.eu/equilibrium/的字符编码未在文档所服务的HTTP标头中声明,也未在文档本身中声明。 Web上的文档应使用UTF-8进行编码,并确保浏览器和其他工具始终明确其编码,文档应始终包含<meta charset="utf-8">
元素。