Is it possible to make a responsive div with a background-image that maintains the ratio of the background-image like with an ?

后端 未结 5 426
-上瘾入骨i
-上瘾入骨i 2021-01-31 12:30

Not a a native english speaker so there\'s probably a better way to shape the question...anyway:

What I want to create is similar to the header here: http://thegreatdisc

5条回答
  •  迷失自我
    2021-01-31 13:05

    Here is a nice and simple tip with only css/html:

    Ingredients

    • Transparent PNG image with the desired ratio (transparent-ratio-conserver.png)

    • tag

    • Different images for different view-ports (retina.jpg, desktop.jpg, tablet.jpg...)

    The idea is to open an tag and to assign to it a transparent image (with our desired ratio). We also add class="responsive-image" that's all in HTML.

    
    

    In the CSS, we set background-size to fit the and we choose the width of our image.

    .responsive-image{
        width: 100%;
        background-size: 100% 100%;
    } 
    

    and finally, we serve for every view-port the right image:

    /* Retina display */
    @media screen and (min-width: 1024px){
        .responsive-image{
            background-image: url('../img/retina.jpg');
        }
    }
    /* Desktop */
    @media screen and (min-width: 980px) and (max-width: 1024px){
        .responsive-image{
            background-image: url('../img/desktop.jpg');
        }
    }
    /* Tablet */
    @media screen and (min-width: 760px) and (max-width: 980px){
        .responsive-image{
            background-image: url('../img/tablet.jpg');
        }
    }
    /* Mobile HD */
    @media screen and (min-width: 350px) and (max-width: 760px){
        .responsive-image{
            background-image: url('../img/mobile-hd.jpg');
        }
    }
    /* Mobile LD */
    @media screen and (max-width: 350px){
        .responsive-image{
            background-image: url('../img/mobile-ld.jpg');
        }
    } 
    

    You can download the demo from here.

提交回复
热议问题