2011-05-05 20 views
16

So che l'IE7 non supporta background-size cover.css copertina in formato sfondo in Internet Explorer 7

Ho cercato nel web alcune soluzioni, ma l'unica cosa che ho è che dovrei mettere uno img con width: 100% e height:100% e metterlo come sfondo.

Questa è l'unica soluzione? Ho visto alcune soluzioni con -ms-filter ma non ha funzionato. Qualcuno ha un'altra soluzione?

1 cosa speciale: Ho più di 1 div che ha questa proprietà di copertina background-size.

In firefox tutto funziona (che sorpresa).

Edit1: Il mio codice simile a questo:

<div class="section" id="section1">here should be the first picture as the background!!</div> 
<div class="section" id="section2">here should be the second picture as the background!!</div> 
<div class="section" id="section3">here should be the third picture as the background!!</div> 
+4

leggi questo articolo http://css-tricks.com/perfect-full-page-background-image/ – sandeep

+0

@sandeep, intendi la prima ie-fix? – eav

+0

@Sai: Ehm intendevo la posizione ... comunque dovrebbe funzionare in es. tutti sanno cosa intendo .. – eav

risposta

4

Lascia la tua immagine una classe di streched (o qualsiasi altra cosa) e nel CSS mettere questo:

img.stretched { 
min-height: 100%; 
min-width: 1024px; 
width: 100%; 
height: auto; 
position: fixed; 
top: 0; 
left: 0; 
} 

Assicurarsi di mettere il vostro tag img proprio sotto il tag <body>.

+0

non ho immagine in html. è la proprietà css ... – eav

+0

@eav: se davvero non vuoi inserire un tag img nel tuo documento, fallo almeno in modo dinamico tramite Javascript. Altrimenti rimarrai con il supporto parziale del browser. Per esempio con jQuery si potrebbe fare: '$ (" # section1 "). Append (" ");' – Krimo

+0

Sì, sì giusto ... Che tristezza che ci sia ancora un utente di Internet Explorer 7 ... comunque potrei anche inserire l'immagine nella sezione 1. non è un mio problema. :-) – eav

1

due idee : 1. Attualmente sto provando a vedere se questo filtro aiuta:

AlphaImageLoader

  1. Se la dimensione dello sfondo non è possibile in IE, forse si dovrebbe fare in modo che l'immagine di sfondo contenga due immagini. La prima immagine dovrebbe essere posizionata in un modo, quindi viene automaticamente visualizzata correttamente in IE senza dover definire la dimensione dello sfondo. Per tutti gli altri browser è possibile utilizzare la dimensione dello sfondo e la posizione per spostare la seconda immagine nella posizione corretta. Provando questo ora ...
+0

I filtri hanno effetti imprevedibili quando sono impostati sul tag body o quando vengono utilizzati font personalizzati. Il tuo chilometraggio può variare. –

11

Utilizzando Modernizr è possibile scoprire ciò che il browser dell'utente è in grado di.

Installare Modernizr collegandolo nell'intestazione

<script src="http://www.modernizr.com/downloads/modernizr-latest.js"></script> 

E nel tag HTML,

<html class="no-js"> 

Utilizzando i CSS potete stile la pagina come il browser lo supporta - Check the documentation per quello rilevamento è supportato.In questo caso, vogliamo che il background-size classe

Nel file CSS - Per i browser senza background-size (AKA solo IE)

.no-background-size #image{ 
background-image: url(lol.png); 
min-height: 100%; 
min-width: 100%; 
} 

e questo per i browser che:

.background-size #image{ 
background-image: url(lol.png); 
background-size: cover; 
} 

L'uso di questo metodo è più conforme agli standard, perché in futuro tag come min-height: 100% potrebbero non essere utilizzati.

5

controllare questo post per una risposta:

How do I make background-size work in IE?

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/someimage.png',sizingMethod='scale')"; 

funziona perfettamente in IE8

Problemi correlati