- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用过这个解决方案:How to stretch html / css horizontal navigation items evenly and fully across a specified container由 Felix 回答。
但是虽然我已经这样做了,但它本身确实有效,但有一些链接之间的空格不均匀。我没有理由,老实说我不知道解决方案。我已经尝试过,一切似乎都很好。最后,我可以指定从哪里开始吗?我有一个标题,它与它重叠。
#nav {
display: table;
height: 87px;
width: 70%;
}
#nav li {
display: table-cell;
height: 87px;
line-height: 87px;
text-align: center;
width: 12.5%; /* (100 / numItems)% */
}
.link {
min-width: 60px;
min-height: 30px;
background: #666;
color: #FFF;
text-decoration: none;
transition-duration: 0.2s;
-webkit-transition-duration: 0.2s;
-moz-transition-duration: 0.2s;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
font-family: 'Franklin Gothic Medium', 'Franklin Gothic', 'ITC Franklin Gothic', Arial, sans-serif;
position: absolute;
user-select: none;
top: 50%;
margin-top: -15px;
text-align: center;
line-height: 30px;
padding-left: 8px;
padding-right: 8px;
text-align: center;
display: table-cell;
white-space: nowrap;
}
.link:hover {
background: #999;
text-decoration: none;
color: #FFF;
font-family: 'Franklin Gothic Medium', 'Franklin Gothic', 'ITC Franklin Gothic', Arial, sans-serif;
border: 1px solid #d0d0d0;
}
.link:active {
background: #999;
text-decoration: none;
color: #FFF;
font-family: 'Franklin Gothic Medium', 'Franklin Gothic', 'ITC Franklin Gothic', Arial, sans-serif;
}
@media (max-width: 767px) {
#nav li {
display: block;
width: 100%;
}
}
.menubar {
position: absolute;
right: 10%;
left: 10%;
margin: auto;
overflow: auto;
border: none;
color: rgba(0,0,0,0.9);
background: #666;
-webkit-box-shadow: 1px 1px 4px 0 rgba(0,0,0,0.2) ;
box-shadow: 1px 1px 4px 0 rgba(0,0,0,0.2) ;
height: 60px;
overflow: hidden;
}
<div class="menubar">
<div class="links">
<ul id="nav">
<li><a href="/index.php" class="link">Home</a></li>
<li><a href="/forums" class="link">Forums</a></li>
<li><a href="/aboutus.php" class="link">About Us</a></li>
<li><a href="/submit.php" class="link">Submit</a></li>
<li><a href="/downloads.php" class="link">Downloads</a></li>
<li><a href="/archive.php" class="link">Archive</a></li>
<li><a href="/other.php" class="link">Other</a></li>
</ul>
</div>
</div>
如果您需要容器代码,请告诉我,不确定是否需要。
最佳答案
由于您要求提供基于 CSS flexbox 的解决方案,因此我对您的代码进行了一些更改以实现这一点。我所做的更改的快速列表:
display: table
CSS 中的属性#nav
作为 flex 元素,并确保禁用换行(因此内容不会换行)#nav li
作为 flex 元素的 child ,并允许他们使用 flex-grow: 1
成长.这将允许这些元素在必要时扩展(即,在计算完 <li>
元素的所有宽度后父元素中有未分配的空间时。<a>
中的绝对定位链接,因为这会使元素脱离文档流,从而阻止正确的高度计算。此外,将它们声明为 block 级元素(因此它们填充父元素 <li>
为了改善视觉效果(但不是功能所必需的),我建议在未悬停的链接上使用透明边框。这可以防止悬停元素的抖动(应用 1px 边框)。
事不宜迟,这里是代码片段:
#nav {
display: flex;
align-items: center;
justify-content: center;
flex-flow: row nowrap;
width: 70%;
list-style: none;
}
#nav li {
flex-grow: 1;
margin: 0;
padding: 0;
text-align: center;
}
.link {
border: 1px solid transparent;
min-width: 60px;
min-height: 30px;
background: #666;
color: #FFF;
text-decoration: none;
transition-duration: 0.2s;
-webkit-transition-duration: 0.2s;
-moz-transition-duration: 0.2s;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
font-family: 'Franklin Gothic Medium', 'Franklin Gothic', 'ITC Franklin Gothic', Arial, sans-serif;
user-select: none;
text-align: center;
line-height: 30px;
padding-left: 8px;
padding-right: 8px;
text-align: center;
display: block;
white-space: nowrap;
}
.link:hover {
background: #999;
text-decoration: none;
color: #FFF;
font-family: 'Franklin Gothic Medium', 'Franklin Gothic', 'ITC Franklin Gothic', Arial, sans-serif;
border: 1px solid #d0d0d0;
}
.link:active {
background: #999;
text-decoration: none;
color: #FFF;
font-family: 'Franklin Gothic Medium', 'Franklin Gothic', 'ITC Franklin Gothic', Arial, sans-serif;
}
@media (max-width: 767px) {
#nav {
flex-wrap: wrap;
}
#nav li {
width: 100%;
}
}
.menubar {
position: absolute;
right: 10%;
left: 10%;
margin: auto;
overflow: auto;
border: none;
color: rgba(0,0,0,0.9);
background: #666;
-webkit-box-shadow: 1px 1px 4px 0 rgba(0,0,0,0.2) ;
box-shadow: 1px 1px 4px 0 rgba(0,0,0,0.2) ;
overflow: hidden;
}
<div class="menubar">
<div class="links">
<ul id="nav">
<li><a href="/index.php" class="link">Home</a></li>
<li><a href="/forums" class="link">Forums</a></li>
<li><a href="/aboutus.php" class="link">About Us</a></li>
<li><a href="/submit.php" class="link">Submit</a></li>
<li><a href="/downloads.php" class="link">Downloads</a></li>
<li><a href="/archive.php" class="link">Archive</a></li>
<li><a href="/other.php" class="link">Other</a></li>
</ul>
</div>
</div>
关于html - 链接之间的空间不均匀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27389975/
我需要在半径R的圆内生成一个均匀随机点。 我意识到,通过在区间 [0 ... 2π) 中选择均匀随机的角度,并在区间 (0 ... R) 中选择均匀随机的半径,我最终会得到更多的点朝向中心,因为对于两
我想在一个正方形内生成 N 个点(均匀地)。我怎样才能做到这一点? 最佳答案 非常酷的问题,比我想象的要困难得多,但这就是想法。有关于 n 边形的论文,但我只会做正方形。因此,圆的均匀分布是一个常见问
考虑以下示例: import itertools import numpy as np a = np.arange(0,5) b = np.arange(0,3) c = np.arange(0,7)
SQL Server 将一组值分成 5 组,每组的 sum(count) 应该均匀分布。 表仅包含 2 列 rid 和 count。 create table t1(rid int, count in
我有以下简单的 HTML。 A B C 和 CSS: ul { width: 100%; display: flex; flex-direction:
我是一名优秀的程序员,十分优秀!