亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

あなたのための SVG ハック

Dec 25, 2024 am 01:28 AM

私は Bytes #293 の主な HTML に興味を持ちました。彼らの動(dòng)機(jī)は、State of HTML 2023 の調(diào)査 (そしてお金...ただし、スポンサー付きのセクションはメール送信から離れましょう) から來ています。

のようです。これらの要素は、日常業(yè)務(wù)における顕著な問題點(diǎn)です。 「コンテンツセクション」に持ってきました

SVG hacks for you

エントリーポイント

このことにまったく慣れていない場合は、最初にたくさんのリンクを用意してお手伝いします。その後は何も変わりませんが、svg についてさらに詳しく知ることができます
 ̄_(ツ)_/ ̄

  • https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web
  • https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/ Introduction
  • MDN の SVG チュートリアル: https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Getting_Started

TL;DR

SVG 要素はベクター グラフィック要素です。これは、文字で表現(xiàn)された幾何學(xué)図形の集まりとして理解できます。たとえば、無料の代替手段として Adob??e Illustrator または Inkscape を使用して作成できます。

出発點(diǎn)

人々の回答から、いくつかのパターンがわかります。特定のものは選びませんが、これらのトピックに関するいくつかの知識(shí)を共有しようとします。そのため、このトピックに関するいくつかのヒントとコツ、経験の共有、その他の一般的な知識(shí)をここで見つけることができます。

この例のような SVG スプライトのトピックは省略します。これは別のトピックであり、svg タグとはあまり関係ありません。それらのまれな使用例がまだいくつか見つかる可能性があることに同意します。

ファイルの構(gòu)文

適切な SVG ファイルは、前述の幾何學(xué)的図形を表現(xiàn)したものである必要があります。私たちのアイコンがデザイナーやウェブサイトによって適切な形式で準(zhǔn)備されているかどうかを確認(rèn)するのは非常に簡単です。

間違った例:

<svg ...><image link:href="data:image/png;base64 .../>

予想される構(gòu)文:

<svg><g><path r=""/><circle /></g></svg>

私はこれまでのキャリアの中で、何度かこの問題に足を踏み入れました。それを覚えておく価値はあります。この問題は、ラスター グラフィックスを取得し、ベクター グラフィックス プログラムにインポートし、拡張子 .svg でエクスポートしようとすると発生します。畫像を魔法のようにベクター グラフィックに変換するわけではありません。

注目のSVGタグ

ほとんどの一般的な SVG 要素のチートシートを提示できます。

Tag Description Animated attributes
used for grouping elements -
main tag for your actual icon. Avoid modifying the d="" attribute on your own ? It is possible but be careful with that. Grab a link with an explanation for each character group. To animate your path use animateMotion tag -
Basic rectangle shape in SVG. Simple as that ?
Simple as that. The line between two points. Don't mistake with the stroke attribute! It can also be used on the line tag. ?
You can think about it as an enhancement version of the g tag but it keeps the elements inside invisible for later use with, let's guess it... use tag -
Next basic shape. Be careful as the size is defined by radius and you position your circle with cx and cy attributes. ?
Let's call it a custom shape. They are connected straight lines where the last point connects to the first point. ?
Very similar to the previous one but with a notable difference. The last point doesn't need to be connected to the first point. ?

これらは選択された SVG 要素のほんの一部であることに注意してください。最も一般的なものについて説明しました。他にもたくさんご利用いただけます。完全なリストはここでご覧いただけます。

サイズと位置

一般的な svg タグのいくつかに慣れてきたので、アイコンの基本パラメータを変更する次の段落に進(jìn)むことができます。

若いデザイナーと仕事をしているとしましょう。彼/彼女は、あなたと同じように、Web 用に準(zhǔn)備する方法をまだ完全には知りません。その結(jié)果、アイコンのサイズがわずかに異なり、側(cè)面のカットされたパディングが欠けている場合があります。

good one wrong one
SVG hacks for you SVG hacks for you

クラシックなケース。デザイナーと簡単に電話してこれを明確にする必要があることはわかっていますが、ここでは SVG について學(xué)びたいと思います。このシナリオではそれは行いません。自分たちで直すことができます。

コードの観點(diǎn)から見ると、すべては屬性に関するものです。元の SVG クロス ファイルは次のようになります:

<svg ...><image link:href="data:image/png;base64 .../>

