1px 的未关联边距
1px of unassosiated margin
所以我正在构建一个导航栏并使用百分比 select CSS 中每个元素的宽度。问题是,即使我将百分比加起来为 100%(5 个按钮为 18.8%,5 个 1% 的边距右边和 1% 的边距左边。)我仍然让它们不对齐。
As you can see here 当我检查 chrome 中的元素时,您可以看到一小块未考虑的边距。
这是我的 HTML
<nav class="navigation">
<ul class="navbtn section">
<li class="leftest"><a href="#whatido"><div class="link-text">What I do</div></a></li>
<li><a href=""><div class="link-text">who I am</div></a></li>
<li><a href=""><div class="link-text">Web Work</div></a></li>
<li><a href=""><div class="link-text">design work</div></a></li>
<li><a href=""><div class="link-text">Illustration</div></a></li>
</ul>
</nav>
还有我的CSS
.navigation
{margin:auto;
margin-top:50px;
width: 50%;
border:3px solid #c5c5c5;
padding: 0.5% 0%;
}
ul{
margin:auto;
padding:0px;
}
ul li{
display:inline-block;
text-decoration: none;
width:18.8%;
margin-right:1%;
}
li a{
display:block;
text-decoration: none;
text-align:center;
font-size:2vw;
color:#ffffff;
height:50px;
background-color:#c5c5c5;
}
.link-text{
position: relative;
top: 50%;
transform: translateY(-50%);
}
li a:hover{
background-color:#979797;
}
.leftest{
margin-left: 1%;
}
非常感谢任何帮助,谢谢。
问题是display: inline-block
。由于列表项之间的白色 space,它导致来自四个像素的 space。
您有几种解决方案:
1)去掉白色space
<nav class="navigation">
<ul class="navbtn section">
<li class="leftest">
<a href="#whatido"><div class="link-text">What I do</div></a>
</li><li>
<a href=""><div class="link-text">who I am</div></a>
</li><li>
<a href=""><div class="link-text">Web Work</div></a>
</li><li>
<a href=""><div class="link-text">design work</div></a></li><li><a href=""><div class="link-text">Illustration</div></a>
</li>
</ul>
</nav>
2) 为列表项添加负边距
ul li{
display:inline-block;
margin-left: -4px; /* added this line */
text-decoration: none;
width:18.8%;
margin-right:1%;
}
3) 使用浮点数代替行内块
因此,您还需要在父级上设置溢出,以便列表项不会流出父级,并且您需要禁用列表样式。
ul{
margin:auto;
padding:0px;
overflow: auto; /* added this line */
}
ul li{
/* display: inline-block; remove this line */
list-style: none; /* added this line */
float: left; /* added this line */
text-decoration: none;
width:18.8%;
margin-right:1%;
}
4) 使用 CSS 表格
这样,单元格将永远不会超过一行。
ul{
margin:auto;
padding:0px;
display: table;
width: 100%;
border-collapse: separate;
border-spacing: 5px;
}
ul li{
display: table-cell;
text-decoration: none;
}
我觉得这样效果更好。
将这些行添加到 css :
nav.navigation ul li {
float:left;
}
.clearfix {
clear:both;
}
在最后一个 <li></li>
:
之后立即将此行添加到您的 HTML
<div class="clearfix"></div>
所以我正在构建一个导航栏并使用百分比 select CSS 中每个元素的宽度。问题是,即使我将百分比加起来为 100%(5 个按钮为 18.8%,5 个 1% 的边距右边和 1% 的边距左边。)我仍然让它们不对齐。
As you can see here 当我检查 chrome 中的元素时,您可以看到一小块未考虑的边距。
这是我的 HTML
<nav class="navigation">
<ul class="navbtn section">
<li class="leftest"><a href="#whatido"><div class="link-text">What I do</div></a></li>
<li><a href=""><div class="link-text">who I am</div></a></li>
<li><a href=""><div class="link-text">Web Work</div></a></li>
<li><a href=""><div class="link-text">design work</div></a></li>
<li><a href=""><div class="link-text">Illustration</div></a></li>
</ul>
</nav>
还有我的CSS
.navigation
{margin:auto;
margin-top:50px;
width: 50%;
border:3px solid #c5c5c5;
padding: 0.5% 0%;
}
ul{
margin:auto;
padding:0px;
}
ul li{
display:inline-block;
text-decoration: none;
width:18.8%;
margin-right:1%;
}
li a{
display:block;
text-decoration: none;
text-align:center;
font-size:2vw;
color:#ffffff;
height:50px;
background-color:#c5c5c5;
}
.link-text{
position: relative;
top: 50%;
transform: translateY(-50%);
}
li a:hover{
background-color:#979797;
}
.leftest{
margin-left: 1%;
}
非常感谢任何帮助,谢谢。
问题是display: inline-block
。由于列表项之间的白色 space,它导致来自四个像素的 space。
您有几种解决方案:
1)去掉白色space
<nav class="navigation">
<ul class="navbtn section">
<li class="leftest">
<a href="#whatido"><div class="link-text">What I do</div></a>
</li><li>
<a href=""><div class="link-text">who I am</div></a>
</li><li>
<a href=""><div class="link-text">Web Work</div></a>
</li><li>
<a href=""><div class="link-text">design work</div></a></li><li><a href=""><div class="link-text">Illustration</div></a>
</li>
</ul>
</nav>
2) 为列表项添加负边距
ul li{
display:inline-block;
margin-left: -4px; /* added this line */
text-decoration: none;
width:18.8%;
margin-right:1%;
}
3) 使用浮点数代替行内块
因此,您还需要在父级上设置溢出,以便列表项不会流出父级,并且您需要禁用列表样式。
ul{
margin:auto;
padding:0px;
overflow: auto; /* added this line */
}
ul li{
/* display: inline-block; remove this line */
list-style: none; /* added this line */
float: left; /* added this line */
text-decoration: none;
width:18.8%;
margin-right:1%;
}
4) 使用 CSS 表格
这样,单元格将永远不会超过一行。
ul{
margin:auto;
padding:0px;
display: table;
width: 100%;
border-collapse: separate;
border-spacing: 5px;
}
ul li{
display: table-cell;
text-decoration: none;
}
我觉得这样效果更好。
将这些行添加到 css :
nav.navigation ul li {
float:left;
}
.clearfix {
clear:both;
}
在最后一个 <li></li>
:
<div class="clearfix"></div>