V-for классы, отображаемые друг над другом

У меня есть массив объектов, которые я хочу перебрать. Каждый объект отображается в собственном div. В этом конкретном списке всего три объекта, поэтому я мог бы просто разместить их вручную с помощью grid-row в css-grid, но для другой страницы мне, возможно, понадобятся сотни.

В настоящее время три класса визуализируются друг над другом, а не друг над другом.

    <div class = "sidebar-last-three" v-for = "patient in this.lastThree">
        <div class = "patient-entry">
            <span class = "patient-name">{{patient.value}}</span>
            <span class = "patient-date">{{patient.key}}</span>
            <span class = "dots">...</span>
            <span class = "line"></span>
        </div>
    </div>

Это CSS, который я использую.

.sidebar-last-three{
    display: grid;
    grid-row: 7/30;
    grid-column: 1/11;
    grid-template-rows: repeat(30, 1fr);
    grid-template-columns: repeat(5, 1fr);
}
.patient-entry{
    display: grid;
    grid-column: 1/6;
    grid-row: auto;
    grid-template-columns: repeat(15, 1fr);
    grid-template-rows: repeat(15, 1fr);
}

Как это сейчас

Как я хочу, чтобы это было

Я предполагаю, что это как-то связано с использованием v-for для создания классов, поскольку обычно с css-grid дочерние div автоматически переходят в строки и столбцы. Заранее спасибо!

Похоже, у тебя неправильный стиль. Можете ли вы предоставить рабочий код, например jsfiddle?

Adam Orłowski 06.12.2018 15:31

@AdamOrlov Я пробовал сделать такой, но, похоже, не работает ..jsfiddle.net/eywraw8t/494600

RicardoArth 06.12.2018 15:54
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
2
34
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

надеюсь, это может вам помочь.

    <style>
.sidebar-last-three{
    display: grid;
}
.patient-entry{
    display: grid;
    grid-column: auto;
    grid-row: auto;
}
</style>

<div class = "sidebar-last-three" v-for = "patient in this.lastThree">
        <div class = "patient-entry">
            <span class = "patient-name">one on top of the one</span>
            <span class = "patient-date">MM/DD/YY</span>
            <span class = "dots">...</span>
            <span class = "line"></span>
        </div>
            <div class = "patient-entry">
            <span class = "patient-name">one on top of the two</span>
            <span class = "patient-date">MM/DD/YY</span>
            <span class = "dots">...</span>
            <span class = "line"></span>
        </div>
            <div class = "patient-entry">
            <span class = "patient-name">one on top of the three</span>
            <span class = "patient-date">MM/DD/YY</span>
            <span class = "dots">...</span>
            <span class = "line"></span>
        </div>
    </div>

Спасибо @vssadineni, но я ищу что-то, что создаст три класса с помощью v-for, с тех пор я могу получить элементы из этого объекта с помощью Patient.key и так далее. У этого их всего три, но для другой страницы мне нужно сделать сетку из десятков.

RicardoArth 06.12.2018 15:56
Ответ принят как подходящий

Для укладки понадобится:

.sidebar {
  display: grid;
  position: fixed;
  grid-template-columns: repeat(10, 1 fr);
  grid-template-rows: repeat(10, 1 fr);
  grid-column: 1;
  width: 16.8vw;
  height: 100%;
  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.3);
  background: #26292c;
  z-index: 1; /* Stay on top */
  top: 0; /* Stay at the top */
  left: 0;
}
.patient-name{
  font-size: 16px;
  color: #ffffff;
  grid-column: 3/15;
  grid-row: 1/2;
}
.patient-date{
  font-size: 14px;
  color: #98acc1;
  grid-column: 3/15;
  grid-row: 2/3;
}
.line{
  background-color: #424a51;
  width: 100%;
  height: 1px;
  grid-column: 1/16;
  grid-row: 5;
}
.dots{
  justify-self: center;
  font-size: 16px;
  align-self: center;
  grid-column: 14/15;
  grid-row: 1/2;
  color: #ffffff;
}
.sidebar-last-three{
  display: grid;
}
.patient-entry{
  display: grid;
  grid-column: auto;
  grid-row: auto;
}

Я переместил ваш пример в код.

Попробуйте, если это сработает для вас. Вот рабочий пример:

Это именно то, что я искал, теперь я наконец могу двигаться дальше!

RicardoArth 06.12.2018 16:35

Другие вопросы по теме