結(jié)果:

SVG hacks for you

ほぼ私たちが望んでいたものです!最初のアイコンのようにパディングを保持する方法をさらに詳しく見てみましょう。

選択肢は 2 つあります。同じ viewBox 値を維持することも、ネストされたタグごとに幅、高さ、x、y の値をそれぞれ調(diào)整することもできます。

最初のオプションは単純そうに見え、非常にうまく機(jī)能しますが、落とし穴があるかもしれません。私の場合、グループタグにこの奇妙なtransform屬性がありました。

<svg><g><path r=""/><circle /></g></svg>

アイコンのサイズが調(diào)整できるようになりました。ベクター グラフィックスであるため、サイズ変更後にアイコンの品質(zhì)が失われることはないことに注意してください。

では、なぜ viewBox がそれほど重要なのでしょうか?

アイコンを正しく拡大縮小したり、特定の位置に設(shè)定したりする場合に重要です。 4 つの引數(shù) viewBox="min-x min-y width height" があります。

たとえば、viewBox="0 0 100 100" は、左上隅が (0, 0) にあり、viewBox の幅が 100 単位、高さが 100 単位であることを意味します。

つまり、viewBox を変更した後でアイコンの x 屬性と y 屬性を調(diào)整する必要があることを意味します。これらの屬性は値に従って設(shè)定されるためです。

色と塗りつぶしの管理

アイコンごとに異なる塗りつぶしが可能です。もちろん、カラー スタイルを追加するのと同じくらい簡単な場合もありますが、これは初心者レベルのコードです。

実際の開発者は、fill-rule="evenodd" をメイン要素に追加し、他のすべての手動(dòng)の?? fill 屬性をタグから削除しています?

なぜなのか不思議に思うかもしれません。

これに対して可能な限り短い回答を差し上げます。 IDE から直接 1 行のコードでアイコンの色を自由にカスタマイズできます。

どうしてそんなことが可能なのか、あなたは尋ねるかもしれません。

會(huì)社のデザイン システムから単純なアイコンを扱っている場合は、アイコンを 1 つだけインポートできるはずです。サイズや色の修飾子や重複は必要ありません。

コードの観點(diǎn)から見ると、例えば color 屬性で通常行うのと同じように、svg 要素に fill を追加するだけです。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   width="93.582886"
   height="93.582893"
   viewBox="0 0 24.760471 24.760474"
   version="1.1"
  >



<p>This is our raw svg exported from Inkscape. There are a few other things to fix, bear with me so we can fix them.</p>

<p>We know that 200px image is our goal. Here we have some ugly width/height values on the main svg tag.</p>

<p>Simply:<br>
</p>

<pre class="brush:php;toolbar:false"><svg
-   width="93.582886"
+   width="200"
-   height="93.582893"
+   height="200"

ポリゴンまたはパスを描畫するときに適用される偶數(shù)値には注意が必要です。交差するパスセグメントの內(nèi)側(cè)のみを塗りつぶします。

問題が発生した場合に備えて、この例を分析することを検討してください。

SVG hacks for you

十字アイコンの場合、次のような結(jié)果になります:

SVG hacks for you

最適化

アイコンを Web に公開する前 (または Figma からダウンロードした直後) が適切に最適化されていることを確認(rèn)する必要があります。これは非常に重要です。この最後のマイルのコードレビュー中に、私は何度も引っかかったり、引っかかったりしてきました。

SVGO (または React の場合は SVGR) を使用すると、プロセスが非常に簡単になります。舞臺(tái)裏で、ほとんどの場合、不要なものはすべて削除されます。

一般に、これは頼りになるツールです。バンドラーと統(tǒng)合するか、CLI から使用します。デフォルトのプリセットがすぐに構(gòu)成されているため、インストール後すぐに使用できます。

注: 本當(dāng)に必要な場合は、デフォルトのプリセットを上書きできます。プロジェクトの README で構(gòu)成を確認(rèn)し、ドキュメントでプラグインのリストを確認(rèn)してください

結(jié)果

最終的なアイコン コードは次のようになります:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><g fill-rule="evenodd"><path d= 「M9 24h32v3H9z」



<p>インクスペースからエクスポートされた生のアイコンのサイズは 871 バイトからわずか 322 バイトに削減されました。</p>

<h2>
  
  
  アニメーションによる痛み
</h2>

