多列等高布局
来源:互联网 发布:怎样制作淘宝优惠券 编辑:程序博客网 时间:2024/04/26 17:48
多列布局—等高
需求:当两列的内容变化时,要保证内容相同,且和较长的那列相同。
<!DOCTYPE html><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>测试专用</title> <style type="text/css"> *{margin: 0;padding: 0;} .parent{border:1px solid black;color: #fff;} .left{width: 80px; background: black;} .right{background: gray;} </style></head><body> <div class="parent"> <div class="left"> <p>left</p> </div> <div class="right"> <p>right</p> <p>right</p> </div> </div></body></html>
解决方案一:table
同一行的表格单元格都是等高的所以可以解决这个问题
.parent{display:table;width:100%;table-layout:fixed;height: 100%;}.left,.right{display:table-cell;}.left{width:80px;padding-right:20px;background-clip: content-box;}.left p{height: 100%;}/*扩充内容,可以尝试一下没有这条语句是什么效果*/
在“等高”的table方案中,使用padding-right的方案来处理间距会存在部分兼容问题。
- 问题表现:
在webkit和ie内核中会有这个问题,而firefox正常。从表现上看,似乎chrome等浏览器无故多出了其他padding,如padding-bottom,从而导致了用background-clip:content-box来裁剪背景后背景没有等高的问题。 - 问题解决:
1. 方案1,为parent增加上属性height: 100%;
正如上面的代码处理一样,可以试试去掉这个属性的效果。
2. 方案2,我们可以去掉padding-right的设置,变成border-right:20px solid transparent,然后把background-clilp改成padding-box,问题就解决了。
解决方案二:flex
由于flex的align-items的默认值是stretch,所以可以拉伸至等高
.parent{display:flex;}.left{mergin-right:10px;}.right{flex:1;}
解决方案三:float
float没有天然的属性可以满足等高,同时我们知道填充背景色会包括padding,所以我们先用padding扩张,然后用margin收缩
.left,.right{padding-bottom:9999px;margin-bottom:-9999px;}.parent{overflow:hidden;}
这样的等高是伪等高,实际上只是背景色填充区域的高度相同。
阅读全文
0 0
- 多列等高布局
- 多列等高布局
- 多列等高布局
- 页面布局 --- 多列等高布局
- 等高列布局
- 等高列布局
- 多列等高CSS布局
- 1.多列等高布局
- CSS布局之-多列等高
- 两列等高布局
- 两列或多列等高布局实现
- Web页面中八种创建多列等高(等高列布局)的实现技术
- 多列布局:定宽+自适应,不定宽+自适应,等宽布局,等高布局
- css 布局之:左右及多列等高
- CSS布局奇淫技巧之-多列等高
- CSS布局奇淫技巧之-多列等高
- margin-bottom负值实现多列等高布局
- 【多列等高布局】三种方法,各取所需:
- 数据结构实验二之顺序表
- Golang
- TCP粘包与拆包问题
- 亮眼的弹出框--SweetAlert2
- 小白做游戏的辛酸路程
- 多列等高布局
- Android保存图片到系统图库
- iOS app配置多环境变量和制作马甲包
- Range Query-代价模型
- Java集合
- POJ 1192 最优连通子集 (树形dp)
- 杭电2010 水仙花数
- python通过串口读取GPS NMEA格式的数据,并保存为csv文件
- 今天看到的一个有趣面试题:return *this和return this有什么区别?