首页 > 网页制作 > css教程 > 正文

css设置多列等高布局的方法示例_CSS教程_CSS_网页制作

2018-10-10 20:26:38

初始时,多个列内容大小不同,高度不同。现在需要设置不同的背景来显示,而且各个列的高度需要保持一致。那么这就需要利用到多列等高布局。

最终需要的效果:

 

1. 真实等高布局

flex 技术点:弹性盒子布局flex,默认值就是自带等高布局的特点。

定义flex布局的时候,有一些默认值。

flex-direction 属性定义主轴的方向。默认值为 row ,一般是水平显示。flex容器的主轴被定义为与文本方向相同。 主轴起点和主轴终点与内容方向相同。

align-item 属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。默认值为 stretch ,元素被拉伸以适应容器。

<div class="box">  <div class="left"></div>  <div class="center"></div>  <div class="right"></div></div>

css

.box {  display: flex;}.left {  width: 300px;  background-color: grey;}.center {  flex: 1;  background: red;}.right {  width: 500px;  background: yellow;}

See the Pen equal-hight-layout-flex by weiqinl ( @weiqinl ) on CodePen .

2. 真实等高布局

table-cell 技术点:table布局天然就具有等高的特性。

display设置为 table-cell ,则此元素会作为一个表格单元格显示。类似于使用标签 <td> 或者 <th>

HTML结构

<div class="box">  <div class="left"></div>  <div class="center"></div>  <div class="right"></div></div>

CSS样式

.left {  display: table-cell;  width:30%;  background-color: greenyellow;}.center {  display: table-cell;  width:30%;  background-color: gray;}.right {  display: table-cell;  width:30%;  background-color: yellowgreen;}

3. 假等高列布局 内外边距底部正负值

实现:设置父容器的overflow属性为hidden。给每列设置比较大的底内边距,然后用数值相似的负外边距消除这个高度。

  • 不考虑可扩展性,只需要将padding-bottom/margin-bottom ,设置为最高列与最低列相差高度值,就可以得到等高效果。
  • 考虑扩展性,为了防止将来可能某列高度大量的增加或减少,所有,我们设置了一个比较大的值。

技术点

  • background 会填充内边距 padding,而不会填充外边距 margin 。margin具有坍塌性,可以设置负值。
  • float:left。使用float,元素会脱离文档流,使其浮动至最近的文档流元素。在这里的作用是,将三个div元素并排。
  • overflow:hidden; 设置overflow属性为hidden,同时会产生 块级格式化上下文(BFC),消除float带来的影响。同时,根据需要,会截取内容以适应填充框,将超出容器的部分隐藏。

HTML结构

<div class="box">  <div class="left"></div>  <div class="center"></div>  <div class="right"></div></div>

CSS

.box {  overflow: hidden;}.box > div{  /**  * padding-bottom 设置比较大的正值。  * margin-bottom 设置绝对值大的负值。  **/  padding-bottom: 10000px;  margin-bottom: -10000px;  float:left;  width:30%;}.left {  background-color: greenyellow;}.center {  background-color: gray;}.right {  background-color: yellowgreen;}

4. 假等高布局,背景视觉效果

技术点: float浮动,并设置每一列的宽度。设置父元素为行内块级元素,之后再利用线性渐变的图片来设置父元素的背景凸显等高的效果

CSS linear-gradient 函数用于创建一个表示两种或多种颜色线性渐变的图片。

display: inline-block ,设置为行内块级元素。

<div class="box five-columns">    <div class="col"></div>    <div class="col"></div>    <div class="col"></div>    <div class="col"></div>    <div class="col"></div></div>

css

/** 需要自己算出平均每列的宽度 */.box {  display: inline-block;  background: linear-gradient(    to right,     red,     red 20%,    blue 20%,    blue 40%,    yellow 40%,    yellow 60%,    orange 60%,    orange 80%,    grey 80%,    grey);} .col {  float: left;   width: 16%;  padding: 2%;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 相关标签:css教程
  • 本文发布HTML5中文学习网 ,转载请注明出处,感谢您!
  • 相关文章


  • 曝网友假装外国人写投诉信 ofo秒退押金并回函致歉
  • 苹果市值缩水逾2000亿美元 遭多家投行下调目标价
  • Asp.net Core与类库读取配置文件信息的方法_实用技巧
  • asp.net在Repeater嵌套的Repeater中使用复选框详解_实用技巧
  • 利用IIS调试ASP.NET网站程序的完整步骤_实用技巧
  • Asp.Net Core轻松学习系列之配置文件_实用技巧
  • ASP.NET 页生命周期概述(小结)_实用技巧
  • 详解ASP.NET Core WebApi 返回统一格式参数_实用技巧
  • 2018年网络流行语有哪些?2018年十大网络流行语盘点
  • 华为首席财务官孟晚舟被暂扣 深圳市政府要求加方立即放人!
  • 独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    作者信息

    kevin

    永远在学习的路上!

    相关教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 热门教程