div或img图片高度随宽度自适应的方法
这篇文章主要介绍了div或img图片高度随宽度自适应的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
该方法主要用来做网站自适应的,同时可以实现撑起内容高度,避免图片加载后导致的页面滚动。
一、可以使用js判断图片的宽度得到具体数值之后,再来利用js设置图片的高度(这里就不具体为大家细说了)。
利用js来实现有一个缺点就是只能在页面刷新的时候才能调整图片的高度,不能随着浏览器的窗口大小变化来实现自适应。
二、我这次主要是用css来实现图片高度的自适应问题。
下面是所需要的代码
(这种方法是可以在图片上方垂直居中展示文字的,如果不需要可以选择最下方更简洁的代码)
1 2 3 4 5 6 | < div class = "box" > < span >行内元素垂直居中</ span > < div class = "img-box" > < img src = "123.jpg" /> </ div > </ div > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | .box{ width : 50% ; margin : 50px auto ; } .img-box{ width : 100% ; position : relative ; z-index : 1 ; } .img-box img{ position : absolute ; top : 0 ; bottom : 0 ; left : 0 ; right : 0 ; width : 100% ; margin : auto ; z-index : -1 ; *zoom: 1 ; } .img-box:before { content : "" ; display : inline- block ; padding-bottom : 100% ; width : 0.1px ; /*必须要有数值,否则无法把高度撑起来*/ vertical-align : middle ; } |
1、这里主要为大家说明的就是padding-bottom这个属性,当它的值为百分比的时候,是按该元素的宽度来计算的。所以当设为100%的时候,其高度就等于自身的宽度,形成一个正方形。当然,这个数值可以根据实际情再进行调整。
2、其次要说明的就是我们引用的图片是通过绝对定位来布局的,这样才能使图片跟随其父元素的大小改变来实现自适应。
另一种简洁的方法就是直接在img的父元素上加padding-bottom就行了
1 2 3 | < div class = "img-box" > < img src = "123.jpg" /> </ div > |
1 2 3 4 5 6 7 8 9 10 11 12 | .img-box{ padding-bottom : 100% ; } .img-box img{ position : absolute ; top : 0 ; bottom : 0 ; left : 0 ; right : 0 ; width : 100% ; margin : auto ; } |
以上就是本文的全部内容,希望对大家的学习有所帮助