css - LI 与 CSS 垂直对齐,但有 1 px 边距

标签 css vertical-alignment css-tables

我需要在水平排列的 LI 元素中垂直对齐文本,但它们之间的边距需要为 1 px。如果我使用 display:table-cell 和 border-spacing:1 px 那么它们之间的空间最终为 2 像素。我希望我可以设置“border-spacing-right:1px”。有任何想法吗?下面是我的代码,第一组甚至没有对齐,也在 fiddle 中:http://jsfiddle.net/break68/SLDcU/3/

<style>
.nav1 li {
display: inline-block;
text-align: center;
vertical-align: middle;
height:40px;
width:50px;
background-color:#777;
margin-right:1px;
list-style: none;
float: left;
padding:2px;
}

.nav2 li {
display: table-cell;
text-align: center;
vertical-align: middle;
height:40px;
width:50px;
margin-right:1px;
background-color:#777;
list-style: none;
padding:2px;
border: 1px solid white;
border-spacing: 1px;
}
</style>

<ul class="nav1">
<li>one</li>
<li>two<br /> lines</li>
<li>three</li>
</ul>

<ul class="nav2">
<li>one</li>
<li>two<br /> lines</li>
<li>three</li>
</ul>

最佳答案

我在这里为您提供了更新的 JS fiddle :JSFiddle

添加并替换了一些属性,例如 margin-right: 1px; .nav2 li

边框导致你的 li 元素之间有 1px 的额外空间。

.nav1 li {
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    height:40px;
    width:50px;
    background-color:#777;
    margin-right:1px;
    list-style: none;
    float: left;
    padding:2px;

.nav2 li {
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    height:40px;
    width:50px;
    margin-right:1px;
    background-color:#777;
    list-style: none;
    float: left;
    padding:2px;
    margin-right:1px;

关于css - LI 与 CSS 垂直对齐,但有 1 px 边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21566271/

相关文章:

html - 使用 css "display: table"属性复制的表格中的表格

php - 单击时使用javascript更改输入按钮样式

html - 调整图片图标大小和格式的正确方法是什么?

html - 将 iframe 与 <p> 对齐

css - 如何在连字符处将表格单元格中的文本换行?

css - 表格单元格宽度不符合我的预期

css - Bootstrap 4方格

javascript - 在 JavaScript 中访问 -webkit- vendor 前缀

css - anchor (<a>) 标记内的文本垂直对齐

html - 在图像悬停时显示文本(垂直居中)