Задать вопрос
@luadipa

Как обернуть два div'а в один (Тильда)?

На тильде в стандартном блоке Магазина табы улетают в самый низ карточки товара (под описание и под галерею). Его можно поставить под описание отступами, позиционированием, но в зависимости от объема текста в описании смотреться это все будет криво.

6661b98bcaac4846943512.png

Есть сайт на тильде, где подобная проблема решена крайне просто, но вне функционала тильды - див с аккордеоном помещен в див с карточкой товара (скрин 2).

6661b995a8fe1043942652.png

Как это реализовано или какие альтернативы?
  • Вопрос задан
  • 68 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AnKu_11
Оберни эти 2 дива одним дивом, потом новому родителю допили стили
Код вставляй через Настройки сайта
function wrapElements(selectors, wrapperTag = 'div', wrapperClass) {
  const elems = selectors
    .map(sel => document.querySelector(sel))
    .filter(el => el !== null);
  if (elems.length < 2) {
    console.warn('Не все элементы найдены');
    return null;
  }
  const parent = elems[0].parentNode;
  if (!elems.every(el => el.parentNode === parent)) {
    console.warn('Элементы не соседи');
    return null;
  }
  const children = Array.from(parent.children);
  const sorted = elems.slice().sort(
    (a, b) => children.indexOf(a) - children.indexOf(b)
  );
  const wrapper = document.createElement(wrapperTag);
  if (wrapperClass) wrapper.classList.add(wrapperClass);
  parent.insertBefore(wrapper, sorted[0]);
  sorted.forEach(el => wrapper.appendChild(el));
  return wrapper;
}
wrapElements(['.div-1', '.div-2'], 'div', 'my-wrapper');
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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