CSS/HTML5 相当于 iframe marginheight 和 marginwidth

发布于 2025-01-05 20:37:59 字数 507 浏览 1 评论 0原文

我正在为一家公司进行网站布局,该公司使用 IDevAdManager 在其网站上轮播广告。不幸的是,我不是该领域的专家,所以我不能对此给出太多信息。但我可以肯定地说,由于生成器的性质,它生成的 iframe 内的源代码不可由我编辑。

现在,这是我的问题。

我正在尝试使他们的新网站兼容 HTML5,但我遇到了一个有趣的问题。

当从广告轮播器添加 iframe 时,它​​会生成以前的 HTML 实现所使用的所有旧的、已弃用的标签。

显然,大部分内容都可以通过 CSS 移除。但是,除了 marginheight 和 marginwidth 属性外。

这就是我遇到问题的地方。似乎没有相当于 marginheight 或 margin width 的 CSS,并且无法访问 iframe 中的源代码。然而,将它们排除在外会导致内部内容无法正确排列。

我希望找到一个既有效的 HTML5 又能解决我的问题的解决方案。

目前是否存在这样的选择?或者在设计解决方案之前我是否必须使用已弃用的标签?

I am doing a website layout for a company who uses IDevAdManager for rotating ads on their site. Unfortunately, I am not much of an expert in that field, so I can't give much on that. What I can say for sure though, due to the nature of the generator, the source inside the iframes it generates are not editable by me.

Now, here is my problem.

I am trying to make their new website HTML5 compliant, but I have reached an interesting issue.

When it comes to adding the iframes from the ad rotator, it generates all of the old, depreciated tags used by previous implementations of HTML.

Obviously, most of this is removable with CSS. All except, however, for the marginheight and marginwidth attributes.

Here is where I reach my problem. There does not seem to be a CSS equivalent to either marginheight or margin width, and there is no way to access the source within the iframes. However, leaving them out prevents the inner content from lining up properly.

I am hoping to find a solution that is both valid HTML5, and solves my problem.

Does such an option currently exist? Or will I have to use the deprecated tags until a solution is designed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

渔村楼浪 2025-01-12 20:37:59

实际上这是一个有效的问题。不幸的是,事实证明 marginheight、marginwidth 和 frameborder 是 iframe 元素本身的属性,而不是元素的 style 属性,请参阅 http://www.w3schools.com/jsref/prop_frame_marginheight.asp

因此,例如,您可以在 JavaScript 中执行此操作:-

document.getElementById("SomeIframe").marginheight = "0";

但您不能执行此操作

document.getElementById("SomeIframe").style.marginheight = "0";

,并且设置边距没有任何效果(即您仍然会在 iframe 元素中获得默认边距):-

document.getElementById("SomeIframe").style.margin = "0";

因此 cbright6062 问题的答案是,无法在样式表中设置 iframe 的 marginheight、marginwidth 和 frameborder 属性。

Actually this is a valid question. Unfortunately it turns out that the marginheight, marginwidth and frameborder are properties of the iframe element itself, not the element's style property see http://www.w3schools.com/jsref/prop_frame_marginheight.asp

So, for example, you can do this in JavaScript:-

document.getElementById("SomeIframe").marginheight = "0";

but you CANNOT do this

document.getElementById("SomeIframe").style.marginheight = "0";

and setting the margin has NO EFFECT (i.e. you will still get the default margin in the iframe element):-

document.getElementById("SomeIframe").style.margin = "0";

So the answer to cbright6062's question is that there is no way to set the marginheight, marginwidth and frameborder properties of an iframe in a style sheet.

微暖i 2025-01-12 20:37:59

要使 HTML5 有效,iframe 内的文档必须获得正确的样式,而不是 iframe 本身。
我不知道 adManager 的事情,但这取决于 iframe 的创建方式。

如果它是动态的并且是同源的,您可以输入它

document.getElementById("SomeIframe").contentDocument;

并将样式边距设置为0。

let myFrameBody = document.getElementById("SomeIframe").contentDocument.querySelector('body');
myFrameBody.style.margin = 0;

如果它不是同源的,则文档的所有者必须自己设置它,
这绝不是一个坏主意,而且对于 HTML4.1 来说,这也被认为是有效的。

To be HTML5 valid the document inside the iframe has to get the correct style, not the iframe itself.
I don't know that adManager thing but it depends on how the iframe is created.

If it is dynamic and sameorigin you can enter it by

document.getElementById("SomeIframe").contentDocument;

and set margin by style to 0.

let myFrameBody = document.getElementById("SomeIframe").contentDocument.querySelector('body');
myFrameBody.style.margin = 0;

If it is not sameorigin the owner of the document has to set this by himself,
and that is never a bad idea, and also regarding HTML4.1 this would be considered valid.

攒一口袋星星 2025-01-12 20:37:59

虽然有点晚了,但使用 css 来设置 iframe 的填充应该可以解决问题。

Bit late to the party, but using css to set the padding of the iframe ought to do the trick.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文