的W3C验证不喜欢自闭合标签(那些与"端/>")上非空元素.(Void元素是那些可能不包含任何内容的元素.)它们在HTML5中仍然有效吗?
可接受的 void元素的一些示例:
<br />
<img src="" />
<input type="text" name="username" />
Run Code Online (Sandbox Code Playgroud)
被拒绝的非虚元素的一些例子:
<div id="myDiv" />
<span id="mySpan" />
<textarea id="someTextMessage" />
Run Code Online (Sandbox Code Playgroud)
注意: W3C验证器实际上接受无效的自动关闭标签:由于简单的拼写错误(\>而不是/>),作者最初遇到了问题.但是,自动关闭标签在HTML5中通常不是100%有效,并且答案详细说明了各种HTML风格的自闭标签问题.
我有一个表,我通过一个不存在的CSS类显示/隐藏jQuery的完整列:
<table>
<thead>
<tr>
<th></th>
<th class="target"></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td class="target"></td>
<td></td>
</tr>
<tr>
<td></td>
<td class="target"></td>
<td></td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
有了这个DOM,我可以通过jQuery在一行中完成这个: $('.target').css('display','none');
这非常有效,但是使用未定义的CSS类是否有效?我应该为它创建一个空类吗?
<style>.target{}</style>
Run Code Online (Sandbox Code Playgroud)
是否有任何副作用或有更好的方法来做到这一点?
我使用此HTML标记加载了3种不同大小的字体:
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,300,800,700,400italic|PT+Serif:400,400italic|Bree+Serif">
Run Code Online (Sandbox Code Playgroud)
Till~1/2周前,w3.org验证器支持HTML5; 现在它给出了这个错误:
Line 14, Column 163: Bad value http://fonts.googleapis.com/css?family=Open+Sans:400,600,300,800,700,400italic|PT+Serif:400,400italic|Bree+Serif for attribute href on element link: Illegal character in query: not a URL code point.
Run Code Online (Sandbox Code Playgroud)
W3C Markup Validator现在不喜欢什么?
我从事大规模,大批量,面向公众的Web应用程序.应用程序的成功运行对业务非常重要,因此有许多MI工具可以针对它运行.
其中一个MI工具实际上是查看每个页面请求发送到浏览器的html(我已经对它进行了很多简化,但是出于这个问题的目的,它是一个对html进行一些分析的工具)
对于这个MI工具来获取它需要的数据,我们将元数据放在head元素中.目前我们以html评论的方式做到:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<!-- details = 52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009] -->
<!-- policy id = 1234567890 -->
<!-- party id = 0987654321 -->
<!-- email address = user@email.com -->
<!-- error = 49 -->
<!-- subsessionid = bffd5bc0-a03e-42e5-a531-50529dae57e3-->
...
Run Code Online (Sandbox Code Playgroud)
该工具只需使用正则表达式查找给定的元数据注释
由于这些数据是元数据,我想将其更改为html元标记,因为它在语义上是正确的.像这样的东西:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<meta name="details" content="52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009]" />
<meta name="policyId" content="1234567890" />
<meta name="partyId" content="0987654321" />
<meta name="emailAddress" content="user@email.com" />
<meta name="error" content="49" />
<meta name="subsessionid" content="bffd5bc0-a03e-42e5-a531-50529dae57e3" />
...
Run Code Online (Sandbox Code Playgroud)
这感觉更加语义,我可以让MI工具使用它没有问题 …
我的HTML如下所示.我已打开所有元素并关闭它们.还是当我在w3c上检查它时它显示错误.我弄清楚了.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<p>
<div class="inr_content clearfix">
<div class="col2 first fl">
to provide a drive-in services.
</div>
<div class="col2 last fr">
to provide a drive-in services.
</div>
</div>
</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 所以我一直在玩Google的+1按钮试图在我的网站上获取它,但它不符合W3C标准.
这是代码:
<!-- Place this tag in your head or just before your close body tag -->
<script type="text/javascript" src="http://apis.google.com/js/plusone.js">
{lang: 'en-GB'}
</script>
<!-- Place this tag where you want the +1 button to render -->
<g:plusone size="medium" href="http://www.example.org"></g:plusone>
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会发生这种情况以及如何使其符合要求?谢谢
编辑:为了让这个通过验证,我在我的网站上写了一篇文章.
Google,Yahoo和MS 推出的新schema.org建议使用该<link>属性来显示在线商店中产品的状态:
<div itemscope itemtype="http://schema.org/Offer">
<span itemprop="name">Blend-O-Matic</span>
<span itemprop="price">$19.95</span>
<link itemprop="availability" href="http://schema.org/InStock"/>Available today!
</div>
Run Code Online (Sandbox Code Playgroud)
然而,根据w3schools.org <link>只允许在头部:
注意:此元素仅在head部分中出现,但它可以出现任意次.
我不习惯W3C风格,所以我无法理解W3C的确切定义.任何人都可以帮助我:它是否真的允许<link>在体内使用(在HTML5中,因为schema.org使用HTML5标签)或谷歌,雅虎和MS是否打破标准?
是否有可能在HTML中编写符合W3C标准的多级项目符号(无序列表)?
可以使用嵌套ul,但不符合W3C.
<ul>
<li>myItem 1</li>
<li>myItem 2</li>
<ul>
<li>myItem 2a</li>
</ul>
<li>myItem 3</li>
<li>myItem 4</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在Visual Studio中,上面的代码给出了警告:验证(XHTML 1.0 Transitional):元素'ul'不能嵌套在元素'ul'中
我目前正在尝试学习HTML和Java EE Servlet编程.我在我的本地计算机(Orion Application Server)上运行了一个应用程序服务器,并且我使用在同一台计算机上运行的浏览器连接到我在此服务器上部署的网页,并指向http://localhost/mypage.htm(例如).
我知道W3C有一个可以访问的站点,它将验证HTML页面(并计算给定doctype的错误数量),但这必须是一个公开的URL.如何像我上面描述的那样在本地运行的设置上验证HTML?
我正在寻找一些替代方法:
<iframe transparency=true ...
Run Code Online (Sandbox Code Playgroud)
当我进行W3C验证时,我收到错误:
Column 31: there is no attribute "allowtransparency"
Run Code Online (Sandbox Code Playgroud)
如果使用这个CSS,
.iframe-trans-fix{
opacity: 0;
filter:alpha(opacity=0);
}
Run Code Online (Sandbox Code Playgroud)
对于上面的代码片段,我得到一个空白的iframe.
w3c-validation ×10
html ×7
html5 ×3
css ×2
w3c ×2
html-lists ×1
javascript ×1
localhost ×1
meta-tags ×1
syntax ×1
validation ×1