<p>私にとってほろ苦い最後の話題です。アンケート回答にも何度か持ち込まれました。 Lottie を使用するか、CSS で SVG の要素を手動(dòng)でアニメーション化する以外に、これより良い方法はわかりません。 2 番目のオプションは、アニメーション化する要素が 5 つ以上ある場合の絶対的な拷問です。</p>

<p>もちろん、それは可能であり、私たちもそれを行うことができますが、正直に言うと、もっと興味深いことがたくさんあります?</p>

<p>まだその方法に興味があるとします。素晴らしい記事へのリンクをここに殘しておきます。忍耐が必要であり、5 分以上かかることが理解できるはずです。 AI ボットがそれを助けてくれるのではないでしょうか。そうであれば、痛みは少し軽減されるかもしれません。</p>

<p>今回はここまでです。<br>
この投稿から何かを得て、良い一日をお過ごしいただければ幸いです?</p>


          

            
        

以上があなたのための SVG ハックの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

node.jsでHTTPリクエストを作成する方法は? node.jsでHTTPリクエストを作成する方法は? Jul 13, 2025 am 02:18 AM

node.jsでHTTPリクエストを開始するには、組み込みモジュール、axios、およびnode-fetchを使用する3つの一般的な方法があります。 1.依存関係のない內(nèi)蔵http/httpsモジュールを使用します。これは基本的なシナリオに適していますが、https.get()を使用してデータを取得したり、.write()を介してPOSTリクエストを送信するなど、データステッチとエラーモニタリングの手動(dòng)処理が必要です。 2.Axiosは、約束に基づいたサードパーティライブラリです。簡潔な構(gòu)文と強(qiáng)力な機(jī)能を備えており、非同期/待ち聲、自動(dòng)JSON変換、インターセプターなどをサポートします。非同期リクエスト操作を簡素化することをお?jiǎng)幛幛筏蓼埂?3.Node-Fetchは、約束と単純な構(gòu)文に基づいて、ブラウザフェッチに似たスタイルを提供します

JavaScriptデータ型:プリミティブ対參照 JavaScriptデータ型:プリミティブ対參照 Jul 13, 2025 am 02:43 AM

JavaScriptデータ型は、プリミティブタイプと參照タイプに分割されます。プリミティブタイプには、文字列、數(shù)字、ブール、ヌル、未定義、シンボルが含まれます。値は不変であり、コピーは値を割り當(dāng)てるときにコピーされるため、互いに影響を與えません。オブジェクト、配列、関數(shù)などの參照タイプはメモリアドレスを保存し、同じオブジェクトを指す変數(shù)は互いに影響します。 TypeofとInstanceOFを使用してタイプを決定できますが、TypeOfNullの歴史的な問題に注意してください。これらの2種類の違いを理解することは、より安定した信頼性の高いコードを書くのに役立ちます。

React vs Angular vs Vue:どのJSフレームワークが最適ですか? React vs Angular vs Vue:どのJSフレームワークが最適ですか? Jul 05, 2025 am 02:24 AM

どのJavaScriptフレームワークが最良の選択ですか?答えは、あなたのニーズに応じて最も適切なものを選択することです。 1.反応は柔軟で無料で、高いカスタマイズとチームアーキテクチャ機(jī)能を必要とする中規(guī)模および大規(guī)模プロジェクトに適しています。 2。Angularは、エンタープライズレベルのアプリケーションと長期的なメンテナンスに適した完全なソリューションを提供します。 3. Vueは使いやすく、中小規(guī)模のプロジェクトや迅速な発展に適しています。さらに、既存のテクノロジースタック、チームサイズ、プロジェクトのライフサイクル、およびSSRが必要かどうかは、フレームワークを選択する上で重要な要素でもあります。要するに、絶対に最良のフレームワークはありません。最良の選択は、あなたのニーズに合ったものです。

JavaScript Timeオブジェクト、誰かがEACTEXE、Google Chromeなどのより高速なWebサイトを構(gòu)築します。 JavaScript Timeオブジェクト、誰かがEACTEXE、Google Chromeなどのより高速なWebサイトを構(gòu)築します。 Jul 08, 2025 pm 02:27 PM

