Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² Π²Π΅Π±-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ — Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ВСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях. Она ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ°Π»Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ – ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° пиксСли Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ вмСстС с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π½Π° Π’Π°ΡˆΡƒ страницу.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Данная ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ вас Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, Π° даст ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠ°ΠΊ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π΅Π±-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ….

Π’ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ — растровым ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌ:

  • РастровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ задаётся сСткой пиксСлСй β€” Ρ„Π°ΠΉΠ» растрового изобраТСния содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ располоТСнии ΠΈ Ρ†Π²Π΅Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля. Π‘Ρ€Π΅Π΄ΠΈ популярных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° числятся Bitmap (.bmp), PNG (.png), JPEG (.jpg) ΠΈ GIF (.gif)
  • Π’Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Β  опрСдСляСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ β€” Ρ„Π°ΠΉΠ» Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ изобраТСния содСрТит Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Β  ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° выводится Π½Π° экран.SVG Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ позволяСт Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ для использования Π² Π²Π΅Π±-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ….

Для дСмонстрации Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Github ΠΊΠ°ΠΊ vector-versus-raster.html β€” Π² Π½Π΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄Π²Π°, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… изобраТСния, располоТСнных рядом Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. КаТдоС ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ прСдставляСт собой ΠΊΡ€Π°ΡΠ½ΡƒΡŽ Π·Π²Π΅Π·Π΄Ρƒ с Ρ‚Π΅Π½ΡŒΡŽ. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΡ… Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»Π΅Π²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG, Π° ΠΏΡ€Π°Π²ΠΎΠ΅ — SVG.

Различия становятся Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ измСняСтС ΠΌΠ°ΡΡˆΡ‚Π°Π± страницы β€” PNG ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ становится Π½Π΅Ρ€ΠΎΠ²Π½Ρ‹ΠΌ (становятся Π²ΠΈΠ΄Π½Ρ‹ пиксСли), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Ρ†Π²Π΅Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля. ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈΒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль Ρ‚Π°ΠΊΠΆΠ΅ увСличиваСтся, охватывая нСсколько пиксСлСй дисплСя, поэтому становятся Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ «ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠΈ». Π’Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ€ΠΎΠ²Π½Ρ‹ΠΌ ΠΈ красивым, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ совмСстно с Π½ΠΈΠΌ.Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Оба изобраТСния свСрху ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG β€” слСва ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ растровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, справа условно ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. НапоминаСм, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ растровым ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ изобраТСниями находится ΠΏΠΎ ссылкС: vector-versus-raster.html !

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ„Π°ΠΉΠ»Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС растровых, Ρ‚.ΠΊ. Π² Π½ΠΈΡ… содСрТится Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ построСния вмСсто ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ пиксСлС.

SVG это язык Π½Π° Π±Π°Π·Π΅ XML для описания Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. По сути это язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΈ HTML, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ содСрТащий мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов для опрСдСлСния Ρ„ΠΈΠ³ΡƒΡ€ вашСго изобраТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡ… отобраТСния. SVG ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π° Π½Π΅ содСрТимого. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС,Β  Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты для создания простых Ρ„ΠΈΠ³ΡƒΡ€, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ

<circle>(ΠΊΡ€ΡƒΠ³) ΠΈ <rect>(ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ). Π‘ΠΎΠ»Π΅Π΅ слоТныС SVG элСмСнты Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ <feColorMatrix> (en-US) (Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° с использованиСм ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹), <animate> (анимация частСй вашСго Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ изобраТСния) ΠΈ <mask> (en-US) (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ маски ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ.)

Π’ качСствС простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ создаёт ΠΊΡ€ΡƒΠ³ ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ:

<svg version="1.1"
     baseProfile="full"
    
     xmlns="http://www.w3.org/2000/svg">
  <rect fill="black" />
  <circle cx="150" cy="100" r="90" fill="blue" />
</svg>

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ SVG Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π”Π°, простыС SVG ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π½ΠΎ Π² случаС слоТного изобраТСния это становится слоТным. Для создания SVG ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Inkscape ΠΈΠ»ΠΈ Illustrator. Π”Π°Π½Π½Ρ‹Π΅ прилоТСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ изобраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ мноТСство графичСских инструмСнтов, ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ приблиТСния Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ опция Trace Bitmap feature прилоТСния Inkscape.)

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства SVG:

  • ВСкст Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ остаётся ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΌ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ доступным для поисковика,Β Ρ‡Ρ‚ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ SEO).
  • SVGΒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‚ΡΡ стилизации/ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (scripting), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ изобраТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ стилизован с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript.

Π’Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ растровыС изобраТСния, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ SVG? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΒ SVG ΠΈΠΌΠ΅Π΅Ρ‚ ряд нСдостатков:

  • SVG ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро ΡΡ‚Π°Ρ‚ΡŒ слоТным Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° увСличиваСтся; слоТныС SVG-изобраТСния Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.
  • SVG ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТнСС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π½Π΅ΠΆΠ΅Π»ΠΈ растровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.
  • Π½Π΅ поддСрТиваСтся старыми вСрсиями Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ для сайтов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Internet Explorer 8 ΠΈΠ»ΠΈ старСС.

Π’ Ρ†Π΅Π»ΠΎΠΌ, растровая Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для слоТных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ.

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ SVG Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π½Π° Π²Π΅Π±-страницу.

Быстрый ΠΏΡƒΡ‚ΡŒ:

<img>

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ SVG ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡΒ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ <img>, Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π³ΠΎ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ src, ΠΊΠ°ΠΊ ΠΈ слСдовало ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ. Π’Π°ΠΌ понадобится Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Β height ΠΈΠ»ΠΈ

widthΒ (ΠΈΠ»ΠΈ ΠΎΠ±Π°, Ссли ваш SVG Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнного ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ сторон). Если Π²Ρ‹ Π΅Ρ‰Ρ‘ этого Π½Π΅ Π΄Π΅Π»Π°Π»ΠΈ, поТалуйста, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Β Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π² HTML.

<img
    src="equilateral.svg"
    alt="triangle with all three sides equal"
   
    />
ΠŸΠ»ΡŽΡΡ‹
  • Быстрый, Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ синтаксис изобраТСния со встроСнным тСкстовым эквивалСнтом, доступным Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ alt
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² гипСрссылку, помСстив <image> Π² элСмСнт <a>.
ΠœΠΈΠ½ΡƒΡΡ‹
  • Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript.
  • Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ содСрТимым SVG с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС CSS стили Π² своём SVG ΠΊΠΎΠ΄Π΅. (Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° SVG, Π½Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚.)
  • Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ изобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ псСвдоклассов CSS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ :focus).

УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ΠΈ кросс-браузСрная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

Для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ SVG (IE 8 ΠΈ Π½ΠΈΠΆΠ΅, Android 2.3 ΠΈ Π½ΠΈΠΆΠ΅), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° PNG ΠΈΠ»ΠΈ JPG Π² src Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ srcset Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹) Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° SVG. Π’ этом случаС SVG Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ — старыС ΠΆΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ PNG:

<img src="equilateral.png" alt="triangle with equal sides" srcset="equilateral.svg">

Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ SVG Π² качСствС Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ CSS, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ниТС старыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ PNG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ SVG:

background: url("fallback.png") no-repeat center;
background-image: url("image.svg");
background-size: contain;

Подобно ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ <img>, описанному Π²Ρ‹ΡˆΠ΅, вставка SVG с использованиСм Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ CSS ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΒ SVG нСльзя ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ JavaScript, ΠΈ Ρ‡Ρ‚ΠΎ SVGΒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ограничСния, Ρ‡Ρ‚ΠΎ ΠΈ CSS.

Если ваши SVG Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ вовсС,Β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ваш сСрвСр Π½Π΅ настроСн Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² этом, Ρ‚ΠΎ данная ΡΡ‚Π°Ρ‚ΡŒΡ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π²Π΅Ρ€Π½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ SVG Π² ваш HTML ΠΊΠΎΠ΄

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» SVG Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄Β ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ваш HTML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ β€” Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΡ‘ΠΌ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ встраиваниСм SVG (SVG inline ΠΈΠ»ΠΈ inlining SVG). Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ вашСго SVG ΠΊΠΎΠ΄Π° начинаСтся ΠΈ заканчиваСтся с Ρ‚Π΅Π³ΠΎΠ²Β <svg></svg> (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Π½ΠΈΡ…). Π’ΠΎΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ваш Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚:

<svg>
    <rect fill="green" />
</svg>
ΠŸΠ»ΡŽΡΡ‹
  • Вставка вашСго SVG ΠΏΡƒΡ‚Ρ‘ΠΌ SVG inline позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTTP запросы ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒΒ class-Ρ‹ ΠΈΒ id элСмСнтам SVG ΠΈ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ CSS, Π»ΠΈΠ±ΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… SVG, Π»ΠΈΠ±ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ SVG, Π»ΠΈΠ±ΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π²Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° стиля CSS для вашСго HTML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. По Ρ„Π°ΠΊΡ‚Ρƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ прСдставлСния SVGΒ ΠΊΠ°ΠΊ свойство CSS.
  • SVG inline СдинствСнный ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS-взаимодСйствия (ΠΊΠ°ΠΊ :focus) ΠΈ CSS-Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π½Π° вашСм SVG ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (Π΄Π°ΠΆΠ΅ Π² вашСй ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ стилСй).
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ SVG ΠΊΠ°ΠΊ гипСрссылку, ΠΎΠ±Π΅Ρ€Π½ΡƒΠ² Π² элСмСнт <a>.
ΠœΠΈΠ½ΡƒΡΡ‹
  • Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ SVG лишь Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ обслуТиваниС рСсурсоёмким.
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ SVG ΠΊΠΎΠ΄ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго HTML Ρ„Π°ΠΉΠ»Π°.
  • Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ встроСнный SVG, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ изобраТСния.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π² элСмСнтС <foreignObject>, Π½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ SVG Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ всС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ изобраТСния. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π·Π²Π΅ΡΠΈΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ стоит ли ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов (рСсурсов).

Как Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ SVG ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ <iframe> (en-US)

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ваши SVG изобраТСния Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ просто ΠΊΠ°ΠΊ Π²Π΅Π±-страницы. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ встраиваниС SVG Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽΒ <iframe>

выполняСтся ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅ Π² Π³Π»Π°Π²Π΅ ΠžΡ‚ <object> ΠΊ <iframe> β€” Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ внСдрСния.

Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€:

<iframe src="triangle.svg" sandbox>
    <img src="triangle.png" alt="Triangle with three unequal sides" />
</iframe>

Π­Ρ‚ΠΎ — ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ Π½Π΅ самый Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для Π²Ρ‹Π±ΠΎΡ€Π°:

ΠœΠΈΠ½ΡƒΡΡ‹
  • Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρƒ iframe-ΠΎΠ² Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, Π½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ iframe-Ρ‹.
  • Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° SVG ΠΈ ваша тСкущая Π²Π΅Π±-страница ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ origin, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JavaScript Π½Π° вашСй основной Π²Π΅Π±-страницС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SVG.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ изучСния ΠΌΡ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ просто ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с SVG. НиТС, Π² области Input, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ прСдоставили Π½Π΅ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ. А Π΅Ρ‰Ρ‘ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒΒ SVG Element Reference, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² SVG, ΠΈ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ посвящён ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π²Π°ΡˆΠΈΡ… ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² ΠΈ Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡŽ.

Если Π’Ρ‹Β Π³Π΄Π΅-Ρ‚ΠΎ застряли ΠΈ ваш ΠΊΠΎΠ΄ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ сначала, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒΒ Reset.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдоставила Π²Π°ΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ вСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ SVG, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ Π½ΠΈΡ… ΠΈ ΠΊΠ°ΠΊ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ SVG Π² Π²Π°ΡˆΡƒ Π²Π΅Π±-страницу. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ являСтся ΠΏΠΎΠ»Π½Ρ‹ΠΌ руководством ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ SVG, Π° всСго лишь ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ρ‡Ρ‚ΠΎΠ± Π²Ρ‹ Π·Π½Π°Π»ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SVG, Π½Π° случай, Ссли Π²Ρ‹ встрСтитС Π΅Π³ΠΎ Π²ΠΎ врСмя странствий ΠΏΠΎ Π‘Π΅Ρ‚ΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅, Ссли Π²Ρ‹ Π΅Ρ‰Ρ‘ Π½Π΅ чувствуСтС сСбя экспСртом Π² SVG. НиТС ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ нСсколько ссылок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’ послСднСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ этого модуля ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Π΅ изобраТСния Π² дСталях, рассматривая инструмСнты HTML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ваши изобраТСния Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… устройствах.

ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ содСрТимого Π² SVG с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΠ± ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ содСрТимого Π² элСмСнтС SVG <use> ΠΈ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΠΈ связанных с этим ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π“Ρ€Π°Ρ„ΠΈΠΊΠ° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SVG особо часто примСняСтся для создания ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых распространСнных Ρ‚Π΅Ρ…Π½ΠΈΠΊ для этого ΡΠ²Π»ΡΡŽΡ‚ΡΡ SVG-спрайты с использованиСм SVG use для инстанцирования ΠΈΠΊΠΎΠ½ΠΎΠΊ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π˜Π½ΡΡ‚Π°Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ содСрТимого SVG Π² элСмСнтС <use> Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ слоТности ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… экзСмпляров. ЦСль этой ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΎΠ±Π·ΠΎΡ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… способов ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ограничСния оформлСния, связанныС с использованиСм <use>.

