国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
SVGスプライトコンポーネント( SvgSprite.vue
アイコンコンポーネント( SvgIcon.vue
ホームページ ウェブフロントエンド CSSチュートリアル VUE用のフォントのようなSVGアイコンシステム

VUE用のフォントのようなSVGアイコンシステム

Apr 03, 2025 am 10:47 AM

VUE用のフォントのようなSVGアイコンシステム

Vue.jsでアイコンの管理は難しい場(chǎng)合があります。アイコンフォントは便利ですが、カスタマイズの柔軟性が不足しており、バージョン制御はバイナリの性質(zhì)のために悪夢(mèng)になります。 SVGは優(yōu)れたソリューションを提供しますが、使いやすさと効率的な管理を維持するには、思慮深いアプローチが必要です。

この記事では、vue.jsアプリケーション用の理想的なSVGアイコンシステムを紹介し、シンプルさと保守性に焦點(diǎn)を當(dāng)てています。

  • アイコンの追加/削除:指定されたフォルダーからSVGを追加または削除するだけです。
  • 使用法:簡(jiǎn)単な構(gòu)文を使用して、テンプレートでアイコンを使用します<svg-icon icon="rocket"></svg-icon>。
  • スタイリング: CSS font-sizecolorプロパティを使用したスケールおよびカラーアイコン、アイコンフォントの動(dòng)作を模倣します。
  • 最適化:同じアイコンの複數(shù)のインスタンスのSVGコードの複製を回避します。
  • Webpack統(tǒng)合: Webpack構(gòu)成の変更は必要ありません。

このシステムは、2つの小さな単一ファイルVUEコンポーネントを使用して構(gòu)築されており、次のことが必要です。

  • Webpack: Vue CLIを使用している場(chǎng)合は想定されます。
  • svg-inline-loader npm install svg-inline-loader --save-dev 。このローダーは、SVGコードの不要な部分をクリーンアップします。

SVGスプライトコンポーネント( SvgSprite.vue

SVGコードの繰り返しを防ぐために、SVGスプライトを作成します。これは、他のすべてのSVGアイコンを含む隠されたSVGです。アイコンには次のようにアクセスされます<use></use>アイコンのIDを參照するタグ:<svg><use xlink:href="#rocket"></use></svg> 。 SvgSpriteコンポーネントはこれを?qū)g裝しています。

<template>
  <svg height="0" style="display: none;" v-html="$options.svgSprite" width="0"></svg>
</template>

<script>
const svgContext = require.context(
  '!svg-inline-loader?'  
  'removeTags=true'   // Remove title tags, etc.
  '&removeSVGTagAttrs=true'   // Remove attributes
  '&removingTagAttrs=fill'   // Remove fill attributes
  '!@/assets/icons', // Icon directory
  true, // Search subdirectories
  /\w \.svg$/i // Only include SVG files
);

const symbols = svgContext.keys().map(path => {
  const id = path.replace(/^\.\/(.*)\.\w $/, '$1'); // Extract ID from filename
  const content = svgContext(path); // Get SVG content
  return content.replace('<svg', `<symbol id="${id}"`).replace('svg>', 'symbol>'); // Convert to symbol
});

export default {
  name: 'SvgSprite',
  svgSprite: symbols.join('\n'), // Concatenate symbols
};
</script>

テンプレートには非表示が含まれています<svg></svg>コンテンツが$options.svgSpriteで動(dòng)的に生成される要素。スクリプトはsvg-inline-loaderを使用してsvgsを使用してrequire.contextを使用してSVGを処理し、不要なタグと屬性を削除します。次に、各SVGをaに変換します<symbol></symbol>要素、一意のIDを追加します。

このコンポーネントをApp.vueファイルの上部に配置します。

アイコンコンポーネント( SvgIcon.vue

SvgIconコンポーネントは、を使用してよりシンプルです<use></use>スプライトからアイコンを參照するタグ:

<template>
  <svg class="icon" :class="{ 'icon-spin': spin }">
    <use :xlink:href="`#${icon}`"></use>
  </svg>
</template>

<script>
export default {
  name: 'SvgIcon',
  props: {
    icon: { type: String, required: true },
    spin: { type: Boolean, default: false },
  },
};
</script>

<style scoped>
svg.icon {
  fill: currentColor;
  height: 1em;
  margin-bottom: 0.125em;
  vertical-align: middle;
  width: 1em;
}
svg.icon-spin {
  animation: icon-spin 2s infinite linear;
}
@keyframes icon-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(359deg); }
}
</style>

CSSはアイコンをスタイリングしてアイコンフォントのように動(dòng)作し、簡(jiǎn)単な色とサイズの調(diào)整を可能にします。 spinプロップがアニメーションを追加します。

このコンポーネントをmain.jsに登録します。

 「Vue」からVueを輸入する
'@/components/svgicon.vue'からsvgiconをインポート
vue.comPonent( 'svg-icon'、svgicon)

このシステムは、Vue.jsアプリケーションでSVGアイコンを管理するためのクリーンで効率的で簡(jiǎn)単に保守可能なソリューションを提供します。さらなる改善には、非二乗アスペクト比の処理と、より広いフレームワーク/ビルドツールの互換性が含まれます。

以上がVUE用のフォントのようなSVGアイコンシステムの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

「レンダリングブロッキングCSS」とは何ですか? 「レンダリングブロッキングCSS」とは何ですか? Jun 24, 2025 am 12:42 AM

ブラウザは、特にインポートされたスタイルシート、ヘッダーのインラインCSS、および最適化されていないメディアクエリスタイルを使用して、ブラウザがインラインおよび外部CSSをデフォルトで主要なリソースとして表示するため、ページレンダリングをブロックします。 1.重要なCSSを抽出し、HTMLに埋め込みます。 2。JavaScriptを介して非クリティカルなCSSの読み込みを遅らせる。 3.メディア屬性を使用して、印刷スタイルなどのロードを最適化します。 4.リクエストを減らすためにCSSを圧縮およびマージします。ツールを使用してキーCSSを抽出し、REL = "Preload"非同期負(fù)荷を組み合わせ、過(guò)度の分割と複雑なスクリプト制御を避けるためにメディア遅延荷重を合理的に使用することをお?jiǎng)幛幛筏蓼埂?/p>

