分享好友 教程首页 教程搜索 频道列表

前端css实现高度等于宽度

2022-08-17 20:496050
+关注2
核心提示:今天在开发时遇到一个问题,如何使高度等于百分比的宽度。原本的想法是通过js获取...

今天在开发时遇到一个问题,如何使高度等于百分比的宽度。原本的想法是通过js获取,但是这个方法感觉太麻烦,希望能用css做的事情就不要js去做。


完美的方案是通过padding来实现的。


原理

padding的定义:


padding属性设置一个元素的内边距,padding 区域指一个元素的内容和其边界之间的空间,该属性不能为负值。


取值

<长度>

可指定非负的固定宽度. See <length> for details.

<百分比>

相对于包含块的宽度


看最后一句话“相对于包含块的宽度”,意思是padding的百分比基数是包含块的宽度(父元素的宽度),如果父元素是100px,padding-top: 20%;就相当于padding-top: 20px。


应用

接下来根据这一特性开始实现让div的高度等于宽度。


假设是一个div占据屏幕中间90%的区域显示,图片比例是1:1。


首先画一个90%宽,比例为1:1的区域

div{
    width: 90%;
    height: 0;
    margin: 0 auto;
    padding-top: 90%;
}


图片要放置在这个区域,但是发现高度为0,通过绝对定位实现,

div>img{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}


假设现在的图片比例是4:3,我们要怎么计算呢 90% / 4 * 3 = 67.5%,其他比例安装这个公式去计算就好。

下面是完整的代码和截取的一个小例子:

<div class="banner">
   <img src="xxx.jpg"/>
</div>


CSS

.banner{
  width: 90%;
  height: 0;
  margin: 0 auto;
  padding-bottom: 90%;
  padding-bottom: 67.5%; 
  position: relative;
}
.banner > img{
  position: absolute;
  width: 100%;
  height: 100%;
}


本文标签: #宽度 #高度 #相同 #高度等于宽度
整理员:网络转载
免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
生成海报
您可能在找更多

常规的css宽度减法使用说明

    其实在CSS中,是可以用减法的,看详情学方法

小黑 CSS教程 12023-04-06

js获取浏览器宽度

    网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:d

小黑 JavaScript教程2022-08-20

修改destoon商铺默认的横幅高宽度参数

    修改代码测试

模板开发网 destoon程序2022-06-07

为啥a标签不能设置宽度?

    为啥a标签不能设置宽度?在a标签上用css设置宽度没有任何反应,到底是为什么那?因为行内元素都是不能设置宽高的,a标签也是行内元素,所以也不能设置宽度,如果想设置宽度,必须把行内元素转换为block或者inline-bl

网络转载 CSS相关2021-10-03

设计一个手机网站的尺寸宽度是用640px还是750px

    iPhone手机网页的设计尺寸iPhone5尺寸是640x1136px分辨率是326PPIiPhone4和iPhone4S尺寸是640x960px分辨率是326PPIiPhone和iPodTouch第一代、第二代、第三代尺寸是320x480px分辨率是163PPI安卓网页的设计尺寸320dp:一个普通的手机屏幕(240x320,320×480,480x800)480dp:一个中间平板电脑像(480×800)600dp:7寸平板电脑(600×1024)720

小黑 web前端开发2020-03-25

下一篇
我来说两句
抢沙发