CSS Flexbox

1
2
3
4
5
6
7
8

亲自试一试

CSS Flexbox 布局模块

在 Flexbox 布局模块(问世)之前,可用的布局模式有以下四种:

  • 块(Block),用于网页中的部分(节)
  • 行内(Inline),用于文本
  • 表,用于二维表数据
  • 定位,用于元素的明确位置

弹性框布局模块,可以更轻松地设计灵活的响应式布局结构,而无需使用浮动或定位。

浏览器支持

所有现代浏览器均支持 flexbox 属性。

29.0 11.0 22.0 10 48

Flexbox 元素

如需开始使用 Flexbox 模型,您需要首先定义 Flex 容器。

1
2
3

العناصر العلوية تمثل صندوق الليبس يحتوي على ثلاثة عناصر ليبس (المنطقة الزرقاء).

实例

صندوق الليبس يحتوي على ثلاثة عناصر ليبس:

1
2
<div>3</div>

亲自试一试

العنصر الأم (الصندوق)

من خلال display الصفتي يتم ضبطها إلى flex، الصندوق الليبس سيكون قابلاً للتوسع:

1
2
3

实例

.flex-container {
  display: flex;
}

亲自试一试

هذه هي الصفات الخاصة بالصندوق الليبس:

ویژگی flex-direction

flex-direction الصفتي تحدد اتجاه تجمع العناصر الليبس داخل الصندوق.

1
2
3

实例

column القيمة تؤكد على إدراج العناصر الليبس بشكل عمودي (من الأعلى إلى الأسفل):

.flex-container {
  display: flex;
  flex-direction: column;
}

亲自试一试

实例

column-reverse القيمة تؤكد على إدراج العناصر الليبس بشكل عمودي (من الأسفل إلى الأعلى):

.flex-container {
  display: flex;
  flex-direction: column-reverse;
}

亲自试一试

实例

row القيمة تؤكد على إدراج العناصر الليبس بشكل أفقي (من اليسار إلى اليمين):

.flex-container {
  display: flex;
  flex-direction: row;
}

亲自试一试

实例

row-reverse القيمة تؤكد على إدراج العناصر الليبس بشكل أفقي (من اليمين إلى اليسار):

.flex-container {
  display: flex;
  flex-direction: row-reverse;
}

亲自试一试

ویژگی flex-wrap

flex-wrap الصفتي تحدد ما إذا كان يجب طي العناصر الليبس.

في هذا المثال، تتضمن العناصر الليبس 12 عنصرًا لتوضيح صفتي flex-wrap بشكل أفضل.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

实例

wrap القيمة تؤكد على إدراج العناصر الليبس بنظام الطي عند الحاجة:

.flex-container {
  display: flex;
  flex-wrap: wrap;
}

亲自试一试

实例

nowrap القيمة تؤكد على عدم إدراج العناصر الليبس بنظام الطي (القيمة الافتراضية):

.flex-container {
  display: flex;
  flex-wrap: nowrap;
}

亲自试一试

实例

wrap-reverse القيمة تؤكد على إدراج العناصر الليبس بنظام عكسي عند الحاجة:

.flex-container {
  display: flex;
  flex-wrap: wrap-reverse;
}

亲自试一试

ویژگی flex-flow

flex-flow الصفتي هي اختصار لضبط الصفتين flex-direction و flex-wrap في نفس الوقت.

实例

.flex-container {
  display: flex;
  flex-flow: row wrap;
}

亲自试一试

ویژگی justify-content

justify-content الصفتي لتحقيق التوازن للعناصر الليبس:

1
2
3

实例

center القيمة تؤكد على إدراج العناصر الليبس في منتصف الصندوق:

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

亲自试一试

实例

flex-start القيمة تؤكد على إدراج العناصر الليبس في بداية الصندوق (القيمة الافتراضية):

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

亲自试一试

实例

flex-end القيمة تؤكد على إدراج العناصر الليبس في نهاية الصندوق:

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

亲自试一试

实例

space-around القيمة تظهر العناصر الليبس قبل وبعد السطور وبينها مع مسافة:

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

亲自试一试

实例

space-between القيمة تظهر العناصر الليبس بين السطور مع مسافة:

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

亲自试一试

ویژگی align-items

align-items الصفتي لتحقيق التوازن العمودي للعناصر الليبس.

1
2
3

اكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانوكانo

实例

center Duba da kwarin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 200px;
  align-items: center;
}

亲自试一试

实例

flex-start Duba da kwarin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 200px;
  align-items: flex-start;
}

亲自试一试

实例

flex-end Duba da kwarin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 200px;
  align-items: flex-end;
}

亲自试一试

实例

stretch Duba da kwarin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 200px;
  align-items: stretch;
}

亲自试一试

实例

baseline Duba da kwarin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 200px;
  align-items: baseline;
}

亲自试一试

Rarrabe:Anfani ya amfani da daki na fari gari don nuna cewa kwarin ya iya zama a cikin tsaki na basa na tekun:


1
2
3
4

ویژگی align-content

align-content Anfani yana amfani da fari gari don tsamman fari gari.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

A cikin shirin da zai zo kwanan nan, ayyukan ayyuka suna amfani da fari gari na 600px a tsawon, kuma amfani da fari gari na fari gari na wrap, domin a iya nuna ayyukan amfani da align-content a wata.