Но ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ быстро рассмотрим ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ структуру ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов Π² SVG, постСпСнно пСрСйдя ΠΊ <use>, DOM, Π° Π·Π°Ρ‚Π΅ΠΌ вСрнСмся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ CSS. ΠœΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ <use> ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ слоТности ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ.

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ структуры SVG, группирования ΠΈ ссылок Π½Π° элСмСнты Π² SVG

SVG Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя 4 основных элСмСнта для опрСдСлСния, структурирования ΠΈ создания ссылок Π½Π° содСрТимоС SVG Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. Π­Ρ‚ΠΈ элСмСнты Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, оставляя ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ. Из-Π·Π° ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ SVG Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих элСмСнтов ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π² графичСских Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ….

4 основных Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… элСмСнта SVG это <g>, <defs>, <use> and <symbol>.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ <g> (сокращСниС ΠΎΡ‚ β€œgroup”) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для логичСской Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² связанных графичСских элСмСнтов. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… графичСских Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ( Ρ‚ΠΈΠΏΠ° Adobe Illustrator) элСмСнт <g> ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€œΠ‘Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹β€. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠ°ΠΊ ΠΎ слоС Π² графичСском Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎ всСм элСмСнтам Π³Ρ€ΡƒΠΏΠΏΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС элСмСнты Π³Ρ€ΡƒΠΏΠΏΡ‹, сохранив ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ <defs> ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для задания ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, Π² основном это Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Ρ‚ΠΈΠΏΠ° Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов SVG. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для задания Π»ΡŽΠ±Ρ‹Ρ… элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π½Π° холстС.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ <symbol> ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ возмоТности <defs> ΠΈ <g> Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для группирования элСмСнтов с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ шаблона, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… участках Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ <defs>, <symbol> Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для задания ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²; ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания символов Ρ‚ΠΈΠΏΠ° ΠΈΠΊΠΎΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π²ΠΎ всСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.

Π£ элСмСнта <symbol> Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ прСимущСство: ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ viewBox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ любой области видимости.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ <use> позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² любом мСстС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт. Он позволяСт ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты, Π΄Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ-вставкС Π² графичСском Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π‘ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, Ρ‚Π°ΠΊ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°, заданная Π² <g>, <defs> ΠΈΠ»ΠΈ <symbol>.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ссылку Π½Π° этот элСмСнт, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ β€” это Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ xlink:href ΠΈ ΡΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π·Π°Π΄Π°Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ x ΠΈ y. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ стили ΠΊ элСмСнту <use> ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ°ΡΠΊΠ°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° содСрТимоС этого элСмСнта.

Но Ρ‡Ρ‚ΠΎ являСтся содСрТимым <use>? ΠšΡƒΠ΄Π° ΠΎΠ½ клонируСтся? И ΠΊΠ°ΠΊ каскад CSS Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π½ΠΈΠΌ?

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° эти вопросы ΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ-быстрому Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ структуру ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ SVG, стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ статСй,ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π²Π°ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± этих элСмСнтах, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ± Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ viewBox Π² элСмСнтС <symbol>:

SVG

<use> ΠΈ Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ DOM

Когда Π²Ρ‹ ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ <use>, ваш ΠΊΠΎΠ΄ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

<symbol viewBox="0 0 30 30">
	<!-- icon content / shapes here -->
</symbol>

<use xlink:href="#my-icon" x="100" y="300" />

На экранС отобраТаСтся ΠΈΠΊΠΎΠ½ΠΊΠ°, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ <symbol>, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это содСрТимоС элСмСнта <use>, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся ΠΊΠ»ΠΎΠ½ΠΎΠΌ <symbol>.

Но элСмСнт <use> это всСго лишь ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΌΠΎΠ·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ элСмСнт β€” Π² Π½Π΅ΠΌ Π½Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Π³Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΡƒΠ΄Π° ΠΆΠ΅ клонируСтся содСрТимоС <symbol>?

ΠžΡ‚Π²Π΅Ρ‚ β€” Π² Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ DOM (ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ ΠΎΠ½ всСгда Ρƒ мСня ассоциируСтся с БэтмСном, Π½Π΅ знаю ΠΏΠΎΡ‡Π΅ΠΌΡƒ).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ DOM?

Π’Π΅Π½Π΅Π²ΠΎΠΉ DOM ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ DOM, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Π΅Ρ€Π΅Π²Π° основного Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΡƒΠ·Π»Ρ‹ Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM относятся ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ основному, Π½ΠΎ нСдоступным для Π΅Π³ΠΎ скриптов ΠΈ стилСй. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, инкапсулируя скрипты ΠΈ стили. Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ использовали элСмСнт video ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ Π² HTML5 ΠΈ Π½Π΅ поняли, ΠΎΡ‚ΠΊΡƒΠ΄Π° появлялись элСмСнты управлСния Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π΅Π΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ слайдСр, Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ β€” Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ DOM.

Π’ случаС с элСмСнтом SVG <use>, содСрТимоС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ ссылаСтся, клонируСтся Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, β€œΡ…ΠΎΡΡ‚ΡΡ‰ΠΈΠΉΡΡβ€ Π² <use>. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС <use> это Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ хост.

Π˜Ρ‚Π°ΠΊ, содСрТимоС <use> (ΠΊΠ»ΠΎΠ½ ΠΈΠ»ΠΈ копия элСмСнта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ссылаСтся) присутствуСт Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, содСрТимоС находится Ρ‚Π°ΠΌ, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅. Π’Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ содСрТимоС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ DOM, Π½ΠΎ Π½Π΅ доступноС высокоуровнСвым срСдствам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ сСлСкторы CSS ΠΈ JavaScript, скопированноС Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, привязанный ΠΊ <use>.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ: β€œΠžΠš, я понял, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ этот субдокумСнт ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π³ΠΎ содСрТимоС”. ΠžΡ‚Π²Π΅Ρ‚ β€” Π΄Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ содСрТимоС Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Chrome (Π² Firefox Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ эта функция Π½Π΅ доступна). Но для Π½Π°Ρ‡Π°Π»Π° Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ инспСктора Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ General Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ настроСк. Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано здСсь.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈΠ½ΡΠΏΠ΅ΠΊΡ†ΠΈΡŽ Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ элСмСнтов, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ элСмСнты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ DOM. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ элСмСнта <use>, ΡΡΡ‹Π»Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° содСрТимоС элСмСнта <symbol>. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ β€œ#shadow-root” ΠΈ Π΅Π³ΠΎ содСрТимоС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΎΠ½ΠΎΠΌ содСрТимого <symbol>.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Chrome, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС элСмСнта use Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM (β€œ#shadow-root”, строка Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° сСрым Ρ†Π²Π΅Ρ‚ΠΎΠΌ). На этом ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ инспСктируСтся Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Codrops ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Глядя Π½Π° инспСктируСмый ΠΊΠΎΠ΄, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ DOM ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ обрабатываСтся CSS ΠΈ JavaScript основного Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‹Π΅ различия ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΈΡ… объСма, поэтому Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΌΠΎΠ΅Π³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° взаимодСйствия с Ρ‚Π΅Π½Π΅Π²Ρ‹ΠΌ DOM, я Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ DOM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² части доступа CSS ΠΈ JavaScript ΠΊ Π΅Π³ΠΎ элСмСнтам. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для нас ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с SVG: ΠΊΠ°ΠΊ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° содСрТимоС <use> Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM, вСдь Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π΅Π³ΠΎ. Π’Π΅ΡΡŒ смысл использования <use> это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ элСмСнта ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ копию ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. НапримСр, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠ³ΠΎ Π² Π΄Π²ΡƒΡ… Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌΠ°Ρ… ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ для нас Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS.

Как Π±Ρ‹Π»ΠΎ сказано, содСрТимоС Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM нСдоступно для CSS Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ DOM. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ? ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌ Ρ‚ΠΈΠΏΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ:

use path#line {
    stroke: #009966;
}

ΠŸΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Ρƒ нас Π½Π΅Ρ‚ доступа ΠΊ Ρ‚Π΅Π½Π΅Π²ΠΎΠΌΡƒ DOM с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… CSS сСлСкторов.

БущСствуСт ΠΏΠ°Ρ€Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСлСкторов, ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π² Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ DOM ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… стили ΠΊ ΡƒΠ·Π»Π°ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π½ΠΎ ΠΈ ΠΈΡ… возмоТности ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π² сравнСнии с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ списком сСлСкторов CSS для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ DOM.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ простой способ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ содСрТимоС SVG <use> Π±Π΅Π· погруТСния Π² спСцифику Ρ‚Π΅Π½Π΅Π²ΠΎΠ³ΠΎ DOM, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ простой CSS ΠΈ простой SVG.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС контроля ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ содСрТимого <use>, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° это ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ, использовав возмоТности каскадирования ΠΈ наслСдования Π² CSS.

ΠšΠ°ΡΠΊΠ°Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ стилСй

Π˜Ρ‚Π°ΠΊ, CSS ΠΊ SVG ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ трСмя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами β€” внСшними CSS стилями, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ стилями (Π²Π½ΡƒΡ‚Ρ€ΠΈ элСмСнта <style>) ΠΈ строчными стилями (Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ style), вся Ρ€Π°Π·Π½ΠΈΡ†Π° Π² каскадировании.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ свойствам CSS, элСмСнты SVG ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ это сокращСния для задания CSS-свойств элСмСнту. Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Π½ΠΈΡ… ΠΊΠ°ΠΊ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… стилСвых свойствах. Π˜Ρ… ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² стилСвом каскадС, Π½ΠΎ Π² нСсколько Π½Π΅ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ простой Ρ€ΠΎΠ·ΠΎΠ²Ρ‹ΠΉ ΠΊΡ€ΡƒΠ³ с ΠΆΠ΅Π»Ρ‚ΠΎΠΉ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠΎΠΉ. stroke, stroke-width ΠΈ fill это ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

<svg viewBox="0 0 100 100">
    <circle fill="deepPink" stroke="yellow" stroke-width="5" cx="50" cy="50" r="10"></circle>
</svg>

Π’ SVG подмноТСство CSS-свойств ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ΠΎ SVG-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ всС CSS свойства ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ элСмСнту SVG ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ Π½Π΅ всС ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, доступныС Π² SVG, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² CSS.

БпСцификация SVG пСрСчисляСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ SVG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ свойства CSS. НСкоторыС ΠΈΠ· этих Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ срСди ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» CSS, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, opacity ΠΈ transform, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ SVG β€” fill, stroke ΠΈ stroke-width.

Π’ SVG2 этот список Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ x, y, width, height, cx, cy ΠΈ нСсколько ΠΈΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎ спСцификации SVGΒ 1.1. Новый список ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² спСцификации SVG2.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹, ΠΊΠ°ΠΊ ΠΈ я ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ°ΠΌΡƒΡŽ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ срСди всСх стилСвых ΠΏΡ€Π°Π²ΠΈΠ». Π’Π΅Π΄ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ внСшниС стили ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ дСкларациями, Π° Ρ‚Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ строчными стилями Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² β€” ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ, Π°, соотвСтствСнно, ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ стилями. И хотя это ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысл, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½.

На самом Π΄Π΅Π»Π΅, ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ β€œΠ°Π²Ρ‚ΠΎΡ€ΡΠΊΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй” ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ стилСвыми дСкларациями: внСшними, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΈ ΠΈΠ½Π»Π°ΠΉΠ½ΠΎΠ²Ρ‹ΠΌΠΈ стилями. Π˜Ρ… СдинствСнная сила это ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ унаслСдованными стилями. И всС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ выяснили это, вСрнСмся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ элСмСнту <use> ΠΈ Π΅Π³ΠΎ содСрТимому.

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ стили Π²Π½ΡƒΡ‚Ρ€ΠΈ <use>, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ CSS сСлСкторы.

Но ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈ Π² случаС с элСмСнтом <g>, стили ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΊ <use> Π±ΡƒΠ΄ΡƒΡ‚ унаслСдованы всСми Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Ρ‚Π΅Π½Π΅Π²ΠΎΠΌ DOM).

Π˜Ρ‚Π°ΠΊ, сначала попытаСмся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ (fill) элСмСнта Π²Π½ΡƒΡ‚Ρ€ΠΈ <use>, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² сСлСктор ΠΊ самому элСмСнту <use> с расчСтом, Ρ‡Ρ‚ΠΎ каскад ΠΈ наслСдованиС ΡΠ΄Π΅Π»Π°ΡŽΡ‚ своС Π΄Π΅Π»ΠΎ.

