html - CSS 网格:使用 ::after 下划线效果来适应网格项目
问题描述
我正在使用::after
伪选择器在导航项下创建下划线动画。我遇到的问题是宽度不适合子元素(标签),而是网格单元格的整个宽度。理想的情况是动画在到达单词末尾时停止,同时仍保持网格单元格中的原始位置。
#nav-bar li a::after
我尝试使用 CSS 选择器::after
(
* {
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
color: black;
font-family: 'Source Sans Pro', sans-serif;
}
#header {
margin: 2rem 0 4rem 0;
padding: 0 2rem;
font-size: 0.875rem;
text-align: left;
}
#nav-bar {
display: inline-grid;
grid-template-columns: repeat(5, 12.5%) 1fr;
grid-template-rows: 2rem;
width: 100%;
padding: 2rem;
}
#nav-bar li {
position: relative;
margin: auto 0px;
}
#nav-bar li a::after {
content: "";
display: block;
background-color: #000;
width: 0;
height: 1px;
transition: ease-in-out 0.5s;
}
#nav-bar li a:hover::after {
width: 100%;
transition: ease-in 0.5s;
}
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro&display=swap" rel="stylesheet">
<ul id="nav-bar">
<li id="home">
<a href="">
Home
</a>
</li>
<li>
<a href="">
About
</a>
</li>
<li>
<a href="">
Services
</a>
</li>
<li>
<a href="">
Contact
</a>
</li>
</ul>
解决方案
只需将 inline-block 添加到锚点。
#nav-bar li a {
display: inline-block;
}
推荐阅读
- python - 计算每行中的单词并将计数分配给预定义的列
- vba - 将 URL 从 Web 浏览器复制并粘贴到 MS Word 时,如何删除尾部斜杠?
- parsing - 在 BLE Advertising Respones 中查找用于解析数据的文档
- asp.net-web-api - 我可以使用带有 jest 的反应测试库来进行集成测试吗?
- ada - Ada - 在程序中提出的可访问性检查
- django - OperationalError 无法连接到服务器:连接被拒绝
- pandas - 如何从 Pandas 列表中具有匹配值的列中删除行
- azure - 使用带有共享访问签名的 Rest API 上传到 Blob 存储
- javascript - 减少具有相同值的对象数组
- python - 将 python 脚本的输出返回到烧瓶