2018-10-10 18:03:03 -04:00
---
id: bad87fee1348bd9aec908845
required:
- link: 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/css/font-awesome.css'
raw: true
challengeType: 0
2020-09-07 16:17:39 +08:00
forumTopicId: 18225
2020-10-01 17:54:21 +02:00
title: 使用 Bootstrap 响应式排列表单元素
2018-10-10 18:03:03 -04:00
---
## Description
2020-09-07 16:17:39 +08:00
< section id = 'description' >
现在让我们把你表单里的 < code > input< / code > 元素和 submit < code > button< / code > (提交按钮)放在同一行。跟着之前的做法来就行:准备好一个具有 < code > row< / code > class 的 < code > div< / code > 元素还有几个具有 < code > col-xs-*< / code > class 的 < code > div< / code > 元素。
先把你表单的 text < code > input< / code > (文本输入框)和 submit < code > button< / code > (提交按钮)放进具有 < code > row< / code > class 的 < code > div< / code > 中。再用 < code > col-xs-7< / code > class 的 div 包裹表单的 text < code > input< / code > (文本输入框),< code > col-xs-5< / code > class 的 div 包裹表单的 submit < code > button< / code > (提交按钮)。
这是我们到目前为止 Cat Photo App 的最后一个挑战了。我希望你能喜欢 Font Awesome, Bootstrap, 和响应式设计!
< / section >
2018-10-10 18:03:03 -04:00
## Instructions
2020-09-07 16:17:39 +08:00
< section id = 'instructions' >
2018-10-10 18:03:03 -04:00
< / section >
## Tests
< section id = 'tests' >
```yml
tests:
2020-09-07 16:17:39 +08:00
- text: 确保提交按钮和文本输入框都在同一个具有 class 属性 < code > row</ code > 的 div 元素中。
2020-02-18 01:40:55 +09:00
testString: assert($("div.row:has(input[type=\"text\"])").length > 0 && $("div.row:has(button[type=\"submit\"])").length > 0);
2020-09-07 16:17:39 +08:00
- text: 表单的文本输入框应该嵌入到具有 class 属性 < code > col-xs-7</ code > 的 div 内。
2020-02-18 01:40:55 +09:00
testString: assert($("div.col-xs-7:has(input[type=\"text\"])").length > 0);
2020-09-07 16:17:39 +08:00
- text: 表单的提交按钮应该嵌入到具有 class 属性 < code > col-xs-5</ code > 的 div 内。
2020-02-18 01:40:55 +09:00
testString: assert($("div.col-xs-5:has(button[type=\"submit\"])").length > 0);
2020-09-07 16:17:39 +08:00
- text: 确保每一个 < code > div</ code > 元素都有一个闭合标签。
2020-02-18 01:40:55 +09:00
testString: 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
```
< / section >
## Challenge Seed
< section id = 'challengeSeed' >
< div id = 'html-seed' >
```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" >
< a href = "#" > < img class = "img-responsive thick-green-border" src = "https://bit.ly/fcc-relaxing-cat" alt = "A cute orange cat lying on its back." > < / a >
< / div >
< / div >
< img src = "https://bit.ly/fcc-running-cats" class = "img-responsive" alt = "Three kittens running towards the camera." >
< 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 >
2020-07-15 02:55:06 -07:00
< form action = "https://freecatphotoapp.com/submit-cat-photo" >
2018-10-10 18:03:03 -04:00
< 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 >
```
< / div >
< / section >
## Solution
< section id = 'solution' >
2020-09-07 16:17:39 +08: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" >
< a href = "#" > < img class = "img-responsive thick-green-border" src = "https://bit.ly/fcc-relaxing-cat" alt = "A cute orange cat lying on its back." > < / a >
< / div >
< / div >
< img src = "https://bit.ly/fcc-running-cats" class = "img-responsive" alt = "Three kittens running towards the camera." >
< 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 = "/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 >
2018-10-10 18:03:03 -04:00
```
2020-08-13 17:24:35 +02:00
2020-09-07 16:17:39 +08:00
< / section >