url()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die url() CSS Funktion wird verwendet, um eine Datei einzubinden. Der Parameter ist eine absolute URL, eine relative URL, eine Blob-URL oder eine Daten-URL. Die url() Funktion kann als Parameter einer anderen CSS-Funktion übergeben werden, wie z.B. der attr() Funktion. Abhängig von der Eigenschaft, für die sie ein Wert ist, kann die gesuchte Ressource ein Bild, eine Schriftart oder ein Stylesheet sein. Die url() Funktionsnotation ist der Wert für den <url> Datentyp.

Hinweis: Es gibt einen Unterschied zwischen einem URI und einer URL. Ein URI identifiziert eine Ressource. Eine URL ist eine Art von URI und beschreibt den Ort einer Ressource. Ein URI kann entweder eine URL oder ein Name (URN) einer Ressource sein.

In CSS Level 1 beschrieb die url() Funktionsnotation nur echte URLs. In CSS Level 2 wurde die Definition von url() erweitert, um jeden URI zu beschreiben, ob nun eine URL oder ein URN. Verwirrenderweise bedeutete dies, dass url() zur Erstellung eines <uri> CSS-Datentyps verwendet werden konnte. Diese Änderung war nicht nur ungeschickt, sondern, umstritten, auch unnötig, da URNs in tatsächlichem CSS fast nie verwendet werden. Um die Verwirrung zu lindern, kehrte CSS Level 3 zur engeren, ursprünglichen Definition zurück. Jetzt bezeichnet url() nur noch echte <url>s.

css
/* Basic usage */
url("https://example.com/images/myImg.jpg");
url('https://example.com/images/myImg.jpg');
url(https://example.com/images/myImg.jpg);
url("data:image/jpeg;base64,iRxVB0…");
url(myImg.jpg);
url(#IDofSVGpath);

/* associated properties */
background-image: url("star.gif");
list-style-image: url('../images/bullet.jpg');
content: url("my-icon.jpg");
cursor: url(my-cursor.cur);
border-image-source: url(/media/diamonds.png);
src: url('fantastic-font.woff');
offset-path: url(#path);
mask-image: url("masks.svg#mask1");

/* Properties with fallbacks */
cursor: url(pointer.cur), pointer;

/* Associated short-hand properties */
background: url('star.gif') bottom right repeat-x blue;
border-image: url("/media/diamonds.png") 30 fill / 30px / 30px space;

/* As a parameter in another CSS function */
background-image: cross-fade(20% url(first.png), url(second.png));
mask-image: image(url(mask.png), skyblue, linear-gradient(rgb(0 0 0 / 100%), transparent));

/* as part of a non-shorthand multiple value */
content: url(star.svg) url(star.svg) url(star.svg) url(star.svg) url(star.svg);

/* at-rules */
@document url("https://www.example.com/") { /* … */ }
@import url("https://www.example.com/style.css");
@namespace url(http://www.w3.org/1999/xhtml);

Relative URLs, falls verwendet, sind relativ zur URL des Stylesheets (nicht zur URL der Webseite).

Die url() Funktion kann als Wert für background, background-image, border, border-image, border-image-source, content, cursor, filter, list-style, list-style-image, mask, mask-image, offset-path, clip-path, src als Teil eines @font-face Blocks und @counter-style/symbol enthalten sein.

Syntax

css
url("https://example.com/image.png")
url(https://example.com/image.png)

Werte

<string>

Ein String, der eine URL angibt, welche eine relative oder absolute Adresse oder ein Verweis auf die einzubindende Webressource oder eine Daten-URL ist. Sie können auch eine Hash-URL verwenden, um auf die ID einer SVG-Form oder eines SVG-Filters zu verweisen.

Die Anführungszeichen sind im Allgemeinen optional – sie sind erforderlich, wenn die URL Klammern, Leerzeichen oder Anführungszeichen enthält (es sei denn, diese Zeichen sind maskiert), oder wenn die Adresse Steuerzeichen über 0x7e enthält. Die normalen String-Syntax-Regeln gelten: Doppelte Anführungszeichen dürfen nicht in doppelten Anführungszeichen und einfache Anführungszeichen nicht in einfachen Anführungszeichen vorkommen, es sei denn, sie sind maskiert.

<url-modifier>

In Zukunft könnte die url() Funktion die Angabe eines Modifikators unterstützen, eines Identifizierers oder einer Funktionsnotation, die die Bedeutung der URL-String ändert. Dies wird jedoch nicht unterstützt und ist in der Spezifikation nicht vollständig definiert.

Formale Syntax

Beispiele

Als Hintergrund-Eigenschaftswert

css
body {
  background: url("https://mdn.github.io/shared-assets/images/examples/leopard.jpg")
    #00d no-repeat fixed;
}

Um ein Bild als Listenpunkt festzulegen

css
ul {
  list-style: outside
    url("https://mdn.github.io/shared-assets/images/examples/firefox-logo.svg");
}

Verwendung in der Eigenschaft content

HTML

html
<ul>
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>

CSS

css
li::after {
  content: " - "
    url("https://mdn.github.io/shared-assets/images/examples/star-white_16x16.png");
}

Ergebnis

Verwendung einer Daten-URL

CSS

css
body {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='45'%3E%3Cpath d='M10 10h60' stroke='%2300F' stroke-width='5'/%3E%3Cpath d='M10 20h60' stroke='%230F0' stroke-width='5'/%3E%3Cpath d='M10 30h60' stroke='red' stroke-width='5'/%3E%3C/svg%3E");
}

Verwendung in Filtern

Wenn eine URL als Pfad für einen Filter verwendet wird, muss die URL eines der folgenden Kriterien erfüllen:

  1. Der Pfad zu einer SVG-Datei mit angehängter ID des Filters.
  2. Die ID des Filters, wenn das SVG bereits auf der Seite existiert.
css
.blur {
  filter: url(my-file.svg#svg-blur); /* the URL of an SVG file used as a filter */
}

.inline-blur {
  filter: url(#svg-blur); /* the ID of an SVG that is embedded in the HTML page */
}

Spezifikationen

Specification
CSS Values and Units Module Level 4
# urls

Browser-Kompatibilität

Siehe auch