Как позиционировать компоненты VueJS

У меня есть краткое описание дизайна, которое требует, чтобы я переместил красный компонент (справа) в красную рамку / оболочку (слева).

Две категории / секции происходят из REST-API с их дочерними элементами.

[Что я пробовал]

Я попытался позиционировать красный компонент как абсолютный, но проблема заключалась в том, что если содержимое компонента над ним вырастет. эти два компонента будут перекрываться.

Я не мог найти, где именно его разместить. (по оси Y)

[Что бы я хотел]

Я надеялся, что смогу использовать v-slot чтобы создать оболочку / фрейм слева, затем я создаю шаблон для компонента справа и передаю его оболочке / фрейму с левой стороны.

Любая помощь будет оценена.

Заранее спасибо.

1 ответ

Если я вас правильно понимаю, это то, что вам нужно:
// извините за простой css, я просто не знаю, как вставить scss в поле сниппета stackru

         const btn = document.querySelector('button')
const grid = document.querySelector('.grid')

btn.onclick = () => grid.classList.toggle('replaced')
         .grid {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-rows: 100px 100px;
  column-gap: 20px;
  row-gap: 20px;
}

div {
  background: black;
}

div:nth-child(1) {
  order: 10;
}

div:nth-child(2) {
  order: 20;
}

div:nth-child(3) {
  order: 30;
}

div:nth-child(4) {
  order: 40;
  background: red;
}

.replaced div:nth-child(4) {
  order: 11;
}
         <main class="grid replaced">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</main>


<button>toggle</button>

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