Asp.net mvc Html.ActionLink是否作为文本垂直居中的图像按钮?

Asp.net mvc Html.ActionLink是否作为文本垂直居中的图像按钮?,asp.net-mvc,razor,Asp.net Mvc,Razor,简单地说,问题是-有没有一种方法可以垂直对齐动作链接中的链接文本 我需要制作一个看起来像Html.ActionLink控件的按钮。 这方面有一个相当好的例子 我已经实现了这种方法,但是,我需要的不仅仅是一个“图像”按钮, 但是一个显示有文本的图像按钮,这个文本取决于视图模型的状态,所以我不能简单地把它放在图像上 这是我的(剃刀): 和CSS: a.commiteeButton { background: transparent url("../Images/BlueButton.png") no

简单地说,问题是-有没有一种方法可以垂直对齐动作链接中的链接文本

我需要制作一个看起来像Html.ActionLink控件的按钮。 这方面有一个相当好的例子

我已经实现了这种方法,但是,我需要的不仅仅是一个“图像”按钮, 但是一个显示有文本的图像按钮,这个文本取决于视图模型的状态,所以我不能简单地把它放在图像上

这是我的(剃刀):

和CSS:

a.commiteeButton {
background: transparent url("../Images/BlueButton.png") no-repeat top left;
display: block;
width: 304px;
height: 50px;
color: white;
text-decoration: none;
font: normal 14px Arial;
text-align: center;
margin-bottom: 10px;
}

结果是可以的,但是:链接的文本位于图像的顶部,而不是中间(垂直)。 我不知道如何垂直居中链接文本,以便它可以位于图像的正中心

当然,可以有另一种方法(见下文),但上述方法是否仍然可行

<a class="nonunderlinedlink" href="@Url.Action("CommiteePage", "SecureFolder", new { commiteeName=commitee.Name, page = 1 }, null)">
    <div class="commiteeButton">
        <p class="pstyle">@commitee.Name</p>
    </div>
</a>

在css中尝试以下更改

a.commiteeButton {
background: transparent url("../Images/BlueButton.png") no-repeat top left;
display: block;
width: 304px;
height: 50px;
color: white;
text-decoration: none;
font: normal 14px Arial;
text-align: center;
margin-bottom: 10px;
display: table-cell;
vertical-align: middle;
}

在css中尝试以下更改

a.commiteeButton {
background: transparent url("../Images/BlueButton.png") no-repeat top left;
display: block;
width: 304px;
height: 50px;
color: white;
text-decoration: none;
font: normal 14px Arial;
text-align: center;
margin-bottom: 10px;
display: table-cell;
vertical-align: middle;
}
Rex(见上面对我问题的评论)建议将填充放在CSS的顶部,这样就解决了这个问题,而不会引起附带的布局问题

谢谢大家的快速回复

Rex(见上面对我的问题的评论)建议将padding-top添加到CSS中,这样就解决了这个问题,而不会引起附带的布局问题


谢谢大家的快速回复

我知道有点晚了,但你也可以使用线宽:50px;要使文本垂直居中

我知道有点晚了,但也可以使用行高:50px;要使文本垂直居中

请尝试显示:内联块;试着给topRex一些填充物,效果很好-非常感谢!你能回答这个问题吗?这样我就可以结束这个问题了?(我的名声仍然太小,无法回答我自己的问题)尝试显示:内联块;试着给topRex一些填充物,效果很好-非常感谢!你能回答这个问题吗?这样我就可以结束这个问题了?(我的名声仍然太小,无法回答我自己的问题)