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-01-08 11:20:48 -08: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-01-08 11:20:48 -08: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-01-08 11:20:48 -08:00
|
|
|
`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-01-08 11:20:48 -08: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>
|
|
|
|
```
|