2012-11-11 7 views
26

cssクラスのエイリアスを作成できますか?cssまたはsassのエイリアスクラス名

私はこのフォントを使用しています。素晴らしいです。いくつかのアイコンクラスのエイリアス名を作成しようとしています。 .icon-globeは.globeとも呼ばれます。

どうすればこのようなことができますか?

+4

が正しい答えを受け入れることを忘れないでください、と出力CSSは次のようになります! – OneChillDude

答えて

0

どちらもSASSでもCSS3/4もサポートしていません。 font awesomeを使用する場合は、正確なクラス名を使用する必要があります。

3

あなたはプレーンなCSSのカンマで区切られたセレクタを使用して、いくつかのクラスに同じスタイルを適用することができます。

.icon-globe, .globe { 
    //styles 
} 

<i class="icon-globe"><i class="globe">に同じスタイルを適用します。

+1

ありがとうございます。このブロックにスタイルを定義した場合にのみ機能しますか?問題は、フォントを変更したくないということです。すばらしいファイルです。 – bymannan

+0

はい、場合によっては、クラスへのアクセス権がない場合や、定義されている場所を見つけるためにエネルギーを投資したくない場合もあります。 – Scalable

13

私が考えることができる最も簡単な方法は、javascript/jqueryを使用することです。

のjQuery:

$(document).ready(function() { 
    $('.globe').addClass('icon-globe'); 
}); 
+2

私の答えを下落させた人には、コードが不十分だと感じたらコメントを残すか、私の答えを編集してください。私はあなたのリクエストを見てうれしく思います:) – OneChillDude

+3

古い質問...しかし、呼び出し元がこれを要求していないことを示します。彼らが知りたいのは、.icon-globeの代わりに.globeを使う方法です。 – Scalable

+2

これはSASSに関する質問です。あなたはJavaScript/jQueryの回答を提案しています。 –

17

エイリアシングのようなものはありません。 Sassには@extendという指令がありますが、その解決策はソースを調べるまで完全にはっきりしません。

出典:https://github.com/FortAwesome/Font-Awesome/blob/master/sass/font-awesome.scss

[class^="icon-"]:before, 
[class*=" icon-"]:before { 
    font-family: FontAwesome; 
    font-weight: normal; 
    font-style: normal; 
    display: inline-block; 
    text-decoration: inherit; 
} 

// snip 

.icon-globe:before    { content: "\f0ac"; } 

あなたは.globe.icon-globeを延長作ったとしても、あなたはので、彼らはセレクタを建てたかのFontAwesomeスタイルを作るもののほとんどを逃すことになります。他のセレクタも拡張する必要があります。

.globe { 
    @extend .icon-globe; 
    @extend [class^="icon-"]; 
} 

生成:

[class^="icon-"]:before, .globe:before, 
[class*=" icon-"]:before { 
    font-family: FontAwesome; 
    font-weight: normal; 
    font-style: normal; 
    display: inline-block; 
    text-decoration: inherit; } 

.icon-globe:before, .globe:before { 
    content: "\f0ac"; } 

注意をicon-プレフィックスが意図的だったこと。 FontAwesomeに付属するすべての〜200クラスにこれらのスタイルをすべて添付するのではなく、この方法でより小さなCSSファイルを取得できます。あなたはできますそれを行うが、私は結果が非常に良いとは思わない。

+1

ねえ、それは素晴らしいです。 – markus

7

を作成することを可能にするCSS Crushに興味がある可能性があり古い質問ですが、スレッドが不完全に見えるので、私はこれに答えています...あなたは簡単に、出力CSSが

.globe,.icon-globe{ 
    /* CSS Properties */ 
} 

フォント-恐ろしいの新しいクラス名を考慮すると、のようになります。icon-globeクラス

.globe{ 
    @extend .icon-globe !optional; 
} 

を拡張することにより、SASSであなたをこれを行うことができます

.fa-globeを複数のクラスを拡張して使用する必要があります

.globe{ 
    @extend .fa, .fa-globe !optional; 
} 

.fa,.globe{ 
/* ... */ 
} 

.globe,.fa-globe{ 
    /* CSS Properties */ 
} 
関連する問題