2014-12-01 6 views
20

Ich habe in einer Webseite, die reagiert. Es nutzt Medienabfragen.Medienabfragen funktionieren nicht in einem iframe

Aber die gleiche Seite in einem Iframe geladen funktioniert nicht.

Betrachten Sie zum Beispiel meine Webseite, habe ich Hintergrundfarbe als rot angegeben, wenn die Bildschirmbreite weniger als 640px ist.

@media only screen and (max-device-width : 640px) { 

    .header-text { 
     background-color: red; 
    } 
} 

Also, wenn ich das Fenster in einem neuen Tab laden und der Browser machen Breite von weniger als 640px, wird die Hintergrundfarbe rot.

Aber das gleiche Fenster, wenn es in einem Iframe von 320 * 480 Dimensionen geladen wird, hat keine Hintergrundfarbe rot.

In kurzen Medienabfragen funktionieren nicht in einem Iframe.

Pls Hilfe.

+0

Set-Ansichtsfenster in den übergeordneten Fenster. Lösung ist hier: http://stackoverflow.com/a/20838525/5016546 –

Antwort

24

es auf diese Weise versuchen, statt device Ziel nur die width

ändern

@media only screen and (max-device-width : 640px) { 

zu

@media only screen and (max-width : 640px) { 

Auch es sowohl min Ziel wird empfohlen und max View-Port-Breite, wenn Sie vermeiden möchten, zu prüfen g Reihenfolge der Medienabfragedeklarationen in Ihrem Stylesheet

@media screen and (min-width: 320px) and (max-width: 640px) { 
    .header-text { 
     background-color: blue; 
    } 
} 
+5

Das funktioniert bei mir mit "max-device-width" aber nicht mit "max-width". Bei "max-width" zählt die Größe des Iframes. – user2267379

4

Ich musste die iframes-Breite anvisieren. (Kann nicht in allen Situationen funktionieren)
Aber was ich tat, war die iframe 100% Breite machen und dann wäre es mit der Fenstergröße ändern, so alles, was ich tat, war Ziel der Pixel des iframe statt das Fenster

+2

Vielen Dank, arbeitete auch für mich. –

4

einbeziehen Der Meta-Balg in den HTML-Code, der Ihren iframe lädt, und es sollte funktionieren, zumindest auf Android-Geräten.

<meta name="viewport" content="width=device-width, initial-scale=1">

+0

Beachten Sie jedoch, dass Sie dies benötigen, um es auf iOS zu verwenden: https://stackoverflow.com/questions/23083462/how-to-get-an-iframe-to-be-responsive-in-ios-safari – Kiko