【发布时间】:2020-12-23 08:46:03
【问题描述】:
我使用border-bottom 来设置多行链接的样式:
div {
display: inline-block;
width: 100px;
padding: 20px;
background-color: #ddd;
}
a {
text-decoration: none;
border-bottom: 2px solid rgba(255, 0, 255, 0.5);
}
<div>
<a href="#">StackOverflow is awesome</a>
</div>
为此,<a> 需要是内联元素。
如果<a> 看起来是块级元素,则仅在底部绘制边框:
而且,当<a> 是 flexbox 的子级时,这正是发生的情况:
div {
display: inline-flex;
width: 100px;
padding: 20px;
background-color: #ddd;
}
a {
text-decoration: none;
border-bottom: 2px solid rgba(255, 0, 255, 0.5);
}
<div>
<a href="#">StackOverflow is awesome</a>
</div>
看起来,flex 父级的子级自动被视为块级元素。
有没有办法将 flex 子元素保留为内联元素?
【问题讨论】:
-
你到底想要什么?你能为此添加预期的输出吗?
-
这能回答你的问题吗? Make flex children inline-block
-
也许使用this?
-
@RayeesAC 我希望能够对多行链接使用
border-bottom样式,而不管它们放置在什么上下文中。在上面的示例中,当链接放置在弹性上下文中时, 样式中断。 -
添加一个额外的包装器来扮演 inline 元素的角色是你唯一的解决方案