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;
}

目录
相关文章
|
Web App开发 前端开发 容器
聊聊Flexbox布局中的flex的演算法
到目前为止,Flexbox布局应该是目前最流行的布局方式之一了。而Flexbox布局的最大特性就是让Flex项目可伸缩,也就是让Flex项目的宽度和高度可以自动填充Flex容器剩余的空间或者缩小Flex项目适配Flex容器不足的宽度。而这一切都是依赖于Flexbox属性中的`flex`属性来完成。一个Flex容器会等比的按照各Flex项目的扩展比率分配Flex容器剩余空间,也会按照收缩比率来缩小各
2162 0
|
容器
快速理解Flexbox布局
今天,本文会以尽量精简的文字来介绍Flexbox,代码示例会比以往少很多,因为要全面讲述,估计十篇文章都讲不完…… 一、什么是Flexbox? Flexbox,又叫弹性盒子布局。
1166 0
|
Web App开发 C++ 容器
Flexbox布局的正确使用姿势
Flexbox布局的正确使用姿势
158 0
|
Web App开发 前端开发 容器
Flexbox布局指南
Flexbox布局概念 Flexbox布局( Flexible Box 或CSS3 弹性布局),是CSS3中的一种新的布局模式,是可以自动调整子元素的高和宽,来很好的填充任何不同屏幕大小的显示设备中的可用显示空间,收缩内容防止内容溢出,确保元素拥有恰当的行为的布局方式。使用Flexbox来布局更容易,可以使用更少的代码,更简单的方式实现更复杂的布局,例如对齐方式,排列方向,排列顺序(这也是Fl
1835 0
|
Web App开发 前端开发 算法
探索现代CSS布局技术:Flexbox和Grid
探索现代CSS布局技术:Flexbox和Grid
探索现代CSS布局技术:Flexbox和Grid
|
开发者 容器
css3-flex布局:基础使用 / Flexbox布局
css3-flex布局:基础使用 / Flexbox布局
103 0
|
前端开发 容器
从0开始学习FlexBox布局
之前研究过一篇《移动端适配总结》,里面主要通过布局不变,改变布局组件元素的大小去适应移动端。但是这种方式对于PC端或者Pad等大屏幕并不适合,所以从想找找看是否有新的方案能否满足跨端自适应布局方式。
120 0
|
4月前
|
前端开发 UED 容器
使用 Flex 布局实现垂直居中效果
【10月更文挑战第7天】
474 57

热门文章

最新文章