2018-10-10 18:03:03 -04:00
---
id: bad87fee1348bd9aec908845
2021-03-04 19:55:32 -07:00
title: 使用 Bootstrap 响应式排列表单元素
2018-10-10 18:03:03 -04:00
challengeType: 0
2020-09-07 16:17:39 +08:00
forumTopicId: 18225
2020-12-16 00:37:30 -07:00
required:
2021-02-06 04:42:36 +00:00
-
link: >-
2020-12-16 00:37:30 -07:00
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/css/font-awesome.css
raw: true
2021-01-13 03:31:00 +01:00
dashedName: line-up-form-elements-responsively-with-bootstrap
2018-10-10 18:03:03 -04:00
---
2020-12-16 00:37:30 -07:00
# --description--
2018-10-10 18:03:03 -04:00
2021-03-04 19:55:32 -07:00
现在把表单里的 `input` 元素和 submit `button` (提交按钮)放在同一行。 跟着之前的做法来就行:准备好一个具有 `row` class 的 `div` 元素还有几个具有 `col-xs-*` class 的 `div` 元素。
2018-10-10 18:03:03 -04:00
2021-03-04 19:55:32 -07:00
先把表单的 text `input` (文本输入框)和 submit `button` (提交按钮)放进具有 `row` class 的 `div` 中。 再用 `col-xs-7` class 的 div 包裹表单的 text `input` (文本输入框), `col-xs-5` class 的 `div` 包裹表单的 submit `button` (提交按钮)。
2018-10-10 18:03:03 -04:00
2021-03-04 19:55:32 -07:00
这是我们到目前为止 Cat Photo App 的最后一个挑战了。 祝你编码愉快。
2018-10-10 18:03:03 -04:00
2020-12-16 00:37:30 -07:00
# --hints--
2018-10-10 18:03:03 -04:00
2021-03-04 19:55:32 -07:00
确保提交按钮和文本输入框都在同一个具有 class 属性 `row` 的 div 元素中。
2018-10-10 18:03:03 -04:00
2020-12-16 00:37:30 -07:00
```js
assert(
$('div.row:has(input[type="text"])').length > 0 & &
$('div.row:has(button[type="submit"])').length > 0
);
2018-10-10 18:03:03 -04:00
```
2021-03-04 19:55:32 -07:00
表单的文本输入框应该嵌入到 `col-xs-7` class 属性的 div 内。
2018-10-10 18:03:03 -04:00
2020-12-16 00:37:30 -07:00
```js
assert($('div.col-xs-7:has(input[type="text"])').length > 0);
```
2018-10-10 18:03:03 -04:00
2021-03-04 19:55:32 -07:00
表单的提交按钮应该嵌入到 `col-xs-5` class 属性的 div 内。
2020-09-07 16:17:39 +08:00
2020-12-16 00:37:30 -07:00
```js
assert($('div.col-xs-5:has(button[type="submit"])').length > 0);
```
2020-09-07 16:17:39 +08:00
2021-03-04 19:55:32 -07:00
确保每一个 `div` 元素都有一个闭合标签。
2020-09-07 16:17:39 +08:00
2020-12-16 00:37:30 -07:00
```js
assert(
code.match(/< \/div > /g) &&
code.match(/< div / g ) & &
code.match(/< \/div > /g).length === code.match(/< div / g ). length
);
2018-10-10 18:03:03 -04:00
```
2020-08-13 17:24:35 +02:00
2021-01-13 03:31:00 +01:00
# --seed--
## --seed-contents--
```html
< link href = "https://fonts.googleapis.com/css?family=Lobster" rel = "stylesheet" type = "text/css" >
< style >
h2 {
font-family: Lobster, Monospace;
}
.thick-green-border {
border-color: green;
border-width: 10px;
border-style: solid;
border-radius: 50%;
}
< / style >
< div class = "container-fluid" >
< div class = "row" >
< div class = "col-xs-8" >
< h2 class = "text-primary text-center" > CatPhotoApp< / h2 >
< / div >
< div class = "col-xs-4" >
2021-09-22 08:34:59 -07:00
< a href = "#" > < img class = "img-responsive thick-green-border" src = "https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg" alt = "A cute orange cat lying on its back." > < / a >
2021-01-13 03:31:00 +01:00
< / div >
< / div >
2021-09-22 08:34:59 -07:00
< img src = "https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg" class = "img-responsive" alt = "Three kittens running towards the camera." >
2021-01-13 03:31:00 +01:00
< div class = "row" >
< div class = "col-xs-4" >
< button class = "btn btn-block btn-primary" > < i class = "fa fa-thumbs-up" > < / i > Like< / button >
< / div >
< div class = "col-xs-4" >
< button class = "btn btn-block btn-info" > < i class = "fa fa-info-circle" > < / i > Info< / button >
< / div >
< div class = "col-xs-4" >
< button class = "btn btn-block btn-danger" > < i class = "fa fa-trash" > < / i > Delete< / button >
< / div >
< / div >
< p > Things cats < span class = "text-danger" > love:< / span > < / p >
< ul >
< li > cat nip< / li >
< li > laser pointers< / li >
< li > lasagna< / li >
< / ul >
< p > Top 3 things cats hate:< / p >
< ol >
< li > flea treatment< / li >
< li > thunder< / li >
< li > other cats< / li >
< / ol >
< form action = "https://freecatphotoapp.com/submit-cat-photo" >
< div class = "row" >
< div class = "col-xs-6" >
< label > < input type = "radio" name = "indoor-outdoor" > Indoor< / label >
< / div >
< div class = "col-xs-6" >
< label > < input type = "radio" name = "indoor-outdoor" > Outdoor< / label >
< / div >
< / div >
< div class = "row" >
< div class = "col-xs-4" >
< label > < input type = "checkbox" name = "personality" > Loving< / label >
< / div >
< div class = "col-xs-4" >
< label > < input type = "checkbox" name = "personality" > Lazy< / label >
< / div >
< div class = "col-xs-4" >
< label > < input type = "checkbox" name = "personality" > Crazy< / label >
< / div >
< / div >
< input type = "text" class = "form-control" placeholder = "cat photo URL" required >
< button type = "submit" class = "btn btn-primary" > < i class = "fa fa-paper-plane" > < / i > Submit< / button >
< / form >
< / div >
```
2020-12-16 00:37:30 -07:00
# --solutions--
2021-01-13 03:31:00 +01:00
```html
< link href = "https://fonts.googleapis.com/css?family=Lobster" rel = "stylesheet" type = "text/css" >
< style >
h2 {
font-family: Lobster, Monospace;
}
.thick-green-border {
border-color: green;
border-width: 10px;
border-style: solid;
border-radius: 50%;
}
< / style >
< div class = "container-fluid" >
< div class = "row" >
< div class = "col-xs-8" >
< h2 class = "text-primary text-center" > CatPhotoApp< / h2 >
< / div >
< div class = "col-xs-4" >
2021-09-22 08:34:59 -07:00
< a href = "#" > < img class = "img-responsive thick-green-border" src = "https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg" alt = "A cute orange cat lying on its back." > < / a >
2021-01-13 03:31:00 +01:00
< / div >
< / div >
2021-09-22 08:34:59 -07:00
< img src = "https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg" class = "img-responsive" alt = "Three kittens running towards the camera." >
2021-01-13 03:31:00 +01:00
< div class = "row" >
< div class = "col-xs-4" >
< button class = "btn btn-block btn-primary" > < i class = "fa fa-thumbs-up" > < / i > Like< / button >
< / div >
< div class = "col-xs-4" >
< button class = "btn btn-block btn-info" > < i class = "fa fa-info-circle" > < / i > Info< / button >
< / div >
< div class = "col-xs-4" >
< button class = "btn btn-block btn-danger" > < i class = "fa fa-trash" > < / i > Delete< / button >
< / div >
< / div >
< p > Things cats < span class = "text-danger" > love:< / span > < / p >
< ul >
< li > cat nip< / li >
< li > laser pointers< / li >
< li > lasagna< / li >
< / ul >
< p > Top 3 things cats hate:< / p >
< ol >
< li > flea treatment< / li >
< li > thunder< / li >
< li > other cats< / li >
< / ol >
< form action = "https://freecatphotoapp.com/submit-cat-photo" >
< div class = "row" >
< div class = "col-xs-6" >
< label > < input type = "radio" name = "indoor-outdoor" > Indoor< / label >
< / div >
< div class = "col-xs-6" >
< label > < input type = "radio" name = "indoor-outdoor" > Outdoor< / label >
< / div >
< / div >
< div class = "row" >
< div class = "col-xs-4" >
< label > < input type = "checkbox" name = "personality" > Loving< / label >
< / div >
< div class = "col-xs-4" >
< label > < input type = "checkbox" name = "personality" > Lazy< / label >
< / div >
< div class = "col-xs-4" >
< label > < input type = "checkbox" name = "personality" > Crazy< / label >
< / div >
< / div >
< div class = "row" >
< div class = "col-xs-7" >
< input type = "text" class = "form-control" placeholder = "cat photo URL" required >
< / div >
< div class = "col-xs-5" >
< button type = "submit" class = "btn btn-primary" > < i class = "fa fa-paper-plane" > < / i > Submit< / button >
< / div >
< / div >
< / form >
< / div >
```