html - 如何使 html 菜单文本从头到尾跨度 100%
问题描述
我正在尝试创建一个导航菜单,其中共有 5 个链接到其他页面。我不知道如何使文本从一端跨越到另一端,因此它占用了页面的整个宽度,同时又很灵活。
结构非常简单:
ul {
display: flex;
justify-content: center;
width: 100%;
}
ul li {
display: inline-block;
text-align: center;
flex: 1;
justify-content: space-between;
}
ul li a {
display: inline-block;
width: 100%;
font-size: 16px;
font-weight: 300;
color: #070707;
}
<ul>
<li><a href="">Contact us</a></li>
<li><a href="">Delivery</a></li>
<li><a href="">About us</a></li>
<li><a href="">Terms & Conditions</a></li>
<li><a href="">Returns</a></li>
</ul>
这行得通,但是由于文本在每个 li 元素内居中,因此左右两侧都有一些空间。我正在尝试使文本“触摸” ul 元素的边缘(占用父元素的 100% 宽度)。因此,如果 ul 元素的宽度为 1240px,我试图让文本从头到尾占用 1240px。
这是我在 Photoshop 中制作页面模型时的样子:
蓝线是边缘(其中一条表示中间)。
当我使用我编写的 flexbox 代码时,它看起来像这样:
有没有办法让它看起来像我最初想要的那样?
解决方案
从. flex: 1
_ li
您不希望元素增长,因为这会阻止文本到达末端。
添加justify-content: space-between;
到ul
. 您当前正在使元素居中,这将导致它们聚集在一起。
您还需要删除默认ul
填充,但大概您已经这样做了。
body {
outline: 1px dashed lightBlue;
}
ul {
display: flex;
justify-content: space-between;
width: 100%;
padding: 0;
}
ul li {
display: inline-block;
outline: 1px solid orange;
}
ul li a {
display: inline-block;
width: 100%;
font-size: 16px;
font-weight: 300;
color: #070707;
}
<ul>
<li><a href="">Contact us</a></li>
<li><a href="">Delivery</a></li>
<li><a href="">About us</a></li>
<li><a href="">Terms & Conditions</a></li>
<li><a href="">Returns</a></li>
</ul>
推荐阅读
- python - 从 numpy 数组列表中提取具有 0 个元素的行?
- javascript - 获取 json 并在 Scriptable 中刷新
- c# - 如何强制 Identity Server 4 在每个请求上从 /connect/authorize 路由到我的自定义方法?
- r - 是否可以仅在 R 中使用 difftime 函数(即没有 DD/MM)?
- android - 在以编程方式添加的单选组中的单选按钮之间创建分隔线?
- java - MongoDB Aggregation - 如何使用 spring-data-mongodb 将查询表达式应用到匹配阶段?
- android - android中是否有这样的布局方向
- c++ - 为什么代码块要求我添加“;” 在别人的条件之后?如果我添加“:”,仍然存在逻辑错误。(查看问题正文以获取更多详细信息)
- python - 如何在 selenium 中更快地从动态网站读取数据
- powershell - 无法在powershell的数组列表中获取数组到json