Однако, это Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Ρƒ вопросов:

  1. Π¦Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ унаслСдован всСми ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ элСмСнта <use>, Π΄Π°ΠΆΠ΅ Ρ‚Π΅ΠΌΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ стили (Π½ΠΎ Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ <use> Ρƒ вас всСго ΠΎΠ΄ΠΈΠ½ элСмСнт, Ρ‚ΠΎ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚).
  2. Если Π²Ρ‹ экспортировали SVG ΠΈΠ· графичСского Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ SVG, Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с SVG, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ (Ссли Π²Ρ‹ явно Π½Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ это ΠΏΡ€ΠΈ экспортС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ SVG) ΠΈ значСния этих Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π°Π΄ унаслСдованными ΠΎΡ‚ <use>.

И Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ SVG ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π½ΠΈΡ…, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ этого Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ€Π°Π΄ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ установки ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… свойств сбросит значСния этих свойств Π½Π° Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅, Π° это, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, чСрная Π·Π°Π»ΠΈΠ²ΠΊΠ° ΠΈ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠ° (ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ†Π²Π΅Ρ‚Π°ΠΌ).
  2. Ббрасывая значСния, Π²Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ сСбя Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ стили для всСго Π½Π°Π±ΠΎΡ€Π° свойств.
  3. ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π½Ρ‹, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ запасным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π½Π° случай возникновСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с внСшними стилями. Если CSS Π½Π΅ загрузится, Ρƒ Π²Π°ΡˆΠΈΡ… ΠΈΠΊΠΎΠ½ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄.

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ эти Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ экзСмпляры ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Π­Ρ‚ΠΎ дСлаСтся Π·Π° счСт вынуТдСния ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΊ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡŽ стилСй, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… <use> ΠΈΠ»ΠΈ нахоТдСния способа ΠΎΠ±ΠΎΠΉΡ‚ΠΈ пСрСопрСдСлСния этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½Π°ΠΌ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всю ΠΌΠΎΡ‰ΡŒ каскадирования CSS.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с простых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ постСпСнно ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ слоТным.

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ любой Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠ΅ΠΉ стилСй. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, унаслСдованноС ΠΎΡ‚ стилСй <use>.

Π­Ρ‚ΠΎ просто благодаря ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову CSS inherits. ВзглянитС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ, нарисованная ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠΌ, Ρ†Π²Π΅Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… экзСмплярах. Иконка создана Π­Ρ€ΠΈΠ½ Агноли ΠΈΠ· Noun Project.

<svg>
  <symbol>
    <path fill="#000" d="M81,40.933c0-4.25-3-7.811-6.996-8.673c-0.922-5.312-3.588-10.178-7.623-13.844  c-2.459-2.239-5.326-3.913-8.408-4.981c-0.797-3.676-4.066-6.437-7.979-6.437c-3.908,0-7.184,2.764-7.979,6.442  c-3.078,1.065-5.939,2.741-8.396,4.977c-4.035,3.666-6.701,8.531-7.623,13.844C22.002,33.123,19,36.682,19,40.933  c0,2.617,1.145,4.965,2.957,6.589c0.047,0.195,0.119,0.389,0.225,0.568l26.004,43.873c0.383,0.646,1.072,1.04,1.824,1.04  c0.748,0,1.439-0.395,1.824-1.04L77.82,48.089c0.105-0.179,0.178-0.373,0.225-0.568C79.855,45.897,81,43.549,81,40.933z   M49.994,11.235c2.164,0,3.928,1.762,3.928,3.93c0,2.165-1.764,3.929-3.928,3.929s-3.928-1.764-3.928-3.929  C46.066,12.997,47.83,11.235,49.994,11.235z M27.842,36.301c0.014,0,0.027,0,0.031,0c1.086,0,1.998-0.817,2.115-1.907  c0.762-7.592,5.641-13.791,12.303-16.535c1.119,3.184,4.146,5.475,7.703,5.475c3.561,0,6.588-2.293,7.707-5.48  c6.664,2.742,11.547,8.944,12.312,16.54c0.115,1.092,1.037,1.929,2.143,1.907c2.541,0.013,4.604,2.087,4.604,4.631  c0,1.684-0.914,3.148-2.266,3.958h35.508c-1.354-0.809-2.268-2.273-2.268-3.958C23.24,38.389,25.303,36.316,27.842,36.301z   M50.01,86.723L27.73,49.13h54.541L50.01,86.723z"/>
  </symbol>
</svg>

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ нашСй ΠΈΠΊΠΎΠ½ΠΊΠΈ с ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Ρ‹ΠΌ (path) ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ элСмСнта <symbol> , Π°, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ выводится Π½Π° холст.

ΠœΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ мноТСствСнныС экзСмпляры ΠΈΠΊΠΎΠ½ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ <use>.

<svg viewBox="0 0 100 125"> 
    <use xlink:href="#ic" x="0" y="0" />
</svg>
<svg viewBox="0 0 100 125"> 
    <use xlink:href="#ic" x="0" y="0" />
</svg>

Π¨ΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚Π΅ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ viewBox, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΊΠ° пустого пространства Π²Π½ΡƒΡ‚Ρ€ΠΈ SVG, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сохраняСтС ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сторонами.

.icon {
    width: 100px;
    height: 125px;
}

Π‘ этим ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ благодаря Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ€Π°ΠΌΠΊΠ°ΠΌ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π°ΡˆΠΈΡ… SVG Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТимоС Π½Π΅ рСндСрится. Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅: SVG-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ symbol Π±ΡƒΠ΄Π΅Ρ‚ выводится Π½Π° страницу, Π½ΠΎ Π±Π΅Π· содСрТимого. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ это, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство display: none Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ SVG. Если Π²Ρ‹ Π½Π΅ спрячСтС SVG с опрСдСлСниями ΠΈΠΊΠΎΠ½ΠΎΠΊ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ выводится Π½Π° экран Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ Π·Π°Π΄Π°Π΄ΠΈΡ‚Π΅ для Π½Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ β€” ΠΎΠ½ Π·Π°ΠΉΠΌΠ΅Ρ‚ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅ 300 Π½Π° 150 пиксСлСй (это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½Π΅Π·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… элСмСнтов Π² CSS) ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ пустой Π±Π»ΠΎΠΊ Π½Π° экранС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра ΠΈΠΊΠΎΠ½ΠΊΠΈ:

use.ic-1 {
    fill: skyblue;
}
use.ic-2 {
    fill: #FDC646;
}

Π¦Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ мСняСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ унаслСдованный Ρ†Π²Π΅Ρ‚ пСрСписываСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ fill="#000" Π² элСмСнтС path. Π§Ρ‚ΠΎΠ±Ρ‹ это Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π²Ρ‹Π½ΡƒΠ΄ΠΈΡ‚ΡŒ path ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚:

svg path {
    fill: inherit;
}

Вуаля! Π¦Π²Π΅Ρ‚Π°, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ элСмСнтам <use> Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ path ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄Π΅ΠΌΠΎ ΠΈ поэкспСримСнтируйтС со значСниями, создавая экзСмпляры ΠΈ задавая ΠΈΠΌ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π°:

See the Pen mErELQ by prgssr (@prgssr) on CodePen.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ эта Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ Π²Ρ‹Π½ΡƒΠ΄ΠΈΠ»ΠΈ содСрТимоС <use> ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ стили. Но Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях это Π½Π΅ совсСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы оформлСния, ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΌΡ‹ сСйчас ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ.

ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ содСрТимого

<use> с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства CSS all

НСкотороС врСмя Π½Π°Π·Π°Π΄, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ <use>, ΠΌΠ½Π΅ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ унаслСдовал всС стили <use>, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ fill, stroke, stroke-width, opacity ΠΈ Π΄Π°ΠΆΠ΅ transform. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ½Π΅ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС эти Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· CSS, сохраняя ΠΏΡ€ΠΈ этом Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ всС ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Π²Ρ‹, вСроятно, Ρ€Π΅ΡˆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π·Π°ΠΉΠΌΠ΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ссли всС Π΄Π΅Π»Π°Ρ‚ΡŒ Π² CSS:

path#myPath {
    fill: inherit;
    stroke: inherit;
    stroke-width: inherit;
    transform: inherit;
    /* ... */
}

РассмотрСв этот сниппСт, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, Π°, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈΠΌΠ΅Π»ΠΎ Π±Ρ‹ смысл ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ свойства Π² ΠΎΠ΄Π½ΠΎ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ inherit.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ свойство CSS all. Π’ ΠΌΠΎΠ΅ΠΌ справочникС ΠΏΠΎ CSS упоминаСтся использованиС свойства all для оформлСния SVG, Π½ΠΎ стоит ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒ наши знания.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство all ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

path#myPath {
    all: inherit;
}

Π­Ρ‚ΠΎ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… all, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: эта дСкларация Π·Π°Π΄Π°Π΅Ρ‚ элСмСнту наслСдованиС Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ всСх свойств Π΅Π³ΠΎ родитСля, Π² Ρ‚ΠΎΠΌ числС ΠΈ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ элСмСнту. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈΡΡŒ всС свойства CSS, Π²Π°ΠΌ это Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ β€” это крайняя ΠΌΠ΅Ρ€Π° ΠΈ ΠΎΠ½Π° частично ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ нСстилизованный элСмСнт ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π΅Π³ΠΎ свойствами Π² CSS. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ эту Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Π½Π΅ опрСдСляСтС значСния для всСх свойств CSS, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ°ΡΠΊΠ°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄ΡƒΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для наслСдования, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅ стили Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ это относится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS, Π° Π½Π΅ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² SVG. Если Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS β€” ΠΎΠ½ унаслСдуСт стили, ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅Ρ‚.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наслСдованиС ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ всСх стилСй <use>, Π½ΠΎ Ρ‡Ρ‚ΠΎ Ссли Ρƒ вас ΠΈΠΊΠΎΠ½ΠΊΠ°, состоящая ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов ΠΈ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΎΠ½ΠΈ унаслСдовали ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ? Π§Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ² Π·Π°Π»ΠΈΠ²ΠΊΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ²? Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ стиля Π² <use> ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. Нам Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΡΠΊΠ°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π° ΠΊ Π½ΡƒΠΆΠ½Ρ‹ΠΌ элСмСнтам.

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ CSS

currentColor для оформлСния содСрТимого <use>

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ CSS currentColor Π² сочСтании с Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ, описанной Π²Ρ‹ΡˆΠ΅, позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ†Π²Π΅Ρ‚Π° для элСмСнта, Π° Π½Π΅ ΠΎΠ΄ΠΈΠ½. Π“ΠΎΠ΄ Π½Π°Π·Π°Π΄ Ѐабрис Π’Π°ΠΉΠ½Π±Π΅Ρ€Π³ написал ΠΎΠ± этом ΡΡ‚Π°Ρ‚ΡŒΡŽ Π² своСм Π±Π»ΠΎΠ³Π΅ Π½Π° Codepen.

ИдСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ <use> свойства fill ΠΈ color, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ°ΡΠΊΠ°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти свойства ΠΊ содСрТимому <use>, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ currentColor. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ это минималистичноС Π»ΠΎΠ³ΠΎ Codrops, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ 2 Ρ†Π²Π΅Ρ‚Π° β€” ΠΎΠ΄ΠΈΠ½ для ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅ΠΉ ΠΊΠ°ΠΏΠ»ΠΈ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ для Π·Π°Π΄Π½Π΅ΠΉ.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°Ρ‡Π½Π΅ΠΌ с ΠΊΠΎΠ΄Π° для этого изобраТСния: Ρƒ нас Π΅ΡΡ‚ΡŒ symbol, содСрТащий описаниС ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈ Ρ‚Ρ€ΠΈ экзСмпляра <use>, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ экзСмпляра Π»ΠΎΠ³ΠΎ.

