2013-02-13 16 views
8

私のウェブサイトでは、特定のリンクタイプにフォントアイコンを使用しています。これらのアイコンは:before CSSシンタックスで追加されます。このリンクは、行の先頭にあるときCSSの ":before"の後の改行を避ける方法

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

しかし、それは時々、そのアイコンから分離しています:

Separated icon from link

私は上記のCSSルールに white-space: nowrapを追加してみました

が、それはしませんでした助けて。

どのようにアイコンとテキストをまとめて保存しますか?(CSS 3は大丈夫です)

注:私はwhite-space: nowrap全体リンクをフォーマットする必要はありません。単にdisplay:inline-block;を削除

答えて

8

は、この問題を修正するようだ:

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

JSFiddle

残念ながら、SVGを表示するには、 "display:inline-block"が必要です。簡単な解決策は、 "a:"に "display:inline-block"を入れることです。これによりSVGが適切にレンダリングされ、a:beforeとaを1行にまとめることができます。

2

:before CSSにnowrapルールを追加することがはるかに優れています:

white-space: nowrap; 

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

nowrapルールの理由は:beforeで画像コンテンツで正しく動作することです。テキストコンテンツは、このルールがメインエレメントの近くにとどまる必要はありません。

+3

これがなぜ優れているのでしょうか?私はもう少し詳しく答えてください。 –

+0

指定されたOPは 'nowrap'ソリューションを探していません。 – indivisible

+0

申し訳ありませんが、私はこのコミュニティを初めて利用していて、以前は通知を受けていませんでした。 ':before' CSSルールが私の場合に働いていました。メインのブラウザでしかないかもしれません。 'a.tooltipWord:before { コンテンツ:url( '..../quest_min.gif'); white-space:nowrap; } ' ああ、私は十分ではなかった、私は今それを参照してください。ポイントは 'inline-block'ルールを' nowrap'ルールに変更し、追加することではありません。 – ornic

関連する問題