Помогите настроить columns или подобрать альтернативу

186
03 сентября 2018, 22:20

помогите, пожалуйста, не могу решить такую проблему: У меня есть ul список в который динамически записуються li, нужно что бы создавались колонки 4, решил использовать свойство columns, но тогда колонки выставляются так:

1          4          7          10
2          5          8
3          6          9

А нужно так:

1          2          3          4    
5          6          7          8    
9          10                  

При этом все одного размера, что бы если один из элементов списка был больше, то нижние строки списка все равно были на одном уровне, а не гдето выше, а где то ниже... Вот код: HTML:

<div class="menu">
<ul id="menu">
</ul>//куда вставляется контент
<div style="display:none" id="template">
<div class="elements" >
    <li class="#" data-class>
        <a href="#" data-id class="open_modal"><img  src="#" data-url-small title="подробнее" /> </a>
        <h1 data-name-first class="firstName"></h1>
        <p>вес: <span data-weight></span> гр. цена <span data-price></span> грн.</p>
        <button class="buy"><p><i class="fa fa-shopping-cart" aria-hidden="true">&nbsp;&nbsp;&nbsp;</i>Хочу!</p></button>
        <div class="forModal" id="#" data-link style="display:none">
            <div class="forClone">
            <img src="#" data-url-big title="подробнее" />
            <h1 data-name-second></h1>
            <p data-consist></p>
            <button class="buy"><i class="fa fa-shopping-cart" aria-hidden="true">&nbsp;&nbsp;&nbsp;</i>Хочу!</button> 
        </div>
        </div>
    </li>
</div> //заполняемый динамически контент

CSS:

 .menu li {
list-style-type: none; 
width: 90%;
text-align: center;
color: red;
display: inline-block;
vertical-align: top;
}
  .menu ul{
-webkit-columns: 4; 
-moz-columns: 4; 
columns: 4;
}
.menu  img { max-width: 100%; }
Answer 1

ul, li { 
  list-style: none: 
  margin: 0; 
  padding: 0; 
} 
li { 
  display: inline-block; 
  width:20%; 
}
<ul> 
  <li>1</li> 
  <li>2</li> 
  <li>3</li> 
  <li>4</li> 
  <li>5</li> 
  <li>6</li> 
  <li>7</li> 
  <li>8</li> 
  <li>9</li> 
  <li>10</li> 
</ul>

Через float: left, либо display: inline-block

columns от слова столбцы (колонки), я думаю тут все понятно

READ ALSO
React js. create-react-app. Как создать несколько страниц?

React js. create-react-app. Как создать несколько страниц?

Не понимаю, как добавить вторую страничку в реакт приложение, созданное react-create-appНа данный момент в проекте есть node_modules папка, src с файлами

177
Получение html через WebView

Получение html через WebView

Имеется кнопка, по нажатию которой происходит отображение HTML страницыПрочитал про WebView и WebEngine, и не понятно, как получить html код страницы...

176
Как остановить прокрутку блока при :hover на нем

Как остановить прокрутку блока при :hover на нем

Есть блок div, в котором элементы с периодичностью 1с добавляются сверхуБлоку задана height, новые элементы добавляются сверху, а старые уходят...

162
Ошибка чекбокса в Safari. Как исправить?

Ошибка чекбокса в Safari. Как исправить?

Сделал красивые чекбоксы с применением псевдоэлементов :afterНа всех браузерах нормально, а в Safari какой-то двойной чекбокс выводится

171