CSS Hintergrundbild - Was ist die richtige Verwendung?

145

Was ist die korrekte Verwendung der CSS-Hintergrundbildeigenschaft? Die wichtigsten Dinge, die ich zu verstehen versuche, sind

  1. Muss es in Anführungszeichen stehen, dh: background-image: url('images/slides/background.jpg');
  2. Kann es ein relativer Pfad sein (wie oben) oder muss es eine vollständige URL sein?
  3. Alle anderen Punkte, die ich beachten sollte, um sicherzustellen, dass sie in standardkonformen Browsern ordnungsgemäß funktionieren.
Robert MacLean
quelle
Nur eine Anmerkung: Wenn Sie in Netbeans 7 den Pfad in url () nicht in Anführungszeichen setzen, erhalten Sie eine Warnung "Unerwartete Wert-Token-URL". Wenn Sie den Pfad in einfache oder doppelte Anführungszeichen setzen, verschwindet die Warnung.
Kant
Dies wurde in 7.3 behoben. netbeans.org/bugzilla/show_bug.cgi?id=209067
caiosm1005
Die Anführungszeichen finden Sie unter Ist das Zitieren des Werts von url () wirklich notwendig?
Unor

Antworten:

157

Der Pfad kann entweder voll oder relativ sein (wenn das Bild aus einer anderen Domäne stammt, muss es natürlich voll sein).

Sie müssen keine Anführungszeichen in der URI verwenden. Die Syntax kann entweder sein:

background-image: url(image.jpg);

Oder

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

Ab W3 :

Einige Zeichen in einem nicht in Anführungszeichen gesetzten URI, z. B. Klammern, Leerzeichen, einfache Anführungszeichen (') und doppelte Anführungszeichen ("), müssen mit einem umgekehrten Schrägstrich versehen werden, damit der resultierende URI-Wert ein URI-Token ist:' \ (', '\)'.

In solchen Fällen ist es entweder erforderlich, Anführungszeichen oder doppelte Anführungszeichen zu verwenden oder die Zeichen zu maskieren.

Alex Rozanski
quelle
48
  1. Nein, Sie brauchen keine Angebote.

  2. Ja, du kannst. Beachten Sie jedoch, dass relative URLs aus der URL Ihres Stylesheets aufgelöst werden.

  3. Verwenden Sie besser keine Anführungszeichen. Ich denke, es gibt Kunden, die sie nicht verstehen.

Gumbo
quelle
28

1) Zitate zu setzen ist eine gute Angewohnheit

2) es kann ein relativer Pfad sein, zum Beispiel:

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

sucht nach Bildern in dem Ordner, aus dem CSS geladen wird. Wenn sich Bilder in einem anderen Ordner oder außerhalb des CSS-Ordnerbaums befinden, sollten Sie den absoluten Pfad oder relativ zum Stammpfad verwenden (beginnend mit /).

3) Sie sollten eine vollständige Deklaration für das Hintergrundbild verwenden, damit es sich in standardkonformen Browsern wie folgt konsistent verhält:

background:blue url('/images/clouds.jpg') no-repeat scroll left center;
TheVillageIdiot
quelle
1
Meinst du nicht backgroundstatt background-image?
Gumbo
2
weil manchmal Platz im Bildnamen oder Pfadnamen vorhanden ist und dies zu Problemen führen kann.
TheVillageIdiot
@ TheVillageIdiot noch in der dritten Zeile, es background-imageist nicht das, was backgroundvon @Gumbo
KNU
5

Relative Pfade sind in Ordnung und Anführungszeichen sind nicht erforderlich. Eine andere Sache, die helfen kann, ist die Verwendung der backgroundEigenschaft "Kurzschrift" , um eine Hintergrundfarbe anzugeben, falls das Bild nicht geladen wird oder aus irgendeinem Grund nicht verfügbar ist.

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

Beachten Sie auch, dass Sie angeben können, ob und in welche Richtung das Bild wiederholt werden soll (wenn Sie dies nicht angeben, wird standardmäßig horizontal und vertikal wiederholt), sowie die Position des Bildes relativ zu seinem Container.

Bryan
quelle
4

Wenn sich Ihre Bilder in einem separaten Verzeichnis Ihrer CSS-Datei befinden und Sie möchten, dass der relative Pfad im Stammverzeichnis Ihrer Website beginnt:

background-image: url('/Images/bgi.png');
Amin Saqi
quelle
Ich bin gekommen und habe nicht gesucht, ob ich einen relativen Pfad verwenden kann. Ich habe gesucht, wie ich einen relativen Pfad verwenden kann. +1, um klar zu machen, wo der Pfad beginnt.
me_
1

Überprüfen Sie einfach die Verzeichnisstruktur, in der genau das Bild angezeigt wird. Angenommen, Sie haben einen CSS-Ordner und einen Bilderordner außerhalb des CSS-Ordners. Dann müssen Sie "../ images / image.jpg" verwenden, und es funktioniert wie bei mir Verzeichnisstruktur.

sonnig
quelle
1

Sie brauchen wirklich keine Anführungszeichen, wenn Sie beispielsweise das Bild aus Ihrer CSS-Datei verwenden, das es sein kann

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

Sie müssen keine Anführungszeichen verwenden und können einen beliebigen Pfad verwenden!

Rigobert Song
quelle
0

Auf den jeweiligen Sitepoint-Referenzseiten finden Sie Hintergrundbilder und URIs

  1. Es muss nicht in Anführungszeichen stehen, kann aber verwendet werden, wenn Sie möchten. (Ich denke, IE5 / Mac unterstützt keine einfachen Anführungszeichen).
  2. Sowohl relativ als auch absolut ist möglich; Ein relativer Pfad ist relativ zum Pfad der CSS-Datei.
Ben
quelle
0

Schreiben Sie einfach wie unten in Ihre CSS-Datei

background:url("images/logo.jpg")
BERGUIGA Mohamed Amine
quelle