Qual è la prassi migliore per impostare un'immagine di sfondo centrato e il 100% (in modo che riempie lo schermo, ma ancora mantiene le proporzioni) in tutti i browser?sfondo immagine centrata e al 100% in tutti i browser
risposta
Prelevare un vecchio post, poiché esiste un nuovo metodo per farlo con un buon supporto del browser.
Usa background-image
come questo:
background-size:cover;
background-position:center;
Questo non distruggerà le proporzioni dell'immagine, ma scalare nel miglior modo possibile, senza mai mostrare le barre nere (o che cosa mai sarebbe in background).
Il supporto del browser è quasi perfetto come potete vedere su Can I use it?. Opera Mini potrebbe essere un problema, ma il browser sarà probabilmente presto sostituito da Vivaldi.
In conclusione, penso che questa sia sicuramente la strada da percorrere, poiché è di gran lunga la soluzione più pulita e affidabile e molto semplice da modificare anche con JS.
Grazie per aver aggiornato un thread precedente. Questo è anche il modo in cui lo faccio oggi. – jamietelin
Non so come ottenere ciò impostandolo come immagine di sfondo. Tuttavia si potrebbe avere un immagine che viene posizionato in modo assoluto
<div style="position:absolute; left:0;right:0;bottom:0;top:0;display:table;vertical-align:middle;text-align:center">
<img style="max-width:100%; max-height:100%" />
</div>
Cosa significa 'display: table;'? – ANeves
per l'allineamento verticale al lavoro. può anche essere visualizzato: cella di tabella – Kasturi
Non penso che sia necessario per l'allineamento verticale per funzionare, l'allineamento verticale dovrebbe funzionare su qualsiasi elemento in linea: http://www.htmldog.com/reference/ cssproperties/vertical-align/ – ANeves
Si potrebbe usare CSS3 background-size
property, ma non sono sicuro quanto bene è supportato. Credo che la maggior parte di loro lo fanno, ma con prefisso:
-o-background-size
-webkit-background-size
-khtml-background-size
La pratica migliore è quella di non di fare quello che vuoi fare.
Specificando il 100% si allungherà (quindi distorcerà) l'immagine.
Il modo migliore per avere un semplice, sfondo centrato è come questo:
body {
background-image:url(Images/MyBG.png);
background-position:center top;
background-repeat:no-repeat
}
EDIT:
Ora è possibile target differenti risoluzioni e utilizzare un'immagine di sfondo diverso, a seconda delle dimensioni specificando un foglio di stile dipendente dalla risoluzione. È possibile utilizzare fogli di stile separati solo per definire l'elemento di uno sfondo con file diversi in ciascuno.
<link rel="stylesheet" media="screen and (min-device-width: 800px)" href="800.css" />
Il problema con questa soluzione è che ho bisogno di fare molte, molte immagini con diversa risoluzione. – jamietelin
Questo è un ottimo post su due metodi per ottenere questo look:
Ho fatto una versione modificata di Technique # 2, funziona come Okey, controllo la mia risposta alla domanda. – jamietelin
migliore soluzione sono riuscito a fare finora è la seguente;
//CSS
<style type="text/css">
body {
margin:0; padding:0;
}
html, body, #bg {
height:100%;
width:100%;
}
#bg {
position:absolute;
left:0;
right:0;
bottom:0;
top:0;
overflow:hidden;
z-index:0;
}
#bg img {
width:100%;
min-width:100%;
min-height:100%;
}
#content {
z-index:1;
}
</style>
//HTML
<body>
<div id="bg">
<img style="display:block;" src="bgimage.jpg">
</div>
<div id="content">
//Rest of content
</div>
</body>
Potrebbe essere il modo migliore? Qualcuno vede qualche problema nel farlo in questo modo?
Grazie per il vostro tempo!
- 1. Immagine allungata e centrata?
- 2. ridimensiona e ritaglia immagine centrata
- 3. Immagine PNG con rendering di trasparenza con sfondo bianco in tutti i browser?
- 4. lancio con immagine centrata iOS
- 5. Immagine di sfondo Stretch 100% Altezza di Div
- 6. CSS Div Immagine di sfondo Altezza fissa 100% Larghezza
- 7. immagine di sfondo di sfondo
- 8. sfondo sfumato di sfondo e immagine di sfondo DRYly
- 9. Div, Immagine di sfondo e mappa immagine
- 10. Con più immagini di sfondo definite in una classe CSS; I browser li scaricano tutti?
- 11. CSS: larghezza e sfondo del 100%?
- 12. CSS larghezza al 100% sul ridimensionamento del browser
- 13. Impostazione altezza del corpo al 100%
- 14. Object.watch() per tutti i browser?
- 15. CSS: allunga l'immagine di sfondo al 100% di larghezza e altezza dello schermo?
- 16. window.href per tutti i browser
- 17. Iphone/ipad sfondo immagine
- 18. toLocaleString() non supportato in tutti i browser?
- 19. iOS UIView immagine di sfondo
- 20. 100% Heights vs Browser Zoom
- 21. JButton immagine di sfondo
- 22. CSS: immagine di sfondo e riempimento
- 23. Android: Dimensione immagine di sfondo (in pixel) che supporta tutti i dispositivi
- 24. Seleziona rapidamente tutti gli elementi con immagine di sfondo css
- 25. 100 Altezza% sul browser mobile usando i CSS
- 26. Gradiente lineare e immagine url per browser mobile?
- 27. iReport Importa immagine di sfondo
- 28. Sfondo trasparente in immagine JPEG
- 29. CSS: ridimensionare l'immagine di sfondo in giù se più grande della finestra, mantenere al 100% altrimenti
- 30. Immagine personalizzata MPVolumeView Thumb non centrata verticalmente da iOS 5.1
Che cos'è "tutti i browser"? Include IE6? (Per il tuo bene, meglio non.) – ANeves
No, ma tutti i browser aggiornati :) Quindi, IE8, Firefox 3, Safari 4 e così via ... e con tutti i significati tutti i principali browser non Camino, Miro e presto. – jamietelin