[解決済み] 小さなファビコンのために、別の貴重なHTTP-requestを節約する方法は?
質問
HTMLにfavicon.icoのリンクを設定する方法は誰でも知っています。
<link rel="shortcut icon" href="http://hi.org/icon.ico" type="image/x-icon">
しかし、数バイトの小さなアイコンのためだけに さらにもう1つ、スピードが落ちる可能性のあるHTTPリクエスト .
そこで、どうすればあのファビコンを使えるスプライトの一部にできるのだろうかと考えました(例.
background-position=0px -200px;
そのため、サイトを高速化し、貴重な HTTP リクエストを節約するために、ウェブサイトの他の部分で、たとえばロゴの役割を果たします。どうすれば、ロゴや他のアートワークと一緒に、既存のスプライトイメージに入れることができるでしょうか?
解決方法は?
2020年のキラー・ソリューション
なぜなら、ごく最近まで、ほとんどのブラウザは、ファビコンを
.svg
の形式を使用します。
もう、そんなことはないんです。
ご覧ください。 https://caniuse.com/#feat=link-icon-svg
1) ファビコン形式としてSVGを選択する
今現在、2020年6月に、これらのブラウザが扱えるのは SVGファビコン :
- クローム
- ファイアフォックス
- エッジ
- オペラ
- Android版Chrome
- KaiOSブラウザー
注意点 これら ブラウザではまだできません。
- サファリ
- iOSのSafari
- Android版Firefox
とはいえ、上記を踏まえて、今度は SVGファビコン を、それなりの信頼感を持って使うことができます。
2) SVGをデータURLとして提示する
ここでの主な目的は、HTTP Requestsを避けることです。
このページの他のソリューションが言及しているように、これを行うかなりスマートな方法として データURL ではなく HTTP URL .
SVG(特に小さなSVG)には、以下のような特徴があります。 完璧に というのも、後者は単純なプレーンテキスト(潜在的に曖昧な文字はパーセントエンコードされている)であり、前者はXMLであるため、プレーンテキストの長い行として(パーセントコードが散見される)信じられないほど簡単に書き出すことができるのです。
3)その 全体 SVGは1つの絵文字
<ブロッククオートN.B. このステップは任意です。あなたのSVG 可能 は1つの絵文字ですが、もっと複雑なSVGにすることも可能です。
2019年12月に レアンドロ・リナレス は、ChromeがFirefoxに続いてSVGファビコンをサポートしたため、絵文字からファビコンを作成できるかどうか実験する価値があることに最初に気づいた一人です。
https://lean8086.com/articles/using-an-emoji-as-favicon-with-svg/
リナレスの予感は的中した。
数ヶ月後(2020年3月)、コード・パイレートは レア・ヴェロウ が同じことに気づいたのです。
https://twitter.com/leaverou/status/1241619866475474946
そして、ファビコンは二度と同じものではなくなりました。
4) 自分で解決策を実行する。
簡単なSVGを紹介します。
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16">
<text x="0" y="14">????</text>
</svg>
そして以下は、同じSVGを データURL :
data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3E%3Ctext%20x='0'%20y='14'%3E????%3C/text%3E%3C/svg%3E
そして、最後にご紹介するのが、こちら データURL をファビコンにしました。
<link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3E%3Ctext%20x='0'%20y='14'%3E????%3C/text%3E%3C/svg%3E" type="image/svg+xml" />
5) その他のトリック(...これらはあなたの両親のファビコンではありません!)。
FaviconはSVGなので、フィルター効果(SVGとCSSの両方)をいくつでも適用することができます。
例えば ホワイトユニコーンファビコン 上記のように、簡単に ブラックユニコーンファビコン フィルタを適用することで
style="filter: invert(100%);"
ブラックユニコーンファビコン。
<link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3E%3Ctext%20x='0'%20y='14'%20style='filter:%20invert(100%);'%3E????%3C/text%3E%3C/svg%3E" type="image/svg+xml" />
関連
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み] 再描画のためにキャンバスをクリアする方法
-
[解決済み] Webサイトのブラウザタブアイコン(ファビコン)を追加する方法を教えてください。
-
[解決済み] アンカー(リンク)の下線を消すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vue+ElementUIによる大規模なフォームの処理例
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】ローカルファイルを開くことができません - Chrome: ローカルリソースの読み込みが許可されていない
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み] Web API エラー - このリクエストはブロックされました; コンテンツは HTTPS で提供されなければなりません
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法