用CSS写多列等高布局的方法及代码是什么
Admin 2022-06-09 群英技术资讯 318 次浏览
初始时,多个列内容大小不同,高度不同。现在需要设置不同的背景来显示,而且各个列的高度需要保持一致。那么这就需要利用到多列等高布局。
最终需要的效果:
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。给每列设置比较大的底内边距,然后用数值相似的负外边距消除这个高度。
技术点
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%; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了CSS中clip-path属性的使用详解,clip-path属性可以创建一个只有元素的部分区域可以显示的剪切区域。非常具有实用价值,需要的朋友可以参考下
这篇文章主要介绍了CSS中em的正确打开方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,,需要的朋友可以参考下
怎么用CSS+HTMl绘画出一个爱心,思路是什么?下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
css中ex是一种相对长度单位,表示相对于当前字体的“x-height”长度,也就是相对于字符“x”的高度,通常为字体高度的一半,语法为“大小属性:数值ex;”。
在css中,font的意思是“字体”,是一个简写属性,用于设置所有字体属性;font属性可以按顺序设置字体的样式,语法为“元素{font:style variant weight size/height family;}”。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008