实例

space-between Duba da rukunin fari gari a kwanan nan yana zai fari gari na kwarin da ya iya zama kai tsaki, kai tsaki, kai kwanan na fari gari:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: space-between;
}

亲自试一试

实例

space-around Duba da rukunin fari gari a kwanan nan yana zai fari gari na kwarin da ya iya zama kai tsaki, kai tsaki, kai kwanan na fari gari:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: space-around;
}

亲自试一试

实例

stretch Duba da rukunin fari gari a kwanan nan yana zai zama fari gari na kwarin da ya iya zama tsaki na gida (da yake aiki):

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: stretch;
}

亲自试一试

实例

center Duba da rukunin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: center;
}

亲自试一试

实例

flex-start Duba da rukunin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: flex-start;
}

亲自试一试

实例

flex-end Duba da rukunin fari gari a kwanan nan yana zai fari gari na kwarin:

.flex-container {
  display: flex;
  height: 600px;
  flex-wrap: wrap;
  align-content: flex-end;
}

亲自试一试

Tsaki na kai tsaki

A cikin shirin da zai zo kwanan nan, ayyukan ayyuka suna halarci wani matsayi na sha'awar horar da fari gari: Tsaki na kai tsaki.

Hakunci: Sauka justify-content da align-items Duba da kwarin a yiwa ta cikin tsaki, kuma kwarin fari gari zai iya yiwa ta cikin tsaki:

实例

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

亲自试一试

Anfani (kwarin)

Anfani kamaranin na yana zai hanyar yana na fari gari a cikin fari gari.

1
2
3
4

上面的元素代表一个灰色 flex 容器内的四个蓝色 flex 项目。

实例

1
2
<div>3</div>
4

亲自试一试

用于弹性项目的属性有:

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

order 属性

order 属性规定 flex 项目的顺序。

1
2
3
4

代码中的首个 flex 项目不必在布局中显示为第一项。

order 值必须是数字,默认值是 0。

实例

order 属性可以改变 flex 项目的顺序:

<div style="order: 3">1</div> <div style="order: 2">2</div> <div style="order: 4">3</div> <div style="order: 1">4</div>

亲自试一试

flex-grow 属性

flex-grow 属性规定某个 flex 项目相对于其余 flex 项目将增长多少。

1
2
3

该值必须是数字,默认值是 0。

实例

使第三个弹性项目的增长速度比其他弹性项目快八倍:

<div style="flex-grow: 1">1</div> <div style="flex-grow: 1">2</div> <div style="flex-grow: 8">3</div>

亲自试一试

flex-shrink 属性

flex-shrink 属性规定某个 flex 项目相对于其余 flex 项目将收缩多少。

1
2
3
4
5
6
7
8
9

该值必须是数字,默认值是 0。

实例

不要让第三个弹性项目收缩得与其他弹性项目一样多:

1
2
<div style="flex-shrink: 0">3</div>
4
<div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div>

亲自试一试

flex-basis 属性

flex-basis 属性规定 flex 项目的初始长度。

1
2
3
4

实例

将第三个弹性项目的初始长度设置为 200 像素:

1
2
<div style="flex-basis: 200px">3</div>
4

亲自试一试

flex 属性

flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性。

实例

使第三个弹性项目不可增长(0),不可收缩(0),且初始长度为 200 像素:

1
2
<div style="flex: 0 0 200px">3</div>
4

亲自试一试

align-self 属性

align-self 属性规定弹性容器内所选项目的对齐方式。

align-self 属性将覆盖容器的 align-items 属性所设置的默认对齐方式。

1
2
3
4

在这些例子中,我们使用 200 像素高的容器,以便更好地演示 align-self 属性:

实例

把第三个弹性项目对齐到容器的中间:

1
2
3
4

亲自试一试

实例

将第二个弹性项目在容器顶部对齐,将第三个弹性项目在容器底部对齐:

1
2
3
4

亲自试一试

使用 Flexbox 的响应式图库

使用 flexbox 创建响应式图像库,该图像库根据屏幕大小在四幅、两幅或全宽图像之间变化:

亲自试一试

使用 Flexbox 的响应式网站

使用 flexbox 创建响应式网站,其中包含弹性导航栏和弹性内容:

亲自试一试

CSS Flexbox 属性

下表列出了与 flexbox 一起使用的 CSS 属性:

属性 描述
display 规定用于 HTML 元素的盒类型。
flex-direction 规定弹性容器内的弹性项目的方向。
justify-content 当弹性项目没有用到主轴上的所有可用空间时,水平对齐这些项目。
align-items 当弹性项目没有用到主轴上的所有可用空间时,垂直对齐这些项。
flex-wrap 规定弹性项目是否应该换行,若一条 flex 线上没有足够的空间容纳它们。
align-content 修改 flex-wrap 属性的行为。与 align-items 相似,但它不对齐弹性项目,而是对齐 flex 线。
flex-flow Na'adda na'adda na'adda na'adda na'adda.
order Dafin kananin ta'adda na'adda a cikin kananin ta'adda da'adda da'adda.
align-self Na'adda ta'adda. Dafin kananin da'adda.
flex 属性 na'adda na'adda na'adda na'adda na'adda.