Dier_Sergio_Great
@Dier_Sergio_Great
Увлеченный человек

Как определить колонки GRID таблицы по аналогии TABLE?

Приветсвую Гуру, Дайте совет пожалуйста.
Хочу сверстать аналог <TABLE> на GRID-ах.
<main>
<div class='name i1'>Велик</div>
<div class='cost i1'>10 000</div>
<div class='name i2'>Самбик</div>
<div class='cost i2'>2500 000</div>
....
</main>

main {
    display:grid;
    grid-template-columns: auto auto;
    grid-template-areas: "name cost";
}
.name{    grid-area: name;}
.cost{    grid-area: cost;}

При данной верстке все теги с классом NAME накладываются друг на друга, а с классом COST так же друг на друга.
Как использовать схему аналогичную <table>?
  1. Количество колонок НЕ известно, колонок может быть либо 3 либо 2, 3 колонка с указанием количества продукта.
  2. Количество строк НЕ известно, так как в таблице идет перечисление.
  3. Чтоб ширина колонок автоматически заполняла все пространство как с использованием <table>, в <table> на сервере можно показывать 3 колонку а можно нет, пространство в любом случае заполняется по ширине. А в GRIDах как сделать чтобы сервер мог по своему усмотрению выдавать 3ю колонку, но колонки в любом случае заполняли ширину.
  • Вопрос задан
  • 1206 просмотров
Решения вопроса 2
@Softlink
Вполне ожидаемое поведение. Вы разметили таким образом, что у вас получилось по два одинаковых контейнера, которые имеют одинаковое положение на странице: "name const". И тут нет значения, что в html они расположены через один. Чтобы получить таблицу из этой разметки вам как раз не очень-то и нужен grid-template-areas, достаточно разметить положение колонок и строк. Вот так.
Ответ написан
Dier_Sergio_Great
@Dier_Sergio_Great Автор вопроса
Увлеченный человек
Ответ:
main{    display: grid;
    rid-template-columns: [start] 1fr [line1] auto [line2] auto [line3];
    /*grid-template-rows: [top] repeat( 100, min-content) [bottom];*/
}
.name{    /*Колонка постоянная*/
    grid-column: start / line1;
}
.count{    /* Колонка Опциональная*/
    grid-column: line1 / line2;
}
.summ{    /*Колонка Опциональная*/
    grid-column: line2 / line3;
}
.tax{    /*Блок во всю ширину всех колонок, как COLSPAN (с любым количеством колонок)*/ 
    grid-column: start / line3;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы