我有一个标签栏需要扩展100%的页面布局。我需要它们在文本的左/右边与标签边缘之间具有相等数量的左/右填充,而不是每个标签的宽度相等。 (注意除了产品详细信息之外,所有选项卡中的空间是多少)
这可以使用纯CSS完成吗?如果没有,如何使用jQuery完成?
HTML
<nav>
<ul>
<li><a href="home.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="services.html">Services</a></li>
<li><a href="product-details.html">Products Detail</a></li>
<li><a href="jobs.html">Jobs</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
CSS
body {
font-family: Arial, sans-serif;
padding: 4px;
text-align: center;
}
h1 {
text-align: center;
font-weight: normal;
}
nav {
background: #f0f0f0;
border: 1px solid #ccc;
border-right: none;
width: 100%;
margin-bottom: 20px;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
list-style: none;
text-align: center;
border-left: 1px solid #fff;
border-right: 1px solid #ccc;
}
nav ul li:first-child {
border-left: none;
}
nav ul li a {
display: block;
text-decoration: none;
color: #616161;
padding: 10px 0;
}
nav {
display: table;
table-layout: fixed;
}
ul {
display: table-row;
}
ul li {
display: table-cell;
}
.x {
display: none;
}
.p {
text-align: center;
font-size: 14px;
margin-top: 80px;
}
.d {
color: #ccc;
}
@media (max-width: 430px) {
nav {
font-size: .8em;
}
nav ul li {
display: block;
border-bottom: 1px solid #ccc;
}
}
这是我的JSFiddle。
答案 0 :(得分:0)
Afaik你最接近使用纯css将table-layout更改为auto:
nav {
display: table;
table-layout: auto;
}
答案 1 :(得分:0)
您可以使用flexbox:
nav ul {
display: flex;
}
nav ul li {
flex-grow: 1;
}
示例http://jsfiddle.net/2eqk1kcs/
但是你应该看一下browser support。