<svg>
<symbol viewBox="0 0 23 30">
    <path fill="#aaa" d="M22.63,18.261c-0.398-3.044-2.608-6.61-4.072-9.359c-1.74-3.271-3.492-5.994-5.089-8.62l0,0   c-1.599,2.623-3.75,6.117-5.487,9.385c0.391,0.718,0.495,1.011,0.889,1.816c0.143,0.294,0.535,1.111,0.696,1.43   c0.062-0.114,0.582-1.052,0.643-1.162c0.278-0.506,0.54-0.981,0.791-1.451c0.823-1.547,1.649-2.971,2.469-4.33   c0.817,1.359,1.646,2.783,2.468,4.33c0.249,0.47,0.513,0.946,0.791,1.453c1.203,2.187,2.698,4.906,2.96,6.895   c0.292,2.237-0.259,4.312-1.556,5.839c-1.171,1.376-2.824,2.179-4.663,2.263c-1.841-0.084-3.493-0.887-4.665-2.263   c-0.16-0.192-0.311-0.391-0.448-0.599c-0.543,0.221-1.127,0.346-1.735,0.365c-0.56-0.019-1.095-0.127-1.599-0.313   c1.448,3.406,4.667,5.66,8.447,5.78C19.086,29.537,23.469,24.645,22.63,18.261z"/>
    <path fill="#ddd" d="M6.177,11.659c0.212,0.367,0.424,0.747,0.635,1.136c0.164,0.303,0.333,0.606,0.512,0.927   c0.683,1.225,1.618,2.898,1.755,3.937c0.144,1.073-0.111,2.056-0.716,2.769c-0.543,0.641-1.315,1.014-2.186,1.067   c-0.87-0.054-1.643-0.43-2.186-1.067c-0.604-0.713-0.858-1.695-0.715-2.771c0.137-1.036,1.072-2.712,1.755-3.936   c0.18-0.32,0.349-0.623,0.513-0.927C5.752,12.404,5.964,12.026,6.177,11.659 M6.177,5.966L6.177,5.966   c-1.02,1.649-2.138,3.363-3.247,5.419c-0.932,1.728-2.344,3.967-2.598,5.88c-0.535,4.014,2.261,7.09,5.846,7.203   c3.583-0.113,6.379-3.189,5.845-7.203c-0.255-1.912-1.666-4.152-2.598-5.88C8.314,9.329,7.196,7.617,6.177,5.966L6.177,5.966z"/>
</symbol>
</svg>
<svg>
  <use xlink:href="#codrops"/>
</svg>
<svg>
  <use xlink:href="#codrops"/>
</svg>
<svg>
  <use xlink:href="#codrops"/>
</svg>

Если ΠΌΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ (fill) Π² элСмСнтС <use> для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра, этот Ρ†Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ унаслСдован ΠΎΠ±ΠΎΠΈΠΌΠΈ каплями, Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся нашСй Ρ†Π΅Π»ΡŒΡŽ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ вмСсто опрСдСлСния Ρ†Π²Π΅Ρ‚Π° Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΠΈ каскадирования Π΅Π³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ currentColor , Ρ‡Ρ‚ΠΎΠ±Ρ‹ мСньшая капля Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅ Π±Ρ‹Π»Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΈ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства color.

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ currentColor Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот Ρ†Π²Π΅Ρ‚ β€” это Π±ΡƒΠ΄Π΅Ρ‚ мСсто Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, Π³Π΄Π΅ опрСдСляСтся ΠΈΠΊΠΎΠ½ΠΊΠ°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ <symbol>. Π’Π΅ΠΏΠ΅Ρ€ΡŒ этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ выглядит Ρ‚Π°ΠΊ:

<svg>
	<symbol viewBox="0 0 23 30">
		<path fill="#aaa" d="..."/>
		<path fill="currentColor" d="..."/>
	</symbol>
</svg>

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ fill ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΏΠ»ΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π΅ΠΉ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ (fill) ΠΎΡ‚ элСмСнта <use> с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ inherit.

Если Π±Ρ‹ ΠΌΡ‹ использовали ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово inherit, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π½ΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΎΡ‚ <use>, ΠΎΠ±Π΅ части унаслСдовали Π±Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° currentColor Π½Π΅ ΠΈΠΌΠ΅Π»Π° Π±Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ эффСкта. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² этой Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· CSS, Π° ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ currentColor.

<svg>
	<symbol viewBox="0 0 23 30">
		<path d="..."/>
		<path fill="currentColor" d="..."/>
	</symbol>
</svg>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойства fill ΠΈ color Π² <use> ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ стили ΠΊ ΠΊΠ°ΠΏΠ»Π΅ ΠΈΠ· Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ°:

.codrops-1 {
  fill: #4BC0A5;
  color: #A4DFD1;
}
.codrops-2 {
  fill: #0099CC;
  color: #7FCBE5;
}
.codrops-3 {
  fill: #5F5EC0;
  color: #AEAFDD;
}

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт <use> ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ собствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fill ΠΈ color. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… Ρ†Π²Π΅Ρ‚ fill каскадируСтся ΠΈ заполняСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° fill, Π° Ρ†Π²Π΅Ρ‚ свойства color ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для задания Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° fill Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π΅.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΏΡ€ΠΎΡΠΎΡ‡ΠΈΠ»ΠΎΡΡŒ Π² стили содСрТимого элСмСнта <use> Π·Π° счСт использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ currentColor. Π˜Π·ΡΡ‰Π½ΠΎ, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π°, Π»ΠΈ?

Π’ΠΎΡ‚ Π΄Π΅ΠΌΠΎ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:

See the Pen aZmZXV by prgssr (@prgssr) on CodePen.

Π­Ρ‚ΠΎΡ‚ двухцвСтная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄Π²ΡƒΡ…Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… Π»ΠΎΠ³ΠΎ. Π’ своСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ѐабрис создал Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсии Π»ΠΎΠ³ΠΎ Sass, измСняя Ρ†Π²Π΅Ρ‚ тСкста ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΠΎΠ½Π°.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово currentColor это СдинствСнная доступная пСрСмСнная CSS Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Однако, Ссли Π±Ρ‹ Ρƒ нас Π±Ρ‹Π»ΠΎ Π±Ρ‹ большС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΌΡ‹ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для заполнСния Π΅Ρ‰Π΅ большСго количСства Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² содСрТимом <use>? Π”Π°, ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹. АмСлия Π‘Π΅Π»Π»Π°ΠΌΠΈ-Ройдс Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ прСдставила ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ этого Π² своСм Π±Π»ΠΎΠ³Π΅ Π½Π° Codepen. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π‘ΡƒΠ΄ΡƒΡ‰Π΅Π΅: ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ содСрТимого

<use> c ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ кастомныС свойства CSS (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ CSS) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ содСрТимоС <use>, Π½Π΅ вынуТдая Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ значСния ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Как сказано Π½Π° MDN, CSS ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ это сущности, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π²Π΅Π±-страниц для хранСния ΠΈ использования ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ всСму Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ. Они Π·Π°Π΄Π°ΡŽΡ‚ΡΡ с использованиСм кастомных свойств ΠΈ доступны с использованиСм спСцифичной Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ var(). Они ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· CSS-прСпроцСссоров, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ нСспособны ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ прСпроцСссоров. (Π‘ΠΊΠΎΡ€ΠΎ Π² справочникС CSS появится ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎ Π½ΠΈΡ…).

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ CSS, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ прСпроцСссоров ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΉΡ‚ΠΈ мноТСство использований, Π½ΠΎ цвСтовая тСмизация это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых распространСнных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². И Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ SVG.

ΠœΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с изобраТСния, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² symbol ΠΈ инстанцированного с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ <use>, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ; концСпция примСнСнная ΠΊ ΡΡ‚ΠΈΠ»ΡŽ содСрТимого <use> ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ количСству элСмСнтов <use> Π½Π° вашС усмотрСниС.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этого ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€ΠΎΠ±ΠΎΡ‚Π°-хипстСра, созданного Freepik.

Код Ρ€ΠΎΠ±ΠΎΡ‚Π° содСрТит всС ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚Π°:

<svg>
    <symbol viewBox="0 0 340 536">
        <path d="..." fill="#fff" />
        <path d="..." fill="#D1312C" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#fff" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#1E8F90"  />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#fff" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#F2B42B" />
        <path d="..." fill="#fff" />
     
       <!-- rest of the shapes -->
    </symbol>
</svg>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ CSS Π² качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° fill для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°. ВмСсто этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Ρ†Π²Π΅Ρ‚ΠΎΠ² Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство CSS fill, сохранив Π½Π° мСстС всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ fill. Π­Ρ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ CSS β€” ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² своСм ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Ссли ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ CSS Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

Π‘ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

<svg>
    <symbol viewBox="0 0 340 536">
        <path d="..." fill="#fff" />
        <path d="..." fill="#D1312C" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#fff" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#fff" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#F2B42B" />
        <path d="..." fill="#fff" />
       
        <!-- rest of the shapes -->
    </symbol>
</svg>

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½Π»Π°ΠΉΠ½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ style ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ CSS-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для задания Ρ†Π²Π΅Ρ‚Π° Π·Π°Π»ΠΈΠ²ΠΊΠΈ (fill). А Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΡ…, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ fill.

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ значСния для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² CSS. Но сначала инстанцируСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ <use>:

<svg>
    <<use> xlink:href="#robot" />
</svg>

ПослС этого Π·Π°Π΄Π°Π΄ΠΈΠΌ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для use, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΊΠ°ΡΠΊΠ°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ Π΅Π³ΠΎ содСрТимому. Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π° создадут Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ схСму рисунка. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² нашСм Ρ€ΠΎΠ±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Ρ€ΠΈ основных Ρ†Π²Π΅Ρ‚Π°, ΠΌΡ‹ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΈΡ… primary, secondary ΠΈ tertiary.

#robot-1 {
  --primary-color: #0099CC;
  --secondary-color: #FFDF34;
  --tertiary-color: #333;
}

Π’Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойства fill ΠΈ color вмСстС с этими ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΈ Π±Π΅Π· этого. Π˜Ρ‚Π°ΠΊ, с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π½Π°ΡˆΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ€ΠΎΠ±ΠΎΡ‚ выглядит Ρ‚Π°ΠΊ:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠΏΠΈΠΉ изобраТСния ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ², создав Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹. Π­Ρ‚ΠΎ частично ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами Π² зависимости ΠΎΡ‚ контСкста ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… случаях.

Как Π±Ρ‹Π»ΠΎ упомянуто, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ CSS-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΡ… для заполнСния свойства fill ΠΈ пСрСписывания Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Но Ρ‡Ρ‚ΠΎ происходит, Ссли Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ CSS, Π½ΠΎ Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² стилях ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

Для нашСго Ρ€ΠΎΠ±ΠΎΡ‚Π°-хипстСра ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ зависят ΠΎΡ‚ Π½ΠΈΡ… β€” вСдь ΠΎΠ½ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ разрабатывался для Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Π²Ρ‹ запуститС этот ΠΊΠΎΠ΄ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ с объявлСниСм этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Если значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ Π·Π°Π΄Π°Π½Ρ‹ ΠΈΠ»ΠΈ Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой Ρ†Π²Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ для Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΠΈ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠΈ Π² SVG.

ΠžΠ±ΠΎΠΉΡ‚ΠΈ это ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Π΄Π°Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ†Π²Π΅Ρ‚ Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Бинтаксис ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: вмСсто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ var() ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятой β€” имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ запасной Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠ΄ нашСго Ρ€ΠΎΠ±ΠΎΡ‚Π° выглядит Ρ‚Π°ΠΊ:

<svg>
    <symbol viewBox="0 0 340 536">
        <path d="..." fill="#fff" />
        <path d="..." fill="#D1312C" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#fff" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#1E8F90" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#fff" />
        <path d="..." fill="#6A4933" />
        <path d="..." fill="#F2B42B" />
        <path d="..." fill="#fff" />

         <!-- rest of the shapes -->
    </symbol>
</svg>

И это всС. Если Ρƒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π² запасС Ρ†Π²Π΅Ρ‚, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ этого Ρ€ΠΎΠ±ΠΎΡ‚Π° Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π½Π° страницС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ <use>, задавая для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π° ΠΈ получая Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ Π² ΠΈΡ‚ΠΎΠ³Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Π΅ΠΌΠΎ, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠΏΠΈΠΉ Ρ€ΠΎΠ±ΠΎΡ‚Π° ΠΈ Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π»ΡŽΠ±Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ β€” Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ для этого ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS:

See the Pen vKXXYP by prgssr (@prgssr) on CodePen.

Если Π²Ρ‹ просматриваСтС это Π΄Π΅ΠΌΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS, Ρ‚ΠΎ срСди ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π³ΠΎΠ»ΡƒΠ±ΡƒΡŽ с ΠΆΠ΅Π»Ρ‚Ρ‹ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ Ρ€ΠΎΠ±ΠΎΡ‚Π°, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈ Π·Π°Π΄Π°Π²Π°Π»ΠΈ Π² CSS-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π˜Π½Π°Ρ‡Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Ρ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠ² с Ρ†Π²Π΅Ρ‚ΠΎΠΌ запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Подводя ΠΈΡ‚ΠΎΠ³ΠΈ

Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° большая ΡΡ‚Π°Ρ‚ΡŒΡ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности каскада CSS, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ содСрТимого <use>, Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ³ΠΎ Π² Ρ‚Π΅Π½Π΅Π²ΠΎΠΌ DOM, становится ΠΌΠ΅Π½Π΅Π΅ слоТным. А с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ CSS (currentColor ΠΈΠ»ΠΈ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ свойствами) ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ DOM ΠΈ ΠΊΠ°ΡΡ‚ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, ΠΊΠ°ΠΊ Ρ…ΠΎΡ‚ΠΈΠΌ, создавая ΠΏΡ€ΠΈ этом запасной Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° случай ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π›ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ ΠΎΡ‡Π΅Π½ΡŒ симпатично сочСтаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS ΠΈ SVG. МнС нравятся ΠΈΡ… совмСстный Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», особСнно Π² части создания ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы оформлСния содСрТимого<use> Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ΡΡ дискуссии ΠΎΠ± использовании ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CSS Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² SVG β€” поэтому данная ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅.

Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ содСрТимым SVG являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· слоТных вопросов SVG, это связано с ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈ мСстом располоТСния ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π—Π΄Π΅ΡΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ смСТных вопросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… статСй.

Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов β€’ ΠŸΡ€ΠΎ CSS

SVG-Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ». Для этих Ρ†Π΅Π»Π΅ΠΉ сущСствуСт нСсколько Ρ‚Π΅Π³ΠΎΠ²: g, defs ΠΈ symbol. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, Π³Ρ€ΡƒΠΏΠΏΡ‹ элСмСнтов ΠΈ символы ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

g

Π’Π΅Π³ g слуТит для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„ΠΈΠ³ΡƒΡ€ ΠΏΠΎ смыслу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΡƒΡŽ структуру Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π“Ρ€ΡƒΠΏΠΏΠ° элСмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

<svg>
  
  <g>
    <circle fill="purple" r="20" cx="25" cy="25"/>
    <circle fill="crimson" r="20" cx="70" cy="25"/>
    <circle fill="red" r="20" cx="115" cy="25"/>
    <circle fill="orange" r="20" cx="160" cy="25"/>
    <circle fill="gold" r="20" cx="205" cy="25"/>
    <circle fill="yellow" r="20" cx="250" cy="25"/>
  </g>

  
  <g>
    <circle fill="greenyellow" r="20" cx="25" cy="70"/>
    <circle fill="yellowgreen" r="20" cx="70" cy="70"/>
    <circle fill="green" r="20" cx="115" cy="70"/>
    <circle fill="steelblue" r="20" cx="160" cy="70"/>
    <circle fill="darkviolet" r="20" cx="205" cy="70"/>
    <circle fill="purple" r="20" cx="250" cy="70"/>
  </g>
</svg>

Π“Ρ€ΡƒΠΏΠΏΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°Π»ΠΈΠ²ΠΊΡƒ ΠΈ Ρ€Π°ΠΌΠΊΠΈ. Π‘Ρ‚ΠΈΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для Ρ„ΠΈΠ³ΡƒΡ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ своСго стиля:

<svg>
  
  <g fill="tomato">
    <ellipse rx="30" ry="10" cx="25" cy="25"
             transform="rotate(-45 25 25)"/>
    <ellipse rx="30" ry="10" cx="105" cy="25"
             transform="rotate(-45 105 25)"/>
  </g>

  
  <g fill="skyblue">
    <ellipse rx="30" ry="10" cx="65" cy="25"
             transform="rotate(45 65 25)"/>
    <ellipse rx="30" ry="10" cx="145" cy="25"
             transform="rotate(45 145 25)"/>
  </g>
</svg>

Π“Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ ΠΊΠ°ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты Π² HTML, Π° скорСС ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° элСмСнтов Π² графичСских Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ….

Π“Ρ€ΡƒΠΏΠΏΡ‹ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ сСбя Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ своим содСрТимым: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ трансформации сразу для Π³Ρ€ΡƒΠΏΠΏΡ‹ элСмСнтов, Π±Π΅Π· нСобходимости Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ всСй Π³Ρ€ΡƒΠΏΠΏΠ΅ сразу, ΠΈ Π΅Π³ΠΎ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ всС элСмСнты Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹. ΠŸΡ€ΠΈ этом свойства Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ элСмСнтам, Π½Π΅ пСрСопрСдСляя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅. НапримСр, Ссли Ρƒ элСмСнта Π·Π°Π»ΠΈΠ²ΠΊΠ° красная, Π° Ρƒ Π³Ρ€ΡƒΠΏΠΏΡ‹ зСлСная, β€” Π·Π°Π»ΠΈΠ²ΠΊΠ° элСмСнта останСтся красной.

Π§Ρ‚ΠΎΠ±Ρ‹ элСмСнт ΠΌΠΎΠ³ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρƒ Π½Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ своСго оформлСния.

defs

Π’Π΅Π³ defs слуТит Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ элСмСнтов ΠΈ эффСктов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ·ΠΆΠ΅. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ‚Π΅Π³Π° Π½Π΅ отобраТаСтся Π½Π° страницС.

<svg>
  
  <defs>
    
    <g>
      <linearGradient x1="0%" y1="0%" x2="90%" y2="90%">
        <stop stop-color="crimson" offset="0%"/>
        <stop stop-color="gold" offset="100%"/>
      </linearGradient>
      <linearGradient x1="0%" y1="0%" x2="90%" y2="90%">
        <stop stop-color="yellowgreen" offset="0%"/>
        <stop stop-color="green" offset="100%"/>
      </linearGradient>
    </g>

    
    <g>
      <circle fill="url(#g1)" r="50"/>
      <rect fill="url(#g2)"/>
    </g>
  </defs>

  
  <use xlink:href="#sun" x="120" y="60"/>
  <use xlink:href="#rect" x="0" y="110" transform="rotate(10 100 110)"/>
</svg>

symbol

Π‘ΠΈΠΌΠ²ΠΎΠ» β€” это Π³Ρ€ΡƒΠΏΠΏΠ° Ρ„ΠΈΠ³ΡƒΡ€, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ defs, Π½Π΅ отобраТаСтся Π½Π° страницС, ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ g, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π΅Ρ‰Ρ‘ Ρ€Π°Π·. Π’Π½ΡƒΡ‚Ρ€ΠΈ символа дСйствуСт своя систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

<svg>
  <defs>
    <g>
      <circle fill="gold" r="30"/>
    </g>

    
    <symbol>
      <polyline points="15 15 5 10 15 5"
        stroke="crimson" fill="none" stroke-width="3"/>
    </symbol>

    
    <symbol>
      <g stroke="brown">
        <polyline points="0 0 0 25" stroke-width="3"
          transform="translate(25 100)"/>
        <polyline points="0 0 0 25" stroke-width="3"
          transform="translate(45 100)"/>
        <polyline points="0 0 12 0" stroke-width="3"
          transform="translate(19 125)"/>
        <polyline points="0 0 12 0" stroke-width="3"
          transform="translate(40 125)"/>
      </g>

      <use xlink:href="#mouth" x="83" y="35"/>
      <use xlink:href="#yellowball" x="90" y="55"
        transform="scale(.75)"/>
      <use xlink:href="#yellowball" x="35" y="75"/>

      <polyline points="55 70 45 90 20 80"
        stroke="orange" stroke-width="3"
        fill="none"/>

      <circle fill="black" r="5" cx="75" cy="35"/>
      <circle fill="gray" r="1" cx="77" cy="35"/>
    </symbol>
  </defs>

  
  <use xlink:href="#bird" x="15" y="15"/>
  
  <use xlink:href="#bird" x="0" y="35" transform="translate(225 -20) scale(-1,1)"/>
</svg>

use

Π’Π΅Π³, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SVG-элСмСнты. МоТно ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ элСмСнты Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ HTML-страницы. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ элСмСнтов Π² Π½Π°Ρ‡Π°Π»Π΅ страницы, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Π½ΡƒΠΆΠ½Ρ‹Ρ… мСстах.

Копии ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту:

<svg>
  <defs>
    
    <symbol>
      <circle r="50" fill="gold" cx="50" cy="50"/>
      <circle r="35" fill="orangered" cx="50" cy="50"/>
      <circle r="20" fill="crimson" cx="50" cy="50"/>
      <circle r="5" fill="maroon" cx="50" cy="50"/>
     </symbol>
  </defs>

  
  <use xlink:href="#color-wheel" x="20" y="20"/>
  
  <use xlink:href="#color-wheel" x="140" y="20"/>
</svg>

ПолоТСниС ΠΊΠΎΠΏΠΈΠΈ опрСдСляСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ΠŸΡ€ΠΈ этом Π²Π½ΡƒΡ‚Ρ€ΠΈ символа своя систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

ΠŸΡ€ΠΈ вставкС символа ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота (width ΠΈ height) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π½Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π° Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠΏΠΈΠΈ (ΠΊΠ°ΠΊ Ρƒ ΠΏΡ€Π°Π²ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ (g) ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚. Для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΏΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ трансформации.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Π²ΠΎΠ΄ΠΊΡƒ, Π·Π°Π»ΠΈΠ²ΠΊΡƒ ΠΈ трансформации:

<svg>
  <defs>
    
    <symbol>
      <rect x="2" y="2"/>
     </symbol>
  </defs>

  
  <use xlink:href="#s-rect" x="20" y="20"/>
  
  <use xlink:href="#s-rect" x="140" y="20"
       fill="yellowgreen"/>
  
  <use xlink:href="#s-rect" x="20" y="80"
       fill="gold" stroke="orange" stroke-width="4"/>
  
  <use xlink:href="#s-rect" x="140" y="80"
       fill="skyblue" stroke="steelblue" stroke-width="2"
       transform="rotate(-25 190 92)"/>
</svg>

Копиям ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ классы:

Π”ΠΎΠΌΠΈΠΊ с icomoon.io

<svg>
  <style>
 .col-1 {
    fill: #F35C78;
    }
  .col-2 {
    fill: #E77D6D;
    }
  .col-3 {
    fill: #D99B64;
    }
  .col-4 {
    fill: #C8B357;
    }
  .col-5 {
    fill: #B2CC49;
    }
  </style>

  <defs>
    
    <path d="M32 18.451l-16-12.42-16 12.42v-5.064l16-12.42 16 12.42zM28 18v12h-8v-8h-8v8h-8v-12l12-9z"/>
  </defs>

  
  <use xlink:href="#house"
      
       x="20" y="10"
       transform="rotate(35 36 26)"/>
  <use xlink:href="#house"
      
       x="67" y="10"
       transform="rotate(100 83 26)"/>
  <use xlink:href="#house"
      
       x="114" y="10"
       transform="rotate(140 130 26)"/>
  <use xlink:href="#house"
      
       x="161" y="10"
       transform="rotate(30 177 26)"/>
  <use xlink:href="#house"
      
       x="208" y="10"
       transform="rotate(100 224 26)"/>
</svg>

Π₯ΠΎΡ€ΠΎΡˆΠΎ структурированный Ρ„Π°ΠΉΠ» сдСлаСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ быстрСС ΠΈ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Π΅Π΅, Π° ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ символов ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ SVG: особСнности, прСимущСства ΠΈ нСдостатки.

Vasyl Holiney ОбновлСно Loading…

БСгодня Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ SVG. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ вСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Ρ‡Π΅ΠΌ отличаСтся ΠΎΡ‚ растра ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΡƒΡ‚.

SVG β€” XML язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° основС Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. По сути это тСкстовый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π²Π΅Π±-стандартом для описания Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ. РазрабатываСтся с 1999 Π³ΠΎΠ΄Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка программирования графичСскиС элСмСнты сайта.

Акроним: Scalable Vector Graphics.

Π’ΠΈΠΏ изобраТСния: Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ.Β 

Π’ΠΈΠΏ сТатия: ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ сТимаСтся, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сТат Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° .svg

Π€ΠΎΡ€ΠΌΠ°Ρ‚ SVG ΠΌΡ‹ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΅Π³ΠΎ особСнности Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ:

  • Ρ€Π°Π·ΠΌΠ΅Ρ€ SVG-Ρ„Π°ΠΉΠ»Π° Π½Π΅ зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ Ρ†Π²Π΅Ρ‚Π°. На вСс влияСт ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈ Π»ΠΈΠ½ΠΈΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅;
  • Π²ΠΎ врСмя ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ тСряСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, поэтому замСняСт собой нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² растровых Ρ„Π°ΠΉΠ»ΠΎΠ² для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ экрана;
  • ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈ индСксации поисковыми систСмами;
  • ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ встроСн Π² html-ΠΊΠΎΠ΄ сайта, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ вмСстС с Π½ΠΈΠΌ ΠΈ загруТаСтся быстрСС, Ρ‡Π΅ΠΌ изобраТСния Π² .png ΠΈΠ»ΠΈ .jpeg.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° .svgΒ 

ΠŸΠ»ΡŽΡΡ‹:

  • ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π±Π΅Π· измСнСния качСства β€” ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈ Π½Π° экранС смартфона, ΠΈ Π½Π° большом экранС Retina;
  • простота создания: программисты ΠΏΠΈΡˆΡƒΡ‚ ΠΈΠΊΠΎΠ½ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ xml-ΠΊΠΎΠ΄Π°, Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ Ρ€ΠΈΡΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ слоТныС элСмСнты Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Adobe Illustrator, Corel Draw, Sketch ΠΈΠ»ΠΈ Macromedia Freehand;
  • ΠΌΠ°Π»Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ .svg Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС мСста, Ρ‡Π΅ΠΌ ΠΈΡ… Π±Π»ΠΈΠ·Π½Π΅Ρ†Ρ‹, созданныС ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ растровой Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ;
  • Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ CSS ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° сайтС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ° Π½Π° страницС, Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ javascript Π·Π°Π΄Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ элСмСнтов. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SVG-Ρ„Π°ΠΉΠ» Π² графичСском Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅;
  • чСткая прорисовка Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ.

ΠœΠΈΠ½ΡƒΡΡ‹:

  • Π½Π΅ поддСрТиваСтся старыми Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ β€” Internet Explorer 8 ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅;Β 
  • WordPress воспринимаСт .svg ΠΊΠ°ΠΊ врСдоносный ΠΊΠΎΠ΄, поэтому Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠžΠ±ΠΎΠΉΡ‚ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²;
  • ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ описаны простыми Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΡ… частями: ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ, прямая, эллипс, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈ Ρ‚.Π΄.

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ .svg ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ΠΈΠΊΠΎΠ½ΠΎΠΊ, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΈ элСмСнтов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для Π²Π΅Π±-сайтов. Но ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния этого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΡƒ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹, Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ судоку ΠΈΠ»ΠΈ кроссвордов.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ растягиваСтся ΠΈ сТимаСтся Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана, ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ°Π»Ρ‹ΠΉ вСс ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ Π½Π° устройствах с высокой ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ пиксСлСй.

Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΎΡ‚Π΄Π΅Π»Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π° ΠΈ Π³Π»Π°Π²Π½Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ΄Π΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Logaster. Автор ΠΊΠ½ΠΈΠ³ΠΈ «Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ ΠΈ Π½Π΅ Ρ€Π°Π·ΠΎΡ€ΠΈΡ‚ΡŒΡΡΒ». Π¦Π΅Π½ΠΈΡ‚ экспСртный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ простой язык для объяснСния слоТных ΠΈΠ΄Π΅ΠΉ.

SVG

5. Знакомимся с Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎΠΌ сохранСния

  • SVG Profiles
    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ SVG 1.1
  • Fonts
    Type / Convert to outlines — Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «ΠΏΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ Π² ΠΊΡ€ΠΈΠ²Ρ‹Π΅», Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΈ Π½ΡƒΠΆΠ½ΠΎ, ΠΏΡ€ΠΈ этом сСлСкт Subsetting становится нСдоступным для измСнСния.
    Type / SVG — НуТСн Π² случаС, Ссли Π² SVG встраиваСтся тСкст
    Type / Subsetting — ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов с Ρ†Π΅Π»ΡŒΡŽ дальнСйшСй возмоТности рСдактирования тСкста Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ исходного ΠΊΠΎΠ΄Π° ΠΈ прСдставлСния Π΅Π³ΠΎ графичСски ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ SVG Ρ„Π°ΠΉΠ»Π°.
  • Options
    Image Location / Embed — ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π² состав SVG Ρ„Π°ΠΉΠ»Π°
    Image Location / Link — ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ ΠΈΡ… рядом с Ρ„Π°ΠΉΠ»ΠΎΠΌ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅, ΡƒΠΊΠ°Π·Π°Π² Π² SVG Ρ„Π°ΠΉΠ»Π΅ ссылку Π½Π° Π½ΠΈΡ…. Если Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ΅, Ρ‚ΠΎ SVG Ρ„Π°ΠΉΠ» пСрСстанСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ.
    Preserve Illustrator Capabilities — Π³Π°Π»ΠΎΡ‡ΠΊΠ°, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ рСдактирования Ρ„Π°ΠΉΠ»Π° Π² ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€Π΅
  • More options
    Π’Ρ€ΠΎΠ³Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π°ΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.
  • SVG Code
    Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ SVG Ρ„Π°ΠΉΠ» Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ сразу.

ΠŸΡ€ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Image Location / Embed:

По структурС ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ взглядом Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ вставки растровой Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Всё Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² SVG ΠΎΡ‡Π΅Π½ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎ Π²ΠΈΠ΄Π΅Π½ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ части Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ Π² XML Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΊΠΎΠ΄ растрового изобраТСния Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π°Π½Π°Π»ΠΈΠ·Ρƒ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ поддаСтся.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€, с 666 строки ΠΈΠ΄Π΅Ρ‚ растровая Π΄ΠΈΡ‡ΡŒ, Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π»ΠΎ Π² нашСм случаС:

ΠŸΡ€ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Image Location / Link:

Π’ ΠΊΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½Π΅Π΅ замСтная вставка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Image Location / Embed!

Если Π² Ρ„Π°ΠΉΠ»Π΅ оказался растровый Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎ Π΅Π³ΠΎ рСкомСндуСтся Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, пСрСрисовав растровый слой Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ качСства ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

SVG спрайты

Π’ цСлях ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ удобства ΠΏΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌ использовании SVG ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ»-спрайт. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° возьмСм нСсколько ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:

<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
	<g><path d="M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm0,26A12,12,0,1,1,28,16,12,12,0,0,1,16,28Z"/><path d="M17,7h25v8.52a2,2,0,0,0,.75,1.56l4.63,3.7,1.24-1.56L17,15.52Z"/></g>
</svg>

<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
	<g><polygon points="28.71 4.71 27.29 3.29 16 14.59 4.71 3.29 3.29 4.71 14.59 16 3.29 27.29 4.71 28.71 16 17.41 27.29 28.71 28.71 27.29 17.41 16 28.71 4.71"/></g>
</svg>

<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
	<g><path d="M16,2,3,6.28V12C3,26.61,15.63,29.94,15.76,30L16,30l.24-.06c.13,0,12.76-3.36,12.76-18V6.28ZM27,12c0,12.1-9.31,15.45-11,16C14.31,27.45,5,24.1,5,12V7.72L16,4.05,27,7.72Z"/><path d="M11.59,15l-1.42,1.41,2.29,2.29a2,2,0,0,0,1.42.59,2,2,0,0,0,1.41-.59l6.54-6.53-1.42-1.42-6.53,6.54Z"/></g>
</svg>

Π£ SVG Π΅ΡΡ‚ΡŒ нСсколько элСмСнтов-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² – <g>, <defs> ΠΈ <symbol>, Π»ΡƒΡ‡ΡˆΠΈΠΌ для спрайтов являСтся <symbol> Ρ‚.ΠΊ. ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠ°ΠΊ Ρƒ <svg>.

Π˜Ρ‚Π°ΠΊ, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» icons.svg, Π² Π½Ρ‘ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ <svg>...</svg>, Π΄Π°Π»Π΅Π΅ Π² Π½Π΅Π³ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ изобраТСния, с Π·Π°ΠΌΠ΅Π½ΠΎΠΉ <svg> Π½Π° <symbol> оставляя всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ добавляСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ id для дальнСйшСго Π²Ρ‹Π²ΠΎΠ΄Π°.

<svg>
	<symbol viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
		<g><path d="M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm0,26A12,12,0,1,1,28,16,12,12,0,0,1,16,28Z"/><path d="M17,7h25v8.52a2,2,0,0,0,.75,1.56l4.63,3.7,1.24-1.56L17,15.52Z"/></g>
	</symbol>
	<symbol viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
		<g><polygon points="28.71 4.71 27.29 3.29 16 14.59 4.71 3.29 3.29 4.71 14.59 16 3.29 27.29 4.71 28.71 16 17.41 27.29 28.71 28.71 27.29 17.41 16 28.71 4.71"/></g>
	</symbol>
	<symbol viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
		<g><path d="M16,2,3,6.28V12C3,26.61,15.63,29.94,15.76,30L16,30l.24-.06c.13,0,12.76-3.36,12.76-18V6.28ZM27,12c0,12.1-9.31,15.45-11,16C14.31,27.45,5,24.1,5,12V7.72L16,4.05,27,7.72Z"/><path d="M11.59,15l-1.42,1.41,2.29,2.29a2,2,0,0,0,1.42.59,2,2,0,0,0,1.41-.59l6.54-6.53-1.42-1.42-6.53,6.54Z"/></g>
	</symbol>
</svg>

Π’Ρ‹Π²ΠΎΠ΄ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнта <use> с ссылкой Π½Π° Ρ„Π°ΠΉΠ» спрайта ΠΈ id изобраТСния.

<svg><use xlink:href="/icons.svg#icon-1"></use></svg>
<svg><use xlink:href="/icons.svg#icon-2"></use></svg>
<svg><use xlink:href="/icons.svg#icon-3"></use></svg>
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠœΠΈΠ½ΡƒΡΡ‹

  • Если ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» спрайта Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‚ΠΎ изобраТСния выводится Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.
  • Π’ старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… (Π΄ΠΎ IE9) Ρ‚Π΅Π³ <use> Π½Π΅ поддСрТиваСтся. Но для Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ https://github.com/jonathantneal/svg4everybody.

img β†’ SVG β†’ Fonts β€” Π”ΠΈΠ·Π°ΠΉΠ½ Π½Π° vc.ru

ΠŸΡ€ΠΈΡ‘ΠΌ Π½Π΅ Π½ΠΎΠ²Ρ‹ΠΉ, Π½ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ.

2798 просмотров

ΠŸΠΎΠΈΡΠΊΠΎΠ²Ρ‹Π΅ систСмы остро Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сайта (экран Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, врСмя ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ) ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… условиях: скорости соСдинСния, устройства просмотра ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Один ΠΈΠ· ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ β€” это Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ изобраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π° сайтС. ΠŸΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΏΠΎ ΠΈΡ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ мноТСство:

  • Π‘Ρ€Π΅ΠΉΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹ ΠΈ мСдиазапросы Π² CSS (Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² зависимости ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ устройства).
  • JavaScript ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° сайт Π² Π²ΠΈΠ΄Π΅ исполнСния скрипта).
  • «ЛСнивая» Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° (с Chrome 76) ΠΏΡ€ΠΈ использовании Π² HTML Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° loading=»lazy».
  • «ДСдовскоС» сТатиС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° хостингС Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сСйчас Ρ€Π°Π·Π²ΠΈΡ‚Π° тСндСнция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SVG (Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ изобраТСния) вмСсто Ρ‚Π΅Ρ… ΠΆΠ΅ PNG, JPG.

НапримСр, ΠΈΠΊΠΎΠ½ΠΊΠΈ соцсСтСй ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ графичСскиС элСмСнты, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² вСрсткС, ΠΎΠ½Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ устройство просмотра Π·Π° счСт своих физичСских свойств ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

ВсС прСимущСства ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ….

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ всСго, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Π² Π²Π΅ΠΊΡ‚ΠΎΡ€ β€” довольно вострСбовано Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ «фриланса». Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΠΊΠΎΠ³Π΄Π° вСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π΅ бСрСтся ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… источников, Π° рисуСтся Π½Π° Π·Π°ΠΊΠ°Π·. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ копирования. Π‘Π°ΠΌΡ‹ΠΉ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ β€” это использованиС ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… SVG Π² Ρ„Π°ΠΉΠ» ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈ стилСй.

Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π•ΡΡ‚ΡŒ исходная ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG ΠΈ SVG.

Π”ΠΎΠΌΠΈΠΊ no name

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈΠ· Π½Π΅Π΅ Ρ„Π°ΠΉΠ» ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ². БСрвисов для этого сущСствуСт мноТСство, ΠΎΠ½ΠΈ бСсплатныС. ΠžΠΏΠΈΡˆΡƒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… (Π½Π΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°). Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ нашС SVG Π½Π° сСрвис:

1. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ. 2. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ. 3. ГСнСрируСм​

Π”Π°Π»Π΅Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ кастомизация (информация ΠΎΠ± авторствС, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅). Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ². Π’ Π½Π΅ΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°ΠΏΠΊΠ° Fonts ΠΈ Ρ„Π°ΠΉΠ» стилСй:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ гСнСрируСтся Ρ„Π°ΠΉΠ» style.css. Π’ Π΄Π°Π½Π½ΠΎΠΌ случая я Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π».

ВСрстаСм Ρ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ скачСнных ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

​ВСрстка ΠΏΠ΅Ρ€Π²ΠΎΠΉ странички

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ PNG, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” SVG, Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ символ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Π³ <i>. Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ изобраТСния для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· img, для Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ β€” Ρ‡Π΅Ρ€Π΅Π· font-size (Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°).

ΠšΡΡ‚Π°Ρ‚ΠΈ, классы Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π΅ создания ΡˆΡ€ΠΈΡ„Ρ‚Π°. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ класс ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ demo.html Ρ‡Π΅Ρ€Π΅Π· инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°:

​

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ нашСго Π΄ΠΎΠΌΠΈΠΊΠ° Π² этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…:

Π Π°Π·ΠΌΠ΅Ρ€ PNG

Π Π°Π·ΠΌΠ΅Ρ€ SVG

Π Π°Π·ΠΌΠ΅Ρ€ Π² ΡˆΡ€ΠΈΡ„Ρ‚Π΅β€‹

Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ сущСствСнная. ΠŸΡ€ΠΈ этом Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π° ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΎΠ½ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ SVG, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ увСличиваСтся само количСство Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠΏΡ‹Ρ‚Π°Π΅ΠΌΡΡ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ наш Π΄ΠΎΠΌΠΈΠΊ со страницы.

Π”ΠΎΠΌΠΈΠΊ Π² .png ΠΈ .svg сохраняСтся Π² своСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅

β€‹ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Π΄ΠΎΠΌΠΈΠΊ Π² Π²ΠΈΠ΄Π΅ символа β†’

​БохранСниС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ всСго HTML

Π§Π΅Ρ€Π΅Π· инспСктор Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ это класс​

Если Π΄Π°ΠΆΠ΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь Ρ„Π°ΠΉΠ» ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² графичСский элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π³ΠΊΠΈΠΌ «копипастом» Π·Π°Π±Ρ€Π°Ρ‚ΡŒ нСльзя.

НапослСдок β€” Π°ΡƒΠ΄ΠΈΡ‚ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ хостингС. УказываСтся лишь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG, ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠΊΠ°ΠΊΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ:

Понимаю, Ρ‡Ρ‚ΠΎ качСство ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ скринов ΠΈ тСкста оставляСт ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ, Π½ΠΎ я Ρ…ΠΎΡ‚Π΅Π» донСсти ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ.

Π—Π°Ρ€Π°Π½Π΅Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ Π·Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ вашС врСмя!

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ — Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ

ВСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях — ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ нСбольшиС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹, поэтому ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Π΄ΠΎ большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π²Π°ΡˆΡƒ Π²Π΅Π±-страницу.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : эта ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для обучСния вас SVG; Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π²Π΅Π±-страницы.

Π’ сСти Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ — растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ :

  • РастровыС изобраТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с использованиСм сСтки пиксСлСй — Ρ„Π°ΠΉΠ» растрового изобраТСния содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ.ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ растровыС Π²Π΅Π±-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Bitmap ( .bmp ), PNG ( .png ), JPEG ( .jpg ) ΠΈ GIF ( .gif .)
  • .
  • Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ изобраТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с использованиСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² — Ρ„Π°ΠΉΠ» Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ изобраТСния содСрТит опрСдСлСния Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΡƒΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° экранС. Π€ΠΎΡ€ΠΌΠ°Ρ‚ SVG позволяСт Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΎΡ‰Π½ΡƒΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ для использования Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² прямом эфирС Π² нашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Github ΠΊΠ°ΠΊ vector-versus-raster.html — ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²Π°, казалось Π±Ρ‹, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… изобраТСния рядом, красной Π·Π²Π΅Π·Π΄Ρ‹ с Ρ‡Π΅Ρ€Π½ΠΎΠΉ Ρ‚Π΅Π½ΡŒΡŽ. Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»Π΅Π²Ρ‹ΠΉ — это PNG, Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ — ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ SVG.

Π Π°Π·Π½ΠΈΡ†Π° становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° страницы — ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG становится ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль (ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°). ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля увСличиваСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько пиксСлСй Π½Π° экранС, поэтому ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π±Π»ΠΎΡ‡Π½ΠΎ.Однако Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ выглядит красивым ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΈΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΠΎΡ€ΠΌ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π° значСния ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : ВсС изобраТСния Π²Ρ‹ΡˆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ PNG-изобраТСниями, Π³Π΄Π΅ лСвая Π·Π²Π΅Π·Π΄Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ случаС прСдставляСт растровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° правая Π·Π²Π΅Π·Π΄Π° — Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ дСмонстрации vector-versus-raster.html для Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°!

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ„Π°ΠΉΠ»Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ ΠΈΡ… растровыС эквивалСнты, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π° Π½Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ пиксСлС изобраТСния ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

SVG — это язык Π½Π° основС XML для описания Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Π² основном Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°, ΠΊΠ°ΠΊ ΠΈ HTML, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… элСмСнтов для опрСдСлСния Ρ„ΠΈΠ³ΡƒΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² своСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, ΠΈ эффСктов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ этим Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌ. SVG ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π° Π½Π΅ содСрТимого. Π’ самом простом случаС Ρƒ вас Π΅ΡΡ‚ΡŒ элСмСнты для создания простых Ρ„ΠΎΡ€ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ . Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SVG Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ (ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ прСобразования), (анимация частСй Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ) ΠΈ (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ маски ΠΏΠΎΠ²Π΅Ρ€Ρ… изобраТСния.)

Π’ качСствС простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ создаСт ΠΊΡ€ΡƒΠ³ ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ:

  
  
  
  

Π­Ρ‚ΠΎ создаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Из ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ SVG Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π”Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ простой SVG Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π½ΠΎ для слоТного изобраТСния это быстро становится ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ.Для создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ SVG Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Inkscape ΠΈΠ»ΠΈ Illustrator. Π­Ρ‚ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… графичСских инструмСнтов ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Π΅ изобраТСния Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, функция Trace Bitmap Π² Inkscape).

SVG ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства ΠΏΠΎΠΌΠΈΠΌΠΎ описанных Π²Ρ‹ΡˆΠ΅:

  • ВСкст Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… изобраТСниях остаСтся доступным (Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ приносит ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π²Π°ΡˆΠ΅ΠΌΡƒ SEO).
  • SVG
  • Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‚ΡΡ стилизации / написанию сцСнариСв, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ изобраТСния прСдставляСт собой элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сцСнарий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript.

Π’Π°ΠΊ Π·Π°Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡ‚Ρ€ΠΎΠ²ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ вмСсто SVG? Π§Ρ‚ΠΎ ΠΆ, Ρƒ SVG Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСдостатки:

  • SVG ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒΡΡ, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ; слоТныС SVG-Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.
  • SVG
  • ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТнСС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ растровыС изобраТСния, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.
  • SVG Π½Π΅ поддСрТиваСтся Π² старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ старыС вСрсии Internet Explorer Π½Π° вашСм Π²Π΅Π±-сайтС (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SVG Π½Π°Ρ‡Π°Π»Π°ΡΡŒ с IE9.)

Растровая Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ слоТной точности, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, описанным Π²Ρ‹ΡˆΠ΅.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы добавлСния Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ SVG Π½Π° свои Π²Π΅Π±-страницы.

Быстрый способ:

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ SVG Ρ‡Π΅Ρ€Π΅Π· элСмСнт , Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ src, ΠΊΠ°ΠΊ ΠΈ слСдовало ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ. Π’Π°ΠΌ понадобится Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ height ΠΈΠ»ΠΈ width (ΠΈΠ»ΠΈ ΠΎΠ±Π°, Ссли ваш SVG Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнного ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ сторон).Если Π²Ρ‹ Π΅Ρ‰Π΅ этого Π½Π΅ сдСлали, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π² HTML.

  Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ со всСми трСмя Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ сторонами  
ΠŸΠ»ΡŽΡΡ‹
ΠœΠΈΠ½ΡƒΡΡ‹

УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ΠΈ кросс-браузСрная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

Для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… SVG (IE 8 ΠΈ Π½ΠΈΠΆΠ΅, Android 2.3 ΠΈ Π½ΠΈΠΆΠ΅), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° PNG ΠΈΠ»ΠΈ JPG ΠΈΠ· своСго Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° src ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ srcset (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹) для ссылки Π½Π° SVG. Π’ этом случаС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ SVG — старыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ вмСсто этого Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ PNG:

  Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ сторонами  

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SVG Π² качСствС Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ CSS, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ старыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ понятного ΠΈΠΌ PNG, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ SVG:

.
  Ρ„ΠΎΠ½: url ("fallback.png ") Ρ†Π΅Π½Ρ‚Ρ€ Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π°;
Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: url ("image.svg");
Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΎΠ½Π°: ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ;  

Как ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ , описанный Π²Ρ‹ΡˆΠ΅, вставка SVG с использованиСм Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ CSS ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ SVG Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript, Π° Ρ‚Π°ΠΊΠΆΠ΅ подчиняСтся Ρ‚Π΅ΠΌ ΠΆΠ΅ ограничСниям CSS.

Если ваши SVG-Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ваш сСрвСр настроСн Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² этом, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π²Π΅Ρ€Π½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ SVG-ΠΊΠΎΠ΄ Π² свой HTML

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ SVG-Ρ„Π°ΠΉΠ» Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SVG-ΠΊΠΎΠ΄ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² свой HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ — это ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ вашСго SVG Π² строку ΠΈΠ»ΠΈ встраиваниС SVG .Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваш Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° SVG начинаСтся ΠΈ заканчиваСтся Ρ‚Π΅Π³Π°ΠΌΠΈ (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Π½ΠΈΡ…). Π’ΠΎΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² свой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚:

  
    

  
ΠŸΠ»ΡŽΡΡ‹
ΠœΠΈΠ½ΡƒΡΡ‹

Как Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ SVG Π²

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ:

ΠœΠΈΠ½ΡƒΡΡ‹
  • iframe s, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, Π½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΎΡ‚ΠΊΠ°Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ iframe s.
  • Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли SVG ΠΈ ваша тСкущая Π²Π΅Π±-страница Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ происхоТдСния, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JavaScript Π½Π° своСй Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Π±-страницС для управлСния SVG.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ обучСния ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΏΠΎΠΈΠ³Ρ€Π°Π»ΠΈΡΡŒ с SVG Π² своС ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Input Π½ΠΈΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ прСдоставили Π²Π°ΠΌ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для Π½Π°Ρ‡Π°Π»Π°. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΡƒ ΠΏΠΎ элСмСнтам SVG, ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² SVG, ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΎΠΆΠ΅.Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» посвящСн ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π²Π°ΡˆΠΈΡ… ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² ΠΈ развлСчСниям.

Если Π²Ρ‹ застряли ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Reset .

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдоставила Π²Π°ΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ вСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ SVG, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎ Π½ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ SVG Π½Π° свои Π²Π΅Π±-страницы. Он Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ задумывался ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ SVG, это просто ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SVG, Ссли встрСтитС Π΅Π³ΠΎ Π² своих ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡΡ… ΠΏΠΎ сСти.Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ, Ссли Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ чувствуСтС сСбя экспСртом ΠΏΠΎ SVG. ΠœΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ нСсколько ссылок Π½ΠΈΠΆΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’ послСднСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ этого модуля ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ исслСдуСм Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Π΅ изобраТСния, рассматривая инструмСнты HTML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π²Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… устройствах.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» SVG (ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ)?

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ вСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° (SVG) — это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° изобраТСния.Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… разновидностСй, SVG Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ пиксСли для создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅. ВмСсто этого ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Β«Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅Β» Π΄Π°Π½Π½Ρ‹Π΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SVG, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ любого Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π° срСди мноТСства Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ зададимся вопросом: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» SVG? Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠΌ вас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

Π”Π°Π²Π°ΠΉΡ‚Π΅ приступим!

ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° наш ΠΊΠ°Π½Π°Π» Youtube

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» SVG?

SVG — это Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, построСнная с использованиСм Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ².Для нСпосвящСнных Π²Π΅ΠΊΡ‚ΠΎΡ€ — это элСмСнт с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. ВСорСтичСски Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ практичСски любой Ρ‚ΠΈΠΏ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Π±ΠΎΡ€ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ². Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ синСго ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с Ρ‡Π΅Ρ€Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΎΠΉ ΠΈ Ρ‚Π΅Π½ΡŒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π­Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ графичСского Ρ„Π°ΠΉΠ»Π°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Portable Network Graphic (PNG), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉ ΠΈ рисунков. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ воспроизвСсти Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° XML (Ρ‚ΠΎΡ‚ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠ°Ρ€Ρ‚ сайта.) Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 
 


 

ВСорСтичСски, Ссли Π²Ρ‹ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚Π΅ этот ΠΊΠΎΠ΄ ΠΈ помСститС Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» HTML, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ PNG, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ваш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ SVG.Π₯отя ΠΎΠ±Π° изобраТСния выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Ρ„Π°ΠΉΠ»Ρ‹ SVG ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Ρ†Π΅Π»Ρ‹ΠΉ ряд прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…. НапримСр, SVG ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ качСство изобраТСния ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°.

Если Π²Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π± ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° PNG, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Π³ΠΎ качСство Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Ρ‚ΡŒΡΡ. Π‘ Π±ΠΎΠ»Π΅Π΅ слоТной пиксСльной Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΡƒΡ…ΡƒΠ΄ΡˆΠ΅Π½ΠΈΠ΅ становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС. Однако SVG Ρ…ΠΎΡ€ΠΎΡˆΠΎ смотрятся практичСски Π² любом Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ„Π°ΠΉΠ» SVG?

