Добавление вертикального пространства между элементами HTML (divs) в одном контейнере

(Обновлено: как и после применения приведенного ниже решения, теперь у меня есть пробелы между блоками каналов в представлении на рабочем столе, но это не работало в представлении на мобильных устройствах)

У меня есть следующий код, и он хорошо работает, перетасовывая элементы внутри контейнера, но проблема в том, что блоки контента располагаются близко друг к другу, без вертикального пространства между ними.

Я пытался добавить между ними много тегов, таких как p и br, чтобы получить желаемое пространство, но это привело к неупорядоченному пространству, поэтому некоторые блоки получили место, а некоторые нет, а иногда это вообще останавливает перетасовку.

Поэтому мне нужен какой-то способ добавить пространство между всеми элементами div, сохраняя при этом функцию перетасовки.

  // Function to shuffle the order of elements within a container
  function shuffleElements(container) {
    var elements = container.children;
    for (var i = elements.length; i >= 0; i--) {
      container.appendChild(elements[Math.random() * i | 0]);
    
    }
  }

  // Wait for the page to fully load before shuffling the elements
  window.addEventListener('load', function() {
    var container = document.getElementById('your-container-id'); // Replace 'your-container-id' with the ID of the container div that holds the RSS feed divs
    shuffleElements(container);

  });
<div id = "your-container-id">

<div class = "fb-page" data-href = "https://www.facebook.com/saudioffers6" data-tabs = "timeline" data-width = "500" data-height = "500" data-small-header = "false" data-adapt-container-width = "false" data-hide-cover = "true" data-show-facepile = "false">
<blockquote cite = "https://www.facebook.com/saudioffers6" class = "fb-xfbml-parse-ignore"><a href = "https://www.facebook.com/saudioffers6">‏عروض السعودية  saudi offers‏</a></blockquote>
</div>

<div class = "fb-page" data-href = "https://www.facebook.com/diyprocom" data-tabs = "timeline" data-width = "500" data-height = "500" data-small-header = "false" data-adapt-container-width = "false" data-hide-cover = "true" data-show-facepile = "false"><blockquote cite = "https://www.facebook.com/diyprocom" class = "fb-xfbml-parse-ignore"><a href = "https://www.facebook.com/diyprocom">‏‎Diy pro‎‏</a></blockquote></div>

<div class = "fb-page" data-href = "https://www.facebook.com/MarinaFish2019" data-tabs = "timeline" data-width = "500" data-height = "500" data-small-header = "false" data-adapt-container-width = "false" data-hide-cover = "true" data-show-facepile = "false"><blockquote cite = "https://www.facebook.com/MarinaFish2019" class = "fb-xfbml-parse-ignore"><a href = "https://www.facebook.com/MarinaFish2019">‏مارينا للأسماك والرخويات‏</a></blockquote></div>

<div class = "fb-page" data-href = "https://www.facebook.com/nursery.libya" data-tabs = "timeline" data-width = "500" data-height = "500" data-small-header = "false" data-adapt-container-width = "false" data-hide-cover = "true" data-show-facepile = "false"><blockquote cite = "https://www.facebook.com/nursery.libya" class = "fb-xfbml-parse-ignore"><a href = "https://www.facebook.com/nursery.libya">‏مشتل تمنهنت‏</a></blockquote></div>
</div>

вот мой код:

lyman 24.06.2024 21:54

Будет очень сложно помочь в отладке, не видя вашего кода. Вы можете попробовать создать кодовую ручку, если она не будет публиковаться здесь, но вполне вероятно, что причина, по которой она не публикуется здесь, заключается в том, что ваш пример не является MRE. Вы хотите воссоздать проблему с нуля, используя только те части, которые абсолютно необходимы для воссоздания проблемы.

async await 24.06.2024 22:02

Я согласен с @asyncawait, что отлаживать сложно, не видя вашего кода. Вы пробовали поля или отступы CSS? Может быть, используя сетку и зазор?

mykaf 24.06.2024 22:06

У меня очень мало знаний обо всей проблеме, и, честно говоря, я получил код с некоторой помощью, но больше не смог найти помощника, а проблема с пробелами убивает весь достигнутый нами успех.

lyman 24.06.2024 22:11

@asyncawait Я наконец-то добавил код, пожалуйста, проверьте его

lyman 24.06.2024 23:32

@mykaf Я наконец-то добавил код, пожалуйста, проверьте его

lyman 24.06.2024 23:32

Ваш фрагмент стека вызывает ошибку.

mykaf 25.06.2024 15:09

Когда я запускаю jsfiddle, кажется, что они выстраиваются вертикально; есть ли у вас какой-нибудь CSS, который бы располагал их горизонтально, чтобы между ними было вертикальное пространство?

mykaf 25.06.2024 15:12

данное решение Дэвида Гарсиа создает пространство между блоками на рабочем столе, но не на мобильном устройстве, могу ли я что-нибудь сделать, чтобы оно отображалось на мобильных устройствах, кстати, я использую Shopify

lyman 25.06.2024 16:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
63
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете добавить несколько стилей, чтобы добавить вертикальное пространство между элементами. По сути, вы можете добавить отступы или поля внизу каждого дочернего элемента #your-container-id, кроме последнего.

Для этого вы можете попробовать следующий код:

<style>
    #your-container-id > *:not(:last-child) {
        margin-bottom: 50px; /* change this with the value you want */
    }
</style>

Большое спасибо, все сработало, как и просили, и перетасовка все еще работает.

lyman 25.06.2024 00:31

я рад это слышать

David García 25.06.2024 00:37

Привет, Дэвид! Извините, но решение работало на настольном компьютере, но не работало на мобильном телефоне. Мы можем что-нибудь сделать?

lyman 25.06.2024 02:10

Мне удалось решить проблему просмотра на мобильных устройствах, используя приведенный ниже код, и он работает как для настольных компьютеров, так и для мобильных устройств. Спасибо вам всем

<style> 
        #your-container-id { 
          
           /* Using the grid property */ 
            display: grid; 
  
            /* Making equal spaced divs */ 
            gap: 1rem; 
            
        }
</style>

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