我在HTML5文档上有一个iframe。当我验证时,我收到一个错误,告诉我iframe frameBorder
上的属性已过时,而是使用CSS。
我在这里有这个属性 frameBorder="0"
,因为这是我弄清楚如何摆脱IE边框的唯一方法,我在CSS中尝试了border:none;
没运气。有合适的方法来解决这个问题吗?
感谢。
答案 0 :(得分:45)
根据其他帖子here,最佳解决方案是使用
的CSS条目style="border:0;"
答案 1 :(得分:38)
HTML 5不支持frameborder,scrolling,marginwidth和marginheight等属性(HTML 4.01支持这些属性)。相反,HTML 5规范引入了无缝属性。无缝属性允许内联框架显示为呈现为包含文档的一部分。例如,边框和滚动条不会出现。
frameborder
HTML5以后已过时值
1
(默认值)在此框架周围绘制边框。值0
会删除此框架周围的边框,但您应该使用CSS属性边框来控制边框。
与上面引用的内容类似,应删除CSS边框;内联(style="border: none;"
)或样式表(iframe { border: none; }
)。< / p>
话虽如此,似乎没有一个iframe提供商没有使用frameborder="0"
。即使YouTube仍然使用该属性,甚至不提供样式属性,以使iframe向后兼容,因为不再支持frameborder。可以肯定地说,该属性不会很快发生。这为您提供了3个选项:
frameborder
,以确保其有效(暂时)
至于这个十年前答案的先前状态:
seamless
属性已经支持这么短的时间(或者某些浏览器根本不支持),MDN甚至没有将其列为不推荐使用的功能。不要使用它,也不要对下面的评论感到困惑。
答案 2 :(得分:16)
由于只有IE需要frameBorder
属性,因此还有另一种绕过验证器的方法。这是一种不需要Javascript或任何DOM操作的轻量级方法。
<!--[if IE]>
<iframe src="source" frameBorder="0">?</iframe>
<![endif]-->
<!--[if !IE]>-->
<iframe src="source" style="border:none">?</iframe>
<!-- <![endif]-->
答案 3 :(得分:6)
这有效
iframe{
border-width: 0px;
}
答案 4 :(得分:2)
如何通过在XHTML <a onclick="this.target='_blank'">
中粘贴目标属性来使用Javascript“愚弄”验证器的技术呢?
<iframe onload = " this.frameborder='0' " src="menu.html" id="menu"> </iframe>
或getElementsByTagName]("iframe")
1为页面上的所有iframe添加此属性?
没有测试过这个,因为我已经做了一些事情,这意味着没有在IE中工作的次数少于9! :) 所以,虽然我正在排序......:)
答案 5 :(得分:0)
我找到了一个很好的工作,可以让它在IE7 here中工作。它绕过了frameBorder属性的验证器,但保留了未来浏览器的css,如帖子中所述。
答案 6 :(得分:-5)
style="border:none; scrolling:no; frameborder:0; marginheight:0; marginwidth:0; "