Ich habe eine Containerseite, die einen iframe lädt, der auf 99% Breite und Höhe eingestellt ist. Der Inhalt des Iframes reagiert auf Medienabfragen. Die Container-Seite reagiert auch auf Medienanfragen, aber ich denke nicht, dass das hier besonders wichtig ist.iPhone 5 Medienabfragen funktionieren nicht in Iframe
Dies funktioniert gut auf modernen Browsern und auf iPhone 6, aber es funktioniert nicht auf iPhone 5. Die 5 ignoriert die Medienabfragen vollständig.
Sie können dies mit Chrome iPhone 5 Emulator testen und das Problem ist sofort sichtbar. Mit dem folgenden Beispielcode sollte der Absatz die Rahmenfarbe # f00 haben, aber stattdessen #ccc bleiben. Ich habe auch auf einem echten iPhone 5 verifiziert und es entspricht der Chrome-Emulation.
Hinweis: Wenn Sie den Iframe-Inhalt auf einer separaten Seite laden, funktionieren die Medienabfragen problemlos auf dem iPhone 5 - das Problem tritt nur auf, wenn es in einen Iframe geladen wird.
Hat jemand einen Weg gefunden, das funktioniert? Benötige ich eine Art Javascript-Hack?
Container Source Code (container.htm):
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<iframe src="iframeContent.htm" style="border: none; height: 99%; width: 99%; margin: 0px; padding: 0px;"></iframe>
</body>
</html>
Iframe Source Code (iframeContent.htm):
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
p { border: 1px solid #ccc; }
@media screen and (min-width: 310px) {
p { border: 1px solid #f00; }
}
@media screen and (min-width: 350px) {
p { border: 1px solid #00f; }
}
</style>
</head>
<body>
<p>here is a paragraph of content.</p>
</body>
</html>