МногиС Π²Π΅Π±-сайты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, ΠΊΠ°ΠΊ PNG ΠΈ JPEG, ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΊ взаимозамСняСмыС.Однако SVG Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ массивныС ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Π΅ для использования Ρ„Π°ΠΉΠ»Ρ‹ SVG.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ SVG — фантастичСский Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для Ρ†Π΅Π»ΠΎΠ³ΠΎ ряда Π΄Ρ€ΡƒΠ³ΠΈΡ… сцСнариСв:

  • Π”ΠΈΠ·Π°ΠΉΠ½ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹ Π½Π° Π²Π΅Π±-сайтах ΠΈ ​​в ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях, использованиС SVG Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ.
  • Π‘Ρ…Π΅ΠΌΡ‹. SVG идСально подходят для Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉ, основанных Π½Π° простых линиях.
  • АнимированныС элСмСнты. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS для Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ SVG, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ Π²Π΅Π±-сайтов, особСнно для микровзаимодСйствий.
  • Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SVG для создания ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ SVG ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ XML, это Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… доступными для поиска ΠΈ индСксации. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ чтСния с экрана ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ SVG, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй.

НаконСц, Ρ„Π°ΠΉΠ»Ρ‹ SVG ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС, Ρ‡Π΅ΠΌ ΠΈΡ… эквивалСнты с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ….На Π±ΡƒΠΌΠ°Π³Π΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ смоТСтС ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²Π°ΡˆΠΈΡ… страниц ΠΈ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Однако, Ссли Π²Ρ‹ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ своих ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² SVG, ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» SVG (2 способа)

Π•ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ SVG. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡ… с нуля ΠΈΠ»ΠΈ Π²Π·ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. НачнСм с Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° SVG Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° SVG ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π²ΠΎΠ΄Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΌΡ‹ это Π΄Π΅Π»Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅.Π­Ρ‚ΠΎ Π±Ρ‹Π» просто ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ. ВмСсто этого Π²Ρ‹ создаСтС SVG, ΠΊΠ°ΠΊ ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ — с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ проСктирования ΠΈ сохранСния Ρ„Π°ΠΉΠ»Π° ΠΊΠ°ΠΊ SVG. МногиС соврСмСнныС инструмСнты графичСского Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ SVG прямо ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. НСкоторыС Π»ΡƒΡ‡ΡˆΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

ПослСдниС Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π² этом спискС ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для экспСримСнтов с созданиСм SVG, Π½Π΅ платя Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΡ€Π΅ΠΌΠΈΡƒΠΌ-класса. ЀактичСски, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ всСм, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Если Ρƒ вас Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° Π² графичСском Π΄ΠΈΠ·Π°ΠΉΠ½Π΅, созданиС собствСнных Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов для вашСго Π²Π΅Π±-сайта Π±ΡƒΠ΄Π΅Ρ‚ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.Π’ этом случаС Π»ΡƒΡ‡ΡˆΠ΅ всСго Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ изобраТСния ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² SVG.

2. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² SVG

БущСствуСт мноТСство бСсплатных инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для прСобразования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π² SVG. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ Π² послСднСм Ρ€Π°Π·Π΄Π΅Π»Π΅, позволяСт ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ изобраТСния ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² SVG.

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ — Π° Π΅ΡΡ‚ΡŒ ΠΈ сСрвисов, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ.Одним ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² являСтся Vector Magic, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для прСобразования всСх Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² Π² SVG:

Нам нравится этот ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ инструмСнт, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр вашСго Ρ„Π°ΠΉΠ»Π° SVG ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ внСсти нСбольшиС измСнСния ΠΈ исправлСния ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»Π°:

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π”Ρ€ΡƒΠ³ΠΈΠ΅ услуги ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ PNG ΠΈ JPG Π² SVG Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Convertio ΠΈ Img2Go. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ провСсти нСбольшоС исслСдованиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π°ΡˆΠΈΡ… Π½ΡƒΠΆΠ΄.

По Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ΠΎΠ² SVG ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ качСства. Для достиТСния Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ значСния, ΠΊΠ°ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ изобраТСния.

Как ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ SVG ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для «простых» ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΈΠΌΠΈ линиями. Π§Π΅ΠΌ слоТнСС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Π΅ΠΌ большС Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ массивный Ρ„Π°ΠΉΠ» SVG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слоТно Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» SVG (Π² WordPress ΠΈ Π²Π½Π΅ Π΅Π³ΠΎ)

SVG Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ слоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» SVG Π½Π° свой Π²Π΅Π±-сайт Ρ‚Π°ΠΊ ΠΆΠ΅ просто, ΠΊΠ°ΠΊ Π²Π·ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠ΄ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ HTML, ΠΊΡƒΠ΄Π° Π±Ρ‹ Π²Ρ‹ Π½ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Если Π²Ρ‹ ΠΈ посСтитСли вашСго сайта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ SVG (Π° Π² наши Π΄Π½ΠΈ это Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ…), ΠΎΠ½ΠΈ смогут ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ элСмСнт. Анимация SVG, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, слоТнСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования CSS.

Однако процСсс мСняСтся, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ WordPress. БистСма управлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ (CMS) Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SVG ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ SVG, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ прямо Π½Π° свой Π²Π΅Π±-сайт, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠ°ΠΊ Safe SVG:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ SVG Π² WordPress Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½ΠΎ этот процСсс Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС.Π’ этом случаС Π±ΠΎΠ»Π΅Π΅ бСзопасным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС ΠΏΠ»Π°Π³ΠΈΠ½Π°.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠΠ΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой Π²Π΅Π±-сайт для использования Ρ„Π°ΠΉΠ»ΠΎΠ² SVG Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅. Настоящая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ SVG с нуля ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для прСобразования Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΅ΡΡ‚ΡŒ мноТСство инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для Ρ‚ΠΎΠ³ΠΎ, ΠΈ для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

НСкоторыС ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Adobe Illustrator, InDesign ΠΈ GIMP. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти инструмСнты, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ изобраТСния Π² SVG. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ WordPress, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ эти SVG-Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π° Safe SVG, Π° Π·Π°Ρ‚Π΅ΠΌ вСсСло ΠΈΡ… Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π£ вас Π΅ΡΡ‚ΡŒ вопросы ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ SVG? Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½ΠΈΡ… Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½ΠΈΠΆΠ΅!

ΠœΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π° изобраТСния ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎΡ‚ VectorsMarket / shutterstock.com

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π½Π° Π²Π°ΡˆΡƒ Π²Π΅Π±-страницу

Π’ этом руководствС ΠΌΡ‹ обсуТдаСм способы добавлСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ SVG Π½Π° Π²Π°ΡˆΡƒ Π²Π΅Π±-страницу. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, SVG — это Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° XML, которая описываСт Ρ„ΠΎΡ€ΠΌΡ‹, Π»ΠΈΠ½ΠΈΠΈ ΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠΈ, поэтому Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами.

Π’ этой сСрии ΠΌΡ‹ обсудили, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SVG, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΌ стоит ΠΈΡ… Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ основныС Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ рисунки.

Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π°ΠΌ захочСтся Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ созданный SVG прямо Π½Π° Π²Π΅Π±-страницу. Π•ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡˆΠ΅ΡΡ‚ΡŒ способов Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ этой Ρ†Π΅Π»ΠΈ — , Π½ΠΎ Ρƒ всСх ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы .

1. Π’ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ SVG XML прямо Π² Π²Π°ΡˆΡƒ HTML-страницу

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ SVG ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ островок ΠΊΠΎΠ΄Π° прямо Π½Π° Π²Π°ΡˆΡƒ HTML-страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ‚Π΅Π³ΠΎΠ² :

  


  
   ВстроСнный SVG 



   

ВстроСнный SVG

Мой SVG

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ всСх соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. SVG становится Ρ‡Π°ΡΡ‚ΡŒΡŽ DOM страницы, поэтому ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS ΠΈΠ»ΠΈ JavaScript, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, для добавлСния Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° события Ρ‰Π΅Π»Ρ‡ΠΊΠ°. (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ любой JavaScript, встроСнный Π² сам SVG, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½.)

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ нСдостатком являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ SVG Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ встроСн Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ страницу, Π³Π΄Π΅ ΠΎΠ½ трСбуСтся, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ для ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡ΠΊΠΎΠ².Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ вСс страницы, ΠΈ, хотя HTML ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½, ΠΊΠΎΠ΄ SVG Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС (Π»Π΅Π³ΠΊΠΎ) .

Одним ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ являСтся созданиС скрытого Π±Π»ΠΎΠΊΠ° SVG Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС (с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ CSS : Π½Π΅Ρ‚ ). Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ ссылка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° :

  
  
    
       box 
      
    
    
       ΠΊΡ€ΡƒΠ³ 
      
    
  

  

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любоС количСство Ρ€Π°Π· с SVG. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ элСмСнт :

  
  <ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ xlink: href = "# box" />



  <ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ xlink: href = "# box" />



  <ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ xlink: href = "# circle" />

  

Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS, хотя нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ стили ΠΊ самому .

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Π³

SVG ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Π²Π°ΡˆΡƒ Π²Π΅Π±-страницу, ΠΊΠ°ΠΊ ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

  ΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
  

ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ ΡˆΠΈΡ€ΠΈΠ½Π° , высота , alt ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹, Ссли ΠΎΠ½ΠΈ Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ.

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ SVG ΠΊΠ°ΠΊ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. По сообраТСниям бСзопасности Π»ΡŽΠ±Ρ‹Π΅ скрипты, внСшниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй, ссылки ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности взаимодСйствия с SVG Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹.

Π¦Π΅Π»Π΅Π²ΡƒΡŽ привязку ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π² ΠΎΠ΄Π½ΠΎΠΌ SVG ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ нСсколько ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ myimage.svg # circle , Π½ΠΎ это Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….

3. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ CSS

SVG ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Ρ„ΠΎΠ½Π° CSS для любого элСмСнта:

  #myelement {
  Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: url ('./ image.svg');
}
  

URI встроСнных Π΄Π°Π½Π½Ρ‹Ρ… с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF8 Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ…, рСгулярно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… SVG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вряд Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ часто ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ (ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ всю Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ стилСй):

 .myelement {
  background: url ('data: image / svg + xml; utf8,    ');
}
  

Подобно Ρ‚Π΅Π³ΠΈ, скрипты, ссылки ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ интСрактивности ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ использовании этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

4. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π²

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ SVG со своими скриптами ΠΈ стилями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠΉ страницы. Однако ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ SVG с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript вашСй Π³Π»Π°Π²Π½ΠΎΠΉ страницы станСт слоТнСС, особСнно Ссли ΠΎΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅.

5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅

<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚> Tag

Π’Π΅Π³ HTML ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для добавлСния SVG Π½Π° Π²Π°ΡˆΡƒ страницу:

  
  

  

Π Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ тСкст ΠΈΠ»ΠΈ изобраТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±Π»ΠΎΠΊΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ iframe.

Π‘Ρ‚ΠΈΠ»ΠΈ ΠΈ скрипты Π² SVG Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. НСвозмоТно ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ SVG с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS Π½Π° страницС HTML, Π½ΠΎ скрипты ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами:

 
const objTag = document.querySelector ('ΠΎΠ±ΡŠΠ΅ΠΊΡ‚');


objTag.addEventListener ('load', () => {

  
  const svg = objTag.getSVGDocument ();

  
  Array.from (svg.getElementsByTagName ('ΠΏΡƒΡ‚ΡŒ'))
    .forEach (p => p.setAttribute ('Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ', '# 00f'))

});
  

<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚> Π±Ρ‹Π» Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ дСсяти Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π» СдинствСнный Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ использования SVG Π² старых вСрсиях IE.

6. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅

Tag

Π― добавляю для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹, Π½ΠΎ, поТалуйста, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ! Он ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ встраиваСт внСшний ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° страницу, Π½ΠΎ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для взаимодСйствия с внСшним ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

  
  Π½Π΅ поддСрТиваСтся

  

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° прСкращСния сущСствования Flash ΠΈ Silverlight соврСмСнныС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ устарСли ΠΈ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Никогда Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° .

ΠšΠ°ΠΊΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ SVG слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ SVG Π² качСствС изобраТСния ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ скрипты, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Π³ ΠΈΠ»ΠΈ Ρ„ΠΎΠ½ CSS.Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… страницах Π±Π΅Π· дальнСйшСй Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π’Π°ΠΌ, Π³Π΄Π΅ трСбуСтся ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся встраиваниС SVG нСпосрСдствСнно Π² HTML. Π‘Ρ‚ΠΈΠ»ΠΈ ΠΈ скрипты ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ DOM, ссылки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ любой Ρ„ΠΈΠ³ΡƒΡ€Π΅, Π° слоТныС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ SVG ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтам страницы.

Π’Π΅Π³ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это остаСтся ТизнСспособным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ SVG-Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… манипуляций с JavaScript.

Iframes ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ , Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ испытываСтС Π½Π΅ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для старого Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

ИспользованиС SVG Π² Avada — ThemeFusion

Π€Π°ΠΉΠ»Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ (SVG) ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Avada Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠΎΠ², Π·Π½Π°Ρ‡ΠΊΠΎΠ² ΠΈ Ρ‚. Π”. Π€Π°ΠΉΠ»Ρ‹ SVG ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… SVG ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этой ссылкС.