- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个类似于 apple.com 的大型导航栏。
我试图从苹果的导航栏中重现的是:
html:
<nav id="gn">
<div id="gn-content">
<ul class="gn-menu">
<li class="gn-item gn-menu-brand"><a class="gn-link gn-link-brand" href="#"><span class="gn-link-span">Brand</span></a></li>
<li class="gn-item gn-menu-products"><a class="gn-link gn-link-products" href="#"><span class="gn-link-span">Products</span></a></li>
<li class="gn-item gn-menu-services"><a class="gn-link gn-link-services" href="#"><span class="gn-link-span">Services</span></a></li>
<li class="gn-item gn-menu-about"><a class="gn-link gn-link-about" href="#"><span class="gn-link-span">About</span></a></li>
<li class="gn-item gn-menu-contact"><a class="gn-link gn-link-contact" href="www.soundbody.io/contact"><span class="gn-link-span">Contact</span></a></li>
<li class="gn-item gn-menu-signin"><a class="gn-link gn-link-signin" href="#"><span class="gn-link-span">Sign In</span></a></li>
</ul>
</div>
</nav>
CSS:
#gn {
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
width: 100%;
height: 44px;
background-color: #212121;
z-index: 1;
}
#gn #gn-content {
display: block;
position: relative;
max-width: 980px;
height: 44px;
margin: 0 auto;
padding: 0 22px;
opacity: 0.65;
z-index: 2;
}
#gn .gn-menu {
display: block;
position: relative;
width: auto;
height: 44px;
margin: 0 -10px;
padding: 0;
text-align: justify;
-ms-text-justify: distribute-all-lines;
text-justify: distribute-all-lines;
z-index: 3;
}
#gn .gn-item {
display: inline-block;
position: relative;
width: auto;
height: 44px;
margin: 0 50px;
padding: 0 0px;
vertical-align: top;
opacity: 1;
z-index: 4;
}
#gn .gn-link {
display: inline-block;
position: relative;
width: auto;
height: 44px;
margin: 0 0;
padding: 0 10px;
color: white;
white-space: nowrap;
background-repeat: no-repeat;
background-position: center center;
background-origin: content-box;
z-index: 5;
}
#gn .gn-link-span {
display: block;
position: absolute;
clip: rect(1px, 1px, 1px, 1px);
top: 50%;
width: 1px;
height: 1px;
margin: 0;
padding: 0;
border: 0;
overflow: hidden;
}
.gn-link-brand {
background-image: url("/img/brand.svg");
background-size: cover;
}
我在网上找不到技巧。非常感谢您的帮助!
干杯!
最佳答案
这里我使用了flexbox
。
您还设置了一些不需要的属性,我已将其清除。
#gn {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 44px;
background-color: #212121;
z-index: 1;
}
#gn #gn-content {
max-width: 980px;
height: 44px;
margin: 0 auto;
padding: 0 22px;
opacity: 0.65;
}
#gn .gn-menu {
display: flex; /* added property */
height: 44px;
margin: 0 -10px;
padding: 0;
list-style: none;
}
#gn .gn-item {
flex: 1; /* added property */
}
#gn .gn-link {
display: flex; /* added property */
justify-content: center; /* added property */
align-items: center; /* added property */
height: 44px;
color: white;
background-repeat: no-repeat;
background-position: center center;
background-origin: content-box;
}
#gn .gn-link-span {
display: block;
overflow: hidden;
}
.gn-link-brand {
background-image: url("/img/brand.svg");
background-size: cover;
}
<nav id="gn">
<div id="gn-content">
<ul class="gn-menu">
<li class="gn-item gn-menu-brand"><a class="gn-link gn-link-brand" href="#"><span class="gn-link-span">Brand</span></a></li>
<li class="gn-item gn-menu-products"><a class="gn-link gn-link-products" href="#"><span class="gn-link-span">Products</span></a></li>
<li class="gn-item gn-menu-services"><a class="gn-link gn-link-services" href="#"><span class="gn-link-span">Services</span></a></li>
<li class="gn-item gn-menu-about"><a class="gn-link gn-link-about" href="#"><span class="gn-link-span">About</span></a></li>
<li class="gn-item gn-menu-contact"><a class="gn-link gn-link-contact" href="www.soundbody.io/contact"><span class="gn-link-span">Contact</span></a></li>
<li class="gn-item gn-menu-signin"><a class="gn-link gn-link-signin" href="#"><span class="gn-link-span">Sign In</span></a></li>
</ul>
</div>
</nav>
根据评论更新,对元素使用 justify-content: space-around;
而不是 flex: 1
#gn {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 44px;
background-color: #212121;
z-index: 1;
}
#gn #gn-content {
max-width: 980px;
height: 44px;
margin: 0 auto;
padding: 0 22px;
opacity: 0.65;
}
#gn .gn-menu {
display: flex; /* added property */
justify-content: space-around; /* added property */
height: 44px;
margin: 0 -10px;
padding: 0;
list-style: none;
}
#gn .gn-link {
display: flex; /* added property */
justify-content: center; /* added property */
align-items: center; /* added property */
height: 44px;
color: white;
background-repeat: no-repeat;
background-position: center center;
background-origin: content-box;
}
#gn .gn-link-span {
display: block;
overflow: hidden;
}
.gn-link-brand {
background-image: url("/img/brand.svg");
background-size: cover;
}
<nav id="gn">
<div id="gn-content">
<ul class="gn-menu">
<li class="gn-item gn-menu-brand"><a class="gn-link gn-link-brand" href="#"><span class="gn-link-span">Brand</span></a></li>
<li class="gn-item gn-menu-products"><a class="gn-link gn-link-products" href="#"><span class="gn-link-span">Products</span></a></li>
<li class="gn-item gn-menu-services"><a class="gn-link gn-link-services" href="#"><span class="gn-link-span">Services</span></a></li>
<li class="gn-item gn-menu-about"><a class="gn-link gn-link-about" href="#"><span class="gn-link-span">About</span></a></li>
<li class="gn-item gn-menu-contact"><a class="gn-link gn-link-contact" href="www.soundbody.io/contact"><span class="gn-link-span">Contact</span></a></li>
<li class="gn-item gn-menu-signin"><a class="gn-link gn-link-signin" href="#"><span class="gn-link-span">Sign In</span></a></li>
</ul>
</div>
</nav>
关于html - 如何在带有 css ala apple 的容器中均匀地自动分配水平列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558133/
我需要在半径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:
我是一名优秀的程序员,十分优秀!