【发布时间】:2020-08-10 11:44:49
【问题描述】:
我正在尝试弄清楚如何连续显示 3 个 li 元素,但它们的长度必须相同。
li 元素将被动态添加,因为这是一个 React 应用程序,当您点击设置警报按钮时,会弹出表单,您可以设置新的警报。设置警报后,还有另一个组件将所有警报列为li元素。
我的网站包括:
.container ,其中包含其他所有内容。
.container{
width: 60%;
margin: 0 auto;
margin-top:5em;
height: 100vh;
text-align: center;
}
.clock - div,这是.container的第一个孩子
.clock{
background-color: black;
color: white;
border-radius: .5em;
margin: 0 auto;
padding: 2em 3em;
-webkit-box-shadow: 0px 0px 50px 2px rgba(0,0,0,0.75);
-moz-box-shadow: 0px 0px 50px 2px rgba(0,0,0,0.75);
box-shadow: 0px 0px 50px 2px rgba(0,0,0,0.75);
}
设置闹钟按钮 - 此按钮位于.clock div 下方。
.btn-setAlarm{
width: 100%;
margin-top: 1em;
padding: 1em;
border-radius: .3em;
border:0;
font-size: 1.2em;
outline: none;
}
.btn-setAlarm:hover{
cursor: pointer;
}
最后是 ul 元素,我希望所有 li 元素具有相同的宽度,内联显示,但一行最多 3 个。
ul{
padding-left:0;
list-style: none;
display: flex;
flex-wrap: wrap;
width: 100%;
}
li{
background-color: white;
border-radius: .3em;
width: 30%;
}
我的想法是:
-
display: flexforul元素将使所有li元素显示在一行中 -
当
li元素过多时,flex-wrap:wrap会将li元素分到下一行 - 将
width: 30%设置为li将确保一行中的最大li元素为3。
但我最终得到了这个,我无法弄清楚如何做到这一点,如果没有必要,我不想使用浮点数。
编辑:HTML 结构
<div className="container">
{checkTime()}
<div className="clock">
<div className="time">
<div className="column">
<p>{time.currentDay}</p>
<span>DAY</span>
</div>
<p className="dot">:</p>
<div className="column">
<p>{time.currentHour}</p>
<span>HOURS</span>
</div>
<p className="dot">:</p>
<div className="column">
<p>{time.currentMinute}</p>
<span>MINUTES</span>
</div>
<p className="dot">:</p>
<div className="column">
<p>{time.currentSecond}</p>
<span>SECONDS</span>
</div>
</div>
</div>
<Alarm getInfo={getAlarm} />
<ListAlarms alarms={time.alarms} removeAlarm={removeAlarm} />
</div>
我还使用 React Spring 过渡来为这些 Li 元素设置动画,我注意到对于这个动画,React spring 正在创建
【问题讨论】: