html - 向 css 添加边距会导致一些不需要的行为

标签 html css navigation

我写了下面的html页面

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Jenware | Personalized Gifts</title>
<style type="text/css">


/* styles for navigation */
#nav {
    background-color: #2322ff;
    height: 3em;
}
#nav ul {
    list-style:none;
    margin: 0 auto;     
        width: 19.5em; 
} 
#nav ul li {
    font-weight: normal;
        text-transform: uppercase;
        float:left;

}

 #nav ul li a {     
  display: block;   
  padding: .5em;    
  border: 1px solid #ba89a8; 
  border-radius: .5em;  
  margin: .25em; 
}    




</style>

</head>

<body>

<div id="nav">
<ul>
<li><a href="">House</a></li>
<li><a href="">Baby</a></li>
<li><a href="">More</a></li>
<li><a href="">About</a></li>
</ul>
</div>


<!-- end #content -->
</body>
</html>

输出如下 enter image description here

我在这部分做了一个小改动

 #nav ul li a {     
  display: block;   
  padding: .5em;    
  border: 1px solid #ba89a8; 
  border-radius: .5em;  
  margin: .5em; 
}    

将边距从 .25em 更改为 .5em,现在显示如下

enter image description here 如果你看到 about 的东西出来了,我不清楚是什么东西导致了这种行为,只是通过改变边距怎么会发生这种情况?

根据下面的建议,我尝试更改 如果我删除 width 列,如果我删除 float:left 列,那么所有的框都是垂直的 即如果我这样做

#nav ul {
    list-style:none;
    margin: 0 auto;     

} 
#nav ul li {
    font-weight: normal;
        text-transform: uppercase;

}

结果如下 enter image description here

为什么会这样

最佳答案

您的 #nav ul 元素的宽度为 19.5em。

您的 #nav ul li a 元素具有 0.5em 的填充和 0.5em 的边距。宽度方向这加起来为 2em + 2px(边框)每个元素。这意味着您的 4 个元素的宽度为 8em + 8px,没有任何文本。

这允许总共 11.5em 的宽度来包含在您的元素中找到的文本。如果累计文本超过 11.5em,那么您的元素将换行到下一行。

要解决此问题,只需增加 #nav ul 元素的宽度即可:

#nav ul {
    width: 25em; /* Adjust accordingly. */
}

关于html - 向 css 添加边距会导致一些不需要的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19729809/

相关文章:

html - 使用 CSS3 分别格式化段落

css - 如何维护 SVG 文件中的图标字体

reactjs - NVDA 自动切换到表单模式

java - 从 WEB-INF 中的 JSP 访问资源

html - 如何在使用 css/js 旋转后定位/调整图像大小,以便图像不会定位在持有它的 div 之外或被裁剪掉

wordpress - 向导航菜单添加阴影?

javascript - 如何在我的 phonegap 应用程序中从网页导航到本地页面?

javascript - jquery mobile - 第二次访问页面后 javascript 未触发

html - 如何动态设置iframe大小

android - 如何驾驶停在某个地方的汽车