3.5 KiB
3.5 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
id | title | challengeType | videoUrl | forumTopicId | dashedName |
---|---|---|---|---|---|
587d78ac367417b2b2512af6 | 使用 justify-content 屬性對齊元素 | 0 | https://scrimba.com/p/pVaDAv/c43gnHm | 301102 | align-elements-using-the-justify-content-property |
--description--
flex 子元素有時不能充滿整個 flex 容器, 所以我們經常需要告訴 CSS 以什麼方式排列 flex 子元素,以及調整它們的間距。 幸運的是,我們可以通過 justify-content
屬性的不同值來實現。 在介紹屬性的可選值之前,我們要先理解一些重要術語。
回憶一下,如果把 flex 容器設爲一個行,它的子元素會從左到右逐個排列; 如果把 flex 容器設爲一個列,它的子元素會從上到下逐個排列。 子元素排列的方向被稱爲 main axis(主軸)。 對於行,主軸水平貫穿每一個項目; 對於列,主軸垂直貫穿每一個項目。
對於如何沿主軸線排放 flex 項目,有幾種選擇。 很常用的一種是 justify-content: center;
:即 flex 子元素在 flex 容器中居中排列。 其他選擇包括:
flex-start
:從 flex 容器的起始位置開始排列項目。 對行來說是把項目移至左邊, 對於列是把項目移至頂部。 如未設置justify-content
的值,那麼這就是默認值。flex-end
:從 flex 容器的終止位置開始排列項目。 對行來說是把項目移至右邊, 對於列是把項目移至底部。space-between
:項目間保留一定間距地沿主軸居中排列。 第一個和最後一個項目被放置在容器邊沿。 例如,在行中第一個項目會緊貼着容器左邊,最後一個項目會緊貼着容器右邊,然後其他項目均勻排布。space-around
:與space-between
相似,但頭尾兩個項目不會緊貼容器邊緣,所有項目之間的空間均勻排布。space-evenly
:在 flex 項目之間均勻分配空間,在 flex 容器的任一端都有一個完整的空間。
--instructions--
這個例子可以幫助你理解這個屬性。 請爲 #box-container
元素添加 CSS 屬性 justify-content
,並將其屬性值設置爲 center
。
提示:
在編輯器裏試試 justify-content
的其他可用值,看看它們之間的區別。 但要通過挑戰,你必須把值設爲 center
。
--hints--
#box-container
所選擇的元素應有 justify-content
屬性,且其屬性值應爲 center
。
assert($('#box-container').css('justify-content') == 'center');
--seed--
--seed-contents--
<style>
#box-container {
background: gray;
display: flex;
height: 500px;
}
#box-1 {
background-color: dodgerblue;
width: 25%;
height: 100%;
}
#box-2 {
background-color: orangered;
width: 25%;
height: 100%;
}
</style>
<div id="box-container">
<div id="box-1"></div>
<div id="box-2"></div>
</div>
--solutions--
<style>
#box-container {
background: gray;
display: flex;
height: 500px;
justify-content: center;
}
#box-1 {
background-color: dodgerblue;
width: 25%;
height: 100%;
}
#box-2 {
background-color: orangered;
width: 25%;
height: 100%;
}
</style>
<div id="box-container">
<div id="box-1"></div>
<div id="box-2"></div>
</div>