全宽导航,每个项目的动态宽度等于 100%
full width navigation with dynamic width to each item and equal to 100%
我想要一个包含 6 个菜单项的全宽导航,但每个项目的字长不同,这 6 个项目必须具有基于字长的动态百分比宽度,并且它们等于 100% .
希望下图能让大家更容易理解:
仅 css 可以吗?我已经试了好几天了,但还没有找到任何解决办法。请帮忙。
是的,这只有 CSS 才有可能。请检查我为演示目的创建的代码笔,你可以有更多的样式和其他东西
https://codepen.io/anon/pen/pXrvrZ
<div class="menu">
<ul>
<li>About</li>
<li>Custom Made Product & Private Label</li>
<li>Packaging</li>
<li>Facility</li>
<li>Contact</li>
<li>Insta WA</li>
</ul>
</div>
*,
*::before,
*::after {
padding: 0;
margin: 0;
box-sizing: border-box;
}
ul {
list-style-type: none;
display: grid;
grid-template-columns: repeat(6, 1fr);
}
.menu {
width: 100%;
}
另请查看 CSS 网格的使用指南
我个人会用 flex 做这个
.flex{
display:flex;
flex-wrap:wrap
}
.logo{
width:15%;
text-align:center;
color:#fff;
background:red;
}
.nav{
padding:0;
margin:0 0 0 5%;
width:80%;
}
.nav li{
list-style-type:none;
margin-left:auto;
}
.nav li:first-child{
margin-left:0;
}
<div class="flex menu-container">
<div class="logo">
Logo
</div>
<ul class="nav flex">
<li>About</li>
<li>Custom-made product & private label</li>
<li>Packaging</li>
<li>Facility</li>
<li>Contact</li>
<li>Social</li>
</ul>
</div>
CSS-Tables
*,
*::before,
*::after {
padding: 0;
margin: 0;
box-sizing: border-box;
}
.menu {
display: table;
width: 100%;
}
ul {
list-style-type: none;
display: table-row;
}
li {
display: table-cell;
border: 1px solid grey;
}
<div class="menu">
<ul>
<li>About</li>
<li>Custom Made Product & Private Label</li>
<li>Packaging</li>
<li>Facility</li>
<li>Contact</li>
<li>Insta WA</li>
</ul>
</div>
我想要一个包含 6 个菜单项的全宽导航,但每个项目的字长不同,这 6 个项目必须具有基于字长的动态百分比宽度,并且它们等于 100% .
希望下图能让大家更容易理解:
仅 css 可以吗?我已经试了好几天了,但还没有找到任何解决办法。请帮忙。
是的,这只有 CSS 才有可能。请检查我为演示目的创建的代码笔,你可以有更多的样式和其他东西
https://codepen.io/anon/pen/pXrvrZ
<div class="menu">
<ul>
<li>About</li>
<li>Custom Made Product & Private Label</li>
<li>Packaging</li>
<li>Facility</li>
<li>Contact</li>
<li>Insta WA</li>
</ul>
</div>
*,
*::before,
*::after {
padding: 0;
margin: 0;
box-sizing: border-box;
}
ul {
list-style-type: none;
display: grid;
grid-template-columns: repeat(6, 1fr);
}
.menu {
width: 100%;
}
另请查看 CSS 网格的使用指南
我个人会用 flex 做这个
.flex{
display:flex;
flex-wrap:wrap
}
.logo{
width:15%;
text-align:center;
color:#fff;
background:red;
}
.nav{
padding:0;
margin:0 0 0 5%;
width:80%;
}
.nav li{
list-style-type:none;
margin-left:auto;
}
.nav li:first-child{
margin-left:0;
}
<div class="flex menu-container">
<div class="logo">
Logo
</div>
<ul class="nav flex">
<li>About</li>
<li>Custom-made product & private label</li>
<li>Packaging</li>
<li>Facility</li>
<li>Contact</li>
<li>Social</li>
</ul>
</div>
CSS-Tables
*,
*::before,
*::after {
padding: 0;
margin: 0;
box-sizing: border-box;
}
.menu {
display: table;
width: 100%;
}
ul {
list-style-type: none;
display: table-row;
}
li {
display: table-cell;
border: 1px solid grey;
}
<div class="menu">
<ul>
<li>About</li>
<li>Custom Made Product & Private Label</li>
<li>Packaging</li>
<li>Facility</li>
<li>Contact</li>
<li>Insta WA</li>
</ul>
</div>