Using srcset and sizes for Responsive HTML Images
Jul 16, 2025 am 12:40 AMsrcset and sizes are key attributes used to optimize the display clarity and loading efficiency of web images on different devices. They improve performance and user experience by letting the browser choose the most appropriate image resources based on screen size, resolution, etc. srcset is used to list image options of different widths or pixel density, such as image-small.jpg 480w, image-medium.jpg 800w, image-large.jpg 1200w; sizes defines the display width of the image under different viewports, such as (max-width: 600px) 100vw, 800px; when using it, pay attention to accurately labeling the image width, covering multiple breakpoints, adapting to the Retina screen, and keeping the sizes expression concise; in actual development, CSS media query, automation tools and dynamic splicing technology can be used to efficiently manage responsive image resources.
Images play an important role in web pages, but how do you make them appear clearly and efficiently on different devices? srcset
and sizes
are created for this. These two attributes can help the browser select the most suitable image resources based on factors such as screen size, resolution, etc., thereby improving loading speed and user experience.

What is srcset?
srcset
is an attribute of the <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/175259763543962.jpeg" class="lazy" alt="Using srcset and sizes for Responsive HTML Images" >
tag that specifies a set of image resources and their corresponding width or pixel density. It tells the browser: "I have several different sizes of pictures here, and you can choose one based on the situation."
The basic writing method is as follows:

<img src="/static/imghw/default1.png" data-src="image-small.jpg" class="lazy" srcset="image-small.jpg 480w, image-medium.jpg 800w, image-large.jpg 1200w" alt="Example Picture" >
480w
here means that the width of this picture is 480 pixels. The browser will select the most suitable image based on the width of the current device.
Some usage suggestions:

- Accurately mark the width of each picture (such as
480w
), and do not write it casually. - Don't just provide one or two options, it's best to cover multiple breakpoints from small to large.
- High-definition images can be added with descriptors like
2x
, such asimage@2x.jpg 2x
, which is suitable for the Retina screen.
The function of the sizes attribute
The purpose of sizes
is to tell the browser how wide the image will be displayed at different viewport widths. In this way, the browser can combine the image width information in srcset
to select the most suitable one.
For example:
<img src="/static/imghw/default1.png" data-src="image-small.jpg" class="lazy" srcset="image-small.jpg 480w, image-medium.jpg 800w, image-large.jpg 1200w" sizes="(max-width: 600px) 100vw, 800px" alt="Example Picture" >
The meaning of this code is: if the screen width is less than or equal to 600px, the image will occupy the entire viewport width ( 100vw
); otherwise it is fixed to 800px wide.
Some points to note:
- The value of
sizes
should reflect the actual width of the image in the page layout. - If the picture is always full screen width, you can write
sizes="100vw"
directly. - Don’t write too complicatedly, avoid nesting too many conditions, and keeping it concise is more conducive to maintenance.
Tips in practical application
In actual development, especially in responsive websites, the rational use of srcset
and sizes
can bring obvious performance optimization effects.
Common practices include:
- Use CSS media query to control the width of the image display area, and then write these widths in
sizes
. - The image server generates multiple size versions and is named in a unified way for easy management.
- Use the build tool to automatically generate image resources of different sizes.
- For CMS systems,
srcset
andsizes
are dynamically spliced when outputting backend.
A small detail: If your image container width changes with the viewport (for example, from 50% to 100%), you can "round" appropriately, for example, write it as (max-width: 768px) 100vw, 50vw
, although not completely accurate, it is practical enough.
Ending
In general, srcset
and sizes
are not difficult to use. The key is to understand their respective functions and how to use them together. Writing correctly can significantly reduce unnecessary large images loading and improve page performance, especially on mobile devices. Basically that's all. Don't be scared by the grammar. Just try it a few times and get familiar with it.
The above is the detailed content of Using srcset and sizes for Responsive HTML Images. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

To create responsive images using CSS, it can be mainly achieved through the following methods: 1. Use max-width:100% and height:auto to allow the image to adapt to the container width while maintaining the proportion; 2. Use HTML's srcset and sizes attributes to intelligently load the image sources adapted to different screens; 3. Use object-fit and object-position to control image cropping and focus display. Together, these methods ensure that the images are presented clearly and beautifully on different devices.

