モバイルデバイス上のぼやけた小さなアイコンの問題を解決する方法

モバイルデバイス上のぼやけた小さなアイコンの問題を解決する方法

序文

以前、画像とテキストの垂直方向のずれの問題について説明しました。ここで示した小さな例では、小さなアイコンが使用されていました。この小さなアイコンを表示するために背景画像を使用しました。

.del .icon{ 表示: インラインブロック; 幅: 20px; 高さ: 25px; 右余白: 5px; 
垂直位置合わせ: 中央; 背景: url("imgs/delete.png") 繰り返しなし 中央; 背景サイズ: 100%;}

delete.png アイコンの実際のサイズは 20 ピクセルで、PC 上では正常に表示されます。

しかし、それを携帯電話に置いたら、おっと!アイコンがぼやけているのはなぜですか? !

画像が十分に鮮明ではないので、アイコンをもっと大きくして、サイズを 2 倍にして 40 ピクセルにしてください。

何?まだ少しぼやけていますか?

じゃあもう少し大きくして…疲れた?もっと良い解決策はないでしょうか?答えはもちろんイエスです!

ベクター画像を使用して配置します。つまり、SVG が役立ちます。

もちろん、この記事では SVG の具体的な構文については詳しく説明しません。ここでは、上記の例で PNG ビットマップを SVG ベクター画像に直接変換する方法を簡単に説明します。

1.クリックしてIcoMoonに入り、キーワードdeleteを検索します。

2. 削除アイコンを選択します

3. 左下のボタンをクリックして新しいページに切り替えます

4. この時点で、アイコンの下の「コードを取得」というテキストをクリックすると、ダイアログボックスがポップアップ表示されます。

ダイアログボックス

5. まず、シンボル定義コードを取り出して、本文の最前面の div に配置し、div を非表示に設定します。次に、HTML 部分 (SVG) を取り出して、元の PNG アイコンを置き換えます。最後に、CSS 部分 (サイズなど、必要に応じて若干の変更を加える) を取り出して、スタイルシートに配置します。

<!--HTML セクション-->
<本文>
    <div style="display: none;">
        <!-- オンデマンドで使用できる SVG ライブラリとして -->
        <svg>
            <シンボル id="アイコンビン" ビューボックス="0 0 32 32">
                <title>ビン</title>
                <path d="M4 10v20c0 1.1 0.9 2 2 2h18c1.1 0 2-0.9 2-2v-20h-22zM10 28h-2v-14h2v14zM14 28h-2v-14h2v14zM18 28h-2v-14h2v14zM22 28h-2v-14h2v14z"></path>
                <path d="M26.5 4h-6.5v-2.5c0-0.825-0.675-1.5-1.5-1.5h-7c-0.825 0-1.5 0.675-1.5 1.5v2.5h-6.5c-0.825 0-1.5 0.675-1.5 1.5v2.5h26v-2.5c0-0.825-0.675-1.5-1.5zM18 4h-6v-1.975h6v1.975z"></path>
            </シンボル>
        </svg>
    </div>
    <div class="del"><svg class="icon icon-bin"><use xlink:href="#icon-bin"></use></svg><!--必要に応じてアイコン ID に応じてここを呼び出します--><span>削除</span></div>
</本文>
/*CSS部分*/
.del{ フォントサイズ: 20px;}
.del .icon{ 表示: インラインブロック; 幅: 20px; 高さ: 25px; 右余白: 5px; 垂直位置揃え: 中央; 塗りつぶし: 現在の色;}
.del span{ 垂直位置揃え: 中央;}

上記ではCSSの部分については説明しませんので、ここではHTMLの部分について簡単に説明します。

上記の SVG の隠れた部分は、SVG ライブラリと見なすことができます。ページに必要なすべての SVG アイコンをその中に配置できます。各シンボルは SVG アイコンを表し、アイコンを使用する必要がある場所で xlink:href を介して ID に従って呼び出します。専門用語は SVG スプライトで、CSS スプライトよりもはるかに便利です。最も重要なことは、それがベクター画像であり、ズームインまたはズームアウトしても歪まないことです。

例を挙げてみましょう~~

上記のアイコンを「×」に変更する必要があるが、以前のアイコンをバックアップとして保持したい場合はどうすればよいですか?

とても簡単です。次のように、「SVG ライブラリ」に「×」の SVG コードを追加するだけです。

