| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | --- | 
					
						
							|  |  |  | id: 587d78ab367417b2b2512af3 | 
					
						
							| 
									
										
										
										
											2020-12-16 00:37:30 -07:00
										 |  |  | title: 使用 flex-direction 在嵌入推文中创建多行 | 
					
						
							| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | challengeType: 0 | 
					
						
							| 
									
										
										
										
											2020-02-11 21:32:25 +08:00
										 |  |  | videoUrl: 'https://scrimba.com/p/pVaDAv/cJb8yuq' | 
					
						
							|  |  |  | forumTopicId: 301104 | 
					
						
							| 
									
										
										
										
											2021-01-13 03:31:00 +01:00
										 |  |  | dashedName: apply-the-flex-direction-property-to-create-rows-in-the-tweet-embed | 
					
						
							| 
									
										
										
										
											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-02-06 04:42:36 +00:00
										 |  |  | 嵌入推文示例中的 `header` 和 `footer` 有自己的子元素,使用 `flex-direction` 属性可以把这些子元素排成行。 这个属性告诉 CSS 需要将这些子元素水平排列。 | 
					
						
							| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-16 00:37:30 -07:00
										 |  |  | # --instructions--
 | 
					
						
							| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 为 `header` 和 `footer` 添加 CSS 属性 `flex-direction`,并把值设为 `row`。 | 
					
						
							| 
									
										
										
										
											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-02-06 04:42:36 +00:00
										 |  |  | `.follow-btn` 应在页面上呈现。 请关闭广告拦截器等任何扩展。 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert($('.follow-btn').length > 0 && $('.follow-btn').css('display') !== 'none'); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `header` 应有 `flex-direction` 属性,其值应为 `row`。 | 
					
						
							| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-16 00:37:30 -07:00
										 |  |  | ```js | 
					
						
							|  |  |  | assert(code.match(/header\s*?{[^}]*?flex-direction:\s*?row;/g)); | 
					
						
							| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | `footer` 应有 `flex-direction` 属性,其值应为 `row`。 | 
					
						
							| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-16 00:37:30 -07:00
										 |  |  | ```js | 
					
						
							|  |  |  | assert(code.match(/footer\s*?{[^}]*?flex-direction:\s*?row;/g)); | 
					
						
							| 
									
										
										
										
											2018-10-10 18:03:03 -04:00
										 |  |  | ``` | 
					
						
							| 
									
										
										
										
											2020-02-11 21:32:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-13 03:31:00 +01:00
										 |  |  | # --seed--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## --seed-contents--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```html | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  |   body { | 
					
						
							|  |  |  |     font-family: Arial, sans-serif; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .profile-thumbnail { | 
					
						
							|  |  |  |     width: 50px; | 
					
						
							|  |  |  |     height: 50px; | 
					
						
							|  |  |  |     border-radius: 4px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .profile-name { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     margin-left: 10px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .follow-btn { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     margin: 0 0 0 auto; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .follow-btn button { | 
					
						
							|  |  |  |     border: 0; | 
					
						
							|  |  |  |     border-radius: 3px; | 
					
						
							|  |  |  |     padding: 5px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header h3, header h4 { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     margin: 0; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   #inner p { | 
					
						
							|  |  |  |     margin-bottom: 10px; | 
					
						
							|  |  |  |     font-size: 20px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   #inner hr { | 
					
						
							|  |  |  |     margin: 20px 0; | 
					
						
							|  |  |  |     border-style: solid; | 
					
						
							|  |  |  |     opacity: 0.1; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .stats { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     font-size: 15px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .stats strong { | 
					
						
							|  |  |  |     font-size: 18px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .stats .likes { | 
					
						
							|  |  |  |     margin-left: 10px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .cta { | 
					
						
							|  |  |  |     margin-left: auto; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .cta button { | 
					
						
							|  |  |  |     border: 0; | 
					
						
							|  |  |  |     background: transparent; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </style> | 
					
						
							|  |  |  | <header> | 
					
						
							|  |  |  |   <img src="https://freecodecamp.s3.amazonaws.com/quincy-twitter-photo.jpg" alt="Quincy Larson's profile picture" class="profile-thumbnail"> | 
					
						
							|  |  |  |   <div class="profile-name"> | 
					
						
							|  |  |  |     <h3>Quincy Larson</h3> | 
					
						
							|  |  |  |     <h4>@ossia</h4> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  |   <div class="follow-btn"> | 
					
						
							|  |  |  |     <button>Follow</button> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </header> | 
					
						
							|  |  |  | <div id="inner"> | 
					
						
							|  |  |  |   <p>I meet so many people who are in search of that one trick that will help them work smart. Even if you work smart, you still have to work hard.</p> | 
					
						
							|  |  |  |   <span class="date">1:32 PM - 12 Jan 2018</span> | 
					
						
							|  |  |  |   <hr> | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | <footer> | 
					
						
							|  |  |  |   <div class="stats"> | 
					
						
							|  |  |  |     <div class="Retweets"> | 
					
						
							|  |  |  |       <strong>107</strong> Retweets | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |     <div class="likes"> | 
					
						
							|  |  |  |       <strong>431</strong> Likes | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  |   <div class="cta"> | 
					
						
							|  |  |  |     <button class="share-btn">Share</button> | 
					
						
							|  |  |  |     <button class="retweet-btn">Retweet</button> | 
					
						
							|  |  |  |     <button class="like-btn">Like</button> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </footer> | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-16 00:37:30 -07:00
										 |  |  | # --solutions--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-13 03:31:00 +01:00
										 |  |  | ```html | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  |   body { | 
					
						
							|  |  |  |     font-family: Arial, sans-serif; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     flex-direction: row; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .profile-thumbnail { | 
					
						
							|  |  |  |     width: 50px; | 
					
						
							|  |  |  |     height: 50px; | 
					
						
							|  |  |  |     border-radius: 4px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .profile-name { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     margin-left: 10px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .follow-btn { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     margin: 0 0 0 auto; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header .follow-btn button { | 
					
						
							|  |  |  |     border: 0; | 
					
						
							|  |  |  |     border-radius: 3px; | 
					
						
							|  |  |  |     padding: 5px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   header h3, header h4 { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     margin: 0; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   #inner p { | 
					
						
							|  |  |  |     margin-bottom: 10px; | 
					
						
							|  |  |  |     font-size: 20px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   #inner hr { | 
					
						
							|  |  |  |     margin: 20px 0; | 
					
						
							|  |  |  |     border-style: solid; | 
					
						
							|  |  |  |     opacity: 0.1; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     flex-direction: row; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .stats { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     font-size: 15px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .stats strong { | 
					
						
							|  |  |  |     font-size: 18px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .stats .likes { | 
					
						
							|  |  |  |     margin-left: 10px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .cta { | 
					
						
							|  |  |  |     margin-left: auto; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   footer .cta button { | 
					
						
							|  |  |  |     border: 0; | 
					
						
							|  |  |  |     background: transparent; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </style> | 
					
						
							|  |  |  | <header> | 
					
						
							|  |  |  |   <img src="https://freecodecamp.s3.amazonaws.com/quincy-twitter-photo.jpg" alt="Quincy Larson's profile picture" class="profile-thumbnail"> | 
					
						
							|  |  |  |   <div class="profile-name"> | 
					
						
							|  |  |  |     <h3>Quincy Larson</h3> | 
					
						
							|  |  |  |     <h4>@ossia</h4> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  |   <div class="follow-btn"> | 
					
						
							|  |  |  |     <button>Follow</button> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </header> | 
					
						
							|  |  |  | <div id="inner"> | 
					
						
							|  |  |  |   <p>I meet so many people who are in search of that one trick that will help them work smart. Even if you work smart, you still have to work hard.</p> | 
					
						
							|  |  |  |   <span class="date">1:32 PM - 12 Jan 2018</span> | 
					
						
							|  |  |  |   <hr> | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | <footer> | 
					
						
							|  |  |  |   <div class="stats"> | 
					
						
							|  |  |  |     <div class="Retweets"> | 
					
						
							|  |  |  |       <strong>107</strong> Retweets | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |     <div class="likes"> | 
					
						
							|  |  |  |       <strong>431</strong> Likes | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  |   <div class="cta"> | 
					
						
							|  |  |  |     <button class="share-btn">Share</button> | 
					
						
							|  |  |  |     <button class="retweet-btn">Retweet</button> | 
					
						
							|  |  |  |     <button class="like-btn">Like</button> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </footer> | 
					
						
							|  |  |  | ``` |