2013-02-13 88 views
8

在我的网站上,我对某些链接类型使用了字体图标。这些图标通过:before CSS语法添加。如何避免在“:之前”之后的换行符在CSS

a.some-link:before { 
    font-family: icons; 
    display: inline-block; 
    padding-right: 0.3em; 
    content: 'x'; 
} 

然而,当这种联系是在一行的开头,它有时从它的图标分开:

Separated icon from link

我尝试了上述增加white-space: nowrap的CSS规则,但没有帮帮我。

如何将图标和文字放在一起?(CSS 3是好的)

注意:我不想格式化整个链接white-space: nowrap

回答

8

只需去除display:inline-block;似乎来解决这个问题:

a.some-link:before { 
    font-family: icons; 
    padding-right: 0.3em; 
    content: 'x'; 
} 

JSFiddle

不幸的是,你需要“display:inline-block”来显示SVG。简单的解决方案是在“a”上放置“display:inline-block”。这会导致你的SVG正确渲染,并且它会保持你的a:before和a在一起。

2

这是好得多nowrap规则添加到:before CSS:

white-space: nowrap; 

UPD:http://jsfiddle.net/MMbKK/5/

原因nowrap规则是与图像内容:before正常工作。文本内容不需要这个规则来留在主要元素附近。

+3

为什么这样比较好?你应该更详细地回答我的想法。 – 2014-07-16 15:32:33

+0

OP指定他们不寻找'nowrap'解决方案。 – indivisible 2014-07-16 17:07:44

+0

恩,对不起,我是这个社区的新手,没有看到通知。 'nowrap'里面':之前'CSS规则在我的情况下工作。可能只是在我的主浏览器中。 'a.tooltipWord:{ content:url('..../quest_min.gif'); white-space:nowrap; }' 哦,我还不够清楚,现在我看到了。问题的关键是将'inline-block'规则更改为'nowrap',而不是将它们相加。 – ornic 2014-08-29 08:44:19

相关问题