原文出处:https://blog.csdn.net/zh_rey/article/details/69666232

该方法主要用来做网站自适应的,同时可以实现撑起内容高度,避免图片加载后导致的页面滚动。

一、可以使用js判断图片的宽度得到具体数值之后,再来利用js设置图片的高度(这里就不具体为大家细说了)。

利用js来实现有一个缺点就是只能在页面刷新的时候才能调整图片的高度,不能随着浏览器的窗口大小变化来实现自适应。

二、我这次主要是用css来实现图片高度的自适应问题。

下面是所需要的代码

(这种方法是可以在图片上方垂直居中展示文字的,如果不需要可以选择最下方更简洁的代码)


 
  1. <div class="box">

  2. <span>行内元素垂直居中</span>

  3. <div class="img-box">

  4. <img src="123.jpg"/>

  5. </div>

  6. </div>

 

 


 
  1. .box{

  2. width: 50%;

  3. margin: 50px auto;

  4. }

  5. .img-box{

  6. width: 100%;

  7. position:relative;

  8. z-index:1;

  9. }

  10. .img-box img{

  11. position:absolute;

  12. top:0;

  13. bottom:0;

  14. left:0;

  15. right:0;

  16. width:100%;

  17. margin:auto;

  18. z-index: -1;

  19. *zoom:1;

  20. }

  21. .img-box:before {

  22. content: "";

  23. display: inline-block;

  24. padding-bottom: 100%;

  25. width: 0.1px; /*必须要有数值,否则无法把高度撑起来*/

  26. vertical-align: middle;

  27. }

 

1、这里主要为大家说明的就是padding-bottom这个属性,当它的值为百分比的时候,是按该元素的宽度来计算的。所以当设为100%的时候,其高度就等于自身的宽度,形成一个正方形。当然,这个数值可以根据实际情再进行调整。

2、其次要说明的就是我们引用的图片是通过绝对定位来布局的,这样才能使图片跟随其父元素的大小改变来实现自适应。

 

另一种简洁的方法就是直接在img的父元素上加padding-bottom就行了

 


 
  1. <div class="img-box">

  2. <img src="123.jpg"/>

  3. </div>

 


 
  1. .img-box{

  2. padding-bottom:100%;

  3. }

  4. .img-box img{

  5. position:absolute;

  6. top:0;

  7. bottom:0;

  8. left:0;

  9. right:0;

  10. width:100%;

  11. margin:auto;

  12. }

 

 


 

 


本文转载:CSDN博客