178 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: bad87fee1348bd9aede08845
 | |
| title: 创建自定义标题
 | |
| challengeType: 0
 | |
| forumTopicId: 16816
 | |
| dashedName: create-a-custom-heading
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| 为 Cat Photo App 做一个导航,把标题和惬意的猫咪图片放在同一行。
 | |
| 
 | |
| 记住,由于 Bootstrap 使用了响应式栅格系统,可以很方便的把元素放到一行以及指定元素的相对宽度。 大部分的 Bootstrap 的 class 都能用在 `div` 元素上。
 | |
| 
 | |
| 把第一张图片和 `h2` 元素用一个简单的 `<div class="row">` 元素包裹起来。 再用 `<div class="col-xs-8">` 包裹 `h2` 元素,用 `<div class="col-xs-4">` 包裹我们的图片,这样它们就能位于同一行了。
 | |
| 
 | |
| 注意现在图片是否与文字大小一致呢?
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| `h2` 元素和最上方的 `img` 元素应该一起内嵌于具有 `row` class 的 `div` 元素内。
 | |
| 
 | |
| ```js
 | |
| assert($('div.row:has(h2)').length > 0 && $('div.row:has(img)').length > 0);
 | |
| ```
 | |
| 
 | |
| 最上方的 `img` 元素应该内嵌于含有 `col-xs-4` class 的 `div` 元素中。
 | |
| 
 | |
| ```js
 | |
| assert(
 | |
|   $('div.col-xs-4:has(img)').length > 0 &&
 | |
|     $('div.col-xs-4:has(div)').length === 0
 | |
| );
 | |
| ```
 | |
| 
 | |
| `h2` 元素应该内嵌于含有 `col-xs-8` class 的 `div` 元素中。
 | |
| 
 | |
| ```js
 | |
| assert(
 | |
|   $('div.col-xs-8:has(h2)').length > 0 &&
 | |
|     $('div.col-xs-8:has(div)').length === 0
 | |
| );
 | |
| ```
 | |
| 
 | |
| 确保每一个 `div` 元素都有一个闭合标签。
 | |
| 
 | |
| ```js
 | |
| assert(
 | |
|   code.match(/<\/div>/g) &&
 | |
|     code.match(/<div/g) &&
 | |
|     code.match(/<\/div>/g).length === code.match(/<div/g).length
 | |
| );
 | |
| ```
 | |
| 
 | |
| # --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">
 | |
|   <h2 class="text-primary text-center">CatPhotoApp</h2>
 | |
| 
 | |
|   <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>
 | |
| 
 | |
|   <img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg" 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="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>
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```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://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg" alt="A cute orange cat lying on its back."></a>
 | |
|     </div>
 | |
|   </div>
 | |
|   <img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg" 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="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>
 | |
| ```
 |