我使用以下HTML:
<p><a href="http://www.example.com/">← Back</a></p>
创建以下内容:
问题是,左箭头未在中间垂直对齐。它看起来处于较低的第3位。
问题:如何使用CSS让左箭头在中间(字母“B”)垂直对齐?
更新:
我可以垂直调整/对齐它:
答案 0 :(得分:8)
箭头是一个简单的字符,所以它与其他字符对齐(是在“中间”,字体的创建者希望它在它的位置......也许这就是中间小写字符)。也许它使用另一种字体看起来不同,也许不是。如果你有一个固定的字体并且看起来很乱,你可以尝试使用:first-letter选择器(或用span
或其他东西包裹箭头)将它向上移动1或2像素({{ 1}})。
另一种解决方案是使用图像,就像大多数网站一样(并且有many free icon sets - 我最喜欢的是famfamfam)
答案 1 :(得分:2)
您可以将箭头包装在SPAN标记中,然后使用line-height和vertical-align CSS属性进行播放。
答案 2 :(得分:1)
一般情况下你不应该这样做,你应该让它,因为它的作者构思了字体。
但是你要改变它,你可以这样做:
<p><a href="http://www.example.com/">
<span style="position:relative;top:-3px;">←</span>
Back
</a></p>
注意:使用您需要的而不是-3px
,我用它来说明如何更改位置。
答案 3 :(得分:1)
我认为你必须使用左箭头的图像而不是&larr
可以将&larr
放在单独的span
中,使用一些特定的填充来将箭头移到正确的位置,或者使用具有箭头的特定字体中心,但这会产生副作用。
我建议你使用图像。
答案 4 :(得分:1)
有两种可能的答案。
span
内,给它display: inline-block
和position: relative
并使用垂直填充,边距和线高,直到您满意为止。答案 5 :(得分:0)
你有一些选择: 1.在单词Back之前的span标记之间放置箭头,为此span对象添加id,然后在css文件中指定样式: padding-top 或 bottom 以及 vertical-align 或位置相对。 2.第二个选项是使用图像作为背景,然后您必须为此链接创建样式:
li a#link,#link_conten{
background-image: url(../../../img/arrow.gif);
background-position: left top;
background-repeat: no-repeat;
}
此外,从语义的角度来看,仅将链接(标记a)放在段落(标记p)中并不常见。然后你必须处理标签a和p的默认css规则,但当然取决于你的设计
答案 6 :(得分:0)
您可以使用CSS生成的内容。这将意味着编辑您的HTML - 删除箭头。基本上你是在创建一个位于链接前面的伪元素,你可以随意设置它,例如。
a.back:before {
content: "\2190 "; /* Unicode equivalent of ← */
display: inline-block;
padding: 5px;
background-color: aqua;
}
在缺点方面,这在IE 6或7中不起作用。您可以通过一些有针对性的JavaScript来解决这个问题。
如果您不想编辑HTML,可以尝试:first-letter
。它只适用于块级元素,因此您需要相应地工作,例如
a.back {
display: inline-block;
}
a.back:first-letter {
background-color: aqua;
padding: 5px;
}
我很难让它一直显示跨浏览器。 IE8和FF3.6在代码上做了不同的事情。