<div style="display: none;">
    <!-- オンデマンドで使用できる SVG ライブラリとして -->
    <svg>
        <シンボル id="アイコンビン" ビューボックス="0 0 32 32">
            <title>ビン</title>
            <path d="M4 10v20c0 1.1 0.9 2 2 2h18c1.1 0 2-0.9 2-2v-20h-22zM10 28h-2v-14h2v14zM14 28h-2v-14h2v14zM18 28h-2v-14h2v14zM22 28h-2v-14h2v14z"></path>
            <path d="M26.5 4h-6.5v-2.5c0-0.825-0.675-1.5-1.5-1.5h-7c-0.825 0-1.5 0.675-1.5 1.5v2.5h-6.5c-0.825 0-1.5 0.675-1.5 1.5v2.5h26v-2.5c0-0.825-0.675-1.5-1.5zM18 4h-6v-1.975h6v1.975z"></path>
        </シンボル>
        <!--新しいアイコンを追加-->
        <シンボル id="アイコンクロス" viewBox="0 0 32 32">
            <title>十字架</title>
            <PATH D = "M31.708 25.708C-0-0-0-0-0L-9.708-9.708 9.708-9.708C0-0 0-0 0.105-0.105 0.18-0.227 0.229-0.357 86-4.586C-0.286-0.286-0.702-0.361-1.057-0.229-0.13 0.048-0.252 0.124-0.357 0.228 0 0-0 0-0 0L-9.708 104-0.227-0.18-0.357-0.228-0.356-0.133-0.771-0.057-1.057 0.229L-4.586 4.586C-0.286 0.286-0.361 0.702-0.229 1.057 0.220.229 1.057 0.220.229 1.057 0.22 0.057 0.220.229 0.22 0.049 0.22 0.2249024 0.2249 0.220 0.25 0.2249 0.220.220 0.25 0 0 0 0 0L9.708 9.708-9.708 9.708C-0 0-0 0-0-0.104 0.105-0.18 0.227-0.229 0.357-0.133 0.3555-0.057 0.771 0.229 1.057L4.586 4.586 0.586 0.586 0.586 0.586 0.586 0.586 0.586 0.586 0.58 229 0.13-0.049 0.252-0.124 0.357-0.229 0-0 0-0 0-0L9.708-9.708 9.708 9.708C0 0 0 0 0 0 0 0.105 0.105 0.227 0.18 0.357 0.229 0.356 0.133 0.771 0.771 0.771 0.771 0.771 0.771 0.771.057 586C0.286-0.286 0.362-0.702 0.229-1.057-0.049-0.13-0.124-0.252-0.229-0.357Z "> </path>
        </シンボル>
    </svg>
</div>
<div class="del"><svg class="icon icon-bin"><use xlink:href="#icon-cross"><!--ここで ID 名が変更されていることに注意してください--></use></svg><span>削除</span></div>

するとこのようになり、置換は成功です!

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

<<:  MySQLソースコマンドの使い方の紹介

>>:  DockerでLinuxシェルコマンドを実行する方法

推薦する

シンプルな CSS テキストアニメーション効果

成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...

startup.bat をダブルクリックすると Tomcat がクラッシュする問題の解決方法の詳細な説明

Tomcat を学習したばかりのプログラマーにとって、これはよくある間違いです。 1. 環境変数の問...

ReactとAntdのFormコンポーネントを組み合わせてログイン機能を実装する方法を詳しく説明します

目次1. ReactとAntdを組み合わせてログイン機能を実現2. ReactとAntdを組み合わせ...

NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします

設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...

Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明

esインストール docker pull elasticsearch:7.4.0 # -d : バッ...

HTML のキャンバスに基づくスクリーンショットのデモ

冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...

MySQL アーキテクチャのナレッジポイントの概要

1. データベースとデータベースインスタンスMySQL の研究では、データベースとデータベース イン...

NodeJs の高メモリ使用量のトラブルシューティング実戦記録

序文これは、オンライン コンテナーの拡張によって発生した調査です。最終的には、実際の OOM が原因...

MySQL の文字セットの不一致によって発生する異常な接続テーブルの解決方法

目次1. 解決策2. MySQLの文字セット文字セット検証ルール次のように簡単なテーブルクエリを実行...

dockerコンテナは直接実行され、pingを介してパブリックIP操作を取得します。

コンテナを通じてローカル パブリック IP アドレスを取得します。ローカル IP アドレスを使用して...

Linux で大きなファイルの指定された内容を見つける方法

大きなことも小さなことも考えて、方向転換しましょう。 Linux では非常に大きなファイルに遭遇する...

おすすめの無料英語手書きフォント20選

Jellyka Beesアンティーク手書き [ank]* ジェリーカ・カティカップケーキ LHF ジ...

ネイティブJSを使用した遅延読み込みlazyLoadの3つの方法の概要

目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...

MLSQL スタックでストリームのデバッグを簡単にする方法

序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...

Dockerは指定されたメモリで操作を実行します

次のように: -m, --memory メモリ制限。形式は数値と単位です。単位は b、k、m、g の...