css实现高度height随宽度width变化保持比例不变

方法1

在保持元素宽高比恒定的情况下,要使得元素可以和父元素同比缩放。此时会用到 padding。
需要知道的是:一个元素的 padding,如果值是一个百分比,那这个百分比是相对于其父元素的宽度而言的,padding-bottom 也是如此。
使用 padding-bottom 来代替 height 来实现高度与宽度成比例的效果,将 padding-bottom 设置为想要实现的 height 的值。同时将其 height 设置为 0 以使元素的“高度”等于 padding-bottom 的值,从而实现需要的效果。
此时CSS代码如下:

div {
  padding-bottom: 20%;
  height: 0;
}

方法2

用vh单位
html

<!DOCTYPE html>
<html><head> 
<meta charset="utf-8"> 
<title>JS Bin</title>
</head>
<body>
<div class="ui-square-nerd"></div> 
<div class="ui-square"></div>
</body>
</html>

css

.ui-square-nerd {  
width: 20%;  
height: 0;  
padding-bottom: 20%; 
background: blue;
} 

.ui-square {  
margin-top: 30px;  
width: 20vh;  
height: 20vh;  
background: green;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如何通过CSS实现高度 height 随宽度 width 变化而变化,保持长宽比例不变,宽度是根据父元素宽度变化的...
    独享奢华阅读 33,712评论 5 13
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,634评论 0 6
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 2,055评论 1 4
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,342评论 0 11
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,228评论 0 8