BS3 Forms
簡介
BS3 中針對輸入表單的部份只提供對表單中各元件外觀樣式的定義,及各元件定位的定義,並沒有提供其它的特殊功能。先介紹幾個重要的樣式類別:
- .control-label
- 定義在 <label> 標記中,修飾輸入欄位名稱的外觀及其定位。
- .form-control
- 定義在 <input> 標記中,修飾輸入欄位的外觀及其定位。
- .form-group
- 此為容器類別。容器中包含至少一對或一對以上的 <label> 及 <input> 組合,此容器類別將容器中的輸入欄位及其名稱組成一個群組,根據輸入表單的格式決定輸入欄位及其名稱的排列方式。最重要的一點是樣式為 .form-group 的容器樣式會具有
margin-bottom: 15px;
的屬性值,藉以區隔不同的輸入群組。可以和 .form-group 同時使用的又有下列各修飾類別:- .form-group-lg, .form-group-sm
- 改變輸入欄位及其名稱的字體大小。
- .has-success, has-warning, has-error
- 以上修飾類別在驗證欄位輸入值後,可以用來變更輸入欄位名稱及輸入欄位邊框的顏色,藉以表現欄位輸入值驗證後的結果。
BS3 中的輸入表單有三種不同的格式:
- form-vertical
- form-vertical 是預設的格式,因此並沒有 .form-vertical 的樣式類別需要設定。此樣式的輸入欄位名稱 (.control-label) 和輸入欄位 (.form-control) 各自佔據一列,輸入欄位名稱位於輸入欄位的上一列。
- .form-horizontal
- .form-horizontal 表單格式中,.form-group 容器中的所有元件都位於同一列,輸入欄位名稱位於輸入欄位的左側。必須使用 col-*-* 格線系統定位,輸入欄無名稱靠右對齊,輸入欄位則靠左對齊。在表格中使用 col-*-* 時,不需要有 .row 容器,.form-group 容器本身和 .row 容器相當。
- .form-inline
- .form-inline 的 .form-group 容器中的元件都位於同一列中,這種排列方式比較緊湊,可以節省螢幕上的空間,只是要注意每個輸入欄位的所需長度,也許得特別定義一下。
以下為 BS3 v3.3.6 的 bootstrap.css 樣式表中部份和 form 相關的樣式設定,因為所有 <form> 中的所有標記 BS3 都有特別的樣式設定,實在是太多了,為了節省篇幅,就沒有全部在下面列出來,有需要時,請去參考 bootstrap.css 檔案的內容。
<style> .form-group { margin-bottom: 15px; } .form-group-sm .form-control-static { height: 30px; min-height: 32px; padding: 6px 10px; font-size: 12px; line-height: 1.5; } .form-group-lg .form-control { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } .form-control:focus { border-color: #66afe9; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); } .form-control::-moz-placeholder { color: #999; opacity: 1; } .form-control:-ms-input-placeholder { color: #999; } .form-control::-webkit-input-placeholder { color: #999; } .form-control::-ms-expand { background-color: transparent; border: 0; } .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #eee; opacity: 1; } .form-control[disabled], fieldset[disabled] .form-control { cursor: not-allowed; } </style>
範例 form-vertical (default)
此範例為 form-vertical。
CSS
<style> html { width:100%; height:100%; } body { margin: 0 auto; max-width: 1000px; padding: 20px; } #login { margin: 50px auto; width: 400px; height:auto; border: 1px solid gray; } form .title { padding:10px; font-size: 1.5em; text-align: center; background-color: #99CCFF; } form .inputArea { padding:20px; background-color: #eeeeee; } form .action { padding:10px; text-align: center; background-color: #99CCFF; } </style>
#login{} 設定了輸入視窗的外觀及大小 寬度有 400px。
form .title{}, form .inputArea{}, form .action{} 各設定了輸入視窗中三個區域的底色及外觀。
HTML
<body></body>
只有二個輸入欄位,各自用一個 .form-group 的容器裝載,因此兩個欄位間的間距會比較大,有 15px。
範例 form-horizonal
此範例為 form-horizontal。
CSS
<style> html { width:100%; height:100%; } body { margin: 0 auto; max-width: 1000px; padding: 20px; } #login { margin: 50px auto; width: 400px; height:auto; border: 1px solid gray; } form .title { padding:10px; font-size: 1.5em; text-align: center; background-color: #99CCFF; } form .inputArea { padding:20px; background-color: #eeeeee; } form .action { padding:10px; text-align: center; background-color: #99CCFF; } </style>
#login{} 設定了輸入視窗的外觀及大小,寛度有 400px。
form .title{}, form .inputArea{}, form .action{} 各設定了輸入視窗中三個區域的底色及外觀。
HTML
<body></body>
第 2 行將輸入表單設為 .form-horizontal 的格式。
第6, 7 行各用 col-*-* 類別設定 <label> 及 <input> 的寬度。在裝置螢幕的尺寸為 xs 時,其外觀等同於 form-vertical 的外觀。
範例 form-inline
此範例為 form-inline。
CSS
<style> html { width:100%; height:100%; } body { margin: 0 auto; max-width: 1000px; padding: 20px; } #login { margin: 50px auto; width: 800px; height:auto; border: 1px solid gray; } form .title { padding:10px; font-size: 1.5em; text-align: center; background-color: #99CCFF; } form .inputArea { padding:20px; background-color: #eeeeee; } form .action { padding:10px; text-align: center; background-color: #99CCFF; } .form-inline .control-label { margin-left: 15px; margin-right: 5px; } </style>
#login{} 設定了輸入視窗的外觀及大小,為了讓兩個欄位有足夠的空間在同一列,寛度設為 800px。
form .title{}, form .inputArea{}, form .action{} 各設定了輸入視窗中三個區域的底色及外觀。
.form-inline .control-label{} 設定左、右邊界各為 15px 及 5px,這樣在視覺比較美觀,預設的情況下,輸入欄位的名稱和輸入欄位會靠得很近。
HTML
<body></body>
第 2 行將輸入表單設為 .form-inline 的格式。
兩個輸入欄位及其名稱都包含在同一個 .form-group 的容器中。
沒有留言:
張貼留言