纯Css如何实现Div高度根据自适应宽度调整 您所在的位置:网站首页 div设置宽高 纯Css如何实现Div高度根据自适应宽度调整

纯Css如何实现Div高度根据自适应宽度调整

#纯Css如何实现Div高度根据自适应宽度调整| 来源: 网络整理| 查看: 265

纯Css如何实现Div高度根据自适应宽度调整 发布时间:2021-03-17 14:19:54 来源:亿速云 阅读:290 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关纯Css如何实现Div高度根据自适应宽度调整,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在如今响应式布局的要求下,很多能自动调整尺寸的元素能够做到高宽自适应,如img,通过{width:50%;height:auto;}实现图片高度跟随宽度比例调整。

然而,用的最多的标签一哥Div却不能做到自动调整(要么从父级继承,要么自行指定px,要么给百分比!但是这个百分比是根据父级的高度来计算的,根本不是根据元素自身的宽度,那么就做不到Div的宽高达成一定的比例=-=)。

要实现这种功能(div的高度:宽度=1:1),通过各种加Buff,得知有以下几种处理方式

1,直接指定div的宽高+zoom来实现自适应

div{width:50px;heigth:50px;zoom:1.1;}

这样能达到初步的等宽高div,但是局限性太大,PASS!

2,通过js动态判断div的宽度来设置高度

div{width:50%;} window.onresize = function(){div.height(div.width);}

也能实现等宽高div,但是总觉得有点别扭,PASS!

3,通过宽高单位来设置

div{width:20vw;height:20vw;/*20vw为viewport width的20%*/}

但是很多设备不支持这个属性,兼容性太差,PASS!

4,通过float来设置

#aa{background:#aaa;;} #bb{background:#ddd;;float:left} #cc{background:#eee;;float:right} 父div   子div   子div   就是这个用于clear错误的

能够让父级元素aa根据子元素的高度自动改变高度(在子元素里放置自适应元素)来调整高宽比一致,然而太麻烦,PASS!

5,终于到最终大杀器了,通过padding来实现此功能

通过以上几个方案的实验,发现宽度的自适应是根据viewport的width来调整的,比如{width:50%}就是浏览器可视区域的50%,resize之后也会自动调整。

而height指定百分比后,他会自行找到viewport的height来调整,跟width一毛钱关系没有,自然两者不能达到比例关系了。通过这个思路,要找到一个能跟viewport的width扯上裙带关系的属性,就能解决这个问题了。

这个属性就是padding,padding是根据viewport的width来调整的,巧就巧在padding-top和padding-bottom也是根据viewport的width来计算的,那么通过设置这个属性就能跟width达成某种比例关系了,

我们首先指定元素的width为父级元素的50%(父级元素为任意有高宽的元素,不能指定特定父级元素,否则影响此方案的通用性)

.father{width:100px;height:100px;background:#222} .element{width:50%;background:#eee;}

这个时候我们再设置element的height为0,padding-bottom:50%;

.element{width:50%;height:0;padding-bottom:50%;background:#eee;}

element就变成了一个宽度50%,高度为0(但是他有50%width的padding-bottom)的正方形了,效果如下图灰白色的div

纯Css如何实现Div高度根据自适应宽度调整

这个时候可能有人要问了,这个div的高度为0,那如果我要在element里放置元素呢,那岂不是overflow了,这里就要提到overflow属性了,它的计算是包括div的content和padding的,也就是说,

原来你的div可能是个{width:50px;height:50px;padding:0}的div,现在变成{width:50px;height:0;padding-bottom:50px;}的div了,尺寸还是一样的,通过指定这个div的子元素的定位,一样可以正常显示

纯Css如何实现Div高度根据自适应宽度调整

这样就可以通过设定父级元素father、我们需要的元素element、子级元素datail来实现任意情况下该需求(div宽高定比例)。

关于“纯Css如何实现Div高度根据自适应宽度调整”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css div 上一篇新闻:CSS中如何引用svg图片支持动态切换颜色 下一篇新闻:css命名:BEM, scoped css, css modules与css-in-js的示例分析 香港云服务器 10000元红包免费领

红包可用于(云服务器、高防服务器、裸金属服务器、高防IP、云数据库、CDN加速)购买和续费

猜你喜欢 sass和bootstrap有什么区别 HTML5怎样实现图片无限加载瀑布流效果 Shell逐行处理文本求和的示例分析 这么在Spring Cloud中使用Sleuth JavaScript运算符的示例分析 Java中原型模式的示例分析 JavaScript中回调、Promise和Async/Await的示例分析 2021最新TIOBE编程语言排行榜 Spring中如何进行日常Bug排查 Javascript中运算符的示例分析


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有