Я пытаюсь выполнить макет li's
с помощью flexbox
. Я установил их в столбец с 3 li's
в каждом столбце. Проблема в том, что я хочу, чтобы ul
был центрирован.
Я центрирую ul
с помощью align-content: center
. Когда я это сделаю и получаю больше li's
, чем страница может показать (переполнена), li's
в начале обрезается. (Те, что на левой стороне, обрезаются, но на правой стороне отображаются хорошо.)
У меня не будет определенного числа li's
, оно может варьироваться от 4 до 50. Поэтому я не могу удалить align-content: center
, потому что, когда у меня есть небольшое количество li's
, (скажем, 4), результаты не то, что я хочу.
Как я могу центрировать ul
без обрезания?
JSFiddle
html, body {
margin: 0;
height: 100%;
}
div {
align-items: center;
justify-content: center;
height: 100%;
display: flex;
overflow: auto;
background-color:aqua;
}
ul {
margin-top: auto;
margin-bottom: auto;
flex-direction: column;
width: 100%;
height: 70%;
padding: 0;
display: inline-flex;
flex-wrap: wrap;
align-content: center;
}
li {
flex-basis: calc(100% / 3 - 2px);
/* Subtract the border */
color: firebrick;
border: 1px solid firebrick;
background-color: greenYellow;
list-style-type: none;
width: 200px;
}
<div>
<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>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
</ul>
</div>