這邊的筆記主要紀錄Bootstrap的form表單元件的兩個部分
- 跟form表單相關的className套在哪一個標籤上
- HTML5表單觀念
form-group
當某個className叫form-group
的HTML標籤,通常其內部都會包住以下三種元素label
標籤、input
標籤 和 small
標籤,那small
標籤不一定會存在。
以下的例題中有六種狀況,會在下面分別對這六種狀況做介紹
範例中第一個form-group
那你可以看到在<form>
標籤裡面的第一層div
,他的class
就是form-group
。
那在這個form-group
裡面的input
欄位的class名稱是form-control
,
那在這個form-group
裡面的label
是不用特地為它的className做設定的,
那在這個form-group
裡面的samll
標籤的class名稱是form-text
此時,input
欄位和small
標籤的樣式,都會變成Bootstrap的制定樣式了。
範例中第二個form-group
它的input
標籤的className一樣要被命名為form-control
。
那跟第一個form-group
的input
欄位不同的地方是type
,
因為,一個是要輸入email,另一個是要輸入password,所以,功能不一樣,type的內容也會不一樣。
範例中第三個form-check
這邊要注意一下囉~~~
這邊是要使用checkbox
,
而在bootstrap中的checkbox
外圍要用form-check
把它包裹起來。
接著,input
標籤的className要改成form-check-input
,
在label
標籤的className要改成form-check-label
。
form-check中,input和label標籤的另外的寫法
除了在上面的範例中的利用label
標籤的for
值去對應相同id
的input
標籤的元件之外,
還有另外一種不需要在label
中加入for
也可以點擊到相對應的input
元件的寫法,
也就是將label
包在該對應的input
元件外面,
ex:
1 | <div class="form-check"> |
以上的寫法就可以達成一樣的效果囉~~
form-group v.s. form-check
在bootstrap中,若表單有東西要輸入(像input
)的話,外層要用form-group
包裹起來。
若內層有checkbox
或radiobox
要使用的話,外層要用form-check
包裹起來喔。
範例中第四個form-group(單選型select)
這邊這個範例可以看到form-group
裡面是包裹著select
。
那我們一樣要為這個select
的class加上form-control
。
範例中第五個form-group(多選型select)
這邊form-group
裡面一樣是包裹住select
元件,所以,該select
的class要加入form-control
,
而這邊的select
比較不一樣喔,這邊的是多選型的select
,
所以,在select
的html標籤中要加入multiple
。
範例中第六個form-group(textarea)
這邊form-group
裡面是包裹住textarea
元件,
那textarea
元件的class要加入form-control
。
以上的範例小結論
首先,不管form-group
或者form-check
它們的外層,都會包在一個<form></form>
的html標籤內。
調正input欄位的大小
只要在input
欄位的class名稱中的form-control
後面加上sm
或lg
即可調整其大小囉,
什麼都沒加的話,就維持原本的樣式大小囉。
ex:
1 | <div class="demo"> |
注意看一下這些input
欄位的className寫法,前面有一個基底樣式form-control
後面才是接
樣式的classNameform-control-sm
之類的修飾該基底樣式的其他樣式。
調正select欄位的大小
只要在select
欄位的class名稱中的form-control
後面加上sm
或lg
即可調整其大小囉,
什麼都沒加的話,就維持原本的樣式大小囉。
ex:
1 | <div class="demo"> |
它的className一樣是由基底樣式和修飾的樣式所組成。
input欄位readonly和disabled差別
以上的範例
若我們希望一個input
欄位是唯讀的效果的話,我們就在該input
的html標籤中,
加入readonly
屬性就ok囉。
若我們希望一個input
欄位是無法被使用的效果的話,我們就在該input
的html標籤中,
加入disabled
屬性就ok囉。
以上這兩種屬性的差別在於readonly
的input
欄位可以被tab鍵或滑鼠點選到。
但是,disabled
的input
欄位是你用tab鍵或滑鼠都點選不到的。