此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

image-rendering CSS 属性

基线 广泛可用 *

自 2020年1月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

* 此特性的某些部分的支持程度可能有所不同。

image-rendering CSS 属性设置图像缩放算法。该属性作用于元素本身、其其他属性中设置的任何图像,以及其后代元素。

尝试一下

image-rendering: auto;
image-rendering: smooth;
image-rendering: crisp-edges;
image-rendering: pixelated;
<section id="default-example">
  <img
    class="transition-all"
    id="example-element"
    src="/shared-assets/images/examples/lizard.png" />
</section>
#example-element {
  height: 480px;
  object-fit: cover;
}

当页面作者指定的尺寸与图像固有尺寸不同时,用户代理会对图像进行缩放。用户交互(例如缩放页面)也可能导致缩放。例如,若图像的固有尺寸为 100×100px,但其实际尺寸为 200×200px(或 50×50px),则图像会按 image-rendering 指定的算法放大(或缩小)。该属性对未缩放的图像没有效果。

语法

css
/* 关键字值 */
image-rendering: auto;
image-rendering: smooth;
image-rendering: crisp-edges;
image-rendering: pixelated;

/* 全局值 */
image-rendering: inherit;
image-rendering: initial;
image-rendering: revert;
image-rendering: revert-layer;
image-rendering: unset;

auto

缩放算法由用户代理决定。自 1.9 版(Firefox 3.0)起,Gecko 使用双线性重采样(高质量)。

smooth

图像应使用能最大程度优化视觉效果的算法进行缩放。特别是允许“平滑”颜色的缩放算法,例如双线性插值。该值适用于照片等图像。

crisp-edges

图像使用诸如“最近邻”等算法进行缩放,以保留图像中的对比度和边缘。通常适用于像素画或线条图等图像,不会产生模糊或颜色平滑。

pixelated

图像先使用“最近邻”或类似算法缩放到原始图像尺寸的最近整数倍,再使用平滑插值将图像调整到最终所需尺寸。这样可以在放大分辨率不是原始尺寸整数倍时,保留“像素化”外观,同时避免引入缩放伪影。

备注:早期草案中出现的值 optimizeQualityoptimizeSpeed(来自其 SVG 对应属性 image-rendering)分别被定义为 smoothpixelated 的同义词。

备注:CSS 图像模块为 image-rendering 属性定义了 high-quality 值,用于表示偏好更高质量的缩放,但目前没有任何浏览器支持该值。

形式定义

初始值auto
适用元素所有元素
是否是继承属性
计算值as specified
动画类型离散值

形式语法

image-rendering = 
auto |
smooth |
high-quality |
pixelated |
crisp-edges

示例

设置图像缩放算法

在本示例中,同一图像重复显示四次,每次应用不同的 image-rendering 值。

CSS

css
.auto {
  image-rendering: auto;
}

.smooth {
  image-rendering: smooth;
}

.pixelated {
  image-rendering: pixelated;
}

.crisp-edges {
  image-rendering: crisp-edges;
}

结果

规范

规范
CSS Images Module Level 3
# the-image-rendering
Scalable Vector Graphics (SVG) 2
# ImageRendering

浏览器兼容性

参见