# Bootstrap 4 - 基礎 ###### tags: `FrameWork-bootstrap4` ## 一 . 基礎概念 ### (一) . 基本 1. 什麼是boostrap : 是一個**css framework**。 2. 組成 : - Default style 。 - Grid layout 。 - Pre-defined class (components) 。 3. 優點 : **內建RWD**。 ### (二) . Default style 1. Reboot : - 使的在各個瀏覽器上面使用的boostrap都是一樣的 - 因為不同瀏覽器的default不同,而造成不同效果。 2. Typography: boostrap4內建的一些小class,專用於排版。 - 例如boostrap4有內建的h、display等等功能。 ### (三) . Grid layout 1. 是網頁為一個由row和colum組成的網格。 2. 由container class包含row class和col class形成網格。 ## 二 . Grid 系統 ### (一) . 基本 1. 基本架構 : **巢狀結構**的網格架構。 - row和col的外面要包含一個container - 使的更好操控。 - row為直列,col為橫列,**必用row包住col**。 - 要顯示的內文多寫在col中。 ```htmlmixed= <div class="cntainer"> <div class="row"> <div class="col"> context </div> </div> </div> ``` 2. Grid layout是使用flexbox : col會自動分割row的大小。 - 圖一 : 每個col佔row的50%。 - 圖二 : 每個col佔row的25%。 ```htmlmixed= <div class="cntainer"> <div class="row"> <div class="col"> context </div> <div class="col"> context2 </div> </div> </div> ``` ```htmlmixed= <div class="cntainer"> <div class="row"> <div class="col"> context </div> <div class="col"> context2 </div> <div class="col"> context3 </div> <div class="col"> context4 </div> </div> </div> ``` ### (二) . RWD 1. RWD下的網頁操作 : boostrap**設定一個網頁col的最大個數為12個**。 - 此設定方便於排版。 - 若有加入container class下,超過13個欄自動換行。 2. 用數字表示要佔幾欄 : 可以『col-數字』方式設定要佔去幾欄。 - 圖一 : col會自動分配row的空間。 - 圖二 : col只會佔四欄,因此,row右側有三分之一的空間是空的。 ```htmlmixed= <div class="cntainer"> <div class="row"> <div class="col"> context </div> <div class="col"> context2 </div> </div> </div> ``` ```htmlmixed= <div class="cntainer"> <div class="row"> <div class="col-4"> context </div> <div class="col-4"> context2 </div> </div> </div> ``` 3. 用增加英文表示size : 如果我們需要在**不同的device上讓col佔去不同大小的欄數**。 - 圖一 : 可以使的螢幕在一般size的範圍下col佔4欄,在小size的範圍下col佔6欄。 ```htmlmixed= <div class="cntainer"> <div class="row"> <div class="col-md-4 col-sm-6"> context </div> <div class="col-md-4 col-sm-6"> context2 </div> </div> </div> ``` 4. boostrap4的size表 : 螢幕寬度。 | xs | sm | md | lg | | --- | -------- | ---- | -------- | | <768px | 768~991px | 992~1200px | >=1200px | ### (三) . 常用的class 1. ```cantainer``` : 要注意使用的RWD形式。 - 長寬 : width自動填滿父元素,hight依內容變動。 - 邊界 : 沒```margin padding border```。 - 內部元素 : 是block,裡面每一個元素占去一列。 - RWD : 有多種不同的格式,注意每個有最大的限制,可以用``` cantainer-fluid```。 2. ```row``` : 有邊界。 - 長寬 : width自動填滿父元素,hight依內容變動。 - 邊界 : ``` margin```有左右,個-15。 - 內部元素 : 用```col```自動平分```row```。 - RWD : 有,但預設的```row```是自動調整。