174 lines
5.4 KiB
Markdown
174 lines
5.4 KiB
Markdown
|
---
|
||
|
id: bad87fee1348bd9aedf08845
|
||
|
challengeType: 0
|
||
|
forumTopicId: 18370
|
||
|
localeTitle: 使用 span 创建行内元素
|
||
|
---
|
||
|
|
||
|
## Description
|
||
|
<section id='description'>
|
||
|
你可以使用 span 标签来创建行内元素。还记得我们怎么使用 <code>btn-block</code> class 来创建填满整行的按钮吗?
|
||
|
<button class='btn' style='background-color: rgb(0, 100, 0); color: rgb(255, 255, 255);'>normal button</button>
|
||
|
<button class='btn btn-block' style='background-color: rgb(0, 100, 0); color: rgb(255, 255, 255);'>btn-block button</button>
|
||
|
上面的例子就是 "inline" (行内)元素和 "block" (块级)元素的区别。
|
||
|
通过使用行内元素 <code>span</code>,你可以把不同的元素放在同一行,甚至能为一个元素的不同部分指定样式。
|
||
|
把 "Things cats love" 中的 "love" 放入 <code>span</code> 标签。然后为其添加 <code>text-danger</code> class 来使其文字变成红色。
|
||
|
"Top 3 things cats hate" 元素的写法如下:
|
||
|
<code><p>Top 3 things cats <span class="text-danger">hate:</span></p></code>
|
||
|
</section>
|
||
|
|
||
|
## Instructions
|
||
|
<section id='instructions'>
|
||
|
|
||
|
</section>
|
||
|
|
||
|
## Tests
|
||
|
<section id='tests'>
|
||
|
|
||
|
```yml
|
||
|
tests:
|
||
|
- text: <code>span</code> 元素应该在 <code>p</code> 元素内。
|
||
|
testString: assert($("p span") && $("p span").length > 0);
|
||
|
- text: <code>span</code> 元素应该只含有文本 <code>love</code>。
|
||
|
testString: assert($("p span") && $("p span").text().match(/love/i) && !$("p span").text().match(/Things cats/i));
|
||
|
- text: <code>span</code> 元素应该含有 class <code>text-danger</code>。
|
||
|
testString: assert($("span").hasClass("text-danger"));
|
||
|
- text: 确保你的 <code>span</code> 元素有一个闭合标签。
|
||
|
testString: assert(code.match(/<\/span>/g) && code.match(/<span/g) && code.match(/<\/span>/g).length === code.match(/<span/g).length);
|
||
|
|
||
|
```
|
||
|
|
||
|
</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">
|
||
|
<h2 class="text-primary text-center">CatPhotoApp</h2>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
<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">Like</button>
|
||
|
</div>
|
||
|
<div class="col-xs-4">
|
||
|
<button class="btn btn-block btn-info">Info</button>
|
||
|
</div>
|
||
|
<div class="col-xs-4">
|
||
|
<button class="btn btn-block btn-danger">Delete</button>
|
||
|
</div>
|
||
|
</div>
|
||
|
<p>Things cats love:</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">
|
||
|
<label><input type="radio" name="indoor-outdoor"> Indoor</label>
|
||
|
<label><input type="radio" name="indoor-outdoor"> Outdoor</label>
|
||
|
<label><input type="checkbox" name="personality"> Loving</label>
|
||
|
<label><input type="checkbox" name="personality"> Lazy</label>
|
||
|
<label><input type="checkbox" name="personality"> Crazy</label>
|
||
|
<input type="text" placeholder="cat photo URL" required>
|
||
|
<button type="submit">Submit</button>
|
||
|
</form>
|
||
|
</div>
|
||
|
```
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
</section>
|
||
|
|
||
|
## Solution
|
||
|
<section id='solution'>
|
||
|
|
||
|
```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">
|
||
|
<h2 class="text-primary text-center">CatPhotoApp</h2>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
<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">Like</button>
|
||
|
</div>
|
||
|
<div class="col-xs-4">
|
||
|
<button class="btn btn-block btn-info">Info</button>
|
||
|
</div>
|
||
|
<div class="col-xs-4">
|
||
|
<button class="btn btn-block btn-danger">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">
|
||
|
<label><input type="radio" name="indoor-outdoor"> Indoor</label>
|
||
|
<label><input type="radio" name="indoor-outdoor"> Outdoor</label>
|
||
|
<label><input type="checkbox" name="personality"> Loving</label>
|
||
|
<label><input type="checkbox" name="personality"> Lazy</label>
|
||
|
<label><input type="checkbox" name="personality"> Crazy</label>
|
||
|
<input type="text" placeholder="cat photo URL" required>
|
||
|
<button type="submit">Submit</button>
|
||
|
</form>
|
||
|
</div>
|
||
|
```
|
||
|
|
||
|
</section>
|