如何在 div 中使图像响应

Posted

技术标签:

【中文标题】如何在 div 中使图像响应【英文标题】:How to make image responsive inside a div 【发布时间】:2014-09-01 23:26:07 【问题描述】:

我的代码如下:

<div class="abc">
    <div class="bcd">
        <a href="#">
            <img class="img1"  />
        </a>
        <a>
            <h3>Some Text</h3>
        </a> 
    </div>
    <div class="bcd">
        <a href="#">
            <img class="img1"  />
        </a>
        <a>
            <h3>Some Text</h3>
        </a> 
    </div>
    <div class="bcd">
        <a href="#">
            <img class="img1"  />
        </a>
        <a>
            <h3>Some Text</h3>
        </a> 
    </div>
    <div class="bcd">
        <a href="#">
            <img class="img1"  />
        </a>
        <a>
            <h3>Some Text</h3>
        </a> 
    </div>
</div>

如何使图像响应移动(360X640 像素)和 iPad(768X1024 像素)? 你能给我CSS代码吗?

我必须在一行中提供两个移动图像和四个 iPad 图像!

【问题讨论】:

【参考方案1】:

以百分比设置宽度和高度

  <img class="img1"  />

使用媒体查询

/* 横向 */

@media screen and (min-aspect-ratio: 1/1) 

 //use your style for landscape
                                          

/* 纵向(即窄视口)*/

@media screen and (max-aspect-ratio: 1/1) 

// your style for portrait
                                          

【讨论】:

我必须在一行中给出两个移动端的图像和四个 iPad 端的图像!!【参考方案2】:

这是您需要遵循的代码:

img 
    max-width: 100%;
    height: auto;
    

参考:http://html5hub.com/html5-picture-element/

【讨论】:

【参考方案3】:

img 标记中删除widthheight 属性,并为该图像添加CSS 文件max-width:100%; width:100%;

【讨论】:

【参考方案4】:
    <style>
    @media only screen and (max-width: 1024px)     
        .abc .bcdmax-width:100%;height:auto;border:1px solid #ff0000;width:24%;display:inline-block;
        .abc .bcd a imgwidth:100%;height:auto;
    

    @media only screen and (max-width: 640px)  
        .abc .bcdmax-width:100%;height:auto;border:1px solid #ff0000;width:48%;display:inline-block;
        .abc .bcd a imgwidth:100%;height:auto;
    
    </style>

你可以去掉边框。

如果你去掉边框,那么你可以为一行 4 行使用 25% 的宽度,为一行 2 行使用 50% 的宽度。

【讨论】:

【参考方案5】:

使用媒体查询,您可以随意划分图像。

.abcpadding:0; margin:0; box-sizing:border-box; width:100%;
.bcddisplay:inline-block;width:24%;
@media all and (max-width: 360px)
   .bcd
   
    display:inline-block;
    width:49%;
   

DEMO

【讨论】:

【参考方案6】:
 <style>
        html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary,time, mark, audio, video   margin: 0;  padding: 0; border: 0;  font-size: 100%;    font: inherit;  vertical-align: baseline;/* HTML5 display-role reset for older browsers */article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section     display: block;body   line-height: 1;ol, ul     list-style: none;blockquote, q    quotes: none;blockquote:before, blockquote:after,q:before, q:after    content: '';    content: none;table   border-collapse: collapse;  border-spacing: 0;
        .container .bcdfloat: left;position: relative;
        .container .bcd divbackground-color: #fff;border: 1px solid #e4e4e4;border-radius: 5px;margin-top: 10px;min-height: 100px;
        .container .bcd div imgborder-radius: 5px 5px 0 0;height: auto;width: 100%;
        .container .bcd div a.bottombackground: none repeat scroll 0 0 #fff;bottom: 4px;color: #000;font-size: 14px;padding: 9px 0 5px;position: relative;width: 100%;display: inline-block;
        .container .bcd div a.bottom h3padding: 0 10px;
        @media (max-width: 700px) 
            .bcdwidth: 100%;
            .bcd divmargin: 0 10px
        
        @media (min-width: 700px) 
            .bcd width: 50%;
            .bcd:nth-child(odd) div margin-left: 10px;margin-right: 5px;
            .bcd:nth-child(even) div margin-left: 5px;margin-right: 10px;
        
    </style>

<div class="container">
        <div class="bcd">
            <div>
                <a href="#">
                    <img  class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
        </div>
        <div class="bcd">
            <div>
                <a href="#">
                    <img  class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
        </div>
        <div class="bcd">
            <div>
                <a href="#">
                    <img  class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
        </div>
        <div class="bcd">
            <div>
                <a href="#">
                    <img class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
        </div>
        <div class="bcd">
            <div>
                <a href="#">
                    <img class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
        </div>
        <div class="bcd">
            <div>
                <a href="#">
                    <img  class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
        </div>
        <div class="bcd">
            <div>
                <a href="#">
                    <img  class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
        </div>
        <div class="bcd">
            <div>
                <a href="#">
                    <img class="img1"  />
                </a>
                <a class="bottom"><h3>Some Text</h3></a>
            </div>
       </div>
        <div style="clear: both;margin: 0px;padding: 0px;"></div>
    </div>

Demo

【讨论】:

【参考方案7】:

此设置您要设置为 div 中的背景图像的图像,并将背景大小设置为封面

background-image: url('YOUR URL');
background-size: cover;

【讨论】:

【参考方案8】:

CSS:

img 
  max-width: 100%;
  max-height: 100%;

HTML:

<img class="img" src="image.png">

【讨论】:

以上是关于如何在 div 中使图像响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CSS Grid 中使 div 高度等于宽度

无论图像大小如何,如何在 HTML 电子邮件中使图像响应

如何在轮播中使横向和纵向图像完全响应且高度相同?

如何响应地在相对 div(图像)上方居中绝对 div(文本)?

如何在父容器中使所有 div 可拖动

如何使 div 响应的背景图像?