📕
HTML & CSS
  • 網頁設計 - HTML & CSS
  • 1 簡介
    • 1.1 講者簡介
    • 1.2 課程須知
    • 1.3 網站前端簡介
    • 1.4 開發工具簡介
    • 1.5 第一個網頁
  • 2 HTML
    • 2.1 html 文件基本結構
    • 2.2 宣告、標籤、屬性、元素
    • 2.3 保留文字格式
    • 2.4 表示程式的標籤
    • 2.5 註解
    • 2.6 網頁標題
    • 2.7 中介資料(Meta Data)
    • 2.8 縮寫
    • 2.9 斷行與水平分隔線
    • 2.10 段落
    • 2.11 內容標題
    • 2.12 判別區塊與行內
    • 2.13 列表
    • 2.14 清單
    • 2.15 連結
    • 2.16 圖片
    • 2.17 獨立內容
    • 2.18 表格
    • 2.19 嵌入外站
    • 2.20 span 和 div
    • 2.21 引用
    • 2.22 有結構的語意元素
    • 2.23 結構驗證
    • 2.24 HTML Entity(實體)
    • 2.25 影片
    • 2.26 音訊
    • 2.27 其它標籤
    • 2.28 表單
    • 2.29 HTML 所有標籤
  • 3 CSS
    • 3.1 套用 CSS
    • 3.2 註解
    • 3.3 Selectors - 屬性及值
    • 3.4 Selectors - 符號
    • 3.5 Selectors - class 和 id
    • 3.6 關於優先權
    • 3.7 排版 - 關於 display 屬性
    • 3.8 排版 - 區塊模型(Box Model)
    • 3.9 排版 - vertical-align 對齊
    • 3.10 練習 - 固定式版型
    • 3.11 關於 Pseudo Element
    • 3.12 關於 Pseudo Class
    • 3.13 文字樣式
    • 3.14 關於溢載
    • 3.15 連結樣式
    • 3.16 列表樣式
    • 3.17 表格樣式
    • 3.18 背景樣式
    • 3.19 排版 - 關於定位(position)
    • 3.20 排版 - 關於浮動(float)
    • 3.21 關於不透明度 opacity
    • 3.22 關於 visibility、pointer-events
    • 3.23 關於 outline
    • 3.24 表單樣式
    • 3.25 效果 - 游標
    • 3.26 效果 - 圓角
    • 3.27 效果 - 區塊陰影
    • 3.28 效果 - 文字陰影
    • 3.29 效果 - 轉換 transform
    • 3.30 Flexbox 排版 - Container
    • 3.31 Flexbox 排版 - Items
    • 3.32 Column 多欄排版模式
    • 3.33 其它補充
  • 4 練習
  • 5 作業:網頁切版
  • 6 參考資料
Powered by GitBook
On this page
  • Flex Item(s) 相關屬性,此例為 <li>
  • order:指定順序
  • flex-grow:有多餘空間時,如何分配剩餘空間
  • flex-shrink:Flex Container 空間不夠時,如何壓縮 Flex Items
  • flex-basis:設定 Flex Item 的寬度或高度
  • flex:縮寫形式
  • align-self:只設定自己在這排的對齊位置
  • 練習
  • 一、水平垂直方向的置中
  • 二、使用 flexbox 做固定式二欄排版
  1. 3 CSS

3.31 Flexbox 排版 - Items

Previous3.30 Flexbox 排版 - ContainerNext3.32 Column 多欄排版模式

Last updated 1 year ago

Flex Item(s) 相關屬性,此例為 <li>

請留意 flex-direction 預設值是 row,代表 Main Axis(主軸)是橫向,以下範例都是以 flex-direction: row 來設定,之後同學可試著將 flex-direction 改成 column (也就是將 Main Axis 改成直向)觀察看看。

共有六種屬性可以設定,以下解說:

order:指定順序

order 可以是任何的整數,所有的 Flex Items 預設值都是 0。然而所有的 Flex Items 的排列順序都會按照 order 值的大小來針對 Main Axis (主軸)排列,從最小開始排,依序排到最大值。

flex-grow:有多餘空間時,如何分配剩餘空間

設定讓該 Flex Item 會自行針對 Main Axis 延展,將多餘空間給佔滿。然而 flex-grow 預設值都是 0,其實就是代表將此功能關閉。設定大於等於 1 的整數,就會按比例自動填滿剩餘空間。

例 1:只設定其中一個 flex-grow

例2:設定有多個 flex-grow 大於等於 1 時,「剩餘空間」自動依比例分配。

flex-shrink:Flex Container 空間不夠時,如何壓縮 Flex Items

預設值是1,也就是當空間超出 flex container 的寬度時,每一個 flex items 都會被平均壓縮。

例: 設定 Flex Container 的寬度為 800px; 共5個 Flex Items ,設定寬度為 200px。 多出 1000 - 800 = 200。 則每個 Flex Item 平均被壓縮40px,最後的寬度會是 160px。才不會超出 Flex Container 的寬度。

flex-basis:設定 Flex Item 的寬度或高度

設定 flex-basis 是沿著 Main Axis(主軸) 來設定 Flex Items 的寬或高。

  • 當 flex-direction 為 row 或 row-reverse 時,設定 flex-basis 等同於設定寬度(width)。

  • 當 flex-direction 為 column 或 column-reverse 時,設定 flex-basis 等同於設定高度(height)。

  • flex-basis 的優先權會高於 width 和 height。

  • flex-basis 的預設值是 auto。

範例1:設定寬度:

範例2:設定高度:

flex:縮寫形式

預設值:

flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;

等同於

flex: 0 1 auto;

也就是 flex 是 flex-grow、flex-shrink、flex-basis 的縮寫。

align-self:只設定自己在這排的對齊位置

與 Flex Container 的 align-items 的觀念一模一樣。差別在於這是設定自己這個 Flex Item。

可以設定的值有:

  • auto:(預設值),表示與 Container 所設定的 align-items 值一樣。

  • flex-start

  • flex-end

  • center

  • baseline

  • stretch

練習

一、水平垂直方向的置中

提供 html:

<div class="outer">
  <div class="inner">這是內容<br>這是第二行內容</div>
</div>

請撰寫 css,結果如下圖:

也就是將藍框的部份,置於黑框的中間。

參考作法:

二、使用 flexbox 做固定式二欄排版

提供 html:

<div class="outer_block">
  <div class="left_block">左欄<br>第二行</div>
  <div class="right_block">右欄</div>
</div>

請撰寫 css,結果如下圖:

參考作法: