目次
ステップ0:忍耐と空間
ステップ1:基本的な画像を所定の位置に取得します
ステップ2:画像を歪めます
ステップ3:テキストをクリップします
ステップ4:完全な画像を明らかにします
ステップ5:テキストを配置します…もう一度
ステップ6:テキストの暗い端を作成します
ステップ7:ライトエッジをしましょう
ステップ8:エッジを結合します
ステップ9:はい、ベベル
ステップ10:今すぐ一緒に!
ホームページ ウェブフロントエンド CSSチュートリアル SVGでリアルなガラス効果を発揮します

SVGでリアルなガラス効果を発揮します

Apr 18, 2025 am 10:01 AM

SVGでリアルなガラス効果を発揮します

私はSVGが大好きです。確かに、コードは最初は密で困難に見えることがありますが、それを知ると結果の美しさがわかります。ボーナスは、これらの結果がコードにあるため、CMSに接続できることです。デザイナーは、サイト上のすべての記事や製品の効果を再現する必要がないことを簡単に休めることができます。

今日は、このガラスのテキスト効果をどのように思いついたのかをお見せしたいと思います。

ステップ0:忍耐と空間

SVGは、特にあなたがそれを学び始めたばかりのときに、多くのことを引き受けることができます(そして、もしあなたがいるなら、クリスの本は始めるのに良い場所です)。それは実質的にまったく新しい言語であり、特にデザインのチョップを欠いている人にとっては、知っておくべき多くの新しいテクニックと考慮事項があります。ただし、HTMLと同様に、SVGを把握しやすくするために手を伸ばすことができる少数のツールがあることがわかります。

また、自分にスペースを与えてください。文字通り。 SVGコードは密集しているため、2つまたは3つの新しい行を使用して物事をスペースアウトするのが好きです。これにより、コードが読みやすくなり、視覚的な注意散漫が少なくて異なるピースがどのように分離されているかを確認できます。ああ、コメントを使用して、ドキュメントのどこにいるかをマークします。それはあなたの考えを整理し、あなたの発見を文書化するのに役立ちます。

このガラス効果を学習するプロセスで、私たちがカバーするものを私たちが行っているものを固めるのを助ける方法として、私たちがカバーする各ステップでデモを作成しました。

わかりました、今、私たちは精神的に準備されているので、それの肉に入りましょう!

ステップ1:基本的な画像を所定の位置に取得します

まず最初に:ガラス効果の背景として画像が必要です。ここには、要素とその中にがあります。これは、HTMLにSVGでリアルなガラス効果を発揮しますを追加することに似ています。 SVG要素のViewbox属性と要素の寸法が同じであることがわかります。これにより、がリンクしている実際の画像とまったく同じサイズになることが保証されます。

それは注意すべき重要な区別です:私たちは画像にリンクしています。 SVGファイル自体はラスターイメージを描画しませんが、SVGコードの画像を参照して、資産が指し示す場所にあることを確認できます。以前にAdobe Indesignを使用していた場合、レイアウト内の画像資産にリンクすることによく似ています。画像はInDesignレイアウトにありますが、資産自体は実際にはどこかに住んでいます。

ステップ2:画像を歪めます

これまでのところ簡単ですが、挿入したばかりの画像にフィルターを追加するため、これは物事が複雑になる場所です。このフィルターは画像を歪めます。最後のステップのデモとこのステップのデモの違いをよく見ると、画像内のオブジェクトのエッジが少し粗くて波状であることがわかります。それが職場のフィルターです!

最初に、フィルターを保持するために別のを作成します。これは、フィルターを再利用したい場合、たとえばページ上の複数の要素で - 完全にできることを意味します。

