我有一个包含多个列表项的菜单: JS Fiddle
我的目标是在列表项目上进行动态调整,也可以在两行或多行时对齐。
就像单词中的中心按钮一样。当我对<li>
元素进行文本处理时,它只是将其与<li>
本身对齐。当我在margin: 0 auto
上<li>
时,就会突破8行。
它应该像:
有没有办法实现这个目标?
答案 0 :(得分:2)
使用父样式
{
display:flex;
flex-wrap:wrap;
justify-content:center;
}
答案 1 :(得分:1)
这里是一个更新的小提琴。 https://jsfiddle.net/bw5jw92L/1/
您需要将text-align:center
添加到包含UL
,并从LI
删除浮动并添加display:inline-block
。
以下是更改:
.TopMenuBlock .topCMSListMenuUL {
font-size: 18px;
margin: 0;
font-weight: 600px;
padding: 0;
list-style: none;
padding-top: 115px;
margin: 0 auto;
width: 68%;
text-align:center;
}
.topCMSListMenuLI, .topCMSListMenuHighlightedLI, .topCMSListMenuLILast, .topCMSListMenuHighlightedLILast {
position: relative;
display:inline-block;
}
答案 2 :(得分:0)
正如其他人所提到的,你可以设置li来显示:inline;,或者向左或向右浮动li。此外,您还可以使用display:flex;在ul。在下面的代码片段中,我还添加了justify-content:space-around以增加间距。
有关flexbox的更多信息,请查看完整指南。
#div_top_hypers {
background-color:#eeeeee;
display:inline;
}
#ul_top_hypers {
display: flex;
justify-content:space-around;
list-style-type:none;
}
&#13;
<div id="div_top_hypers">
<ul id="ul_top_hypers">
<li>‣ <a href="" class="a_top_hypers"> Inbox</a></li>
<li>‣ <a href="" class="a_top_hypers"> Compose</a></li>
<li>‣ <a href="" class="a_top_hypers"> Reports</a></li>
<li>‣ <a href="" class="a_top_hypers"> Preferences</a></li>
<li>‣ <a href="" class="a_top_hypers"> logout</a></li>
</ul>
</div>
&#13;