こんにちは、JavaScript開発者!今週のJavaScriptニュースへようこそ!今週は、DenoとのOracleの商標(biāo)紛爭、新しいJavaScript Timeオブジェクトがブラウザ、Google Chromeアップデート、およびいくつかの強(qiáng)力な開発ツールによってサポートされています。始めましょう! 「JavaScript」の商標(biāo)を登録しようとするDeno Oracleの試みとのOracleの商標(biāo)紛爭は、論爭を引き起こしました。 Node.jsとDenoの作成者であるRyan Dahlは、商標(biāo)をキャンセルするために請(qǐng)願(yuàn)書を提出しました。

ハンドリングの約束:javascriptのチェーン、エラー処理、および約束の組み合わせ ハンドリングの約束:javascriptのチェーン、エラー処理、および約束の組み合わせ Jul 08, 2025 am 02:40 AM

約束は、JavaScriptで非同期操作を処理するためのコアメカニズムです。チェーンコール、エラー処理、コンビナーの理解は、アプリケーションをマスターするための鍵です。 1.チェーンコールは、.then()を通じて新しい約束を返し、非同期プロセスの連結(jié)を?qū)g現(xiàn)します。それぞれ.then()は以前の結(jié)果を受け取り、値または約束を返すことができます。 2。エラー処理は、.catch()を使用して例外をキャッチしてサイレント障害を回避し、キャッチのデフォルト値を返すためにプロセスを継続する必要があります。 3。promise.all()などの組み合わせ(すべての成功後にのみ成功しました)、promise.race()(最初の完了が返されます)、promise.allsettled()(すべての完了を待っています)

キャッシュAPIとは何ですか?また、サービスワーカーでどのように使用されますか? キャッシュAPIとは何ですか?また、サービスワーカーでどのように使用されますか? Jul 08, 2025 am 02:43 AM

Cacheapiは、ブラウザからネットワークリクエストをキャッシュするツールです。これは、ウェブサイトのパフォーマンスとオフラインエクスペリエンスを改善するために、サービスワーカーと併用することがよくあります。 1.開発者は、スクリプト、スタイルシート、寫真などのリソースを手動(dòng)で保存できるようにします。 2。要求に応じてキャッシュ応答と一致させることができます。 3.特定のキャッシュの削除またはキャッシュ全體のクリアをサポートします。 4.フェッチイベントを聞いているサービスワーカーを介して、キャッシュの優(yōu)先順位またはネットワークの優(yōu)先戦略を?qū)g裝できます。 5.オフラインサポート、繰り返しのアクセス速度の高速化、主要なリソースのプリロード、バックグラウンドアップデートコンテンツによく使用されます。 6.それを使用する場合、キャッシュバージョンの制御、ストレージ制限、およびHTTPキャッシングメカニズムとの違いに注意する必要があります。

JavaScriptでのデータ操作のためのArray.Prototypeメソッドを活用します JavaScriptでのデータ操作のためのArray.Prototypeメソッドを活用します Jul 06, 2025 am 02:36 AM

.map()、.filter()、.reduce()などのJavaScriptアレイ內(nèi)蔵メソッドは、データ処理を簡素化できます。 1).map()は、要素を1つに変換して新しい配列を生成するために使用されます。 2).filter()は、條件ごとに要素をフィルタリングするために使用されます。 3).reduce()は、データを単一の値として集約するために使用されます。使用すると誤用を避ける必要があり、その結(jié)果、副作用やパフォーマンスの問題が発生します。

JSラウンドアップ:JavaScriptイベントループに深く潛り込む JSラウンドアップ:JavaScriptイベントループに深く潛り込む Jul 08, 2025 am 02:24 AM

JavaScriptのイベントループは、コールスタック、WebAPIS、およびタスクキューを調(diào)整することにより、非同期操作を管理します。 1.コールスタックは同期コードを?qū)g行し、非同期タスクに遭遇すると、処理のためにWebAPIに引き渡されます。 2。WebAPIがバックグラウンドでタスクを完了した後、コールバックを?qū)潖辘工毳濠`(マクロタスクまたはマイクロタスク)に入れます。 3.イベントループは、コールスタックが空であるかどうかをチェックします??栅螆龊?、コールバックはキューから取り出され、実行のためにコールスタックに押し込まれます。 4.マイクロタスク(Promise.thenなど)は、マクロタスク(SettimeOutなど)より優(yōu)先されます。 5.イベントループを理解するには、メインスレッドのブロックを避け、コード実行順序を最適化するのに役立ちます。

See all articles