2016-05-13 4 views
0

Ich habe eine Svg für ein Einkaufswagen-Symbol und kann es mit CSS zu stylen. Ich möchte die Farbe des Wagens basierend auf der Fenstergröße ändern. Das Problem ist @media liest die Größe des Bildes, um die Medienabfrage anstelle des Fensters zu testen.Wie css Medienabfragen in Svg basierend auf dem Bildschirm nicht img Größe verwenden?

Die Größe des Bildes ist 40 x 40px. Da die Größe des Bildes konstant bleibt, wird die Medienabfrage niemals aktiv. Gibt es eine Möglichkeit, diese Umgehungsbildgröße zu erstellen und die Bildschirmbreite wie eine normale Medienabfrage zu lesen?

Ich rufe die svg in meinem html wie folgt aus:

<object id="cartIcon" type="image/svg+xml" data="Assets/icon-shopping-cart.svg"></object> 

Antwort

0

ich den Stil über JS gelten und verwenden clientWidth und clientHeight den Nachweis zu tun.

var width = document.documentElement.clientWidth; 
var height = document.documentElement.clientHeight; 

if (width === 456 || height === 123) { 
    var element = document.getElementById("Mobile"); 
    element.style.fill = "white"; 
} 
+0

Dies ist eine nette Alternative, aber sagen Sie, es ist nicht möglich für die Medienabfrage Bildschirmgröße in der Svg zu lesen? –

+1

Nun, 'min-width' und' max-width' sind traditionell, wie Sie die Fenstergrößenerkennung mit Medienabfragen in CSS durchführen. Wenn diese nicht genau genug sind, müssen Sie sich wahrscheinlich auf JS stützen. Es könnte aber auch einen anderen Weg in CSS geben, sehen Sie, ob Sie eine bessere Antwort bekommen. – staypuftman

Verwandte Themen