Применять поля ко всем, кроме iframe - PullRequest
2 голосов
/ 26 ноября 2008

У меня есть «страница», использующая «css a». Эта страница имеет поля, установленные в CSS. У меня также есть страница "b", использующая "css b". На этой странице также установлены поля в css, того же размера, что и в css a (10px).

Можно ли как-нибудь сделать так, чтобы при просмотре «страницы а» она имела поля, но при просмотре в iframe на «странице b» поля не применяются к странице «а» , Я знаю, что это довольно долгий путь, но основная проблема в том, что я получаю «двойную маржу» за содержание в iframe: поле от «страницы а», а затем поле от «страницы б»!

Я полагаю, что один из способов сделать это - установить на iframe поля 'page a' '. Есть ли какой-нибудь способ, которым я могу установить «css a», чтобы исключить iframe из полей, таким образом будут применяться только поля из css b, и страница все равно будет выровнена. это возможно?

Спасибо за любую помощь

Мэтт

Ответы [ 4 ]

1 голос
/ 28 ноября 2008

Прочитав ваше разъяснение , я не думаю, что вы можете сделать это чисто с помощью CSS. Я уверен, что CSS не может проходить через фреймы.

Вы можете сделать это с помощью JavaScript, однако, при условии, что оба документа находятся в одном домене.

Например, это должно работать на вашей странице примера. Добавьте следующий атрибут к <iframe>:

 onload="window.frames[0].document.body.style.margin = 0"

Это работает в Firefox 3 и Opera 9, по крайней мере. Но это явно старый школьный JavaScript, и, учитывая то, что мои браузеры немного нестабильны в том, какие варианты работают, я не уверен, насколько легко это будет применить к реальному сайту.

Люди, более сведущие в JavaScript, чем я, должны быть в состоянии помочь там.

Это может помочь еще немного:

1 голос
/ 26 ноября 2008

Я не знаю, как указать это из a.css, но если вы добавите в b.css следующее:

iframe { margin:-10px; }

... это может сработать.

РЕДАКТИРОВАТЬ: является ли iframe с a.html единственным элементом, содержащимся в b.html?
У вас есть тестовые файлы?

РЕДАКТИРОВАТЬ (2): В CSS вы бы указали его как

iframe#head { ...; }

Кроме того, я думаю, что вы можете комментировать ответы на свои вопросы. Я мог бы с моим .

1 голос
/ 27 ноября 2008

Мне очень жаль, я знаю, что все расстраиваются из-за публикации ответов, а не комментариев. Я новичок в переполнении стека и просто в обучении. Сжалься! Я понял, что я делаю неправильно, и теперь у меня есть вещь с открытым идентификатором, которую я постараюсь опубликовать в нужном месте. Боюсь, на этот раз я должен опубликовать ответ, так как я начал этот вопрос без моего открытого идентификатора и поэтому все еще не могу комментировать этот материал ....

ОК, теперь это «контрольный пример»: http://cart3.jaspers -sensations.com / test / pagea.html

Страница b: http://cart3.jaspers -sensations.com / test / pageb.html css a is: http://cart3.jaspers -sensations.com / test / stylea.css css b: http://cart3.jaspers -sensations.com / test / styleb.css

1 голос
/ 26 ноября 2008

Вы можете использовать Javascript для изменения полей, если страница находится внутри iframe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...