flex-direction

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 2015 年 9 月以來,該特性已在各大瀏覽器中可用。

flex-direction CSS 屬性設定彈性專案在彈性容器中的排列方式,它定義了主軸和方向(正常或反向)。

試一試

flex-direction: row;
flex-direction: row-reverse;
flex-direction: column;
flex-direction: column-reverse;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">
    <div>Item One</div>
    <div>Item Two</div>
    <div>Item Three</div>
  </div>
</section>
#example-element {
  border: 1px solid #c5c5c5;
  width: 80%;
  display: flex;
}

#example-element > div {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
  width: 60px;
  margin: 10px;
}

請注意,rowrow-reverse 的值受彈性容器方向性(directionality)的影響。如果其 dir 屬性是 ltr,則 row 表示從左到右的水平軸,row-reverse 表示從右到左;如果 dir 屬性是 rtl,則 row 表示從右到左的軸,row-reverse 表示從左到右。

語法

css
/* The direction text is laid out in a line */
flex-direction: row;

/* Like <row>, but reversed */
flex-direction: row-reverse;

/* The direction in which lines of text are stacked */
flex-direction: column;

/* Like <column>, but reversed */
flex-direction: column-reverse;

/* Global values */
flex-direction: inherit;
flex-direction: initial;
flex-direction: revert;
flex-direction: revert-layer;
flex-direction: unset;

接受以下值:

row

彈性容器的主軸被定義為與文字方向相同。主軸起點(main-start)主軸終點(main-end)與內容方向相同。

row-reverse

行為與 row 相同,但主軸起點(main-start)主軸終點(main-end)與內容方向相反。

column

彈性容器的主軸與塊軸相同。主軸起點(main-start)主軸終點(main-end)與書寫模式的之前(before)之後(after)點相同。

column-reverse

行為與 column 相同,但主軸起點(main-start)主軸終點(main-end)與內容方向相反。

無障礙

使用 flex-direction 屬性,並將值設定為 row-reversecolumn-reverse 會在內容的視覺呈現和 DOM 順序之間造成脫節。這將對使用螢幕閱讀器等輔助技術導航的低視力使用者產生不利影響。如果視覺(CSS)順序很重要,那麼螢幕閱讀器使用者將無法訪問正確的閱讀順序。

正式定義

初始值row
應用於彈性容器
繼承性
計算值同指定值
動畫型別離散

正式語法

flex-direction = 
row |
row-reverse |
column |
column-reverse

示例

反轉彈性容器的行和列

HTML

html
<h4>This is a Column-Reverse</h4>
<div id="col-rev" class="content">
  <div class="box red">A</div>
  <div class="box lightblue">B</div>
  <div class="box yellow">C</div>
</div>
<h4>This is a Row-Reverse</h4>
<div id="row-rev" class="content">
  <div class="box red">A</div>
  <div class="box lightblue">B</div>
  <div class="box yellow">C</div>
</div>

CSS

css
.content {
  width: 200px;
  height: 200px;
  border: 1px solid #c3c3c3;
  display: flex;
}

.box {
  width: 50px;
  height: 50px;
}

#col-rev {
  flex-direction: column-reverse;
}

#row-rev {
  flex-direction: row-reverse;
}

.red {
  background-color: red;
}

.lightblue {
  background-color: lightblue;
}

.yellow {
  background-color: yellow;
}

結果

規範

規範
CSS 彈性盒子佈局模組第 1 級
# flex-direction-property

瀏覽器相容性

另見