CSS / HTML5 эквивалентен iframe marginheight и marginwidth - PullRequest
6 голосов
/ 15 февраля 2012

Я делаю макет веб-сайта для компании, которая использует IDevAdManager для ротации рекламы на своем сайте. К сожалению, я не очень разбираюсь в этой области, поэтому не могу много рассказать об этом. Что я могу сказать наверняка, хотя, из-за природы генератора, источник внутри фреймов, которые он генерирует, не редактируется мной.

Теперь вот моя проблема.

Я пытаюсь сделать их новый веб-сайт совместимым с HTML5, но у меня возникла интересная проблема.

При добавлении фреймов из ротатора рекламы генерируются все старые устаревшие теги, которые использовались в предыдущих реализациях HTML.

Очевидно, что большая часть этого снимается с помощью CSS. Все, кроме атрибутов marginheight и marginwidth.

Вот где я дохожу до своей проблемы. Кажется, что нет CSS, эквивалентного или marginheight, или width margin, и нет никакого способа получить доступ к источнику внутри фреймов. Однако, оставляя их вне, вы не сможете правильно выровнять внутреннее содержимое.

Я надеюсь найти решение, которое будет как действительным HTML5, так и решит мою проблему.

Существует ли такая опция в настоящее время? Или мне придется использовать устаревшие теги, пока не будет разработано решение?

Ответы [ 3 ]

5 голосов
/ 01 декабря 2012

На самом деле это правильный вопрос.К сожалению, оказывается, что marginheight, marginwidth и frameborder - это свойства самого элемента iframe, а не свойства стиля элемента, см. 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 заключается в том, что в таблице стилей невозможно задать свойства marginheight, marginwidth и frameborder для iframe.

0 голосов
/ 26 июня 2019

Чтобы быть верным HTML5, документ внутри iframe должен иметь правильный стиль, а не сам iframe. Я не знаю, что такое adManager, но это зависит от того, как создается iframe.

Если он динамический и тот же самый, вы можете ввести его с помощью

document.getElementById("SomeIframe").contentDocument;

и установите поле по стилю на 0.

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

Если это не то же самое, что владелец документа должен установить это сам, и это никогда не является плохой идеей, а также в отношении HTML4.1 это будет считаться действительным.

0 голосов
/ 17 апреля 2012

Немного опоздал на вечеринку, но использование css для установки заполнения iframe должно помочь.

...