Immagine di sfondo CSS - Qual è l'uso corretto?


145

Qual è l'uso corretto della proprietà immagine di sfondo CSS? Le cose chiave che sto cercando di capire è

  1. Deve essere tra virgolette cioè: background-image: url('images/slides/background.jpg');
  2. Può essere un percorso relativo (come sopra) o deve essere un URL completo?
  3. Qualsiasi altro punto di cui dovrei essere consapevole per assicurarmi che funzioni correttamente su tutti i browser conformi agli standard.


Solo una nota: in Netbeans 7 se lasci non quotato il percorso all'interno di url (), riceverai un avviso "URL token valore imprevisto" Se inserirai il percorso tra virgolette singole o doppie, l'avviso scomparirà.
kante,

Questo problema è stato risolto in 7.3. netbeans.org/bugzilla/show_bug.cgi?id=209067
caiosm1005

Risposte:


157

Il percorso può essere completo o relativo (ovviamente se l'immagine proviene da un altro dominio deve essere piena).

Non è necessario utilizzare le virgolette nell'URI; la sintassi può essere:

background-image: url(image.jpg);

O

background-image: url("image.jpg");

Tuttavia, da W3 :

Alcuni caratteri che compaiono in un URI non quotato, come parentesi, caratteri di spazi bianchi, virgolette singole (') e virgolette doppie ("), devono essere sottoposti a escape con una barra rovesciata in modo che il valore URI risultante sia un token URI:' \ (', '\)'.

Quindi in casi come questi è necessario utilizzare virgolette o virgolette doppie o sfuggire ai caratteri.


48
  1. No non hai bisogno di preventivi.

  2. Si, puoi. Tuttavia, tieni presente che gli URL relativi vengono risolti dall'URL del tuo foglio di stile.

  3. Meglio non usare le virgolette. Penso che ci siano clienti che non li capiscono.


28

1) mettere le virgolette è una buona abitudine

2) può essere un percorso relativo, ad esempio:

background-image: url('images/slides/background.jpg');

cercherà la cartella delle immagini nella cartella da cui è stato caricato il CSS. Pertanto, se le immagini si trovano in un'altra cartella o all'esterno dell'albero delle cartelle CSS, è necessario utilizzare il percorso assoluto o relativo al percorso principale (a partire da /)

3) dovresti usare la dichiarazione completa per l'immagine di sfondo per farla funzionare in modo coerente nei browser conformi agli standard come:

background:blue url('/images/clouds.jpg') no-repeat scroll left center;

1
Non intendi backgroundinvece background-image?
Gumbo,

2
perché a volte hai spazio nel nome dell'immagine o nel nome del percorso e ciò può causare problemi.
TheVillageIdiot

@TheVillageIdiot è ancora in terza linea background-imagenon è quello che dovrebbe essere backgroundcome suggerito da @Gumbo
KNU,

5

I percorsi relativi vanno bene e le virgolette non sono necessarie. Un'altra cosa che può aiutare è usare la backgroundproprietà "scorciatoia" per specificare un colore di sfondo nel caso in cui l'immagine non si carichi o non sia disponibile per qualche motivo.

#elementID {
    background: #000 url(images/slides/background.jpg) repeat-x top left;
}

Si noti inoltre che è possibile specificare se l'immagine si ripeterà e in quale direzione (se non si specifica, il valore predefinito è ripetere in orizzontale e verticale) e anche la posizione dell'immagine rispetto al suo contenitore.


4

Se le tue immagini sono in una directory separata del tuo file css e vuoi che il percorso relativo inizi dalla radice del tuo sito web:

background-image: url('/Images/bgi.png');

Sono venuto non cercavo, posso usare un percorso relativo ... Stavo cercando come usare un percorso relativo ... +1 per essere chiaro su dove inizia il percorso.
io_

1

basta controllare la struttura della directory dove esattamente l'immagine è supponiamo che tu abbia una cartella css e una cartella images al di fuori della cartella css quindi dovrai usare "../ images / image.jpg" e funzionerà come ha fatto per me assicurati che struttura di directory.


1

non hai davvero bisogno di virgolette se diciamo che stanno usando l'immagine dal tuo file CSS che può essere

{background-image: url(your image.png/jpg etc);}


0

Dai un'occhiata alle rispettive pagine di riferimento del sitepoint per l' immagine di sfondo e gli URI

  1. Non deve essere tra virgolette ma puoi usarli se vuoi. (Penso che IE5 / Mac non supporti le virgolette singole).
  2. È possibile sia relativo che assoluto; un percorso relativo è relativo al percorso del file css.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.