最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

css实现等高布局有哪些方式

来源:懂视网 责编:小采 时间:2020-11-02 22:15:19
文档

css实现等高布局有哪些方式

css实现等高布局有哪些方式:什么是等高布局?指在同一个父容器中,子元素高度相等的布局。从等高布局实现方式来说分为两类:1、伪等高子元素高度差依然存在,只是视觉上给人感觉就是等高。2、真等高子元素高度相等。伪等高实现方式:通过负margin和Padding实现真等高实现方式:1、tab
推荐度:
导读css实现等高布局有哪些方式:什么是等高布局?指在同一个父容器中,子元素高度相等的布局。从等高布局实现方式来说分为两类:1、伪等高子元素高度差依然存在,只是视觉上给人感觉就是等高。2、真等高子元素高度相等。伪等高实现方式:通过负margin和Padding实现真等高实现方式:1、tab

什么是等高布局?

指在同一个父容器中,子元素高度相等的布局。

从等高布局实现方式来说分为两类:

1、伪等高

子元素高度差依然存在,只是视觉上给人感觉就是等高。

2、真等高

子元素高度相等。

伪等高实现方式:

通过负margin和Padding实现

真等高实现方式:

1、table

2、absoult

3、flex

4、grid

5、js

(推荐教程:CSS入门教程)

伪等高之-负margin和padding

主要利用负margin来实现,如下:

 <div class="layout parent">
 <div class="left"><p>left</p></div>
 <div class="center">
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 </div>
 <div class="right"><p>right</p></div>
 <div style="clear: both;">11111111111</div>
 </div>
.parent{
 position: relative;
 overflow:hidden;
 color: #efefef;
}
.center,
.left,
.right {
 box-sizing: border-box;
 float: left;
}
.center {
 background-color: #2ECC71;
 width: 60%;
}

.left {
 width: 20%;
 background-color: #1ABC9C;
}
.right {
 width: 20%;
 background-color: #3498DB;
}
.left,
.right,
.center {
 margin-bottom: -99999px;
 padding-bottom: 99999px;
}

真实等高之 - table布局

 <div class="layout parent">
 <div class="left"><p>left</p></div>
 <div class="center">
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 </div>
 <div class="right"><p>right</p></div>
 <div style="clear: both;">11111111111</div>
 </div>
 .parent{
 position: relative;
 display: table;
 color: #efefef;
 }
 .center,
 .left,
 .right {
 box-sizing: border-box;
 display: table-cell
 }
 .center {
 background-color: #2ECC71;
 width: 60%;
 }

 .left {
 width: 20%;
 background-color: #1ABC9C;
 }
 .right {
 width: 20%;
 background-color: #3498DB;
 }

真实等高之 - absolute

 <div class="layout parent">
 <div class="left"><p>left</p> </div>
 <div class="center">
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 </div>
 <div class="right"><p>right</p></div>
 </div>
 .parent{
 position: absolute;
 color: #efefef;
 width:100%;
 height: 200px;
 }

 .left,
 .right,
 .center {
 position: absolute;
 box-sizing: border-box;
 top:0;
 bottom:0;
 }
 .center {
 background-color: #2ECC71;
 left: 200px;
 right: 300px;
 }

 .left {
 width: 200px;
 background-color: #1ABC9C;
 }
 .right {
 right:0;
 width: 300px;
 background-color: #3498DB;
 }

真实等高之 - flex

.parent{
 display: flex;
 color: #efefef;
 width:100%;
 height: 200px;
}

.left,
.right,
.center {
 box-sizing: border-box;
 flex: 1;
}
.center {
 background-color: #2ECC71;
}
.left {
 background-color: #1ABC9C;
}
.right {
 background-color: #3498DB;
}
<div class="layout parent">
 <div class="left"><p>left</p> </div>
 <div class="center">
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 </div>
 <div class="right"><p>right</p></div>
</div>

真实等高之 - grid

 .parent{
 display: grid;
 color: #efefef;
 width:100%;
 height: 200px;
 grid-template-columns: 1fr 1fr 1fr;
 }

 .left,
 .right,
 .center {
 box-sizing: border-box;
 }
 .center {
 background-color: #2ECC71;
 }
 .left {
 background-color: #1ABC9C;
 }
 .right {
 background-color: #3498DB;
 }
<div class="layout parent">
 <div class="left"><p>left</p> </div>
 <div class="center">
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 </div>
 <div class="right"><p>right</p></div>
</div>

真实等高之 - js

获取所有元素中最高列,然后再去比对再进行修改

 <div class="layout parent">
 <div class="left"><p>left</p> </div>
 <div class="center">
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 <p>我是中间部分的内容</p>
 </div>
 <div class="right"><p>right</p></div>
 </div>
 .parent{
 overflow: auto;
 color: #efefef;
 }
 .left,
 .right,
 .center {
 float: left;
 }
 .center {
 width: 60%;
 background-color: #2ECC71;
 }
 .left {
 width: 20%;
 background-color: #1ABC9C;
 }
 .right {
 width: 20%;
 background-color: #3498DB;
 }
 // 获取最高元素的高度
 var nodeList = document.querySelectorAll(".parent > div");
 var arr = [].slice.call(nodeList,0);
 var maxHeight = arr.map(function(item){
 return item.offsetHeight
 }).sort(function(a, b){
 return a - b;
 }).pop();
 arr.map(function(item){
 if(item.offsetHeight < maxHeight) {
 item.style.height = maxHeight + "px";
 }
 });

如图:

66b492e32f2ab952a1cf914ddf01fdc.png

相关视频教程推荐:css视频教程

文档

css实现等高布局有哪些方式

css实现等高布局有哪些方式:什么是等高布局?指在同一个父容器中,子元素高度相等的布局。从等高布局实现方式来说分为两类:1、伪等高子元素高度差依然存在,只是视觉上给人感觉就是等高。2、真等高子元素高度相等。伪等高实现方式:通过负margin和Padding实现真等高实现方式:1、tab
推荐度:
标签: 是什么 方法 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top