您现在的位置是:网站首页> 编程资料编程资料
纯Css实现Div高度根据自适应宽度(百分比)调整css和css3弹性盒模型实现元素宽度(高度)自适应css 高度自适应的问题示例探讨CSS min-height IE6、IE7、FF下DIV自适应高度纯CSS无hacks的跨游览器自适应高度多列布局 推荐css textarea 高度自适应,无滚动条CSS解决未知高度的垂直水平居中自适应问题CSS 实现高度自适应铺满整屏的实现
2021-09-03
886人已围观
简介 这篇文章主要介绍了纯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

这个时候可能有人要问了,这个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的子元素的定位,一样可以正常显示

这样就可以通过设定父级元素father、我们需要的元素element、子级元素datail来实现任意情况下该需求(div宽高定比例)。
到此这篇关于纯Css实现Div高度根据自适应宽度(百分比)调整的文章就介绍到这了,更多相关Css Div高度根据自适应宽度调整内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 纯CSS实现iOS风格打开关闭选择框功能CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 纯CSS实现自定义单选框和复选框功能HTML+CSS实现单选框、复选框美观的样式利用CSS3实现单选框动画特效示例代码纯css3实现效果超级炫的checkbox复选框和radio单选框CSS3实例分享--超炫checkbox复选框和radio单选框CSS3实现的表单单选框、复选框特效CSS3实现复选框动画特效示例代码 CSS自定义绿色复选框按钮样式使用CSS实现页面复选框的方法
- 纯CSS3实现鼠标滑过按钮动画第二节CSS实现鼠标滑过鼠标点击代码写法CSS3制作炫酷带方向感应的鼠标滑过图片3D动画纯CSS3实现8组超炫酷鼠标滑过图片动画css实现鼠标滑过五角星高亮效果 纯CSS实现鼠标滑过显示子菜单的二级菜单效果CSS实现鼠标滑过文字弹出一段说明文字无JS代码纯css实现鼠标滑过弹出层效果CSS控制当鼠标滑过时更换图片的效果css实现鼠标滑过改变文字(中文变英文)使用css的filter写鼠标滑过效果的实现示例
- CSS中@用法小结(示例详解)CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS中引用svg图片支持动态切换颜色的实现代码基于Css Variable的主题切换完美解决方案(推荐)详解如何简单实现CSS主题的切换纯css实现选中切换效果的示例使用CSS实现黑暗模式和高亮模式的切换功能纯CSS免费让网站拥有暗黑模式切换功能的实现代码
- 在CSS网格布局中的列中填充项目的实现方法CSS3中的display:grid,网格布局介绍js和CSS3实现带详情页面的炫酷网格布局特效CSS Grid 网格布局全解析CSS网格布局的示例代码CSS Grid布局教程之什么是网格布局
- CSS实现鼠标移入时图片的放大效果及缓慢过渡效果的示例代码浅谈CSS3鼠标移入图片动态提示效果(transform)css3+伪元素实现鼠标移入时下划线向两边展开的效果纯css写的评分鼠标移入的效果附图纯CSS实现商品图片点击放大效果
- CSS 实现 10 种现代布局的代码CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- css实现图片自适应容器的几种方式(小结)CSS将img图片填满父容器div自适应容器大小的实现方法CSS实现宽高等比自适应容器的方法css实现图片自适应容器的示例代码
- 使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例Flex布局让子项保持自身高度的实现让CSS flex布局最后一行列表左对齐的N种方法(小结)css3 flex布局实现平均分配元素的示例代码flex布局实现上下固定中间滑动的布局方式flex是什么及flex布局语法教程详解
