5

Applico a stackoverflow come ultima risorsa. Ho ricevuto questo bug ie6 mentre usavo l'immagine sullo sfondo del link. Sembra che ie6 scorra lo sfondo. Come posso evitarlo?IE6 background-position (?) Emissione

Ad un certo larghezza mostra come questo:
alt text http://img135.imageshack.us/img135/8849/badie1.png

E in un altro si vede così:
alt text http://img522.imageshack.us/img522/8180/badie2.png

IE7 & FF mostrare questo proprio come mi aspetto:
alt text http://img142.imageshack.us/img142/2296/goodie.png
I collegamenti sono posizionati all'interno del div che fluttua a destra.

<a href="/tr" class="menuLink" style="background-image:url(/img/tr.png);">TR</a> 
<a href="/eng" class="menuLink" style="background-image:url(/img/eng.png); margin-right:30px;">ENG</a> 
<a href="/logout" class="menuLink" style="background-image:url(/img/logout.png);"><?=$ui["exit"];?></a> 

    .menuLink { 
    font-family:"Tahoma"; 
    font-size:11px; 
    color:#003300; 
    text-decoration:underline; 
    font-weight: bold; 
    background-position:0% 50%; 
    background-repeat:no-repeat; 
    } 
    .menuLink:hover { 
    font-size:11px; 
    color:#047307; 
    text-decoration:underline; 
    font-weight: bold; 
    } 

Eventuali suggerimenti come evitare questo?

+0

Domanda simile: http://stackoverflow.com/questions/594870/fix-for-background-position-in-ie –

+3

Prova ad aggiungere "' zoom: 1' "allo stile degli elementi - hasLayout in IE può causare alcuni bug sconosciuti http://www.satzansatz.de/cssd/onhavinglayout.html.Non l'ho provato, ma questa è una delle prime cose che provo quando eseguo il debug di questo tipo di cose poiché spesso cambia il modo in cui lo sfondo ha reso – cryo

risposta

1

avrei trovato una soluzione che funziona per IE6 e utilizzare Conditional Comments per filtrare le altre versioni corrette per IE7, FF, ecc vorrei anche evitare di usare percentuali nel background-position per IE6 (reference).

+0

Ho provato a usare background-position:center left; invece. Mostra lo stesso. Quindi, esattamente, dovrei commentare in modo condizionale ... – turezky

+0

Prova ad usare un valore di pixel dato che tutto ciò di cui hai a che fare sono pixel. –

+0

Continuerò a hackerare. Una volta ottenuta la giusta combinazione di stili, impacchettali e usa i commenti condizionali per ignorare qualsiasi cosa. –

0

Change

background-position:0% 50%; 

a

background-position:50% 50%; 

e aggiungere

background-repeat: no-repeat; 

Ciò centrare l'immagine horizontially che in verticale e fermare l'immagine da piastrelle.

+0

Se faccio questo, la mia immagine va dietro al testo :(E centri lì, ho bisogno delle immagini prima del testo ... – turezky

3

Mi sono imbattuto in questo problema e ho scoperto che l'utilizzo di overflow:hidden sull'elemento con l'immagine di sfondo ha risolto molti dei miei problemi di IE6 (anche se non tutti).

+0

Ha risolto questo particolare problema? :) – turezky

+0

Risolto per me! – strongriley

1

Come consigliato in this answer-a somewhat related question, mi consiglia di utilizzare background-position-x e background-position-y invece di background-position per IE (pre-IE8).

+0

Purtroppo, questo non funziona :( – turezky

1

Non è possibile utilizzare la posizione di sfondo con alcuna correzione * ie6 .png, la soluzione è rendere l'immagine una gif o una png a 8 bit.

* Nessuno che io uso/provato

+1

http: //www.dillerdesign .com/experiment/DD_belatedPNG/- Mantiene le posizioni in background: è il miglior IMO di PNG Fix. Ma azzarderei a indovinare che il fix di PNG sta uccidendo anche la posizione di sfondo. – Mig

+0

@MiG Ho usato la correzione del file htc [link] (http : //www.twinhelix.com/css/iepngfix/) che non ha mantenuto le posizioni in background. Il DD_belatedPNG mantiene. – Harish

+0

Sono stato in grado di ottenere m y PNG a 32 bit per allineare perfettamente utilizzando l'overflow: nascosto come consigliato sopra. – strongriley

1

Se avete padding-top o padding-bottom nel vostro elemento con immagini di sfondo e background-positioning - in IE6 è possibile modificare la padding-top: 16px; per margin-top: 16px; e si risolve il problema.

Non spinge via altri elementi e raddoppia più il padding.
Altrimenti, in IE7 e IE8 l'attributo padding funziona.