3.5 KiB
3.5 KiB
id | title | challengeType | videoUrl | forumTopicId | localeTitle |
---|---|---|---|---|---|
587d78ae367417b2b2512afe | Use the flex Shorthand Property | 0 | https://scrimba.com/p/pVaDAv/cbpW2tE | 301112 | Используйте свойство flex Shorthand |
Description
flex-grow
, flex-shrink
и flex-basis
можно объединить, используя свойство flex
. Например, flex: 1 0 10px;
установит элемент для flex-grow: 1;
, flex-shrink: 0;
, и flex-basis: 10px;
, Настройки свойств по умолчанию - flex: 0 1 auto;
,
Instructions
flex
и к #box-1
и #box-2
. Дайте #box-1
значения, поэтому его flex-grow
равен 2, его flex-shrink
равен 2, а его flex-basis
- 150 пикселей. Дайте #box-2
значения, поэтому его flex-grow
равен 1, его flex-shrink
равен 1, а его flex-basis
- 150 пикселей. Эти значения приведут к тому, что #box-1
будет расти, чтобы заполнить дополнительное пространство с удвоенной скоростью #box-2
когда контейнер больше 300 пикселей, и с удвоенной скоростью #box-2
когда контейнер меньше 300 пикселей. 300px - это комбинированный размер значений flex-basis
двух полей.
Tests
tests:
- text: The <code>#box-1</code> element should have the <code>flex</code> property set to a value of 2 2 150px.
testString: assert($('#box-1').css('flex-grow') == '2' && $('#box-1').css('flex-shrink') == '2' && $('#box-1').css('flex-basis') == '150px');
- text: The <code>#box-2</code> element should have the <code>flex</code> property set to a value of 1 1 150px.
testString: assert($('#box-2').css('flex-grow') == '1' && $('#box-2').css('flex-shrink') == '1' && $('#box-2').css('flex-basis') == '150px');
- text: Your code should use the <code>flex</code> property for <code>#box-1</code> and <code>#box-2</code>.
testString: assert(code.match(/flex:\s*?\d\s+?\d\s+?150px;/g).length == 2);
Challenge Seed
<style>
#box-container {
display: flex;
height: 500px;
}
#box-1 {
background-color: dodgerblue;
height: 200px;
}
#box-2 {
background-color: orangered;
height: 200px;
}
</style>
<div id="box-container">
<div id="box-1"></div>
<div id="box-2"></div>
</div>
Solution
<style>
#box-container {
display: flex;
height: 500px;
}
#box-1 {
background-color: dodgerblue;
flex: 2 2 150px;
height: 200px;
}
#box-2 {
background-color: orangered;
flex: 1 1 150px;
height: 200px;
}
</style>
<div id="box-container">
<div id="box-1"></div>
<div id="box-2"></div>
</div>