纯css实现自适应正方形
2017-08-20 18:44
253 查看
在处理移动端页面时,我们有时会需要将banner图做成与屏幕等宽的正方形以获得最佳的体验效果,如Flipbord的移动页面:
方案一:CSS3 中新增了一组相对于可视区域百分比的长度单位 vw, vh, vmin, vmax。其中 vw 是相对于视口宽度百分比的单位,1vw = 1% viewport width, vh 是相对于视口高度百分比的单位,1vh = 1% viewport height;vmin 是相对当前视口宽高中较小 的一个的百分比单位,同理 vmax 是相对当前视口宽高中 较大 的一个的百分比单位。
利用 vw 单位,我们可以很方便做出自适应的正方形:
优点:简洁方便
缺点:浏览器兼容不好
方案二:设置垂直方向的padding撑开容器
在 CSS 盒模型中,一个比较容易被忽略的就是 margin, padding 的百分比数值计算。按照规定,margin, padding 的百分比数值是相对父元素的宽度计算的(面试官说这是他想考察的点)。由此可以发现只需将元素垂直方向的一个 padding 值设定为与 width 相同的百分比就可以制作出自适应正方形了:
这时一切看起来都很正常,我们试着给容器内增加内容:
咦?高度怎么溢出了?我们来看这时的盒模型:
如图中所示,内容区域占据了 38px 的高度。为了解决这个问题,我们可以设置容器的高度为 0:
这种方案简洁明了,且兼容性好。
原文链接:http://www.cocoachina.com/webapp/20150807/12940.html
方案一:CSS3 中新增了一组相对于可视区域百分比的长度单位 vw, vh, vmin, vmax。其中 vw 是相对于视口宽度百分比的单位,1vw = 1% viewport width, vh 是相对于视口高度百分比的单位,1vh = 1% viewport height;vmin 是相对当前视口宽高中较小 的一个的百分比单位,同理 vmax 是相对当前视口宽高中 较大 的一个的百分比单位。
利用 vw 单位,我们可以很方便做出自适应的正方形:
.placehodler{ width:50%; height: 50vw; background-color: pink; } <div class="placehodler"></div>
优点:简洁方便
缺点:浏览器兼容不好
方案二:设置垂直方向的padding撑开容器
在 CSS 盒模型中,一个比较容易被忽略的就是 margin, padding 的百分比数值计算。按照规定,margin, padding 的百分比数值是相对父元素的宽度计算的(面试官说这是他想考察的点)。由此可以发现只需将元素垂直方向的一个 padding 值设定为与 width 相同的百分比就可以制作出自适应正方形了:
.placeholder { width: 50%; padding-bottom: 50%; }
这时一切看起来都很正常,我们试着给容器内增加内容:
咦?高度怎么溢出了?我们来看这时的盒模型:
如图中所示,内容区域占据了 38px 的高度。为了解决这个问题,我们可以设置容器的高度为 0:
.placeholder { width: 50%; height:0; padding-bottom: 50%; }
这种方案简洁明了,且兼容性好。
原文链接:http://www.cocoachina.com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纯CSS实现自适应浏览器宽度的正方形
- 纯CSS实现自适应正方形
- CSS实现自适应浏览器宽度的正方形
- 【CSS实现正方形】CSS实现自适应正方形、等宽高比矩形
- css实现自适应正方形
- 纯CSS实现自适应正方形
- 纯CSS实现自适应正方形
- div等比例缩放-------纯CSS实现自适应浏览器宽度的正方形
- 根据HTML+CSS完成一个三列布局,左右侧栏宽为180px,高为300px;中间栏自适应,高为300px;中间栏子元素(宽高不确定)实现水平、垂直居中。
- CSS实现网页背景图片自适应全屏
- 不同css样式适应不同屏幕大小实现自适应宽度
- CSS实现绿色带阴影自适应宽度的菜单代码
- CSS实现圆角六色渐变自适应按钮详解
- css负边距可以实现的布局(上)左固定右自适应,多行多列,等高布局
- CSS中实现左边固定,右边自适应
- css实现等高布局 两栏自适应布局 三栏自适应布局
- css,垂直、水平自适应样式实现
- CSS实现响应式正方形
- css判断不同分辨率显示不同宽度布局实现自适应宽度
- CSS实现不同的图形(三角形、正方形、圆形、平行四边形)