CSS 图片自适应容器

https://www.jb51.net/css/660677.html

经常有这样一个场景,需要让图片自适应容器的大小。

1、img标签的方式

我们马上就能想到,把width、height 设置为100%啊。来看一哈效果。

?


1

2

3

<div class=‘div1‘>

    <img src="./peiqi.png" alt="">

</div>

?


1

2

3

4

5

6

7

8

9

10

11

.div1 {

    width:500px;

    height:400px;

    border:1px solid black;

}

.div1 img  {

    /*

    width: 100%;

    height:100%;

    */

}

这是正常的佩琪(如果图片比容器大的话,图片会超出容器)

?


1

2

3

4

5

6

7

8

9

.div1 {

    width:500px;

    height:400px;

    border:1px solid black;

}

.div1 img  {

    width: 100%;

    height:100%;

}

这是100%的佩琪

额,好像刚过完年。

虽然符合了自适应的要求,但是如图所见图片失真了。这种图片比容器小的情况强行将图片自适应的话图片就失真。如果说是单个图片(logo、占位图、等)按设计稿开发就可以了。但经常会遇到接口获取的不规则图片的情况,一般这种时候会将小于容器的话将其水平、垂直居中。
整理一下任务:

  • 图片宽高都小于容器时垂直、水平居中
  • 图片宽高都大于容器时保持宽高比将width或height充满容器

?


1

2

3

4

5

6

7

8

9

<div class=‘div1‘>

     <img src="./peiqi.png" alt="">

 </div>

 <div class=‘div1‘>

     <img src="./peiqi2.png" alt="">

 </div>

 <div class=‘div1‘>

     <img src="./peiqi4.jpeg" alt="">

 </div>

?


1

2

3

4

5

6

7

8

9

10

11

12

13

.div1 {

      width:500px;

      height:400px;

      border:1px solid black;

      display: table-cell;

      vertical-align: middle;

  }

  .div1 img  {

      max-width: 100%;

      max-height: 100%;

      display: block;

      margin: auto;

  }

max-height 这个属性会阻止 height 属性的设置值变得比 max-height 更大。
max-height 属性用来设置给定元素的最大高度. 如果height 属性设置的高度比该属性设置的高度还大,则height 属性会失效.

这种效果就舒服多了

2、背景图的方式

?


1

2

3

.div {

      background-size: contain;

  }

background-size: contain; 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域。

利用css的 background-size: contain; 属性就能进一步优化图片的宽高都小于容器的情况了。

上代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

div {

      height: 400px;

      width: 500px;

      border: 1px solid black;

      background-repeat: no-repeat;

      background-size: contain;

      background-position: center;

  }

  .div1 {

      background-image: url(./peiqi1.png);

  }

  .div2 {

      background-image: url(./peiqi2.png);

  }

  .div3 {

      background-image: url(./peiqi4.jpeg);

  }

?


1

2

3

<div class=‘div1‘></div>

  <div class=‘div2‘></div>

  <div class=‘div3‘></div>

当然最后还得看需求,产品是咋要求的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

原文地址:https://www.cnblogs.com/mouseleo/p/10975367.html

时间: 2024-10-10 06:34:05

CSS 图片自适应容器的相关文章

css实现图片自适应容器的几种方式

css实现图片自适应容器 经常有这样一个场景,需要让图片自适应容器的大小. 1.img标签的方式 我们马上就能想到,把width.height 设置为100%啊.来看一哈效果. <div class='div1'> <img src="./peiqi.png" > </div> .div1 { width:500px; height:400px; border:1px solid black; } .div1 img { /* width: 100%

纯css 图片自适应居中

html 结构 <div class="container"> <div class="content"></div> </div> css .container{ width: 100%; height: 100%; text-align:center; position: fixed; } .container:after { display: inline-block; content: ''; width: 0

图片自适应容器大小

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>img auto</title> <style> body { position: relative; } .parent { position: absolute; width: 100%; height: 100%; top:0; left:

html5+css 图片自适应

<div style="position:absolute; width:100%; height:100%; z-index:-1; left:0; top:0;"> <img src="Images/logo.png" style="left:0; top:0; height:100%;width:100%"> </div> // 设置为最底层(通用) <div id="formbackgr

CSS百分比padding实现比例固定图片自适应布局 (转载)

一.CSS百分比padding都是相对宽度计算的 在默认的水平文档流方向下,CSS margin和padding属性的垂直方向的百分比值都是相对于宽度计算的,这个和top, bottom等属性的百分比值不一样. 这么设计的原因在我的新书(应该不出几个月就要出版了)中会有说明,这里不展开. 对于padding属性而言,任意方向的百分比padding都现对于宽度计算可以让我们轻松实现固定比例的块级容器,举个例子,假设现在有个<div>元素: div { padding: 50%; } 或者: di

css控制div下图片自适应解决方法:图片不超过最大宽度

我们(特别是像我一样的菜鸟)经常会遇到一个问题——图片自适应.这个问题是很普遍的.在文章区,在论坛,可以这么说:哪儿需要上传图片,哪儿就存在这个问题,而论坛上也不时有人询问.为什么?原因很简单,我们不能要求网页编辑或者你的论坛会员都会裁剪图片或者了解最基本的html代码——尽管这并没有多少技术含量. 以前的解决方法主要是利用js来实现,但用过的人都知道该办法有点繁琐.还有一种是在外部容器定义over-flow:hidden.但这种办法只会切割图片而不会自动适用. 下面的办法的出现应该感谢伟大的c

css利用padding百分比实现图片自适应高度

应用场景 宽高比率,实现图片自适应高度,防止图片加载过程高度为0,加载完图片高度撑起,它下面的div抖动问题 重点:CSS百分比padding都是相对宽度计算的 <div class="works-item-t"> <img src="./150x200.png"> </div> .works-item-t { padding-bottom: 133%; position: relative; } .works-item-t &g

html5实现图片自适应手机屏幕页面的css

HTML5实现图片自适应手机屏幕页面的css. HTML5写手机页面,读取图片,如果图片大于手机屏幕的宽度,就显示100%屏幕,如果小于,就显示原图. CSS的max-width就能实现了,不要设置img的宽和高. img{max-width:100%;}

原创jQuery插件之图片自适应

效果图如下: 功能:使图片自适应居中位于容器内 限制:容器需要给定大小 使用方法: 1.引入jQuery,然后引入fitimg插件 2.给需要图片自适应的容器固定宽高 3.header .account .img { width: 40px; height: 40px; margin: 5px 5px; float: left; } 4.添加data-src属性 <div class="img" data-src ="/Images/avatar.jpg"&g