Apps Script用Sheet生成動態網頁(30): 套用Bootstrap 5浮動標籤

浮動標籤是Bootstrap 5裡頭新增的功能,個人覺得很有趣,然後看到Apple登入頁面也是使用浮動標籤,就來套用到這個專案的登入頁面。

若是要在Bootstrap 4中使用浮動標籤,可以參考Anton Staroverov的Bootstrap 4 Float Label示範。

先直接看成果

新的登入頁面(上圖)


舊的登入頁面(上圖)

改動內容

浮動標籤是參考Bootstrap 5的官方範例,在稍微調整一下Bootstrap React的寫法。這裡有一個重點是一定要記得先寫Control再寫Label,如果是反過來寫,就沒有那個浮動標籤的效果。

以下舉帳號部份的修改,就是在Group的class加上form-floating。因為我同學提醒,多層可能會導致BS的CSS判斷上有問題,所以之前一些有的沒的Row的阿、Col的阿,我就都都清掉了。

src/client/demo-bootstrap/components/LoginForm.jsx

<Form.Group className="form-floating" controlId="loginAccount">
<Form.Control
type="text"
name="username"
placeholder="輸入帳號(email)"
autocomplete="username"
required
/>
<Form.Label>輸入帳號(email)</Form.Label>
</Form.Group>


然後把Google和LINE登入按鈕移出LoginForm,放到登入頁面內。並用Stack讓它們湊在一塊。日後如果要加上微軟,Yahoo, Facebook等登入方式也可以簡單構成。

src/client/demo-bootstrap/pages/Login.jsx

<Stack gap={2}>
<Row>
<Col><hr /></Col><Col className="text-center">或是免註冊登入</Col><Col><hr /></Col>
</Row>
<a
href={getLineLoginURL()}
className="btn btn-success rounded-pill"
>
以LINE登入
</a>
<a
href={getGoogleLoginURL()}
className="btn btn-outline-secondary rounded-pill"
>
以Google登入
</a>
</Stack>

然後因為之前沒有做嚮應式調整,所以這次調整就都把它們加上,現在在解析度不同的時候,不會一直拉寬那個登入的表單的欄位及內容。

<Row className="justify-content-center">
<Col md={9} lg={5}> ... </Col>
</Row>


留言