gpt4 book ai didi

html - iframe 的 frameborder 属性 - html5

转载 作者:行者123 更新时间:2023-11-28 04:54:19 29 4
gpt4 key购买 nike

我正在阅读我的 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 仍然有效?如果我不放入 frameborder="0"行,浏览器会在图像周围加载一个框架,而 frameborder="0"行会取出框架。我认为 HTML5 不支持此属性?

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

我目前正在学习 HTML,但这对我来说太奇怪了。有人可以帮我澄清一下吗?我在 Firefox 和 Chrome 中都对此进行了测试。

最佳答案

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

对于 frameborder 和 HTML5,HTML5 Proposed Recommendation 指定浏览器希望支持该属性。条款 10.4.3 Attributes for embedded content and images表示某些 CSS 规则“应作为表示提示应用”,它们包括以下内容:

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

这意味着如果 iframe 元素的 frameborder 属性的值为 0no(情况不敏感),这对应于该元素上的 CSS 设置 border: none(定义为具有特异性 0,因此元素上 border 的任何显式 CSS 设置都会覆盖它)。

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

这种情况在原理上与scrolling 属性类似。它的expected effectonscrollyes 会导致滚动条(如 overflow: scroll),值 offnoscrollno 防止滚动条;和值 auto 在内容不适合时导致滚动条(默认值)。然而,Firefox、Chrome、IE 似乎都不支持无条件导致滚动条的值,只有 Firefox 支持所有阻止滚动条的值,而 Chrome 和 IE 仅支持no

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

底线是 scrolling=no 有效。要在内容不需要时也产生滚动条,scrolling=yes 在实践中没有用(相应的 CSS 设置有效)。

关于html - iframe 的 frameborder 属性 - html5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26075624/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com