美文网首页Web 前端开发 让前端飞
如何实现多列等高布局?

如何实现多列等高布局?

作者: 葶寳寳 | 来源:发表于2017-08-28 14:16 被阅读0次

其实现原理就是给每一列添加相对应用的容器,并进行相互嵌套,并在每个容器中设置背景色。这里需要提醒大家你有多少列就需要多少个容器,比如说我们说的三列,那么你就需要使用三个容器

以三列布局为例,具体实现如下:

<div id="container3"> 
   <div id="container2"> 
      <div id="container1"> 
           <div id="col1">Column 1</div> 
           <div id="col2">Column 2</div> 
           <div id="col3">Column 3</div> 
      </div> 
   </div> 
</div>
#container3 { 
  float: left; 
  width: 100%; 
  background: green;
  overflow: hidden; 
  position: relative; 
}

#container2 { 
  float: left; 
  width: 100%; 
  background: yellow; 
  position: relative; 
  right: 30%; /*大小等于col3的宽度*/ 
}
 
#container1 { 
  float: left; 
  width: 100%; 
  background: orange; 
  position: relative; 
  right: 40%;/*大小等于col2的宽度*/
} 

#col1 { 
  float:left; 
  width:26%;/*增加了2%的padding,所以宽度减少4%*/ 
  position: relative; l
  eft: 72%;/*距左边呀增加2%就成72%*/ overflow: hidden; 
} 

#col2 { 
  float:left; 
  width:36%;/*增加了2%的padding,所以宽度减少4%*/   
  position: relative; left: 76%;/*距左边有三个padding为2%,所以距离变成76%*/ 
  overflow: hidden; 
} 

#col3 { 
  float:left; 
  width:26%;/*增加了2%的padding,所以宽度减少4%*/ 
  position: relative; 
  left: 80%;/*距左边5个padding为2%,所以距离变成80%*/ 
  overflow: hidden; 
} 

实现过程解析:
我们有三列,并且也说过了,这三列内容都放在了三个容器的div中,我们每一列的背景色不是放在内容列中,而是放置在容器中,现在我们需要通过对容器进行相对定位,把背景显示出来,而且我们这个容器是最外层的不能进行相对定位的移动,具体的请看下图:

三列等高布局实现过程

上面我们把容器进行了相对定位,这样一来,我们内容也相应的做了移动,现在我们需要对页面列的内容也进行相对定位,并把内容和容器进行相反方向的定位,这样内容和容器背景色就能对应上了,请看下图所展示的:

三列等高布局实现过程
接下来我们需要把溢出的部分切掉去,和前面一样,在最外面的容器加上overflow:hidden;这样就OK了。

最后为了让你的效果更加好看一点,你可以尝试给他们加上padding,比如说每列加上2%padding值,具体实现可以简单从下图中得到:

三列等高布局加padding实现过程

优点:
兼容各浏览器,可以制作流体等高列,无列数限制。
缺点:
标签使用较多,结构过于复杂,不易于理解,不过你掌握了其原理也就不难了,这也不算太大缺点。

转自 八种创建等高列布局的部分内容

相关文章

  • 如何实现多列等高布局?

    其实现原理就是给每一列添加相对应用的容器,并进行相互嵌套,并在每个容器中设置背景色。这里需要提醒大家你有多少列就需...

  • 页面架构

    布局解决方案 水平居中布局 垂直居中布局 水平垂直都居中的布局 多列布局 多列等分布局 多列等高布局 在多列布局的...

  • 多列等高布局

    flex布局 table

  • 多列等高布局

    之所以会出现多列等高布局,是因为在网页设计中可能会出现以下状况。 出现这种情况的原因也很简单,就是各个 div 标...

  • 圣杯布局(holy grail)总结

    什么是圣杯布局? 根据 wikipedia词条,圣杯指多列等高的网页布局。因为目前的实现方法都存在局限,而又很难找...

  • 多列等高实现

    需求 无法提前获知最高列的长度时实现多列等高对齐的方法 兼容最好的方法--padding补偿法 原理:用paddi...

  • 2018-03-19 css 实现左列定宽,右列自适应宽度,等高

    上次面试提到了一个css布局:实现左列定宽,右列自适应宽度,等高布局上次没有答出来,只实现了左列定宽,右列自适应宽...

  • 2018-08-30日前端面试题

    点击查看源码 1、css实现两列布局 1.右侧固定宽度,左侧自适应屏幕宽度;2.左右两列等高布局;3.左右两列的高...

  • css常见布局(二)

    采用flex实现两列,三列等多列的布局 一、两列布局 二、三列布局

  • display:table-cell

    一、垂直居中 二、左右布局 三、三列布局 四、等高布局

网友评论

    本文标题:如何实现多列等高布局?

    本文链接:https://www.haomeiwen.com/subject/mtfgdxtx.html