SVGを使用してファビコンにロゴを追加する方法の詳細な説明
SVG を使用してロゴをファビコンに追加するにはどうすればよいですか?以下の記事ではSVGを使ってロゴ入りファビコンを生成する方法をご紹介しますので、ご参考になれば幸いです。
以前、アドレスに応じて異なるアイコンを生成できる Chrome プラグインを作成しました。これにより、異なる開発環境を簡単に区別できます。効果は次のとおりです。
主な実装プロセスは実際には複雑ではなく、まず Web サイトのファビコンを取得し、そのファビコンにロゴを追加し、再描画して生成します。
このうち、ここのアイコンはSVGで生成されているので、具体的な実装を見てみましょう。 [推奨学習: css ビデオ チュートリアル
]取得方法を知りたい場合は、まずは設定方法を理解することができます。
通常、Web サイトのfavicon
を設定するには 2 つの方法があります。最初のタグは
link
rel="icon" 属性が必要です)
<link>
2 つ目のタグは直接に設定されます
Web サイトのルート ディレクトリ #favicon.ico (ブラウザのデフォルトではこの名前でなければなりません) を入力します。html- 网站目录
index.html
favicon.ico
を通じて取得します。 link (
rel に限ります) icon
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">const link = document.querySelector('link[rel~="icon"]');</pre><div class="contentsignin">ログイン後にコピー</div></div>
を含めるだけです。見つからない場合は、/favicon.ico# をリクエストできます。 ## そして、ここに
link
function getLink(){ const link = document.querySelector('link[rel~="icon"]'); if (link) { return link } else { const link = document.createElement('link'); link.rel = "icon"; link.href = "/favicon.ico" document.head.append(link); return link } }
この方法で取得された
link は存在することが保証されており、描画されます
2. キャンバスを使用して描画します
const canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
SVGを使用してファビコンにロゴを追加する方法の詳細な説明 = new Image();
SVGを使用してファビコンにロゴを追加する方法の詳細な説明.crossOrigin = 'anonymous';
SVGを使用してファビコンにロゴを追加する方法の詳細な説明.onload = () => {
canvas.height = SVGを使用してファビコンにロゴを追加する方法の詳細な説明.height;
canvas.width = SVGを使用してファビコンにロゴを追加する方法の詳細な説明.width;
ctx.drawImage(SVGを使用してファビコンにロゴを追加する方法の詳細な説明, 0, 0, canvas.width, canvas.height);
let dataURL = canvas.toDataURL("image/png");
resolve(dataURL);
canvas = null;
};
SVGを使用してファビコンにロゴを追加する方法の詳細な説明.src = url;
ログイン後にコピー
/favicon.ico
には設定がないため、SVGを使用してファビコンにロゴを追加する方法の詳細な説明の読み込みに失敗した場合にデフォルトの画像を与える必要があります
const canvas = document.createElement('canvas'), ctx = canvas.getContext('2d'), SVGを使用してファビコンにロゴを追加する方法の詳細な説明 = new Image(); SVGを使用してファビコンにロゴを追加する方法の詳細な説明.crossOrigin = 'anonymous'; SVGを使用してファビコンにロゴを追加する方法の詳細な説明.onload = () => { canvas.height = SVGを使用してファビコンにロゴを追加する方法の詳細な説明.height; canvas.width = SVGを使用してファビコンにロゴを追加する方法の詳細な説明.width; ctx.drawImage(SVGを使用してファビコンにロゴを追加する方法の詳細な説明, 0, 0, canvas.width, canvas.height); let dataURL = canvas.toDataURL("image/png"); resolve(dataURL); canvas = null; }; SVGを使用してファビコンにロゴを追加する方法の詳細な説明.src = url;
SVGを使用してファビコンにロゴを追加する方法の詳細な説明.onerror = () => { resolve("默认图base64"); }
3. 画像合成にはSVGを使用します
#まず、このようなレイアウトは通常の Web 開発と同様に HTML で自由に描画できます。難しいことではないと思います
#<strong>local</strong> <svg> </svg>
- 幅に制限があるため、非表示を超えてテキストを強制的に折り返す必要があります。キーのスタイルは次のとおりです。
-
strong{ position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); text-transform: uppercase; background-color: orange; color: #fff; padding: 0px 2px; border-radius: 2px; font-size: 12px; box-sizing: border-box; max-width: 100%; width: max-content; height: 16px; line-height: 16px; word-break: break-all; overflow: hidden; }
ログイン後にコピー次に、この HTML 部分を
foreignObject タグforeignObjectの役割については、Zhang Xinxu氏によるSVGの紹介とスクリーンショットの記事を参照してください。ここでは、HTMLタグを含めることができ、SVG自体も同様であることを簡単に理解できます。これで画像合成の目的は達成されました
const link = getLink(); const icon = await SVGを使用してファビコンにロゴを追加する方法の詳細な説明2Base64(link.href); const favicon = `data:image/svg+xml;charset=utf-8,<svg><foreignobject> <style> html,body{ height: 100%; margin: 0; text-align: center; } SVGを使用してファビコンにロゴを追加する方法の詳細な説明{ display: block; width: 100%; height: 100%; object-fit: contain; } strong{ position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); text-transform: uppercase; background-color: ${color}; color: #fff; padding: 0px 2px; border-radius: 2px; font-size: 12px; box-sizing: border-box; max-width: 100%; width: max-content; height: 16px; line-height: 16px; word-break: break-all; overflow: hidden; } </style> <strong>local</strong> <svg></svg>を使用してファビコンにロゴを追加する方法の詳細な説明> </foreignobject></svg>`.replace(/\n/g, '').replace(/\t/g, '').replace(/#/g, '%23')
SVGを使用してファビコンにロゴを追加する方法の詳細な説明 タグ SVG では、閉じた形式
を使用してファビコンにロゴを追加する方法の詳細な説明> で記述する必要があります。そうしないと、構造エラーとみなされます
SVGを使用してファビコンにロゴを追加する方法の詳細な説明 Base64 などのインライン画像のみを使用できるため、元のファビコンが描画されます
インライン SVG を使用する場合は、文字列内の svg- をエスケープする必要があります。一重引用符と二重引用符の問題にも注意する必要があります。
次に、次のように設定します。生成された SVG をファビコン
link.href= favicon;
完全な実装については、プロジェクトを参照してください: https:// github.com/XboxYan/auto-dev-favicon-chrome-plugin
四、一些局限性
首先是兼容性。
目前只有 Chrome 和 Firefox 是支持的,为了兼容其他浏览器,可以用一个 .ico
来兜底
<link> <link>
另外,在 Chrome 上还有一个限制(不知道是不是Chrome 更新后的限制),当 favicon 使用 svg 格式图片时,此时的 svg 会处于一种secure-static-mode,在这种模式下,所有动画都不会执行,会处于第一帧,比如下面这个例子
<svg> <foreignobject> <style> html,body{ margin: 0; height: 100% } div{ height: 100%; background: pink; animation: hue 3s infinite; } @keyframes hue { to { filter: hue-rotate(360deg) } } </style> <div></div> </foreignobject> </svg>
很简单的一个背景颜色动画。在 Firefox 上是用作 favicon 是有动画的
但是,Chrome 上却不行,只有禁止的第一帧
所以之前想实现标识文本滚动的效果可以就此打住了
比较类似的还有媒体查询,之前在网上看到有这样的实现,直接在 SVG 中实现黑暗模式
<svg> <style> path { fill: #fff; } rect { fill: #B09AFE; } @media (prefers-color-scheme: dark) { path { fill: #B09AFE; } rect { fill: #fff; } } </style> <rect></rect> <path></path> </svg>
但是也是同样的问题,只有 Firefox 下可行,Chrome是静止不动的
总的来说,SVG 在绘制方面提供了无限可能,不仅仅是本文中的案例,觉得 canvas 过于复杂的都可以考虑这一方案
(学习视频分享:web前端)
以上がSVGを使用してファビコンにロゴを追加する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

ブートストラップスプリットラインを作成するには2つの方法があります。タグを使用して、水平方向のスプリットラインを作成します。 CSS Borderプロパティを使用して、カスタムスタイルのスプリットラインを作成します。

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

Bootstrapフレームワークをセットアップするには、次の手順に従う必要があります。1。CDNを介してブートストラップファイルを参照してください。 2。独自のサーバーでファイルをダウンロードしてホストします。 3。HTMLにブートストラップファイルを含めます。 4.必要に応じてSASS/LESSをコンパイルします。 5。カスタムファイルをインポートします(オプション)。セットアップが完了したら、Bootstrapのグリッドシステム、コンポーネント、スタイルを使用して、レスポンシブWebサイトとアプリケーションを作成できます。

ブートストラップに画像を挿入する方法はいくつかあります。HTMLIMGタグを使用して、画像を直接挿入します。ブートストラップ画像コンポーネントを使用すると、レスポンシブ画像とより多くのスタイルを提供できます。画像サイズを設定し、IMG-Fluidクラスを使用して画像を適応可能にします。 IMGボーダークラスを使用して、境界線を設定します。丸い角を設定し、IMGラウンドクラスを使用します。影を設定し、影のクラスを使用します。 CSSスタイルを使用して、画像をサイズ変更して配置します。背景画像を使用して、背景イメージCSSプロパティを使用します。

ブートストラップボタンの使用方法は?ブートストラップCSSを導入してボタン要素を作成し、ブートストラップボタンクラスを追加してボタンテキストを追加します
