我正在尝试编写响应式网站的主页,使三个文本框水平排列,如附图所示。文本应均匀分布,并在网站的整个宽度上居中。
我一直在尝试使用ul
和display: inline
命令。我认为这应该很容易,但我已经尝试了几个小时,无法解决这个问题。这是HTML:
<ul id="promolist">
<li>NEW! GO IN STORE</li>
<li>0% FINANCE APPLY ONLINE</li>
<li>FREE DELIVERY ON ORDERS OVER £50</li>
</ul>
如果有人能帮助我使用CSS,我会非常感激。欢呼声。
答案 0 :(得分:1)
您可以将justify-content: space-around
与CSS3灵活的框布局结合使用。这正是你所需要的,在两端极端分隔出带边距的列表项。
#promolist {
display: flex;
justify-content: space-around;
list-style: none;
}
&#13;
<ul id="promolist">
<li>NEW! GO IN STORE</li>
<li>0% FINANCE APPLY ONLINE</li>
<li>FREE DELIVERY ON ORDERS OVER £50</li>
</ul>
&#13;
答案 1 :(得分:1)
我将添加display: table
,display: table-cell
示例,因为Flexbox已经很好地覆盖了。一种过时的技术,但具有与IE8兼容的优势(如果这是你的事情):
#promolist {
display: table;
table-layout: fixed; /*force equal column width */
width: 100%;
padding: 0;
margin: 0;
}
#promolist li {
display: table-cell;
padding: 10px;
vertical-align: middle;
text-align: center;
border-left: solid 1px #000;
}
#promolist li:first-child {
border-left: none;
}
&#13;
<ul id="promolist">
<li>NEW! GO IN STORE</li>
<li>0% FINANCE APPLY ONLINE</li>
<li>FREE DELIVERY ON ORDERS OVER £50</li>
</ul>
&#13;
答案 2 :(得分:0)
您还需要定位<li>
元素。看看这个jsfiddle:
https://jsfiddle.net/2L99k5ko/2/
以下是代码:
HTML:
ul#promolist li {
display: inline;
padding: 20px;
}
&#13;
<ul id="promolist">
<li>NEW! GO IN STORE</li>
<span>|</span>
<li>0% FINANCE APPLY ONLINE</li>
<span>|</span>
<li>FREE DELIVERY ON ORDERS OVER £50</li>
</ul>
&#13;
答案 3 :(得分:0)
使用flexbox:
#promolist {
display: flex; /* Magic begins */
padding: 0;
list-style: none;
}
#promolist > li {
flex: 1; /* Equal widths, covering all the container */
text-align: center; /* Center inner text horizontally */
}
<ul id="promolist">
<li>NEW! GO IN STORE</li>
<li>0% FINANCE APPLY ONLINE</li>
<li>FREE DELIVERY ON ORDERS OVER £50</li>
</ul>