Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Understanding Srcset

What is Srcset?

Srcset is an HTML attribute used within the <img> tag that allows developers to specify multiple image sources for different screen sizes or resolutions. This ensures that the browser selects the most appropriate image based on the device's capabilities and the current viewport size.

Note: The use of srcset enhances performance by reducing the file size of images loaded on smaller devices.

How Srcset Works

When using srcset, you define a set of images with their respective sizes. The browser evaluates the device's display characteristics and chooses the most suitable image from the list. This can be particularly beneficial for responsive design.


<img src="small.jpg" 
     srcset="medium.jpg 600w, large.jpg 1200w" 
     alt="Sample Image">
        

In this example:

  • small.jpg is the default image.
  • medium.jpg is used if the viewport is at least 600 pixels wide.
  • large.jpg is used for viewports of 1200 pixels or wider.

Code Examples

Example 1: Basic Usage


<img src="default.jpg" 
     srcset="small.jpg 300w, medium.jpg 600w, large.jpg 1200w" 
     sizes="(max-width: 600px) 300px, (max-width: 1200px) 600px, 1200px" 
     alt="Responsive Image">
        

This example uses the sizes attribute to inform the browser how much space the image will take on different screen sizes.

Example 2: Using <picture> Element


<picture>
    <source srcset="image-1.jpg" media="(min-width: 800px)">
    <source srcset="image-2.jpg" media="(min-width: 400px)">
    <img src="image-default.jpg" alt="Picture Example">
</picture>
        

The <picture> element allows for even more control, including the ability to define multiple sources with different media conditions.

Best Practices

  • Always provide a src fallback for browsers that do not support srcset.
  • Optimize images to reduce file size without compromising quality.
  • Use descriptive alt attributes for better accessibility.
  • Test images on various devices to ensure optimal loading.

FAQ

What browsers support srcset?

Srcset is widely supported in modern browsers, including Chrome, Firefox, Safari, and Edge. Older versions of Internet Explorer do not support this feature.

Can I use srcset with <video> tags?

No, srcset is specific to <img> elements. However, the <picture> element can be used to provide different images for various conditions.