【发布时间】:2021-06-15 04:24:12
【问题描述】:
我正在尝试使用flexbox 布局li's。我将它们设置为列,每列中有 3 个li's。问题是当我希望 ul 居中时。
我使用align-content: center 将ul 居中。当我这样做时,li's 比页面可以显示的多(溢出),开头的 li's 会被切断。 (左边的被截断了,右边的显示正常。)
我不会有li's的具体数量,范围可以从4到50。因此我不能删除align-content: center,因为当我有少量li's时,(比如说4),结果不是我想要的。
我怎样才能使ul 居中而不被切断?
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>
【问题讨论】:
-
jessica,你的问题实在是太麻烦了。但是尝试使用 align-content:flex-start;
-
这行得通,但是当只有 4 个
li's时,ul不居中 -
好吧,如果内容少,内容必须居中对齐,内容增加时,必须左对齐?
-
我希望它始终居中。问题是,当
li's很多时,左侧的内容会被截断 -
我希望
ul居中。当我将display:inline-block用于ui时,我没有得到我需要的flexbox's布局。