我遇到链接按钮产生错误标记的问题。
它应该产生这样的东西:
<div style="margin-top: 5px; width: 150px; margin-left: auto; margin-right: auto;">
<a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel"
class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')">
<div>
<span class="border top">
<span class="border">
</span>
</span>
<span class="icon cancel">
Cancel
</span>
<span class="border bottom">
<span class="border">
</span>
</span>
</div>
</a>
</div>
只注意一个标签。
最终会产生这样的结果:
<div style="margin-top: 5px; width: 150px; margin-left: auto; margin-right: auto;">
<a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel"
class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')">
</a>
<div>
<a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel"
class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')">
<span class="border top">
<span class="border">
</span>
</span>
<span class="icon cancel">
Cancel
</span>
<span class="border bottom">
<span class="border">
</span>
</span>
</a>
</div>
<a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel"
class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')">
</a>
</div>
现在请注意3(!)锚标记。
它只发生在特定服务器上的特定浏览器上,服务器在IIS 6上运行ASP.NET 2.0,使用Firefox 3.5访问该页面。
更新:我使用FF视图源查看代码,没有安装插件,该文件应该是XHTML 1.1 Transitional,但我不认为它验证,因为你不能在锚标签内部使用div标签。
答案 0 :(得分:0)
你是如何看到这个标记的?在Firebug?在安装了TidyHTML的FF源查看器中?
使用什么(X)HTML声明? HTML 4.1? XHTML过渡?严格?
我问的原因是,<a>
标记被定义为内联元素,因此将它包装在块元素周围是不合法的,例如<div>
代码。
您在FF中看到的来源可能已得到纠正,可以通过在div标签内部和末尾添加额外的锚标签来解决此问题。
你是如何看到这个标记的?在Firebug?在安装了TidyHTML的FF源查看器中?
使用什么(X)HTML声明? HTML 4.1? XHTML过渡?严格?
我问的原因是,<a>
标记被定义为内联元素,因此将它包装在块元素周围是不合法的,例如<div>
代码。
您在FF中看到的来源可能已得到纠正,可以通过在div标签内部和末尾添加额外的锚标签来解决此问题。
Nope,View Source就像FF一样修复它 - 如果你想检查一下,你可以安装ViewSourceWith plugin,并在你选择的NotePad中查看源代码 - 我注意到这两者之间存在差异
与ASP.NET 1.1不同,ASP.NET 2.0中的BrowserCaps确实识别FF,Safari等,因此一般输出应该与您在IE中看到的不同。