Figmaでロットを使用する方法 Figmaでロットを使用する方法 Jun 14, 2025 am 10:17 AM

次のチュートリアルでは、FigmaでLottieアニメーションを作成する方法を紹介します。 2つのカラフルなデザインを使用して、Figmaでアニメーション化する方法を説明し、FigmaからL(zhǎng)ottie Animationsに移行する方法を示します。必要なのは無(wú)料の図だけです

境界の破壊:(s)CSSでタングラムパズルを構(gòu)築します 境界の破壊:(s)CSSでタングラムパズルを構(gòu)築します Jun 13, 2025 am 11:33 AM

少なくとも低レベルのロジックとパズルの動(dòng)作に関しては、SASSがJavaScriptを置き換えることができることが判明しました。マップ、ミックス、機(jī)能、そしてたくさんの數(shù)學(xué)だけで、私たちはタングラムのパズルを生き生きとさせることができました。

外部対內(nèi)部CSS:最良のアプローチは何ですか? 外部対內(nèi)部CSS:最良のアプローチは何ですか? Jun 20, 2025 am 12:45 AM

TheBestAppRoachforCSDependsonTheProject'sSpecificNeeds.forLargerProjects、externalCssissisbetterduetoMaintainasiladability; forsmallerProjectsOrsingLe-PageApplications、internalcsSmightBemoresuitable.it

私のCSSは小文字でなければなりませんか? 私のCSSは小文字でなければなりませんか? Jun 19, 2025 am 12:29 AM

いいえ、CSSDOESNOTHAVETOBEINLOWERCASE。

CSSケース感度:重要なことを理解する CSSケース感度:重要なことを理解する Jun 20, 2025 am 12:09 AM

cssismostlycase-inssensitive、buturlsandfontfamilynamesarecase-sensitive.1)propertiesandvalueslikecolor:red; areotcase-sensitive.2)urlsmustmatchtheserver'scase、例えば、/畫(huà)像/logo.png.3)

Autoprefixerとは何ですか?それはどのように機(jī)能しますか? Autoprefixerとは何ですか?それはどのように機(jī)能しますか? Jul 02, 2025 am 01:15 AM

Autoprefixerは、ターゲットブラウザスコープに基づいてCSS屬性にベンダープレフィックスを自動(dòng)的に追加するツールです。 1.エラーで接頭辭を手動(dòng)で維持する問(wèn)題を解決します。 2. PostCSSプラグインフォーム、CSSを解析し、プレフィックスする必要がある屬性を分析し、構(gòu)成に従ってコードを生成する屬性を分析します。 3.使用手順には、プラグインのインストール、ブラウザーリストの設(shè)定、ビルドプロセスでそれらを有効にすることが含まれます。 4。メモには、接頭辭を手動(dòng)で追加しない、構(gòu)成の更新を保持すること、すべての屬性ではなくプレフィックスを維持することが含まれ、プリ??プロセッサでそれらを使用することをお?jiǎng)幛幛筏蓼埂?/p>

CSSカウンターとは何ですか? CSSカウンターとは何ですか? Jun 19, 2025 am 12:34 AM

csScountersCantAnationally-bersectionSandLists.1)usecounter-resettoinitialize、counter-incrementtoincrease、andcounter()orcounters()todisplayvalues.2)を組み合わせたjavascriptfordynamiccontenttoensureaCurateupdatesと組み合わせます。

See all articles