Уласцівасць grid-column

Уласцівасць grid-column задае пачатковую і канчатковую пазіцыі элемента ў грідзе або сетцы па слупках. Значэннямі ўласцівасці могуць быць дадатныя або адмоўныя лікі, паказаныя праз слэш. Першы лік абазначае пачатковую пазіцыю элемента, другі - канчатковую пазіцыю.

Калі ў якасці значэння задаем дадатны лік, то пазіцыя элемента адлічваецца злева направа. Пры паказе адмоўнага ліка элемент будзе размяшчацца ў адваротным парадку, г.зн. справа налева.

Сінтаксіс

cssселектар {
  grid-column: пачатковая пазіцыя / канчатковая пазіцыя;
}

Прыклад

Давайце зададзім элементам у грідзе пачатковыя і канчатковыя пазіцыі:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
</div>
css#parent {
  display: grid;
  padding: 10px;
  border: 2px solid #696989;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  grid-column: 1 / 2;
}
#elem2 {
  grid-column: 1 / 3;
}
#elem3 {
  grid-column: 1 / 4;
}

Результат:

Прыклад

А цяпер давайце ва ўласцівасці grid-column пакажам адмоўныя лікі:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
</div>
css#parent {
  display: grid;
  padding: 10px;
  border: 2px solid #696989;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  grid-column: 1 / -2;
}
#elem2 {
  grid-column: 1 / -3;
}
#elem3 {
  grid-column: 1 / -4;
}

Результат:

Прыклад

А цяпер робім так, каб першы, другі і трэці элементы размяшчаліся ў першым шэрагу. А чацвёрты элемент займаў увесь другі шэраг:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
</div>
css#parent {
  display: grid;
  padding: 10px;
  border: 2px solid #696989;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  grid-column: 1 / 2;
}
#elem2 {
  grid-column: 2 / 3;
}
#elem3 {
  grid-column: 3 / 4;
}
#elem4 {
  grid-column: 1 / 4;
}

Результат:

Прыклад

Пры перакрыцці слупкоў, якія займаюцца суседнімі элементамі, кожны наступны элемент зрушваецца на шэраг ніжэй. Давайце з дапамогай гэтай асаблівасці зробім так, каб першы элемент размясціўся ў першым шэрагу, другі - у другім, а трэці і чацвёрты - на трэцім шэрагу:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
</div>
css#parent {
  display: grid;
  padding: 10px;
  border: 2px solid #696989;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  grid-column: 1 / 4;
}
#elem2 {
  grid-column: 2 / 3;
}
#elem3 {
  grid-column: 1 / 2;
}
#elem4 {
  grid-column: 3 / 4;
}

Результат:

Прыклад

Скамбінуем уласцівасці grid-column і grid-row:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  border: 2px solid #696989;
  padding: 10px;
  height: 300px;
  width: 400px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  grid-row: 1 / 3;
}
#elem2 {
  grid-row: 1 / 2;
}
#elem3 {
  grid-row: 1 / 2;
}
#elem4 {
  grid-row: 2 / 3;
  grid-column: 2 / 4;
}

Результат:

Прыклад

А цяпер давайце зробім так, каб першы і пяты блокі займалі ўвесь шэраг, а другі блок - два шэрагі і дзве калонкі, а трэці і чацвёрты блокі - адзін шэраг і дзве калонкі:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
  <div id="elem5">5</div>
</div>
css#parent {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  border: 2px solid #696989;
  padding: 10px;
  height: 300px;
  width: 400px;
}
#parent > div {
  padding: 10px;
  border: 1px solid #696989;
}
#elem1 {
  grid-row: 1 / 2;
  grid-column: 1 / 4;
}
#elem2 {
  grid-row: 2 / 4;
  grid-column: 1 / 2;
}
#elem3 {
  grid-row: 2 / 3;
  grid-column: 2 / 4;
}
#elem4 {
  grid-row: 3 / 3;
  grid-column: 2 / 4;
}
#elem5 {
  grid-row: 4 / 5;
  grid-column: 1 / 4;
}

Результат:

Глядзіце таксама

  • уласцівасць grid-row,
    якое задае пачатковую і канчатковую пазіцыі элемента ў грідзе па шэрагах
  • уласцівасць grid-column-start,
    якое задае пачатковую пазіцыю элемента ў грідзе па слупках
  • уласцівасць grid-column-end,
    якое задае канчатковую пазіцыю элемента ў грідзе па слупках
  • уласцівасць grid-template-columns,
    якое задае колькасць і шырыню слупкоў у грідзе
  • уласцівасць grid-auto-columns,
    якое задае колькасць і шырыню слупкоў у няяўным грідзе