【发布时间】:2017-03-18 14:20:55
【问题描述】:
所以我试图在不使用图像的情况下制作导航按钮。但我无法让 CSS 正常工作。我设法得到了除了文本的垂直对齐之外的所有内容,但要做到这一点,我觉得代码变得比必要的更加草率。这是我所拥有的:
.nav_button {
height: 18px;
background: linear-gradient(#3D3C3B 0%, #0A0B0A 50%);
margin-top: 5px;
}
.arrow_container {
display: inline-block;
width: 35px;
}
.nav_arrow {
width: 20px;
height: 18px;
background: linear-gradient(#D2DA76 0%, #5EB649 50%);
}
.nav_link {
display: inline-block;
width: 125px;
text-align: center;
}
.nav_arrow::after {
display: block;
content: '';
height: 18px;
width: 20px;
background: linear-gradient(to bottom right, #D2DA76 0%, #5EB649 50%);
transform: translate(10px, 0px) scale(.8, .715) rotate(45deg);
}
<a href='#'>
<div class='nav_button'><span class='arrow_container'><div class='nav_arrow'></div></span><span class='nav_link'>Test</span></div>
</a>
有没有更好的方法来写这个?如果不是,我至少需要知道如何垂直对齐文本。 line-height 不起作用。
编辑:这是一张演示图片。箭头向后但很近。
【问题讨论】:
-
您能否提供一张最终结果的图片?
-
@haxxxton 好的。我加了一张照片。正如我所说,我唯一还没有解决的是文本的垂直对齐。虽然我觉得所有嵌套的 div 都是 html 中的跨度是一个草率的代码。
-
可以写得更简洁,但您正在寻找
vertical-align:middle或line-height: px。