files/en-us/web/css/reference/values/image/index.md
The <image> CSS data type represents a two-dimensional image.
The <image> data type can be represented with any of the following:
CSS can handle the following kinds of images:
CSS determines an object's concrete size using (1) its intrinsic dimensions; (2) its specified size, defined by CSS properties like {{CSSxRef("width")}}, {{CSSxRef("height")}}, or {{CSSxRef("background-size")}}; and (3) its default size, determined by the kind of property the image is used with:
| Kind of Object (CSS Property) | Default object size |
|---|---|
| {{CSSxRef("background-image")}} | The size of the element's background positioning area |
| {{CSSxRef("list-style-image")}} | The size of a 1em character |
| {{CSSxRef("border-image-source")}} | The size of the element's border image area |
| {{CSSxRef("cursor")}} | The browser-defined size matching the usual cursor size on the client's system |
| {{CSSxRef("mask-image")}} | ? |
| {{CSSxRef("shape-outside")}} | ? |
| {{CSSxRef("mask-border-source")}} | ? |
| {{cssxref("symbols()")}} for @counter-style | At risk feature. If supported, the browser-defined size matching the usual cursor size on the client's system |
| {{CSSxRef("content")}} for a pseudo-element ({{CSSxRef("::after")}}/{{CSSxRef("::before")}}) | A 300px × 150px rectangle |
The concrete object size is calculated using the following algorithm:
[!NOTE] Not all browsers support every type of image on every property. See the browser compatibility section for details.
Browsers do not provide any special information on background images to assistive technology. This is important primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users. If the image contains information critical to understanding the page's overall purpose, it is better to describe it semantically in the document.
{{csssyntax}}
url("test.jpg") /* A <url>, as long as test.jpg is an actual image */
linear-gradient(blue, red) /* A <gradient> */
element(#real-id) /* A part of the webpage, referenced with the element() function,
if "real-id" is an existing ID on the page */
image(ltr "arrow.png#xywh=0,0,16,16", red)
/* A section 16x16 section of <url>, starting from the top, left of the original
image as long as arrow.png is a supported image, otherwise a solid
red swatch. If language is rtl, the image will be horizontally flipped. */
cross-fade(20% url("twenty.png"), url("eighty.png"))
/* cross faded images, with twenty being 20% opaque
and eighty being 80% opaque. */
image-set("test.jpg' 1x, 'test-2x.jpg" 2x)
/* a selection of images with varying resolutions */
"no-url.jpg" /* An image file must be defined using the url() function. */
url("report.pdf") /* A file pointed to by the url() function must be an image. */
element(#fakeid) /* An element ID must be an existing ID on the page. */
image(z.jpg#xy=0,0) /* The spatial fragment must be written in the format of xywh=#,#,#,# */
image-set("cat.jpg" 1x, "dog.jpg" 1x) /* every image in an image set must have a different resolution */
{{Specifications}}
{{Compat}}