我不理解HTML 5。一个验证器说:
iframe元素的边沿宽度属性已经过时。使用CSS代替。 iframe元素上的边沿高度属性已经过时。使用CSS代替。
但根据这个被接受的答案的说法:
无法在样式表中设置iframe的边框高度、边框宽度和框边框属性。
为什么他们要我做一些根本不可能的事?
要么将有效的东西放在规范中,要么想出一个真正的替代方案。他们似乎反对某些东西,而他们的替代方案却行不通。
我在这里错过了什么?
发布于 2014-08-14 17:10:45
HTML5规范确实描述了边缘高度和边缘宽度属性是如何工作的。,它说的是:
对于下表中的每个属性,给定一个body元素,存在的第一个属性映射到body元素上的像素长度属性。如果找不到属性的任何属性,或者不能成功地解析找到的属性的值,则应该对该属性使用默认值8px。 属性源‘边缘-顶部’主体元素的边缘高度属性身体元素的容器框架元素的边缘高度属性身体元素的顶部边界属性‘边-右’身体元素的边缘宽度属性身体元素的边缘宽度属性身体元素的右边边缘属性‘边缘-底部’身体元素的边缘高度属性身体元素的边缘属性容器框架元素的边缘高度属性身体元素的底部边界属性‘边缘-左’身体元素的边缘宽度属性身体元素的边缘宽度属性身体元素的左边边界属性 如果主体元素的文档浏览上下文是嵌套浏览上下文,而该嵌套浏览上下文的浏览上下文容器是frame或iframe元素,那么body元素的容器框架元素就是该框架或iframe元素。否则,不存在容器框架元素。
因此,要达到同样的效果,您必须在包含的页面的主体元素上设置CSS边距值,而不是设置iframe元素的CSS边距值。
然后,规范解释了为什么浏览器中不支持边缘宽度和边沿高度(甚至不应该):
警告!上述要求意味着一个页面可以使用例如iframe来更改另一个页面的页边距(包括一个来自另一个原点的页)。这是一种潜在的安全风险,因为在某些情况下,它可能允许攻击来设计一个页面不是按照作者的意图呈现的情况,可能是为了钓鱼或以其他方式误导用户。
发布于 2014-08-14 15:05:07
我倾向于说,你应该始终对W3C的信息持怀疑态度。
如果您想将其归结为文字(它们是正确的),那么在CSS中不存在直接等效项,但是,CSS确实提供了现有的替代方案(这就是为什么两个属性都不支持,它们是多余的)。
marginheight是顶部和底部的边距,所以只需使用margin-top和margin-bottom...the,对于marginwidth也是如此,使用margin-left和margin-right (或者在margin中一起指定)
至于frameborder,只需在CSS中设置iFrame的border。
<iframe marginheight='10' marginwidth=20' frameborder='0'>
可以通过以下方式在HTML/CSS中完成:
<iframe>
iframe{
margin:10px 20px;
border:none;
}https://stackoverflow.com/questions/25311231
复制相似问题