详解CSS Flexbox,附带示例

英文 |

翻译 | web前端开发(ID:web_qdkf)

介绍

Flexbox已是CSS的大功能之一。它被设计为布局模型,并且设计为可以在界面中的项目之间提供空间分布并具有强大的对齐功能的方法。

Flexbox无需使用浮动或定位即可轻松的实现响应式布局结构。

在本文中,我们将通过一些实际示例来学习CSS flexbox。让我们开始吧。

定义一个容器

在开始使用flexbox,你需要定义一个容器div或一个父容器,在div中包括所有子元素,如下所示:

1
2
3

div通过将display属性设置为flex,可以使父项或容器变得灵活:

.container {  display: flex;  background-color: red;}.container div{  background-color: #f1f1f1;  margin: 10px;  padding: 20px;  font-size: 30px;}

输出结果如下:

包含三个div的红色容器

如你所见,通过将display属性设置为flex,容器的子元素将自动变为弹性项目。现在,你可以使用容器属性justify-content align-items,例如,以便使子元素在容器div中居中。我们将在下面的示例中进行介绍。

flex-direction属性

flex-direction属性定义容器要在哪个(列或行)方向上堆叠弹性。

下面的示例将flex-direction设置为column(从上到下)。结果,容器div中的子元素将处于垂直线。

看下面的例子:

.container {  display: flex;  flex-direction: column;  background-color: red;}.container > div {  background-color: #f1f1f1;  width: 100px;  margin: 10px;  text-align: center;  line-height: 75px;  font-size: 30px;}

输出结果如下:

列方向

下面这个实例,我们将flex-direction属性设置为row,这将使我们的容器内的元素在一条水平线上:

.container {  display: flex;  flex-direction: row;  background-color: red;}.container > div {  background-color: #f1f1f1;  width: 100px;  margin: 10px;  text-align: center;  line-height: 75px;  font-size: 30px;}

输出结果如下:

行方向

你还可以通过将flex-direction属性设置为column-reverse或来反转容器中子元素的顺序row-reverse。

flex-wrap属性

flex-wrap属性是指弹性项目。

下面的示例包含12个flex项目,并将属性设置flex-wrap为wrap。为了更好地演示该flex-wrap属性。

我建议你将下面的代码放在文本编辑器或Codepen中,并调整浏览器窗口的大小以查看的功能flex-wrap。

HTml:
1
2
3
4
5
6
7
8
9
10
11
12
CSS:.container { display: flex; flex-wrap: wrap; background-color: red;}.container > div { background-color: #f1f1f1; width: 100px; margin: 10px; text-align: center; line-height: 75px; font-size: 30px;}

如果不希望flex-item包括子元素,则可以将属性设置为nowrap,如下所示:

.container {  display: flex;  flex-wrap: nowrap;  background-color: red;}

justify-content属性

justify-content属性用于对齐弹性项目。你可以给这个属性一些值,如:center,flex-start,flex-end,space-between等。

将justify-content属性设置为center:

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

将justify-content属性设置为flex-start:

.container {  display: flex;  justify-content: flex-start;}

将justify-content属性设置为flex-end:

.container {  display: flex;  justify-content: flex-end;}

将justify-content属性设置为space-between:

.container {  display: flex;  justify-content: space-between;}

align-items属性

align-items属性用于对齐弹性项目。与justify-content基本相同,但align-items是垂直而不是水平。这就是为什么我只给出一个示例,而不是重复相同的示例。

因此,以下示例将子元素垂直居中放置在容器中:

.container {  display: flex;  height: 300px;  align-items: center;  background-color: red;}.container > div {  background-color: #f1f1f1;  width: 100px;  margin: 10px;  text-align: center;  line-height: 75px;  font-size: 30px;}

输出结果如下:

将子元素垂直居中

align-items属性的值与justify-content相同。唯一的区别是,align-items在垂直而不是水平地工作。

垂直和水平居中

现在,你可以同时使用justify-content和align-items同时将子元素垂直和水平居中。

这是一个例子:

.container {  display: flex;  height: 300px;  align-items: center;  justify-content: center;  background-color: red;}.container > div {  background-color: #f1f1f1;  width: 100px;  margin: 10px;  text-align: center;  line-height: 75px;  font-size: 30px;}

垂直和水平居中

子元素

你还应该了解一下以下的子元素,我想你会从中受益的,例如:

结论

Flexbox是一项很棒的CSS功能,可让你轻松设计灵活的响应式布局结构。我强烈建议你练习此功能,因为练习是提高此功能的唯一方法。

本文完〜

最后

点个在看支持我吧

雅思小作文表格图题型详解

在雅思考试A类小作文的四大基本图形(即曲线图、柱形图、饼图和表格图)中,表格图往往是广大考生所最头疼的图形了,很大一部分考生会碰到以下状况,比如表格看懂了,但是因为数据繁多而且凌乱,一时半会儿找不出很明显的特征,不知从何下手;或是找到了很多特征,但是不知道用什么样的顺序、结构和衔接方式把这些特征条理清晰地传达出来;又或是大体清楚该写什么,怎么写,但是在具体写的时候,老是丢三落四的,把一些信息给遗漏掉了等等。

这时,考生所面临的主要不是语言方面的问题,而是写作步骤和写作思路方面的问题,也就是不知道应该用什么样的步骤和思路把表格图中那些看似复杂无序的数据自然而且毫不遗漏地贯穿起来。本文将主要针对表格图的写作步骤及其写作思路展开探讨。

下面将用一个典型的表格图实例来说明此类图形的解题策略。

The table below lists the number of nights of occupancy of hotel rooms in Australia during the peak month of September in the years 2000 and 2001 and the difference expressed in percentage.

首先,拿到考题以后,快速浏览题目中的文字信息,即The table below lists the number of nights occupancy of hotel rooms in Australia during the peak month of September in the years 2000 and 2001 and difference expressed in percentage,重点关注研究对象(nights occupancy)、数据类型(number and percentage)和时间(2000 and 2001)这三大要素,明确在主体段的写作中要注意数据类型的变化和时态一致问题。

其次,看题目中的表格图形,看图形时也要先看文字说明,包括标题、标注和单位,弄懂数据所代表的信息,而非数据本身。一般情况下,表格图中的文字说明还是比较容易识别的,就如同曲线图中的横纵轴一样。上图中横向代表不同的时间,纵向则代表不同的地区。

但是通常表格的最后一列和最后一行要特别注意,有可能是数据的叠加、平均或者对比,这张图也是如此,最后一列代表不同时间之间的变化趋势及幅度,最后一行则是数据和变化的总结,曾经就有比较粗心的同学,出现了“Australia Total”的数量最多的笑话。同时,标题下方的单位(in thousand)和change前面的%千万不能遗漏,不然后面写的数据都是不准确的。

然后,筛选信息,圈关键数据。表格图写作不是记流水帐,需要面面俱到,但是关键数据可是一个都不能少的。为了防止遗漏,建议考生可以在看题的过程中把这些数据都圈出来,通常包括总数、极值、突变值等等,就上图而言,以下数据必不可少:总数(2000年3562.6、2001年3476.0),总变化(2.4),极值(2000年最大1299.9,最小71.2;2001年最大1135.8,最小70.9;变化增长最多21.8,减少最多12.6),一共9个数据可视为必要数据,在文章中必须要提及,至于其他数据就可写可不写了。

再则,整理写作思路,也就是写作顺序。作为总数、平均数或者对比数据,通常放在文章开头总起或者结尾总结,所以这些数据可以先不考虑。剩余的数据,则只有两种写作顺序,横着写或者竖着写,肯定不可能斜线写的。

在上图中,横着写,就是对比相同地区在2000年和2001年不同年份之间的数据,其实也就是最后一列变化情况比例或者说趋势;竖着写,就是对比不同地区在2000年或2001年同一年份中的数据。此图中由于既出现了类别(地区),又出现了时间,所以既要横着写,也要竖着写。若是只有类别比较或者只有时间比较,那么横写竖写选其一即可。

最后,就是落笔成文了,运用平时积累和归纳的词汇句型以及连接手段,把必要数据和关系对比,遵循刚才整理清楚的写作思路,有机地串连起来,形成文字即可。时间允许的话,还可以进行快速的检查,看看有无数据遗漏、时态疏忽、单词误拼等小问题。

总之,表格图并没有想象中的那么难,了解图形特点,掌握解题策略,积累表达手段,辅以3-5篇的练习,一篇出色的表格图作文是完全有可能出自你的笔下的,因此“临渊羡鱼,不如退而结网”,现在就开始行动吧!

本站内容来自用户投稿,如果侵犯了您的权利,请与我们联系删除。联系邮箱:835971066@qq.com

本文链接:http://news.xiuzhanwang.com/post/2742.html

友情链接: