The url()
CSS function is used to include a file. The parameter is an absolute URL, a relative URL, a blob URL, or a data URL. The url()
function can be passed as a parameter of another CSS functions, like the attr()
function. Depending on the property for which it is a value, the resource sought can be an image, font, or a stylesheet. The url()
functional notation is the value for the <url>
data type.
Note: There is a difference between a URI and a URL. A URI identifies a resource. A URL is a type of URI, and describes the location of a resource. A URI can be either a URL or a name (URN) of a resource.
In CSS Level 1, the url()
functional notation described only true URLs. In CSS Level 2, the definition of url()
was extended to describe any URI, whether a URL or a URN. Confusingly, this meant that url()
could be used to create a <uri>
CSS data type. This change was not only awkward but, debatably, unnecessary, since URNs are almost never used in actual CSS. To alleviate the confusion, CSS Level 3 returned to the narrower, initial definition. Now, url()
denotes only true <url>
s.
css
/* Simple usage */
url(https://example.com/images/myImg.jpg);
url(data:image/png;base64,iRxVB0…);
url(myFont.woff);
url(#IDofSVGpath);
/* associated properties */
background-image: url("star.gif");
list-style-image: url('../images/bullet.jpg');
content: url("pdficon.jpg");
cursor: url(mycursor.cur);
border-image-source: url(/media/diamonds.png);
src: url('fantasticfont.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(rgba(0, 0, 0, 1.0), 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/") { /* … */ }
Experimental
@import url("https://www.example.com/style.css");
@namespace url(http://www.w3.org/1999/xhtml);
Relative URLs, if used, are relative to the URL of the stylesheet (not to the URL of the web page).
The url()
function can be included as a value for 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 as part of a @font-face block, and @counter-style/symbol