2017-11-22 5 views
1

すばらしいフォントアイコンでパネルツールを置き換えることは可能です。パネルツールをすばらしいフォントアイコンに置き換えてください

私はCSSでいくつか試しましたが、うまくいきません。

フィドル:https://fiddle.sencha.com/#view/editor&fiddle/2a0i

+0

あなたがアイコンで見出しパネルを交換したいですか?またはフィールドラベルをアイコンに置き換えますか? – Ibrahim

+0

すばらしいフォントアイコンを使用してカスタムパネルツールを作成したいと考えています。それはextjs 6のいくつかのバージョンで動作するようですが、私はバージョン5でそれを取得していません – josei

+0

それは今働いていますか?私は印刷アイコンを見ることができます – Ibrahim

答えて

2

あなたは正しい軌道に乗っているが、問題はExtJSの5ツール要素のimgタグを使用し、there's a "minor" issue with :before pseudo elements for img tagsということです。

Ext.define('',{ 
    override: 'Ext.panel.Tool', 
    renderTpl: [ 
     '<tpl if="ui==\'glyph\'">', 
      '<span id="{id}-toolEl" data-ref="toolEl" src="{blank}" class="{baseCls}-img {baseCls}-{type}' + 
       '{childElCls}" role="presentation"/>', 
     '<tpl else>', 
      '<img id="{id}-toolEl" data-ref="toolEl" src="{blank}" class="{baseCls}-img {baseCls}-{type}' + 
       '{childElCls}" role="presentation"/>', 
     '</tpl>' 
    ] 
}); 

次にあなたがそのdiv要素を検出するために、オーバーライドで使用される、ui:"glyph"を使用するためにいくつかのツールを伝えることができます:あなたがいることを必要なときに代わりにspanを使用するように、元のExt.panel.Toolを追加していることを回避する必要がありますその後、アイコンは、技術的に表示される

tools: [{ 
    type: 'edit', 
    ui:"glyph", 
    cls:'component-tool-edit', 
    callback: function() { 
     alert(); 
    } 

と:

従って:before擬似要素を可能にし、従って、FontAwesomeアイコン、使用されるべきです

あなただけのプロジェクトにFontAwesomeを追加し、スタイルシートを修正する必要があります。

@font-face { 
    font-family: 'FontAwesome'; 
    src: url('font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0'); 
    src: url('font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 
+0

ありがとうアレクサンダー。私はまだrenderTplでクラスを処理する方法を考え出していません。このクラスはオーバーライドされ、オーバーライドフォルダに移動する必要がありますか? Ext.define( 'overrides.panel.GlyphTools'){} – josei

+0

Ok。よく働く。 Alexanderさんにおかげさまで – josei

+0

アレクサンダー、アレキサンダー、私はグリッドパネルで、単一のアイコンを使用すると、グリッドは、列の周りに青い枠を持ち、複数のアイコンでグリッドの列と行が消え、内側が青く変わる – josei

1

上書き .X-パネル・ヘッダー・タイトル・デフォルト.X-パネル・ヘッダー・デフォルト cssクラスと背景 "素晴らしいアイコン" の画像を追加します。


編集:

あなたが望むものを視覚化することは困難であるが、これはあなたが始める必要があります。

.x-panel-header-default 
{ 
    /*this should remove the gradient from the panel header try using a icon instead*/ 
    background-image: none !important; 
}
+0

@pryadarshi私のフィドルからもう少し詳しく説明できます。私はあなたの提案を実装しようとしていますが、私はまだ成功しませんでした。 – josei

+0

@pryadarshiありがとうございます。私が意味するものではありません。アイコンにはツールの動作があり、イベントをトリガする必要があります。 – josei

+0

@joseiオレはそれを得ました...クリックすることができるカスタムアイコンが必要です.....右。このリンクを確認してくださいhttps://stackoverflow.com/questions/36057624/how-to-attach-an-on-click-event-for-icon-in-ext-js –

関連する問題