iframe的frameborder属性 - html5

时间:2014-09-27 14:22:23

标签: html html5 iframe doctype

我正在阅读我的HTML书籍,并指出HTML5中不支持iframe的滚动和frameborder属性。本书中声明了以下代码:

<iframe
    src="http://maps.google.co.uk/maps?q=moma+new+york&amp;output=embed"
    width="450"
    height="350"
    frameborder="0"
    scrolling="no">
</iframe>

如果HTML5不支持frameborder,框架边框如何工作?如果我没有放入frameborder =&#34; 0&#34;一行,浏览器用图像周围的框架加载它,而frameborder =&#34; 0&#34;线取出框架。我认为HTML5不支持此属性?

与此同时,滚动似乎遵循HTML5中不支持的规则,因为该行根本没有任何区别(无论我将其设置为0还是1)。滚动条也未显示。

我正在学习HTML,但这对我来说太奇怪了。有人可以帮我澄清这个吗?我在Firefox和Chrome中测试过它。

3 个答案:

答案 0 :(得分:5)

这本书弄错了。规范(或者,在这种情况下,草案规范)不“支持”元素或属性;浏览器。规范定义元素和属性,它们提供了一致性条款,表明符合标准的浏览器必须支持元素和属性。这通常不排除符合标准的浏览器也支持其他元素和属性的可能性。此外,浏览器可能不符合要求;事实上,严格来说,可能没有浏览器符合任何 HTML规范或草案(尽管一致性可能“足够好”)。

对于frameborder和HTML5,HTML5建议的建议书指定浏览器期望支持该属性。条款10.4.3 Attributes for embedded content and images说某些CSS规则“预计将作为表示提示”,它们包括以下内容:

iframe[frameborder=0], iframe[frameborder=no i] { border: none; }

这意味着,如果iframe元素的frameborder属性值为0no(不区分大小写),则此对应于CSS设置{{1在该元素上(定义为具有特异性0,因此元素上的border: none的任何显式CSS设置都会覆盖它)。

如果这听起来很奇怪,请参阅Conformance requirements部分。 HTML5有双重标准,因为它禁止作者/文档使用某些结构,但需要或建议浏览器(和其他用户代理)支持它们。因此,如果您使用border,则您的文档不符合要求。然而,“预期”以特定方式得到支持。

这种情况原则上与frameborder属性相似。它的expected effect是值scrollingonscroll导致滚动条(如yes),值overflow: scrolloff }和noscroll阻止滚动条;当内容不适合(默认值)时,值no会导致滚动条。但是,Firefox,Chrome,IE似乎都没有支持无条件导致滚动条的值,只有Firefox支持阻止​​它们的所有值,而Chrome和IE只支持auto

这是可以理解的,因为no是浏览器传统支持的属性。其他值或多或少是HTML5草案中的一项发明,可能应该涵盖实际使用或支持的一些值。

这方面的底线是scrolling=no有效。要在内容不需要时导致滚动条,scrolling=no在实践中没用(相应的CSS设置有效)。

答案 1 :(得分:1)

  

HTML5不支持frameborder属性。使用CSS   代替。

     

frameborder属性指定是否显示边框   围绕着。

     

提示:最好不指定frameborder,并使用CSS   改为使用边框。

http://www.w3schools.com/tags/att_iframe_frameborder.asp

HTML5 and frameborder

HTML5 : Iframe No scrolling?

http://www.maxdesign.com.au/2011/03/10/iframe-scrollbars-and-html5/

答案 2 :(得分:0)

  

如果HTML5不支持frameborder,框架边框是如何工作的?

因为HTML 4定义了frameborder,并且浏览器还没有停止支持它。

你应该仍然使用CSS。