CSSグリッドにおける個別要素の両軸揃え

個別の要素を水平軸と垂直軸の両方に 同時に揃えるには、justify-self プロパティと align-self プロパティを組み合わせることで可能です。

水平方向の開始位置と垂直方向の中央揃え

最初の要素を水平軸の開始位置と 垂直軸の中央に揃えてみましょう:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-rows: repeat(3, 1fr);
  grid-gap: 10px;
  padding: 10px;
  border: 2px solid #696989;
  height: 200px;
  width: 400px;
}
#parent > div {
  grid-gap: 10px;
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #696989;
}
#elem1 {
  justify-self: start;
  align-self: center;
}

Результат:

水平方向の中央と垂直方向の開始位置揃え

次に、最初の要素を水平軸の中央と 垂直軸の開始位置に揃えてみましょう:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-rows: repeat(3, 1fr);
  grid-gap: 10px;
  padding: 10px;
  border: 2px solid #696989;
  height: 200px;
  width: 400px;
}
#parent > div {
  grid-gap: 10px;
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #696989;
}
#elem1 {
  justify-self: center;
  align-self: start;
}

Результат:

水平方向の終了位置と垂直方向の中央揃え

最初の要素を水平軸の終了位置と 垂直軸の中央に揃えてみましょう:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-rows: repeat(3, 1fr);
  grid-gap: 10px;
  padding: 10px;
  border: 2px solid #696989;
  height: 200px;
  width: 400px;
}
#parent > div {
  grid-gap: 10px;
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #696989;
}
#elem1 {
  justify-self: end;
  align-self: center;
}

Результат:

実践問題

Задание 1

6つの要素からなるグリッドを作成し、 それらを2行に配置してください。 2番目の要素を水平軸の開始位置と 垂直軸の中央に揃えてください。

Задание 2

次に、グリッドの要素を3行に配置し、 3番目の要素を水平軸の中央と 垂直軸の終了位置に揃えるように設定してください。

Задание 3

前の問題を変更し、4番目の要素が 水平軸の終了位置と垂直軸の中央に 揃うようにしてください。

Задание 4

次に、5番目の要素が水平軸の開始位置と 垂直軸の開始位置に揃い、 6番目の要素が水平軸の終了位置と 垂直軸の中央に揃うように設定してください。