CSS Responsive Web Design-Images

Responsive Web Design - Images

Resize the browser window to see how the image scales to fit the page.

Using The width Property

If the width property is set to a percentage and the height is set to "auto", the image will be responsive and scale up and down:

  •       
                        <!DOCTYPE html>
    <html>
    <head>
    <style> 
    img{
        max-width:70%;
    }
    </style>
    </head>
    <body>
    
    <img src="../images/sample.jpg"  />
    
    </body>
    </html>
                        

    Notice that in the example above, the image can be scaled up to be larger than its original size. A better solution, in many cases, will be to use the max-width property instead

    Using The max-width Property

    If the max-width property is set to 100%, the image will scale down if it has to, but never scale up to be larger than its original size:

  •       
                        <!DOCTYPE html>
    <html>
    <head>
    <style> 
    img{
        max-width:70%;
    }
    </style>
    </head>
    <body>
    
    <img src="../images/sample.jpg"  />
    
    </body>
    </html>
                        

    Background Images

    Background images can also respond to resizing and scaling. Here we will show three different methods:

    If the background-size property is set to "contain", the background image will scale, and try to fit the content area. However, the image will keep its aspect ratio (the proportional relationship between the image's width and height): Here is the CSS code:

    div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-repeat: no-repeat; background-size: contain; border: 1px solid red; }

    IIf the background-size property is set to "100% 100%", the background image will stretch to cover the entire content area: Here is the CSS code:

    Example
    If the background-size property is set to "cover", the background image will scale to cover the entire content area. Notice that the "cover" value keeps the aspect ratio, and some part of the background image may be clipped:
    Here is the CSS code:

    Example
    div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-size: cover; border: 1px solid red; }

    Different Images for Different Devices

    A large image can be perfect on a big computer screen, but useless on a small device. Why load a large image when you have to scale it down anyway? To reduce the load, or for any other reasons, you can use media queries to display different images on different devices.

    Example /* For width smaller than 400px: */ body { background-image: url('img_smallflower.jpg'); }

    /* For width 400px and larger: */ @media only screen and (min-width: 400px) { body { background-image: url('img_flowers.jpg'); } }

    You can use the media query min-device-width, instead of min-width, which checks the device width, instead of the browser width. Then the image will not change when you resize the browser window:

    Example /* For devices smaller than 400px: */ body { background-image: url('img_smallflower.jpg'); }

    /* For devices 400px and larger: */ @media only screen and (min-device-width: 400px) { body { background-image: url('img_flowers.jpg'); } }

    HTML5 Element

    HTML5 introduced the <picture> element, which lets you define more than one image. The <picture>element works similar to the <video> and <audio> elements. You set up different sources, and the first source that fits the preferences is the one being used:

  •       
                        <!DOCTYPE html>
    <html>
    <head>
    <style> 
    *{
        margin:0;
        padding:0;
    }
    .item{
        box-shadow:2px 3px 5px grey ;
        width:210px;
        padding:10px;
        position:relative;
        margin:10px;
        display:inline-block;
    }
    .img-container{
        width:200px;
        height:200px;
    }
    
    img{
        width:100%;
    }
    
    .item-details{
        background:blue;
        position:absolute;
        width:100%;
        bottom:0;
        left:0;
        padding:5px 0;
        text-align:center;
        color:white;
    }
    </style>
    </head>
    <body>
    
    <div class='item'>
        <div class="img-container">
            <img src='../images/sample.jpg'>
        </div>
        <div class="item-details">
            <h4>Image Item 1</h4>
        </div>
    </div>
    
    <div class='item'>
        <div class="img-container">
            <img src='../images/sample.jpg'>
        </div>
        <div class="item-details">
            <h4>Image Item 2</h4>
        </div>
    </div>
    
    <div class='item'>
        <div class="img-container">
            <img src='../images/sample.jpg'>
        </div>
        <div class="item-details">
            <h4>Image Item 3</h4>
        </div>
    </div>
    
    <div class='item'>
        <div class="img-container">
            <img src='../images/sample.jpg'>
        </div>
        <div class="item-details">
            <h4>Image Item 4</h4>
        </div>
    </div>
    
    <div class='item'>
        <div class="img-container">
            <img src='../images/sample.jpg'>
        </div>
        <div class="item-details">
            <h4>Image Item 5</h4>
        </div>
    </div>
    
    <div class='item'>
        <div class="img-container">
            <img src='../images/sample.jpg'>
        </div>
        <div class="item-details">
            <h4>Image Item 6</h4>
        </div>
    </div>
    
    </body>
    </html>
                        

    The srcset attribute is required, and defines the source of the image. The media attribute is optional, and accepts the media queries you find in CSS @media rule.

    Dess App

    DessApp is an Integrated E-learning Education, Interactive and User-friendly features, smarter options and redefining your school costs effectively and efficiently.

    View
    1 1