Je développe un widget qui pourrait être intégré à la page comme une iframe (iframe sera injecté et stylé via JavaScript). Iframe doit être placé dans le coin inférieur droit. Je ne peux contrôler que le style d'un iframe.
J'ai créé la page de démonstration suivante qui démontre le problème de la page d'hôte de test: p>
p>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Hello world!</title> <meta name="viewport" content="width=device-width"/> </head> <body> <p id="greeting" style="width:1000px">Loading...</p> <iframe src="http://www.w3schools.com" style="position: fixed; bottom: 5%; width: 200px; height: 200px; background: transparent; border: 0px none; overflow: hidden; z-index: 1000000;right: 5%;"></iframe> </body> </html>
4 Réponses :
Basé à partir de mon enquête, la zone grise qui apparaît dans l'émulateur de chrome est causée par le style de la balise HTML paragraphe: Je crois que la zone grise apparaît parce que vous avez Un style de Vous pouvez vérifier Il avec l'échantillon ci-dessous: p> p> largeur: 1000px code> dans l'endroit où la taille totale de l'émulateur,
: 1000px code> style dans l'élément de paragraphe, vous pouvez voir que le cadre est correctement affiché dans le coin inférieur droit de l'écran. P>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Hello world!</title>
<meta name="viewport" content="width=device-width"/>
</head>
<body>
<p id="greeting" style="width: 100px">Loading...</p>
<iframe src="http://www.w3schools.com" style="position: fixed; bottom: 5%; width: 200px; height: 200px; background: transparent; border: 0px none; overflow: hidden; z-index: 1000000;right: 5%;"></iframe>
</body>
</html>
Salut, merci mais ça ne m'ade pas beaucoup. Quand j'ai préparé cet exemple, j'ai aussi remarqué cela. Le problème est que (comme je l'ai déjà dit), que je ne peux pas changer la page principale, car je ne suis pas propriétaire de la page -> Je ne développe qu'un widget qui sera intégré à la page via iframe (et JS) .
J'ai aussi essayé une autre chose. Sur cet exemple, j'ai supprimé mon iframe et mon widget de Zopim (Chat en ligne) intégré, qui utilise également un positionnement fixe. Et cela ne fonctionne pas non plus (sa cache dans la zone grise). Si je supprime soit la balise META (Viewport) ou la largeur du paragraphe que visible. Il semble que cette combinaison cause des problèmes -> D'autre part, il est évident que la conception réactive et la largeur fixe n'est pas la voie à suivre. Donc, la question est la suivante: est-il possible de surmonter ce problème sans modifier la page du propriétaire ou non?
Intéressant! La balise Meta associée à la largeur du paragraphe semble rendre le corps à l'échelle. Mais l'élément fixe est toujours fixé dans toute la fenêtre. Donc, sa position est hors du corps.
Je n'ai pas essayé cela, mais si - au lieu de définir la position comme `bas: 5%; Droite: 5% - Vous calculez la position en haut à gauche en fonction de la largeur de la fenêtre et de la taille de la fenêtre. Quelque chose comme:
P> 1000px code> largeur a été donné à
#greeting code>, c'est pourquoi l'élément hors de votre largeur mobile, vous pouvez simplement résoudre ce problème comme à l'aide de requêtes multimédias.
992 Largeur Code> Démarrage de la vue Portrait des périphériques
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Hello world!</title>
<meta name="viewport" content="width=device-width"/>
</head>
<body>
<p id="greeting" style="width:1000px">Loading...</p>
<iframe src="http://www.w3schools.com" style="position: fixed; bottom: 5%; width: 200px; height: 200px; background: transparent; border: 0px none; overflow: hidden; z-index: 1000000;right: 5%;"></iframe>
</body>
</html>
Comme je l'ai déjà dit, je ne développe que le widget (un iframe), donc je n'ai donc pas accès ni je ne peux pas modifier la page mère. Il semble que cette page particulière soit un peu "impair" - il a une étiquette de visualisation pour la conception réactive, mais elle n'est pas réactive (largeurs fixes). Comme je l'ai enquêté, il n'est pas possible de résoudre mon problème sans changer la mise en page / CSS de la page mère (que je ne peux pas), le propriétaire d'une page devra résoudre ce problème (s'il souhaiterait avoir notre widget). J'accepterai cette réponse même si cela ne résout pas mon problème, mais je saurai comment soutenir ce type de problèmes.
voir Ajouter un style suivant pour gérer le navigateur mobile P> Le mobile rend le HTML En mode compatible mobile qui injecte son propre style aux éléments de largeur supérieurs. C'est pourquoi la page fonctionne de manière inattendue en mode compatible mobile. Si vous le gérez dans votre HTML lui-même, il laisse le style de votre page comment vous aviez l'intention de voir. p> C'est pourquoi si vous cliquez sur p> Demander le site de bureau Code> dans Chrome Réglage de votre code elle-même fonctionne bien p>
<html>
<head>
<meta charset="UTF-8"/>
<title>Hello world!</title>
<meta name="viewport" content="width=device-width"/>
<style>
/* mobile phone */
@media all and (max-width: 768px) {
#greeting {
width:100% !important;
}
}
</style>
</head>
<body>
<p id="greeting" style="width:1000px">Loading...</p>
<iframe src="http://www.w3schools.com" style="position: fixed; bottom: 5%; width: 200px;
height: 200px; background: tranparent; border: 0px none; overflow: hidden; z-index: 1000000;right:
5%;"></iframe>
</body>
</html>
Pouvez-vous fournir un nom du périphérique mobile dans lequel l'iframe n'est pas visible? Je voudrais aussi vérifier aussi
@PhilipDomingo: J'ai mis à jour la question ci-dessus.
Qu'en est-il d'intégrer votre widget sur