freeCodeCamp/curriculum/challenges/japanese/01-responsive-web-design/css-flexbox/use-the-flex-shorthand-prop...

2.9 KiB

id title challengeType videoUrl forumTopicId dashedName
587d78ae367417b2b2512afe flex の一括指定プロパティを使用する 0 https://scrimba.com/p/pVaDAv/cbpW2tE 301112 use-the-flex-shorthand-property

--description--

複数のフレックスプロパティを一度に設定するためのショートカットがあります。 flex-growflex-shrinkflex-basis プロパティは、flex プロパティを使用することで一括設定することが可能です。

例えば、アイテムに flex: 1 0 10px; と設定すると、これは flex-grow: 1;flex-shrink: 0;flex-basis: 10px; と同じ設定になります。

デフォルトのプロパティ設定は flex: 0 1 auto; です。

--instructions--

CSS プロパティ flex#box-1#box-2 の両方に追加します。 #box-1 への値として flex-grow2flex-shrink2、そして flex-basis150px となるよう設定してください。 #box-2 への値として flex-grow1flex-shrink1、そして flex-basis150px となるよう設定してください。

これらの値を指定すると、コンテナーが 300px より大きい場合には #box-1#box-2 の 2 倍の比率で余分なスペースを埋めるように拡大し、コンテナーが 300px より小さい場合には #box-2 の 2 倍の比率で縮小します。 300px は 2 つのボックスの flex-basis 値を足し合わせたサイズです。

--hints--

#box-1 要素の flex プロパティを 2 2 150px に設定してください。

assert(
  $('#box-1').css('flex-grow') == '2' &&
    $('#box-1').css('flex-shrink') == '2' &&
    $('#box-1').css('flex-basis') == '150px'
);

#box-2 要素の flex プロパティを 1 1 150px に設定してください。

assert(
  $('#box-2').css('flex-grow') == '1' &&
    $('#box-2').css('flex-shrink') == '1' &&
    $('#box-2').css('flex-basis') == '150px'
);

コードは #box-1#box-2 の両方で flex プロパティを使用してください。

assert(code.match(/flex:\s*?\d\s+?\d\s+?150px;/g).length == 2);

--seed--

--seed-contents--

<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>

--solutions--

<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>