Skill Level: Any Skill Level


Cascading Style Sheets (CSS) are used to dynamically define visual styles and layout on web pages. On modern websites, CSS is used together with HTML and JavaScript to define the content and appearance of a page. In this article, I’ll focus on working with images in CSS using the <image> element. We’ll show how to perform basic image effects with CSS, and provide cool tricks you can use to achieve more advanced effects.


  1. What is the CSS Image Element?

    CSS offers many options for creating and modifying images. It supports various image formats and types, including raster images (such as PNG and JPEG), vector images (such as SVG), and fileless image effects, such as CSS gradients and backgrounds.

    Image processing in CSS is based on the <image> data type, which can appear in:

    • <img> HTML tags
    • <url> data type
    • <gradient> data type
    • element() function
    • Image() function
    • Other image effect functions, such as cross-fade() or image-set()
  2. Basic Image Effects with CSS

    Rounded corners

    This CSS image effect lets you define the border-radius properties of your image. Here’s sample code you can try to round all the corners of your image:

    #rcorners {

      border-radius: 20px;

      background: myimage.jpg);

      background-position: center;

      padding: 15px;

      width: 150px;

      height: 100px;


    There are many more shape designs you can create simply by adjusting this image effect. You can use it to create various shapes for your web elements, including buttons, image blocks, menus, and more.

    Image thumbnails

    An image thumbnail is a small version of your image that provides a preview. It is often used for showcasing an image gallery or video preview. Here is a code sample that can help you create a simple thumbnail:

    img {

      border: 2px solid #ddd;

      border-radius: 4px;

      padding: 6px;

      width: 150px;


    <img src=”myimage.jpg”alt=”I’m an image, look at me”>

    Full page background

    You can create a full page background layout for your entire website or a specific block. To do this, you need to define the value of the background-size property as cover. This value tells the browser to portray the image at the height of the browser window. You also need to align the image to the center. 

    Responsive image size

    To ensure that all users, regardless of their device and resolution, receive an image that suits their needs, you need to configure the site to serve responsive content. There are many ways to do this, but the simplest way is to specify the max-width as 100% and set the height to auto. Here is how the code looks like:

    img {

      max-width: 100%;

      height: auto;


    Transform your images

    If you want to rotate, scale, and tilt visual elements, you can use the transform property. You can use this property to create interesting effects on your site. For example, creating moving buttons and other types of interactive media elements. Here is an example of how to use this CSS effect to rotate your image 45 degrees:

    .image {

      transform: rotate(45deg);


    Before using this property, make sure it is supported by your target browsers.

  3. Useful CSS Image Tricks

    Now that you have seen how to perform basic image effects with CSS, let’s see a few tips and tricks that can take your CSS image effects to the next level.

    Zoom on Hover
    This effect is a great way to encourage users to click an image. When the user hovers the cursor over it, the image is slightly enlarged, but the dimensions of its container on the page stay the same.

    To get this effect, you need a wrapper div that bypasses the usual HTML img tag. Set the parent element’s width and height, and set overflow to hidden. This will allow you to  apply any type of animation to the inner image, without affecting the outer container.

    Dynamic Image Gallery
    CSS Grid and Flexbox (flexible box) make it easy to implement many types of responsive layouts, and easily center elements that were previously difficult to place on a page.

    However, these layout modes are less suited to a dynamic image gallery, in which the vertical position of each element is adjusted based on the height of the element above it.

    The best way to achieve this is to CSS column properties. Wrap the elements you want to display in a div and specify the column-width and column-gap properties for the div. Then use column-break-inside: avoid so elements are not split between the two columns. This creates a great visual effect, similar to Pinterest image boards.

    Customizing the Scroll Experience
    CSS provides the scroll-snap-type property, which lets you control the user’s scrolling experience – it determines the x or y coordinates the scroll occupies. You can control page scrolling by setting this property in a container element. There are two options:

    • mandatory means that the browser jumps to the capture point whenever the user stops scrolling
    • proximity is less strict – it specifies means the browser can jump to the capture point if it is appropriate

    One example use of this property is to create a vertical list, and cause the scroll to snap to each item of the list, which can allow the user to quickly browse through long text items or images.

  4. Conclusion

    In this article, I provided several techniques and tips you can use to manipulate images with CSS, to automate website designs and layouts:

    • Rounded corners
    • Image thumbnails
    • Full page backgrounds
    • Responsive resizing of images
    • Image transformations
    • Zoom on hover
    • Dynamic image galleries
    • Customizing scroll behavior


    I hope these techniques will make it easier to style your web pages, help you achieve more compelling visual layouts, and save time spent manually resizing and repositioning images.

Join The Discussion