css高度随宽度比例变化的几种实现方法

所属分类: 网页制作 / CSS 阅读数: 1196
收藏 0 赞 0 分享

【方案一:padding实现】

原理:

一个元素的 padding,如果值是一个百分比,那这个百分比是相对于其父元素的宽度而言的,padding-bottom 也是如此。

使用 padding-bottom 来代替 height 来实现高度与宽度成比例的效果,将 padding-bottom设置为想要实现的 height 的值。同时将

其 height 设置为 0 以使元素的“高度”等于 padding-bottom 的值,从而实现需要的效果。

<div class="father">
    <div class="childbox"></div>
</div>
<style type="text/css">
.childbox{
  padding-bottom: 20%;
  width: 20%;
  height: 0;
  background: #888888;
}
</style>

上例宽高比是1比1,实现的是正方形,并且根据父级盒子宽度实现等比缩放 

【方案二:一个隐藏的图片来实现】

原理:

div容器如果不给定高度,它的高度会随着容器内部的元素变化而撑大,这个时候,我们在容器内部添加一张符合我们宽高比例的图片,给图片设置宽度100%;高度auto,我们知道图片只设置宽度的话,高度会随宽度来进行比例变化,自动缩放,这样我们内部的子容器的高度也就会按照比例缩放了。当然这个img你可以占位隐藏,也可以用别的盒子覆盖上。

#container {
  width: 100%;
}
.attr {
  background-color: #008b57;
}
.attr img{
  width: 100%;
  height: auto;
}
</style>
<div id='container'>
  <div class='attr'>
    <img src="1.png" alt="">
  </div>
</div>

这个方法不需要考虑任何兼容性,PC移动完美运行。除了增加了一个dom结构,但是一个页面成百上千的代码来说,不值一提。

如果你觉得增加img标签多发了http请求,那么base64图片编码可以解决这个问题,由于我们的的图片只需要一个形状而已,所

以可以大胆的压缩,然后编码,连http请求都省了。

【方案三:vw,vh】

css3的新单位(css3大法好~),我们将父容器的宽度和高度定义为相同的vw,这样父容器的高度和宽度就是相同值,这个时候,子容器的宽高值设为百分比,不管父容器大小如何变,子容器的高度和宽度比都是不会变的

单位 说明
vw 相对于视窗的宽度
vh 相对于视窗的高度
vmin 相对于视口的宽度或高度中较小的那个被均分为100单位的vmin

vmax 相对于视口的宽度或高度中较大的那个被均分为100单位的vmax

<div class="father">
    <div class="childbox"></div>
</div>
.childbox{    
  width: 20%;
  height: 20vw;
  background: #888888;
}

到此这篇关于css高度随宽度比例变化的几种实现方法的文章就介绍到这了,更多相关css高度随宽度变化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

更多精彩内容其他人还在看

CSS去除移动端点击时元素产生的背景色 (推荐)

这篇文章主要介绍了CSS去除移动端点击时元素产生的背景色 (推荐),代码很简单,需要的朋友跟随小编一起看看吧
收藏 0 赞 0 分享

详解CSS Sprite雪碧图的应用

这篇文章主要介绍了详解CSS Sprite雪碧图的应用,CSS雪碧图该方法是将多个小图标和背景图像合并到一张图片上,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

css和html的四种结合方式

这篇文章主要介绍了css和html的四种结合方式,需要的朋友可以参考下
收藏 0 赞 0 分享

CSS3 Flex 弹性布局实例代码详解

这篇文章主要介绍了CSS3 Flex 弹性布局实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

纯css3实现思维导图样式示例

思维导图又称之为脑图,本篇文章主要介绍了使用css3实现思维导图样式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

使用CSS属性选择器来拼接HTML的DNA的方法

CSS属性选择器非常神奇,它们可以帮你避免添加数不胜数的类名,从另一方面来指出你代码里的一些问题。接下来通过本文给大家介绍使用CSS属性选择器来拼接HTML的DNA的方法,需要的朋友参考下吧
收藏 0 赞 0 分享

css文本两端对齐的实现代码

这篇文章主要介绍了css文本两端对齐的实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

CSS多级菜单的实现代码

这篇文章主要介绍了CSS多级菜单的实现代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

CSS未知高度垂直居中的实现

这篇文章主要介绍了CSS未知高度垂直居中的实现,详细的介绍了几种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

CSS 、JS实现浪漫流星雨动画

这篇文章主要介绍了CSS 、JS实现浪漫流星雨动画的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多