BootStarp4實做入門
5. 容器應用
一、容器基本概念
- 凡是要用 BootStrap 的網格系統來排版,一定要使用容器(container)。
- 一個頁面中可以有多個容器。
- 容器也可以巢狀使用(容器中還有容器)
- 容器有兩種,一種是寬度有上限的容器:
<
div
class
=
"container"
>
...
</
div
>
- 另一種是全螢幕容器:
<
div
class
=
"container-fluid"
>
...
</
div
>
- 沒加容器之前。網頁內容會緊貼著邊緣,加上之後,預設就有邊距出現。
二、容器應用:滿版底色+有限寬度
- 在
.container
之外多一層<div>
並設想要的底色或底圖即可。<
div
style
=
"background-color: #185252;"
>
<
div
class
=
"container"
>
</
div
>
</
div
>
BootStarp4實做入門
6. 網格系統
一、使用網格的注意事項
- BootStrap4的網格系統以 flexbox(CSS3)為基礎(取代 table、floats…),因此可以做到自動等寬等高的欄位 、自動平均欄位、垂直置中等以往很難做的功能。
- 同時也代表對 IE9(以下)不再支援,至少要用IE10才行。
- 網格系統必須在容器(
.container
)中才有作用
二、指定欄寬用法
- 一般使用範例:
<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm-3"
>側邊三欄</
div
>
<
div
class
=
"col-sm-9"
>右邊九欄</
div
>
</
div
>
</
div
>
.row
代表一個橫列,以確保裡面的欄位可以對齊、排序。.col-sm
式斷點前綴詞,後面接的是欄位寬度設定,預設滿版為12欄- 若超過12欄,則會自動新增一個
.row
三、自動等寬用法
- 在 BootStrap4 中也可以這樣使用等寬欄位:
<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col"
>col 等寬 1/5</
div
>
<
div
class
=
"col"
>col 等寬 2/5</
div
>
<
div
class
=
"col"
>col 等寬 3/5</
div
>
<
div
class
=
"col"
>col 等寬 4/5</
div
>
<
div
class
=
"col"
>col 等寬 5/5</
div
>
</
div
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm"
>col-sm 等寬 1/5</
div
>
<
div
class
=
"col-sm"
>col-sm 等寬 2/5</
div
>
<
div
class
=
"col-sm"
>col-sm 等寬 3/5</
div
>
<
div
class
=
"col-sm"
>col-sm 等寬 4/5</
div
>
<
div
class
=
"col-sm"
>col-sm 等寬 5/5</
div
>
</
div
>
</
div
>
- 上方的用法就是不管螢幕多大,都要分成五欄
- 下方的用法是當螢幕在 576 以上時,才分五欄,在 576 以下的時候,會自動調成單欄式。
小技巧:
輸入 .row>.col-sm*5
然後按 tab 鍵,可以快速產生以上語法
四、指定欄寬+自動欄寬
- 可以指定某幾欄的欄寬,其餘的自行自動平均
<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm"
>自動平均分配</
div
>
<
div
class
=
"col-sm-7"
>指定佔 7 欄</
div
>
<
div
class
=
"col-sm"
>自動平均分配</
div
>
</
div
>
</
div
>
五、根據內容多寡自動調整欄寬
- 若不確定該站多少欄寬,亦可讓電腦自行根據內容多寡來判斷:
<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm"
>自動平均分配</
div
>
<
div
class
=
"col-sm-auto"
>根據中間內容多多寡來判斷欄寬</
div
>
<
div
class
=
"col-sm"
>自動平均分配</
div
>
</
div
>
</
div
>
六、不同斷點的欄寬搭配
- 可以在同一個欄位根據不同斷點給予不同大小
<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col"
>自動平均分配</
div
>
<
div
class
=
"col-sm-6 col-md-7 col-lg-8"
>根據不同螢幕大小來指定中間欄位欄寬</
div
>
<
div
class
=
"col"
>自動平均分配</
div
>
</
div
>
</
div
>
- 如果是只有用col,那麼,任何裝置都會按照 col 設定來分欄位(不管螢幕多大多小)
- 可以同時用多個斷點,例如:
col-sm-4 col-md-3
,意思就是用手機看時,該區域寬度佔4欄,用平板看時,該區域寬度佔3欄。 - 詳情:http://bootstrap.hexschool.com/docs/4.0/layout/grid/
BootStarp4實做入門
6-1 斷點
一、什麼是斷點?
- 還是不明白吧!(廢話)所謂斷點,在這裡指的是當螢幕尺寸符合斷點範圍時,才會根據斷點設定來實施網格系統(例如左邊9欄,右邊3欄),若是不符合斷點範圍,則自動調整為一欄式(通常是在手機瀏覽的情況下)。
- 詳情:http://bootstrap.hexschool.com/docs/4.0/layout/overview/#%E9%9F%BF%E6%87%89%E5%BC%8F%E6%96%B7%E9%BB%9E
二、BootStrap4 的斷點
sm >= 576 px
md >= 768 px
lg >= 992 px
xl >= 1200 px
- 如果寫:
.col-sm-3
,意思就是當螢幕 >= 576px 時,就會將此區域的寬度設為螢幕的 3/12。 - 若同時寫:
col-sm-4 col-md-3
。意思就是當螢幕 >= 768 px時,就會將此區域的寬度設為螢幕的 3/12,若螢幕 < 768 但 >= 576px 時,就會將此區域的寬度設為螢幕的 4/12。
BootStarp4實做入門
6-2 BootStrap3 及 BootStrap4 的斷點比較
- BootStrap4 的斷點前綴詞範圍和BootStrap3 不同:
- 最小斷點改為 575px,
- 又多了一個
col-xl
前綴詞, - 並將
col-xs
改為col-
, - 此外,BootStrap3 一定要設寬度,例如
col-sm-3
、col-sm-9
,但在 BootStrap4 允許不設寬度,例如四組col-sm
時,每個欄位會自動調為 25%,因此,可以輕鬆做到五欄、七欄、八欄...等效果。
- 斷點差異比較表:
575 px 以下 576 ~ 767 px 768 ~ 991 px 992 ~ 1199 px 1200 px 以上 BootStrap3 前綴 col-xs col-sm col-md col-lg BootStrap4 前綴 col- col-sm col-md col-lg col-xl 對應裝置 any 手機 平板 桌機螢幕 大螢幕
BootStarp4實做入門
6-3 欄位排序
- 最常見的例子是三欄式畫面(左側邊+主內容+右側邊),在手機觀看,變成單欄式時,希望變成:(主內容→左側邊→右側邊)的順序。
- 利用
.order
就能調整:<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm-7 order-sm-2"
>
在中間的主內容區
</
div
>
<
div
class
=
"col-sm order-sm-1"
>
在左邊的側邊欄
</
div
>
<
div
class
=
"col-sm order-sm-3"
>
在右邊的側邊欄
</
div
>
</
div
>
</
div
>
- 寫的時候,請依照在單欄式情況下,希望呈現的先後順序來寫,然後再利用 order 來調整位置。在三欄式時(未自適應前),就會按照 order 的順序來排,在單欄式時,就會忽略 order,依照語法順序來排。
- 範例:
BootStarp4實做入門
6-4 欄位推移
- BootStrap4 裡面已經沒辦法用
.col-offset-x
或者.offset-sm-x
來跳過幾欄。 - 可以利用
.mr-auto
來將右邊剩下的空位謄出來。<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-2"
>col 等寬 1/3</
div
>
<
div
class
=
"col-2 mr-auto"
>col 等寬 2/3</
div
>
<
div
class
=
"col-2"
>col 等寬 3/3</
div
>
</
div
>ass="col-2">col 等寬 3/3</
div
>
</
div
>
</
div
>
- 或者用
.mx-auto
把空位平均分散到左右兩邊<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-2"
>col 等寬 1/3</
div
>
<
div
class
=
"col-2 mx-auto"
>col 等寬 2/3</
div
>
<
div
class
=
"col-2"
>col 等寬 3/3</
div
>
</
div
>
</
div
>
- 或用
.ml-auto
把空位放到左邊<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-2"
>col 等寬 1/3</
div
>
<
div
class
=
"col-2 ml-auto"
>col 等寬 2/3</
div
>
<
div
class
=
"col-2"
>col 等寬 3/3</
div
>
</
div
>
</
div
>
- 範例:
BootStarp4實做入門
6-5 巢狀欄位
.row
裡面還可以有.row
,子.row
會以父.row
的寬度為依據來進行寬度調整- 例如:
<
div
class
=
"container"
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm-8"
>
主內容
<
div
class
=
"row"
>
<
div
class
=
"col-sm-3"
>欄</
div
>
<
div
class
=
"col-sm-6"
>欄</
div
>
<
div
class
=
"col-sm-3"
>欄</
div
>
</
div
>
</
div
>
<
div
class
=
"col-sm-4"
>
側邊
<
div
class
=
"row"
>
<
div
class
=
"col-sm-3"
>欄</
div
>
<
div
class
=
"col-sm-6"
>欄</
div
>
<
div
class
=
"col-sm-3"
>欄</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
- 範例:
BootStarp4實做入門
6-6 Flexbox方向性
- 水平:
.flex-row
(這是預設值) - 反向水平:
.flex-row-reverse
- 垂直:
.flex-column
- 反向垂直:
.flex-column-reverse
- 範例:
BootStarp4實做入門
7. 間隔工具
- 間隔工具的組成為「屬性邊緣-尺寸」
- 屬性設定:
- m - 這個 class 會設定 margin
- p - 這個 class 會設定 padding
- 邊緣設定:
- t - 這個 class 會設定 margin-top 或 padding-top
- b - 這個 class 會設定 margin-bottom 或 padding-bottom
- l - 這個 class 會設定 margin-left 或 padding-left
- r - 這個 class 會設定 margin-right 或 padding-right
- x - 這個 class 會設定 *-left 和 *-right
- y - 這個 class 會設定 *-top 和 *-bottom
- 空白 - 如果邊緣 class 未加入則會設定 margin 或 padding 在元素的四個邊緣
- 尺寸設定:
- 0 - 這個 class 會設定 margin 或 padding 的樣式值為 0
- 1 - (預設時) 這個 class 會設定 margin 或 padding 於 $spacer * .25
- 2 - (預設時) 這個 class 會設定 margin 或 padding 於 $spacer * .5
- 3 - (預設時) 這個 class 會設定 margin 或 padding 於 $spacer
- 4 - (預設時) 這個 class 會設定 margin 或 padding 於 $spacer * 1.5
- 5 - (預設時) 這個 class 會設定 margin 或 padding 於 $spacer * 3
- 詳情:http://bootstrap.hexschool.com/docs/4.0/utilities/spacing/
後續內容省略......
【資料引用資訊】
google關鍵字:BootStarp4實做入門
沒有留言:
張貼留言