博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯css实现高度与宽度成给定比例的效果
阅读量:6158 次
发布时间:2019-06-21

本文共 1211 字,大约阅读时间需要 4 分钟。

hot3.png

这几天做一个列表,要求是在每一个item中的图片都能按照规定的比例显示.对于image标签来说,如果是自然的显示原图片的比例的话, 下面的css代码可以满足:( 在booststrap中,也是下面的写法)

.img{    display: block;    max-width: 100%;    height: auto;}

前面的话

描述

但是现在要求不一样了,比如我要求每个图片必须按照比如4:3的比例显示出来,不用在乎图片是否被拉伸变形.这样的目的是实现图片的响应不同设备,保证图片等比例.如果仅仅通过width和height属性是不到的,即便height设置成百分比.

可以设置的height属性的元素的高度基于包含它的块级对象的百分比高度。

当然,采用js的办法肯定是可以解决的,但是用了js后,总是有一个被强X的感觉,((⊙o⊙)…).不想用js怎么办.

解决

经过一番谷歌之后,还是找到了我想要的结果,参考的文章在最后.人家说的比我是详细,多多向人家学习~~

文中作者采用的方法是利用了padding-top/padding-bottom属性,根据他的解释,`padding'如果是百分比的话,那这个百分比是相对于其父元素的宽度而言的

而作者使用到了另一个属性overflow,另外,在计算 Overflow 时,是将元素的内容区域(即 width / height 对应的区域)和 Padding 区域一起计算的。换句话说,即使将元素的 overflow 设置为 hidden,“溢出”到 Padding 区域的内容也会照常显示。

这样就能使用padding-top/padding-bottom来代替height属性了.比如你想要让元素的按在4:3的比例显示,width设置成了30%,那么padding-top/padding-bottom只需要设置成为 40%就可以了.同时把height设为0.css代码如下:

.img-3-4 {  margin: 10px;  padding-bottom: 30%;  width: 40%;  height: 0;  background-color: #dbe0e4;}

栗子如下:

我们发现不论背景图片或者颜色是什么样,我这个元素始终按照4:3的比例显示

小结

  • 到这里可以发现,要讲的不仅仅是图片img的怎么去按照固定的比例设置了,而是利用padding将元素设置为固定比例,核心就是利用padding属性的值是百分比的话,是以父级元素的width走的.
  • padding真心十分好用,查阅一些资料,都说比margin的问题要少.
  • 今日头条的wap首页的列表也采用的这种方法.点击查看
  • 基础知识十分重要啊!!!基础好+做的多,才会有思路.

参考

转载于:https://my.oschina.net/wang2014jojo/blog/704545

你可能感兴趣的文章
正则表达式的知识普及
查看>>
docker使用笔记
查看>>
华为eNSP模拟器上实现FTP服务
查看>>
【全球AI人才排行榜】美国第一,中国仅排名第7
查看>>
微信小程序输入框input
查看>>
MySql字符串函数使用技巧
查看>>
Doc2Vec,Word2Vec文本相似度 初体验。
查看>>
系统ghost后变成一个盘了别的分区的文件怎么找回
查看>>
Win7+Ubuntu11
查看>>
请问华为三层交换机里面的那个从IP是个什么意思? -
查看>>
kFeedback开源啦
查看>>
大数据传输,文件传输的专业解决方案!
查看>>
阿里云专家穆轩的《杭州九年程序员之“修炼”手册》
查看>>
JQuery:deferred对象的方法
查看>>
eyoucms问答 百度权重是什么
查看>>
win10中遇到qq视频时摄像头打不开没反应的解决方法
查看>>
介绍自己的一个Android插桩热修复框架项目QuickPatch
查看>>
关于textarea的ie9的maxlength不起作用的问题,请参考如下URL解决。
查看>>
Solr Facet 查询
查看>>
C++类的继承一
查看>>