2015-11-02 8 views
5

Ich suche eine alternative Methode des Object-Fit: Abdeckung für den Internet-Explorer, weil es nicht unterstützt. Grundsätzlich benutze ich das Objekt-fit: Cover, um Bilder nicht innerhalb eines div zu strecken. Ich suche im Internet nach Lösungen, aber alles, was ich gefunden habe, waren Lösungen, um das Bild von css anstatt vom img-Tag zu laden, so wie ich es mache. Hat jemand irgendeine alternative Methode, Bilder in einem div auf Internet Explorer nicht zu dehnenKann jemand mir helfen?Alternative Option von Objekt-fit: Abdeckung für Internet-Explorer

hier ist ein einfacher Code

HTML

<div class="grid-image"> 
    <img itemprop="image" alt="TEST" src="images/15.jpg"> 
</div> 

CSS

.grid-image { 
    width: 100%; 
    background-color: grey; 
    position: relative; 
    overflow: hidden; 
    height: 100%; 
} 

grid-image img { 
    object-fit: cover; 
    width: 100%; 
    height: 100%; 
    overflow: hidden; 
} 

Antwort

7

Ok ich es mit diesem HTML

gelöst

<div class="grid-image" style="background-image: url(images/15.jpg);"></div> 

CSS

-webkit-background-size: cover; 
    -moz-background-size: cover; 
    -o-background-size: cover; 
    background-size: cover; 
    background-repeat: no-repeat; 
    background-position: 50% 50%; 
+0

Was ist mit IE 7? Es unterstützt keine Objektabdeckung und es ist für HTML-Inline-Bilder, nicht Hintergrundbilder. –

+0

Dies ist eine Lösung nicht für IE7. Ich konzentriere mich nicht auf IE7 wegen seines Marktanteils, der 0,35% ist. –

+1

Was ist mit IE8? Ich habe etwas recherchiert und Leute benutzen IE8 und IE9-10 am meisten. –

3

Sie wirklich eine Alternative für ie9 + mit Modernizr erstellen können. So können Sie immer noch Objekt passen, wo es unterstützt wird. In diesem Beispiel verwende ich auch jQuery.

if (! Modernizr.objectfit) { 
    $('.grid-image').each(function() { 
     var $wrapper = $(this), 
     imgUrl = $wrapper.find('img').prop('src'); 
     if (imgUrl) { 
     $wrapper 
     .css('backgroundImage', 'url(' + imgUrl + ')') 
     .addClass('compat-object-fit') 
     .children('img').hide(); 
     } 
    }); 
} 

Offensichtlich, wenn jeder Benutzer will die Bahn mit Software aus dem 20. Jahrhundert sehen wird er eine 20. Jahrhundert Version des Web erhalten. Es ist, als würde man versuchen, die 70-mm-Szenen von Interstellar (oder einem modernen 16: 9-Film) in einem 4: 3-Röhrenfernseher zu sehen, man sieht nicht alle Funktionen der Docking-Szene.

+0

Leider unterstützt Edge nicht auch Objekt-Fit. .. also ich bin nicht nur altes Browserproblem:/Warum Microsoft, warum? Was Sie hier gezeigt haben, ist eine gute Lösung, wenn Sie das img-Tag verwenden müssen und Hintergrundbild nicht möglich/gewünscht ist. Danke :) –

+0

@ miss.emenems Objekt-Position wird nicht von Safari unterstützt .. Es ist nicht nur Microsoft ;-) – elyrico

Verwandte Themen