2008-11-26 9 views
2

J'ai une 'page a' en utilisant 'css a'. Cette page a des marges définies dans css. J'ai aussi une 'page b' en utilisant 'css b'. Cette page a également des marges en css, de la même taille que dans 'css a' (10px).Appliquer des marges à tous sauf iframe

Y a-t-il un moyen de faire en sorte que lorsque je regarde la page a elle-même, elle a des marges, mais dans un iframe sur la page b, les marges ne s'appliquent pas à la page '. Je sais que c'est un long chemin de demande mais le problème de base est que je reçois des 'marges doubles' pour le contenu de l'iframe: la marge de 'page a' et la marge de 'page b'!

Je suppose qu'une façon de le faire serait de définir l'iframe de ne pas être affecté par les marges de 'page a'. Est-il possible de définir 'css a' de façon à exclure l'iframe des marges, de cette façon seules les marges de css b s'appliqueraient et la page serait toujours alignée. est-ce possible?

Merci pour toute aide

Matt

+0

Pouvez-vous fournir un exemple de code (un cas de test) pour nous de regarder et bricoler? Merci. – strager

Répondre

1

Vous pouvez utiliser JavaScript pour modifier les marges si la page est à l'intérieur d'un iframe.

1

Je ne sais pas moyen de le spécifier à l'intérieur a.css, mais si vous ajoutez ce qui suit à b.css:

iframe { margin:-10px; } 

... il peut fonctionner.

EDIT: L'iframe avec a.html est-il le seul élément contenu dans b.html?
Avez-vous des fichiers de test?

EDIT (2): Dans css, vous préciserait comme

iframe#head { ...; } 

, je pense que vous pouvez commenter les réponses à vos questions. Je pourrais avec mine.

1

Je suis vraiment désolé je sais que tout le monde est très fâché de poster des réponses plutôt que des commentaires im nouveau pour déborder pile et apprendre juste. Aies pitié! J'ai compris ce que je faisais de mal et maintenant j'ai ce truc 'open id' que je vais essayer de poster au bon endroit. J'ai peur que cette fois si je dois poster comme réponse que j'ai commencé cette question sans mon ID ouvert et donc ne peux toujours pas commenter sur ce genre de choses ....

OK maintenant c'est à l'écart ici est un ' cas de test »: http://cart3.jaspers-sensations.com/test/pagea.html

page b est: http://cart3.jaspers-sensations.com/test/pageb.html est un css: http://cart3.jaspers-sensations.com/test/stylea.css b est css: http://cart3.jaspers-sensations.com/test/styleb.css

+0

ps la bannière aol n'est pas une tentative bon marché à la publicité. Je viens de le coller comme un exemple d'un autre iframe. – user41180

+0

Je ne sais pas si c'est le bon endroit pour 'commenter' mais InsDel j'ai essayé iframe # head et ça n'a pas marché non plus :( – user41180

+0

Je ne comprends vraiment pas quel est le problème donné à vos cas de test. – strager

1

Après avoir lu your clarification, je ne pense pas que vous pouvez le faire uniquement avec CSS. Je suis sûr que CSS ne peut pas traverser les cadres.

Vous devriez être en mesure de le faire en utilisant JavaScript, cependant, à condition que les deux documents sont sur le même domaine. Par exemple, cela devrait fonctionner sur votre page d'exemple. Ajoutez l'attribut suivant à la :

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

qui fonctionne dans Firefox 3 et Opera 9, au moins.Mais c'est décidément du JavaScript old-school, et vu que mes navigateurs étaient un peu inconstants dans lesquels les variantes fonctionnaient, je ne suis pas sûr de la facilité avec laquelle il serait possible de l'appliquer sur le vrai site.

Les personnes plus versées dans JavaScript que moi devraient être en mesure d'aider.

Cela pourrait aider un peu plus:

Questions connexes