我已经制作了一个列表,其中文本被包含在一个圆圈内。问题是圆圈水平相互碰撞,我想在它们之间留出一些空间。我已经尝试过填充填充和边距,但没有运气。
.oval {
width: 120px;
height: 100px;
display: table-cell;
text-align: center;
vertical-align: middle;
border-radius: 50%;
background: gray;
color: white;
border: 2px solid white;
font-weight: bold;
}

<ul>
<li class="oval">item1</li>
<li class="oval">item2</li>
<li class="oval">item3</li>
</ul>
&#13;
答案 0 :(得分:1)
Flexbox解决方案......
ul {
display: flex;
/* change this value as you need */
width: 500px;
justify-content: space-between;
}
.oval {
display: flex;
justify-content: center;
align-items: center;
width: 120px;
height: 100px;
border-radius: 50%;
background: gray;
color: white;
border: 2px solid white;
font-weight: bold;
}
&#13;
<ul>
<li class="oval">item1</li>
<li class="oval">item2</li>
<li class="oval">item3</li>
</ul>
&#13;
答案 1 :(得分:0)
只需将display
设置为inline-block
然后您就可以使用边距
.oval {
width: 120px;
height: 100px;
display: inline-block;
margin-right: 50px;
text-align: center;
vertical-align: middle;
border-radius: 50%;
background: gray;
color: white;
border: 2px solid white;
font-weight: bold;
}
&#13;
<ul>
<li class="oval">item1</li>
<li class="oval">item2</li>
<li class="oval">item3</li>
</ul>
&#13;
更准确地说,不是为所有margin-right
元素添加.oval
规则,而是将其添加到除最后一个之外的所有元素:
.oval:not(:last-child) {
margin-right: 50px;
}
答案 2 :(得分:0)
将显示更改为inline-block
是正确的,但为了保持“项目n”垂直居中,请添加:
line-hight: 100px;
给你的CSS。如果您计划在每个圆圈(多行)中添加更多文本,则必须添加内部元素以保持文本居中。
.oval {
width: 120px;
height: 100px;
display:inline-block;
margin-left: 50px;
line-height: 100px;
text-align: center;
vertical-align: middle;
border-radius: 50%;
background: gray;
color: white;
border: 2px solid white;
font-weight: bold;
}
<ul>
<li class="oval">item1</li>
<li class="oval">item2</li>
<li class="oval">item3</li>
</ul>
答案 3 :(得分:-1)
将显示设置为内嵌块为.oval