最初のフィルター(#displacement)は、画像を歪めます。 Sara Soueidanがこの投稿でできるよりもはるかに優れたSara Soueidanによって説明されているFeturbulenceとFedisPlacementMapを使用します。また、Beau Jacksonは、クラウド効果を発揮するために使用する方法を示す素敵な作品を書きました。言うまでもなく、これらの2つのフィルターは一緒に行く傾向があり、何かが「Wobbly」に見える必要があるときに考えたいです。

フィルター容器を所定の位置に配置すると、、Magicにフィルター属性を使用して、そのフィルターを画像に適用するだけです!

 <svg>

  
  
  
  
  <filter>
    <feturvulence type="乱流" basefrequency="0.05" numoctaves="2" result="乱流"></feturvulence>
    <fedisplacementmap in2="乱流" in="sourcegraphic" xchannelsector="r" ychannelsector="g"></fedisplacementmap>
  </filter>

  

</svg> 

ステップ3:テキストをクリップします

ただし、画像全体を歪めたくありません。歪んだの形状を、いくつかのテキストの形にクリップします。これは基本的に、ガラスを「介して」見られる写真の一部になります。

これを行うには、要素を追加し、IDを与える必要があります。 のクリップパスでこのIDを呼び出すと、その形状がの形状に制限されます。素晴らしい!

ステップ4:完全な画像を明らかにします

わかりました、だから私たちは歪んだにクリップしたのはブエノですが、今では画像の残りの部分がなくなっています。ブエノはありません。

同じのコピーを追加することでこれに反することができますが、既存のの前にクリップパスまたはフィルター属性を使用しないでください。これは、私が物事をきちんと保つためにいくつかの素晴らしいコメントを追加するのが好きな場所です。このアイデアは、これまでのところ、透明な層を配置するようなものです。

私は知っている、私は知っている、これはあまりきれいではなく、私たちは自分自身を繰り返しています。理想的には、フィルターを要素にまっすぐに設定し、in = "backgroundimageプロパティを使用して、fedisplacementmapに" backgroundimageプロパティを使用して、追加の要素を必要とせずにテキストの背後にあるものをワープします。残念ながら、これにはブラウザのサポートが不十分なので、複数の画像を使用します。

 <svg>

  

  
   
          
  
  

</svg> 

ステップ5:テキストを配置します…もう一度

次に、最後のステップで画像のために行ったのと同じように、テキストを複製します。残念ながら、テキストはクリップパスにあるため、レンダリングに利用できません。このようなコンテンツを複製するのはこれが最後です。私は約束します!

今、私たちはその上に黒いテキストがある通常の画像のように見えるものを持っている必要があります。すでに作成したの歪みフィルターがガラスを「介して」見ることができるものである場合、新しいはガラス自体になります。

 <svg>

  

  
  <clippath>
     Kyoto 
  </clippath>
        
  
   Kyoto 



</svg> 

ステップ6:テキストの暗い端を作成します

これは、少なくとも私にとっては、物事がエキサイティングになり始めるところです! ?

テキスト要素に沿って暗いエッジを作成したいと考えています。テキスト要素は、明るいエッジとペアになったときに(次に見ています)、画像に対するテキストの外観に深さを追加します。

の新しいフィルターが必要なので、フィルターのSVG要素にそれを作成し、ガラス効果を実現するために4インチを付けましょう。

Feoffsetは、以前の原始(大腿骨)のすべての「ピクセル」をxまたはy軸全体に移動するために使用されます。値dx = "5"およびdy = "5"は、それぞれx軸とy軸に「ピクセル」を動かします。数が高いほど、さらに移動します。 dxに負の数を入れて、「ピクセル」が左に移動します。ネガティブなdyと彼らは上に移動します!繰り返しますが、それはあなたが彼らと遊ぶときにあなたが学び始めるようなものです。

私が「ピクセル」の周りに引用している理由は、CSSで期待されるような画面ピクセルではないためです。むしろ、親に設定した次元を指します。私はそれらをパーセンテージと考えています。この例では、これらの設定Viewbox = "0 0 1890 1260"を使用しました。これは、が1890幅の幅であることを意味します。 dx = "189"を設定すると、SVGを横切って要素を10%移動することを意味します(1890を189で割って)。

Fefloodは素晴らしいです。画面を色で埋めたい場合は、これが必要な原始です!私たちがそれを適用したとき、なぜ私たちのテキストを今読めない理由を疑問に思うかもしれません。それは、作成された最後のフィルタープリミティブの結果しか見ることができないからです。以前のプリミティブのそれぞれの結果は、要素に関連していました。 Fefloodの結果は、その名前のようなものです。色の洪水です。以前に何をしたかわからず、気にしません。単に領域を色で満たすだけです。

これは、一部の人々がSVGに不満を感じ始める場所です。あなたがそれを見ることができないとき、何かに取り組むのは難しいです!私を信じてください、あなたがよりSVGで作業するので、あなたはこれに慣れるでしょう。実際、次のいくつかのステップでは、これに頼って、すべてがまだ整っていると信頼する必要があります。

fecompositeは、私たちのためにこの問題を解決する予定です。それは何をしますか? MDNはそれを次のように説明しています。

SVGフィルターPrimitiveは、Porter-Duff Compositing操作のいずれかを使用して、画像空間で2つの入力画像の組み合わせを実行します。

私にとってそれはジバ・ジャバです。 IN2の色/アルファでINのアルファ層に影響を与えると思います。

これを設置すると、テキストが綴られているのを再び見ることができます。使用した色はわずかに透明であるため、歪んだ「ガラス」効果が通過することさえあります。素晴らしい!

 <svg>

  
    
  
  
    <feconvolvematrix order="3,3" kernelmatrix="1 0 0 
      0 1 0
      0 0 1 " in=" dark_edge_01 " result=" dark_edge_02 "></feconvolvematrix>
    <feoffset dx="5" dy="5" in="dark_edge_02" result="dark_edge_03"></feoffset>
    <feflood flood-color="rgba(0,0,0、.5)" result="dark_edge_04"></feflood>
    <fecomposite in="dark_edge_04" in2="dark_edge_03" operator="in" result="dark_edge"></fecomposite>
    
  

  

</svg> 

ステップ7:ライトエッジをしましょう

これは本質的に私たちが文字通りやったことと同じですが、負のDX/DY値を使用して形状を左にシフトします。また、今回は少し白い色になりました。私たちは素晴らしい深さの効果を目指しています。

私たちは再び、私たちが見ることができるものがフィルタープリミティブからの最新の結果である状態にありますが、私たちの暗いエッジは見えません! fecompositeは、明るい端で色付けされた暗い縁のアルファを望んでいないので、それらをまとめるために使用したいものではありません...両方を見たいです!それは私たちを…

 <svg>
  <filter>

    

      
      <feconvolvematrix order="3,3" kernelmatrix="1 0 0 
        0 1 0
        0 0 1 " in=" light_edge_01 " result=" light_edge_02 "></feconvolvematrix>
      <feoffset dx="-2" dy="-2" in="light_edge_02" result="light_edge_03"></feoffset>
      <feflood flood-color="rgba(255,255,255、.5)" result="light_edge_04"></feflood>
      <fecomposite in="light_edge_04" in2="light_edge_03" operator="in" result="light_edge"></fecomposite>

    
  
  </filter>
</svg> 

ステップ8:エッジを結合します

女性!それはヒーローです。それにより、私たちは任意の数の原始的な結果を取り、それらをマージし、新しい画像を作成することができます。ウーフー、私たちは今、暗い縁と明るいエッジの両方を一緒に見ることができます!

ただし、テキスト全体を埋めるのではなく、エッジにすることを望んでいるため、元のが取り上げるスペースを削除する必要があります。次に必要なのは、元のSourceGraphicを切り刻むためのもう1つのフェクポジットです。大腿眼科を使用して、エッジの文字を肥やしたため、女性の結果から元の文字の形を切り刻むことができます。

 <svg>
  <filter>

    

    <femerge result="edges">
      <femergenode in="dark_edge"></femergenode>
      <femergenode in="light_edge"></femergenode>
    </femerge>
    <fecomposite in="edges" in2="sourcegraphic" operator="out" result="edges_complete"></fecomposite>

  </filter>
</svg> 

今、私たちはガラスのように見え始めており、1枚だけが欠けています。

ステップ9:はい、ベベル

かなり良い3Dに見えるガラス効果があります。しかし、文字は平らに見えます。もう1つの効果を追加して、それらをより丸く見せてみましょう。

これを達成するために、bevelled効果を作成します。

まず、FegaussianBlurを使用します。これにより、既存のフィルターがわずかに曖昧になります。このぼやけた結果を基礎として使用して、いくつかのfesspularlightingを追加します。いつものように、ここで数字で遊んで、どのような効果を得ることができるかを見てください!変更したい主なものは、照明色の属性です。ここで使用している画像はわずかに暗いので、明るい照明色を使用しています。あなたの画像が非常に明るい場合、これにより文字が読みにくくなりますので、その場合は暗い照明色を使用する可能性があります。

 <svg>
  <filter>
  
    

    <fegaussianblur stddeviation="5" result="bevel_blur"></fegaussianblur>
    <fespecularlighting result="bevel_lighting" in="bevel_blur" specularconstant="2.4" specularexponent="13" lighting-color="rgba(60,60,60、.4)">
      <fedistantlight azimuth="25" elevation="40"></fedistantlight>
    </fespecularlighting>
    <fecomposite in="bevel_lighting" in2="sourcegraphic" operator="in" result="bevel_complete"></fecomposite>

  </filter>
</svg> 

ステップ10:今すぐ一緒に!

最後に、すべてのピースが準備ができているので、最後の女性を1つ行い、完成した効果を得るためにすべてを整えます!

 <svg>
  <filter>

    

    <femerge result="complete">
      <femergenode in="edges_complete"></femergenode>
      <femergenode in="bevel_complete"></femergenode>
    </femerge>
  </filter>
</svg>

ここにすべてが一緒になり、うまく間隔を空けてコメントしました:

 
<svg viewbox="0 0 1890 1260">
        
  
   
    
  
  
  <clippath>
     Kyoto 
  </clippath>
    
  
   Kyoto 
    
</svg>


<svg>
  <filter>
    <feturvulence type="乱流" basefrequency="0.05" numoctaves="2" result="乱流"></feturvulence>
    <fedisplacementmap in2="乱流" in="sourcegraphic" xchannelsector="r" ychannelsector="g"></fedisplacementmap>
  </filter>
    
  <filter>
            
    
    
    <feoffset dx="5" dy="5" in="dark_edge_01" result="dark_edge_03"></feoffset>
    <feflood flood-color="rgba(0,0,0、.5)" result="dark_edge_04"></feflood>
    <fecomposite in="dark_edge_04" in2="dark_edge_03" operator="in" result="dark_edge"></fecomposite>     
            
    
    
    <feoffset dx="-2" dy="-2" in="light_edge_01" result="light_edge_03"></feoffset>
    <feflood flood-color="rgba(255,255,255、.5)" result="light_edge_04"></feflood>
    <fecomposite in="light_edge_04" in2="light_edge_03" operator="in" result="light_edge"></fecomposite>
          
    
    <femerge result="edges">
      <femergenode in="dark_edge"></femergenode>
      <femergenode in="light_edge"></femergenode>
    </femerge>
    <fecomposite in="edges" in2="sourcegraphic" operator="out" result="edges_complete"></fecomposite>
          
    
    <fegaussianblur stddeviation="5" result="bevel_blur"></fegaussianblur>
    <fespecularlighting result="bevel_lighting" in="bevel_blur" specularconstant="2.4" specularexponent="13" lighting-color="rgba(60,60,60、.4)">
      <fedistantlight azimuth="25" elevation="40"></fedistantlight>
    </fespecularlighting>
    <fecomposite in="bevel_lighting" in2="sourcegraphic" operator="in" result="bevel_complete"></fecomposite>

    
    <femerge result="complete">
              <femergenode in="edges_complete"></femergenode>
              <femergenode in="bevel_complete"></femergenode>
    </femerge>

  </filter>
</svg> 

以上がSVGでリアルなガラス効果を発揮しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

一般的なCSSブラウザの矛盾とは何ですか? 一般的なCSSブラウザの矛盾とは何ですか? Jul 26, 2025 am 07:04 AM

さまざまなブラウザのCSS解析に違いがあるため、主にデフォルトのスタイルの違い、ボックスモデルの計算方法、フレックスボックスおよびグリッドレイアウトサポートレベル、および特定のCSS属性の一貫性のない動作を含む一貫性のないディスプレイ効果が得られます。 1.デフォルトのスタイル処理は一貫性がありません。解決策は、cssresetまたはremormize.cssを使用して初期スタイルを統合することです。 2。IEの古いバージョンのボックスモデル計算方法は異なります。 Box-Sizing:Border-Boxを統一された方法で使用することをお勧めします。 3. FlexBoxとグリッドは、エッジの場合や古いバージョンでは異なる機能を示します。より多くのテストを行い、Autoprefixerを使用します。 4.一部のCSS属性の動作は一貫性がありません。 Caniuseは相談して格下げする必要があります。

アクセントカラーのプロパティとは何ですか? アクセントカラーのプロパティとは何ですか? Jul 26, 2025 am 09:25 AM

Accent-Colorは、CSSで使用される属性であり、チェックボックス、ラジオボタン、スライダーなどのフォーム要素のハイライト色をカスタマイズします。 1.チェックボックスの青いチェックマークを赤に変更するなど、フォームコントロールの選択した状態のデフォルト色を直接変更します。 2。サポートされている要素には、type = "チェックボックス"、type = "Radio"、type = "range"の入力ボックスが含まれます。 3.アクセントカラーを使用すると、複雑なカスタムスタイルと余分なDOM構造を回避し、ネイティブアクセシビリティを維持できます。 4.一般的に最新のブラウザによってサポートされており、古いブラウザを格下げする必要があります。 5. Accent-Colを設定します

選択をスタイリングする方法ハイライト( `:: selection`)? 選択をスタイリングする方法ハイライト( `:: selection`)? Jul 16, 2025 am 12:50 AM

CSSの::選択擬似要素を使用して、ページの美学と統一性を改善するためにWebページテキストを選択したときにハイライトスタイルをカスタマイズします。 1.基本設定::: ::選択の背景と色を定義します。 P ::選択などの特定の要素も制限できます。 2。互換性処理:Safariおよびモバイルブラウザーと互換性がある-WebKit -Prefixを追加すると、FirefoxとEdgeの標準が十分にサポートされています。 3.読みやすさに注意してください:過度の色のコントラストや派手なほど避け、全体的な設計と調整する必要があります。たとえば、視覚的な快適さを改善するために、暗いモードのソフトブルーベースを選択します。合理的な使用は、インターフェイスのテクスチャを強化し、詳細を無視することができます

ブラウザのデフォルトのスタイルシートはレンダリングにどのように影響しますか? ブラウザのデフォルトのスタイルシートはレンダリングにどのように影響しますか? Jul 19, 2025 am 02:08 AM

ブラウザのデフォルトスタイルは、マージン、フィル、フォント、フォーム要素スタイルを自動的に適用することにより、基本的な読みやすさを確保しますが、一貫性のないクロスブラウザーレイアウトを引き起こす可能性があります。 1.デフォルトのマージンと充填は、タイトル、段落、リストの間隔など、レイアウトフローを変更します。 2.デフォルトのフォント設定は、16pxフォントサイズやTimesNewromanフォントなど、読みやすさに影響します。 3.フォーム要素は異なるブラウザで非常に異なるため、外観をリセットする必要があります。 4.強いEMやEMなどの一部のタグには、デフォルトの強調スタイルがあり、明示的に上書きする必要があります。回避策には、remormize.css、リセットスタイル、またはグローバルにクリアなマージンと塗りつぶしの使用が含まれ、一貫性のためにフォントとフォームスタイルをカスタマイズします。

段落の最初の文字または最初の行をスタイリングする方法は? 段落の最初の文字または最初の行をスタイリングする方法は? Jul 19, 2025 am 02:58 AM

視覚的魅力を強化するために段落の始まりを美化するために、一般的な慣行は、CSSの擬似要素を使用するか、ドキュメントを手動でスタイリングすることです。 Web開発では、P :: First-Letterを使用して、拡大、太字、変色などの最初の文字スタイルを設定できますが、ブロックレベルの要素にのみ適していることに注意してください。最初の行全体を強調表示したい場合は、P :: First-Lineを使用してスタイルを追加します。 Wordなどのドキュメントソフトウェアでは、最初の文字形式を手動で調整したり、スタイルテンプレートを作成したりすることができます。Indesignには、公開やデザインに適した「ファーストシンク」機能が組み込まれています。適用するときは、読み取りに影響を与える複雑なスタイルを避け、互換性とフォーマットの一貫性を確保するなど、詳細に注意を払う必要があります。

「垂直アライグル」プロパティとその典型的なユースケースを説明してください 「垂直アライグル」プロパティとその典型的なユースケースを説明してください Jul 26, 2025 am 07:35 AM

thevertical-AlignPropertyincsSalignSinlineortable-cellElementsive.1.ItadjustsemageSlikeImagesSwitSwitSwithinputswithintingtlinessingVaseLine、Middle、super、andsub.2.IntableCells、ItControlScontEntalInmentWithop、Middle、Orbottomvalues、頻繁に

CSS「カウンターリセット」および「カウンターインクリメント」特性を説明します CSS「カウンターリセット」および「カウンターインクリメント」特性を説明します Jul 18, 2025 am 04:00 AM

CSSのカウンターレセットとカウンターインクリメントを使用して、HTML要素を自動的に番号付けします。 1。カウンターレセットを使用して、カウンターを初期化またはリセットします。たとえば、セクション{counter-reset:sub-section;}を使用して、サブセクションという名前のカウンターを作成します。 2。H3{カウンターインクリメント:サブセクション;}などのカウンターインクリメントを介してカウンターをインクリメントして、各H3タイトル番号を増やします。 3.コンテンツ属性を使用して、擬似エレメントを組み合わせてカウンターを表示します。

未使用のCSSをパージする方法は? 未使用のCSSをパージする方法は? Jul 27, 2025 am 02:47 AM

useautomatedtoolslikepurgecssoruncsStoscanandRemoveUnusedcss; ’scontentConfiguration; 3.OuditcsSusageWithRedevtoolScoveragetabbeavePurgingToavoidRemovingedStyles; 4.SafelistDynamic

See all articles