Native lazy loading is a built-in browser function that enables lazy loading of pictures by adding loading="lazy" attribute to the tag. 1. It does not require JavaScript or third-party libraries, and is used directly in HTML; 2. It is suitable for pictures that are not displayed on the first screen below the page, picture gallery scrolling add-ons and large picture resources; 3. It is not suitable for pictures with first screen or display:none; 4. When using it, a suitable placeholder should be set to avoid layout jitter; 5. It should optimize responsive image loading in combination with srcset and sizes attributes; 6. Compatibility issues need to be considered. Some old browsers do not support it. They can be used through feature detection and combined with JavaScript solutions.

The main difference is that textarea supports multiple lines of text input, while inputtext is only available in a single line. 1. Use inputtype="text" to be suitable for short and single-line user input, such as username, email address, etc., and can set maxlength to limit the number of characters. The browser provides automatic filling function, making it easier to uniformly style across browsers; 2. Use textarea for scenarios that require multiple lines of input, such as comment boxes, feedback forms, support line breaks and paragraphs, and can control the size through CSS or disable the adjustment function. Both support form features such as placeholders and required fills, but textarea defines the size through rows and cols, and input uses the size attribute.

When writing web content, you need to pay attention to the title and paragraph structure to improve the reading experience and SEO effect. 1. The title level should be clear. A page should only use one h1 as the main title, h2 as the title of the big section, and h3 subdivides the subsections to avoid multiple h1, skip grades or keyword piles up; 2. The paragraph should be controlled in three to four lines, and the key points should be directly mentioned at the beginning, and if necessary, use the ul list to enhance readability; 3. Appropriately use the subtitles of h2 and h3 to guide readers' attention, facilitate information search and optimize search engine recognition.

It is a block-level element, used to divide large block content areas; it is an inline element, suitable for wrapping small segments of text or content fragments. The specific differences are as follows: 1. Exclusively occupy a row, width and height, inner and outer margins can be set, which are often used in layout structures such as headers, sidebars, etc.; 2. Do not wrap lines, only occupy the content width, and are used for local style control such as discoloration, bolding, etc.; 3. In terms of usage scenarios, it is suitable for the layout and structure organization of the overall area, and is used for small-scale style adjustments that do not affect the overall layout; 4. When nesting, it can contain any elements, and block-level elements should not be nested inside.

The key to implementing responsive images in srcset is to understand the syntax and browser selection mechanism. 1. Basic structure: Provide multiple image versions through srcset, and use w descriptors to indicate the width, such as 320w and 480w; 2. Use sizes attribute to define the display size of the image under different screen widths, such as 100vw and 50vw; 3. Use x descriptors to provide high-definition images for high-resolution screens, such as 1x and 2x; 4. The actual suggestions include manually or tools to generate multi-size images, avoiding too many options affecting performance, and setting the alt attribute to ensure accessibility.

To correctly set the character encoding of the HTML document to UTF-8, you need to follow three steps: 1. Add at the top of the HTML5 part; 2. Configure the response header Content-Type: text/html; charset=UTF-8, if Apache uses AddDefaultCharsetUTF-8, Nginx uses charsetutf-8; 3. Select the UTF-8 encoding format when saving HTML files in the editor. These three links are indispensable, otherwise it may lead to garbled page code and failure of special character parsing, affecting user experience and SEO effect. It is important to ensure that HTML declaration, server configuration and file saving are consistent.

ShadowDOM is a technology used in web component technology to create isolated DOM subtrees. 1. It allows the mount of an independent DOM structure on ordinary HTML elements, with its own styles and behaviors, and does not affect the main document; 2. Created through JavaScript, such as using the attachShadow method and setting the mode to open; 3. When used in combination with HTML, it has three major features: clear structure, style isolation and content projection (slot); 4. Notes include complex debugging, style scope control, performance overhead and framework compatibility issues. In short, ShadowDOM provides native encapsulation capabilities for building reusable and non-polluting UI components.
