5个Flexbox小技巧

简介: 5个Flexbox小技巧

Flexbox是一个用于网页布局的CSS标准。通过使用一些flexbox属性,我们可以跳出传统块状布局的束缚,轻松设计出我们需要的布局。使用Flexbox可以使你的网站和应用支持响应式,在不同屏幕大小的设备都能获得良好的视觉效果。下面给大家分享5个解决了传统CSS布局难点的Flexbox小技巧。


1、创建等高的列


这个任务看上去不难,但实际操作起来你会发现它很费事。设置min-height?然并卵。因为一旦某一列的内容比其他列要多,那么这一列就会被撑起来,其他列明显会比它矮一截。用flexbox来解决这个问题轻而易举。用flexbox创建的列默认是等高的,我们只需要定义一个flex模型并设置好flex-direction和align-items属性即可。

<div class="flexbox-container">
    <div><h3>Column 1</h3></div>
    <div><h3>Column 2</h3></div>
</div>


.flexbox-container {
    display: -ms-flex;
    display: -webkit-flex;
    display: flex;
        padding: 20px;
        background:#eee;
}
.flexbox-container > div {
    width: 50%;
    padding: 10px;
        background:#fff;
}
.flexbox-container > div:first-child {
    margin-right: 20px;
}

效果图:

f243a1a11198aeec75160d30a3eb8e47_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


2、元素的动态排序


过去,如果我们需要动态地给元素进行排序,我们需要通过JavaScript来实现。然而利用flexbox之后,我们通过设置CSS属性即可实现这一功能。这个属性叫做order。顾名思义,它可以给flex子元素设置显示顺序,不论他们在html文件中的顺序如何,他们都会遵循order属性的值来调整顺序。order的值表示优先级。元素的order值越小,优先级越高。

HTML:

<div class="container">
  <div class="blue"></div>
  <div class="red"></div>
  <div class="green"></div>
</div>

CSS:

.container{
  display: flex;
}
.blue{
  order: 3;
}
.red{
  order: 2;
}
.green{
  order: 1;
}


3、水平和垂直居中


垂直居中一直令前端开发者头疼不已。解决方案五花八门,很多并不是用于布局的元素和属性都被用上了。用了flexbox后,居中问题再也难不倒我们了。Flex的布局中包含主轴和侧轴两个方向轴(可以理解为X轴和Y轴),我们只需要保持子元素在主轴和侧轴上都居中即可将其置于父容器的中心位置。

HTML:

<div class="container">
  <div></div>
</div>

CSS:

.container{
  display: flex;
  justify-content: center;
        align-items: center;
}


4、创建响应式的栅格系统


多数开发者利用一些CSS框架来创建响应式栅格系统。除了最受欢迎的Bootstrap以外还有上百种库可以帮助开发者创建强大的栅格系统。他们有着很好的实现效果,但是有很多功能我们虽然没有用到却不得不和栅格系统一同引入我们的项目。如果你是一个热衷于DIY的开发者,并且不想仅仅因为栅格系统而去引入各种第三方库的话,你不妨试试flexbox。

Flexbox创建的栅格系统中每一行的元素都放在一个设置了display:flex样式的父容器中。容器中元素的大小通过flex属性来设置。flex的大小是根据设备自适应的,因此在不同大小的设备上都能获得很好的效果。

HTML:

<div class="container">
  <div class="col-1">...</div>
  <div class="col-2">...</div>
  <div class="col-1">...</div>
</div>

CSS:

.container{
  display: flex;
}
.col-1{
  flex: 1;
}
.col-2{
  flex: 2;
}


5、创建一个固定的页脚


flexbox可以很好地解决这个问题。我们只需要将页脚添加到特定的flex容器中即可保证它永远固定在页面底部。将display:flex属性应用到body元素上可以保证整个页面都应用flexbox的属性,同时页面的主要内容和页脚各自作为body中的一个子元素。这样调整他们的位置就很easy了。

HTML:

<body>
  <div class="main">...</div>
  <footer>...</footer>
</body>

CSS:

html{
    height: 100%;
}
body{
    display: flex;
    flex-direction: column;
    height: 100%;
}
.main{
   flex: 1 0 auto;
}
footer{
   flex: 0 0 auto;
}

目录
相关文章
|
15天前
|
UED 容器
使用Flexbox布局实现响应式设计
【10月更文挑战第27天】
|
15天前
|
前端开发 容器
|
4月前
|
前端开发 容器
CSS Flexbox(弹性布局)
CSS Flexbox(弹性布局)
|
6月前
|
前端开发 定位技术 开发者
构建响应式网页布局:弹性盒模型(Flexbox)全面指南
【2月更文挑战第13天】 在现代前端开发中,构建灵活且响应式的网页布局是至关重要的。传统的浮动和定位技术往往复杂且难以维护,而CSS3引入的弹性盒模型(Flexbox)提供了一种更为高效和直观的方式来创建复杂的布局结构。本文将深入探讨Flexbox的核心概念、关键属性以及如何利用这一强大的工具来设计适应不同屏幕尺寸的用户界面。通过实例演示和最佳实践,我们将掌握如何使用Flexbox提升布局的灵活性和可访问性。
|
6月前
|
容器 前端开发
弹性盒子(flexbox)
弹性盒子(Flexbox)是CSS3中引入的一种强大且兼容性好的布局方法,它可以让你轻松地处理页面上的元素布局,并创建可以自动缩小和放大的动态用户界面。使用弹性盒子布局模型,可以告别浮动,完美实现垂直水平居中,提高页面排版的灵活性和效率。
183 1
|
Web App开发 前端开发 算法
探索现代CSS布局技术:Flexbox和Grid
探索现代CSS布局技术:Flexbox和Grid
探索现代CSS布局技术:Flexbox和Grid
|
前端开发 Cloud Native Go
《深入Flexbox和Grid:现代CSS布局的秘密武器》
《深入Flexbox和Grid:现代CSS布局的秘密武器》
68 0
|
开发者 容器
css3-flex布局:基础使用 / Flexbox布局
css3-flex布局:基础使用 / Flexbox布局
67 0
css3弹性盒模型(Flexbox)
css3弹性盒模型(Flexbox)
77 0
|
前端开发 容器
从0开始学习FlexBox布局
之前研究过一篇《移动端适配总结》,里面主要通过布局不变,改变布局组件元素的大小去适应移动端。但是这种方式对于PC端或者Pad等大屏幕并不适合,所以从想找找看是否有新的方案能否满足跨端自适应布局方式。
108 0