From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../index.html | 234 +++++++ files/ru/web/svg/attribute/additive/index.html | 56 ++ .../ru/web/svg/attribute/attributename/index.html | 85 +++ .../ru/web/svg/attribute/attributetype/index.html | 59 ++ files/ru/web/svg/attribute/class/index.html | 190 +++++ files/ru/web/svg/attribute/core/index.html | 85 +++ files/ru/web/svg/attribute/cx/index.html | 70 ++ files/ru/web/svg/attribute/cy/index.html | 69 ++ files/ru/web/svg/attribute/d/index.html | 566 +++++++++++++++ files/ru/web/svg/attribute/dur/index.html | 95 +++ files/ru/web/svg/attribute/end/index.html | 45 ++ files/ru/web/svg/attribute/fill-opacity/index.html | 69 ++ files/ru/web/svg/attribute/fill-rule/index.html | 162 +++++ files/ru/web/svg/attribute/fill/index.html | 99 +++ files/ru/web/svg/attribute/font-weight/index.html | 86 +++ files/ru/web/svg/attribute/id/index.html | 113 +++ files/ru/web/svg/attribute/index.html | 461 ++++++++++++ files/ru/web/svg/attribute/keytimes/index.html | 87 +++ files/ru/web/svg/attribute/lang/index.html | 86 +++ files/ru/web/svg/attribute/lengthadjust/index.html | 33 + .../ru/web/svg/attribute/letter-spacing/index.html | 60 ++ .../ru/web/svg/attribute/lighting-color/index.html | 50 ++ files/ru/web/svg/attribute/onload/index.html | 5 + files/ru/web/svg/attribute/overflow/index.html | 67 ++ .../svg/attribute/patterncontentunits/index.html | 52 ++ files/ru/web/svg/attribute/r/index.html | 129 ++++ files/ru/web/svg/attribute/repeatcount/index.html | 47 ++ files/ru/web/svg/attribute/rx/index.html | 115 +++ files/ru/web/svg/attribute/ry/index.html | 113 +++ .../web/svg/attribute/shape-rendering/index.html | 79 +++ files/ru/web/svg/attribute/stop-color/index.html | 51 ++ .../web/svg/attribute/stroke-dashoffset/index.html | 162 +++++ .../ru/web/svg/attribute/stroke-linecap/index.html | 194 ++++++ files/ru/web/svg/attribute/stroke-width/index.html | 57 ++ files/ru/web/svg/attribute/stroke/index.html | 69 ++ files/ru/web/svg/attribute/text-anchor/index.html | 107 +++ .../ru/web/svg/attribute/text-rendering/index.html | 87 +++ files/ru/web/svg/attribute/transform/index.html | 121 ++++ files/ru/web/svg/attribute/values/index.html | 86 +++ files/ru/web/svg/attribute/viewbox/index.html | 191 +++++ files/ru/web/svg/attribute/width/index.html | 648 +++++++++++++++++ files/ru/web/svg/attribute/x/index.html | 86 +++ .../web/svg/attribute/xml_colon_space/index.html | 50 ++ files/ru/web/svg/attribute/y/index.html | 86 +++ files/ru/web/svg/index.html | 103 +++ .../web/svg/svg_1.1_support_in_firefox/index.html | 774 +++++++++++++++++++++ files/ru/web/svg/svg_as_an_image/index.html | 66 ++ .../svg/tutorial/clipping_and_masking/index.html | 87 +++ .../web/svg/tutorial/fills_and_strokes/index.html | 145 ++++ .../ru/web/svg/tutorial/filter_effects/index.html | 14 + .../ru/web/svg/tutorial/getting_started/index.html | 93 +++ files/ru/web/svg/tutorial/gradients/index.html | 181 +++++ files/ru/web/svg/tutorial/index.html | 56 ++ .../svg/tutorial/other_content_in_svg/index.html | 39 ++ files/ru/web/svg/tutorial/paths/index.html | 234 +++++++ files/ru/web/svg/tutorial/patterns/index.html | 76 ++ files/ru/web/svg/tutorial/svg_fonts/index.html | 98 +++ files/ru/web/svg/tutorial/svg_image_tag/index.html | 34 + .../tutorial/svg_in_html_introduction/index.html | 115 +++ files/ru/web/svg/tutorial/texts/index.html | 74 ++ files/ru/web/svg/tutorial/tools_for_svg/index.html | 72 ++ .../index.html" | 98 +++ .../index.html" | 44 ++ .../index.html" | 144 ++++ .../index.html" | 48 ++ .../a/index.html" | 151 ++++ .../animate/index.html" | 81 +++ .../animatemotion/index.html" | 112 +++ .../circle/index.html" | 109 +++ .../defs/index.html" | 101 +++ .../ellipse/index.html" | 129 ++++ .../feblend/index.html" | 115 +++ .../foreignobject/index.html" | 119 ++++ .../g/index.html" | 98 +++ .../image/index.html" | 94 +++ .../index.html" | 253 +++++++ .../line/index.html" | 104 +++ .../lineargradient/index.html" | 105 +++ .../path/index.html" | 98 +++ .../pattern/index.html" | 125 ++++ .../polygon/index.html" | 95 +++ .../radialgradient/index.html" | 108 +++ .../rect/index.html" | 115 +++ .../svg/index.html" | 119 ++++ .../text/index.html" | 211 ++++++ .../use/index.html" | 126 ++++ 86 files changed, 10625 insertions(+) create mode 100644 files/ru/web/svg/applying_svg_effects_to_html_content/index.html create mode 100644 files/ru/web/svg/attribute/additive/index.html create mode 100644 files/ru/web/svg/attribute/attributename/index.html create mode 100644 files/ru/web/svg/attribute/attributetype/index.html create mode 100644 files/ru/web/svg/attribute/class/index.html create mode 100644 files/ru/web/svg/attribute/core/index.html create mode 100644 files/ru/web/svg/attribute/cx/index.html create mode 100644 files/ru/web/svg/attribute/cy/index.html create mode 100644 files/ru/web/svg/attribute/d/index.html create mode 100644 files/ru/web/svg/attribute/dur/index.html create mode 100644 files/ru/web/svg/attribute/end/index.html create mode 100644 files/ru/web/svg/attribute/fill-opacity/index.html create mode 100644 files/ru/web/svg/attribute/fill-rule/index.html create mode 100644 files/ru/web/svg/attribute/fill/index.html create mode 100644 files/ru/web/svg/attribute/font-weight/index.html create mode 100644 files/ru/web/svg/attribute/id/index.html create mode 100644 files/ru/web/svg/attribute/index.html create mode 100644 files/ru/web/svg/attribute/keytimes/index.html create mode 100644 files/ru/web/svg/attribute/lang/index.html create mode 100644 files/ru/web/svg/attribute/lengthadjust/index.html create mode 100644 files/ru/web/svg/attribute/letter-spacing/index.html create mode 100644 files/ru/web/svg/attribute/lighting-color/index.html create mode 100644 files/ru/web/svg/attribute/onload/index.html create mode 100644 files/ru/web/svg/attribute/overflow/index.html create mode 100644 files/ru/web/svg/attribute/patterncontentunits/index.html create mode 100644 files/ru/web/svg/attribute/r/index.html create mode 100644 files/ru/web/svg/attribute/repeatcount/index.html create mode 100644 files/ru/web/svg/attribute/rx/index.html create mode 100644 files/ru/web/svg/attribute/ry/index.html create mode 100644 files/ru/web/svg/attribute/shape-rendering/index.html create mode 100644 files/ru/web/svg/attribute/stop-color/index.html create mode 100644 files/ru/web/svg/attribute/stroke-dashoffset/index.html create mode 100644 files/ru/web/svg/attribute/stroke-linecap/index.html create mode 100644 files/ru/web/svg/attribute/stroke-width/index.html create mode 100644 files/ru/web/svg/attribute/stroke/index.html create mode 100644 files/ru/web/svg/attribute/text-anchor/index.html create mode 100644 files/ru/web/svg/attribute/text-rendering/index.html create mode 100644 files/ru/web/svg/attribute/transform/index.html create mode 100644 files/ru/web/svg/attribute/values/index.html create mode 100644 files/ru/web/svg/attribute/viewbox/index.html create mode 100644 files/ru/web/svg/attribute/width/index.html create mode 100644 files/ru/web/svg/attribute/x/index.html create mode 100644 files/ru/web/svg/attribute/xml_colon_space/index.html create mode 100644 files/ru/web/svg/attribute/y/index.html create mode 100644 files/ru/web/svg/index.html create mode 100644 files/ru/web/svg/svg_1.1_support_in_firefox/index.html create mode 100644 files/ru/web/svg/svg_as_an_image/index.html create mode 100644 files/ru/web/svg/tutorial/clipping_and_masking/index.html create mode 100644 files/ru/web/svg/tutorial/fills_and_strokes/index.html create mode 100644 files/ru/web/svg/tutorial/filter_effects/index.html create mode 100644 files/ru/web/svg/tutorial/getting_started/index.html create mode 100644 files/ru/web/svg/tutorial/gradients/index.html create mode 100644 files/ru/web/svg/tutorial/index.html create mode 100644 files/ru/web/svg/tutorial/other_content_in_svg/index.html create mode 100644 files/ru/web/svg/tutorial/paths/index.html create mode 100644 files/ru/web/svg/tutorial/patterns/index.html create mode 100644 files/ru/web/svg/tutorial/svg_fonts/index.html create mode 100644 files/ru/web/svg/tutorial/svg_image_tag/index.html create mode 100644 files/ru/web/svg/tutorial/svg_in_html_introduction/index.html create mode 100644 files/ru/web/svg/tutorial/texts/index.html create mode 100644 files/ru/web/svg/tutorial/tools_for_svg/index.html create mode 100644 "files/ru/web/svg/tutorial/\320\261\320\260\320\267\320\276\320\262\321\213\320\265_\320\277\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/index.html" create mode 100644 "files/ru/web/svg/tutorial/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" create mode 100644 "files/ru/web/svg/tutorial/\320\276\321\201\320\275\320\276\320\262\320\275\321\213\320\265_\321\204\320\270\320\263\321\203\321\200\321\213/index.html" create mode 100644 "files/ru/web/svg/tutorial/\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/a/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animate/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animatemotion/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/circle/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/defs/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/ellipse/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/feblend/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/foreignobject/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/g/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/image/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/line/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/lineargradient/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/path/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/pattern/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/polygon/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/radialgradient/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/rect/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/svg/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/text/index.html" create mode 100644 "files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/use/index.html" (limited to 'files/ru/web/svg') diff --git a/files/ru/web/svg/applying_svg_effects_to_html_content/index.html b/files/ru/web/svg/applying_svg_effects_to_html_content/index.html new file mode 100644 index 0000000000..db88faea3f --- /dev/null +++ b/files/ru/web/svg/applying_svg_effects_to_html_content/index.html @@ -0,0 +1,234 @@ +--- +title: Применение эффектов SVG к содержимому HTML +slug: Web/SVG/Applying_SVG_effects_to_HTML_content +translation_of: Web/SVG/Applying_SVG_effects_to_HTML_content +--- +

Современные браузеры поддерживают SVG в стилях CSS для применения графических эффектов к HTML-контенту.

+ +

Вы можете указать SVG в стилях как внутри одного документа, так и из внешней таблицы стилей. Есть 3 свойства, которые вы можете использовать: mask, clip-path, и filter

+ +
Примечание: Ссылки на SVG во внешних файлах должны быть в том же самом источнике same origin , что и ссылочный документ.
+ +

Использование встроенного SVG

+ +

Чтобы применить эффект SVG с использованием стилей CSS, вам нужно сначала создать стиль CSS, который ссылается на SVG. 

+ +
<style>p { mask: url(#my-mask); }</style>
+
+ +

В приведенном выше примере все параграфы маскируются с помощью SVG <mask>  с ID my-mask

+ +

Пример: маскировка

+ +

Например, вы можете сделать градиентную маску для содержимого HTML, используя код SVG и CSS, похожий на следующий, внутри вашего документа HTML:

+ +
<svg height="0">
+  <mask id="mask-1">
+    <linearGradient id="gradient-1" y2="1">
+      <stop stop-color="white" offset="0"/>
+      <stop stop-opacity="0" offset="1"/>
+    </linearGradient>
+    <circle cx="0.25" cy="0.25" r="0.25" id="circle" fill="white"/>
+    <rect x="0.5" y="0.2" width="300" height="100" fill="url(#gradient-1)"/>
+  </mask>
+</svg>
+
+ +
.target {
+  mask: url(#mask-1);
+}
+p {
+  width: 300px;
+  border: 1px solid #000;
+  display: inline-block;
+}
+ +

Обратите внимание, что в CSS маска указана с использованием URL-адреса ID- #mask-1, которая является идентификатором маски SVG, указанной ниже. Все остальное указывает подробности о самой маске градиента.

+ +

Применение SVG-эффекта к (X) HTML выполняется путем назначения target классу, определенному выше элементу, например:

+ +
<p class="target" style="background:lime;">
+    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
+    ut labore et dolore magna aliqua. Ut enim ad minim veniam.
+</p>
+<p>
+    Lorem ipsum dolor sit amet, consectetur adipisicing
+    <b class="target">elit, sed do eiusmod tempor incididunt
+    ut labore et dolore magna aliqua.</b>
+    Ut enim ad minim veniam.
+</p>
+
+ +

Вышеприведенный пример будет отображаться с помощью маски, применяемой к нему.

+ +

{{EmbedLiveSample('Example_Masking', 650, 200)}}

+ +

Пример: обрезание

+ +

Этот пример демонстрирует использование SVG для клипа содержимого HTML. Обратите внимание, что даже кликаемые области для ссылок обрезаются.

+ +
<p class="target" style="background:lime;">
+    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
+    ut labore et dolore magna aliqua. Ut enim ad minim veniam.
+</p>
+<p>
+    Lorem ipsum dolor sit amet, consectetur adipisicing
+    <b class="target">elit, sed do eiusmod tempor incididunt
+    ut labore et dolore magna aliqua.</b>
+    Ut enim ad minim veniam.
+</p>
+
+<button onclick="toggleRadius()">Toggle radius</button>
+
+<svg height="0">
+  <clipPath id="clipping-path-1" clipPathUnits="objectBoundingBox">
+    <circle cx="0.25" cy="0.25" r="0.25" id="circle"/>
+    <rect x="0.5" y="0.2" width="0.5" height="0.8"/>
+  </clipPath>
+</svg>
+
+ +
.target {
+  clip-path: url(#clipping-path-1);
+}
+p {
+  width: 300px;
+  border: 1px solid #000;
+  display: inline-block;
+}
+ +

Это устанавливает область отсечения, образованную из круга и прямоугольника, присваивает ему ID #clipping-path-1, а затем ссылается на него в CSS. Путь клипа может быть назначен любому элементу с target классом.

+ +

Вы можете вносить изменения в SVG в реальном времени, и они сразу же повлияют на рендеринг HTML. Например, вы можете изменить размер круга в указанном выше пути клипа:

+ +
function toggleRadius() {
+  var circle = document.getElementById("circle");
+  circle.r.baseVal.value = 0.40 - circle.r.baseVal.value;
+}
+
+ +

{{EmbedLiveSample('Example_Clipping', 650, 200)}}

+ +

Пример: Фильтрация

+ +

Это демонстрирует применение фильтра к содержимому HTML с помощью SVG. Он устанавливает несколько фильтров, которые применяются с CSS к трем элементам как в нормальном состоянии, так и при hover мыши.

+ +
<p class="target" style="background: lime;">
+    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
+    ut labore et dolore magna aliqua. Ut enim ad minim veniam.
+</p>
+<pre class="target">lorem</pre>
+<p>
+    Lorem ipsum dolor sit amet, consectetur adipisicing
+    <b class="target">elit, sed do eiusmod tempor incididunt
+    ut labore et dolore magna aliqua.</b>
+    Ut enim ad minim veniam.
+</p>
+
+ +

Любой SVG-фильтр может применяться таким образом. Например, чтобы применить эффект размытия, вы можете использовать:

+ +
<svg height="0">
+  <filter id="f1">
+    <feGaussianBlur stdDeviation="3"/>
+  </filter>
+</svg>
+ +

Вы также можете применить цветовую матрицу:

+ +
<svg height="0">
+  <filter id="f2">
+    <feColorMatrix values="0.3333 0.3333 0.3333 0 0
+                           0.3333 0.3333 0.3333 0 0
+                           0.3333 0.3333 0.3333 0 0
+                           0      0      0      1 0"/>
+  </filter>
+</svg>
+
+ +

И ещё несколько фильтров:

+ +
<svg height="0">
+  <filter id="f3">
+    <feConvolveMatrix filterRes="100 100" style="color-interpolation-filters:sRGB"
+      order="3" kernelMatrix="0 -1 0   -1 4 -1   0 -1 0" preserveAlpha="true"/>
+  </filter>
+  <filter id="f4">
+    <feSpecularLighting surfaceScale="5" specularConstant="1"
+                        specularExponent="10" lighting-color="white">
+      <fePointLight x="-5000" y="-10000" z="20000"/>
+    </feSpecularLighting>
+  </filter>
+  <filter id="f5">
+    <feColorMatrix values="1 0 0 0 0
+                           0 1 0 0 0
+                           0 0 1 0 0
+                           0 1 0 0 0" style="color-interpolation-filters:sRGB"/>
+  </filter>
+</svg>
+ +

Пять фильтров применяются с использованием следующего CSS:

+ +
p.target { filter:url(#f3); }
+p.target:hover { filter:url(#f5); }
+b.target { filter:url(#f1); }
+b.target:hover { filter:url(#f4); }
+pre.target { filter:url(#f2); }
+pre.target:hover { filter:url(#f3); }
+
+ +

{{EmbedLiveSample('Example_Filtering', 650, 200)}}

+ +

View this example live

+ +

Пример: размытый текст

+ +

Чтобы размыть текст, браузеры, основанные на Webkit, имеют (префиксный) CSS-фильтр, называемый blur (см. Также CSS filter). Вы можете добиться такого же эффекта, используя фильтры SVG.

+ +
<p class="blur">Time to clean my glasses</p>
+<svg height="0">
+  <defs>
+    <filter id="wherearemyglasses" x="0" y="0">
+    <feGaussianBlur in="SourceGraphic" stdDeviation="1"/>
+    </filter>
+  </defs>
+</svg>
+
+ +

Вы можете применить SVG и CSS-фильтр в том же классе:

+ +
.blur { filter: url(#wherearemyglasses); }
+ +

{{ EmbedLiveSample('Example_Blurred_Text', 300, 100) }}

+ +

Размытие является сложным вычислением, поэтому используйте его экономно, особенно в элементах, которые прокручиваются или анимируются.

+ +

Пример: текстовые эффекты

+ +

Эффекты SVG также могут использоваться для большей динамики и гибкого подхода к добавлению текста по сравнению с простым текстом HTML.

+ +

Создавая текст с использованием элементов SVG в сочетании с HTML, достигаются различные текстовые эффекты. Можно повернуть текст:

+ +
<svg height="60" width="200">
+  <text x="0" y="15" fill="blue" transform="rotate(30 20,50)">Пример текста</text>
+</svg>
+
+ +

Использование внешних ссылок

+ +

SVG, используемый для отсечения, маскировки и фильтрации, может быть загружен из внешнего источника, если этот источник исходит из того же источника, что и документ HTML, к которому он применяется.

+ +

For example, if your CSS is in a file namedit can look like this: 
+ Например, если ваш CSS находится в файле с именем default.css, он может выглядеть следующим образом:

+ +
.target { clip-path: url(resources.svg#c1); }
+ +

Затем SVG импортируется из файла с именем resources.svg, используя путь клипа с ID c1

+ +

Смотрите также

+ + diff --git a/files/ru/web/svg/attribute/additive/index.html b/files/ru/web/svg/attribute/additive/index.html new file mode 100644 index 0000000000..0e5666b2b5 --- /dev/null +++ b/files/ru/web/svg/attribute/additive/index.html @@ -0,0 +1,56 @@ +--- +title: additive +slug: Web/SVG/Attribute/additive +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/additive +--- +

« Справочник SVG атрибутов

+ +

Этот атрибут определяет, является ли анимация аддитивной.

+ +

Часто бывает полезно определить анимацию как смещение или Дельта для значения атрибута, а не как абсолютные значения. Этот атрибут указывает на анимацию, если их значения добавляются к исходному значению анимированного атрибута.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорииАтрибут добавления анимации
Значениеreplace | sum
АнимируемыйНет
Нормативный документSVG 1.1 (2nd Edition)
+ +
+
sum
+
Указывает, что анимация добавляется к базовому значению атрибута и других анимаций с меньшим приоритетом.
+
replace
+
Указывает, что анимация переопределит базовое значение атрибута и другие анимации с меньшим приоритетом. Это значение по умолчанию, однако на поведение также влияют атрибуты значений анимации {{ SVGAttr("by") }} и {{ SVGAttr("to") }}, как описано в SMIL Animation: How from, to and by attributes affect additive behavior.
+
+ +

Пример

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут additive

+ + diff --git a/files/ru/web/svg/attribute/attributename/index.html b/files/ru/web/svg/attribute/attributename/index.html new file mode 100644 index 0000000000..8a114bc8b2 --- /dev/null +++ b/files/ru/web/svg/attribute/attributename/index.html @@ -0,0 +1,85 @@ +--- +title: attributeName +slug: Web/SVG/Attribute/attributeName +tags: + - NeedsCompatTable + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/attributeName +--- +
{{SVGRef}}
+ +

Атрибут attributeName задаёт имя свойства CSS или атрибута целевого элемента, которое будет изменено во время анимации.

+ +

Четыре элемента используют данный артибут: {{SVGElement("animate")}}, {{SVGElement("animateColor")}}, {{SVGElement("animateTransform")}} и {{SVGElement("set")}}

+ +
+ + +
<svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg">
+  <rect x="50" y="50" width="100" height="100">
+    <animate attributeType="XML" attributeName="y" from="0" to="50"
+        dur="5s" repeatCount="indefinite"/>
+  </rect>
+</svg>
+ +

{{EmbedLiveSample("topExample", "400", "250")}}

+
+ +

Контекст использования

+ + + + + + + + + + + + + + + + +
Значение<name>
Значение по-умолчаниюNone
АнимируемыйНет
+ +
+
<name>
+
Это значение задаёт имя свойства CSS или атрибута целевого элемента, которое будет анимировано.
+
+ +

Спецификиции

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG Animations 2", "#AttributeNameAttribute", "attributeName")}}{{Spec2("SVG Animations 2")}}Без изменений
{{SpecName("SVG1.1", "animate.html#AttributeNameAttribute", "attributeName")}}{{Spec2("SVG1.1")}}Изначальное определение
+ +

Смотрите также

+ + diff --git a/files/ru/web/svg/attribute/attributetype/index.html b/files/ru/web/svg/attribute/attributetype/index.html new file mode 100644 index 0000000000..64578f28b0 --- /dev/null +++ b/files/ru/web/svg/attribute/attributetype/index.html @@ -0,0 +1,59 @@ +--- +title: attributeType +slug: Web/SVG/Attribute/attributeType +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/attributeType +--- +

« Справочник SVG атрибутов

+ +

Этот атрибут задает пространство имен, в котором определяются конечный атрибут и связанные с ним значения.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорияЦелевые атрибуты анимации
ЗначениеCSS | XML | auto
АнимируемыйНет
Нормативный документSVG 1.1 (2nd Edition)
+ +

Этот атрибут может принимать одно из следующих значений:

+ +
+
CSS
+
Указывает на то, что значение параметра  {{ SVGAttr("attributeName") }}  является именем свойства CSS, определяемого как анимация.
+
 
+
XML
+
Указывает, что значение параметра{{ SVGAttr("attributeName") }} является именем атрибута XML, определяемого как анимация в пространстве имен XML по умолчанию для целевого элемента.
+
auto
+
Реализация должна соответствовать {{ SVGAttr("attributeName") }} атрибуту целевого элемента. Агенты пользователя сначала посмотрят список свойств CSS для соответствующего имени свойства, а если нет, выполните поиск в пространстве имен XML по умолчанию для элемента.
+
+ +

Пример

+ +

Элементы

+ +

Следующие элементы могут быть использованы с атрибутом attributeType

+ + diff --git a/files/ru/web/svg/attribute/class/index.html b/files/ru/web/svg/attribute/class/index.html new file mode 100644 index 0000000000..622423f521 --- /dev/null +++ b/files/ru/web/svg/attribute/class/index.html @@ -0,0 +1,190 @@ +--- +title: class +slug: Web/SVG/Attribute/class +translation_of: Web/SVG/Attribute/class +--- +

« Домашняя страница справочника по SVG аттрибутам

+ +

Присвоение класса или набора классов элементу. Вы можете присовить одинаковые классы/наборы классов любому количеству элементов. Если вы указываете(присваиваете) несколько имён классов, они должны быть разделены символом "пробел".

+ +

Класс элемента имеет 2 ключевые роли:

+ + + +

Класс может быть использован для стилизации SVG содержимого используя CSS.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорияNone
Значение<list-of-class-names>
Возможна анимацияYes
Нормативный документSVG 1.1 (2nd Edition): The class attribute
+ +

{{ page("/en/SVG/Content_type","List-of-Ts") }}

+ +

Example

+ +
<html>
+    <body>
+        <svg width="120" height="220"
+            viewPort="0 0 120 120" version="1.1"
+            xmlns="http://www.w3.org/2000/svg">
+
+            <style type="text/css" >
+                <![CDATA[
+                    rect.rectClass {
+                        stroke: #000066;
+                        fill:   #00cc00;
+                    }
+                    circle.circleClass {
+                        stroke: #006600;
+                        fill:   #cc0000;
+                    }
+                ]]>
+            </style>
+
+            <rect class="rectClass" x="10" y="10" width="100" height="100"/>
+            <circle  class="circleClass"   cx="40" cy="50" r="26"/>
+        </svg>
+    </body>
+</html>
+ +

Элементы

+ +

В следующих элементах допустимо использовать аттрибут class

+ +

:{{ SVGElement("a") }}

+ +
+ +
+ +

Совместимость с броузерами

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
Animation support{{ CompatUnknown() }}{{ CompatGeckoDesktop("5") }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +

 

diff --git a/files/ru/web/svg/attribute/core/index.html b/files/ru/web/svg/attribute/core/index.html new file mode 100644 index 0000000000..4423aa5468 --- /dev/null +++ b/files/ru/web/svg/attribute/core/index.html @@ -0,0 +1,85 @@ +--- +title: Основные атрибуты SVG +slug: Web/SVG/Attribute/Core +tags: + - SVG +translation_of: Web/SVG/Attribute/Core +--- +

Основные атрибуты SVG — это все общие атрибуты, которые могут быть указаны в SVG элементах.

+ +
+ +
+ +

Атрибуты

+ +
+
{{SVGAttr('id')}}
+
Определяет идентификатор (ID), который должен быть уникальным во всем документе. Его цель — идентификация элемента при связывании (с использованием фрагмента идентификатора), написании скрипта или стилизации (с помощью CSS).
+ Значение: Любое строковое значение ID; Анимируемый: Нет
+
{{SVGAttr('lang')}}
+
+

Участвует в определении языка элемента, языка, на котором написаны нередактируемые элементы, или языка, на котором должны быть написаны редактируемые элементы. Тэг содержит одно единственное значение записи в формате, определенном в документе IETF "Tags for Identifying Languages (BCP47)".

+ +
+

SVG2 предоставляет новые lang атрибуты. Если атрибуты lang и xml:lang используются вместе, то xml:lang имеет приоритет над lang.

+
+ +

Значение: Любой валидный язык ID; Анимируемый: Нет

+
+
{{SVGAttr('tabindex')}}
+
Атрибут SVG tabindex позволяет контролировать, является ли элемент фокусируемым, и определять относительный порядок элемента для целей последовательной навигации фокуса.
+ Тип значения: <integer>Анимируемый: Нет
+
{{SVGAttr('xml:base')}}
+
Указывает базовый IRI, отличный от базового IRI текущего документа.
+ Тип: <IRI>; Анимируемый: Нет
+
{{SVGAttr('xml:lang')}}
+
+

Это универсальный атрибут, разрешенный во всех XML диалектах для разметки естественного человеческого языка, который содержит элемент. Он почти идентичен по использованию атрибута lang в HTML, но в соответствии с документацией XML 1.0, данный атрибут не позволяет использовать нулевое (null) значение атрибута (xml:lang="") для указания неизвестного языка. Вместо этого, используйте xml:lang="und".

+ +
+

SVG2 предоставляет новые lang атрибуты. Если атрибуты lang и xml:lang используются вместе, то xml:lang имеет приоритет над lang.

+
+ +

Значение: Любой валидный язык ID; Анимируемый: Нет

+
+
{{SVGAttr('xml:space')}} {{deprecated_inline('svg2')}}
+
+

SVG поддерживает стандартный XML-атрибут xml:space для указания обработки символов пробела в пределах заданных {{ SVGElement("text") }} символов текущего элемента.

+ +
+

Примечание: Вместо атрибута xml:space следует использовать CSS свойство {{cssxref('white-space')}}.

+
+ +

Значение: default | preserve; Анимируемый: Нет

+
+
+ +

Поддержка браузерами

+ + + +

{{Compat("svg.attributes.core")}}

+ +
+ +
+
+
+
+ +
+ +
+
+ +
+
+
diff --git a/files/ru/web/svg/attribute/cx/index.html b/files/ru/web/svg/attribute/cx/index.html new file mode 100644 index 0000000000..6e7c22c089 --- /dev/null +++ b/files/ru/web/svg/attribute/cx/index.html @@ -0,0 +1,70 @@ +--- +title: cx +slug: Web/SVG/Attribute/cx +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/cx +--- +

« Справочник SVG атрибутов

+ +

Для элементов {{ SVGElement("circle") }} и {{ SVGElement("ellipse") }} этот атрибут определяет координату центра элемента по оси x.  Если атрибут не определён, то эффект такой, как если бы было указано значение "0".

+ +

Для элемента {{ SVGElement("radialGradient") }} этот атрибут определяет координату x набольшого(т.е. внешнего) круга в радиальном градиенте. Градиент будет нарисован так, чтобы значение градиента 100% соответствовало периметру этого наибольшего(внешнего) круга. Если атрибут не определён, то эффект такой, как если бы было указано значение 50%.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорииНет
Значение<coordinate>
АнимируемыйДа
Нормативные документы (en)SVG 1.1 (2nd Edition): The circle element
+ SVG 1.1 (2nd Edition): The ellipse element
+ SVG 1.1 (2nd Edition): The radialGradient element
+ +

{{ page("/ru/docs/Web/SVG/Content_type","Coordinate") }}

+ +

Пример

+ +
  <svg width="120" height="220"
+     viewBox="0 0 120 120" version="1.1"
+     xmlns="http://www.w3.org/2000/svg">
+
+    <style type="text/css" >
+
+      <![CDATA[
+       circle.circleClass {
+       stroke: #006600;
+       fill:   #cc0000;
+    }
+
+      ]]>
+    </style>
+     <circle  class="circleClass"   cx="40" cy="50" r="26"/>
+</svg>
+
+ +

Элементы

+ +

Следующие элементы могут использовать атрибут cx

+ + diff --git a/files/ru/web/svg/attribute/cy/index.html b/files/ru/web/svg/attribute/cy/index.html new file mode 100644 index 0000000000..d4b51c5f9b --- /dev/null +++ b/files/ru/web/svg/attribute/cy/index.html @@ -0,0 +1,69 @@ +--- +title: cy +slug: Web/SVG/Attribute/cy +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/cy +--- +

« Справочник SVG атрибутов

+ +

Для элементов {{ SVGElement("circle") }} и {{ SVGElement("ellipse") }} этот атрибут определяет координату центра элемента по оси y.  Если атрибут не определён, то эффект такой, как если бы было указано значение "0".

+ +

Для элемента {{ SVGElement("radialGradient") }} этот атрибут определяет координату y набольшого(т.е. внешнего) круга в радиальном градиенте. Градиент будет нарисован так, чтобы значение градиента 100% соответствовало периметру этого наибольшего(внешнего) круга. Если атрибут не определён, то эффект такой, как если бы было указано значение 50%.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорииNone
Значение<coordinate>
АнимируемыйДа
Нормативные документы (en)SVG 1.1 (2nd Edition): The circle element
+ SVG 1.1 (2nd Edition): The ellipse element
+ SVG 1.1 (2nd Edition): The radialGradient element
+ +

{{ page("/ru/docs/Web/SVG/Content_type","Coordinate") }}

+ +

Пример

+ +
  <svg width="120" height="220"
+     viewPort="0 0 120 120" version="1.1"
+     xmlns="http://www.w3.org/2000/svg">
+
+    <style type="text/css" >
+
+      <![CDATA[
+       circle.circleClass {
+       stroke: #006600;
+       fill:   #cc0000;
+    }
+
+      ]]>
+    </style>
+     <circle  class="circleClass"   cx="40" cy="50" r="26"/>
+</svg>
+ +

Элементы

+ +

Следующие элементы могут использовать атрибут cy

+ + diff --git a/files/ru/web/svg/attribute/d/index.html b/files/ru/web/svg/attribute/d/index.html new file mode 100644 index 0000000000..708aa0cbad --- /dev/null +++ b/files/ru/web/svg/attribute/d/index.html @@ -0,0 +1,566 @@ +--- +title: d +slug: Web/SVG/Attribute/d +translation_of: Web/SVG/Attribute/d +--- +
{{SVGRef}}
+ +

Атрибут d предоставляет определение пути для рисования.

+ +

Определение пути - это список команд пути, в которых каждая команда состоит из буквы и некоторых чисел, представляющих параметр команды. Ниже приведены все возможные команды.

+ +

Три элемента используют этот атрибут: {{SVGElement("path")}}, {{SVGElement("glyph")}}, и {{SVGElement("missing-glyph")}}

+ +
+ + +
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+  <path fill="none" stroke="red"
+    d="M 10,30
+       A 20,20 0,0,1 50,30
+       A 20,20 0,0,1 90,30
+       Q 90,60 50,90
+       Q 10,60 10,30 z" />
+</svg>
+ +

{{EmbedLiveSample('Example', '100%', 200)}}

+
+ +

path

+ +

Для {{SVGElement('path')}}, d - строка, содержащая ряд команд пути, которые определяют путь, который должен нарисован.(maybe 'drawn' not 'drown')

+ + + + + + + + + + + + + + + + +
Value<string>
Default valuenone
AnimatableYes
+ +

glyph

+ +

Warning: Начиная с SVG2 {{SVGElement('glyph')}} устарел и не должен использоваться.

+ +

Для {{SVGElement('glyph')}}, d является строкой, содержащей серию команд пути, которые определяют форму контура глифа.

+ + + + + + + + + + + + + + + + +
Value<string>
Default valuenone
AnimatableYes
+ +

Сноска: Точка происхождения (координата 0,0) обычно является верхним левым углом контекста. Однако элемент {{SVGElement("glyph")}} имеет свое происхождение в левом нижнем углу своего бокса.

+ +

missing-glyph

+ +

Внимание: Начиная с SVG2 {{SVGElement('missing-glyph')}} устарел и не должен использоваться.

+ +

Для {{SVGElement('missing-glyph')}}, d является строкой, содержащей серию команд пути, которые определяют форму контура глифа.

+ + + + + + + + + + + + + + + + +
Value<string>
Default valuenone
AnimatableYes
+ +

Команды пути

+ +

(Path commands)

+ +

Команды пути - это команды, объединённые вместе в одну строку и определяющие путь, который нужно нарисовать. Каждая команда состоит из буквы, следующей за некоторыми числами, которые представляют параметры команды.

+ +

SVG определяет 6 типов команд пути для всех 20 команд:

+ + + +

Заметка: Команды чувствительны к регистру; команда верхнего регистра указывает свои аргументы как абсолютные позиции, тогда как команда нижнего регистра указывает точки относительно текущей позиции.

+ +

Всегда можно указать отрицательное значение в качестве аргумента для команды: отрицательные углы будут вращаться против часовой стрелки, абсолютные позиции x и y будут приниматься за отрицательные координаты, отрицательные относительные значения x будут перемещаться влево, а отрицательные относительные значения y будут двигаться вверх.

+ +

Команды перемещения

+ +

(MoveTo path commands)

+ +

MoveTo инструкции можно рассматривать как собирание чертежного инструмента и установку его в другом месте. Между предыдущей точкой и указанной точкой нет линии.

+ +

Заметка: Хорошей практикой является открытие всех путей с помощью команды moveto, потому что без начального moveto команды будут выполняться с начальной точки, где бы это ни было ранее, что может привести к неопределенному поведению.

+ + + + + + + + + + + + + + + + + + + +
КомандаПараметрыПримечания
M(x, y)+Движение начала следующего под-пути к координатам  x,y. Любая последующая координатная пара(ы) интерпретируется как параметр(ы) для неявных абсолютных команд LineTo(L) (см. Ниже).
+ Формула: Pn = {xy}
m(dx, dy)+ +

Перемещает начало следующего подпути, сдвинув последнюю известную позицию пути на dx вдоль оси x и на dy вдоль оси y. Любая последующая пара координат считается неявной относительной командой LineTo (l) (см. ниже)
+ Формула: Pn= {xo + dx, yo + dy}

+
+ +

Examples

+ + + +
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+  <path fill="none" stroke="red"
+    d="M 10,10 h 10
+       m  0,10 h 10
+       m  0,10 h 10
+       M 40,20 h 10
+       m  0,10 h 10
+       m  0,10 h 10
+       m  0,10 h 10
+       M 50,50 h 10
+       m-20,10 h 10
+       m-20,10 h 10
+       m-20,10 h 10" />
+</svg>
+ +

{{EmbedLiveSample('Команды_перемещения', '100%', 200)}}

+ +

LineTo path commands

+ +

LineTo инструкции проводят прямую линию от current point (Po; {xo, yo}), до end point (Pn; {xn, yn}), на основе указанных параметров. Конечная точка end point (Pn) становится текущей точкой для следующей команды  (Po').

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandParametersNotes
L(x, y)+ +

Рисует линию из текущей точки в конечную точку определенную x,y. Любая последующая пара(ы) координат интерпретируется как параметр(ы) для неявной абсолютной команд(ы) LineTo (L). Формула: Po' = Pn = {xy}

+
l(dx, dy)+Draw a line from the current point to a point for which coordinates are those of the current point shifted by dx along the x-axis and dy along the y-axis. The current point gets its X and Y coordinates shifted by dx and dy for the next command. All usubsequente pair of coordinates are considered implicite relative LineTo (l) command (see below).
Hx+Draw a horizontal line from the current point to the new x coordinate (y coordinate stay unchanged). The current point get its x coordinate updated for the next command. All subsequente value are considered an implicite absolute horizontal LineTo (H) command.
hdx+Draw a horizontal line from the current point to a point shift by dx along the the x-axis (y coordinate stay unchanged). The current point get its X coordinate updated by dx for the next command. All subsequente value are considered an implicite relative horizontal LineTo (h) command.
Vy+Draw a vertical line from the current point to the new y coordinate (x coordinate stay unchanged). The current point get its y coordinate updated for the next command. All subsequente value are considered an implicite absolute vertical LineTo (V) command.
vdy+Draw a vertical line from the current point to a point shift by dy along the y-axis (x coordinate stay unchanged). The current point get its Y coordinate updated by dy for the next command. All subsequente value are considered an implicite relative vertical LineTo (v) command.
+ +

Examples

+ + + +
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
+  <!-- LineTo commands in absolute coordinates -->
+  <path fill="none" stroke="red"
+        d="M 10,10
+           L 90,90
+           V 10
+           H 50" />
+
+  <!-- LineTo commands in relative coordinates -->
+  <path fill="none" stroke="red"
+        d="M 110,10
+           l 80,80
+           v -80
+           h -40" />
+</svg>
+ +

{{EmbedLiveSample('LineTo_path_commands', '100%', 200)}}

+ +

Cubic Bézier Curve

+ +

Cubic Bézier curves are smooth curve definitions using four points: A starting point, a end point, and two control points to define the curvature.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandParametersNotes
C(x1,y1, x2,y2, x,y)+Draw a Bézier curve from the current point to the coordinate x,y. x1,y1 are the coordinates of the control point at the begining of the curve where x2,y2 are the coordinates of the controle point at the end of the curve. The coordinate x,y become the new current point for the next command. All subsequente triplets of coordinates are considered implicite absolute cubic Bézier curve (C) command.
c(dx1,dy1, dx2,dy2, dx,dy)+Draw a Bézier curve from the current point to a point for which coordinates are those of the current point shifted by dx along the x-axis and dy along the y-axis. dx1,dy1 are the coordinates of the control point at the beginning of the curve relative to the starting point of the curve and dx2,dy2 are the coordinates of the controle point at the end of the curve relative to the starting point of the curve. The current point gets its X and Y coordinates shifted by dx and dy for the next command. All subsequente triplets of coordinates are considered implicite relative cubic Bézier curve (c) command.
S(x2,y2, x,y)+Draw a smooth Bézier curve from the current point to the coordinate x,y. x2,y2 are the coordinates of the controle point at the end of the curve. The controle point at the begining of the curve is a reflexion of the controle points at the end of the previous curve command. If the previous command wasn't a curve, then the coordinate of the controle point at the begining of the curve match those of the curve starting point. The coordinate x,y become the new current point for the next command. All subsequente duo of coordinates are considered implicite absolute smooth cubic Bézier curve (S) command.
s(dx2,dy2, dx,dy)+Draw a smooth Bézier curve from the current point to a point for which coordinates are those of the current point shifted by dx along the x-axis and dy along the y-axis. dx2,dy2 are the coordinates of the controle point at the end of the curve relative to the starting point of the curve. The controle point at the begining of the curve is a reflexion of the controle points at the end of the previous curve command. If the previous command wasn't a curve, then the coordinate of the controle point at the begining of the curve match those of the curve starting point. The current point gets its X and Y coordinates shifted by dx and dy for the next command. All subsequente duo of coordinates are considered implicite relative smooth cubic Bézier curve (s) command.
+ +

Examples

+ + + +
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+
+  <!-- Quadratic Bézier curve with absolute coordinate -->
+  <path fill="none" stroke="red"
+        d="M 10,90
+           C 30,90 25,10 50,10
+           S 70,90 90,90" />
+
+  <!-- Quadratic Bézier curve with relative coordinate -->
+  <path fill="none" stroke="red"
+        d="M 110,90
+           c 20,0 15,-80 40,-80
+           s 20,80 40,80" />
+
+  <!-- Highlight the curve vertex and control points -->
+  <g id="ControlPoints">
+
+    <!-- First cubic command control points -->
+    <line x1="10" y1="90" x2="30" y2="90" stroke="lightgrey" />
+    <circle cx="30" cy="90" r="1.5"/>
+
+    <line x1="50" y1="10" x2="25" y2="10" stroke="lightgrey" />
+    <circle cx="25" cy="10" r="1.5"/>
+
+    <!-- Second smooth command control points (the first one is implicite) -->
+    <line x1="50" y1="10" x2="75" y2="10" stroke="lightgrey" stroke-dasharray="2" />
+    <circle cx="75" cy="10" r="1.5" fill="lightgrey"/>
+
+    <line x1="90" y1="90" x2="70" y2="90" stroke="lightgrey" />
+    <circle cx="70" cy="90" r="1.5" />
+
+    <!-- curve vertex points -->
+    <circle cx="10" cy="90" r="1.5"/>
+    <circle cx="50" cy="10" r="1.5"/>
+    <circle cx="90" cy="90" r="1.5"/>
+  </g>
+  <use xlink:href="#ControlPoints" x="100" />
+</svg>
+ +

{{EmbedLiveSample('Cubic_Bézier_Curve', '100%', 200)}}

+ +

Quadratic Bézier Curve

+ +

Quadratic Bézier curves are smooth curve definitions using three points: A starting point, a end point, and a control point to define the curvature.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandParametersNotes
Q(x1,y1, x,y)+Draw a Bézier curve from the current point to the coordinate x,y. x1,y1 are the coordinates of the control point for the curve. The coordinate x,y become the new current point for the next command. All subsequente duo of coordinates are considered implicite absolute quadratic Bézier curve (Q) command.
q(dx1,dy1, dx,dy)+Draw a Bézier curve from the current point to a point for which coordinates are those of the current point shifted by dx along the x-axis and dy along the y-axis. dx1,dy1 are the coordinates of the control point for the curve relative to the starting point of the curve. The current point gets its X and Y coordinates shifted by dx and dy for the next command. All subsequente duo of coordinates are considered implicite relative quadratic Bézier curve (q) command.
T(x,y)+Draw a smooth Bézier curve from the current point to the coordinate x,y. The controle point for the curve is a reflexion of the controle points at the end of the previous curve command. If the previous command wasn't a curve, then the coordinate of the controle point at the begining of the curve match those of the curve starting point. The coordinate x,y become the new current point for the next command. All subsequente coordinates are considered implicite absolute smooth quadratic Bézier curve (T) command.
t(dx,dy)+Draw a smooth Bézier curve from the current point to a point for which coordinates are those of the current point shifted by dx along the x-axis and dy along the y-axis. The controle point for the curve is a reflexion of the controle points at the end of the previous curve command. If the previous command wasn't a curve, then the coordinate of the controle point at the begining of the curve match those of the curve starting point. The current point gets its X and Y coordinates shifted by dx and dy for the next command. All subsequente coordinates are considered implicite relative smooth quadratic Bézier curve (t) command.
+ +

Examples

+ + + +
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+
+  <!-- Quadratic Bézier curve with implicite repetition -->
+  <path fill="none" stroke="red"
+        d="M 10,50
+           Q 25,25 40,50
+           t 30,0 30,0 30,0 30,0 30,0" />
+
+  <!-- Highlight the curve vertex and control points -->
+  <g>
+    <polyline points="10,50 25,25 40,50" stroke="rgba(0,0,0,.2)" fill="none" />
+    <circle cx="25" cy="25" r="1.5" />
+
+    <!-- curve vertex points -->
+    <circle cx="10" cy="50" r="1.5"/>
+    <circle cx="40" cy="50" r="1.5"/>
+
+    <g id="SmoothQuadraticDown">
+      <polyline points="40,50 55,75 70,50" stroke="rgba(0,0,0,.2)" stroke-dasharray="2" fill="none" />
+      <circle cx="55" cy="75" r="1.5" fill="lightgrey" />
+      <circle cx="70" cy="50" r="1.5" />
+    </g>
+
+    <g id="SmoothQuadraticUp">
+      <polyline points="70,50 85,25 100,50" stroke="rgba(0,0,0,.2)" stroke-dasharray="2" fill="none" />
+      <circle cx="85" cy="25" r="1.5" fill="lightgrey" />
+      <circle cx="100" cy="50" r="1.5" />
+    </g>
+
+    <use xlink:href="#SmoothQuadraticDown" x="60" />
+    <use xlink:href="#SmoothQuadraticUp"   x="60" />
+    <use xlink:href="#SmoothQuadraticDown" x="120" />
+  </g>
+</svg>
+ +

{{EmbedLiveSample('Quadratic_Bézier_Curve', '100%', 200)}}

+ +

Elliptical Arc Curve

+ +

Elliptical arc curves are curves define as a portion of an ellipse. It is sometimes easier than Bézier curve to draw highly regular curves.

+ + + + + + + + + + + + + + + + + + + +
CommandParametersNotes
A(rx ry angle large-arc-flag sweep-flag x y)+ +

Draw an Arc curve from the current point to the coordinate x,y. The center of the ellipse used to draw the arc is determine automatically based on the other parameters of the command:

+ +
    +
  • rx and ry are the two radii of the ellipse;
  • +
  • angle represente a rotation (in degree) of the ellipse relative to the x-axis;
  • +
  • large-arc-flag and sweep-flag allows to chose which arc must be drawn as 4 possible arcs can be drawn out of the other parameters. +
      +
    • large-arc-flag allows to chose one of the large arc (1) or small arc (0),
    • +
    • sweep-flag allows to chose one of the clockwise turning arc (1) or anticlockwise turning arc (0)
    • +
    +
  • +
+ The coordinate x,y become the new current point for the next command. All subsequente set of parameters are considered implicite absolute arc curve (A) command.
a(rx ry angle large-arc-flag sweep-flag dx dy)+ +

Draw an Arc curve from the current point to to a point for which coordinates are those of the current point shifted by dx along the x-axis and dy along the y-axis. The center of the ellipse used to draw the arc is determine automatically based on the other parameters of the command:

+ +
    +
  • rx and ry are the two radii of the ellipse;
  • +
  • angle represente a rotation (in degree) of the ellipse relative to the x-axis;
  • +
  • large-arc-flag and sweep-flag allows to chose which arc must be drawn as 4 possible arcs can be drawn out of the other parameters. +
      +
    • large-arc-flag allows to chose one of the large arc (1) or small arc (0),
    • +
    • sweep-flag allows to chose one of the clockwise turning arc (1) or anticlockwise turning arc (0)
    • +
    +
  • +
+ The current point gets its X and Y coordinates shifted by dx and dy for the next command. All subsequente set of parameters are considered implicite relative arc curve (a) command.
+ +

Examples

+ + + +
<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+
+  <!-- The influence of the arc flags on which arc is drawn -->
+  <path fill="none" stroke="red"
+        d="M 6,10
+           A 6 4 10 1 0 14,10" />
+
+  <path fill="none" stroke="lime"
+        d="M 6,10
+           A 6 4 10 1 1 14,10" />
+
+  <path fill="none" stroke="purple"
+        d="M 6,10
+           A 6 4 10 0 1 14,10" />
+
+  <path fill="none" stroke="pink"
+        d="M 6,10
+           A 6 4 10 0 0 14,10" />
+</svg>
+ +

{{EmbedLiveSample('Elliptical_Arc_Curve', '100%', 200)}}

+ +

ClosePath

+ +

ClosePath instructions draw a straight line from the current position, to the first point in the path.

+ + + + + + + + + + + + + + +
CommandParametersNotes
Z, zClose the curent subpath by connecting the last point of the path with its initial point. If the two points doesn't have the same coordinates, a straight line is drawn between those two points.
+ +

Note: The appearance of a shape closed with closepath may be different to that of one closed by drawing a line to the origin, using one of the other commands, because the line ends are joined together (according to the {{SVGAttr('stroke-linejoin')}} setting), rather than just being placed at the same coordinates.

+ +

Examples

+ + + +
<svg viewBox="0 -1 30 11" xmlns="http://www.w3.org/2000/svg">
+
+  <!--
+  An open shape with the last point of
+  the path different than the first one
+  -->
+  <path stroke="red"
+        d="M 5,1
+           l -4,8 8,0" />
+
+  <!--
+  An open shape with the last point of
+  the path matching the first one
+  -->
+  <path stroke="red"
+        d="M 15,1
+           l -4,8 8,0 -4,-8" />
+
+  <!--
+  An closed shape with the last point of
+  the path different than the first one
+  -->
+  <path stroke="red"
+        d="M 25,1
+           l -4,8 8,0
+           z" />
+</svg>
+ +

{{EmbedLiveSample('ClosePath', '100%', 200)}}

+ +

Specification

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("SVG2", "paths.html#DProperty", "d")}}{{Spec2("SVG2")}}Definition for <path>
{{SpecName("SVG1.1", "fonts.html#GlyphElementDAttribute", "d")}}{{Spec2("SVG1.1")}}Initial definition for <glyph> and <missing-glyph>
{{SpecName("SVG1.1", "paths.html#DAttribute", "d")}}{{Spec2("SVG1.1")}}Initial definition for <path>
diff --git a/files/ru/web/svg/attribute/dur/index.html b/files/ru/web/svg/attribute/dur/index.html new file mode 100644 index 0000000000..7580e8fd28 --- /dev/null +++ b/files/ru/web/svg/attribute/dur/index.html @@ -0,0 +1,95 @@ +--- +title: dur +slug: Web/SVG/Attribute/dur +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/dur +--- +
{{SVGRef}}
+ +

Атрибут dur отображает простую длительность анимации.

+ +

Пять элементов используют данный атрибут: {{SVGElement("animate")}}, {{SVGElement("animateColor")}}, {{SVGElement("animateMotion")}}, {{SVGElement("animateTransform")}}, и {{SVGElement("set")}}

+ +
+ + +
<svg viewBox="0 0 220 150" xmlns="http://www.w3.org/2000/svg">
+  <rect x="0" y="0" width="100" height="100">
+    <animate attributeType="XML" attributeName="y" from="0" to="50"
+        dur="1s" repeatCount="indefinite"/>
+  </rect>
+  <rect x="120" y="0" width="100" height="100">
+    <animate attributeType="XML" attributeName="y" from="0" to="50"
+        dur="3s" repeatCount="indefinite"/>
+  </rect>
+</svg>
+ +

{{EmbedLiveSample("topExample", "220", "150")}}

+
+ +

Примечания к использованию

+ + + + + + + + + + + + + + + + +
Значение<clock-value> | indefinite | media
Значение по-умолчаниюindefinite
АнимируемыйНет
+ +
+
<clock-value>
+
Задает длину простой длительности. Значение должно быть больше 0. Это значение может быть выражено в часах (h), минутах (m), секундах (s) или миллисекундах (ms). Это позволяет объединить такое представление времени для предоставления некоторых сложных длительностей, таких как: hh:mm:ss.iii или  mm:ss.iii
+
media
+
Задаёт простую длительность, как длительность, свойственной медиа. Это валидно только для элементов, которые определяют media.
+
indefinite
+
Задаёт простую длительность, как незаданную
+
+
+ +
+

Примечание: Интерполяция не будет работать, если простая длительность остается неопределенной (хотя это может быть полезно для элементов {{ SVGElement("set") }}).

+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG Animations 2", "#DurAttribute", "dur")}}{{Spec2("SVG Animations 2")}}Без изменений
{{SpecName("SVG1.1", "animate.html#DurAttribute", "dur")}}{{Spec2("SVG1.1")}}Изначальное определение
+ +

Совместимость с браузерами

+ +

{{Compat("svg.elements.animate.dur")}}

diff --git a/files/ru/web/svg/attribute/end/index.html b/files/ru/web/svg/attribute/end/index.html new file mode 100644 index 0000000000..c4db1e943f --- /dev/null +++ b/files/ru/web/svg/attribute/end/index.html @@ -0,0 +1,45 @@ +--- +title: end +slug: Web/SVG/Attribute/end +translation_of: Web/SVG/Attribute/end +--- +

« SVG Attribute reference home

+ +

Этот атрибут определяет конечное значение для анимации, которое может ограничить активную длительность.

+ +

Значение атрибута представляет собой разделенный точками с запятой список значений. Каждое отдельное значение может совпадать с типом, определенным для {{ SVGAttr("begin") }} атрибута .

+ +

Usage context

+ + + + + + + + + + + + + + + + + + + + +
CategoriesAnimation timing attribute
Value<End-value-list>
AnimatableNo
Normative documentSVG 1.1 (2nd Edition)
+ +

Для типов значений, разрешенных в, <end-value-list> см.  {{ SVGAttr("begin") }} атрибут.

+ +

Examples

+ +

Elements

+ +

The following elements can use the end attribute

+ + diff --git a/files/ru/web/svg/attribute/fill-opacity/index.html b/files/ru/web/svg/attribute/fill-opacity/index.html new file mode 100644 index 0000000000..ca44666cf6 --- /dev/null +++ b/files/ru/web/svg/attribute/fill-opacity/index.html @@ -0,0 +1,69 @@ +--- +title: fill-opacity +slug: Web/SVG/Attribute/fill-opacity +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/fill-opacity +--- +

« Справочник SVG атрибутов

+ +

Этот атрибут определяет прозрачность цвета заполнения содержимого элемента.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут оформления
Значение<opacity-value> | inherit
Предустановленное значение1
АнимируемыйДа
СпецификацияSVG 1.1 (2nd Edition)
+ +

Примеры

+ +

SVG

+ +
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
+  <circle cx="100" cy="100" r="100" />
+</svg>
+<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
+  <circle cx="100" cy="100" r="100" fill-opacity="0.25" />
+</svg>
+ +

результат

+ +

{{EmbedLiveSample('Example', 200, 200)}}

+ +

Элементы

+ +

Следующие группы элементов могут быть использованы с атрибутом fill-opacity:

+ + + +

См. также

+ + diff --git a/files/ru/web/svg/attribute/fill-rule/index.html b/files/ru/web/svg/attribute/fill-rule/index.html new file mode 100644 index 0000000000..d83dad58c3 --- /dev/null +++ b/files/ru/web/svg/attribute/fill-rule/index.html @@ -0,0 +1,162 @@ +--- +title: fill-rule +slug: Web/SVG/Attribute/fill-rule +translation_of: Web/SVG/Attribute/fill-rule +--- +
{{SVGRef}}
+ +

The fill-rule этот  атрибут представления, формулирует алгоритм, используемый для определения внутренней части фигуры.

+ +

Note: Атрибут представления, fill-rule может быть использован как CSS свойство.

+ +

Как атрибут представления, он может быть применен к следующим восьми элементам:: {{SVGElement('altGlyph')}}, {{SVGElement('path')}}, {{SVGElement('polygon')}}, {{SVGElement('polyline')}}, {{SVGElement('text')}}, {{SVGElement('textPath')}}, {{SVGElement('tref')}}, and {{SVGElement('tspan')}}

+ +
+ + +
<svg viewBox="-10 -10 220 120" xmlns="http://www.w3.org/2000/svg">
+  <!-- Default value for fill-rule -->
+  <polygon fill-rule="nonzero" stroke="red"
+   points="50,0 21,90 98,35 2,35 79,90"/>
+
+  <!--
+  The center of the shape has two
+  path segments (shown by the red stroke)
+  between it and infinity. It is therefore
+  considered outside the shape, and not filled.
+  -->
+  <polygon fill-rule="evenodd" stroke="red"
+   points="150,0 121,90 198,35 102,35 179,90"/>
+</svg>
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+
+ +

Примечания по использованию

+ + + + + + + + + + + + + + + + +
Значениеnonzero | evenodd
Значение по умолчаниюnonzero
АнимируемыйДа
+ +

The fill-rule attribute provides two options for how the inside (that is, the area to be filled) of a shape is determined:

+ +

nonzero

+ +

The value nonzero determines the "insideness" of a point in the shape by drawing a ray from that point to infinity in any direction, and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a path segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the path. Otherwise, it is inside.

+ +

Example

+ + + +
<svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg">
+  <!-- Effect of nonzero fill rule on crossing path segments -->
+  <polygon fill-rule="nonzero" stroke="red"
+           points="50,0 21,90 98,35 2,35 79,90"/>
+
+  <!--
+  Effect of nonzero fill rule on a shape inside a shape
+  with the path segment moving in the same direction
+  (both squares drawn clockwise, to the "right")
+  -->
+  <path fill-rule="nonzero" stroke="red"
+        d="M110,0  h90 v90 h-90 z
+           M130,20 h50 v50 h-50 z"/>
+
+    <!--
+  Effect of nonzero fill rule on a shape inside a shape
+  with the path segment moving in the opposite direction
+  (one square drawn clockwise, the other anti-clockwise)
+  -->
+  <path fill-rule="nonzero" stroke="red"
+        d="M210,0  h90 v90 h-90 z
+           M230,20 v50 h50 v-50 z"/>
+</svg>
+ +

{{EmbedLiveSample('nonzero', '100%', 200)}}

+ +

evenodd

+ +

The value evenodd determines the "insideness" of a point in the shape by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses. If this number is odd, the point is inside; if even, the point is outside.

+ +

Example

+ + + +
<svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg">
+  <!-- Effect of evenodd fill rule on crossing path segments -->
+  <polygon fill-rule="evenodd" stroke="red"
+           points="50,0 21,90 98,35 2,35 79,90"/>
+
+  <!--
+  Effect of evenodd fill rule on on a shape inside a shape
+  with the path segment moving in the same direction
+  (both squares drawn clockwise, to the "right")
+  -->
+  <path fill-rule="evenodd" stroke="red"
+        d="M110,0  h90 v90 h-90 z
+           M130,20 h50 v50 h-50 z"/>
+
+    <!--
+  Effect of evenodd fill rule on a shape inside a shape
+  with the path segment moving in opposite direction
+  (one square drawn clockwise, the other anti-clockwise)
+  -->
+  <path fill-rule="evenodd" stroke="red"
+        d="M210,0  h90 v90 h-90 z
+           M230,20 v50 h50 v-50 z"/>
+</svg>
+ +

{{EmbedLiveSample('evenodd', '100%', 200)}}

+ +

Browser compatibility

+ + + +

{{Compat("svg.attributes.presentation.fill-rule")}}

+ +

Specification

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("SVG2", "painting.html#FillRuleProperty", "fill-rule")}}{{Spec2("SVG2")}}Definition for shapes and text
{{SpecName("SVG1.1", "painting.html#FillRuleProperty", "fill-rule")}}{{Spec2("SVG1.1")}}Initial definition for shapes and text
+ +
+

да

+
diff --git a/files/ru/web/svg/attribute/fill/index.html b/files/ru/web/svg/attribute/fill/index.html new file mode 100644 index 0000000000..9e4c654a44 --- /dev/null +++ b/files/ru/web/svg/attribute/fill/index.html @@ -0,0 +1,99 @@ +--- +title: fill +slug: Web/SVG/Attribute/fill +tags: + - NeedsUpdate + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/fill +--- +

« Справочник SVG атрибутов

+ +

Атрибут fill имеет два значения в зависимости от используемого контекста.

+ +

По умолчанию, когда элементы анимации заканчиваются и их эффекты больше не применяются к значению представления для целевых атрибутов. Атрибут fill может использоваться для сохранения значения анимации после окончания активной продолжительности элемента анимации.

+ +

Для фигур и текста атрибут fill является атрибутом представления, определяющим цвет внутренней части данного графического элемента. То, что называется «интерьер», зависит от самой фигуры и значения {{ SVGAttr("fill-rule") }} атрибут. Как атрибут представления, он также может использоваться как свойство непосредственно в таблице стилей CSS

+ +

Контекст использования

+ +

Для анимируемых элементов

+ + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибуты времени анимации
Значениеremove | freeze
АнимацияНет
Нормативный документSVG 1.1 (2nd Edition)
+ +
+
remove (default)
+
Эффект анимации удаляется (больше не применяется) при завершении активной продолжительности анимации. После активного конца анимации анимация больше не влияет на конечный объект (если анимация не перезапущена).
+
freeze
+
Эффект анимации «заморожен» при активной длительности анимации на оставшийся срок действия документа (или до перезапуска анимации).
+
+ +

Для текста и форм

+ + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут представления
Значение +

<paint>, context-fill, context-stroke

+
АнимацияДа
Нормативный документSVG 1.1 (2nd Edition)
+ +

Примеры

+ +

Пример 1: Простой SVG

+ +
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
+  <circle cx="100" cy="100" r="100" fill="#666"/>
+</svg>
+ +

Результат

+ +

{{EmbedLiveSample('Example_1_Simple_SVG', 200, 200)}}

+ +

Использование context-fill

+ +

Для информации об использовании нестандартного и ограниченного значения  context-fillcontext-stroke) смотрите документацию  {{cssxref("-moz-context-properties")}}.

+ +

Смотрите также

+ +

Следующие элементы могут использовать атрибут fill

+ + diff --git a/files/ru/web/svg/attribute/font-weight/index.html b/files/ru/web/svg/attribute/font-weight/index.html new file mode 100644 index 0000000000..1985975c56 --- /dev/null +++ b/files/ru/web/svg/attribute/font-weight/index.html @@ -0,0 +1,86 @@ +--- +title: font-weight +slug: Web/SVG/Attribute/font-weight +tags: + - SVG +translation_of: Web/SVG/Attribute/font-weight +--- +

« SVG Attribute reference home

+ +

Атрибут font-weight позволяет выбрать из шрифтового семейства начертание шрифта с указанной насыщенностью (иначе говоря, толщиной линий знаков, "жирностью") .

+ +

Как и любой атрибут представления,  font-weight может быть использован в виде свойства в CSS стилях, см. {{ cssxref("font-weight","CSS font-weight") }} для подробной информации.

+ +

Контекст применения

+ + + + + + + + + + + + + + + + + + + + +
КатегорииАтрибут представления
Значенияnormal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
АнимируемостьДа
Нормативный документSVG 1.1 (2nd Edition)
+ +

Значение ключевых слов

+ + + +

Предостережения

+ +

Для многих шрифтов доступны только значения 400 и 700 - нормальное и полужирное начертания соответственно. Доступные значения могут варьироваться в зависимости от шрифта.

+ +

Пример

+ +

css

+ +
p.normal {font-weight:normal;}
+p.thick {font-weight:bold;}
+p.thicker {font-weight:900;}
+ +

html

+ +
<p class="normal">This is a paragraph.</p>
+<p class="light">This is a paragraph.</p>
+<p class="thick">This is a paragraph.</p>
+<p class="thicker">This is a paragraph.</p>
+
+ +

Элементы

+ +

Следующие элементы могут использовать атрибут font-weight.

+ + + +

Поддержка браузерами

+ + + +

{{Compat("svg.attributes.presentation.font-weight")}}

+ +

Смотри также

+ + diff --git a/files/ru/web/svg/attribute/id/index.html b/files/ru/web/svg/attribute/id/index.html new file mode 100644 index 0000000000..54590a4cd4 --- /dev/null +++ b/files/ru/web/svg/attribute/id/index.html @@ -0,0 +1,113 @@ +--- +title: id +slug: Web/SVG/Attribute/id +tags: + - SVG +translation_of: Web/SVG/Attribute/id +--- +
{{SVGRef}}
+ +

Атрибут id присваивает уникальное имя элементу.

+ +

Этот атрибут используется всеми элементами.

+ +
+
<svg width="120" height="120" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg">
+  <style type="text/css">
+    <![CDATA[
+      #smallRect {
+        stroke: #000066;
+        fill: #00cc00;
+      }
+    ]]>
+  </style>
+
+  <rect id="smallRect" x="10" y="10" width="100" height="100" />
+</svg>
+
+ +

{{EmbedLiveSample("topExample", "120", "120")}}

+
+ +

Примечания по использованию

+ + + + + + + + + + + + + + + + +
Значение<id>
Значение по умолчаниюОтсутствует
АнимируемыйНет
+ +
+
<id>
+
+

Задает идентификатор элемента. Идентификатор должен быть уникальным в пределах дерева узлов, не должен быть пустой строкой и не должен содержать  никаких пробелов.

+ +
+

Примечание: Следует избегать использование значений идентификатора, которые будут анализироваться как спецификация представления SVG (например, MyDrawing.svg#svgView(viewBox(0,200,1000,1000))) или базовый фрагмент мультимедиа при использовании в качестве целевого фрагмента URL.

+
+ +

Он должен быть валидным для XML-документов. Автономный документ SVG использует синтаксис XML 1.0, который указывает, что валидные идентификаторы включают только обозначенные символы (буквы, цифры и несколько знаков препинания) и не начинаются с цифры, символа точки (.) или с дефиса (-).

+
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG2", "struct.html#IDAttribute", "id")}}{{Spec2("SVG2")}}Более подробно определяет допустимые значения.
{{SpecName("SVG1.1", "struct.html#IDAttribute", "id")}}{{Spec2("SVG1.1")}}Исходное определение
+ +

Совместимость с браузерами

+ + + +

{{Compat("svg.attributes.style.class")}}

+ +

Смотрите также

+ + + +
+
+
+
+ +
+ +
+
+ +
+
+
diff --git a/files/ru/web/svg/attribute/index.html b/files/ru/web/svg/attribute/index.html new file mode 100644 index 0000000000..7d05b490e8 --- /dev/null +++ b/files/ru/web/svg/attribute/index.html @@ -0,0 +1,461 @@ +--- +title: Справочник SVG атрибутов +slug: Web/SVG/Attribute +tags: + - NeedsHelp + - SVG + - SVG Attribute + - SVG Reference + - Атрибуты + - Руководство +translation_of: Web/SVG/Attribute +--- +

« SVG / Справочник SVG элементов »

+ +

Элементы SVG можно изменять с помощью атрибутов, которые задают подробные сведения о том, каким образом элемент должен обрабатываться или визуализироваться. Ниже приведен список всех атрибутов, доступных в SVG, а также ссылки на справочную документацию, помогающие узнать, какие элементы поддерживают их и как они работают.

+ +

SVG Атрибуты от А до Я

+ +
+

A

+ + + +

B

+ + + +

C

+ + + +

D

+ + + +

E

+ + + +

F

+ + + +

G

+ + + +

H

+ + + +

I

+ + + +

K

+ + + +

L

+ + + +

M

+ + + +

N

+ + + +

O

+ + + +

P

+ + + +

R

+ + + +

S

+ + + +

T

+ + + +

U

+ + + +

V

+ + + +

W

+ + + +

X

+ + + +

Y

+ + + +

Z

+ + +
+ +

Категории

+ +

Атрибуты событий анимации

+ +

{{ SVGAttr("onbegin") }}, {{ SVGAttr("onend") }}, {{ SVGAttr("onload") }}, {{ SVGAttr("onrepeat") }}

+ +

Целевые атрибуты анимации

+ +

{{ SVGAttr("attributeType") }}, {{ SVGAttr("attributeName") }}

+ +

Атрибуты времени анимации

+ +

{{ SVGAttr("begin") }}, {{ SVGAttr("dur") }}, {{ SVGAttr("end") }}, {{ SVGAttr("min") }}, {{ SVGAttr("max") }}, {{ SVGAttr("restart") }}, {{ SVGAttr("repeatCount") }}, {{ SVGAttr("repeatDur") }}, {{ SVGAttr("fill") }}

+ +

Атрибуты значений анимации

+ +

{{ SVGAttr("calcMode") }}, {{ SVGAttr("values") }}, {{ SVGAttr("keyTimes") }}, {{ SVGAttr("keySplines") }}, {{ SVGAttr("from") }}, {{ SVGAttr("to") }}, {{ SVGAttr("by") }}

+ +

Атрибуты добавления анимации

+ +

{{ SVGAttr("additive") }}, {{ SVGAttr("accumulate") }}

+ +

Атрибуты условий

+ +

{{ SVGAttr("requiredExtensions") }}, {{ SVGAttr("requiredFeatures") }}, {{ SVGAttr("systemLanguage") }}.

+ +

Атрибуты ядра

+ +

{{ SVGAttr("id") }}, {{ SVGAttr("xml:base") }}, {{ SVGAttr("xml:lang") }}, {{ SVGAttr("xml:space") }}

+ +

Атрибуты событий документа

+ +

{{ SVGAttr("onabort") }}, {{ SVGAttr("onerror") }}, {{ SVGAttr("onresize") }}, {{ SVGAttr("onscroll") }}, {{ SVGAttr("onunload") }}, {{ SVGAttr("onzoom") }}

+ +

Атрибуты простых фильтров

+ +

{{ SVGAttr("height") }}, {{ SVGAttr("result") }}, {{ SVGAttr("width") }}, {{ SVGAttr("x") }}, {{ SVGAttr("y") }}

+ +

Атрибуты графических событий

+ +

{{ SVGAttr("onactivate") }}, {{ SVGAttr("onclick") }}, {{ SVGAttr("onfocusin") }}, {{ SVGAttr("onfocusout") }}, {{ SVGAttr("onload") }}, {{ SVGAttr("onmousedown") }}, {{ SVGAttr("onmousemove") }}, {{ SVGAttr("onmouseout") }}, {{ SVGAttr("onmouseover") }}, {{ SVGAttr("onmouseup") }}

+ +

Атрибуты представления

+ +
Заметьте, что все атрибуты представления SVG можно использовать как CSS свойства.
+ +

{{ SVGAttr("alignment-baseline") }}, {{ SVGAttr("baseline-shift") }}, {{ SVGAttr("clip") }}, {{ SVGAttr("clip-path") }}, {{ SVGAttr("clip-rule") }}, {{ SVGAttr("color") }}, {{ SVGAttr("color-interpolation") }}, {{ SVGAttr("color-interpolation-filters") }}, {{ SVGAttr("color-profile") }}, {{ SVGAttr("color-rendering") }}, {{ SVGAttr("cursor") }}, {{ SVGAttr("direction") }}, {{ SVGAttr("display") }}, {{ SVGAttr("dominant-baseline") }}, {{ SVGAttr("enable-background") }}, {{ SVGAttr("fill") }}, {{ SVGAttr("fill-opacity") }}, {{ SVGAttr("fill-rule") }}, {{ SVGAttr("filter") }}, {{ SVGAttr("flood-color") }}, {{ SVGAttr("flood-opacity") }}, {{ SVGAttr("font-family") }}, {{ SVGAttr("font-size") }}, {{ SVGAttr("font-size-adjust") }}, {{ SVGAttr("font-stretch") }}, {{ SVGAttr("font-style") }}, {{ SVGAttr("font-variant") }}, {{ SVGAttr("font-weight") }}, {{ SVGAttr("glyph-orientation-horizontal") }}, {{ SVGAttr("glyph-orientation-vertical") }}, {{ SVGAttr("image-rendering") }}, {{ SVGAttr("kerning") }}, {{ SVGAttr("letter-spacing") }}, {{ SVGAttr("lighting-color") }}, {{ SVGAttr("marker-end") }}, {{ SVGAttr("marker-mid") }}, {{ SVGAttr("marker-start") }}, {{ SVGAttr("mask") }}, {{ SVGAttr("opacity") }}, {{ SVGAttr("overflow") }}, {{ SVGAttr("pointer-events") }}, {{ SVGAttr("shape-rendering") }}, {{ SVGAttr("stop-color") }}, {{ SVGAttr("stop-opacity") }}, {{ SVGAttr("stroke") }}, {{ SVGAttr("stroke-dasharray") }}, {{ SVGAttr("stroke-dashoffset") }}, {{ SVGAttr("stroke-linecap") }}, {{ SVGAttr("stroke-linejoin") }}, {{ SVGAttr("stroke-miterlimit") }}, {{ SVGAttr("stroke-opacity") }}, {{ SVGAttr("stroke-width") }}, {{ SVGAttr("text-anchor") }}, {{ SVGAttr("text-decoration") }}, {{ SVGAttr("text-rendering") }}, {{ SVGAttr("unicode-bidi") }}, {{ SVGAttr("visibility") }}, {{ SVGAttr("word-spacing") }}, {{ SVGAttr("writing-mode") }}

+ +

Атрибуты передаточных функций

+ +

{{ SVGAttr("type") }}, {{ SVGAttr("tableValues") }}, {{ SVGAttr("slope") }}, {{ SVGAttr("intercept") }}, {{ SVGAttr("amplitude") }}, {{ SVGAttr("exponent") }}, {{ SVGAttr("offset") }}

+ + + +

{{ SVGAttr("xlink:href") }}, {{ SVGAttr("xlink:type") }}, {{ SVGAttr("xlink:role") }}, {{ SVGAttr("xlink:arcrole") }}, {{ SVGAttr("xlink:title") }}, {{ SVGAttr("xlink:show") }}, {{ SVGAttr("xlink:actuate") }}

diff --git a/files/ru/web/svg/attribute/keytimes/index.html b/files/ru/web/svg/attribute/keytimes/index.html new file mode 100644 index 0000000000..4df57edc2c --- /dev/null +++ b/files/ru/web/svg/attribute/keytimes/index.html @@ -0,0 +1,87 @@ +--- +title: keyTimes +slug: Web/SVG/Attribute/keyTimes +translation_of: Web/SVG/Attribute/keyTimes +--- +

« SVG Attribute reference home

+ +

Атрибут keyTimes представляет собой разделенный точками с запятой список значений времени, используемых для управления темпами анимации. Каждое значение в списке соответствует значению в списке атрибутов {{ SVGAttr("values") }} и определяет, когда оно используется в анимации. Каждое значение времени в списке keyTimes задается как значение с плавающей запятой от 0 до 1 (включительно), представляющее пропорциональную величину смещения в течение элемента анимации.

+ +

Если указан список keyTimes, то в списке keyTimes должно быть ровно столько же значений, сколько в списке {{ SVGAttr("values") }} .

+ +

Каждое последовательное значение времени должно быть больше или равно предыдущему значению времени.

+ +

Семантика списка keyTimes зависит от режима интерполяции:

+ + + +

Если в качестве режима интерполяции используется paced, атрибут keyTimes игнорируется.

+ +

Если в качетсве параметра длительности выбрано indefinite, атрибут keyTimes игнорируется.

+ +

Usage context

+ + + + + + + + + + + + + + + + + + + + +
CategoriesAnimation value attribute
Value<list>
AnimatableNo
Normative documentSVG 1.1 (2nd Edition)
+ +

Пример

+ +
<?xml version="1.0"?>
+<svg width="120" height="120"
+     viewPort="0 0 120 120" version="1.1"
+     xmlns="http://www.w3.org/2000/svg">
+
+    <circle cx="60" cy="10" r="10">
+
+        <animate attributeName="cx"
+                 attributeType="XML"
+                 dur="4s"
+                 values="60 ; 110 ; 60 ; 10 ; 60"
+                 keyTimes="0 ; 0.25 ; 0.5 ; 0.75 ; 1"
+                 repeatCount="indefinite"/>
+
+        <animate attributeName="cy"
+                 attributeType="XML"
+                 dur="4s"
+                 values="10 ; 60 ; 110 ; 60 ; 10 "
+                 keyTimes="0 ; 0.25 ; 0.5 ; 0.75 ; 1"
+                 repeatCount="indefinite"/>
+
+    </circle>
+</svg>
+ +

Демонстрация

+ +

{{ EmbedLiveSample('Example','120','120') }}

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут keyTimes

+ + diff --git a/files/ru/web/svg/attribute/lang/index.html b/files/ru/web/svg/attribute/lang/index.html new file mode 100644 index 0000000000..86317240f1 --- /dev/null +++ b/files/ru/web/svg/attribute/lang/index.html @@ -0,0 +1,86 @@ +--- +title: lang +slug: Web/SVG/Attribute/lang +tags: + - SVG +translation_of: Web/SVG/Attribute/lang +--- +
{{SVGRef}}
+ +

Атрибут lang указывает основной язык, используемый в содержимом, и атрибуты, содержащие текстовое содержимое определенных элементов.

+ +

Также существует атрибут {{SVGAttr("xml:lang")}} (с пространством имен). Если определены оба атрибута, то используется тот, который имеет пространство имен, а атрибут без пространства имен игнорируется.

+ +

В SVG 1.1 существовал атрибут lang, определенный с другим значением и применимый только к {{SVGElement("glyph")}}. Этот атрибут указывал список языков в формате BCP 47. Глиф предназначался для использования, если атрибут xml:lang точно соответствует одному из языков, указанных в значении этого параметра, или если атрибут xml:lang точно соответствует префиксу одного из языков, указанных в значении этого параметра. Таким образом, первый символ тега, следующий за префиксом, был "-".

+ +

Все элементы используют этот атрибут.

+ +
+
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
+  <text lang="en-US">This is some English text</text>
+</svg>
+
+ +

Примечания по использованию

+ + + + + + + + + + + + + + + + +
Значение<language-tag>
Значение по умолчаниюОтсутствует
АнимируемыйНет
+ +
+
<language-tag>
+
+

Это значение указывает язык, используемый для элемента. Синтаксис этого значения определен в спецификации BCP 47.

+ +

Наиболее распространенным синтаксисом является значение, состоящее из двухсимвольной части нижнего регистра языка и двухсимвольной части верхнего регистра для региона или страны, разделенных знаком минус. Например, en-US для американского английского языка или de-AT для австрийского немецкого.

+
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG2", "struct.html#LangAttribute", "lang")}}{{Spec2("SVG2")}}Сделал атрибут {{SVGAttr("lang")}} (без пространства имен) доступным для всех элементов и определил взаимодействие между ними.
{{SpecName("SVG1.1", "fonts.html#GlyphElementLangAttribute", "lang")}}{{Spec2("SVG1.1")}}Устаревшее определение атрибута для элементов {{SVGElement("glyph")}}.
+ +

Совместимость с браузерами

+ + + +

{{Compat("svg.attributes.core.lang")}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/svg/attribute/lengthadjust/index.html b/files/ru/web/svg/attribute/lengthadjust/index.html new file mode 100644 index 0000000000..69284fcc46 --- /dev/null +++ b/files/ru/web/svg/attribute/lengthadjust/index.html @@ -0,0 +1,33 @@ +--- +title: lengthAdjust +slug: Web/SVG/Attribute/lengthAdjust +translation_of: Web/SVG/Attribute/lengthAdjust +--- +

Когда  SVG элемент <text> или <tspan> имеет конкретную длину, установленную с помощью атрибута  textLengt, атрибут lengthAdjust контролирует как текст помещается в эту длину (растягивается или сжимается).

+ +

Существует 2 допустимых значения для атрибута lengthAdjust: spacing и spacingAndGlyphs. Используя spacing (установлено по умолчанию), форма букв сохраняется, но расстояние между ними увеличивается или уменьшается. Используя spacingAndGlyphs весь тестовый элемент растягивается.

+ +

SVG текст с использованием lengthAdjust

+ +

HTML Content

+ +
<svg width="300" height="150" xmlns="http://www.w3.org/2000/svg">
+   <g font-face="sans-serif">
+      <text x="0" y="20" textLength="300" lengthAdjust="spacing">
+         Stretched using spacing only.
+      </text>
+      <text x="0" y="50" textLength="300" lengthAdjust="spacingAndGlyphs">
+         Stretched using spacing and glyphs.
+      </text>
+      <text x="0" y="80" textLength="100" lengthAdjust="spacing">
+         Shrunk using spacing only.
+      </text>
+      <text x="0" y="110" textLength="100" lengthAdjust="spacingAndGlyphs">
+         Shrunk using spacing and glyphs.
+      </text>
+   </g>
+</svg>
+ +

Результат

+ +

{{ EmbedLiveSample('SVG_text_fitting_using_lengthAdjust') }}

diff --git a/files/ru/web/svg/attribute/letter-spacing/index.html b/files/ru/web/svg/attribute/letter-spacing/index.html new file mode 100644 index 0000000000..4b6adefbc9 --- /dev/null +++ b/files/ru/web/svg/attribute/letter-spacing/index.html @@ -0,0 +1,60 @@ +--- +title: letter-spacing +slug: Web/SVG/Attribute/letter-spacing +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/letter-spacing +--- +

« Справочник SVG атрибутов

+ +

Атрибут letter-spacing контролирует расстояние между текстовыми символами, в дополнении к любому расстоянию атрибута {{ SVGAttr("kerning") }} .

+ +

Для SVG, если значением атрибута выступает обыкновенное число (например, 128), браузер добавляет это к <length> в текущей системе координат пользователя.

+ +

Если же значением атрибута выступают относительные величины, к примеру .25em или 1%, браузер преобразовывает их в  <length> соответствующее значение в текущей системе координат пользователя.

+ +

В качестве атрибута представления он также может использоваться как свойство в CSS. Смотрите {{ cssxref("letter-spacing","CSS letter-spacing") }} для дополнительной информации.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут представления
Значениеnormal | <length> | inherit
Анимируется Да
Нормативный документSVG 1.1 (2nd Edition)
+ +

{{ page("/en/SVG/Content_type","Length") }}

+ +

Элементы

+ +

В следующих элементах можно использовать атрибут letter-spacing

+ + + +

Смотрите также

+ + + +

Примечание об использовании

+ +

Атрибут letter-spacing плохо поддерживается в работе с SVG. По состоянию на май 2016 года Firefox делает текст без использования letter-spacing. Chrome делает текст с уже буквенным интервалом, но неправильно вычисляет длину текста; textNode.getComputedTextLength() возвращает точно такую же длину, letter-spacing установлен или нет, что приводит к грубо неправильным результатам при разнесении букв.

diff --git a/files/ru/web/svg/attribute/lighting-color/index.html b/files/ru/web/svg/attribute/lighting-color/index.html new file mode 100644 index 0000000000..812328afef --- /dev/null +++ b/files/ru/web/svg/attribute/lighting-color/index.html @@ -0,0 +1,50 @@ +--- +title: lighting-color +slug: Web/SVG/Attribute/lighting-color +tags: + - SVG + - SVG атрибуты + - SVG фильтры +translation_of: Web/SVG/Attribute/lighting-color +--- +

« Справочник SVG атрибутов

+ +

Атрибут lighting-color определяет цвет источника света для примитивов фильтров  {{ SVGElement("feDiffuseLighting") }} и {{ SVGElement("feSpecularLighting") }}.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут представления
ЗначениеcurrentColor | <color> | <icccolor> | inherit
Начальное значениеwhite
АнимацияДа
Нормативный документSVG 1.1 (2nd Edition)
+ +

Примеры

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут  lighting-color

+ + diff --git a/files/ru/web/svg/attribute/onload/index.html b/files/ru/web/svg/attribute/onload/index.html new file mode 100644 index 0000000000..b6a5d49ea2 --- /dev/null +++ b/files/ru/web/svg/attribute/onload/index.html @@ -0,0 +1,5 @@ +--- +title: onload +slug: Web/SVG/Attribute/onload +--- +

Link not exist

diff --git a/files/ru/web/svg/attribute/overflow/index.html b/files/ru/web/svg/attribute/overflow/index.html new file mode 100644 index 0000000000..46449f0919 --- /dev/null +++ b/files/ru/web/svg/attribute/overflow/index.html @@ -0,0 +1,67 @@ +--- +title: overflow +slug: Web/SVG/Attribute/overflow +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/overflow +--- +

« Справочник SVG атрибутов

+ +

Атрибут overflow имеет те же значения, что определены для {{ cssxref("overflow","CSS-свойства overflow") }}. Но имеют место также следующие дополнительные моменты:

+ + + +

Будучи презентационным этот атрибут может также быть использован как свойство прямо в CSS-стилях, подробнее см. {{ cssxref("overflow","CSS overflow") }}.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорииПрезентационный атрибут
Значениеvisible | hidden | scroll | auto | inherit
АнимируемыйДа
Нормативный документSVG 1.1 (2nd Edition)
+ +

Пример

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут overflow

+ + + +

См. также

+ + diff --git a/files/ru/web/svg/attribute/patterncontentunits/index.html b/files/ru/web/svg/attribute/patterncontentunits/index.html new file mode 100644 index 0000000000..a47a9e4480 --- /dev/null +++ b/files/ru/web/svg/attribute/patterncontentunits/index.html @@ -0,0 +1,52 @@ +--- +title: patternContentUnits +slug: Web/SVG/Attribute/patternContentUnits +translation_of: Web/SVG/Attribute/patternContentUnits +--- +

« SVG Attribute reference home

+ +

Атрибут patternContentUnits определяет систему координат для содержимого {{ SVGElement("pattern") }}. Заметье, что этот аттрибут не имеет эффекта, если {{ SVGAttr("viewBox") }} определен на {{ SVGElement("pattern") }} элементе.

+ +

Если patternContentUnits аттрибут не определен, то его значение предполагается равным userSpaceOnUse.

+ +

Заметье, что значение {{ SVGElement("pattern") }} не имеет влияния на заданные в процентах аттрибуты контента . Это означает, что, если вы задаете значение patternContentUnits равным objectBoundingBox, значения, указанные в процентах, будут пересчитаны, как если бы вы задали userSpaceOnUse.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
CategoriesNone
ValueuserSpaceOnUse | objectBoundingBox
AnimatableYes
Normative documentSVG 1.1 (2nd Edition)
+ +
+
userSpaceOnUse
+
Пользовательская система координат {{ SVGElement("pattern") }} element is the coordinate system that results from taking the current user coordinate system in place at the time when the {{ SVGElement("pattern") }} element is referenced (i.e., the user coordinate system for the element referencing the {{ SVGElement("pattern") }} element via a {{ SVGAttr("fill") }} or {{ SVGAttr("stroke") }} attribute) and then applying the transform specified by attribute {{ SVGAttr("patternTransform") }}.
+
objectBoundingBox
+
Пользовательская система координат для содержимого {{ SVGElement("pattern") }} элемента is established using the bounding box of the element to which the pattern is applied and then applying the transform specified by attribute {{ SVGAttr("patternTransform") }}.
+
+ +

Примеры

+ +

Элементы

+ +

Атрибут patternContentUnits может быть определен на следующих элементах:

+ + diff --git a/files/ru/web/svg/attribute/r/index.html b/files/ru/web/svg/attribute/r/index.html new file mode 100644 index 0000000000..1f92d75024 --- /dev/null +++ b/files/ru/web/svg/attribute/r/index.html @@ -0,0 +1,129 @@ +--- +title: r +slug: Web/SVG/Attribute/r +translation_of: Web/SVG/Attribute/r +--- +
{{SVGRef}}
+ +
Атрибут r устанавливает значение радиуса круга.
+ +
 
+ +

Этот атрибут используют два элемента: {{SVGElement("circle")}}, и {{SVGElement("radialGradient")}}

+ +
+ + +
<svg viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg">
+  <radialGradient r="0" id="myGradient000">
+    <stop offset="0"    stop-color="white" />
+    <stop offset="100%" stop-color="black" />
+  </radialGradient>
+  <radialGradient r="50%" id="myGradient050">
+    <stop offset="0"    stop-color="white" />
+    <stop offset="100%" stop-color="black" />
+  </radialGradient>
+  <radialGradient r="100%" id="myGradient100">
+    <stop offset="0"    stop-color="white" />
+    <stop offset="100%" stop-color="black" />
+  </radialGradient>
+
+  <circle cx="50"  cy="50" r="0"/>
+  <circle cx="150" cy="50" r="25"/>
+  <circle cx="250" cy="50" r="50"/>
+
+  <rect x="20"  y="120" width="60" height="60" fill="url(#myGradient000)" />
+  <rect x="120" y="120" width="60" height="60" fill="url(#myGradient050)" />
+  <rect x="220" y="120" width="60" height="60" fill="url(#myGradient100)" />
+</svg>
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+
+ +

circle

+ +

Для {{SVGElement('circle')}}, r устанавливает радиус окружности и, следовательно, её размер. При значении, меньшем или равном нулю, круг не будет нарисован.

+ + + + + + + + + + + + + + + + +
Значение<length>| <percentage>
+

Значение по умолчанию

+
0
АнимируемостьДа
+ +

Примечание: Начиная с SVG2, r является свойством геометрии, означающим, что этот атрибут также может использоваться как CSS-свойство для кругов.

+ +

radialGradient

+ +

Для {{ SVGElement("radialGradient") }}, r устанавливает радиус конечной окружности радиального градиента.

+ +

Градиент будет нарисован таким образом, чтобы  100% конца градиента отображались по периметру этого конечного круга. Значение, меньшее или равное нулю, приведет к тому, что область будет окрашена как один цвет, используя цвет и непрозрачность последнего градиента  {{ SVGElement("stop") }}.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
Значение по умолчанию50%
АнимируемостьДа
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG2", "geometry.html#R", "r")}}{{Spec2("SVG2")}} +

Определение как свойство геометрии

+ +

 

+
{{SpecName("SVG2", "pservers.html#RadialGradientElementRAttribute", "r")}}{{Spec2("SVG2")}}Определение для SVG2 серверов рисования <radialGradient>
{{SpecName("SVG1.1", "pservers.html#RadialGradientElementRAttribute", "r")}}{{Spec2("SVG1.1")}}Исходное определение для <radialGradient>
{{SpecName("SVG1.1", "shapes.html#CircleElementRAttribute", "r")}}{{Spec2("SVG1.1")}}Исходное определение для <circle>
diff --git a/files/ru/web/svg/attribute/repeatcount/index.html b/files/ru/web/svg/attribute/repeatcount/index.html new file mode 100644 index 0000000000..ad584e3305 --- /dev/null +++ b/files/ru/web/svg/attribute/repeatcount/index.html @@ -0,0 +1,47 @@ +--- +title: repeatCount +slug: Web/SVG/Attribute/repeatCount +translation_of: Web/SVG/Attribute/repeatCount +--- +

« Справочник SVG атрибутов

+ +

Данный атрибут задает, сколько раз должна выполняться анимация.

+ +

Значение атрибута определяет количество итераций. Принимаются числа с плавающей точкой, которые интерпретируются как доля итерации. Значение должно быть больше нуля.

+ +

Возможно также определить бесконечную зацикленную анимацию с помощью ключевого слова "indefinite".

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут времени анимации
Значение<number> | "indefinite"
АнимируемыйНет
Ссылка на стандартSVG 1.1 (2nd Edition)
+ +

{{ page("/en/SVG/Content_type","Number") }}

+ +

Пример

+ +

Элементы

+ +

Данные элементы могут использовать атрибут repeatCount

+ + diff --git a/files/ru/web/svg/attribute/rx/index.html b/files/ru/web/svg/attribute/rx/index.html new file mode 100644 index 0000000000..78f0ab86e0 --- /dev/null +++ b/files/ru/web/svg/attribute/rx/index.html @@ -0,0 +1,115 @@ +--- +title: rx +slug: Web/SVG/Attribute/rx +tags: + - SVG атрибуты +translation_of: Web/SVG/Attribute/rx +--- +
{{SVGRef}}
+ +

Атрибут rx определяет радиус круга по оси x.

+ +

Два элемента используют этот атрибут: {{SVGElement("ellipse")}} и {{SVGElement("rect")}}

+ +
+ + +
<svg viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg">
+  <ellipse cx="50"  cy="50" rx="0"  ry="25" />
+  <ellipse cx="150" cy="50" rx="25" ry="25" />
+  <ellipse cx="250" cy="50" rx="50" ry="25" />
+
+  <rect x="20"  y="120" width="60" height="60" rx="0"   ry="15"/>
+  <rect x="120" y="120" width="60" height="60" rx="15"  ry="15"/>
+  <rect x="220" y="120" width="60" height="60" rx="150" ry="15"/>
+</svg>
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+
+ +

ellipse

+ +

Для элемента {{SVGElement('ellipse')}} rx определяет радиус фигуры по оси x. Если значение меньше или равно 0, эллипс не будет нарисован вообще.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage> | auto
Значение по умолчаниюauto
АнимируемыйДа
+ +

Примечание. Начиная с SVG2, rx - свойство геометрии(Geometry Property). Это означает, что атрибут также можно использовать как свойство CSS для эллипсов.

+ +

rect

+ +

Для {{SVGElement('rect')}}, rx определяет радиус эллипса по оси x, используется для скругления углов прямоугольника.

+ +

Способ интерпретации значения атрибута rx зависит как от атрибута {{SVGAttr("ry")}} , так и от ширины прямоугольника:

+ + + + + + + + + + + + + + + + + + +
Значение<length> | <percentage> | auto
Значение по умолчаниюauto
АнимируемыйДа
+ +

Примечание. Начиная с SVG2, rx - свойство геометрии(Geometry Property). Это означает, что атрибут также можно использовать как свойство CSS для rect.

+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG2", "geometry.html#RX", "rx")}}{{Spec2("SVG2")}}Определяется как свойство геометрии
{{SpecName("SVG1.1", "shapes.html#EllipseElementRXAttribute", "rx")}}{{Spec2("SVG1.1")}} +

Начальное определение для <ellipse>

+
{{SpecName("SVG1.1", "shapes.html#RectElementRXAttribute", "rx")}}{{Spec2("SVG1.1")}}Начальное определение для <rect>
diff --git a/files/ru/web/svg/attribute/ry/index.html b/files/ru/web/svg/attribute/ry/index.html new file mode 100644 index 0000000000..f0b87c7a46 --- /dev/null +++ b/files/ru/web/svg/attribute/ry/index.html @@ -0,0 +1,113 @@ +--- +title: ry +slug: Web/SVG/Attribute/ry +tags: + - SVG атрибуты +translation_of: Web/SVG/Attribute/ry +--- +
{{SVGRef}}
+ +

Атрибут ry определяет радиус круга по оси y.

+ +

Два элемента используют этот атрибут: <ellipse> и <rect>

+ +
+ + +
<svg viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg">
+  <ellipse cx="50"  cy="50" ry="0"  rx="25" />
+  <ellipse cx="150" cy="50" ry="25" rx="25" />
+  <ellipse cx="250" cy="50" ry="50" rx="25" />
+
+  <rect x="20"  y="120" width="60" height="60" ry="0"   rx="15"/>
+  <rect x="120" y="120" width="60" height="60" ry="15"  rx="15"/>
+  <rect x="220" y="120" width="60" height="60" ry="150" rx="15"/>
+</svg>
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+
+ +

ellipse

+ +

Для элемента {{SVGElement('ellipse')}}, ry определяет радиус фигуры по оси y. Если значение меньше или равно 0, эллипс не будет нарисован вообще.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage> | auto
Значение по умолчаниюauto
АнимируемыйДа
+ +

Примечание. Начиная с SVG2ry - свойство геометрии(Geometry Property). Это означает, что атрибут также можно использовать как свойство CSS для эллипсов.

+ +

rect

+ +

Для {{SVGElement('rect')}}, ry определяет радиус эллипса по оси x, используется для скругления углов прямоугольника.

+ +

Способ интерпретации значения атрибута ry зависит как от атрибута {{SVGAttr("rx")}} , так и от ширины прямоугольника:

+ + + + + + + + + + + + + + + + + + +
Значение<length> | <percentage> | auto
Значение по умолчаниюauto
АнимируемыйДа
+ +

Примечание. Начиная с SVG2, ry - свойство геометрии(Geometry Property). Это означает, что атрибут также можно использовать как свойство CSS для rect.

+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG2", "geometry.html#RY", "ry")}}{{Spec2("SVG2")}}Определяется как свойство геометрии
{{SpecName("SVG1.1", "shapes.html#EllipseElementRYAttribute", "ry")}}{{Spec2("SVG1.1")}}Начальное определение для <ellipse>
{{SpecName("SVG1.1", "shapes.html#RectElementRYAttribute", "ry")}}{{Spec2("SVG1.1")}}Начальное определение для <rect>
diff --git a/files/ru/web/svg/attribute/shape-rendering/index.html b/files/ru/web/svg/attribute/shape-rendering/index.html new file mode 100644 index 0000000000..d36ed47bef --- /dev/null +++ b/files/ru/web/svg/attribute/shape-rendering/index.html @@ -0,0 +1,79 @@ +--- +title: shape-rendering +slug: Web/SVG/Attribute/shape-rendering +translation_of: Web/SVG/Attribute/shape-rendering +--- +

« Справочник SVG атрибутов

+ +

При создание SVG есть возможность указать браузеру о том, как рекомендуется рендерить (отрисовывать) элементы {{ SVGElement("path") }} или базовые фигуры. shape-rendering предоставляет возможность указывать даные рекомендации.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут представления
Значенияauto | optimizeSpeed | crispEdges | geometricPrecision | inherit
АнимацияДа
Нормативный документSVG 1.1 (2nd Edition)
+ +
+
auto
+
Указывает на то, что браузер должен внести соответствующие компромиссы, чтобы сбалансировать скорость рендеринга, четкие края и геометрическую точность, но геометрической точности уделять более пристальное внимание, чем скорости и четким краями.
+
optimizeSpeed
+
Указывает на то, что браузер должен акцентироваться на скорость рендеринга, в ущерб геометрической точности и четким краями. Эту опцию также можно указывать,, чтобы отключить сглаживание фигур.
+
crispEdges
+
Указывает на то, что браузер должен попытаться акцентировать на контрасте чистых краев рисунков, в ущерб скорости рендеринга и геометрической точности. Для достижения наилучшего результата четкости края, браузер может отключить сглаживание для всех линий и кривых или, возможно, только для прямых, близких к вертикальным или горизонтальным. Кроме того, браузер может скорректировать позиции строк и ширину линий для выравнивания краев с пикселями устройства.
+
geometricPrecision
+
Указывает на то, что браузер должен акцентировать геометрическую точность в ущерб скорости и четкими краям.
+
+ +

Пример

+ +
<svg xmlns="http://www.w3.org/2000/svg"
+  version="1.1" width="100" height="100"
+  shape-rendering="optimizeSpeed">
+ + + + + + + + +
+

shape-rendering: geometricPrecision:

+ +

shape-rendering:geometricPrecision

+
+

shape-rendering: optimizeSpeed

+ +

shape-rendering:optimizeSpeed

+
+ +

Также можно воспользоваться css shape-rendering:

+ +
<svg xmlns="http://www.w3.org/2000/svg"
+  version="1.1" width="100" height="100"
+  style="shape-rendering:optimizeSpeed;">
+ +

Элементы

+ +

Следующие элементы могут использовать атрибут shape-rendering

+ + diff --git a/files/ru/web/svg/attribute/stop-color/index.html b/files/ru/web/svg/attribute/stop-color/index.html new file mode 100644 index 0000000000..09a0503a48 --- /dev/null +++ b/files/ru/web/svg/attribute/stop-color/index.html @@ -0,0 +1,51 @@ +--- +title: stop-color +slug: Web/SVG/Attribute/stop-color +translation_of: Web/SVG/Attribute/stop-color +--- +

« Справочник SVG атрибутов

+ +

Атрибут stop-color указывает какой цвет использовать при остановке градиента. Значения currentColor и ICC цвета могут быть заданы так же, как в <paint> спецификации для атрибутов   {{ SVGAttr("fill") }} и {{ SVGAttr("stroke") }}.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут представления
ЗначениеcurrentColor | <color> | <icccolor> | inherit
Начальное значениеblack
АнимацияДа
Нормативный документSVG 1.1 (2nd Edition)
+ +

Примеры

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут stop-color

+ + + +

Смотрите также 

+ + diff --git a/files/ru/web/svg/attribute/stroke-dashoffset/index.html b/files/ru/web/svg/attribute/stroke-dashoffset/index.html new file mode 100644 index 0000000000..6f9462e40f --- /dev/null +++ b/files/ru/web/svg/attribute/stroke-dashoffset/index.html @@ -0,0 +1,162 @@ +--- +title: stroke-dashoffset +slug: Web/SVG/Attribute/stroke-dashoffset +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/stroke-dashoffset +--- +
+

Прежняя редакция: « Справочник SVG атрибутов
+ Этот атрибут определяет смещение обводки относительно начального положения.
+ При использовании <percentage>, значение будет вычисляться от текущего viewport.
+ Значение может быть отрицательным.

+
+ +

{{SVGRef}}
+ Атрибут stroke-dashoffset определяет сдвиг массива dash array относительно начального положения.

+ +

Сноска: Атрибут stroke-dashoffset может использоваться как свойство CSS.

+ +

Как атрибут представления, он может применяться к любому элементу, но влияет только на следующие одиннадцать элементов: {{SVGElement('altGlyph')}}, {{SVGElement('circle')}}, {{SVGElement('ellipse')}}, {{SVGElement('path')}}, {{SVGElement('polygon')}}, {{SVGElement('polyline')}}, {{SVGElement('rect')}}, {{SVGElement('text')}}, {{SVGElement('textPath')}}, {{SVGElement('tref')}}, and {{SVGElement('tspan')}}  

+ +
+ + +
<svg viewBox="-3 0 33 10" xmlns="http://www.w3.org/2000/svg">
+  <!-- Без dash array -->
+  <line x1="0" y1="1" x2="30" y2="1" stroke="black" />
+
+  <!-- Без dash offset -->
+  <line x1="0" y1="3" x2="30" y2="3" stroke="black"
+        stroke-dasharray="3 1" />
+
+  <!--
+  Начало dash array тянет 3 отрезка
+  -->
+  <line x1="0" y1="5" x2="30" y2="5" stroke="black"
+        stroke-dasharray="3 1"
+        stroke-dashoffset="3" />
+
+  <!--
+  Начало dash array толкает 3 отрезка
+  -->
+  <line x1="0" y1="7" x2="30" y2="7" stroke="black"
+        stroke-dasharray="3 1"
+        stroke-dashoffset="-3" />
+
+  <!--
+  Начало dash array тянет 1 отрезок с финишем в том же рендеринге,
+  что и в предыдущем примере
+  -->
+  <line x1="0" y1="9" x2="30" y2="9" stroke="black"
+        stroke-dasharray="3 1"
+        stroke-dashoffset="1" />
+
+  <!--
+  красным выделено   смещение dash array для каждой строки
+  -->
+  <path d="M0,5 h-3 M0,7 h3 M0,9 h-1" stroke="rgba(255,0,0,.5)" />
+</svg>
+
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+
+ +

Usage context

+ + + + + + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут оформления
Значение<percentage> | <length> | inherit
Исходное значение0
АнимируемыйДа
СпецификацияSVG 1.1 (2nd Edition)
+ +

Пример

+ +

HTML

+ +
<?xml version="1.0"?>
+<svg width="200" height="230" viewBox="0 0 200 200"
+version="1.1" xmlns="http://www.w3.org/2000/svg">
+    <line  stroke-dasharray="20, 5" x1="10" y1="10" x2="190" y2="10" />
+    <!--
+      Поскольку размер штриха 20 с разрывами 5,
+      добавление смещения dash-offset 20 приводит к тому,
+      что линия начинается с разрыва.
+    -->
+    <line stroke-dashoffset="20" stroke-dasharray="20, 5"
+      x1="10" y1="30" x2="190" y2="30" />
+    <!--
+      Добавление смещения штрихов на 10% приводит к началу линии с разрывом там же,
+      потому что элемент svg имеет ширину области просмотра 200.
+      Меняя размер svg, меняется и значение в пикселях stroke-dashoffset.
+    -->
+    <line stroke-dashoffset="10%" stroke-dasharray="20, 5"
+      x1="10" y1="50" x2="190" y2="50" />
+    <line stroke-dashoffset="10" stroke-dasharray="20, 5"
+      x1="10" y1="70" x2="190" y2="70" />
+
+    <line stroke-dashoffset="100" stroke-dasharray="200"
+      x1="10" y1="90" x2="190" y2="90" />
+    <line stroke-dashoffset="100" stroke-dasharray="100"
+      x1="10" y1="110" x2="190" y2="110" />
+    <!--
+      Без stroke-dasharray - stroke-dashoffset не даст никакого эффекта.
+    -->
+    <line stroke-dashoffset="50" x1="10" y1="130" x2="190" y2="130" />
+    <!--
+      stroke-dashoffset values can be negative and as expected offest
+      in the opposite direction as a positive value.
+      Значения смещения штрихов могут быть отрицательными
+      с направлением, обратным положительному значению.
+    -->
+    <line stroke-dashoffset="-40" stroke-dasharray="80"
+      x1="10" y1="150" x2="190" y2="150" />
+    <line stroke-dasharray="80"
+      x1="10" y1="170" x2="190" y2="170" />
+    <line stroke-dashoffset="-10%" stroke-dasharray="65, 5, 1, 5"
+      x1="10" y1="190" x2="190" y2="190" />
+    <line  stroke-dasharray="65, 5, 1, 5" x1="10" y1="210" x2="190" y2="210" />
+    <style><![CDATA[
+      line{
+        stroke: black;
+        stroke-width: 2;
+        }
+        ]]>
+    </style>
+</svg>
+
+ +

Результат

+ +

{{EmbedLiveSample('Пример', '220', '240')}}

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут stroke-dashoffset

+ + diff --git a/files/ru/web/svg/attribute/stroke-linecap/index.html b/files/ru/web/svg/attribute/stroke-linecap/index.html new file mode 100644 index 0000000000..475dbb5a0b --- /dev/null +++ b/files/ru/web/svg/attribute/stroke-linecap/index.html @@ -0,0 +1,194 @@ +--- +title: stroke-linecap +slug: Web/SVG/Attribute/stroke-linecap +translation_of: Web/SVG/Attribute/stroke-linecap +--- +
{{SVGRef}}
+ +

Атрибут stroke-linecap - это атрибут представления, определяющий форму, которая будет использоваться в конце открытых подпутей при штриховании.

+ +

Сноска: В качестве атрибута представления можно использовать stroke-linecap в качестве свойства CSS.

+ +

В качестве атрибута представления он может применяться к любому элементу, но он влияет только на следующие семь элементов: {{SVGElement('altGlyph')}}, {{SVGElement('path')}}, {{SVGElement('polyline')}}, {{SVGElement('text')}}, {{SVGElement('textPath')}}, {{SVGElement('tref')}}, and {{SVGElement('tspan')}}

+ +
+ + +
<svg viewBox="0 0 6 6" xmlns="http://www.w3.org/2000/svg">
+
+  <!-- Effect of the (default) "butt" value -->
+  <line x1="1" y1="1" x2="5" y2="1" stroke="black"
+        stroke-linecap="butt" />
+
+  <!-- Effect of the "round" value -->
+  <line x1="1" y1="3" x2="5" y2="3" stroke="black"
+        stroke-linecap="round" />
+
+  <!-- Effect of the "square" value -->
+  <line x1="1" y1="5" x2="5" y2="5" stroke="black"
+        stroke-linecap="square" />
+
+  <!--
+  the following pink lines highlight the
+  position of the path for each stroke
+  -->
+  <path d="M1,1 h4 M1,3 h4 M1,5 h4" stroke="pink" stroke-width="0.025" />
+</svg>
+
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+
+ +

Нотации

+ + + + + + + + + + + + + + + + +
Valuebutt | round | square
Default valuebutt
AnimatableYes
+ +

butt

+ +

Значение butt указывает границу каждого подпути и не выходит за пределы двух его конечных точек. На подпути нулевой длины путь не будет отображаться вообще.

+ +

Пример

+ + + +
<svg viewBox="0 0 6 4" xmlns="http://www.w3.org/2000/svg">
+
+  <!-- Effect of the "butt" value -->
+  <path d="M1,1 h4" stroke="black"
+        stroke-linecap="butt" />
+
+  <!-- Effect of the "butt" value on a zero length path -->
+  <path d="M3,3 h0" stroke="black"
+        stroke-linecap="butt" />
+
+
+  <!--
+  the following pink lines highlight the
+  position of the path for each stroke
+  -->
+  <path d="M1,1 h4" stroke="pink" stroke-width="0.025" />
+  <circle cx="1" cy="1" r="0.05" fill="pink" />
+  <circle cx="5" cy="1" r="0.05" fill="pink" />
+  <circle cx="3" cy="3" r="0.05" fill="pink" />
+</svg>
+
+ +

{{EmbedLiveSample('butt', '100%', 200)}}

+ +

round

+ +

Значение round указывает на то, что в конце каждого подпути обводка будет расширена на полукруг с диаметром, равным ширине обводки. На подпути нулевой длины обводка состоит из полного круга с центром в точке подпути.

+ +

Пример

+ + + +
<svg viewBox="0 0 6 4" xmlns="http://www.w3.org/2000/svg">
+
+  <!-- Effect of the "round" value -->
+  <path d="M1,1 h4" stroke="black"
+        stroke-linecap="round" />
+
+  <!-- Effect of the "round" value on a zero length path -->
+  <path d="M3,3 h0" stroke="black"
+        stroke-linecap="round" />
+
+
+  <!--
+  the following pink lines highlight the
+  position of the path for each stroke
+  -->
+  <path d="M1,1 h4" stroke="pink" stroke-width="0.025" />
+  <circle cx="1" cy="1" r="0.05" fill="pink" />
+  <circle cx="5" cy="1" r="0.05" fill="pink" />
+  <circle cx="3" cy="3" r="0.05" fill="pink" />
+</svg>
+
+ +

{{EmbedLiveSample('round', '100%', 200)}}

+ +

square

+ +

Значение square указывает, что в конце каждого подпути обводка будет расширена прямоугольником с шириной, равной половине ширины обводки, и высотой, равной ширине обводки. На подпути с нулевой длиной обводка состоит из квадрата, ширина которого равна ширине обводки, с центром в точке подпути.

+ +

Пример

+ + + +
<svg viewBox="0 0 6 4" xmlns="http://www.w3.org/2000/svg">
+
+  <!-- Effect of the "square" value -->
+  <path d="M1,1 h4" stroke="black"
+        stroke-linecap="square" />
+
+  <!-- Effect of the "square" value on a zero length path -->
+  <path d="M3,3 h0" stroke="black"
+        stroke-linecap="square" />
+
+
+  <!--
+  the following pink lines highlight the
+  position of the path for each stroke
+  -->
+  <path d="M1,1 h4" stroke="pink" stroke-width="0.025" />
+  <circle cx="1" cy="1" r="0.05" fill="pink" />
+  <circle cx="5" cy="1" r="0.05" fill="pink" />
+  <circle cx="3" cy="3" r="0.05" fill="pink" />
+</svg>
+
+ +

{{EmbedLiveSample('square', '100%', 200)}}

+ +

Совместимость браузера

+ + + +

{{Compat("svg.attributes.presentation.stroke-linecap")}}

+ +

Спецификация

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКоммент
{{SpecName("SVG2", "painting.html#StrokeLinecapProperty", "stroke-linecap")}}{{Spec2("SVG2")}}Definition for shapes and texts
{{SpecName("SVG1.1", "painting.html#StrokeLinecapProperty", "stroke-linecap")}}{{Spec2("SVG1.1")}}Initial definition for shapes and texts
diff --git a/files/ru/web/svg/attribute/stroke-width/index.html b/files/ru/web/svg/attribute/stroke-width/index.html new file mode 100644 index 0000000000..0359c2a1a2 --- /dev/null +++ b/files/ru/web/svg/attribute/stroke-width/index.html @@ -0,0 +1,57 @@ +--- +title: stroke-width +slug: Web/SVG/Attribute/stroke-width +translation_of: Web/SVG/Attribute/stroke-width +--- +

« Справочник SVG атрибутов

+ +

Атрибут stroke-width указывает ширину контура текущего объекта. Его значение по умолчанию: 1. Если используется <percentage>, значение представляет собой процент от текущего окна просмотра. Если используется значение 0, контур не будет нарисован.
+
+ В качестве атрибута представления он также может использоваться как свойство непосредственно внутри таблицы стилей CSS

+ +

Usage context

+ + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут представления
Значения<length> | <percentage> | inherit
АнимируемыйДа
Нормативный документSVG 1.1 (2nd Edition)
+ +

Example

+ +

SVG

+ +
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
+  <circle cx="100" cy="100" r="100" />
+</svg>
+<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
+  <circle cx="100" cy="100" r="100" stroke="#ff0" stroke-width="10" />
+</svg>
+ +

Результат

+ +

{{EmbedLiveSample('Example', 200, 200)}}

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут stroke-width.

+ + diff --git a/files/ru/web/svg/attribute/stroke/index.html b/files/ru/web/svg/attribute/stroke/index.html new file mode 100644 index 0000000000..d6ddd0420a --- /dev/null +++ b/files/ru/web/svg/attribute/stroke/index.html @@ -0,0 +1,69 @@ +--- +title: stroke +slug: Web/SVG/Attribute/stroke +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/stroke +--- +

« SVG Attribute reference home

+ +

Атрибут обводки определяет цвет контура в данном графическом элементе. Значение по умолчанию для атрибута обводки — None.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорияPresentation attribute
Значения +

<paint>, context-fill, context-stroke

+
АнимируемыйДа
Нормативный документSVG 1.1 (2nd Edition)
+ +

Примеры

+ +

SVG Line с stroke

+ +

Пример 1: Нарисуйте прямую зеленую линию, используя stroke.

+ +
<svg height="50" width="300">
+    <path stroke="green" d="M5 20 1215 0" />
+</svg>
+ +

{{EmbedLiveSample('Example1_Draw_straight_green_line_using_stroke.', '300', '50', '', 'Web/SVG/Attribute/stroke')}}

+ +

Пример 2: Нарисуйте черный круг с синей рамкой используя stroke.

+ +
​​<svg height="100" width="100">
+    <circle cx="50" cy="50" r="40" stroke="blue" stroke-width="2" fill="black" />
+</svg>
+ +

{{EmbedLiveSample('Example2_Draw_black_circle_with_blue_border_using_stroke.', '100', '120', '', 'Web/SVG/Attribute/stroke')}}

+ +

Использование context-stroke

+ +

Информацию об использовании значения нестандартного и ограниченного context-strokecontext-fill) смотреть в документации для свойства {{cssxref("-moz-context-properties")}}.

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут stroke.

+ + diff --git a/files/ru/web/svg/attribute/text-anchor/index.html b/files/ru/web/svg/attribute/text-anchor/index.html new file mode 100644 index 0000000000..4a034cfde2 --- /dev/null +++ b/files/ru/web/svg/attribute/text-anchor/index.html @@ -0,0 +1,107 @@ +--- +title: text-anchor +slug: Web/SVG/Attribute/text-anchor +translation_of: Web/SVG/Attribute/text-anchor +--- +

« Справочник SVG Аттрибутов

+ +

Атрибут text-anchor используется для выравнивания
+ (start-, middle- или end-выравнивание) текстовой строки относительно заданной точки.

+ +

Атрибут text-anchor применяется к каждому отдельному текстовому фрагменту в заданном {{ SVGElement("text") }} элементе. Каждый текстовый фрагмент имеет текущую текстовую позицию, которая представляет точку в пользовательской системе координат, полученную в результате (в зависимости от контекста) применения {{ SVGAttr("x") }} и {{ SVGAttr("y") }}  атрибутов к {{ SVGElement("text") }} элементу, любого {{ SVGAttr("x") }} или {{ SVGAttr("y") }} значения к {{ SVGElement("tspan") }}, {{ SVGElement("tref") }} , {{ SVGElement("altGlyph") }} элементу явно присвоенного к первому визуализированному символу в текстовом фрагменте, или при задании первоначальной текстовой позиции для {{ SVGElement("textPath") }} элемента. 

+ +

Как артирубт представления, он так же может быть использован как свойство непосредственно в CSS стилях.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорияАтрибут представления
Значениеstart | middle | end | inherit
АнимацияДа
ДокументSVG 1.1 (2nd Edition)
+ +
+
start
+
+

Отрисованные символы выравниваются так, что начало текстовой строки находится в исходной текстовой позиции. Для латиницы в обычной ориентации это эквивалентно выравниванию по левому краю. Для шрифтов, которые по своей сути имеют выравнивание справа налево такие как Иврит и Арабский это эквивалентно правому выравниваю. Для азиаского текста с вертикальным направлением текста это сопоставимо с выравниванием по верхнему краю.

+
+
middle
+
+

Отрисованные символы  выравниваются так, что середина текстовой строки находится в текущей текстовой позиции. (Для текста вдоль заданной линии, теоретически, текстовая строка сначала ложится по прямой линии. Определяется средняя точка
+ между началом текстовой строки и концом текстовой строки. Затем текстовая строка отображается на заданной линии с этой средней точкой, расположенной в текущей текстовой
+ позиции.)

+
+
end
+
Отрисованные символы выравниваются так, что конец текстовой строки находится в исходной текущей текстовой позиции. Для латиницы в своей обычной ориентации это эквивалетно
+ правому выраниванию. Для шрифтов которые по определению справа налево такие как Иврит и Арабский это эквивалентно левому выравниванию.
+
Примечание
+
В IE-11 атрибут text-anchor не имеет эффекта при привязке текста к заданному пути path посредством тега textPath.
+ В приведенном ниже примере тег path использовался только лишь для отрисовки линий и с расположением текста никак не связан.
+
+ +

Пример

+ +
<html>
+<head>
+    <meta charset="utf-8">
+    <title>текст в якорях</title>
+</head>
+<body>
+<div style="background-color:burlywood; width:866px;height:444px;display:flex;">
+    <div style="background-color:greenyellow; width:333px;height:333px;margin:22px;overflow: visible;">
+        <svg viewBox="-50 0 100 100" style="overflow: visible;" xmlns="http://www.w3.org/2000/svg" version="1.1">
+            <!-- Материализация якорей -->
+            <path d="M50, 5 L50,95
+             M20,20 L80,20
+             M20,50 L80,50
+             M20,80 L80,80" stroke="grey"/>
+
+            <!-- Якоря в действии -->
+            <text text-anchor="start"   x="50" y="20">some start</text>
+            <text text-anchor="start"   x="50" y="35">start</text>
+
+            <text text-anchor="middle"  x="50" y="55">some middle</text>
+            <text text-anchor="middle"  x="50" y="70">middle</text>
+
+            <text text-anchor="end"     x="50" y="85">some end</text>
+            <text text-anchor="end"     x="50" y="100">end</text>
+        </svg>
+    </div>
+</div>
+</body>
+</html>
+ +

Песочницы

+ +

{{ EmbedLiveSample('Пример','400','400') }}

+ + + +

Элементы

+ +

Следующие элементы могут использовать  text-anchor атрибут

+ + + +

Совместимость браузера

+ + + +

{{Compat("svg.attributes.presentation.text-anchor")}}

diff --git a/files/ru/web/svg/attribute/text-rendering/index.html b/files/ru/web/svg/attribute/text-rendering/index.html new file mode 100644 index 0000000000..11c0bdb8cf --- /dev/null +++ b/files/ru/web/svg/attribute/text-rendering/index.html @@ -0,0 +1,87 @@ +--- +title: text-rendering +slug: Web/SVG/Attribute/text-rendering +translation_of: Web/SVG/Attribute/text-rendering +--- +

« SVG Attribute reference home

+

При создание SVG есть возможность указать браузеру о том, как рекомендуется рендерить (отрисовывать) текст. text-rendering предоставляет возможность указывать даные рекомендации.

+

Помимо presentation attribute, настройки ренедеринга шрифтов можно задавть через CSS стили. Для получения дополнительной информации смотри {{ cssxref("text-rendering","CSS text-rendering") }}.

+

Usage context

+ + + + + + + + + + + + + + + + + + + +
КатегорияPresentation attribute
Значениеauto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit
AnimatableYes
Normative documentSVG 1.1 (2nd Edition)
+
+
+ auto
+
+ Указывает на то, что браузер должен внести соответствующие компромиссы, чтобы сбалансировать скорость рендеринга, читаемость (разборчивость текста) и геометрическую точность, но читаемости уделять более пристальное внимание, чем скорости и геометрической точности.
+
+ optimizeSpeed
+
+ Указывает на то, что браузер должен акцентироваться на скорость рендеринга, в ущерб читаемости и геометрической точности. Эту опцию также можно указывать,, чтобы отключить сглаживание (anti-aliasing) текста.
+
+ optimizeLegibility
+
+ Указывает на то, что браузер должен попытаться акцентировать на читаемости текста, в ущерб скорости рендеринга и геометрической точности. Браузеры часто применяю к тексту сглаживание (anti-aliasing) или встроенные в шрифт хинтинг, или оба способа сразу, чтобы сделать наилучшую читаемость текста.
+
+ geometricPrecision
+
+ Указывает на то, что браузер должен акцентировать геометрическую точность в ущерб читаемости и скорости рендеринга. Эта опция обычно используется, чтобы отключить использование хинтинга таким образом, чтобы контуры символов рисовались согласно геометрической точности отрисовки заложенных данных.
+
+

Пример

+
<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+   version="1.1" width="660" height="40"
+   text-rendering="optimizeLegibility">
+  <link xmlns="http://www.w3.org/1999/xhtml" href='http://fonts.googleapis.com/css?family=Sofadi+One' rel='stylesheet' type='text/css' />
+  <style>
+      text {font: 30px 'Sofadi One', cursive;}
+  </style>
+  <g>
+    <text y="30">The quick brown fox jumps over the lazy dog.</text>
+  </g>
+</svg>
+

optimizeLegibility (первая) и geometricPrecision (вторая)
+ text-rendering=optimizeLegibility
+ text-rendering=geometricPrecision

+

Аналогичным образом действует {{ cssxref("text-rendering","CSS text-rendering") }}

+
<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+   version="1.1" width="660" height="40">
+  <link xmlns="http://www.w3.org/1999/xhtml" href='http://fonts.googleapis.com/css?family=Sofadi+One' rel='stylesheet' type='text/css' />
+  <style>
+      text {
+            font: 30px 'Sofadi One', cursive;
+            text-rendering:optimizeLegibility;
+         }
+  </style>
+  <g>
+    <text y="30">The quick brown fox jumps over the lazy dog.</text>
+  </g>
+</svg>
+

Elements

+

The following elements can use the text-rendering attribute

+ +

See also

+ diff --git a/files/ru/web/svg/attribute/transform/index.html b/files/ru/web/svg/attribute/transform/index.html new file mode 100644 index 0000000000..c202361239 --- /dev/null +++ b/files/ru/web/svg/attribute/transform/index.html @@ -0,0 +1,121 @@ +--- +title: transform +slug: Web/SVG/Attribute/transform +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/transform +--- +

« Справочник SVG атрибутов

+ +

В атрибуте transform перечисляются описания преобразований, применяемых как к самому элементу, так и к его последователям. Описания в списке разделяются пробелами или запятыми и применяются в порядке слева направо.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорииНет
Значение<transform-list>
АнимацияДа
Нормативная базаSVG 1.1 (2nd Edition)
+ +

Типы преобразований

+ +
+
matrix(<a> <b> <c> <d> <e> <f>)
+
Преобразование с использованием матрицы из шести элементов. Преобразование matrix(a,b,c,d,e,f) равнозначно применению матрицы (acebdf001)\begin{pmatrix} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{pmatrix}, которая отображает координаты из новой системы координат в предыдущую систему координат используя следующие формулы: (xпред.yпред.1)=(acebdf001)(xнов.yнов.1)=(axнов.+cyнов.+ebxнов.+dyнов.+f1) \begin{pmatrix} x_{\mathrm{пред.}} \\ y_{\mathrm{пред.}} \\ 1 \end{pmatrix} = \begin{pmatrix} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x_{\mathrm{нов.}} \\ y_{\mathrm{нов.}} \\ 1 \end{pmatrix} = \begin{pmatrix} a x_{\mathrm{нов.}} + c y_{\mathrm{нов.}} + e \\ b x_{\mathrm{нов.}} + d y_{\mathrm{нов.}} + f \\ 1 \end{pmatrix}
+
translate(<x> [<y>])
+
Перенос по осям x и y. Равнозначно matrix(1 0 0 1 x y). Если значение y опущено, оно принимается равным нулю.
+
scale(<x> [<y>])
+
Масштабирование по осям x и y. Равнозначно matrix(x 0 0 y 0 0). Если значение y опущено, оно принимается равным x.
+
rotate(<a> [<x> <y>])
+
Поворот на a градусов вокруг указанной точки. Если необязательные параметры x и y опущены, поворот будет осуществляться вокруг начала координат текущей пользовательской системы координат. Операция соответствует матрице (cosa-sina0sinacosa0001)\begin{pmatrix} \cos a & -\sin a & 0 \\ \sin a & \cos a & 0 \\ 0 & 0 & 1 \end{pmatrix} Если необязательные параметры x и y присутствуют, поворот будет осуществляться вокруг точки (x, y). Операция равнозначна следующему списку преобразований: translate(<x>, <y>) rotate(<a>) translate(-<x>, -<y>).
+
skewX(<a>)
+
Наклон относительно оси x на a градусов. Операция соответствует матрице (1tga0010001)\begin{pmatrix} 1 & \tan(a) & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}
+
skewY(<a>)
+
Наклон относительно оси y на a градусов. Операция соответствует матрице (100tga10001) \begin{pmatrix} 1 & 0 & 0 \\ \tan(a) & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}
+
+ +

Примеры

+ +

Поворот и перенос SVG-элемента

+ +

В этом простом примере мы поворачиваем и переносим SVG-элемент, используя атрибут transform. Первоначальный элемент до преобразования показан полупрозрачным.

+ +

CSS (необязательный):

+ +
text {
+  font: 1em sans-serif;
+}
+ +

SVG:

+ +
<svg width="180" height="200"
+  xmlns="http://www.w3.org/2000/svg"
+  xmlns:xlink="http://www.w3.org/1999/xlink">
+
+  <!-- Это элемент до применения переноса и поворота -->
+  <rect x="50" y="50" height="100" width="100" style="stroke:#000; fill: #0086B2" fill-opacity=0.2 stroke-opacity=0.2></rect>
+
+  <!-- Здесь мы добавим текстовый элемент, повернем и перенесем оба элемента -->
+  <rect x="50" y="50" height="100" width="100" style="stroke:#000; fill: #0086B2" transform="translate(30) rotate(45 50 50)"></rect>
+  <text x="60" y="105" transform="translate(30) rotate(45 50 50)"> Hello Moz! </text>
+
+</svg>
+
+ +

{{EmbedLiveSample("Rotating_and_Translating_an_SVG_element",200,200,"/files/5217/rotate_and_translate_svg.png.png")}}

+ +

Общее преобразование

+ +

Вот простой пример, чтобы понять общее преобразование. Мы рассмотрим матрицу преобразования matrix(1,2,3,4,5,6) и нарисуем жирную синюю линию из точки (10,20) в точку (30,40) в новой системе координат. Тонкая белая линия, проходящая через те же точки, нарисована над нею, используя первоначальную систему координат.

+ +
<svg width="160" height="230" xmlns="http://www.w3.org/2000/svg">
+
+  <g transform="matrix(1,2,3,4,5,6)">
+    <!-- Новая система координат (жирная синяя линия)
+         x1 = 10 | x2 = 30
+         y1 = 20 | y2 = 40
+      -->
+    <line x1="10" y1="20" x2="30" y2="40" style="stroke-width: 10px; stroke: blue;"/>
+  </g>
+
+  <!-- Предыдущая система координат (тонкая белая линия)
+       x1 = 1 * 10 + 3 * 20 + 5 = 75  | x2 = 1 * 30 + 3 * 40 + 5 = 155
+       y1 = 2 * 10 + 4 * 20 + 6 = 106 | y2 = 2 * 30 + 4 * 40 + 6 = 226
+    -->
+  <line x1="75" y1="106" x2="155" y2="226" style="stroke-width: 1px; stroke: white;"/>
+
+</svg>
+
+ +

{{ EmbedLiveSample('General_Transformation','200px','250px') }}

+ +

Элементы

+ +

Следующие элементы могут использовать атрибут transform:

+ + diff --git a/files/ru/web/svg/attribute/values/index.html b/files/ru/web/svg/attribute/values/index.html new file mode 100644 index 0000000000..72929084aa --- /dev/null +++ b/files/ru/web/svg/attribute/values/index.html @@ -0,0 +1,86 @@ +--- +title: values +slug: Web/SVG/Attribute/values +translation_of: Web/SVG/Attribute/values +--- +

« SVG Attribute reference home

+ +

Атрибут values имеет два значения в зависимости от используемого контекста.

+ +

Для элементов анимации атрибут values представляет собой разделенный точками с запятой список одного или нескольких значений. В анимации будут применены значения в порядке следования анимации. Если задан список values, значения атрибутов {{ SVGAttr("from") }}, {{ SVGAttr("to") }} и {{ SVGAttr("by") }} игнорируются.

+ +

Для элемента {{ SVGElement("feColorMatrix") }} содержимое values зависит от значения атрибута {{ SVGAttr("type") }}:

+ + + +

Если атрибут не указан, то поведение по умолчанию зависит от значения атрибута {{SVGAttr("type")}}.

+ + + +

Usage context

+ +

For animation elements

+ + + + + + + + + + + + + + + + + + + + +
CategoriesAnimation value attribute
Value<list>
AnimatableNo
Normative documentSVG 1.1 (2nd Edition)
+ +

For the {{ SVGElement("feColorMatrix") }} element

+ + + + + + + + + + + + + + + + + + + + +
CategoriesNone
Value<list> | <number>
AnimatableYes
Normative documentSVG 1.1 (2nd Edition)
+ +

Example

+ +

Elements

+ +

The following elements can use the values attribute

+ + diff --git a/files/ru/web/svg/attribute/viewbox/index.html b/files/ru/web/svg/attribute/viewbox/index.html new file mode 100644 index 0000000000..ed94188d1f --- /dev/null +++ b/files/ru/web/svg/attribute/viewbox/index.html @@ -0,0 +1,191 @@ +--- +title: viewBox +slug: Web/SVG/Attribute/viewBox +tags: + - SVG +translation_of: Web/SVG/Attribute/viewBox +--- +

« SVG Attribute reference home

+ +

Аттрибут viewBox определяет расположение и размеры окна отображения SVG.

+ +

Значение атрибута viewBox — это набор четырех чисел: min-x, min-y, width и height, — разделённых пробелами и/или запятой, которые задают прямоугольник в пользовательском пространстве, стороны которого определяют границы окна отображения элемента SVG (не браузера).

+ + + +
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+  <!--
+  С относительными единицами, такими как проценты,
+  размер квадрата не меняется в зависимости от
+  значения viewBox
+  -->
+  <rect x="0" y="0" width="100%" height="100%"/>
+
+  <!--
+  При больших значениях viewBox круг получается
+  маленьким, потому что его радиус указан в абсолютных
+  единицах: расстояние 4 получается маленьким относительно
+  размера окна 100, указанного во viewBox
+  -->
+  <circle cx="50%" cy="50%" r="4" fill="white"/>
+</svg>
+
+<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
+  <!-- Также не зависит от viewBox, как и в предыдущем примере -->
+  <rect x="0" y="0" width="100%" height="100%"/>
+
+  <!--
+  С маленьким значением размера viewBox круг получается
+  большим, потому что радиус 4 намного больше, если размер
+  области отображения равен 10, чем если он равен 100
+  -->
+  <circle cx="50%" cy="50%" r="4" fill="white"/>
+</svg>
+
+<svg viewBox="-5 -5 10 10" xmlns="http://www.w3.org/2000/svg">
+  <!--
+  Точка с координатами (0, 0) теперь является центром области
+  отображения. 100% всё ещё приравнивается к полному размеру
+  области отображения (10 на 10), поэтому квадрат выглядит
+  сдвинутым в правый нижний угол
+  -->
+  <rect x="0" y="0" width="100%" height="100%"/>
+
+  <!--
+  Так как точка (0, 0) находится в центре, а координаты круга,
+  равные 50%, относительно размера области отображения (10 на 10)
+  принимаются равными 5, круг оказывается с центром
+  в правом нижнем углу
+  -->
+  <circle cx="50%" cy="50%" r="4" fill="white"/>
+</svg>
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+ +

На отображение с viewBox также влияет атрибут {{ SVGAttr("preserveAspectRatio") }}.

+ +
+

Обратите внимание: при значениях width и height меньших или равных 0 элемент не отображается

+
+ +


+ Пять элементов используют этот атрибут: {{SVGElement("marker")}}, {{SVGElement("pattern")}}, {{ SVGElement("svg") }}, {{ SVGElement("symbol") }} и {{ SVGElement("view") }}.

+ +

marker

+ +

Для элемента {{SVGElement('marker')}}, viewBox определяет расположение и размеры содержимого элемента <marker>.

+ + + + + + + + + + + + + + + + +
Значение<number>?, <number>?, <number>?, <number>
Значение по умолчаниюнет
АнимируемоеДа
+ +

pattern

+ +

Для элемента {{SVGElement('pattern')}}, viewBox определеяет расположение и размеры содержимого шаблона.

+ + + + + + + + + + + + + + + + +
Значение<number>?, <number>?, <number>?, <number>
Значение по умолчаниюнет
АнимируемоеДа
+ +

svg

+ +

Для элемента {{SVGElement('svg')}}, viewBox определяет расположение и размеры содержимого элемента <svg>.

+ + + + + + + + + + + + + + + + +
Значение<number>?, <number>?, <number>?, <number>
Значение по умолчаниюнет
АнимируемоеДа
+ +

symbol

+ +

Для элемента {{SVGElement('symbol')}}, viewBox определяет расположение и размеры содержимого элемента <symbol>.

+ + + + + + + + + + + + + + + + +
Значение<number>?, <number>?, <number>?, <number>
Значение по умолчаниюнет
АнимируемоеДа
+ +

view

+ +

Для элемента {{SVGElement('view')}}, viewBox определяет расположение и размеры содержимого элемента <view>.

+ + + + + + + + + + + + + + + + +
Значение<number>?, <number>?, <number>?, <number>
Значение по умолчаниюнет
АнимируемоеДа
+ +

Смотрите также

+ + diff --git a/files/ru/web/svg/attribute/width/index.html b/files/ru/web/svg/attribute/width/index.html new file mode 100644 index 0000000000..30e0e0df21 --- /dev/null +++ b/files/ru/web/svg/attribute/width/index.html @@ -0,0 +1,648 @@ +--- +title: Ширина +slug: Web/SVG/Attribute/width +tags: + - ширина +translation_of: Web/SVG/Attribute/width +--- +
{{SVGRef}}
+ +

Атрибут width определяет горизонтальный размер элементов в пользовательской системе координат.

+ +

Двадцать пять элементов используют эти атрибуты: {{SVGElement('feBlend')}}, {{SVGElement('feColorMatrix')}}, {{SVGElement('feComponentTransfer')}}, {{SVGElement('feComposite')}}, {{SVGElement('feConvolveMatrix')}}, {{SVGElement('feDiffuseLighting')}}, {{SVGElement('feDisplacementMap')}}, {{SVGElement('feDropShadow')}}, {{SVGElement('feFlood')}}, {{SVGElement('feGaussianBlur')}}, {{SVGElement('feImage')}}, {{SVGElement('feMerge')}}, {{SVGElement('feMorphology')}}, {{SVGElement('feOffset')}}, {{SVGElement('feSpecularLighting')}}, {{SVGElement('feTile')}}, {{SVGElement('feTurbulence')}}, {{SVGElement('filter')}}, {{SVGElement('foreignObject')}}, {{SVGElement('image')}}, {{SVGElement('mask')}}, {{SVGElement('pattern')}}, {{SVGElement('rect')}}, {{SVGElement('svg')}}, and {{SVGElement('use')}}

+ +
+ + +
<svg viewBox="0 0 100 300" xmlns="http://www.w3.org/2000/svg">
+  <!-- С шириной равной 0 или меньше, ничего не будет отображаться -->
+  <rect x="0" y="0" width="0" height="90"/>
+  <rect x="0" y="100" width="60" height="90"/>
+  <rect x="0" y="200" width="100%" height="90"/>
+</svg>
+ +

{{EmbedLiveSample('topExample', '100%', 200)}}

+
+ +

feBlend

+ +

Для {{SVGElement('feBlend')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feColorMatrix

+ +

Для {{SVGElement('feColorMatrix')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feComponentTransfer

+ +

Для {{SVGElement('feComponentTransfer')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feComposite

+ +

Для {{SVGElement('feComposite')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feConvolveMatrix

+ +

Для {{SVGElement('feConvolveMatrix')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feDiffuseLighting

+ +

Для {{SVGElement('feDiffuseLighting')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feDisplacementMap

+ +

Для {{SVGElement('feDisplacementMap')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feDropShadow

+ +

Для {{SVGElement('feDropShadow')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feFlood

+ +

Для {{SVGElement('feFlood')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feGaussianBlur

+ +

Для {{SVGElement('feGaussianBlur')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feImage

+ +

Для {{SVGElement('feImage')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feMerge

+ +

Для {{SVGElement('feMerge')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feMorphology

+ +

Для {{SVGElement('feMorphology')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feOffset

+ +

Для {{SVGElement('feOffset')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feSpecularLighting

+ +

Для {{SVGElement('feSpecularLighting')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feTile

+ +

Для {{SVGElement('feTile')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

feTurbulence

+ +

Для {{SVGElement('feTurbulence')}}, width определяет горизонтальный размер для отображения области примитивов.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию100%
AnimatableДа
+ +

filter

+ +

Для {{SVGElement('filter')}}, width определяет горизонтальный размер для отображения области фильтров.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию120%
AnimatableДа
+ +

foreignObject

+ +

Для {{SVGElement('foreignObject')}}, width определяет горизонтальный размер для отображения области ссылочных документов.

+ + + + + + + + + + + + + + + + +
Значениеauto | <length> | <percentage>
По умолчаниюauto (рассматривается как 0)
AnimatableДа
+ +

Примечание: Начиная с  SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство   CSS для <foreignObject>.

+ +

image

+ +

Для {{SVGElement('image')}}, width определяет горизонтальный размер для изображения.

+ + + + + + + + + + + + + + + + +
Значениеauto | <length> | <percentage>
По умолчаниюauto (рассматривается как ширина изображения)
AnimatableДа
+ +

Примечание: Начиная с  SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство   CSS для изображений.

+ +

mask

+ +

Для {{SVGElement('mask')}}, width определяет горизонтальный размер области эффекта. Точный эффект этого атрибута зависит от атрибута {{SVGAttr('maskUnits')}}.

+ + + + + + + + + + + + + + + + +
Значение<length> | <percentage>
По умолчанию120%
AnimatableДа
+ +

pattern

+ +

Для {{SVGElement('pattern')}}, width определяет горизонтальный размер мастящегося паттерна. Точный эффект этого атрибута зависит от атрибутов {{SVGAttr('patternUnits')}} и {{SVGAttr('patternTransform')}}.

+ + + + + + + + + + + + + + + + +
Значание<length>
По умолчанию0
AnimatableДа
+ +

rect

+ +

Для {{SVGElement('rect')}}, width определяет горизонтальный размер прямоугольника.

+ + + + + + + + + + + + + + + + +
Значениеauto | <length> | <percentage>
По умолчаниюauto (пассматривается как 0)
AnimatableДа
+ +

Примечание: Начиная с  SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство   CSS для прямоугольника.

+ +

svg

+ +

Для {{SVGElement('svg')}}, width определяет горизонтальный размер отображаемой области вьюпорта SVG.

+ +

Примечание: В HTML документе, если оба атрибута {{SVGAttr('viewBox')}} и width опущены, svg-элемент будет отображаться с шириной 300px

+ + + + + + + + + + + + + + + + +
Значениеauto | <length> | <percentage>
По умолчаниюauto (рассматривается как 100%)
AnimatableДа
+ +

Примечание: Начиная с  SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство   CSS для <svg>.

+ +

use

+ +

Для {{SVGElement('use')}}, width определяет горизонтальный размер для ссылочного элемента.

+ + + + + + + + + + + + + + + + +
Значениеauto | <length> | <percentage>
По умолчаниюauto (рассматривается как 0)
AnimatableДа
+ +

Примечание: Начиная с  SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство   CSS для использоавнных элементов.

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментаий
{{ SpecName('Filters 1.0', '#element-attrdef-filter-width', 'width') }}{{Spec2('Filters 1.0')}}Определение для <filter>
{{ SpecName('Filters 1.0', '#element-attrdef-filter-primitive-width', 'width') }}{{Spec2('Filters 1.0')}}Определение для фильтр-примитивов
{{SpecName("CSS Masks", "#element-attrdef-mask-width", 'width')}}{{Spec2("CSS Masks")}}Определение для <mask>
{{SpecName("SVG2", "geometry.html#Sizing", "width")}}{{Spec2("SVG2")}}Определено как геометрическое свойство
{{SpecName("SVG2", "pservers.html#PatternElementWidthAttribute", "width")}}{{Spec2("SVG2")}}Определение для <pattern>
{{SpecName("SVG1.1", "extend.html#ForeignObjectElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <foreignObject>
{{SpecName("SVG1.1", "pservers.html#PatternElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <pattern>
{{SpecName("SVG1.1", "struct.html#ImageElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <image>
{{SpecName("SVG1.1", "struct.html#SVGElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <svg>
{{SpecName("SVG1.1", "struct.html#UseElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <use>
{{SpecName("SVG1.1", "filters.html#FilterElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <filter>
{{SpecName("SVG1.1", "filters.html#FilterPrimitiveWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для  фильтр-примитивов
{{SpecName("SVG1.1", "masking.html#MaskElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <mask>
{{SpecName("SVG1.1", "shapes.html#RectElementWidthAttribute", "width")}}{{Spec2("SVG1.1")}}Первое определение для <rect>
diff --git a/files/ru/web/svg/attribute/x/index.html b/files/ru/web/svg/attribute/x/index.html new file mode 100644 index 0000000000..d5b6a83a6a --- /dev/null +++ b/files/ru/web/svg/attribute/x/index.html @@ -0,0 +1,86 @@ +--- +title: x +slug: Web/SVG/Attribute/x +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/x +--- +

« Справочник SVG атрибутов

+ +

Этот атрибут указывает координату оси x в контексте системы координат. Точный эффект этого атрибута зависит от каждого элемента. В основном атрибут работает по оси x от верхнего левого угла прямоугольной области(см. документацию каждого отдельного элемента). Его синтаксис такой же, как и для <length>.

+ +

Если атрибут x явно не указан, то эффект будет таким, как если бы значение атрибута равнялось бы 0, за исключением элементов {{SVGElement ("filter")}} и {{SVGElement ("mask")}}, где значение по умолчанию равно -10%.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + + + + + +
КатегорииNone
Значение<coordinate>
АнимируемыйДа
Нормативные документы (en)SVG 1.1 (2nd Edition): altGlyph element
+ SVG 1.1 (2nd Edition): cursor element
+ SVG 1.1 (2nd Edition): fePointLight element
+ SVG 1.1 (2nd Edition): feSpotLight element
+ SVG 1.1 (2nd Edition): filter element
+ SVG 1.1 (2nd Edition): foreignObject element
+ SVG 1.1 (2nd Edition): glyphRef element
+ SVG 1.1 (2nd Edition): image element
+ SVG 1.1 (2nd Edition): pattern element
+ SVG 1.1 (2nd Edition): rect element
+ SVG 1.1 (2nd Edition): svg element
+ SVG 1.1 (2nd Edition): text element
+ SVG 1.1 (2nd Edition): use element
+ SVG 1.1 (2nd Edition): Filter primitive
+ SVG 1.1 (2nd Edition): mask element
+ SVG 1.1 (2nd Edition): tspan element
+ +

{{page("/ru/SVG/Content_type","coordinate")}}

+ +

Пример

+ +
<?xml version="1.0"?>
+<svg width="120" height="120"
+     viewBox="0 0 120 120"
+     xmlns="http://www.w3.org/2000/svg">
+
+  <rect x="10" y="10" width="100" height="100"/>
+</svg>
+ +

Элементы

+ +

Следующие элементы могут использовать атрибут x.

+ + diff --git a/files/ru/web/svg/attribute/xml_colon_space/index.html b/files/ru/web/svg/attribute/xml_colon_space/index.html new file mode 100644 index 0000000000..0b921d2e5a --- /dev/null +++ b/files/ru/web/svg/attribute/xml_colon_space/index.html @@ -0,0 +1,50 @@ +--- +title: 'xml:space' +slug: 'Web/SVG/Attribute/xml:space' +translation_of: 'Web/SVG/Attribute/xml:space' +--- +
{{deprecated_header("SVG2")}}
+ +

« SVG Attribute reference home

+ +

SVG supports the standard XML attribute xml:space to specify the handling of white space characters within a given {{ SVGElement("text") }} element's character data. Note that any child element of a {{ SVGElement("text") }} element may also have an xml:space attribute which will apply to that child element's text content. Note that this attribute influences the way a browser should parse the xml content and therefore will change the way the DOM is built. It means that any change made to the value of this attribute through the DOM API may have no effect.

+ +
+

Note: Instead of using the xml:space attribute you should use the {{cssxref("white-space")}} CSS property.

+
+ +

Usage context

+ + + + + + + + + + + + + + + + + + + + +
CategoriesNone
Valuedefault | preserve
AnimatableNo
Normative documentSVG 1.1 (2nd Edition)
+ +
+
default
+
Браузер удалит все символы перевода строки. Затем он преобразует все символы табуляции в символы пробелов. Затем он вырежет все начальные и конечные пробелы. И, наконец, все смежные пробелы будут объединены.
+
preserve
+
Браузер преобразует все символы перевода строки и табуляции в символы пробелов. Затем он отрендерит все символы пробелов, в том числе начальные и конечные, а также смежные. Таким образом, когда рендеринг происходит с xml:space="preserve", строка "a   b" (три пробела между "a" и "b") будет иметь больше расстояние между "a" и "b", чем "a b" (один пробел между "a" и "b").
+
+ +

Examples

+ +

Elements

+ +

All the SVG elements can use the xml:space attribute

diff --git a/files/ru/web/svg/attribute/y/index.html b/files/ru/web/svg/attribute/y/index.html new file mode 100644 index 0000000000..d73d5f2ab5 --- /dev/null +++ b/files/ru/web/svg/attribute/y/index.html @@ -0,0 +1,86 @@ +--- +title: 'y' +slug: Web/SVG/Attribute/y +tags: + - SVG + - SVG атрибуты +translation_of: Web/SVG/Attribute/y +--- +

« Справочник SVG атрибутов

+ +

Атрибут y указывает координаты вертикальной оси системы координат в контексте объекта. В основном атрибут работает по оси y от верхнего левого угла прямоугольной области(см. документацию каждого отдельного элемента).

+ +

Если атрибут явно не указан, его значение по умолчанию равняется 0, за исключением элементов {{SVGElement ("filter")}} и {{SVGElement ("mask")}}, где значение по умолчанию равняется -10% .

+ +

Использование

+ + + + + + + + + + + + + + + + + + + + +
КатегорииNone
Значение<coordinate>
АнимацияВозможно
Нормативные документы (en)SVG 1.1 (2nd Edition): altGlyph element
+ SVG 1.1 (2nd Edition): cursor element
+ SVG 1.1 (2nd Edition): fePointLight element
+ SVG 1.1 (2nd Edition): feSpotLight element
+ SVG 1.1 (2nd Edition): filter element
+ SVG 1.1 (2nd Edition): foreignObject element
+ SVG 1.1 (2nd Edition): glyphRef element
+ SVG 1.1 (2nd Edition): image element
+ SVG 1.1 (2nd Edition): pattern element
+ SVG 1.1 (2nd Edition): rect element
+ SVG 1.1 (2nd Edition): svg element
+ SVG 1.1 (2nd Edition): text element
+ SVG 1.1 (2nd Edition): use element
+ SVG 1.1 (2nd Edition): Filter primitive
+ SVG 1.1 (2nd Edition): mask element
+ SVG 1.1 (2nd Edition): tspan element
+ +

{{page("/ru/SVG/Content_type","coordinate")}}

+ +

Пример

+ +
<?xml version="1.0"?>
+<svg width="120" height="120"
+     viewBox="0 0 120 120"
+     xmlns="http://www.w3.org/2000/svg">
+
+  <rect x="10" y="10" width="100" height="100"/>
+</svg>
+ +

Элементы

+ +

Следующие элементы могут использовать атрибут y.

+ + diff --git a/files/ru/web/svg/index.html b/files/ru/web/svg/index.html new file mode 100644 index 0000000000..46a1143d6f --- /dev/null +++ b/files/ru/web/svg/index.html @@ -0,0 +1,103 @@ +--- +title: SVG +slug: Web/SVG +tags: + - 2D Graphics + - References + - SVG +translation_of: Web/SVG +--- +
С чего начать
+Этот урок поможет вам начать использовать SVG.
+ +

Масштабируемая векторная графика
+ (Scalable Vector Graphics — SVG)
является {{Glossary("язык разметки", "языком разметки")}} расширенным из XML для описания двухмерной {{Glossary("векторная графика", "векторной графики")}}. SVG по существу является графикой, так же, как {{Glossary("XHTML")}} — текстом.

+ +

SVG по своим возможностям приближается к запатентованной технологии Adobe Flash, но отличается от неё тем, что SVG является рекомендацией W3C (то есть, стандартом), и тем, что это формат, основанный на {{Glossary("XML")}}, в противовес закрытому двоичному формату Flash. Он явно спроектирован для работы с другими стандартами W3C, такими, как CSS, DOM и SMIL

+ +

SVG-графика и связанные с ней поведения определяются в текстовых XML-файлах, что означает, что их можно искать, индексировать, создавать сценарии и сжимать. Кроме того, это означает, что они могут быть созданы и отредактированы с помощью любого текстового редактора и программ для рисования. 

+ +

SVG — открытый стандарт, разработанный  World Wide Web консорциумом (W3C) с 1999 года.

+ +
+
+

Документация

+ +
+
Справочник по элементам SVG
+
Подробная информация о каждом элементе SVG.
+
Справочник по атрибутам SVG
+
Подробная информация о каждом атрибуте SVG.
+
Справочник по интерфейсу SVG DOM
+
Подробная информация по всему SVG DOM API.
+
Применение эффектов SVG к содержимому HTML 
+
SVG работает вместе с {{Glossary("HTML")}}, {{Glossary("CSS")}} и {{Glossary("JavaScript")}}.
+  Используйте SVG для улучшения обычной страницы HTML или веб-приложения..
+
SVG в Mozilla
+
Замечания и информация о том, как SVG реализован в Mozilla. + +
+
+ +

Просмотреть всё…

+ +

Сообщество

+ +
    +
  • Обращайтесь на форумы Mozilla… {{DiscussionList("dev-tech-svg", "mozilla.dev.tech.svg")}}
  • +
+ +

Инструменты

+ + +
+ +
+ + + + +

Анимация и взаимодействие

+ +

Как и HTML, SVG имеет объектную модель документа (DOM) и события и всё это может быть доступно через JavaScript. Это позволяет разработчикам создавать роскошные анимации и интерактивные изображения.

+ +
    +
  • Некоторые захватывающие работы с использованием SVG на svg-wow.org
  • +
  • Расширение Firefox (Grafox) для добавления поддержки анимации с использованием {{Glossary("SMIL")}}
  • +
  • Интерактивное управление фотографиями
  • +
  • Использование foreignObject из SVG для изменения HTML
  • +
  • Анимация SVG спидометр
  • +
+ +

Карты, диаграммы, игры и эксперименты с 3D

+ +

В то время, как маленькие документы SVG могут серьёзно улучшить веб-контент, здесь представлены некоторые примеры тяжёлого использования SVG.

+ + +
+
diff --git a/files/ru/web/svg/svg_1.1_support_in_firefox/index.html b/files/ru/web/svg/svg_1.1_support_in_firefox/index.html new file mode 100644 index 0000000000..b552e8a208 --- /dev/null +++ b/files/ru/web/svg/svg_1.1_support_in_firefox/index.html @@ -0,0 +1,774 @@ +--- +title: Поддержка SVG 1.1 в Firefox +slug: Web/SVG/SVG_1.1_Support_in_Firefox +translation_of: Web/SVG/SVG_1.1_Support_in_Firefox +--- +

Основные примеры синтаксиса и использования SVG вы можете найти в наборе тестов W3C SVG

+ +
+

Примечание: Начиная с {{Gecko("2.0")}}, Gecko поддерживает SVG-анимацию с использованием SMIL. Для краткого обзора смотрите SVG анимация и SMIL
+ Будет подготовлена ​​и полная документация для SVG. Когда-нибудь.

+
+ +

Также существует описание поддержки Mozilla изменений в SVG 2

+ +

Статус реализации элемента

+ +

Быстрый обзор элементов SVG 1.1 и текущий статус встроенной поддержки.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ЭлементКомментарий
Structure Module
svg +
    +
  • Выполнена.
  • +
  • currentScale и currentTranslate DOM, но нет пользовательского интерфейса панорамирования и масштабирования.
  • +
  • SVGSVGElement +
      +
    • Невыполненные атрибуты: contentScriptType, contentStyleType, viewport, currentView
    • +
    • Невыполненные привязки: getIntersectionList, getEnclosureList, checkIntersection, checkEnclosure
    • +
    +
  • +
+
g +
    +
  • Выполнена.
  • +
+
defs +
    +
  • Выполнена.
  • +
+
desc +
    +
  • Выполнена.
  • +
  • Сохраняется только в DOM, без пользовательского интерфейса.
  • +
+
title +
    +
  • Выполнена.
  • +
  • Заголовок title отображается как подсказка, когда мышь зависает над объектом SVG.
  • +
+
metadata +
    +
  • Выполнена.
  • +
  • Сохраняется только в DOM, без пользовательского интерфейса.
  • +
+
symbol +
    +
  • Выполнена.
  • +
+
use +
    +
  • Выполнена.
  • +
  • Не полностью соблюдает <svg:use> каскадные правила ({{Bug(265894)}}).
  • +
  • Не передает события в дерево SVGElementInstance ({{Bug(265895)}}).
  • +
+
Conditional Processing Module
switch +
    +
  • Выполнена.
  • +
+
Image Module
image +
    +
  • Выполнена.
  • +
+
Style Module
style +
    +
  • Выполнена.
  • +
+
Shape Module
path +
    +
  • Выполнена.
  • +
  • Интерфейс SVGPathElement +
      +
    • Невыполненные атрибуты: normalizedPathSegList, animatedNormalizedPathSegList
    • +
    +
  • +
+
rect +
    +
  • Выполнена.
  • +
+
circle +
    +
  • Выполнена.
  • +
+
line +
    +
  • Выполнена.
  • +
+
ellipse +
    +
  • Выполнена.
  • +
+
polyline +
    +
  • Выполнена.
  • +
+
polygon +
    +
  • Выполнена.
  • +
+
Text Module
text +
    +
  • Выполнена.
  • +
  • Перечисленные атрибуты презентации не работают  (alignment-baseline, baseline-shift, dominant-baseline, kerning, letter-spacing, word-spacing, writing-mode, glyph-orientation-horizontal, glyph-orientation-vertical)
  • +
  • Недавно реализованные атрибуты презентации: direction, unicode-bidi, font-variant, text-decoration {{gecko_minversion_inline("25")}}
  • +
  • SVGTextElement +
      +
    • Недавно реализованные привязки: selectSubString {{gecko_minversion_inline("25")}}
    • +
    • Недавно реализованные атрибуты: textLength, lengthAdjust {{gecko_minversion_inline("25")}}
    • +
    +
  • +
+
tspan +
    +
  • Выполнена.
  • +
  • Некоторые атрибуты презентации не работают (alignment-baseline, baseline-shift, dominant-baseline, kerning, letter-spacing, word-spacing, writing-mode, glyph-orientation-horizontal, glyph-orientation-vertical)
  • +
  • Недавно реализованные атрибуты презентации: direction, unicode-bidi, font-variant, text-decoration {{gecko_minversion_inline("25")}}
  • +
  • SVGTSpanElement +
      +
    • Недавно реализованные привязки: 
      + selectSubString{{gecko_minversion_inline("25")}}
    • +
    • Недавно реализованные атрибуты: textLength, lengthAdjust {{gecko_minversion_inline("25")}}
    • +
    +
  • +
+
tref +
    +
  • Эта функция, представленная в раннем проекте спецификации, была удалена из нее и поэтому не реализована ({{Bug(273171)}}).
  • +
+
textPath +
    +
  • Выполнена.
  • +
  • Недавно реализованные привязки: 
    + selectSubString{{gecko_minversion_inline("25")}}
  • +
+
altGlyph +
    +
  • Реализовано как tspans, никаких функций шрифта, как у Gecko 2.0 ({{Bug(456286)}}, {{Bug(571808)}}).
  • +
+
altGlyphDef +
    +
  • Не выполнена.
  • +
+
altGlyphItem +
    +
  • Не выполнена.
  • +
+
glyphRef +
    +
  • Не выполнена.
  • +
+
Marker Module
marker +
    +
  • Выполнена.
  • +
+
Color Profile Module
color-profile +
    +
  • Не выполнена ({{Bug(427713)}}).
  • +
+
Gradient Module
linearGradient +
    +
  • Выполнена.
  • +
+
radialGradient +
    +
  • Выполнена.
  • +
+
stop +
    +
  • Выполнена.
  • +
+
Pattern Module
pattern +
    +
  • Выполнена.
  • +
+
Clip Module
clipPath +
    +
  • Выполнена.
  • +
+
Mask Module
mask +
    +
  • Выполнена.
  • +
+
Filter Module
filter +
    +
  • Выполнена.
  • +
  • Из псевдо-входов:
    + SourceGraphic, SourceAlpha, FillPaint {{gecko_minversion_inline("17")}} и StrokePaint {{gecko_minversion_inline("17")}} - реализованы.
  • +
  • Использование нереализованного псевдо-входного или фильтрующего элемента приведет к игнорированию фильтра и рисованию обратного графика без какого-либо фильтра.
  • +
+
feBlend +
    +
  • Выполнена.
  • +
+
feColorMatrix +
    +
  • Выполнена.
  • +
+
feComponentTransfer +
    +
  • Выполнена.
  • +
+
feComposite +
    +
  • Выполнена.
  • +
+
feConvolveMatrix +
    +
  • Выполнена.
  • +
+
feDiffuseLighting +
    +
  • Выполнена.
  • +
+
feDisplacementMap +
    +
  • Выполнена.
  • +
+
feFlood +
    +
  • Выполнена.
  • +
+
feGaussianBlur +
    +
  • Выполнена.
  • +
+
feImage +
    +
  • Выполнена.
  • +
  • Фрагменты документа ({{bug(455986)}}) не поддерживаются в <svg:feImage>. 
  • +
+
feMerge +
    +
  • Выполнена.
  • +
+
feMergeNode +
    +
  • Выполнена.
  • +
+
feMorphology +
    +
  • Выполнена.
  • +
+
feOffset +
    +
  • Выполнена.
  • +
+
feSpecularLighting +
    +
  • Выполнена.
  • +
+
feTile +
    +
  • Выполнена.
  • +
+
feTurbulence +
    +
  • Выполнена.
  • +
+
feDistantLight +
    +
  • Выполнена.
  • +
+
fePointLight +
    +
  • Выполнена.
  • +
+
feSpotLight +
    +
  • Выполнена.
  • +
+
feFuncR +
    +
  • Выполнена.
  • +
+
feFuncG +
    +
  • Выполнена.
  • +
+
feFuncB +
    +
  • Выполнена.
  • +
+
feFuncA +
    +
  • Выполнена.
  • +
+
Cursor Module
cursor +
    +
  • Не выполнена ({{Bug(177193)}}).
  • +
+
Hyperlinking Module
a +
    +
  • Исправлены только xlink:href, xlink:show, xlink:target и атрибуты заголовка xlink:title.
  • +
+
View Module
view +
    +
  • Выполнено в Gecko 15.0 ({{Bug(512525)}}). {{gecko_minversion_inline("15.0")}}.
  • +
+
Scripting Module
script +
    +
  • Выполнена.
  • +
+
Animation Module
animate +
    +
  • Выполнена.
  • +
+
set +
    +
  • Выполнена.
  • +
+
animateMotion +
    +
  • Выполнена.
  • +
+
animateTransform +
    +
  • Выполнена.
  • +
+
animateColor +
    +
  • Не выполнена ({{Bug(436296)}}).
  • +
+
mpath +
    +
  • Выполнена.
  • +
+
Font Module
font +
    +
  • Не выполнена ({{Bug(119490)}}).
  • +
+
font-face +
    +
  • Не выполнена.
  • +
+
glyph +
    +
  • Не выполнена.
  • +
+
missing-glyph +
    +
  • Не выполнена.
  • +
+
hkern +
    +
  • Не выполнена.
  • +
+
vkern +
    +
  • Не выполнена.
  • +
+
font-face-src +
    +
  • Не выполнена.
  • +
+
font-face-uri +
    +
  • Не выполнена.
  • +
+
font-face-format +
    +
  • Не выполнена.
  • +
+
font-face-name +
    +
  • Не выполнена.
  • +
+
definition-src +
    +
  • Не выполнена.
  • +
+
Extensibility Module
foreignObject +
    +
  • Выполнена.
  • +
+
diff --git a/files/ru/web/svg/svg_as_an_image/index.html b/files/ru/web/svg/svg_as_an_image/index.html new file mode 100644 index 0000000000..e179b323b2 --- /dev/null +++ b/files/ru/web/svg/svg_as_an_image/index.html @@ -0,0 +1,66 @@ +--- +title: SVG как изображение +slug: Web/SVG/SVG_as_an_Image +translation_of: Web/SVG/SVG_as_an_Image +--- +

Изображения SVG могут использоваться как формат изображения в ряде контекстов. Многие браузеры поддерживают изображения SVG:

+ + + +

Гекко-специфические контексты

+ +

Кроме того, Gecko 2.0 {{geckoRelease("2.0")}} представил поддержку использования  SVG iв следующих контекстах:

+ + + +

Ограничения

+ +

В целях безопасности, Gecko накладывает некоторые ограничения на контент SVG, когда он используется в качестве изображения:

+ + + +

Обратите внимание, что вышеуказанные ограничения являются специфическими для контекстов изображения; они не применяются, когда содержимое SVG  просматривается напрямую или когда оно внедрено в виде документа с помощью встраивания элементов {{HTMLElement("iframe")}}, {{HTMLElement("object")}}, или {{HTMLElement("embed")}}.

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
{{SpecName("HTML5 W3C", "embedded-content-0.html#the-img-element", "SVG within <img> element")}}{{Spec2("HTML5 W3C")}}Определяет использование SVG в элементах {{HTMLElement("img")}}.
{{SpecName("CSS3 Backgrounds", "#the-background-image", "SVG within 'background-image' CSS property")}}{{Spec2("CSS3 Backgrounds")}}Определяет использование SVG со свойствами {{cssxref("background-image")}}.
+ +

Смотрите также

+ + diff --git a/files/ru/web/svg/tutorial/clipping_and_masking/index.html b/files/ru/web/svg/tutorial/clipping_and_masking/index.html new file mode 100644 index 0000000000..f5d2198fc8 --- /dev/null +++ b/files/ru/web/svg/tutorial/clipping_and_masking/index.html @@ -0,0 +1,87 @@ +--- +title: Обрезка и маска +slug: Web/SVG/Tutorial/Clipping_and_masking +translation_of: Web/SVG/Tutorial/Clipping_and_masking +--- +


+ {{ PreviousNext("Web/SVG/Tutorial/Basic_Transformations", "Web/SVG/Tutorial/Other_content_in_SVG") }}

+ +

 

+ +

На первый взгляд, странно стирать то, что было только что нарисовано. Но когда вы попытаетесь создать полукруг в SVG, то сразу столкнетесь со следующими свойствами.
+
+ Обрезка (Clipping) позволяет скрыть часть одного или нескольких элементов, используя другой. В этом случае нельзя настроить прозрачность элемента, это подход «все или ничего».
+
+ Маска, с другой стороны, позволяет создавать полупрозрачные эффекты (например, размытые края).

+ +

Кадрирование изображений

+ +

Мы можем создать полукруг на основе окружности:

+ +
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs>
+    <clipPath id="cut-off-bottom">
+      <rect x="0" y="0" width="200" height="100" />
+    </clipPath>
+  </defs>
+
+  <circle cx="100" cy="100" r="100" clip-path="url(#cut-off-bottom)" />
+</svg>
+
+ +

По центру (100,100) нарисован круг с радиусом 100. Атрибут clip-path ссылается на элемент {{ SVGElement("clipPath") }}, который содержит элемент rect. Этот прямоугольник позволит отрисовать верхнюю половину черного холста. Обратите внимание, что элемент clipPath обычно помещается в раздел defs.
+
+ При этом сам прямоугольник отрисован не будет. Вместо этого прямоугольник задаст область отрисовки. Так как прямоугольник перекрывает только верхнюю половину круга, нижняя половина круга исчезает:

+ +

{{ EmbedLiveSample('Creating_clips','240','240','/files/3224/clipdemo.png') }}

+ +

Теперь мы получили полуокружность без необходимости использования элемента path.  При “обрезке” каждый путь внутри clipPath проверяется и оценивается вместе с его свойствами stroke и transform. Другими словами, все что не находится в залитой области clipPath не будет отображено. Цвет, непрозрачность и т. д. не влияют на результат.

+ +

Маска

+ +

Хороший пример использования маски - это градиент. В разных местах изображения с помощью масок можно добиться разной степени прозрачности.

+ +
<svg width="200" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs>
+    <linearGradient id="Gradient">
+      <stop offset="0" stop-color="white" stop-opacity="0" />
+      <stop offset="1" stop-color="white" stop-opacity="1" />
+    </linearGradient>
+    <mask id="Mask">
+      <rect x="0" y="0" width="200" height="200" fill="url(#Gradient)"  />
+    </mask>
+  </defs>
+
+  <rect x="0" y="0" width="200" height="200" fill="green" />
+  <rect x="0" y="0" width="200" height="200" fill="red" mask="url(#Mask)" />
+</svg>
+
+ +

Фактически на примере находятся два прямоугольника: зеленый на нижнем слое и красный на верхнем. У красного есть атрибут mask, который ссылается на элемент mask. Содержимое маски это элемент rect, заполненный градиентом, где прозрачная заливка перетекает в белую. В результате, пиксели красного прямоугольника наследуют прозрачность (alpha-value) маски, и мы видим красно-зеленый градиент: 

+ +

{{ EmbedLiveSample('Masking','240','240','/files/3234/maskdemo.png') }}

+ +

Прозрачность opacity

+ +

Можно достаточно просто установить прозрачность для всего элемента, например используя атрибут opacity:

+ +
<rect x="0" y="0" width="100" height="100" opacity=".5" />
+
+ +

Вышеуказанный прямоугольник будет полупрозрачным. Для того, чтобы задать непрозрачность заливке или контуру мы можем использовать 2 отдельных атрибута fill-opacity и stroke-opacity. Обратите внимание, что заполнение контура будет перекрывать основную заливку. Следовательно, если установить прозрачность  контура у элемента, который также имеет заливку, половина контура наложится на цвет заливки, а другая на фон:

+ +
<svg width="200" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <rect x="0" y="0" width="200" height="200" fill="blue" />
+  <circle cx="100" cy="100" r="50" stroke="yellow" stroke-width="40" stroke-opacity=".5" fill="red" />
+</svg>
+
+ +

{{ EmbedLiveSample('Transparency_with_opacity','240','240','/files/3231/opacitydemo.png') }}

+ +

В этом примере используется красный круг на голубом фоне. Желтый контур установлен на 50% непрозрачности, что приводит к эффекту двойного цвета.

+ +

Использование хорошо известных CSS техник

+ +

Одним из мощных инструментов является display: none. Поэтому неудивительно, что было принято решение использовать это CSS  свойство в SVG вместе с visibility и clip, как определено в CSS 2. Для восстановления значения по умолчанию ранее важно знать, что начальное значение для всех элементов SVG  - inline.

+ +

{{ PreviousNext("Web/SVG/Tutorial/Basic_Transformations", "Web/SVG/Tutorial/Other_content_in_SVG") }}

diff --git a/files/ru/web/svg/tutorial/fills_and_strokes/index.html b/files/ru/web/svg/tutorial/fills_and_strokes/index.html new file mode 100644 index 0000000000..0caf2a76c5 --- /dev/null +++ b/files/ru/web/svg/tutorial/fills_and_strokes/index.html @@ -0,0 +1,145 @@ +--- +title: Заливка и обводка +slug: Web/SVG/Tutorial/Fills_and_Strokes +translation_of: Web/SVG/Tutorial/Fills_and_Strokes +--- +

{{ PreviousNext("Web/SVG/Tutorial/Paths", "Web/SVG/Tutorial/Gradients") }}

+ +

Есть несколько способов раскрасить фигуры SVG (в т.ч. с указанием атрибутов объекта), используя инлайн-CSS, встроенную CSS-секцию, или внешний файл CSS. Большая часть SVG, которую вы встретите в интернете, использует встроенный CSS, однако преимущества и недостатки есть у каждого типа.

+ +

Атрибуты заливки и обводки (Fill and Stroke Attributes)

+ +

Раскраска (Painting)

+ +

Основная раскраска может быть сделана установкой двух свойств на ноде - fill и stroke. Fill - устанавливает цвет внутри объекта, а stroke задаёт цвет линии, которая рисуется вокруг объекта. Вы можете использовать CSS-наименования цветов, что и в HTML - названия цветов (например, red), rgb-значения, hex-значения, rgba-значения и т.д.

+ +
 <rect x="10" y="10" width="100" height="100" stroke="blue" fill="purple"
+       fill-opacity="0.5" stroke-opacity="0.8"/>
+
+ +

Кроме того, вы можете задать прозрачность заливке и обводке по отдельности в SVG. Их прозрачность управляется атрибутами fill-opacity, stroke-opacity.

+ +
Замечание: в Файрфокс 3+ допустимы rgba-значения и это даёт такой же эффект прозрачности, но для совместимости с другими просмотрщиками часто лучше определить прозрачность обводки/заливки отдельно. Если вы укажете и rgba-значение и значение fill-opacity/stroke-opacity - будут применены оба.
+ +

Обводка (Stroke)

+ +

Кроме цветовых свойств обводки, есть несколько атрибутов, управляющих способом обводки.

+ +

+ +
<?xml version="1.0" standalone="no"?>
+<svg width="160" height="140" xmlns="http://www.w3.org/2000/svg" version="1.1">
+  <line x1="40" x2="120" y1="20" y2="20" stroke="black" stroke-width="20" stroke-linecap="butt"/>
+  <line x1="40" x2="120" y1="60" y2="60" stroke="black" stroke-width="20" stroke-linecap="square"/>
+  <line x1="40" x2="120" y1="100" y2="100" stroke="black" stroke-width="20" stroke-linecap="round"/>
+</svg>
+ +

Свойство stroke-width определяет ширину обводки. Штрихи обводки рисуются вокруг пути. В примере выше путь изображен розовым, а обводка - черным.

+ +

Второй атрибут, влияющий на обводку - свойство stroke-linecap. Демонстрируется выше. Свойство управляет отображениеи концов линий.

+ +

Есть три возможных значения для stroke-linecap:

+ + + +

Используйте stroke-linejoin, чтобы определить, как соединять обводку двух сегментов линии.

+ +

+ +
<?xml version="1.0" standalone="no"?>
+<svg width="160" height="280" xmlns="http://www.w3.org/2000/svg" version="1.1">
+  <polyline points="40 60 80 20 120 60" stroke="black" stroke-width="20"
+      stroke-linecap="butt" fill="none" stroke-linejoin="miter"/>
+
+  <polyline points="40 140 80 100 120 140" stroke="black" stroke-width="20"
+      stroke-linecap="round" fill="none" stroke-linejoin="round"/>
+
+  <polyline points="40 220 80 180 120 220" stroke="black" stroke-width="20"
+      stroke-linecap="square" fill="none" stroke-linejoin="bevel"/>
+</svg>
+ +

Каждая из этих полилиний имеет два сегмента. Соединение, где они встречаются, управляется атрибутом stroke-linejoin. Есть три возможных значения для этого атрибута:

+ + + +

Наконец, вы можете использовать пунктирные линии в обводке, определив атрибут stroke-dasharray.

+ +

+ +
<?xml version="1.0" standalone="no"?>
+<svg width="200" height="150" xmlns="http://www.w3.org/2000/svg" version="1.1">
+  <path d="M 10 75 Q 50 10 100 75 T 190 75" stroke="black"
+    stroke-linecap="round" stroke-dasharray="5,10,5" fill="none"/>
+  <path d="M 10 75 L 190 75" stroke="red"
+    stroke-linecap="round" stroke-width="1" stroke-dasharray="5,5" fill="none"/>
+</svg>
+ +

В качестве аргумента атрибут stroke-dasharray принимает последовательность чисел, разделенных запятой.

+ +
+

Замечание: в отличие от путей, эти числа ДОЛЖНЫ быть разделены запятыми (пробелы игнорируются).

+
+ +

Первое число определяет длину штриха, второе - длину между штрихами. В примере выше, второй путь чередует заливку штрихом в 5 пикселей, затем 5 пустых пикселей перед следующим штрихом в 5 пикселей. Вы можете задать больше чисел, если хотите более сложную систему штрихов. В первом примере задано 3 числа и в этом случае рендер берет эти числа дважды, чтобы создать четный паттерн. Т.о. первый путь отображается 5 закрашенными, 10 пустыми, 5 закрашенными и затем ещё раз 5 пустыми, 10 закрашенными, 5 пустыми "пикселями". Затем паттерн повторяется.

+ +

Также есть дополнительные stroke и fill свойства: fill-rule, которое определяет как будут заливаться сложные фигуры, которые имеют пересечения внутри себя; stroke-miterlimit, which determines if a stroke should draw miters и stroke-dashoffset, который указывает где начинается dash-array в линии (позволяет задать смещение пунктирной обводки относительно первоначального положения)

+ +

Использование CSS (Using CSS)

+ +

В дополнение к установке атрибутов объектов, вы также можете использовать CSS для стилизации заливки и обводки. Не все атрибуты могут быть установлены через CSS. Но атрибуты взаимодействия с раскраской и заливкой обычно доступны, так что fill, stroke, stroke-dasharray и т.д. могут быть заданы этим способом, также как и градиенты, и паттерны, что показано ниже. Атрибуты вроде width, height или команд для путей SVG не могут быть установлены через CSS. Проще всего просто протестировать и узнать, что доступно, а что нет.

+ +
Спецификация SVG строго разделяет атрибуты на свойства и другие атрибуты. Первые могут быть изменены через CSS, а вторые - нет.
+ +

CSS может использоваться инлайн через атрибут style:

+ +
 <rect x="10" height="180" y="10" width="180" style="stroke: black; fill: red;"/>
+
+ +

или может быть помещен в специальную стилевую секцию, которую вы включите. Вместо отображения такой секции в разделе <head>, как это делается в HTML, она включается в зону <defs>, предназначенную для определений. Здесь можно создавать элементы, которые не появятся сами в SVG, но будут использованы другими элементами.

+ +
<?xml version="1.0" standalone="no"?>
+<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" version="1.1">
+  <defs>
+    <style type="text/css"><![CDATA[
+       #MyRect {
+         stroke: black;
+         fill: red;
+       }
+    ]]></style>
+  </defs>
+  <rect x="10" height="180" y="10" width="180" id="MyRect"/>
+</svg>
+ +

Перемещение стилей в отдельную зону может сделать проще применение свойств к большим группам элементов. Вы также можете использовать вещи типа псевдоклассов наведения для создания эффектов переворачивания:

+ +
 #MyRect:hover {
+   stroke: black;
+   fill: blue;
+ }
+
+ +

Также можно определить отдельный файл стилей для ваших CSS-правил через обычный XML-stylesheet синтаксис:

+ +
<?xml version="1.0" standalone="no"?>
+<?xml-stylesheet type="text/css" href="style.css"?>
+
+<svg width="200" height="150" xmlns="http://www.w3.org/2000/svg" version="1.1">
+  <rect height="10" width="10" id="MyRect"/>
+</svg>
+ +

где style.css выглядит примерно так

+ +
#MyRect {
+  fill: red;
+  stroke: black;
+}
+ +

{{ PreviousNext("Web/SVG/Tutorial/Paths", "Web/SVG/Tutorial/Gradients") }}

diff --git a/files/ru/web/svg/tutorial/filter_effects/index.html b/files/ru/web/svg/tutorial/filter_effects/index.html new file mode 100644 index 0000000000..d063063795 --- /dev/null +++ b/files/ru/web/svg/tutorial/filter_effects/index.html @@ -0,0 +1,14 @@ +--- +title: Фильтры +slug: Web/SVG/Tutorial/Filter_effects +translation_of: Web/SVG/Tutorial/Filter_effects +--- +

{{ PreviousNext("Web/SVG/Tutorial/Other_content_in_SVG", "Web/SVG/Tutorial/SVG_Fonts") }}

+ +

Бывают ситуации, при которых базовые фигуры не обеспечивают гибкость, необходимую для достижения определенного эффекта. Тени, например, не могут быть созданы с помощью комбинации градиентов. Фильтры - это механизм SVG для создания сложных эффектов. 
+
+ Основным примером может послужить эффект размытия в SVG. Базовый эффект размытия может быть достигнут с помощью градиентов, фильтр размытия необходим, чтобы сделать что-либо большее.

+ +

Вы можете получить полную информацию об SVG фильтрах на W3C Recommendation.

+ +

{{ PreviousNext("Web/SVG/Tutorial/Other_content_in_SVG", "Web/SVG/Tutorial/SVG_Fonts") }}

diff --git a/files/ru/web/svg/tutorial/getting_started/index.html b/files/ru/web/svg/tutorial/getting_started/index.html new file mode 100644 index 0000000000..5882814c4a --- /dev/null +++ b/files/ru/web/svg/tutorial/getting_started/index.html @@ -0,0 +1,93 @@ +--- +title: Начало работы +slug: Web/SVG/Tutorial/Getting_Started +tags: + - SVG + - 'SVG:Руководство' +translation_of: Web/SVG/Tutorial/Getting_Started +--- +

{{ PreviousNext("Web/SVG/Tutorial/Introduction", "Web/SVG/Tutorial/Positions") }}

+ +

Простой пример

+ +

Давайте начнем наше погружение с простого примера. Посмотрите на код, представленный ниже:

+ +
<svg version="1.1"
+     baseProfile="full"
+     width="300" height="200"
+     xmlns="http://www.w3.org/2000/svg">
+
+  <rect width="100%" height="100%" fill="red" />
+
+  <circle cx="150" cy="100" r="80" fill="green" />
+
+  <text x="150" y="125" font-size="60" text-anchor="middle" fill="white">SVG</text>
+
+</svg>
+
+ +

Скопируйте код и вставьте его в файл demo1.svg. После чего откройте его в Firefox. Браузер отобразит Вам следующее изображение (пользователи Firefox: нажмите сюда):

+ +

svgdemo1.png

+ +

Процесс отображения включает следующее:

+ +
    +
  1. Мы начинаем с корневого элемента svg: + +
      +
    • как известно из (X)HTML, декларацию doctype следует опустить, потому что DTD на основе валидации SVG приводит к бо́льшим проблемам, чем их решает
    • +
    • до SVG 2, чтобы обозначить версию SVG для других типов вилидации, всегда следует использовать атрибуты version и baseProfile. Но в SVG 2 оба эти атрибута version и baseProfile обрели статус не рекомендованных
    • +
    • как диалект XML, SVG всегда правильно должен связывать простанства имен (в атрибуте xmlns). Смотри страницу Namespaces Crash Course для большей информации.
    • +
    +
  2. +
  3. Фон устанавливается красным при помощи рисования прямоугольника <rect/>, который покрывает всю область изображения
  4. +
  5. Зеленый круг <circle/> с радиусом 80px рисуется поверх центра красного прямоугольника (центр круга смещен на 150px вправо, и 100px вниз).
  6. +
  7. Текст "SVG" рисуется. Внутренняя часть каждой буквы наполняется белым. Расположение текста определяется привязкой, где мы хотим, чтобы была середина: в этом случае середина должна соответствовать центру зеленого круга. Для улучшения эстетического вида можно сделать точные настройки размера шрифта и вертикального положения.
  8. +
+ +

Основные свойства файлов SVG

+ + + +

Типы SVG файлов

+ +

Файлы SVG бывают двух видов. Нормальные файлы SVG - это простые текстовые файлы, содержащие разметку SVG. Рекомендуется расширение ".svg" (все нижним регистром) к имени файла для этих файлов.

+ +

Благодаря потенциально массивному размеру, который файлы SVG могут иметь при использовании в некоторых приложениях (например, географические приложения), спецификация SVG также допускает gzip-архивированные файлы SVG. Рекомендуется расширение ".svgz" (все нижним регистром) к имени файла. К сожалению, очень проблематично получить gzip-архивированные файлы SVG для надёжной работы со всеми SVG совместимыми пользовательскими агентами при управлении с сервера Microsofts IIS, когда Firefox не может загрузить gzip-архивированный SVG с локального компьютера. Избегайте gzip-архивированного SVG, кроме случаев, когда вы публикуетесь на вебсервере, в корректной работе которого вы уверены (смотри ниже).

+ +

Слово о Вебсерверах

+ +

Теперь, когда вы имеете представление о том, как создавать основные файлы SVG, следующим шагом будет загрузить их на Вебсервер. Но на этом этапе существуют некоторые подводные камни. Для нормальных файлов SVG, сервера должны посылать заголовки HTTP:

+ +
Content-Type: image/svg+xml
+Vary: Accept-Encoding
+ +

Для gzip-архивированных файлов SVG, сервера должны посылать заголовки HTTP:

+ +
Content-Type: image/svg+xml
+Content-Encoding: gzip
+Vary: Accept-Encoding
+ +

Вы можете проверить, правильные ли заголовки HTTP  посылает ваш сервер с файлами SVG, используя Network Monitor panel или сайт, такой как web-sniffer.net. Введите URL одного из файлов SVG и смотрите на заголовки ответа HTTP. Если вы обнаружите, что сервер не посылает заголовки с величинами, данными выше - вам следует связаться с вашим хостингом. Если у вас возникнут проблемы с тем, чтобы корректно сконфигурировать их сервера для SVG, существуют способы сделать это самостоятельно. Смотри server configuration page на странице SVG wiki о ряде простых решений.

+ +

Неверная конфигурация сервера является очень частой причиной в невозможности загрузить SVG, поэтому убедитесь, что вы проверили конфигурацию вашего сервера. Если ваш сервер не сконфигурирован для того, чтобы посылать правильные заголовки с файлами SVG, тогда Firefox будет вероятнее всего показывать разметку файлов как текст или кодированный мусор, или даже спрашивать программу просмотра выбрать приложение, чтобы открыть их.

+ +

{{ PreviousNext("Web/SVG/Tutorial/Introduction", "Web/SVG/Tutorial/Positions") }}

diff --git a/files/ru/web/svg/tutorial/gradients/index.html b/files/ru/web/svg/tutorial/gradients/index.html new file mode 100644 index 0000000000..bdb5e39461 --- /dev/null +++ b/files/ru/web/svg/tutorial/gradients/index.html @@ -0,0 +1,181 @@ +--- +title: Градиенты +slug: Web/SVG/Tutorial/Gradients +translation_of: Web/SVG/Tutorial/Gradients +--- +

{{ PreviousNext("Web/SVG/Tutorial/Fills_and_Strokes", "Web/SVG/Tutorial/Patterns") }}

+ +

Возможность создания и использования градиентов, также как заливки и обводки, более интересна, чем просто заливка или обводка.

+ +

Есть два типа градиентов: линейный и радиальный. Вы должны присвоить градиенту атрибут id, в противном случае на него не смогут ссылаться другие элементы внутри файла. Градиенты определяются в секции defs, а не в самой фигуре. Это позволяет их использовать многократно.

+ +

Линейный градиент (Linear Gradient)

+ +

Линейные градиенты изменяются вдоль прямой линии. Чтобы вставить градиент, нужно создать ноду {{SVGElement('linearGradient')}} внутри секции <defs> SVG файла.

+ +

Basic example

+ +
<svg width="120" height="240" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <defs>
+      <linearGradient id="Gradient1">
+        <stop class="stop1" offset="0%"/>
+        <stop class="stop2" offset="50%"/>
+        <stop class="stop3" offset="100%"/>
+      </linearGradient>
+      <linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1">
+        <stop offset="0%" stop-color="red"/>
+        <stop offset="50%" stop-color="black" stop-opacity="0"/>
+        <stop offset="100%" stop-color="blue"/>
+      </linearGradient>
+      <style type="text/css"><![CDATA[
+        #rect1 { fill: url(#Gradient1); }
+        .stop1 { stop-color: red; }
+        .stop2 { stop-color: black; stop-opacity: 0; }
+        .stop3 { stop-color: blue; }
+      ]]></style>
+  </defs>
+
+  <rect id="rect1" x="10" y="10" rx="15" ry="15" width="100" height="100"/>
+  <rect x="10" y="120" rx="15" ry="15" width="100" height="100" fill="url(#Gradient2)"/>
+
+</svg>
+ +

{{ EmbedLiveSample('SVGLinearGradient','120','240','/files/722/SVG_Linear_Gradient_Example.png') }}

+ +

Выше находится пример линейного градиента, который применен к элементу <rect>. Внутри линейного градиента есть несколько {{SVGElement('stop')}} нод.. Эти ноды сообщают градиенту, какой цвет он должен использовать в позициях, определенных атрибутом offset для позиции и атрибутом stop-color. Это может быть задано прямо в SVG или через CSS. В целях этого примера оба метода были смешаны. Например, Gradient1 начинается с красного цвета, изменяется до прозрачно-черного в середине и заканчивается синим цветом. Вы можете вставить столько стоп-цветов, сколько нужно, чтобы создать смесь, которая будет красивой или ужасной, как вам нужно. Границы всегда должны изменяться от 0% (или от 0, если вы хотите опустить знак %) до 100% (или 1). Повторяющиеся значения будут использовать стоп, который будет находится дальше всех по XML-дереву. Также, подобно заливке и обводке, вы можете определить атрибут stop-opacity, чтобы задать прозрачность в этой позиции (опять же, в FF3+ можно также использовать rgba-значения для этого).

+ +
 <stop offset="100%" stop-color="yellow" stop-opacity="0.5"/>
+
+ +

Чтобы использовать градиент, мы должны сослаться на него из атрибутов объекта fill/stroke. Это делается таким же образом, как вы ссылаетесь на элементы в CSS, используя url. В этом случае, url - это просто ссылка на наш градиент, которому задан уникальный ID, "Gradient". Чтобы добавить его, установим fill="url(#Gradient)". Наш объект теперь многоцветный. То же самое можно сделать с атрибутом stroke.

+ +

Элемент <linearGradient> также принимает некоторые другие атрибуты, который определяют размер и внешний вид градиента. Направление градиента контролируется двумя точками, обозначенными атрибутами x1, x2, y1, y2. Эти атрибуты определяют линию, вдоль которой двигается градиент. По умолчанию градиент имеет горизонтальную ориентацию, но это может быть изменено с помощью этих атрибутов. Gradient2 в примере выше предназначен для создания вертикального градиента.

+ +
 <linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1">
+
+ +
+

Замечание: Вы также можете использовать атрибут xlink:href для градиентов. Когда он использован, атрибуты и стопы из одного градиента могут быть включены в другой. В примере выше можно было бы не пересоздавать все точки остановки в Gradient2.

+ +
 <linearGradient id="Gradient1">
+   <stop id="stop1" offset="0%"/>
+   <stop id="stop2" offset="50%"/>
+   <stop id="stop3" offset="100%"/>
+ </linearGradient>
+ <linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1"
+    xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#Gradient1"/>
+
+ +

Я включил пространство имён xlink прямо в ноду, хотя обычно вы хотели бы определить его в верхней части вашего документа. Подробнее об этом мы поговорим в разделе изображений.

+
+ +

Радиальные градиенты

+ +

Радиальные градиенты похожи на линейные, но рисуют градиент, который "излучается" из точки. Для создания градиента Вам необходимо добавить элемент {{SVGElement('radialGradient')}} в секцию defs.

+ +

Basic example

+ +
<?xml version="1.0" standalone="no"?>
+<svg width="120" height="240" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <defs>
+      <radialGradient id="RadialGradient1">
+        <stop offset="0%" stop-color="red"/>
+        <stop offset="100%" stop-color="blue"/>
+      </radialGradient>
+      <radialGradient id="RadialGradient2" cx="0.25" cy="0.25" r="0.25">
+        <stop offset="0%" stop-color="red"/>
+        <stop offset="100%" stop-color="blue"/>
+      </radialGradient>
+  </defs>
+
+  <rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#RadialGradient1)"/>
+  <rect x="10" y="120" rx="15" ry="15" width="100" height="100" fill="url(#RadialGradient2)"/>
+
+</svg>
+ +

{{ EmbedLiveSample('Basic_example_2','120','240','/files/726/SVG_Radial_Gradient_Example.png') }}

+ +

Аттрибуты stop, используемые здесь - отвечают за то же, что и в линейных градиентах. Однако сейчас объект будет красным в центре и постепенно меняться к синему цвету, "двигаясь" к краям. Как и линейный градиент, элемент <radialGradient> может иметь несколько аттрибутов, описывающих его позицию и ориентацию (направленность?). Однако, в отличие от линейных градиентов, радиальные немного сложнее. Радиальные градиенты задаются двумя "точками", которые определят где будут границы. Первая "точка" определяет окружность, где градиент заканчивается. Для этого нам потребуется центр круга, который обозначается как cx и cy, и радиус - r. Изменяя эти аттрибуты, вы можете "двигать" внешнюю границу градиента и менять ее размер, как показано во втором прямоугольнике выше.

+ +

Вторая "точка" называется фокальной и задается аттрибутами fx и fy. В то время как первые "точки" указывают на внешнюю границу градиента, фокальная "точка" определяет где должна быть его середина. Это легко увидеть на примере.

+ +

Center and focal point

+ +
<?xml version="1.0" standalone="no"?>
+
+<svg width="120" height="120" version="1.1"
+  xmlns="http://www.w3.org/2000/svg">
+  <defs>
+      <radialGradient id="Gradient"
+            cx="0.5" cy="0.5" r="0.5" fx="0.25" fy="0.25">
+        <stop offset="0%" stop-color="red"/>
+        <stop offset="100%" stop-color="blue"/>
+      </radialGradient>
+  </defs>
+
+  <rect x="10" y="10" rx="15" ry="15" width="100" height="100"
+        fill="url(#Gradient)" stroke="black" stroke-width="2"/>
+
+  <circle cx="60" cy="60" r="50" fill="transparent" stroke="white" stroke-width="2"/>
+  <circle cx="35" cy="35" r="2" fill="white" stroke="white"/>
+  <circle cx="60" cy="60" r="2" fill="white" stroke="white"/>
+  <text x="38" y="40" fill="white" font-family="sans-serif" font-size="10pt">(fx,fy)</text>
+  <text x="63" y="63" fill="white" font-family="sans-serif" font-size="10pt">(cx,cy)</text>
+
+</svg>
+ +

{{ EmbedLiveSample('Center_and_focal_point','120','120','/files/727/SVG_Radial_Grandient_Focus_Example.png') }}

+ +

Если фокальная точка передвинута за границы круга, то градиент будет отрисован некорректно. Поэтому фокальная точка обязательно должна быть внутри границы круга (или на самой границе). Если фокальная точка не указана, то по дефолту она совпадает с центром круга.

+ +

Линейный и радиальный градиенты также принимают несколько аттрибутов, описывающих как они могут изменяться. Единственный аттрибут, о котором я хотел бы рассказать более подробно - это spreadMethod. Этот аттрибут указывает, что должно происходить, когда градиент "достигает" внешней границы градиента, но объект еще не заполнен. Аттрибут может принимать одно и трех значений:"pad", "reflect", или"repeat". "Pad" - это то что вы пока что видели: когда градиент достигает "краев", финальный цвет используется для заполнения оставшейся области. "Reflect" - градиент продолжает "двигаться" в "зеркальном" отражении (стартовый цвет берется из 100%, а конечный из 0%). А затем снова "переворачивается". И так до тех пор пока не достигнет края.

+ +

spreadMethod

+ +
<?xml version="1.0" standalone="no"?>
+
+<svg width="220" height="220" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <defs>
+      <radialGradient id="GradientPad"
+            cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75"
+            spreadMethod="pad">
+        <stop offset="0%" stop-color="red"/>
+        <stop offset="100%" stop-color="blue"/>
+      </radialGradient>
+      <radialGradient id="GradientRepeat"
+            cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75"
+            spreadMethod="repeat">
+        <stop offset="0%" stop-color="red"/>
+        <stop offset="100%" stop-color="blue"/>
+      </radialGradient>
+      <radialGradient id="GradientReflect"
+            cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75"
+            spreadMethod="reflect">
+        <stop offset="0%" stop-color="red"/>
+        <stop offset="100%" stop-color="blue"/>
+      </radialGradient>
+  </defs>
+
+  <rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#GradientPad)"/>
+  <rect x="10" y="120" rx="15" ry="15" width="100" height="100" fill="url(#GradientRepeat)"/>
+  <rect x="120" y="120" rx="15" ry="15" width="100" height="100" fill="url(#GradientReflect)"/>
+
+  <text x="15" y="30" fill="white" font-family="sans-serif" font-size="12pt">Pad</text>
+  <text x="15" y="140" fill="white" font-family="sans-serif" font-size="12pt">Repeat</text>
+  <text x="125" y="140" fill="white" font-family="sans-serif" font-size="12pt">Reflect</text>
+
+</svg>
+ +

{{ EmbedLiveSample('spreadMethod','220','220','/files/728/SVG_SpreadMethod_Example.png') }}

+ +

У обоих типов градиентов также есть атрибут gradientUnits, который описывает систему измерений, которую Вы собираетесь использовать, когда описываете размеры или ориентацию или градиен. Данный атрибут принимает 2 возможных значения: userSpaceOnUse или objectBoundingBox (дефолтное, показывалось во всех примерах выше). objectBoundingBox автоматически адаптирует градиент к размеру объекта, так что Вы можете указать координаты в виде значений от 0 до 1, и браузер автоматически их отпозиционирует. userSpaceOnUse позиционирует градиент в абсолютных единицах измерения, так что Вам необходимо знать где находится целевой объект, чтобы правильно применить к нему градиент. radialGradient  выше может быть переписан:

+ +
 <radialGradient id="Gradient" cx="60" cy="60" r="50" fx="35" fy="35" gradientUnits="userSpaceOnUse">
+
+ +

Вы также можете применить иную трансформацию к градиенту, используя аттрибут gradientTransform, но мы пока что его не изучали, я осталю это на потом.
+
+ Существуют и другие предостережения для работы с 
+ gradientUnits="objectBoundingBox", когда поле ограничения объекта не является квадратным, но они довольно сложны и им придется ждать, пока кто-то другой не соизволит объяснить их.

+ +

{{ PreviousNext("Web/SVG/Tutorial/Fills_and_Strokes", "Web/SVG/Tutorial/Patterns") }}

diff --git a/files/ru/web/svg/tutorial/index.html b/files/ru/web/svg/tutorial/index.html new file mode 100644 index 0000000000..ef0fc0459c --- /dev/null +++ b/files/ru/web/svg/tutorial/index.html @@ -0,0 +1,56 @@ +--- +title: SVG — учебное руководство +slug: Web/SVG/Tutorial +tags: + - Intermediate + - NeedsContent + - NeedsUpdate + - SVG + - 'SVG:Руководство' +translation_of: Web/SVG/Tutorial +--- +

Масштабируемая векторная графика (SVG), — это подмножество расширяемого языка разметки XML созданный Консорциумом Всемирной паутины (W3C). Эта технология реализована в Firefox, Opera, Internet Explorer, WebKit и в прочих браузерах.

+ +

Это учебное пособие призвано обьяснить Вам суть технологии SVG и ознакомить с её техническими деталями. Если Вы хотите только рисовать красивые изображения, то Вы можете найти более полезные учебные ресурсы. Есть хорошее учебное пособие для знакомства с SVG — это учебное пособие от W3C SVG Primer.

+ +
Это учебное пособие находится в стадии разработки. Если Вы можете, то, пожалуйста, помогите с написанием одного или нескольких параграфов. Плюс балл Гриффиндору за написание целой страницы!
+ +
Введение в SVG
+ + + +

Следующие темы более обширные, и они требуют отдельных учебных пособий.

+ +
Написание SVG с JavaScript
+ +

БОП

+ +
SVG-фильтры — руководство
+ +

БОП

+ +
Анимация с помощью SMIL в SVG
+ +

БОП

+ +
Создание шрифтов в SVG
+ +

БОП

diff --git a/files/ru/web/svg/tutorial/other_content_in_svg/index.html b/files/ru/web/svg/tutorial/other_content_in_svg/index.html new file mode 100644 index 0000000000..af90be1201 --- /dev/null +++ b/files/ru/web/svg/tutorial/other_content_in_svg/index.html @@ -0,0 +1,39 @@ +--- +title: Другое содержание в SVG +slug: Web/SVG/Tutorial/Other_content_in_SVG +tags: + - SVG + - 'SVG:Руководство' +translation_of: Web/SVG/Tutorial/Other_content_in_SVG +--- +

{{ PreviousNext("Web/SVG/Tutorial/Clipping_and_masking", "Web/SVG/Tutorial/Filter_effects") }}

+ +

Помимо графических примитивов, таких как прямоугольники и круги, SVG предлагает набор элементов для встраивания других типов контента в изображения.

+ +

Встраивание растровых изображений

+ +

Так же, как элемент img в HTML SVG имеет элемент изображения, служащий той же цели. Вы можете использовать его для встраивания произвольных растровых (и векторных) изображений. Спецификация запрашивает приложения для поддержки файлов формата PNG, JPEG и SVG.

+ +

Встроенное изображение становится обычным элементом SVG. Это означает, что вы можете использовать клипы, маски, фильтры, вращения и все другие инструменты SVG для контента:

+ +
<svg version="1.1"
+     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+     width="200" height="200">
+  <image x="90" y="-65" width="128" height="146" transform="rotate(45)"
+     xlink:href="https://developer.mozilla.org/static/img/favicon144.png"/>
+</svg>
+ +

{{ EmbedLiveSample('Встраивание_растровых_изображений','220','220','/files/16567/rotate-image-demo.png') }}

+ +

Внедрение произвольного XML

+ +

Поскольку SVG является XML-приложением, вы можете, конечно, всегда вставлять произвольный XML в любом месте документа SVG. Но тогда у вас нет средств для определения того, как окружающий SVG должен реагировать на содержимое. Собственно, в соответствующем обозревателе он совсем не реагирует, данные просто будут опущены.
+ Поэтому спецификация добавляет элемент {{ SVGElement("foreignObject") }} в SVG. Его единственная цель - быть контейнером для другой разметки и носителем для атрибутов стиля SVG (наиболее заметны ширина и высота для определения пространства, которое будет занимать объект).

+ +

Элемент foreignObject - хороший способ вставки XHTML в SVG. Если у вас есть более длинные тексты, макет HTML более подходит и удобен, чем текстовый элемент SVG. Другим часто упоминаемым примером использования является вложение формул с MathML. Для научных приложений SVG это очень хороший способ вступить в оба мира.

+ +
Note: Please keep in mind, that the content of the foreignObject must be processable by the viewer. A standalone SVG viewer is unlikely to be able to render HTML or MathML.
+ +

Поскольку foreignObject является элементом SVG, вы можете, как и в случае с изображением, использовать с ним любую добросовестность SVG, которая затем будет применяться к его контенту.

+ +

{{ PreviousNext("Web/SVG/Tutorial/Clipping_and_masking", "Web/SVG/Tutorial/Filter_effects") }}

diff --git a/files/ru/web/svg/tutorial/paths/index.html b/files/ru/web/svg/tutorial/paths/index.html new file mode 100644 index 0000000000..63d4cf6412 --- /dev/null +++ b/files/ru/web/svg/tutorial/paths/index.html @@ -0,0 +1,234 @@ +--- +title: Пути (paths) +slug: Web/SVG/Tutorial/Paths +translation_of: Web/SVG/Tutorial/Paths +--- +

{{ PreviousNext("Web/SVG/Tutorial/Basic_Shapes", "Web/SVG/Tutorial/Fills_and_Strokes") }}

+ +

Элемент <path> ("путь")– наиболее мощный элемент в библиотеке основных форм SVG. С его помощью можно создавать отрезки, кривые, дуги и многое другое.

+ +

С помощью элементов <path> создают сложные формы, объединяя многочисленные прямые и кривые линии. Сложные формы из одних только прямых линий можно создавать и через элемент polyline. Хотя результаты работы обоих элементов могут быть похожи, элемент polyline отображает кривые как много маленьких прямых линий, что не очень хорошо масштабируется до больших размеров. Хорошее понимание path важно при рисовании SVG. При создании сложных paths не рекомендуется использовать XML или текстовые редакторы – понимание, как они работают, позволит установить и исправить проблемы с отображением SVG.

+ +

Форма элемента path определяется одним атрибутом: {{ SVGAttr("d") }} (смотри подробности в основные формы). Атрибут d содержит серию команд и параметров, используемых этими командами. Мы опишем доступные команды и покажем примеры того, что они делают.

+ +

Каждая команда обозначается специальной буквой. Например, нам надо переместиться в точку с координатами (10,10).  Команда "Передвинуть к" вызывается буквой M. Когда синтаксический анализатор наталкивается на эту команду, он знает, что необходимо переместиться к указанной точке. Итак, для перемещения к точке (10,10) используется команда "M 10 10", и далее синтаксический анализатор переходит к следующей команде.

+ +

Все команды существуют в двух вариантах: вызов команды с заглавной буквы обозначает абсолютные координаты на странице, а команда со строчной буквой -относительные (например, перемещение от последней точки на 10px вверх и 7px влево).

+ +

Координаты в атрибуте d всегда пишутся без указания единиц измерения и находятся в системе пользовательских координат (обычно это пиксели). Позже мы рассмотрим, как элемент paths может быть трансформирован для других нужд.

+ +

Команды линии

+ +

Существуют пять команд линии для узлов <path>.  Первая команда - это "Переместиться к", или M, описанная выше. В качестве параметров она принимает координаты точки, к которой перемещается. Если курсор уже был где-либо на странице, между старым и новым местом линия не появится. Команда "Переместиться к" используется в начале элемента <path> для указания точки, откуда начнется рисование, например:

+ +
M x y
+
+ +

или

+ +
m dx dy
+ +

Следующий пример рисует одну только точку (10,10). Заметьте, однако, что при обычном использовании <path> она вообще не была бы видна.

+ +

+ +
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
+
+  <path d="M10 10"/>
+
+  <!-- Точки -->
+  <circle cx="10" cy="10" r="2" fill="red"/>
+
+</svg>
+ +

Существуют три команды, которые рисуют линии. Самая общая - команда "Линия к", вызываемая буквой L. Эта команда принимает два параметра - координаты точки x и y - и рисует линию от текущего положения к этой точке.

+ +
 L x y (или l dx dy)
+
+ +

Для рисования горизонтальных и вертикальных линий есть две укороченные формы . H рисует горизонтальную линию, а V рисует вертикальную линию. Обе команды используют только один аргумент, так как они движутся только в одном направлении.

+ +
 H x (или h dx)
+ V y (или v dy)
+
+ +

Начнем с рисования простой формы, например, прямоугольника (такого же, какой проще нарисовать с помощью элемента <rect>). Он состоит только из горизонтальных и вертикальных линий:

+ +

+ +
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
+
+  <path d="M10 10 H 90 V 90 H 10 L 10 10"/>
+
+  <!-- Точки -->
+  <circle cx="10" cy="10" r="2" fill="red"/>
+  <circle cx="90" cy="90" r="2" fill="red"/>
+  <circle cx="90" cy="10" r="2" fill="red"/>
+  <circle cx="10" cy="90" r="2" fill="red"/>
+
+</svg>
+ +

Нашу запись в примере выше можно немного сократить , используя команду "Закрыть путь", Z. Эта команда рисует прямую линию от текущего положения обратно к первой точке пути. Она часто встречается в конце узла пути, хотя и не всегда. Для нее регистр буквы не важен.

+ +
 Z (или z)
+
+ +

Таким образом наш путь из примера можно сократить до:

+ +
 <path d="M10 10 H 90 V 90 H 10 Z" fill="transparent" stroke="black"/>
+
+ +

Точно такую же картину можно получить с помощью относительных форм этих команд. Как уже говорилось, относительные команды вызываются использованием букв нижнего регистра и перемещают курсор относительно его последнего положения, а не к точным координатам . В нашем примере, поскольку размеры нашего квадрата - 80 x 80, элемент <path> можно записать так:

+ +
 <path d="M10 10 h 80 v 80 h -80 Z" fill="transparent" stroke="black"/>
+
+ +

Путь начнется от точки (10,10), пойдет горизонтально на 80 точек вправо, затем 80 точек вниз, затем 80 точек влево, и затем обратно к старту.

+ +

Возможно, в этих примерах было бы проще использовать элементы <polygon> или <polyline>. Однако, пути используются при рисовании SVG настолько часто, что многим разработчикам может быть удобнее использовать их вместо других элементов.  Нет никакой разницы в производительности при использовании того или другого.

+ +

Команды кривых линий

+ +

Существует три различных команды, которые вы можете использовать для создания плавных кривых линий. Две из этих кривых - кривые Безье, а третья - "дуга", или часть окружности. Вы, возможно, уже имели практический опыт с кривыми Безье, если работали с путями (paths) в программах lnkscape, Illustrator или Photoshop. Для полного описания математических понятий о кривых Безье, попробуйте пройти по ссылке на Wikipedia. Информации о кривых Безье слишком много, чтобы попытаться охватить ее здесь. Существует бесчисленное множество различных типов кривых Безье, но только две простые доступны для элементов путей: кубическая, C, и квадратная, Q.

+ +

Кривые Безье

+ +

Кубическая кривая, C, представляет собой немного более сложную кривую. Кубическая Безье принимает две контрольные точки для каждой точки.  Таким образом, чтобы создать кубическую кривую Безье, вам необходимо указать три набора координат.

+ +
 C x1 y1, x2 y2, x y (or c dx1 dy1, dx2 dy2, dx dy)
+
+ +

Последний набор координат (x,y) это точка, в которой заканчивается линия. Две другие - контрольные точки. (x1,y1) контрольная точка для начала вашей кривой, а (x2,y2) для конца вашей кривой. Если вы знакомы с вычислительной алгеброй, контрольные точки в описывают наклон вашей линии в каждой точке. Функция Безье создает плавную кривую, которая ведет от наклона, который вы установили в начале вашей линии к наклону на другом конце.

+ +

Cubic Bézier Curves with grid

+ +
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg">
+
+  <path d="M10 10 C 20 20, 40 20, 50 10" stroke="black" fill="transparent"/>
+  <path d="M70 10 C 70 20, 120 20, 120 10" stroke="black" fill="transparent"/>
+  <path d="M130 10 C 120 20, 180 20, 170 10" stroke="black" fill="transparent"/>
+  <path d="M10 60 C 20 80, 40 80, 50 60" stroke="black" fill="transparent"/>
+  <path d="M70 60 C 70 80, 110 80, 110 60" stroke="black" fill="transparent"/>
+  <path d="M130 60 C 120 80, 180 80, 170 60" stroke="black" fill="transparent"/>
+  <path d="M10 110 C 20 140, 40 140, 50 110" stroke="black" fill="transparent"/>
+  <path d="M70 110 C 70 140, 110 140, 110 110" stroke="black" fill="transparent"/>
+  <path d="M130 110 C 120 140, 180 140, 170 110" stroke="black" fill="transparent"/>
+
+</svg>
+
+ +

Пример сверху показывает девять кубических кривых Безье. Чем ближе к левому краю изображения, тем более горизонтально разделенными становятся контрольные точки. Ближе к правому, становятся более отделенными от конечных точек. Стоит отметить, что кривая начинается в направлении первой контрольной точки, а затем изгибается, переходя в направление второй контрольной точки.

+ +

Вы можете связать вместе несколько кривых Безье, чтобы создавать более длинные плавные формы. В таком случае часто контрольные точки на разных сторонах будут отображением друг друга (чтобы поддерживать постоянный наклон). В этом случае можно использовать сокращенную запись для кривой Безье, используя команду S (или s).

+ +
 S x2 y2, x y (or s dx2 dy2, dx dy)
+
+ +

Команда S задаёт тот же тип кривой, что и был, но если он следует за другой S или C командой, подразумевается, что первая контрольная точка - отражение той, что использовалась перед этим. Если команда S не следует за другой командой S или C, то подразумевается, что обе контрольные точки для кривой одинаковы. Пример синтаксиса показан ниже. В фигуре слева контрольные точки показаны красным, а подразумеваемая контрольная точка - синим.

+ +

ShortCut_Cubic_Bezier_with_grid.png

+ +
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg">
+  <path d="M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80" stroke="black" fill="transparent"/>
+</svg>
+ +

Другой тип кривой Безье - квадратичная кривая, задаётся командой Q. Квадратичная кривая проще, чем кубическая: для неё требуется только одна контрольная точка, которая определяет наклон кривой как в начальной, так и в конечной точке. Она принимает два аргумента: контрольную точку и конец кривой.

+ +
 Q x1 y1, x y (or q dx1 dy1, dx dy)
+
+ +

Quadratic Bézier with grid

+ +
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg">
+  <path d="M10 80 Q 95 10 180 80" stroke="black" fill="transparent"/>
+</svg>
+ +

Как и в случае кубической кривой Безье, существует сокращение для соединения нескольких квадратичных кривых Безье -T.

+ +
 T x y (or t dx dy)
+
+ +

Как и ранее, сокращение смотрит на предыдущую контрольную точку, которую вы использовали, и выводит из нее новую. Это означает, что после первой контрольной точки вы можете делать довольно сложные фигуры, указав только конечные точки.

+ +
+

Обратите внимание, что это работает только в том случае, если предыдущей командой была команда Q или T. Если это не так, то контрольная точка считается той же, что и предыдущая, и вы нарисуете только линии.

+
+ +

Shortcut_Quadratic_Bezier_with_grid.png

+ +
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg">
+  <path d="M10 80 Q 52.5 10, 95 80 T 180 80" stroke="black" fill="transparent"/>
+</svg>
+ +

Обе кривые дают похожие результаты, но кубическая кривая позволяет больше свободы в том, как должна выглядеть кривая. Решение, какую кривую использовать - ситуационное и зависит от количества симметрии в линиях.

+ +

Дуги

+ +

Другой тип кривых линий, которые можно создать с помощью SVG - дуга (команда A). Дуги - секции кругов или эллипсов. При заданных x- и y-радиусах есть два эллипса, которые могут соединяться любыми двумя точками (пока они находятся внутри радиуса круга). Вдоль любого из этих кругов есть два пути, которые могут испольовать для соединения точек, так что в любой ситуации возможно 4 дуги.

+ +
 A rx ry x-axis-rotation large-arc-flag sweep-flag x y
+ a rx ry x-axis-rotation large-arc-flag sweep-flag dx dy
+
+ +

В начале элемент дуги принимает два аргумента радиусов. Если нужно, обратитесь к разделу Эллипсы, чтобы увидеть, как они работают. Последние два аргумента предназначены для обозначения координат окончания дуги. Вместе эти четыре значения определяют основную структуры дуги.

+ +

Третий параметр описывает поворот дуги. См. пример ниже

+ +

SVGArcs_XAxisRotation_with_grid

+ +
<svg width="320" height="320" xmlns="http://www.w3.org/2000/svg">
+  <path d="M10 315
+           L 110 215
+           A 30 50 0 0 1 162.55 162.45
+           L 172.55 152.45
+           A 30 50 -45 0 1 215.1 109.9
+           L 315 10" stroke="black" fill="green" stroke-width="2" fill-opacity="0.5"/>
+</svg>
+ +

Пример показывает элемент path, который проходит по странице диагонально. В центре этого элемента вырезаны две эллиптические дуги (радиус x = 30, радиус y = 50). В первой дуге параметр x-asix-rotation = 0, а это означает, что эллипс, по которому проходит дуга (показан серым) расположен вертикально. Во второй дуге параметр x-asix-rotation = -45. Это поворачивает эллипс так, что направление его малой оси совпадает с направлением пути, как это видно на рисунке выше.

+ +

Четыре разных пути, упомянутых выше определяются с помощью двух аргументов-флагов. Как упоминалось ранее, есть ещё два возможных эллипса для обхода пути и два разных возможных пути на обоих эллипсах, что даёт четыре возможных пути. Первый аргумент - large-arc-flag. Он определяет, должна ли дуга быть больше или меньше 180 градусов. В конечном счёте этот флаг определяет, в каком направлении дуга будет обходить данный круг. Второй аргумент - sweep-flag. Он определяет, должна дуга двигаться по отрицательным углам или по положительным, т.е. по сути определяет по какому из двух кругов она будет идти. Пример ниже показывает все четыре возможные комбинации.

+ +

Show the 4 arcs on the Ellipse example

+ +
<svg xmlns="http://www.w3.org/2000/svg" width="320" height="320">
+  <path d="M 10 315
+           L 110 215
+           A 36 60 0 0 1 150.71 170.29
+           L 172.55 152.45
+           A 30 50 -45 0 1 215.1 109.9
+           L 315 10" stroke="black" fill="green" stroke-width="2" fill-opacity="0.5"/>
+  <circle cx="150.71" cy="170.29" r="2" fill="red"/>
+  <circle cx="110" cy="215" r="2" fill="red"/>
+  <ellipse cx="144.931" cy="229.512" rx="36" ry="60" fill="transparent" stroke="blue"/>
+  <ellipse cx="115.779" cy="155.778" rx="36" ry="60" fill="transparent" stroke="blue"/>
+</svg>
+ +

Заметьте, что каждый голубой эллипс сформирован двумя дугами, в завимости от того движетесь ли вы по часовой или против часовой стрелке. Каждый эллипс имеет короткую и длинную дуги. Оба эллипса просто зеркальные отражения друг друга. Они отражены вдоль линии, сформированной start->end точками.

+ +

Если start->end точки расположены далеко и не попадают в пределы радусов эллипсов по x и y, то в этом случае радуисы эллипсов будут увеличены до величины, нужной чтобы достичь точек start->end. Интерактивный codepen внизу этой страницы наглядно это демонстрирует. Для определения достаточны ли велики радиусы ваших эллипсов чтобы требовать увеличения, вам нужно решить систему уравнений подобную этой на wolfram alpha. Это вычислиние для non-rotated эллипса с start->end (110, 215)->(150.71, 170.29). Решенимем, (x, y), является центр эллипса(ов). Следющее вычисление для non-rotated эллипса с start->end (110, 215)->(162.55, 162.45). Решение будет мнимым если радиусы ваших эллипсов слишком малы. Решение содержит небольшой мнимый компонент потому, что эллипсы были лишь слегка расширены.

+ +

Четыре разных пути, упомянутых выше определяются с помощью двух аргументов-флагов. Как упоминалось ранее, есть ещё два возможных эллипса для обхода пути и два разных возможных пути на обоих эллипсах, что даёт четыре возможных пути. Первый аргумент - large-arc-flag. Он определяет, должна ли дуга быть больше или меньше 180 градусов. В конечном счёте этот флаг определяет, в каком направлении дуга будет обходить данный круг. Второй аргумент - sweep-flag. Он определяет, должна дуга двигаться по отрицательным углам или по положительным, т.е. по сути определяет по какому из двух кругов она будет идти. Пример ниже показывает все четыре возможные комбинации.

+ +

+ +
<svg width="325" height="325" xmlns="http://www.w3.org/2000/svg">
+  <path d="M80 80
+           A 45 45, 0, 0, 0, 125 125
+           L 125 80 Z" fill="green"/>
+  <path d="M230 80
+           A 45 45, 0, 1, 0, 275 125
+           L 275 80 Z" fill="red"/>
+  <path d="M80 230
+           A 45 45, 0, 0, 1, 125 275
+           L 125 230 Z" fill="purple"/>
+  <path d="M230 230
+           A 45 45, 0, 1, 1, 275 275
+           L 275 230 Z" fill="blue"/>
+</svg>
+ +

Последние два аргумента, если вы ещё не догадались, обозначают координаты x и y, где заканчивается дуга. Дуги - лёгкий способ создавать части кругов или эллипсов в ваших рисунках. Например, круговая диаграмма требует отдельную дугу для каждого куска диаграммы.

+ +

Если вы переходите в SVG из Canvas`а, дуги могут быть самой трудной вещью для изучения, но они также очень мощные. Т.к. начальная и конечные точки для любого пути, обходящего круг, одно и то же место, существует бесконечное количество кругов, которые могут быть выбраны и действительный путь не определен. Возможно приблизить их, сделав начальную и конечную точку пути слегка разными и соединив их с другими сегментами пути. В этой точке, часто проще использовать настоящий круг или эллипс. Это интерактивное демо может помочь понять основные принципы SVG-дуг: http://codepen.io/lingtalfi/pen/yaLWJG (протестировано только в Хром и Файрфокс, может не работать в вашем браузере)

+ +

{{ PreviousNext("Web/SVG/Tutorial/Basic_Shapes", "Web/SVG/Tutorial/Fills_and_Strokes") }}

diff --git a/files/ru/web/svg/tutorial/patterns/index.html b/files/ru/web/svg/tutorial/patterns/index.html new file mode 100644 index 0000000000..1db8bc9448 --- /dev/null +++ b/files/ru/web/svg/tutorial/patterns/index.html @@ -0,0 +1,76 @@ +--- +title: Шаблоны +slug: Web/SVG/Tutorial/Patterns +translation_of: Web/SVG/Tutorial/Patterns +--- +

{{ PreviousNext("Web/SVG/Tutorial/Gradients", "Web/SVG/Tutorial/Texts") }}

+ +

Шаблоны (Patterns)

+ +

Patterns, по моему мнению, одни из самых запутанных типов заполнения (fill types) в SVG. Несмотря на это ,они являются очень мощным инструментом, так что о них определенно стоит поговорить и понять хотя бы основные части. Как и градиенты, элементы {{SVGElement('pattern')}} должны быть помещены в секцию <defs> в Вашем SVG-файле.

+ +
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
+  <defs>
+    <linearGradient id="Gradient1">
+      <stop offset="5%" stop-color="white"/>
+      <stop offset="95%" stop-color="blue"/>
+    </linearGradient>
+    <linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1">
+      <stop offset="5%" stop-color="red"/>
+      <stop offset="95%" stop-color="orange"/>
+    </linearGradient>
+
+    <pattern id="Pattern" x="0" y="0" width=".25" height=".25">
+      <rect x="0" y="0" width="50" height="50" fill="skyblue"/>
+      <rect x="0" y="0" width="25" height="25" fill="url(#Gradient2)"/>
+      <circle cx="25" cy="25" r="20" fill="url(#Gradient1)" fill-opacity="0.5"/>
+    </pattern>
+  </defs>
+
+  <rect fill="url(#Pattern)" stroke="black" width="200" height="200"/>
+</svg>
+ +

{{ EmbedLiveSample('Patterns','220','220','/files/725/SVG_Pattern_Example.png') }}

+ +

Внутри элемента <pattern> вы можете использовать любые другие основные фигуры, которые использовались ранее.  И каждая из них может быть стилизована, используя любые из возможных вариантов стилизаций, которые Вы изучали до этого, включая градиенты и прозрачность. Выше мы просто нарисовали два прямоугольника внутри нашего шаблона (которые перекрываются, и один из которых в два раза больше другого и используется для заполнения всего шаблона), и один круг.

+ +

Сбивающая с толку вещь - это определение единиц измерения и размера. В примере выше мы определили ширину и высоту соответствующими аттрибутами внутри паттерна, что бы указать как далеко паттерн будет "продолжаться", прежде чем начать повторяться. Также доступны x и y атрибуты для смещения стартовой точки этого прямоугольника в том месте где вы его отрисовываете. Причина по которой они тут использованы, описана ниже.

+ +

Как и с gradientUnits атрибутом, использованном ранее, у паттерна также есть атрибут patternUnits . Он определяет единицы измерения, которые принимают атрибуты. По дефолту используется значене "objectBoundingBox", (как и в предыдущем разделе). Так что значения от 0 до 1 будут масштабированы в зависимости от размеров объекта, к которому вы применяете паттерн. Поскольку в данном случае мы хотим, чтобы шаблон повторялся 4 раза по горизонтали и вертикали, ширину и высоту мы установили в значение 0.25. Что означает 0.25 от размера целевого объекта

+ +

В отличие от градиентов, у паттернов есть 2ой атрибут - patternContentUnits, который описывает единицы измерения, используемые в базовых фигурах внутри элемента pattern. Дефолтное значение для этого атрибута -  userSpaceOnUse, противоположность атрибуту patternUnitsЭто означает, что если Вы не укажете один или оба этих атрибута (patternContentUnits и/или patternUnits), фигуры, которые Вы будете рисовать внутри блока <pattern>, будут отрисованы в другой системе координат (отличной от той, которую использует паттерн). Это может немного запутывать, если Вы пишете код вручную.

+ +

Чтобы сделать эту работу в приведенном выше примере, нам пришлось рассмотреть размер нашей коробки (200 пикселей) и тот факт, что мы хотели, чтобы рисунок повторялся 4 раза по горизонтали и по вертикали. Это означает, что каждый блок шаблонов был квадратом 50 × 50. Затем два прямоугольника и круг внутри рисунка были рассчитаны на размер в коробке 50x50.
+ Все, что мы нарисовали вне этой коробки, не было бы показано. Шаблон также должен был быть смещен на 10 пикселей, чтобы он начинался в верхнем левом углу нашего окна, поэтому атрибуты x и y шаблона должны были быть скорректированы до 10/200 = 0,05.

+ + + +

Здесь предостережение заключается в том, что если объект изменяет размер, сам шаблон будет масштабироваться, чтобы соответствовать ему, но объекты внутри не будут. Таким образом, хотя у нас все еще будет 4 повторяющихся блока внутри шаблона, объекты, составляющие этот шаблон, будут оставаться одного и того же размера, и вы окажетесь в больших областях между ними.
+ Изменяя атрибут patternContentUnits , мы можем поместить все элементы в одну единую систему:

+ +
 <pattern id="Pattern" width=".25" height=".25" patternContentUnits="objectBoundingBox">
+   <rect x="0" y="0" width=".25" height=".25" fill="skyblue"/>
+   <rect x="0" y="0" width=".125" height=".125" fill="url(#Gradient2)"/>
+   <circle cx=".125" cy=".125" r=".1" fill="url(#Gradient1)" fill-opacity="0.5"/>
+ </pattern>
+
+ +

Теперь, поскольку содержимое шаблона находится в той же единичной системе, что и шаблон, нам не нужно смещать поле так, чтобы шаблон начинался в правильном месте, и если размер объекта был изменен на более крупный, шаблон автоматически масштабируется так, чтобы в нем было одинаковое количество объектов, повторяющихся внутри него. Это контрастирует с системой userSpaceOnUse, где, если объект изменяет размер, шаблон останется прежним и просто повторится больше раз, чтобы заполнить поле.

+ +

Как ни удивительно, но в кругах Gecko, похоже, есть проблемы с рисованием, если их радиус установлен на что-то меньшее 0.075 (хотя их нужно масштабировать, чтобы иметь гораздо больший радиус, чем этот. Это может быть ошибкой только в шаблоне , Или вообще не ошибка, я не уверен).
+ Чтобы обойти это, вероятно, лучше всего избегать рисования блоков «objectBoundingBox», если вам это не нужно.

+ +

Ни одно из этих применений не является тем, о чем обычно думают, когда вы думаете о шаблоне. Шаблоны обычно имеют заданный размер и повторяются независимо от формы объекта. Чтобы создать что-то подобное - шаблон и его содержимое должны быть нарисованы в текущем userSpace, чтобы они не меняли форму, если объект:

+ +
 <pattern id="Pattern" x="10" y="10" width="50" height="50" patternUnits="userSpaceOnUse">
+   <rect x="0" y="0" width="50" height="50" fill="skyblue"/>
+   <rect x="0" y="0" width="25" height="25" fill="url(#Gradient2)"/>
+   <circle cx="25" cy="25" r="20" fill="url(#Gradient1)" fill-opacity="0.5"/>
+ </pattern>
+
+ +

Конечно, это означает, что шаблон не будет масштабироваться, если вы позже измените размер своего объекта. Все три из приведенных выше примеров показаны ниже на прямоугольнике, который слегка удлинен до высоты 300 пикселей, но я должен отметить его не исчерпывающее изображение, и есть другие варианты, доступные в зависимости от вашего приложения.

+ +

Image:SVG_Pattern_Comparison_of_Units.png

+ +

{{ PreviousNext("Web/SVG/Tutorial/Gradients", "Web/SVG/Tutorial/Texts") }}

diff --git a/files/ru/web/svg/tutorial/svg_fonts/index.html b/files/ru/web/svg/tutorial/svg_fonts/index.html new file mode 100644 index 0000000000..92cdb57f84 --- /dev/null +++ b/files/ru/web/svg/tutorial/svg_fonts/index.html @@ -0,0 +1,98 @@ +--- +title: SVG шрифты +slug: Web/SVG/Tutorial/SVG_fonts +translation_of: Web/SVG/Tutorial/SVG_fonts +--- +

{{ PreviousNext("Web/SVG/Tutorial/Filter_effects", "Web/SVG/Tutorial/SVG_Image_Tag") }}

+ +

Когда был написан стандарт SVG, поддержка веб-шрифтов еще не была широко распространена в браузерах. Поскольку доступ к правильному файлу шрифта имеет решающее значение для правильного отображения текста, в SVG была добавлена технология описания шрифтов. Она не совместима с другими форматами, такими как PostScript или OTF, это лишь простое средство вложения информации о глифах в SVG при визуализации.
+  

+ +

SVG-шрифты корректно поддерживаются только в Safari.
+ Эта возможность не была реализована в Internet Explorer, она также была удалена из Chrome 38 (и Opera 25),  разработчики Mozilla отложили ее реализацию на неопределенное время, чтобы сосредоточиться на WOFF. Другие инструменты, такие как плагин Adobe SVG Viewer, Batik и частично Inkscape поддерживают встраиваемые шрифты SVG.

+ +

Элемент {{ SVGElement("font") }} используется для определения SVG-шрифта.

+ +

Установка шрифта

+ +

 

+ +

Есть некоторые нюансы, необходимые для вставки шрифта в SVG. Давайте рассмотрим пример объявления (указанный в спецификации), и объясним детали.
+  

+ +
<font id="Font1" horiz-adv-x="1000">
+  <font-face font-family="Super Sans" font-weight="bold" font-style="normal"
+      units-per-em="1000" cap-height="600" x-height="400"
+      ascent="700" descent="300"
+      alphabetic="0" mathematical="350" ideographic="400" hanging="500">
+    <font-face-src>
+      <font-face-name name="Super Sans Bold"/>
+    </font-face-src>
+  </font-face>
+  <missing-glyph><path d="M0,0h200v200h-200z"/></missing-glyph>
+  <glyph unicode="!" horiz-adv-x="300"><!-- Outline of exclam. pt. glyph --></glyph>
+  <glyph unicode="@"><!-- Outline of @ glyph --></glyph>
+  <!-- more glyphs -->
+</font>
+
+ +

Начнем с элемента {{ SVGElement("font") }}. Он имеет атрибут id, который позволяет ему ссылаться через URI (см. ниже). Атрибут horiz-adv-x определяет, насколько широкий символ в среднем по сравнению с путями для отдельных глифов. Обычно подходит значение 1000. Существует несколько сопутствующих атрибутов, которые помогают определить ограничительные рамки. 

+ +

Элемент {{ SVGElement("font-face") }} является в SVG эквивалентом объявления шрифта с помощью CSS-свойства @font-face. Он определяет основные свойства финального шрифта, такие как вес, стиль и т. д. В приведенном выше примере, первое и самое важное свойство, которое должно быть определено - это font-family, на значение которого затем можно ссылаться в свойствах CSS и SVG. Атрибуты font-weight и font-style имеют ту же цель, что и соответствующие свойства CSS. Все последующие атрибуты - это команды рендеринга для механизма компоновки шрифтов, задающие, к примеру, какая средняя высота символов направленных вверх или вниз выносных элементов.

+ +

Дочерний элемент {{ SVGElement("font-face-src") }} соответствует свойству src для атрибута @font-face в CSS. Вы можете указать внешние источники для определения шрифтов с помощью элементов {{ SVGElement("font-face-name") }} и {{ SVGElement("font-face-uri") }}. В приведенном выше примере указано, что если у рендерера имеется локальный доступный шрифт с именем «Super Sans Bold», он должен использовать его.

+ +

Следующий элемент за {{ SVGElement("font-face-src") }} - это {{ SVGElement("missing-glyph") }}. Он определяет, что должно отображаться, если символ в шрифте не был найден и если нет запасного варианта. Он также показывает, как создаются глифы: добавлением в него любого графического контента SVG. В нем вы можете использовать буквально любые элементы SVG, даже {{ SVGElement("filter") }}, {{ SVGElement("a") }} или {{ SVGElement("script") }}. Однако для простых глифов вы можете просто добавить атрибут d - он определяет форму для глифа точно так же, как работают стандартные пути SVG.

+ +

Сами глифы затем определяются элементами {{ SVGElement("glyph") }}. Наиболее важным атрибутом является unicode. Он определяет код кодировки unicode, представленный этим символом. Если вы указываете атрибут {{htmlattrxref("lang")}} на глифе, вы можете дополнительно ограничить его определенными языками (представленными xml:lang). Вы можете использовать произвольный SVG для определения глифа, и это позволит вам создать замечательные эффекты.
+
+ Есть еще два элемента, которые могут быть определены внутри шрифта: {{ SVGElement("hkern") }} и {{ SVGElement("vkern") }}. Каждый из них содержит ссылки не менее чем на два символа (атрибуты u1 и u2) и атрибут k, который определяет, на сколько должно быть уменьшено расстояние между этими символами. Ниже показан пример инструкции размещения символов «A» и «V» на стандартном расстоянии.

+ +
<hkern u1="A" u2="V" k="20" />
+
+ +

Ссылка на шрифт

+ +

После того как вы описали шрифт, как показано выше, вы можете просто применить атрибут font-family для использования шрифта в тексте SVG: 

+ +
<font>
+  <font-face font-family="Super Sans" />
+  <!-- and so on -->
+</font>
+
+<text font-family="Super Sans">My text uses Super Sans</text>
+
+ +

Тем не менее, вы можете объединить несколько методов для того чтобы определить как и где использовать шрифт.

+ +

Опция: использование CSS @font-face

+ +

Вы можете использовать свойство @font-face для ссылки на внешние шрифты:

+ +
<font id="Super_Sans">
+  <!-- and so on -->
+</font>
+
+<style type="text/css">
+@font-face {
+  font-family: "Super Sans";
+  src: url(#Super_Sans);
+}
+</style>
+
+<text font-family="Super Sans">My text uses Super Sans</text>
+ +

Опция: ссылка на внешний шрифт

+ +

Элемент font-face-uri позволяет ссылаться на внешний шрифт, следовательно, его можно использовать в нескольких местах:

+ +
<font>
+  <font-face font-family="Super Sans">
+    <font-face-src>
+      <font-face-uri xlink:href="fonts.svg#Super_Sans" />
+    </font-face-src>
+  </font-face>
+</font>
+
+ +

{{ PreviousNext("Web/SVG/Tutorial/Filter_effects", "Web/SVG/Tutorial/SVG_Image_Tag") }}

diff --git a/files/ru/web/svg/tutorial/svg_image_tag/index.html b/files/ru/web/svg/tutorial/svg_image_tag/index.html new file mode 100644 index 0000000000..1791c5b8fb --- /dev/null +++ b/files/ru/web/svg/tutorial/svg_image_tag/index.html @@ -0,0 +1,34 @@ +--- +title: SVG image element +slug: Web/SVG/Tutorial/SVG_Image_Tag +translation_of: Web/SVG/Tutorial/SVG_Image_Tag +--- +

{{ PreviousNext("Web/SVG/Tutorial/SVG_Fonts", "Web/SVG/Tutorial/Tools_for_SVG") }}

+ +

SVG тег {{ SVGElement("image") }} позволяет выводить растровые изображения внутри SVG-объектов.

+ +

В примере ниже растровое изображение a.jpg, заданное при помощи атрибута {{ SVGAttr("href") }}, отображено внутри SVG-объекта:

+ +
<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="5cm" height="4cm" version="1.1"
+     xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink">
+	<image xlink:href="firefox.jpg" x="0" y="0" height="50px" width="50px"/>
+</svg>
+ +
+

Важные замечания (подробнее W3 specs):

+
+ + + +

{{ PreviousNext("Web/SVG/Tutorial/SVG_Fonts", "Web/SVG/Tutorial/Tools_for_SVG") }}

diff --git a/files/ru/web/svg/tutorial/svg_in_html_introduction/index.html b/files/ru/web/svg/tutorial/svg_in_html_introduction/index.html new file mode 100644 index 0000000000..fc3ab83319 --- /dev/null +++ b/files/ru/web/svg/tutorial/svg_in_html_introduction/index.html @@ -0,0 +1,115 @@ +--- +title: SVG в HTML. Введение +slug: Web/SVG/Tutorial/SVG_In_HTML_Introduction +translation_of: Web/SVG/Tutorial/SVG_In_HTML_Introduction +--- +

Описание

+ +

Эта статья содержит пример использования SVG в качестве фонового изображения для формы. В примере демонстрируется, как JavaScript и CSS может быть использован для того, чтобы производить операции с векторным изображением (svg) так, будто вы используете обычный сценарий для XHTML. Необходимо понимать, что пример работоспособен лишь в браузерах, которые поддерживают XHTML (не HTML), а также интеграцию SVG.

+ +

Код

+ +

Демонстрация примера здесь:

+ +
<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>XTech SVG Demo</title>
+<style>
+  stop.begin { stop-color:yellow; }
+  stop.end { stop-color:green; }
+  body.invalid stop.end { stop-color:red; }
+  #err { display:none; }
+  body.invalid #err { display:inline; }
+</style>
+<script>
+  function signalError() {
+    document.getElementById('body').setAttribute("class", "invalid");
+  }
+</script>
+</head>
+<body id="body"
+  style="position:absolute; z-index:0; border:1px solid black; left:5%; top:5%; width:90%; height:90%;">
+<form>
+  <fieldset>
+    <legend>HTML Form</legend>
+    <p><label>Введите что-нибудь:</label>
+    <input type="text"/>
+    <span id="err">Incorrect value!</span></p>
+    <p><input type="button" value="Activate!" onclick="signalError();" /></p>
+  </fieldset>
+</form>
+
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
+  viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"
+  style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:-1;">
+  <linearGradient id="gradient">
+    <stop class="begin" offset="0%"/>
+    <stop class="end" offset="100%"/>
+  </linearGradient>
+  <rect x="0" y="0" width="100" height="100" style="fill:url(#gradient)" />
+  <circle cx="50" cy="50" r="30" style="fill:url(#gradient)" />
+</svg>
+</body>
+</html>
+
+ +

Примечание

+ +

В примере представлен обычный XHTML, CSS и JavaScript код. Здесь есть лишь одна особенность, это наличие SVG элемента. Этот элемент объявлен в специальном пространстве имен SVG, содержит градиент и две фигуры заполненные градиентом. По замыслу, когда пользователь введет что-нибудь неправильное, то скрипт установит для BODY класс .invalid, где правила стиля изменяют цвет градиента и делают видимым сообщение об ошибке.

+ +

Такой способ имеет следующие пункты в свою пользу:

+ + + +
+

Чтобы к изображению с DOM добавить связь встроенного SVG, необходимо использовать setAttributeNS, установив href как показано в следующем примере:

+ +
 var img = document.createElementNS("http://www.w3.org/2000/svg", "image");
+
+img.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", "move.png");
+
+
+
+
+ +

Дополнительно

+ +

Значение атрибута  viewBox определяет область в пространстве пользователя, относительно внешним границам просмотра.

+ +

viewBox="x y w h" - где: x- левый верхний угол по оси x, y- левый верхний угол по оси y, w- ширина в пользовательской единице измерения, h- высота (соответственно). В данном примере использовалось значение:

+ +
viewBox="0 0 100 100" 
+ +

Размер изображения svg (заданный атрибутами width и height), может отличаться от области просмотра. Для регулирования отрисовки такого изображения используется атрибут preserveAspectRatio. С его помощью могут быть заданы правила выравнивания и поведения при переполнении (overflow)  области просмотра, края svg могут быть обрезаны или вписаны.

+ +
 preserveAspectRatio="alignment [meet | slice]"
+ +

alignment - одно из значений  xMinYMin, xMinYMid, xMinYMax, xMidYMin, xMidYMid, xMidYMax, xMaxYMin, xMaxYMid или xMaxYMax.

+ +

meet - сохраняет пропорции, умещая svg в область просмотра

+ +

slice - тоже cохраняет пропорции, но масштабирует по максимальной границе области просмотра, обрезая часть изображения, которая не поместиласть в область

+ +

Также есть спецификатор none который означает, что изображение заполнит область путем масштабирования сторон, не сохраняя пропорции (растянет).

+ +
 preserveAspectRatio="none"
+ +

Атрибут style применяется для определения стиля элемента.

+ + + + + +

 

diff --git a/files/ru/web/svg/tutorial/texts/index.html b/files/ru/web/svg/tutorial/texts/index.html new file mode 100644 index 0000000000..29170aae1e --- /dev/null +++ b/files/ru/web/svg/tutorial/texts/index.html @@ -0,0 +1,74 @@ +--- +title: Текст +slug: Web/SVG/Tutorial/Texts +translation_of: Web/SVG/Tutorial/Texts +--- +
{{PreviousNext("Web/SVG/Tutorial/Patterns", "Web/SVG/Tutorial/Basic_Transformations")}}
+ +

 

+ +

Говоря о тексте в SVG мы должны различать две отдельные темы. Первая это добавление и отображение текста в изображении, а вторая - SVG шрифты. Последняя будет описана в следующем разделе этого туториала, а пока мы полностью сфокусируемся на первой части: добавление текста в SVG изображение.

+ +

Основы

+ +

В getting started мы уже видели, что элемент text может использоваться для размещения произвольного текста в SVG документах:

+ +
<text x="10" y="10">Hello World!</text>
+
+ +

Атрибуты x и y задают расположение текста на экране. Атрибут text-anchor, который может иметь значение start, middle, end или inherit, определяет в каком направлении выравнивать текст относительно заданной точки. 
+
+ Как и для фигур, тексту можно задать цвет с помощью атрибута fill и обводку, используя атрибут stroke. Оба могут быть использованы с gradient и pattern элементами, что делает простое изменение цвета текста в SVG очень мощным по сравнению с CSS 2.1.

+ +

Настройка свойств шрифта

+ +

Шрифт, в котором отображается текст очень важен. SVG предлагает набор атрибутов (многие из которых похожи на их CSS аналоги), позволяющий настроить шрифт.  Каждое из следующих свойств может быть установлено как атрибут или с помощью CSS декларации: font-family, font-style, font-weight, font-variant, font-stretch, font-size, font-size-adjust, kerning, letter-spacing, word-spacing и text-decoration.

+ +

Другие текстовые элементы

+ +

tspan

+ +

Этот элемент используется для выделения частей длинного текста. Он должен быть вложенным в text элемент или в другой tspan элемент. Примером является выделение одного слова в предложении красным цветом. 

+ +
<text>
+  <tspan font-weight="bold" fill="red">This is bold and red</tspan>
+</text>
+
+ +

Элемент tspan имеет следующие атрибуты:
+
+ x
+ Задает новую координату по Х (аналогично абсолютному позиционированию в CSS) для вложенного текста. Что перезаписывает, установленную по-умолчанию позицию. Атрибут может также содержать набор чисел, которые поочередно применяются к каждому символу tspan.

+ +

dx
+ Задает смещение по горизонтали dx относительно текущей позиции. Здесь вы также можете задавать набор значений, которые последовательно применяются к каждому символу, устанавливая смещение относительно предыдущего.

+ +

Аналогично, для вертикального перемещения текста имеются y и dy атрибуты.
+
+ rotate
+ Поворачивает символ на заданный угол. Атрибуту можно задавать набор чисел, которые поочередно применяются к символам. Если количество чисел в наборе меньше чем количество букв, то угол для всех оставшихся символов будет равен последнему значению в наборе.
+
+ textLength
+ Атрибут строго задает длину строки. Он предназначен для того, чтобы механизм рендеринга мог точно настраивать позиции глифов, когда измеренная длина текста не соответствует той, что указана в атрибуте.

+ +

tref

+ +

Элемент tref позволяет ссылаться на уже существующий текст, эффективно копируя его на свое место. Вы можете использовать атрибут xlink:href чтобы указать на  элемент, текст которого должен быть скопирован. Затем вы можете изменить его стили и внешний вид независимо от источника. 

+ +
<text id="example">This is an example text.</text>
+
+<text>
+    <tref xlink:href="#example" />
+</text>
+
+ +

textPath

+ +

Этот атрибут извлекает path, используя свой атрибут xlink:href и выравнивает вложенный текст по этому пути.

+ +
<path id="my_path" d="M 20,20 C 40,40 80,40 100,20" fill="transparent" />
+<text>
+  <textPath xlink:href="#my_path">This text follows a curve.</textPath>
+</text>
+ +
{{PreviousNext("Web/SVG/Tutorial/Patterns", "Web/SVG/Tutorial/Basic_Transformations")}}
diff --git a/files/ru/web/svg/tutorial/tools_for_svg/index.html b/files/ru/web/svg/tutorial/tools_for_svg/index.html new file mode 100644 index 0000000000..97a63678a3 --- /dev/null +++ b/files/ru/web/svg/tutorial/tools_for_svg/index.html @@ -0,0 +1,72 @@ +--- +title: Tools for SVG +slug: Web/SVG/Tutorial/Tools_for_SVG +translation_of: Web/SVG/Tutorial/Tools_for_SVG +--- +

{{ PreviousNext("Web/SVG/Tutorial/SVG_Image_Tag") }}

+ +

Теперь, когда мы рассмотрели основы SVG, мы рассмотрим некоторые инструменты для работы с SVG файлами.

+ +

Browser support

+ +

As of Internet Explorer 9, all major browsers support SVG: IE 9, Mozilla Firefox, Safari, Google Chrome and Opera. Mobile devices with Webkit-based browsers also support SVG. On older or smaller devices, chances are that SVG Tiny is supported.

+ +

Inkscape

+ +

URL: www.inkscape.org

+ +

Очень важно иметь в инструментарии приличную графическую программу. Inkscape предлагает современную векторную графику с открытым исходным кодом.

+ +

Кроме того, SVG является ее родным форматом. Для хранения специфичных для Inkscape данных, файл SVG расширяется элементами и атрибутами в пользовательском пространстве имен, что не мешает выбрать экспорт и в виде простого SVG.

+ +

Adobe Illustrator

+ +

URL: www.adobe.com/products/illustrator/

+ +

Before Adobe acquired Macromedia, it was the most prominent promoter of SVG. From this time stems the good support of SVG in Illustrator. However, the resulting SVG often shows some quirks, that make it necessary to post-process it for general applicability.

+ +

Apache Batik

+ +

URL: xmlgraphics.apache.org/batik/

+ +

Batik is a set of open source tools under the roof of the Apache Software Foundation. The toolkit is written in Java and offers almost complete SVG 1.1 support, as well as some features that were originally planned for SVG 1.2.

+ +

Batik offers a viewer (Squiggle), a rasterizer for PNG output, an SVG pretty printer to format SVG files, and a TrueType-to-SVG-Font converter.

+ +

Together with Apache FOP Batik can transform SVG to PDF.

+ +

Other renderers

+ +

Several projects exist that can create a raster image from an SVG source. ImageMagick is one of the most famous command-line image processing tools. The Gnome library rsvg is used by the Wikipedia to raster their SVG graphics. Usage of headless browsers such as SlimerJS and PhantomJS are also popular for this purpose, as the image produced is closer to what the SVG will look like in the browser.

+ +

Raphael JS

+ +

URL: raphaeljs.com

+ +

This is a JavaScript library, that acts as an abstraction layer between browser implementations. Notably older versions of Internet Explorer are supported by generating VML, a vector markup language, that is one of two ancestors of SVG and exists since IE 5.5.

+ +

Snap.svg

+ +

URL: snapsvg.io

+ +

A newer JavaScript abstraction layer from the same author of Raphael JS. Snap.svg is designed for modern browsers and therefore supports the newest SVG features like masking, clipping, patterns, full gradients, groups. It does not support the older browsers that Raphael does.

+ +
 
+ +

Google Docs

+ +

URL: www.google.com/google-d-s/drawings/

+ +

Drawings from Google Docs can be exported as SVG.

+ +

Science

+ +

The well-known plotting tools xfig and gnuplot both support exporting as SVG. To render graphs on the web JSXGraph supports VML, SVG and canvas, automatically deciding which technology to use based on browser capabilities.

+ +

In GIS (Geographic Information System) applications SVG is often used as both storage and rendering format. See carto.net for details.

+ +

More tools!

+ +

The W3C offers a list of programs that support SVG.

+ +

{{ PreviousNext("Web/SVG/Tutorial/SVG_Image_Tag") }}

diff --git "a/files/ru/web/svg/tutorial/\320\261\320\260\320\267\320\276\320\262\321\213\320\265_\320\277\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/index.html" "b/files/ru/web/svg/tutorial/\320\261\320\260\320\267\320\276\320\262\321\213\320\265_\320\277\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/index.html" new file mode 100644 index 0000000000..6aa2b20b16 --- /dev/null +++ "b/files/ru/web/svg/tutorial/\320\261\320\260\320\267\320\276\320\262\321\213\320\265_\320\277\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/index.html" @@ -0,0 +1,98 @@ +--- +title: Базовые трансформации +slug: Web/SVG/Tutorial/Базовые_Преобразования +translation_of: Web/SVG/Tutorial/Basic_Transformations +--- +
{{PreviousNext("Web/SVG/Tutorial/Texts", "Web/SVG/Tutorial/Clipping_and_masking")}}
+ +

Теперь мы готовы начать изменять наши замечательные изображения. Но сначала давайте ознакомимся с {{SVGElement("g")}} элементом. С его помощью вы можете  назначить свойства для любого набора элементов. На самом деле, в этом и состоит его единственная цель. Например:

+ +
+
<svg width="30" height="10">
+    <g fill="red">
+        <rect x="0" y="0" width="10" height="10" />
+        <rect x="20" y="0" width="10" height="10" />
+    </g>
+</svg>
+
+
+ +

{{ EmbedLiveSample('two_blocks', '30', '10', '', 'Web/SVG/Tutorial/Basic_Transformations') }}

+ +

Все последующие преобразования суммируются в атрибуте преобразования элемента transform . Преобразования могут быть последовательно суммированы, разделителем выступает пробел.

+ +

Перемещения

+ +

Иногда необходимо сместить элемент, хотя вы спозиционировали его согласно определенным атрибутам. Для этого используется translate().

+ +
<svg width="40" height="50" style="background-color:#bff;">
+    <rect x="0" y="0" width="10" height="10" transform="translate(30,40)" />
+</svg>
+
+ +

Пример генерирует прямоугольник, перемещенный в точку  (30,40) вместо точки (0,0).

+ +

{{ EmbedLiveSample('Translation', '40', '50', '', 'Web/SVG/Tutorial/Basic_Transformations') }}

+ +

если второе значение не задано, то оно приравнивается 0.

+ +

Вращение

+ +

Вращение элементов - это достаточно типичная задача. Используйте  rotate() для этого:

+ +
<svg width="31" height="31">
+    <rect x="12" y="-10" width="20" height="20" transform="rotate(45)" />
+</svg>
+
+ +

Данный пример показывает квадрат который повернули на 45 градусов. Значение для rotate() задается в градусах.

+ +

{{ EmbedLiveSample('Rotation', '31', '31', '', 'Web/SVG/Tutorial/Basic_Transformations') }}

+ +

Смещение углов

+ +

Чтобы сделать ромб из нашего прямоугольника, доступны преобразования skewX () и skewY (). Каждый из них принимает угол, определяющий, насколько элемент будет искажен.

+ +

Масштабирование

+ +

scale() изменяем размер элемента. Он использует 2 параметра. Первый - это коэффициент масшабирования по оси Х, а второй - по оси Y.  Коэффициенты выражают сжатие по отношению к оригинальному изображению. Например, 0.5 уменьшает на 50%. Если второй параметр отсутствует, то тогда он принимается равным первому.

+ +

Комплексные перемещения с matrix()

+ +

Все приведенные выше преобразования могут быть описаны с помощью матрицы перемещений 2x3. Чтобы объединить несколько перемещений, можно установить результирующую матрицу с помощью matrix(a, b, c, d, e, f), которая преобразует координаты из предыдущей системы координат в новую систему координат посредством:

+ +

{xnewCoordSys=axprevCoordSys+cyprevCoordSys+eynewCoordSys=bxprevCoordSys+dyprevCoordSys+f\left\{ \begin{matrix} x_{\mathrm{prevCoordSys}} = a x_{\mathrm{newCoordSys}} + c y_{\mathrm{newCoordSys}} + e \\ y_{\mathrm{prevCoordSys}} = b x_{\mathrm{newCoordSys}} + d y_{\mathrm{newCoordSys}} + f \end{matrix} \right.

+ +

См. конкретный пример документации SVG. Подробную информацию об этом свойстве можно найти в SVG Рекомендациях.

+ +

Эффекты на системе координат

+ +

В случае использования преобразований вы устанавливаете новую систему координат внутри элемента, к которому применяются изменения. Это означает, что единицы измерения которые вы определяете и его дочерние еи не будут соответствовать 1:1, но также будут искажены, повернуты, перемещены и смаштабированы в соотвествии с преобразованиями.

+ +
<svg width="100" height="100">
+    <g transform="scale(2)">
+        <rect width="50" height="50" />
+    </g>
+</svg>
+
+ +

В результата прямоугольник в примере выше будет 100x100px. Более интригующие эффекты возникают, когда вы используете такие атрибуты, как userSpaceOnUse.

+ +

{{ EmbedLiveSample('Effects_on_Coordinate_Systems', '100', '100', '', 'Web/SVG/Tutorial/Basic_Transformations') }}

+ +

Встраивание SVG в SVG

+ +

В отличие от HTML, SVG позволяет встравивать другие svg элементы без разрыва. Таким образом вы можете запросто создать новую координатную систему используя viewBox, width иheight внутреннего svg элемнта.

+ +
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100" height="100">
+  <svg width="100" height="100" viewBox="0 0 50 50">
+    <rect width="50" height="50" />
+  </svg>
+</svg>
+
+ +

На примере выше, так же как и на других примерах ранее, вы можете видеть такой же эффект увеличениея изображения в два раза.

+ +

{{ EmbedLiveSample('Embedding_SVG_in_SVG', '100', '100', '', 'Web/SVG/Tutorial/Basic_Transformations') }}

+ +
{{PreviousNext("Web/SVG/Tutorial/Texts", "Web/SVG/Tutorial/Clipping_and_masking")}}
diff --git "a/files/ru/web/svg/tutorial/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" "b/files/ru/web/svg/tutorial/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" new file mode 100644 index 0000000000..0ecb1c5f1c --- /dev/null +++ "b/files/ru/web/svg/tutorial/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" @@ -0,0 +1,44 @@ +--- +title: Введение +slug: Web/SVG/Tutorial/Введение +tags: + - SVG + - Руководство +translation_of: Web/SVG/Tutorial/Introduction +--- +

{{ PreviousNext("Web/SVG/Руководство", "Web/SVG/Руководство/Введение") }}

+ +

SVG это язык XML разметки, схожий с XHTML, который может использоваться для рисования векторной графики, такой как та, что показана справа. Он может быть использован для создания изображения путем указания всех необходимых линий и форм, путем модификации уже существующих растровых изображений, или путем комбинации обоих. Изображения и их компоненты также могут быть трансформированы, собраны вместе, или отфильтрованы чтобы полностью изменить их внешний вид.

+ +

В 1999 году, после конкурса нескольких форматов, SVG был включен в W3C, однако полностью ратифицирован не был. SVG поддерживается всеми наиболее популярными браузерами. Недостатком использования SVG является его медленная загрузка . При этом SVG дает некоторые преимущества, такие как наличие соответствующего DOM interface, и отсутствие необходимости в стороннем расширении. Использовать данное решение или нет, часто зависит от конкретного случая применения.

+ +

Базовые компоненты

+ +

В HTML имеются элементы для определения заголовков, параграфов, таблиц и т.п. В SVG, с другой стороны, имеются элементы для кругов, прямоугольников, и простых и сложных кривых. Простой SVG документ состоит из корневого элемента {{ SVGElement('svg') }} и нескольких основных форм, которые вместе обеспечивают построение рисунка.  Кроме того, есть элемент {{ SVGElement('g') }}, который используется для группировки нескольких основных форм вместе.

+ +

Начиная с этого, SVG изображение может стать сколь угодно сложным. SVG поддерживает градиенты, вращения, фильтры, анимации, взаимодействие с JavaScript, и т.п. Но все эти дополнительные возможности языка полагаются на этот относительно небольшой набор элементов, определяющих графическую область.

+ +

До начала работы

+ +

Существует ряд приложений для рисования, такие как Inkscape, который свободный и использует SVG в качестве родного файлового формата. Однако, это руководство полагается только на надежный XML или текстовый редактор (на ваш выбор). Идея в том, чтобы обучить основам SVG тех, кто хочет понять его, и это лучше всего сделать, самостоятельно поработав с разметкой. При этом вы должны знать свою конечную цель. Не все программы просмотра SVG одинаковы, и поэтому существует высокий шанс того, что написанное для одного приложения не будет отображаться таким же образом в другом, просто потому что они поддерживают разные уровни SVG детализации или другую детализацию, которую вы используете наряду с SVG (такую как, JavaScript или CSS).

+ +

SVG поддерживается всеми современными браузерами и даже, в некоторых случаях, паре их устаревших версий. Достаточно полную таблицу поддерживающих браузеров можно найти в Can I use. Firefox поддерживает некоторый контент SVG, начиная с версии 1.5, и этот уровень поддержки растет с каждым новым выпуском.  К счастью, наряду с этим руководством, MDN может помочь разработчикам не отставать от изменений между Gecko и некоторыми другими основными реализациями.

+ +

Перед тем как начать,  вы должны иметь основное понимание XML или другого языка разметки, такого как HTML. Если вы не очень знакомы с XML, ниже имеются некоторые рекомендации, которые следует иметь ввиду:

+ + + +

SVG имеет довольно большую спецификацию. Это руководство охватывает только основы. После ознакомления с ними, тебе следует использовать Справочник SVG элементов и SVG интерфейсы,  чтобы найти что-либо еще при необходимости.

+ +

Особенности SVG

+ +

Начиная с рекомендации 2003 года, самой свежей "полной" версией SVG является версия 1.1. Она построена на SVG 1.0, но содержит также больше модульности для упрощения реализации. Второй выпуск SVG 1.1 стал Рекомендацией в 2011 году. "Полная" версия SVG 1.2 стала следующим главным выпуском SVG. Ей пришла на смену развивающаяся SVG 2.0, которая сейчас усиленно разрабатывается и следует схожему с CSS 3 подходу, в котором она разделяет компоненты в несколько свободно связанных специфирований.

+ +

Кроме полных рекомендаций SVG, рабочая группа при W3C ввела SVG Tiny и SVG Basic в 2003 году. Эти две версии нацелены главным образом на мобильные устройства. Первый, SVG Tiny, должен выдавать графические примитивы для небольших устройств с низкими возможностями. SVG Basic имеет много общего с полным SVG, но не включает те компоненты, что трудны для реализации или являются тяжелыми для воспроизведения (как анимации). В 2008, SVG Tiny 1.2 стала Рекомендацией W3C.

+ +

Существовали планы для спецификации SVG Print, которая имела бы поддержку для множества страниц и улучшенное управление цветом. Эта работа была прекращена.

+ +

{{ PreviousNext("Web/SVG/Tutorial", "Web/SVG/Tutorial/Getting_Started") }}

diff --git "a/files/ru/web/svg/tutorial/\320\276\321\201\320\275\320\276\320\262\320\275\321\213\320\265_\321\204\320\270\320\263\321\203\321\200\321\213/index.html" "b/files/ru/web/svg/tutorial/\320\276\321\201\320\275\320\276\320\262\320\275\321\213\320\265_\321\204\320\270\320\263\321\203\321\200\321\213/index.html" new file mode 100644 index 0000000000..e95fd31f68 --- /dev/null +++ "b/files/ru/web/svg/tutorial/\320\276\321\201\320\275\320\276\320\262\320\275\321\213\320\265_\321\204\320\270\320\263\321\203\321\200\321\213/index.html" @@ -0,0 +1,144 @@ +--- +title: Основные Фигуры +slug: Web/SVG/Tutorial/Основные_Фигуры +tags: + - SVG + - 'SVG:Руководство' +translation_of: Web/SVG/Tutorial/Basic_Shapes +--- +

{{ PreviousNext("Web/SVG/Tutorial/Positions", "Web/SVG/Tutorial/Paths") }}

+ +

Существует несколько основных фигур, используемых в большинстве рисунков SVG. Назначение этих фигур вполне очевидно из их имён. Мы привели здесь некоторые атрибуты, определяющие положение и размер, но спецификация элемента, вероятно, содержит более точное и полное описание, вместе с другими свойствами, не описанными здесь. Однако, так как они используются в большинстве документов SVG, важно иметь некоторое представление о них.

+ +

Основные формы

+ +

Чтобы вставить форму, нужно создать элемент в документе. Разные элементы соответствуют разным формам и требуют разные атрибуты для описания размера и положения этих форм. Некоторые немного громоздки, поскольку могут быть созданы другими формами, но для удобства они все здесь приведены и способствуют сохранению документов SVG настолько короткими и читаемыми, насколько это возможно. Все основные формы показаны на изображении справа. Код для генерации выглядит как-то так:

+ +

+ +
<?xml version="1.0" standalone="no"?>
+<svg width="200" height="250" version="1.1" xmlns="http://www.w3.org/2000/svg">
+
+  <rect x="10" y="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5"/>
+  <rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5"/>
+
+  <circle cx="25" cy="75" r="20" stroke="red" fill="transparent" stroke-width="5"/>
+  <ellipse cx="75" cy="75" rx="20" ry="5" stroke="red" fill="transparent" stroke-width="5"/>
+
+  <line x1="10" x2="50" y1="110" y2="150" stroke="orange" fill="transparent" stroke-width="5"/>
+  <polyline points="60 110 65 120 70 115 75 130 80 125 85 140 90 135 95 150 100 145"
+      stroke="orange" fill="transparent" stroke-width="5"/>
+
+  <polygon points="50 160 55 180 70 180 60 190 65 205 50 195 35 205 40 190 30 180 45 180"
+      stroke="green" fill="transparent" stroke-width="5"/>
+
+  <path d="M20,230 Q40,205 50,230 T90,230" fill="none" stroke="blue" stroke-width="5"/>
+</svg>
+ +
Замечание: Атрибуты stroke, stroke-width и fill описываются в рукодстве далее.
+ +

Прямоугольники

+ +

Элемент rect делает как раз то, что вы и ожидаете, то есть рисует прямоугольник на экране. Существуют только 6 основных атрибутов, которые контролируют положение и форму прямоугольника на экране. Ранее показанное изображение отображает два элемента rect, которые выглядят немного лишними. Один справа имеет набор атрибутов rx и ry, которые отвечают за округлые углы. Если этого набора нет, то по умолчанию они принимаются равными 0.

+ +
<rect x="10" y="10" width="30" height="30"/>
+<rect x="60" y="10" rx="10" ry="10" width="30" height="30"/>
+ +
+
x
+
Положение x верхнего левого угла прямоугольника.
+
y
+
Положение y верхнего левого угла прямоугольника.
+
width
+
Ширина прямоугольника
+
height
+
Высота прямоугольника
+
rx
+
Радиус x углов прямоугольника
+
ry
+
Радиус y углов прямоугольника
+
+ +

Окружность

+ +

Как вы могли предположить, элемент circle рисует окружность на экране. Существует 3 атрибута для описания этого элемента.

+ +
<circle cx="25" cy="75" r="20"/>
+ +
+
r
+
Радиус окружности.
+
cx
+
Положение x центра окружности.
+
cy
+
Положение y центра окружности.
+
+ +

Эллипс

+ +

Ellipse - это наиболее общая форма элемента окружность, в котором можно маштабировать радиусы x и y (обычно называемые математиками половиной большой оси и половиной малой оси) окружности по отдельности.

+ +
<ellipse cx="75" cy="75" rx="20" ry="5"/>
+ +
+
rx
+
Радиус x эллипса.
+
ry
+
Радиус y эллипса.
+
cx
+
Положение x центра эллипса.
+
cy
+
Положение y центра эллипса.
+
+ +

Линия

+ +

Line изображает простую прямую линию. Её атрибутами являются две точки, которые определяют начальную и конечне точки линии.

+ +
<line x1="10" x2="50" y1="110" y2="150"/>
+ +
+
x1
+
Положение x точки 1.
+
y1
+
Положение y точки 1.
+
x2
+
Положение x точки 2.
+
y2
+
Положение y точки 2.
+
+ +

Ломаная линия

+ +

Элемент polyline воспроизводит группу соединенных прямых линий. Поскольку этот список может быть довольно длинным, все точки включены в один атрибут:

+ +
<polyline points="60 110, 65 120, 70 115, 75 130, 80 125, 85 140, 90 135, 95 150, 100 145"/>
+ +
+
точки
+
Список точек, каждая разделённая пробелом, запятой,  EOL, или символом перевода строки. Каждая точка должна содержать два числа, координату x и координату y. Поэтому список (0,0), (1,1) и (2,2) может быть записан: "0 0, 1 1, 2 2".
+
+ +

Многоугольник

+ +

Элемент polygon очень похож на элемент polyline в том, что они образованы сегментами прямых линий, соединяющими список точек. Но для многоугольников путь автоматически возвращается к первой точке в конце, создавая тем самым замкнутую форму. Следует отметить, что прямоугольник является частным случаем многоугольника, поэтому polygon можно использовать для создания элемента <rect/> в случаях, когда необходимо большая гибкость.

+ +
<polygon points="50 160, 55 180, 70 180, 60 190, 65 205, 50 195, 35 205, 40 190, 30 180, 45 180"/>
+ +
+
точки
+
Список точек, каждая разделённая пробелом, запятой,  EOL, или символом перевода строки. Каждая точка должна содержать два числа, координату x и координату y. Поэтому список (0,0), (1,1) и (2,2) может быть записан как: "0 0, 1 1, 2 2". Полигон замыкается финальной прямой линией от (2,2) до (0,0).
+
+ +

Путь

+ +

Path, вероятно, наиболее общая форма, которую можно использовать в SVG. Используя элемент path вы можете рисовать прямоугольники (с закругленными углами или без), окружности, эллипсы, ломанные линии и многоугольники; и по существу любые другие типы форм: кривые Безье, квадратические кривые и многое другое. По этой причине элемент path будет рассмотрен отдельно в следующей секции этого руководства, но сейчас отметим только, что существует единственный атрибут для контроля его формы.

+ +
<path d="M 20 230 Q 40 205, 50 230 T 90230"/>
+ +
+
d
+
Список точек и другой информации о том, как рисовать путь. Для подробной информации смотри секцию Пути.
+
+ +
{{ PreviousNext("Web/SVG/Tutorial/Positions", "Web/SVG/Tutorial/Paths") }}
diff --git "a/files/ru/web/svg/tutorial/\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" "b/files/ru/web/svg/tutorial/\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" new file mode 100644 index 0000000000..7a660c2d0f --- /dev/null +++ "b/files/ru/web/svg/tutorial/\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" @@ -0,0 +1,48 @@ +--- +title: Расположение (позиции) +slug: Web/SVG/Tutorial/Позиции +tags: + - SVG + - 'SVG:Руководство' +translation_of: Web/SVG/Tutorial/Positions +--- +

{{ PreviousNext("Web/SVG/Tutorial/Getting_Started", "Web/SVG/Tutorial/Basic_Shapes") }}

+ +

Сетка

+ +

SVG для всех элементов использует систему координат или сеточную систему, схожую с той, что используется canvas (и множеством других стандартных компьютерных программ для рисования). Здесь верхний левый угол документа принимается за точку (0,0). Затем позиции измеряются в пикселях от верхнего левого угла с положительным направлением x, уходящим вправо, и положительным направлением y, уходящим вниз. Заметьте, что это направление противоположно тому, к которому мы привыкли с детства. Однако, именно этим способом располагаются элементы HTML.

+ +

Пример:

+ +

Элемент

+ +
<rect x="0" y="0" width="100" height="100" />
+
+ +

определяет прямоугольник от верхнего левого угла, который простирается оттуда на 100px вправо и вниз.

+ +

Что такое "пиксели"?

+ +

В наиболее общем случае один пиксель в документе SVG отображает один пиксель в устройстве вывода (a.k.a. экран). Но SVG формат не назывался бы "Маcштабируемым" (от англ. scalable), если не было бы некоторых возможностей изменить такое поведение. Большинство как абсолютных, так и относительных размеров шрифтов в CSS, SVG определяет абсолютными единицами (с размерными обозначениями "pt" или "cm") и, так называемыми, пользовательскими единицами без идентификаторов, являющиеся простыми цифрами.

+ +

Без дополнительного уточнения, одна пользовательская единица равна одной единице экрана. Чтобы явно изменить такое поведение, в SVG существуют некоторые возможности. Мы начинаем с корневого элемента svg:

+ +
<svg width="100" height="100">
+
+ +

Вышеупомянутый элемент определяет простое полотно SVG размером 100x100px. Одна пользовательская единица равна одной единице экрана.

+ +
<svg width="200" height="200" viewBox="0 0 100 100">
+
+ +

Всё полотно SVG здесь имеет размер 200px на 200px. Однако, атрибут viewBox определяет часть этого полотна, которая будет отображаться. Эти 200x200 пикселей показывают область, которая начинается на пользовательской единице (0,0) и простирается на 100x100 пользовательских единиц вправо и вниз. Эффективное изменение масштаба в области 100x100 единиц увеличивает изображение до двойного размера.

+ +

Текущее отображение (для единичного элемента или всего изображения) пользовательских единиц в экранные единицы называется системой пользовательских координат. Помимо масштабирования, систему координат можно также вращать, смещать и переворачивать. Система пользовательских координат по умолчанию отображает один пользовательский пиксель на один пиксель устройства. (При этом, устройство может решать, что понимать под одним пикселем.) Длины в файле SVG с особенными расширениями, такими как "in" или "cm" затем вычисляются таким образом, чтобы выразить их как 1:1 в финальном изображении.

+ +

Цитата из SVG 1.1 специфирования иллюстрирует это:

+ +
+

[...] предположим, что агент пользователя может определить из его окружения, что "1px" соответствует "0.2822222мм" (т.е., 90dpi). Тогда для всего обрабатываемого контента SVG: [...] "1см" равен "35.43307px" (и следовательно 35,43307 пользовательских единиц)

+
+ +

{{ PreviousNext("Web/SVG/Tutorial/Getting_Started", "Web/SVG/Tutorial/Basic_Shapes") }}

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/a/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/a/index.html" new file mode 100644 index 0000000000..97c2daf793 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/a/index.html" @@ -0,0 +1,151 @@ +--- +title: a +slug: Web/SVG/Элемент/a +tags: + - SVG +translation_of: Web/SVG/Element/a +--- +
{{SVGRef}}
+ +

SVG элемент <a> создаёт гиперссылку на другие веб-страницы, файлы, позиции в этом же документе, email-адреса или другие URL. Очень похож на элемент HTML {{htmlelement("a")}}.

+ +

Элемент <a> является контейнером. Это означает, что вы можете обернуть текст в ссылку (как в HTML). Таким же образом можно обернуть фигуру.

+ +
+ + +
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+  <!-- Ссылка в фигуре -->
+  <a href="/docs/Web/SVG/Element/circle">
+    <circle cx="50" cy="40" r="35"/>
+  </a>
+
+  <!-- Ссылка в тексте -->
+  <a href="/docs/Web/SVG/Element/text">
+    <text x="50" y="90" text-anchor="middle">
+      &lt;circle&gt;
+    </text>
+  </a>
+</svg>
+ +
/* Так как SVG не предоставляет визуальных стилей по-умолчанию для ссылок,
+   будет лучше задать самостоятельно */
+
+@namespace svg url(http://www.w3.org/2000/svg);
+/* Необходимо выделить только SVG элементы <a>, но не HTML.
+   Смотрите предупреждение ниже */
+
+svg|a:link, svg|a:visited {
+  cursor: pointer;
+}
+
+svg|a text,
+text svg|a {
+  fill: blue; /* Даже для текста SVG использует заливку */
+  text-decoration: underline;
+}
+
+svg|a:hover, svg|a:active {
+  outline: dotted 1px blue;
+}
+ +

{{EmbedLiveSample('Exemple', 100, 100)}}

+ +
+

Поскольку этот элемент разделяет своё имя с элементом HTML <a>, выбор a через CSS или querySelector может выбрать не тот тип элемента. Попробуйте правило @namespace, чтобы разделять их.

+
+
+ +

Атрибуты

+ +
+
{{htmlattrxref("download", "a")}} {{experimental_inline}}
+
Указывает браузеру выполнить загрузку по {{Glossary("URL")}}, вместо того, чтобы переходить по нему. Таким образом пользователю будет предложено сохранить файл локально.
+ Тип<string> ;Значение по-умолчаниюnone;Анимируем: нет
+
{{SVGAttr("href")}}
+
{{Glossary("URL")}} или фрагмент URL для перехода.
+ Тип<URL> ; Значение по-умолчаниюnoneАнимируем: да
+
{{htmlattrxref("hreflang", "a")}}
+
URL на человеческом языке или фрагмент URL для перехода.
+ Тип<string>Значение по-умолчаниюnoneАнимируем: да
+
{{htmlattrxref("ping", "a")}} {{experimental_inline}}
+
Разделённый пробелами список URL при переходе по которым браузер будет отправлять POST запросы с телом PING (в фоне). Обычно используется для трекинга.
+ Тип<list-of-URLs>Значение по-умолчаниюnoneАнимируем: нет
+
{{htmlattrxref("referrerpolicy", "a")}} {{experimental_inline}}
+
Какой referrer отправить при получении {{Glossary("URL")}}.
+ Типno-referrer|no-referrer-when-downgrade|same-origin|origin|strict-origin|origin-when-cross-origin|strict-origin-when-cross-origin|unsafe-url ; Значение по-умолчаниюnoneАнимируемнет
+
{{htmlattrxref("rel", "a")}} {{experimental_inline}}
+
Отношение между целевым объектом и объектом link.
+ Тип<list-of-Link-Types> ; Значение по-умолчаниюnoneАнимируемда
+
{{SVGAttr("target")}}
+
Где отобразить переход {{Glossary("URL")}}.
+ Тип_self|_parent|_top|_blank|<name> ; Значение по-умолчанию_selfАнимируемда
+
{{htmlattrxref("type", "a")}}
+
{{Glossary("MIME type")}} для ссылки URL.
+ Тип<string> ; Значение по-умолчаниюnoneАнимируемда
+
{{SVGAttr("xlink:href")}} {{deprecated_inline("SVG2")}}
+
URL или фрагмент URL, на который указывает гиперссылка. Может понадобиться для обратной совместимости со старыми браузерами.
+ Тип<URL> ; Значение по-умолчаниюnoneАнимируемда
+
+ +

Глобальные аттрибуты

+ +
+
Core Attributes
+
Наиболее используемые: {{SVGAttr('id')}}, {{SVGAttr('lang')}}, {{SVGAttr('tabindex')}}
+
Styling Attributes
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Conditional Processing Attributes
+
Наиболее используемые: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Event Attributes
+
Global event attributesDocument element event attributesGraphical event attributes
+
Presentation Attributes
+
Наиболее используемые: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
XLink Attributes
+
Наиболее используемые: {{SVGAttr("xlink:title")}}
+
ARIA Attributes
+
aria-activedescendantaria-atomicaria-autocompletearia-busyaria-checkedaria-colcountaria-colindexaria-colspanaria-controlsaria-currentaria-describedbyaria-detailsaria-disabledaria-dropeffectaria-errormessagearia-expandedaria-flowtoaria-grabbedaria-haspopuparia-hiddenaria-invalidaria-keyshortcutsaria-labelaria-labelledbyaria-levelaria-livearia-modalaria-multilinearia-multiselectablearia-orientationaria-ownsaria-placeholderaria-posinsetaria-pressedaria-readonlyaria-relevantaria-requiredaria-roledescriptionaria-rowcountaria-rowindexaria-rowspanaria-selectedaria-setsizearia-sortaria-valuemaxaria-valueminaria-valuenowaria-valuetextrole
+
+ +

Интерфейс DOM

+ +

Этот элемент реализует интерфейс SVGAElement.

+ +

Примечания к использованию

+ +

{{svginfo}}

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG2", "linking.html#Links", "<a>")}}{{Spec2("SVG2")}}Аттрибут {{SVGAttr("xlink:href")}} заменён на {{SVGAttr("href")}}
{{SpecName("SVG1.1", "linking.html#Links", "<a>")}}{{Spec2("SVG1.1")}}Изначальное определение
+ +

Совместимость с браузерами

+ + + +

{{Compat("svg.elements.a")}}

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animate/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animate/index.html" new file mode 100644 index 0000000000..90988b58f8 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animate/index.html" @@ -0,0 +1,81 @@ +--- +title: +slug: Web/SVG/Элемент/animate +tags: + - NeedsUpdate + - SVG + - SVG Animation + - svg анимация +translation_of: Web/SVG/Element/animate +--- +
{{SVGRef}}
+ +

 Тег <animate> может быть помещен внутри какой-то фигуры, например,  <circle> . Он задает анимацию атрибута фигуры. Указанный атрибут будет изменяться со стартового значения и до конечного значения с определенным интервалом.

+ +

Использование

+ +

{{svginfo}}

+ +

Пример

+ +

» animate.svg

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Атрибуты элемента

+ + + +

DOM интерфейс

+ +

Элемент реализует SVGAnimateElement интерфейс .

+ +

Спецификации

+ + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('SVG1.1', 'animate.html#AnimateElement', '<animate>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Поддерживаемые браузеры

+ + + +

{{Compat("svg.elements.animate")}}

+ +

 

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animatemotion/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animatemotion/index.html" new file mode 100644 index 0000000000..3b1259dcb3 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/animatemotion/index.html" @@ -0,0 +1,112 @@ +--- +title: +slug: Web/SVG/Элемент/animateMotion +tags: + - SVG + - svg анимация + - Элемент +translation_of: Web/SVG/Element/animateMotion +--- +
{{SVGRef}}
+ +

Элемент <animateMotion> вызывает перемещение ссылочного элемента вдоль пути движения.

+ +

Контекст использования

+ +

{{svginfo}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Собственные атрибуты

+ +
    +
  • {{SVGAttr("calcMode")}}
  • +
  • {{SVGAttr("path")}}
  • +
  • {{SVGAttr("keyPoints")}}
  • +
  • {{SVGAttr("rotate")}}
  • +
  • {{SVGAttr("origin")}}
  • +
+ +

DOM интерфейс

+ +

Этот элемент реализует интерфейс {{domxref("SVGAnimateMotionElement")}}.

+ +

Пример

+ +

SVG

+ +
<?xml version="1.0"?>
+<svg width="120" height="120" viewBox="0 0 120 120"
+    xmlns="http://www.w3.org/2000/svg" version="1.1"
+    xmlns:xlink="http://www.w3.org/1999/xlink">
+
+  <!-- Рисуем серый контур движения с двумя
+       маленькими кружками в ключевых точках -->
+  <path id="theMotionPath" stroke="lightgrey" stroke-width="2" fill="none"
+        d="M10,110 A120,120 -45 0,1 110 10 A120,120 -45 0,1 10,110" />
+  <circle cx="10" cy="110" r="3" fill="lightgrey"  />
+  <circle cx="110" cy="10" r="3" fill="lightgrey"  />
+
+  <!-- Рисуем красный круг, который будет перемещаться
+       вдоль траектории движения. -->
+  <circle cx="" cy="" r="5" fill="red">
+
+  <!-- Определяем анимацию пути движения -->
+    <animateMotion dur="6s" repeatCount="indefinite">
+      <mpath xlink:href="#theMotionPath"/>
+    </animateMotion>
+  </circle>
+</svg>
+ +

Результат

+ +

{{EmbedLiveSample("Пример", 120, 120)}}

+ +

Характеристики

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG Animations 2", "#AnimateMotionElement", "<animateMotion>")}}{{Spec2("SVG Animations 2")}}Без изменений
{{SpecName('SVG1.1', 'animate.html#AnimateMotionElement', '<animateMotion>')}}{{Spec2('SVG1.1')}}Начальное определение
+ +

Совместимость с браузерами

+ + + +

{{Compat("svg.elements.animateMotion")}}

+ +

Смотрите также

+ +
    +
  • {{SVGElement("mpath")}}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/circle/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/circle/index.html" new file mode 100644 index 0000000000..3f1907b3bf --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/circle/index.html" @@ -0,0 +1,109 @@ +--- +title: +slug: Web/SVG/Элемент/circle +tags: + - NeedsUpdate + - SVG +translation_of: Web/SVG/Element/circle +--- +
{{SVGRef}}
+ +

Элемент circle — базовая SVG фигура, используется для создания кругов c помощью координат центра и размера радиуса.

+ +

Информация

+ +

{{svginfo}}

+ +

Пример

+ + + +
<?xml version="1.0"?>
+<svg viewBox="0 0 120 120" version="1.1"
+  xmlns="http://www.w3.org/2000/svg">
+  <circle cx="60" cy="60" r="50"/>
+</svg>
+ + + +

» circle.svg

+ +

Атрибуты

+ +

Унаследованные

+ + + +

Особые

+ +
    +
  • {{ SVGAttr("cx") }}
  • +
+ +

Координата центра окружности по оси x.

+ +
    +
  • {{ SVGAttr("cy") }}
  • +
+ +

Координата центра окружности по оси y.

+ +
    +
  • {{ SVGAttr("r") }}
  • +
+ +

Радиус окружности.

+ +

Интерфейс DOM

+ +

Этот элемент реализует интерфейс {{ domxref("SVGCircleElement") }}.

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСостояниеКомментарий
{{SpecName('SVG2', 'shapes.html#CircleElement', '<circle>')}}{{Spec2('SVG2')}}
{{SpecName('SVG1.1', 'shapes.html#CircleElement', '<circle>')}}{{Spec2('SVG1.1')}}Исходное определение
+ +

Поддержка браузерами

+ + + +

{{Compat("svg.elements.circle")}}

+ + + +

Смотри также

+ + diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/defs/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/defs/index.html" new file mode 100644 index 0000000000..0312b05e34 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/defs/index.html" @@ -0,0 +1,101 @@ +--- +title: +slug: Web/SVG/Элемент/defs +tags: + - NeedsUpdate + - SVG + - Контейнер SVG + - Элемент +translation_of: Web/SVG/Element/defs +--- +
{{SVGRef}}
+ +

SVG позволяет задавать графические объекты для последующего использования. Рекомендуется там, где это возможно, объявлять подобные элементы внутри элемента <defs>. Объекты, созданные внутри элемента <defs> не отображаются немедленно; рассматривайте их, как шаблоны или макросы, созданные для будущего использования.

+ +

Создание подобных элементов внутри элемента <defs> способствует лучшему пониманию содержимого SVG и поэтому способствует также доступности. Вы можете использовать элемент {{SVGElement("use")}}, чтобы отрисовать данные элементы в любом месте области просмотра.

+ +

<defs> также можно использовать для создания градиентов; в качестве иллюстрации можно посмотреть пример для атрибута {{SVGAttr("x1")}}.

+ +

Контекст использования

+ +

{{svginfo}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специфичные атрибуты

+ +

Нет

+ +

Интерфейс DOM 

+ +

Элемент реализует интерфейс {{domxref("SVGDefsElement")}}.

+ +

Пример

+ +
<svg width="80px" height="30px" viewBox="0 0 80 30"
+     xmlns="http://www.w3.org/2000/svg">
+
+  <defs>
+    <linearGradient id="Gradient01">
+      <stop offset="20%" stop-color="#39F" />
+      <stop offset="90%" stop-color="#F3F" />
+    </linearGradient>
+  </defs>
+
+  <rect x="10" y="10" width="60" height="10"
+        fill="url(#Gradient01)" />
+</svg>
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("SVG2", "struct.html#Head", "<defs>")}}{{Spec2("SVG2")}}Без изменений
{{SpecName("SVG1.1", "struct.html#Head", "<defs>")}}{{Spec2("SVG1.1")}}Первоначальное определение
+ +

Браузерная совместимость

+ + + +

{{Compat("svg.elements.defs")}}

+ +

 

+ +

Связанные темы

+ +
    +
  • {{SVGElement("use")}}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/ellipse/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/ellipse/index.html" new file mode 100644 index 0000000000..f04083c1e1 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/ellipse/index.html" @@ -0,0 +1,129 @@ +--- +title: +slug: Web/SVG/Элемент/ellipse +tags: + - NeedsUpdate +translation_of: Web/SVG/Element/ellipse +--- +
{{SVGRef}}
+ +

Элемент ellipse — базовая SVG фигура, используемая для создания эллипсов с помощью координат центра и обоих радиусов.

+ +
+

Сам по себе элемент ellipse не позволяет задать точное его расположение (например, нельзя сразу отобразить эллипс, повёрнутый на 45°), однако его можно повернуть с помощью атрибута {{SVGAttr("transform")}}.

+
+ + + + + +
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
+  <ellipse cx="100" cy="50" rx="100" ry="50" />
+</svg>
+ +

{{EmbedLiveSample('Exemple', 100, '100%')}}

+ + + +

Атрибуты

+ + + +
+
{{SVGAttr("cx")}}
+
Позиция эллипса по x.
+ Тип значения<length>|<percentage> ; Значение по умолчанию0Можно анимироватьда
+
{{SVGAttr("cy")}}
+
Позиция эллипса по y.
+ Тип значения<length>|<percentage> ; Значение по умолчанию0Можно анимироватьда
+
{{SVGAttr("rx")}}
+
Радиус эллипса по x.
+ Тип значенияauto|<length>|<percentage> ;Значение по умолчаниюautoМожно анимироватьда
+
{{SVGAttr("ry")}}
+
Радиус эллипса по y.
+ Тип значенияauto|<length>|<percentage> ; Значение по умолчаниюautoМожно анимироватьда
+
{{SVGAttr("pathLength")}}
+
Этот атрибут позволяет установить длину всего пути.
+ Тип значения<number> ; Значение по умолчанинетМожно анимироватьда
+
+ + +
+

Обратите внимание: Начиная с SVG2, cxcyrx и ry это Геометрические свойства. Это означает, что они могут быть использованы как CSS свойства элемента.

+
+ +

Глобальные Атрибуты

+
+
Основные атрибуты
+
Самые важные: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Атрибуты стиля
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Условные атрибуты
+
Самые важные: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Аттрибуты событий
+
Глобальные атрибуты событийАтрибуты графических событий
+
Атрибуты представления
+
Самые важные: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
ARIA-Атрибуты
+
aria-activedescendantaria-atomicaria-autocompletearia-busyaria-checkedaria-colcountaria-colindexaria-colspanaria-controlsaria-currentaria-describedbyaria-detailsaria-disabledaria-dropeffectaria-errormessagearia-expandedaria-flowto,aria-grabbedaria-haspopuparia-hiddenaria-invalidaria-keyshortcutsaria-label,aria-labelledbyaria-levelaria-livearia-modalaria-multilinearia-multiselectable,aria-orientationaria-ownsaria-placeholderaria-posinsetaria-pressedaria-readonly,aria-relevantaria-requiredaria-roledescriptionaria-rowcountaria-rowindexaria-rowspanaria-selectedaria-setsizearia-sortaria-valuemaxaria-valueminaria-valuenowaria-valuetextrole
+
+ + + + + +

Информация

+ +

{{svginfo}}

+ + + +

Пример

+ +

» ellipse.svg

+ +

Интерфейс DOM

+ +

Этот элемент реализует интерфейс {{ domxref("SVGEllipseElement") }}.

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСостояниеКомментарий
{{SpecName('SVG2', 'shapes.html#EllipseElement', '<ellipse>')}}{{Spec2('SVG2')}}
{{SpecName('SVG1.1', 'shapes.html#EllipseElement', '<ellipse>')}}{{Spec2('SVG1.1')}}Исходное определение
+ +

Поддержка браузерами

+ + + +

{{Compat("svg.elements.ellipse")}}

+ + + +

Смотри также

+ +
    +
  • {{SVGElement("circle")}}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/feblend/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/feblend/index.html" new file mode 100644 index 0000000000..acd3547dcd --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/feblend/index.html" @@ -0,0 +1,115 @@ +--- +title: +slug: Web/SVG/Элемент/feBlend +tags: + - фильтры +translation_of: Web/SVG/Element/feBlend +--- +
{{SVGRef}}
+ +

SVG фильтр примитивна  <feBlend> объединяет два объекта, управляемых определенным режимом смешивания. Это похоже на работу программного обеспечения для редактирования изображений при смешивании двух слоев. Режим определяется атрибутом  {{SVGAttr("mode")}}.

+ +

Используемый контекст

+ +

{{svginfo}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специальные атрибуты

+ +
    +
  • {{SVGAttr("in")}}
  • +
  • {{SVGAttr("in2")}}
  • +
  • {{SVGAttr("mode")}}
  • +
+ +

DOM Interface

+ +

Этот элемент реализует интерфейс {{domxref("SVGFEBlendElement")}}.

+ +

Пример

+ +

SVG

+ +
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"
+    xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs>
+    <filter id="spotlight">
+      <feFlood result="floodFill" x="0" y="0" width="100%" height="100%"
+          flood-color="green" flood-opacity="1"/>
+      <feBlend in="SourceGraphic" in2="floodFill" mode="multiply"/>
+    </filter>
+  </defs>
+
+  <image xlink:href="//developer.mozilla.org/files/6457/mdn_logo_only_color.png"
+      x="10%" y="10%" width="80%" height="80%"
+      style="filter:url(#spotlight);"/>
+</svg>
+ +

Результат

+ +

{{EmbedLiveSample("Example", 200, 200)}}

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("Filters 1.0", "#feBlendElement", "<feBlend>")}}{{Spec2("Filters 1.0")}}Аутсорсинг режимов наложения на{{SpecName("Compositing", "#ltblendmodegt")}}
{{SpecName("SVG1.1", "filters.html#feBlendElement", "<feBlend>")}}{{Spec2("SVG1.1")}}Первое определение
+ +

Поддержка браузерами

+ + + +

{{Compat("svg.elements.feBlend")}}

+ +

Смотрите также

+ +
    +
  • {{SVGElement("filter")}}
  • +
  • {{SVGElement("animate")}}
  • +
  • {{SVGElement("set")}}
  • +
  • {{SVGElement("feColorMatrix")}}
  • +
  • {{SVGElement("feComponentTransfer")}}
  • +
  • {{SVGElement("feComposite")}}
  • +
  • {{SVGElement("feConvolveMatrix")}}
  • +
  • {{SVGElement("feDiffuseLighting")}}
  • +
  • {{SVGElement("feDisplacementMap")}}
  • +
  • {{SVGElement("feFlood")}}
  • +
  • {{SVGElement("feGaussianBlur")}}
  • +
  • {{SVGElement("feImage")}}
  • +
  • {{SVGElement("feMerge")}}
  • +
  • {{SVGElement("feMorphology")}}
  • +
  • {{SVGElement("feOffset")}}
  • +
  • {{SVGElement("feSpecularLighting")}}
  • +
  • {{SVGElement("feTile")}}
  • +
  • {{SVGElement("feTurbulence")}}
  • +
  • SVG tutorial: Filter effects
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/foreignobject/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/foreignobject/index.html" new file mode 100644 index 0000000000..64e32d019f --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/foreignobject/index.html" @@ -0,0 +1,119 @@ +--- +title: +slug: Web/SVG/Элемент/foreignObject +translation_of: Web/SVG/Element/foreignObject +--- +
{{SVGRef}}
+Элемент <foreignObject> SVG позволяет включать другое пространство имен XML.
+В контексте браузера это, скорее всего, XHTML / HTML.
+ +
+ + +
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
+  <style>
+    polygon { fill: black }
+
+    div {
+      color: white;
+      font:18px serif;
+      height: 100%;
+      overflow: auto;
+    }
+  </style>
+
+  <polygon points="5,5 195,10 185,185 10,195" />
+
+  <!-- Типичный пример использования: встраивание HTML-текста в SVG -->
+  <foreignObject x="20" y="20" width="160" height="160">
+  <!--
+В контексте SVG, внедренного в HTML, пространство имен XHTML может и следует избегать,
+но это обязательно в контексте документа SVG
+   -->
+    <div xmlns="http://www.w3.org/1999/xhtml">
+    - Смолчал хозяин, да и то, что мог сказать
+    - Мне невдомёк, но во владениях чертога
+    Поможет дом срубить да судьбы вам связать.
+    Не веришь ежли - испроси у Бога...
+    </div>
+  </foreignObject>
+</svg>
+ +

{{EmbedLiveSample('Exemple', 150, '100%')}}

+
+ +

Атрибуты

+ +
+
{{SVGAttr("height")}}
+
Этот атрибут определяет высоту прямоугольника.
+ Value type: <length>|<percentage> ; Default value: auto; Animatable: yes
+
{{SVGAttr("width")}}
+
Этот атрибут определяет ширину прямоугольника.
+ Value type: <length>|<percentage> ; Default value: auto; Animatable: yes
+
{{SVGAttr("x")}}
+
Этот атрибут определяет координату x контейнера svg.
+ Это не влияет на внешние элементы SVG.
+ Value type: <length>|<percentage> ; Default value: 0; Animatable: yes
+
{{SVGAttr("y")}}
+
Этот атрибут определяет координату Y контейнера SVG.
+ Это не влияет на внешние элементы SVG.
+ Value type: <length>|<percentage> ; Default value: 0; Animatable: yes
+
+ +
+

Note: Starting with SVG2 x, y, width, and height are Geometry Properties, meaning those attributes can also be used as CSS properties for that element.

+
+ +

Глобальные атрибуты

+ +
+
Core Attributes
+
Most notably: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Styling Attributes
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Conditional Processing Attributes
+
Most notably: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Event Attributes
+
Global event attributes, Graphical event attributes, Document event attributes, Document element event attributes
+
Presentation Attributes
+
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
Aria Attributes
+
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
+
+ +

Примечания по использованию

+ +

{{svginfo}}

+ +

Характеристики

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('SVG2', 'embedded.html#ForeignObjectElement', '<foreignObject>')}}{{Spec2('SVG2')}} 
{{SpecName('SVG1.1', 'extend.html#ForeignObjectElement', '<foreignObject>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Совместимость браузера

+ + + +

{{Compat("svg.elements.foreignObject")}}

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/g/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/g/index.html" new file mode 100644 index 0000000000..c425f3c5b8 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/g/index.html" @@ -0,0 +1,98 @@ +--- +title: +slug: Web/SVG/Элемент/g +tags: + - NeedsUpdate + - SVG +translation_of: Web/SVG/Element/g +--- +
{{SVGRef}}
+ +

Элемент g используется для группировки других SVG элементов. Любые преобразования применяемые к g элементу наследуются его дочерними элементами. Также g используется для группировки различных элементов, чтобы позднее можно было сослаться на них с помощью {{SVGElement("use")}}.

+ +

Контекст использования

+ +

{{svginfo}}

+ +

Пример

+ +
<svg viewBox="0 0 95 50"
+     xmlns="http://www.w3.org/2000/svg">
+   <g stroke="green" fill="white" stroke-width="5">
+     <circle cx="25" cy="25" r="15"/>
+     <circle cx="40" cy="25" r="15"/>
+     <circle cx="55" cy="25" r="15"/>
+     <circle cx="70" cy="25" r="15"/>
+   </g>
+</svg>
+
+ +

{{EmbedLiveSample("Example",220,130)}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специфичные атрибуты

+ +

Нет специфичных атрибутов.

+ +

Интерфейс DOM

+ +

Этот элемент реализует  SVGGElement интерейс.

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('SVG2', 'struct.html#GElement', '<g>')}}{{Spec2('SVG2')}}
{{SpecName('SVG1.1', 'struct.html#Groups', '<g>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Поддержка браузерами

+ + + +

{{Compat("svg.elements.g")}}

+ + + +

Смотрите также:

+ + + +
    +
  • {{SVGElement("use")}}
  • +
  • {{SVGElement("defs")}}
  • +
  • {{SVGElement("symbol")}}
  • +
  • SVG элемент g
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/image/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/image/index.html" new file mode 100644 index 0000000000..e417a4ac65 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/image/index.html" @@ -0,0 +1,94 @@ +--- +title: +slug: Web/SVG/Элемент/image +tags: + - NeedsUpdate + - SVG +translation_of: Web/SVG/Element/image +--- +
{{SVGRef}}
+ +

Элемент <image> позволяет включить растровые изображения в SVG документ.

+ +

Usage context

+ +

{{svginfo}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специфичные атрибуты

+ +
    +
  • {{SVGAttr("x")}}
  • +
  • {{SVGAttr("y")}}
  • +
  • {{SVGAttr("width")}}
  • +
  • {{SVGAttr("height")}}
  • +
  • {{SVGAttr("xlink:href")}}
  • +
  • {{SVGAttr("preserveAspectRatio")}}
  • +
+ +

DOM Interface

+ +

This element implements the SVGImageElement interface.

+ +

Пример

+ +

Базовый рендеринг PNG изображения в качестве объекта SVG:

+ +

SVG

+ +
<svg width="200" height="200"
+  xmlns="http://www.w3.org/2000/svg">
+  <image href="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" height="200" width="200"/>
+</svg>
+
+ +

Результат

+ +

{{EmbedLiveSample("Пример", 250, 260)}}

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('SVG2', 'embedded.html#ImageElement', '<image>')}}{{Spec2('SVG2')}}
{{SpecName('SVG1.1', 'struct.html#ImageElement', '<image>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Browser compatibility

+ + + +

{{Compat("svg.elements.image")}}

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/index.html" new file mode 100644 index 0000000000..b65942e344 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/index.html" @@ -0,0 +1,253 @@ +--- +title: Справочник SVG элементов +slug: Web/SVG/Элемент +tags: + - SVG + - SVG Reference + - Руководство +translation_of: Web/SVG/Element +--- +

« SVG / Справочник SVG атрибутов »

+ +

SVG элементы

+ +
A + +
    +
  • {{SVGElement("a")}}
  • +
  • {{SVGElement("altGlyph")}}
  • +
  • {{SVGElement("altGlyphDef")}}
  • +
  • {{SVGElement("altGlyphItem")}}
  • +
  • {{SVGElement("animate")}}
  • +
  • {{SVGElement("animateColor")}}
  • +
  • {{SVGElement("animateMotion")}}
  • +
  • {{SVGElement("animateTransform")}}
  • +
+B C + +
    +
  • {{SVGElement("circle")}}
  • +
  • {{SVGElement("clipPath")}}
  • +
  • {{SVGElement("color-profile")}}
  • +
  • {{SVGElement("cursor")}}
  • +
+D + +
    +
  • {{SVGElement("defs")}}
  • +
  • {{SVGElement("desc")}}
  • +
  • {{SVGElement("discard")}}
  • +
+E + +
    +
  • {{SVGElement("ellipse")}}
  • +
+F + +
    +
  • {{SVGElement("feBlend")}}
  • +
  • {{SVGElement("feColorMatrix")}}
  • +
  • {{SVGElement("feComponentTransfer")}}
  • +
  • {{SVGElement("feComposite")}}
  • +
  • {{SVGElement("feConvolveMatrix")}}
  • +
  • {{SVGElement("feDiffuseLighting")}}
  • +
  • {{SVGElement("feDisplacementMap")}}
  • +
  • {{SVGElement("feDistantLight")}}
  • +
  • {{SVGElement("feFlood")}}
  • +
  • {{SVGElement("feFuncA")}}
  • +
  • {{SVGElement("feFuncB")}}
  • +
  • {{SVGElement("feFuncG")}}
  • +
  • {{SVGElement("feFuncR")}}
  • +
  • {{SVGElement("feGaussianBlur")}}
  • +
  • {{SVGElement("feImage")}}
  • +
  • {{SVGElement("feMerge")}}
  • +
  • {{SVGElement("feMergeNode")}}
  • +
  • {{SVGElement("feMorphology")}}
  • +
  • {{SVGElement("feOffset")}}
  • +
  • {{SVGElement("fePointLight")}}
  • +
  • {{SVGElement("feSpecularLighting")}}
  • +
  • {{SVGElement("feSpotLight")}}
  • +
  • {{SVGElement("feTile")}}
  • +
  • {{SVGElement("feTurbulence")}}
  • +
  • {{SVGElement("filter")}}
  • +
  • {{SVGElement("font")}}
  • +
  • {{SVGElement("font-face")}}
  • +
  • {{SVGElement("font-face-format")}}
  • +
  • {{SVGElement("font-face-name")}}
  • +
  • {{SVGElement("font-face-src")}}
  • +
  • {{SVGElement("font-face-uri")}}
  • +
  • {{SVGElement("foreignObject")}}
  • +
+G + +
    +
  • {{SVGElement("g")}}
  • +
  • {{SVGElement("glyph")}}
  • +
  • {{SVGElement("glyphRef")}}
  • +
+H + +
    +
  • {{SVGElement("hatch")}}
  • +
  • {{SVGElement("hatchpath")}}
  • +
  • {{SVGElement("hkern")}}
  • +
+I + +
    +
  • {{SVGElement("image")}}
  • +
+J K L + +
    +
  • {{SVGElement("line")}}
  • +
  • {{SVGElement("linearGradient")}}
  • +
+M + +
    +
  • {{SVGElement("marker")}}
  • +
  • {{SVGElement("mask")}}
  • +
  • {{SVGElement("mesh")}}
  • +
  • {{SVGElement("meshgradient")}}
  • +
  • {{SVGElement("meshpatch")}}
  • +
  • {{SVGElement("meshrow")}}
  • +
  • {{SVGElement("metadata")}}
  • +
  • {{SVGElement("missing-glyph")}}
  • +
  • {{SVGElement("mpath")}}
  • +
+N O P + +
    +
  • {{SVGElement("path")}}
  • +
  • {{SVGElement("pattern")}}
  • +
  • {{SVGElement("polygon")}}
  • +
  • {{SVGElement("polyline")}}
  • +
+Q R + +
    +
  • {{SVGElement("radialGradient")}}
  • +
  • {{SVGElement("rect")}}
  • +
+S + +
    +
  • {{SVGElement("script")}}
  • +
  • {{SVGElement("set")}}
  • +
  • {{SVGElement("solidcolor")}}
  • +
  • {{SVGElement("stop")}}
  • +
  • {{SVGElement("style")}}
  • +
  • {{SVGElement("svg")}}
  • +
  • {{SVGElement("switch")}}
  • +
  • {{SVGElement("symbol")}}
  • +
+T + +
    +
  • {{SVGElement("text")}}
  • +
  • {{SVGElement("textPath")}}
  • +
  • {{SVGElement("title")}}
  • +
  • {{SVGElement("tref")}}
  • +
  • {{SVGElement("tspan")}}
  • +
+U + +
    +
  • {{SVGElement("unknown")}}
  • +
  • {{SVGElement("use")}}
  • +
+V — Z + +
    +
  • {{SVGElement("view")}}
  • +
  • {{SVGElement("vkern")}}
  • +
+
+ +

Элементы SVG по категориям

+ +

Элементы анимации

+ +

{{SVGElement("animate")}}, {{SVGElement("animateColor")}}, {{SVGElement("animateMotion")}}, {{SVGElement("animateTransform")}}, {{SVGElement("discard")}}, {{SVGElement("mpath")}}, {{SVGElement("set")}}

+ +

Базовые фигуры

+ +

{{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("line")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, {{SVGElement("rect")}}

+ +

Контейнеры

+ +

{{SVGElement("a")}}, {{SVGElement("defs")}}, {{SVGElement("glyph")}}, {{SVGElement("g")}}, {{SVGElement("marker")}}, {{SVGElement("mask")}}, {{SVGElement("missing-glyph")}}, {{SVGElement("pattern")}}, {{SVGElement("svg")}}, {{SVGElement("switch")}}, {{SVGElement("symbol")}}, {{SVGElement("unknown")}}

+ +

Элементы описания

+ +

{{SVGElement("desc")}}, {{SVGElement("metadata")}}, {{SVGElement("title")}}

+ +

Фильтры

+ +

{{SVGElement("feBlend")}}, {{SVGElement("feColorMatrix")}}, {{SVGElement("feComponentTransfer")}}, {{SVGElement("feComposite")}}, {{SVGElement("feConvolveMatrix")}}, {{SVGElement("feDiffuseLighting")}}, {{SVGElement("feDisplacementMap")}}, {{SVGElement("feDropShadow")}}, {{SVGElement("feFlood")}},{{SVGElement("feFuncA")}}, {{SVGElement("feFuncB")}}, {{SVGElement("feFuncG")}}, {{SVGElement("feFuncR")}},{{SVGElement("feGaussianBlur")}}, {{SVGElement("feImage")}}, {{SVGElement("feMerge")}}, {{SVGElement("feMergeNode")}}, {{SVGElement("feMorphology")}}, {{SVGElement("feOffset")}}, {{SVGElement("feSpecularLighting")}}, {{SVGElement("feTile")}}, {{SVGElement("feTurbulence")}}

+ +

Элементы шрифта

+ +

{{SVGElement("font")}}, {{SVGElement("font-face")}}, {{SVGElement("font-face-format")}}, {{SVGElement("font-face-name")}}, {{SVGElement("font-face-src")}}, {{SVGElement("font-face-uri")}}, {{SVGElement("hkern")}}, {{SVGElement("vkern")}}

+ +

Градиентные элементы

+ +

{{SVGElement("linearGradient")}}, {{SVGElement("meshgradient")}}, {{SVGElement("radialGradient")}}, {{SVGElement("stop")}}

+ +

Графические элементы

+ +

{{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("image")}}, {{SVGElement("line")}}, {{SVGElement("mesh")}}, {{SVGElement("path")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, {{SVGElement("rect")}}, {{SVGElement("text")}}, {{SVGElement("use")}} 

+ +

Элементы ссылки на графику

+ +

{{SVGElement("mesh")}}, {{SVGElement("use")}}

+ +

Источники света

+ +

{{SVGElement("feDistantLight")}}, {{SVGElement("fePointLight")}}, {{SVGElement("feSpotLight")}} 

+ +

Непрозрачные элементы

+ +

{{SVGElement("clipPath")}}, {{SVGElement("defs")}}, {{SVGElement("hatch")}}, {{SVGElement("linearGradient")}}, {{SVGElement("marker")}}, {{SVGElement("mask")}}, {{SVGElement("meshgradient")}}, {{SVGElement("metadata")}}, {{SVGElement("pattern")}}, {{SVGElement("radialGradient")}}, {{SVGElement("script")}}, {{SVGElement("style")}}, {{SVGElement("symbol")}}, {{SVGElement("title")}} 

+ +

Элементы сервера печати

+ +

{{SVGElement("hatch")}}, {{SVGElement("linearGradient")}}, {{SVGElement("meshgradient")}}, {{SVGElement("pattern")}}, {{SVGElement("radialGradient")}}, {{SVGElement("solidcolor")}} 

+ +

Отличительные элементы

+ +

{{SVGElement("a")}}, {{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("foreignObject")}}, {{SVGElement("g")}}, {{SVGElement("image")}}, {{SVGElement("line")}}, {{SVGElement("mesh")}}, {{SVGElement("path")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, {{SVGElement("rect")}}, {{SVGElement("svg")}}, {{SVGElement("switch")}}, {{SVGElement("symbol")}}, {{SVGElement("text")}}, {{SVGElement("textPath")}}, {{SVGElement("tspan")}}, {{SVGElement("unknown")}}, {{SVGElement("use")}} 

+ +

Элементы формы

+ +

{{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("line")}}, {{SVGElement("mesh")}}, {{SVGElement("path")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, {{SVGElement("rect")}}

+ +

Структурные элементы

+ +

{{SVGElement("defs")}}, {{SVGElement("g")}}, {{SVGElement("svg")}}, {{SVGElement("symbol")}}, {{SVGElement("use")}}

+ +

Элементы текстового контента

+ +

{{SVGElement("altGlyph")}}, {{SVGElement("altGlyphDef")}}, {{SVGElement("altGlyphItem")}}, {{SVGElement("glyph")}}, {{SVGElement("glyphRef")}}, {{SVGElement("textPath")}}, {{SVGElement("text")}}, {{SVGElement("tref")}}, {{SVGElement("tspan")}}

+ +

Текстовые контентные дочерние элементы

+ +

{{SVGElement("altGlyph")}}, {{SVGElement("textPath")}}, {{SVGElement("tref")}}, {{SVGElement("tspan")}}

+ +

Некатегоризированные элементы

+ +

{{SVGElement("clipPath")}}, {{SVGElement("color-profile")}}, {{SVGElement("cursor")}}, {{SVGElement("filter")}}, {{SVGElement("foreignObject")}}, {{SVGElement("hatchpath")}}, {{SVGElement("meshpatch")}}, {{SVGElement("meshrow")}}, {{SVGElement("script")}}, {{SVGElement("style")}}, {{SVGElement("view")}} 

+ +

Смотрите также

+ + + +

 

+ +

 

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/line/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/line/index.html" new file mode 100644 index 0000000000..b7f75c6a96 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/line/index.html" @@ -0,0 +1,104 @@ +--- +title: +slug: Web/SVG/Элемент/line +tags: + - SVG +translation_of: Web/SVG/Element/line +--- +
 {{SVGRef}}
+ +

Элемент <line> одна из базовых фигур SVG, используемая для создания линии, связывающей две точки.

+ +
+ + +
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+  <line x1="0" y1="80" x2="100" y2="20" stroke="black" />
+
+  <!-- Если вы не укажете цвет контура,
+       линия не будет видна -->
+</svg>
+ +

{{EmbedLiveSample('Example', 100, 100)}}

+
+ +

Атрибуты

+ +
+
{{SVGAttr('x1')}}
+
Определяет координату начальной точки линии по оси x .
+ Тип значения: <length>|<percentage>|<number> ; Значение по умолчанию: 0; Анимируемый: да
+
{{SVGAttr('x2')}}
+
Определяет координату конечной точки линии по оси x.
+ Тип значения: <length>|<percentage>|<number> ; Значение по умолчанию: 0; Анимируемый: да
+
{{SVGAttr('y1')}}
+
Определяет координату начальной точки линии по оси y.
+ Тип значения: <length>|<percentage>|<number> ; Значение по умолчанию: 0; Анимируемый: да
+
{{SVGAttr('y2')}}
+
Определяет координату конечной точки линии по оси y.
+ Тип значения: <length>|<percentage>|<number> ; Значение по умолчанию: 0; Анимируемый: да
+
{{SVGAttr("pathLength")}}
+
Определяет общую длину пути в пользовательских единицах.
+ Тип значения: <number> ; Значение по умолчанию: none; Анимируемый: да
+
+ +

Глобальные атрибуты

+ +
+
Основные атрибуты
+
В первую очередь: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Атрибуты оформления (стилей) 
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Атрибуты условной обработки
+
В первую очередь: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Атрибуты события
+
Глобальные атрибуты события, Графические атрибуты события
+
Атрибуты презентации
+
В превую очередь: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
Атрибуты ARIA
+
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('SVG2', 'shapes.html#LineElement', '<line>')}}{{Spec2('SVG2')}} 
{{SpecName('SVG1.1', 'shapes.html#LineElement', '<line>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Поддержка браузерами

+ + + +

{{Compat("svg.elements.line")}}

+ +

 

+ +

Смотрите также:

+ + diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/lineargradient/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/lineargradient/index.html" new file mode 100644 index 0000000000..37ab6a334d --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/lineargradient/index.html" @@ -0,0 +1,105 @@ +--- +title: +slug: Web/SVG/Элемент/linearGradient +tags: + - NeedsUpdate + - SVG + - SVG градиент + - Справка + - Элемент +translation_of: Web/SVG/Element/linearGradient +--- +
{{SVGRef}}
+ +

Элемент <linearGradient> SVG позволяет авторам определять линейные градиенты для заполнения или изменения графических элементов.

+ +

Контекст использования

+ +

{{svginfo}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специфические атрибуты

+ +
    +
  • {{SVGAttr("gradientUnits")}}
  • +
  • {{SVGAttr("gradientTransform")}}
  • +
  • {{SVGAttr("x1")}}
  • +
  • {{SVGAttr("y1")}}
  • +
  • {{SVGAttr("x2")}}
  • +
  • {{SVGAttr("y2")}}
  • +
  • {{SVGAttr("spreadMethod")}}
  • +
  • {{SVGAttr("xlink:href")}}
  • +
+ +

DOM интерфейс

+ +

Этот элемент реализует {{domxref("SVGLinearGradientElement")}} интерфейс.

+ +

Пример

+ +
<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg">
+    <defs>
+        <linearGradient id="MyGradient">
+            <stop offset="5%"  stop-color="green"/>
+            <stop offset="95%" stop-color="gold"/>
+        </linearGradient>
+    </defs>
+
+    <rect fill="url(#MyGradient)"
+          x="10" y="10" width="100" height="100"/>
+</svg>
+ +

{{EmbedLiveSample("Example", 120, 120, "https://mdn.mozillademos.org/files/10061/svg-lineargradient.png")}}

+ +

Характеристики

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('SVG2', 'pservers.html#LinearGradientElement', '<linearGradient>')}}{{Spec2('SVG2')}} 
{{SpecName('SVG1.1', 'pservers.html#LinearGradients', '<linearGradient>')}}{{Spec2('SVG1.1')}}Начальное определение
+ +

Совместимость с браузером

+ +
+ + +

{{Compat("svg.elements.linearGradient")}}

+
+ +

Смотрите также

+ +
    +
  • {{SVGElement("radialGradient")}}
  • +
  • {{SVGElement("stop")}}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/path/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/path/index.html" new file mode 100644 index 0000000000..7dc97ca989 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/path/index.html" @@ -0,0 +1,98 @@ +--- +title: +slug: Web/SVG/Элемент/path +translation_of: Web/SVG/Element/path +--- +
{{SVGRef}}
+ +

Элемент <path> является общим элементом для описания фигуры. Все базовые фигуры могут быть созданы с помощью элемента path.

+ +
+ + +
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+  <path d="M 10,30
+           A 20,20 0,0,1 50,30
+           A 20,20 0,0,1 90,30
+           Q 90,60 50,90
+           Q 10,60 10,30 z"/>
+</svg>
+ +

{{EmbedLiveSample('Example', 100, 100)}}

+
+ +

Атрибуты

+ +
+
{{SVGAttr("d")}}
+
Этот атрибут определяет форму.
+ Тип значения: <string> ; Значеие по умолчанию: ''; Анимирование: Да
+
{{SVGAttr("pathLength")}}
+
Этот атрибут позволяет указывать общую длину в пользовательских единицах.
+ Тип значения: <number> ; Значеие по умолчанию:нет; Анимирование: Да
+
+ +

Глобальные атрибуты

+ +
+
Атрибуты ядра
+
Most notably: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Атрибуты стиля
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Атрибуты условной обработки
+
Most notably: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Атрибуты событий
+
Атрибуты глобальных событий, Атрибуты графических событий
+
Presentation Attributes
+
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
ARIA атрибуты
+
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
+
+ +

Использование

+ +

{{svginfo}}

+ +

Спецификация

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ХарактеристикиСтатусКоммент
{{SpecName("SVG Paths", "#PathElement", "<path>")}}{{Spec2("SVG Paths")}}
{{SpecName("SVG2", "paths.html#PathElement", "<path>")}}{{Spec2("SVG2")}}
{{SpecName("SVG1.1", "paths.html#PathElement", "<path>")}}{{Spec2("SVG1.1")}}Initial definition
+ +

Совместимость браузера

+ +

div class="hidden">Таблица совместимости на этой странице генерируется из структурированных данных. Если вы хотите внести свой вклад в эти данные, перейдите на https://github.com/mdn/browser-compat-data и отправьте pull request на изменение.

+ +

{{Compat("svg.elements.path")}}

+ +

Смотрите также

+ +
    +
  • SVG basic shapes: {{ SVGElement('circle') }}, {{ SVGElement('ellipse') }}, {{ SVGElement('line') }}, {{ SVGElement('polygon') }}, {{ SVGElement('polyline') }}, {{ SVGElement('rect') }}
  • +
  • The MDN SVG "Getting Started" tutorial : Path
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/pattern/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/pattern/index.html" new file mode 100644 index 0000000000..2d572737d3 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/pattern/index.html" @@ -0,0 +1,125 @@ +--- +title: +slug: Web/SVG/Элемент/pattern +tags: + - SVG +translation_of: Web/SVG/Element/pattern +--- +
{{SVGRef}}
+Элемент <pattern> определяет графический объект, который может быть перерисован с повторяющимися координатами x и y («мозаичным»), чтобы покрыть область.
+ +

+На ссылку <pattern> ссылаются атрибуты {{SVGAttr("fill")}} и / или {{SVGAttr("stroke")}} на других графических элементах , чтобы заполнить или обвести эти элементы указанным шаблоном. 
+ +
 
+ +
+ + +
<svg viewBox="0 0 230 100" xmlns="http://www.w3.org/2000/svg">
+  <defs>
+    <pattern id="star" viewBox="0,0,10,10" width="10%" height="10%">
+      <polygon points="0,0 2,5 0,10 5,8 10,10 8,5 10,0 5,2"/>
+    </pattern>
+  </defs>
+
+  <circle cx="50"  cy="50" r="50" fill="url(#star)"/>
+  <circle cx="180" cy="50" r="40" fill="none" stroke-width="20" stroke="url(#star)"/>
+</svg>
+ +

{{EmbedLiveSample('Exemple', 150, '100%')}}

+
+ +

Атрибуты

+ +
+
{{SVGAttr("height")}}
+
Этот атрибут определяет высоту плитки шаблона.
+ Value type: <length>|<percentage>; Default value: 0; Animatable: yes
+
{{SVGAttr("href")}}
+
Этот атрибут по умолчанию ссылается на пример шаблона для <pattern>
+ Value type: <URL>; Default value: none; Animatable: yes
+
{{SVGAttr("patternContentUnits")}}
+
Этот атрибут определяет систему координат содержимого {{ SVGElement("pattern") }}. 
+ Value type: userSpaceOnUse|objectBoundingBox; Default value: userSpaceOnUse; Animatable: yes +

Сноска: Этот атрибут не действует, если в элементе <pattern> указан атрибут viewBox.

+
+
{{SVGAttr("patternTransform")}}
+
Этот атрибут содержит определение необязательного дополнительного преобразования из системы координат шаблона в целевую систему координат.
+ Value type: <transform-list>; Default value: none; Animatable: yes
+
{{SVGAttr("patternUnits")}}
+
Этот атрибут определяет систему координат для атрибутов x, y, width и height
+ Value type: userSpaceOnUse|objectBoundingBox; Default value: objectBoundingBox; Animatable: yes
+
{{SVGAttr("preserveAspectRatio")}}
+
Этот атрибут определяет, как фрагмент svg должен быть деформирован, если он встроен в контейнер с другим соотношением сторон.
+ Value type: (none| xMinYMin| xMidYMin| xMaxYMin| xMinYMid| xMidYMid| xMaxYMid| xMinYMax| xMidYMax| xMaxYMax) (meet|slice)? ; Default value: xMidYMid meet; Animatable: yes
+
{{SVGAttr("viewBox")}}
+
Этот атрибут определяет границы области просмотра SVG для фрагмента шаблона.
+ Value type: <list-of-numbers> ; Default value: none; Animatable: yes
+
{{SVGAttr("width")}}
+
Этот атрибут определяет ширину плитки шаблона.
+ Value type: <length>|<percentage> ; Default value: 0; Animatable: yes
+
{{SVGAttr("x")}}
+
Этот атрибут определяет смещение координаты x мозаичного изображения.
+ Value type: <length>|<percentage> ; Default value: 0; Animatable: yes
+
{{SVGAttr("xlink:href")}} {{deprecated_inline("SVG2")}}
+
Этот атрибут ссылается на пример шаблона, предоставляющего значения по умолчанию для атрибутов <pattern>.
+ Value type: <URL>; Default value: none; Animatable: yes +

Сноска: Для браузеров, реализующих href, если заданы как href, так и xlink:href, xlink:href будет игнорироваться, используя только href.

+
+
{{SVGAttr("y")}}
+
Этот атрибут определяет смещение координат y мозаичного элемента.
+ Value type: <length>|<percentage> ; Default value: 0; Animatable: yes
+
+ +

Глобальные атрибуты

+ +
+
Core Attributes
+
Most notably: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Styling Attributes
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Conditional Processing Attributes
+
Most notably: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Presentation Attributes
+
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
XLink Attributes
+
Most notably: {{SVGAttr("xlink:title")}}
+
+ +

Нотации

+ +

{{svginfo}}

+ +

Характеристики

+ + + + + + + + + + + + + + + + + + + + + +
ХарактеристикиСтатусКоммент
{{SpecName('SVG2', 'pservers.html#Patterns', '<pattern>')}}{{Spec2('SVG2')}} 
{{SpecName('SVG1.1', 'pservers.html#Patterns', '<pattern>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Совместимость браузера

+ + + +

{{Compat("svg.elements.pattern")}}

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/polygon/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/polygon/index.html" new file mode 100644 index 0000000000..b1baf626a3 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/polygon/index.html" @@ -0,0 +1,95 @@ +--- +title: +slug: Web/SVG/Элемент/polygon +tags: + - SVG +translation_of: Web/SVG/Element/polygon +--- +
{{SVGRef}}
+ +

Элемент <polygon> описывает замкнутую фигуру, состоящую из набора последовательно соединённых между собой прямых линий. Для создания незамкнутых фигур используется элемент {{SVGElement("polyline")}}.

+ +
+ + +
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
+  <!-- Example of a polygon with the default fill -->
+  <polygon points="0,100 50,25 50,75 100,0" />
+
+  <!-- Example of the same polygon shape with stroke and no fill -->
+  <polygon points="100,100 150,25 150,75 200,0"
+            fill="none" stroke="black" />
+</svg>
+ +

{{EmbedLiveSample('Exemple', 100, 100)}}

+
+ +

Атрибуты

+ +
+
{{SVGAttr('points')}}
+
Данный атрибут определяет список точек (независимых пар x,y координат), необходимых для отрисовки фигуры.
+ Тип значения: <number>+ ; Значение по умолчанию: ""; Анимируемый: да
+
{{SVGAttr("pathLength")}}
+
Данный атрибут позволяет указывать общую длину пути в пользовательских единицах.
+ Тип значения: <number> ; Значение по умолчанию: none; Анимируемый: да
+
+ +

Global attributes

+ +
+
Основные атрибуты
+
Самые важные: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Атрибуты стилизации
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Условные атрибуты
+
Самые важные: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Атрибуты событий
+
Атрибуты глобальных событий, Атрибуты графических событий
+
Presentation Attributes
+
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
ARIA атрибуты
+
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
+
+ +

Usage notes

+ +

{{svginfo}}

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('SVG2', 'shapes.html#PolygonElement', '<polygon>')}}{{Spec2('SVG2')}}No change
{{SpecName('SVG1.1', 'shapes.html#PolygonElement', '<polygon>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Совместимость с браузерами

+ + + +

{{Compat("svg.elements.polygon")}}

+ +

Смотрите также

+ +
    +
  • Другие базовые фигуры SVG: {{ SVGElement('circle') }}, {{ SVGElement('ellipse') }}, {{ SVGElement('line') }}, {{ SVGElement('polyline') }}, {{ SVGElement('rect') }}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/radialgradient/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/radialgradient/index.html" new file mode 100644 index 0000000000..04906d4fd5 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/radialgradient/index.html" @@ -0,0 +1,108 @@ +--- +title: +slug: Web/SVG/Элемент/radialGradient +tags: + - NeedsUpdate + - SVG +translation_of: Web/SVG/Element/radialGradient +--- +
{{SVGRef}}
+ +

Элемент <radialGradient> SVG позволяет авторам определять радиальные градиенты для заполнения или изменения графических элементов.

+ +

Контекст использования

+ +

{{svginfo}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специфические атрибуты

+ +
    +
  • {{SVGAttr("gradientUnits")}}
  • +
  • {{SVGAttr("gradientTransform")}}
  • +
  • {{SVGAttr("cx")}}
  • +
  • {{SVGAttr("cy")}}
  • +
  • {{SVGAttr("r")}}
  • +
  • {{SVGAttr("fx")}}
  • +
  • {{SVGAttr("fy")}}
  • +
  • {{SVGAttr("fr")}}
  • +
  • {{SVGAttr("spreadMethod")}}
  • +
  • {{SVGAttr("xlink:href")}}
  • +
+ +

DOM интерфейс

+ +

Этот элемент реализует {{domxref("SVGRadialGradientElement")}} интерфейс.

+ +

Пример

+ +

SVG

+ +
<svg width="120" height="120" viewBox="0 0 120 120"
+   xmlns="http://www.w3.org/2000/svg">
+
+  <defs>
+    <radialGradient id="exampleGradient">
+      <stop offset="10%" stop-color="gold"/>
+      <stop offset="95%" stop-color="green"/>
+    </radialGradient>
+  </defs>
+
+  <circle fill="url(#exampleGradient)" cx="60" cy="60" r="50"/>
+</svg>
+ +

Результат

+ +

{{EmbedLiveSample("Example", 120, 120)}}

+ +

Характеристики

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКоммент
{{SpecName('SVG2', 'pservers.html#RadialGradients', '<radialGradient>')}}{{Spec2('SVG2')}}Добавлен атрибут fr
{{SpecName('SVG1.1', 'pservers.html#RadialGradients', '<radialGradient>')}}{{Spec2('SVG1.1')}}Начальное определение
+ +

Совместимость с браузером

+ + + +

 

+ +

Смотрите также

+ +
    +
  • {{SVGElement("linearGradient")}}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/rect/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/rect/index.html" new file mode 100644 index 0000000000..8e4b7c9af7 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/rect/index.html" @@ -0,0 +1,115 @@ +--- +title: +slug: Web/SVG/Элемент/rect +tags: + - NeedsUpdate + - SVG +translation_of: Web/SVG/Element/rect +--- +
{{SVGRef}}
+ +

<rect>  - это базовая SVG фигура, используется для отрисовки прямоугольников по координатам угла, длины и высоты прямоугольника. Также может использоваться для отрисовки прямоугольников со скругленными углами.

+ +

Контекст использования

+ + + + + + + + + + + + + + + + +
КатегорияПростая фигура, Графический элемент
Разрешенное содержимоеЛюбое количество указанных элементов в любом порядке:
+ Элементы анимации »
+ Элементы описания »
Нормативный документSVG 1.1 (2ое издание)
+ +

Пример

+ +

Простой пример использования rect

+ +

 

+ +
<?xml version="1.0"?>
+<svg width="120" height="120"
+     viewBox="0 0 120 120"
+     xmlns="http://www.w3.org/2000/svg">
+
+  <rect x="10" y="10" width="100" height="100"/>
+</svg>
+ +

 

+ +

» rect-1.svg

+ +

<rect> со скругленными углами

+ +

 

+ +
<?xml version="1.0"?>
+<svg width="120" height="120"
+     viewBox="0 0 120 120"
+     xmlns="http://www.w3.org/2000/svg">
+
+  <rect x="10" y="10"
+        width="100" height="100"
+        rx="15" ry="15"/>
+
+</svg>
+ +

» rect-2.svg

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специальные атрибуты

+ +
    +
  • {{ SVGAttr("x") }}
  • +
  • {{ SVGAttr("y") }}
  • +
  • {{ SVGAttr("width") }}
  • +
  • {{ SVGAttr("height") }}
  • +
  • {{ SVGAttr("rx") }}
  • +
  • {{ SVGAttr("ry") }}
  • +
+ +

DOM Интерфейс

+ +

Данный элемент реализует интерфейс SVGRectElement .

+ +

Совместимость с браузерами

+ +

 

+ + + +

{{Compat("svg.elements.rect")}}

+ +

 

+ +

Смотрите также

+ +
    +
  • {{ SVGElement("path") }}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/svg/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/svg/index.html" new file mode 100644 index 0000000000..12e37bee9d --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/svg/index.html" @@ -0,0 +1,119 @@ +--- +title: +slug: Web/SVG/Элемент/svg +translation_of: Web/SVG/Element/svg +--- +
{{SVGRef}}
+ +

Элемент svg является контейнером, который определяет новую систему координат и область просмотра. Он используется, как самый внешний элемент документов SVG, но также может использоваться для встраивания фрагмента SVG в документ SVG или HTML.

+ +
+

Примечание. Атрибут xmlns требуется только для самого внешнего элемента svg документов SVG. Это не нужно для внутренних элементов svg или внутри документов HTML.

+
+ +
+ + +
<svg viewBox="0 0 300 100" xmlns="http://www.w3.org/2000/svg" stroke="red" fill="grey">
+  <circle cx="50" cy="50" r="40" />
+  <circle cx="150" cy="50" r="4" />
+
+  <svg viewBox="0 0 10 10" x="200" width="100">
+    <circle cx="5" cy="5" r="4" />
+  </svg>
+</svg>
+ +

{{EmbedLiveSample('Exeemple', 150, '100%')}}

+
+ +

Атрибуты

+ +
+
{{SVGAttr("baseProfile")}} {{deprecated_inline('svg2')}}
+
The minimum SVG language profile that the document requires.
+ Value type: <string> ; Default value: none; Animatable: no
+
{{SVGAttr("contentScriptType")}} {{deprecated_inline('svg2')}}
+
Язык сценариев по умолчанию, используемый фрагментом SVG.
+ Value type: <string> ; Default value: application/ecmascript; Animatable: no
+
{{SVGAttr("contentStyleType")}} {{deprecated_inline('svg2')}}
+
Язык таблицы стилей по умолчанию, используемый фрагментом SVG.
+ Value type: <string> ; Default value: text/css; Animatable: no
+
{{SVGAttr("height")}}
+
Отображаемая высота прямоугольной области просмотра. (Не высота его системы координат.)
+ Value type: <length>|<percentage> ; Default value: auto; Animatable: yes
+
{{SVGAttr("preserveAspectRatio")}}
+
How the svg fragment must be deformed if it is displayed with a different aspect ratio.
+ Value type: (none| xMinYMin| xMidYMin| xMaxYMin| xMinYMid| xMidYMid| xMaxYMid| xMinYMax| xMidYMax| xMaxYMax) (meet|slice)? ; Default value: xMidYMid meet; Animatable: yes
+
{{SVGAttr("version")}} {{deprecated_inline('svg2')}}
+
Какая версия SVG используется для внутреннего содержимого элемента.
+ Value type: <number> ; Default value: none; Animatable: no
+
{{SVGAttr("viewBox")}}
+
Координаты области просмотра SVG для текущего фрагмента SVG.
+ Value type: <list-of-numbers> ; Default value: none; Animatable: yes
+
{{SVGAttr("width")}}
+
Отображаемая ширина прямоугольной области просмотра. (Не ширина его системы координат.)
+ Value type: <length>|<percentage> ; Default value: auto; Animatable: yes
+
{{SVGAttr("x")}}
+
The displayed x coordinate of the svg container. No effect on outermost svg elements.
+ Value type: <length>|<percentage> ; Default value: 0; Animatable: yes
+
{{SVGAttr("y")}}
+
The displayed y coordinate of the svg container. No effect on outermost svg elements.
+ Value type: <length>|<percentage> ; Default value: 0; Animatable: yes
+
+ +
+

Примечание. Начиная с SVG2, x, y, width и height являются Geometry Properties, то есть эти атрибуты также можно использовать в качестве CSS-свойств.

+
+ +

Глобальные атрибуты

+ +
+
Core Attributes
+
Most notably: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Styling Attributes
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Conditional Processing Attributes
+
Most notably: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Event Attributes
+
Global event attributes, Graphical event attributes, Document event attributes, Document element event attributes
+
Presentation Attributes
+
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
Aria атрибуты
+
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
+
+ +

Примечания по использованию

+ +

{{svginfo}}

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('SVG2', 'struct.html#NewDocument', '<svg>')}}{{Spec2('SVG2')}}
{{SpecName('SVG1.1', 'struct.html#NewDocument', '<svg>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Кросс-браузерность

+ + + +

{{Compat("svg.elements.svg")}}

diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/text/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/text/index.html" new file mode 100644 index 0000000000..d63d1b47dd --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/text/index.html" @@ -0,0 +1,211 @@ +--- +title: +slug: Web/SVG/Элемент/ +tags: + - NeedsUpdate + - SVG + - SVG text +translation_of: Web/SVG/Element/text +--- +
{{SVGRef}}
+ +

SVG элемент <text> определяет графический элемент, содержащий текст. Как и к любому другому графическому элементу SVG, к элементу <text> можно применить градиент, шаблон, окантовку, маску или фильтр.

+ +

Текст не будет отображаться, если он не находится внутри SVG элемента <text>. Это отличается от сокрытия по умолчанию, поскольку установка свойства display не отображает текст.

+ +

Пример

+ +
+ + +
<svg viewBox="0 0 300 80" xmlns="http://www.w3.org/2000/svg">
+  <style>
+    .small { font: italic 13px sans-serif; }
+    .heavy { font: bold 30px sans-serif; }
+
+    /* Обратите внимание, что цвет текста задается с помощью        *
+     * fill свойства, а свойство color используется только для HTML */
+    .Rrrrr { font: italic 40px serif; fill: red; }
+  </style>
+
+  <text x="20" y="35" class="small">Мой</text>
+  <text x="60" y="35" class="heavy">кот</text>
+  <text x="60" y="55" class="small">очень</text>
+  <text x="100" y="55" class="Rrrrr">Сердит!</text>
+</svg>
+
+
+ +

{{EmbedLiveSample('Пример', 150, '100%')}}

+ +

Атрибуты

+ +

Глобальные атрибуты

+ + + +

Специфические атрибуты

+ +
    +
  • {{SVGAttr("х")}}
  • +
  • {{SVGAttr("у")}}
  • +
  • {{SVGAttr("dх")}}
  • +
  • {{SVGAttr("dy")}}
  • +
  • {{SVGAttr("rotate")}}
  • +
  • {{SVGAttr("textLength")}}
  • +
  • {{SVGAttr("text-anchor")}}
  • +
  • {{SVGAttr("lengthAdjust")}}
  • +
+ +

Интерфейс DOM

+ +

Этот элемент реализует интерфейс {{domxref("SVGTextElement")}}.

+ +

Примеры

+ +

Основы использования элемента <text>

+ +

SVG

+ +
+
<svg viewBox="0 0 300 80" xmlns="http://www.w3.org/2000/svg">
+  <style>
+    .mal { font: italic 16px sans-serif; }
+    .hey { font: bold 26px sans-serif; fill: #6de;}
+  </style>
+  <text x="0" y="68" class="mal">- Привет,</text>
+  <text x="110" y="40" class="hey">Сахалин!</text>
+</svg>
+
+
+ +

Результат

+ +

{{EmbedLiveSample('SVG', 150, '100%')}}

+ +

Изменение направления написания текста.

+ +

Направление написания SVG-текста можно сменить на обратное, применив трансформацию.

+ +

SVG

+ +
+
+
+<svg viewBox="0 0 400 100" xmlns="http://www.w3.org/2000/svg">
+  <style>
+    .mal {font: italic 16px sans-serif; transform: rotate(180, 50, 50);}
+    .hey {font: bold 26px sans-serif; fill: #6de;}
+  </style>
+  <text x="-40" y="68" class="mal" transform="rotate(180, 50, 50)">
+    Пример ротации</text>
+  <text x="180" y="40" class="hey">SVG-текста.</text>
+</svg>
+
+
+
+
+ +

Результат

+ +

{{EmbedLiveSample('Реверс', 200, '100%')}}

+ +

Цвет текста

+ +

Цвет текста в SVG-элементе <text> может быть изменён посредством свойства fill="[color]" внутри элемента <text>.

+ +

SVG

+ +
+
<svg viewBox="0 0 300 100" xmlns="http://www.w3.org/2000/svg">
+    <style>
+      .gri {font: italic 16px sans-serif; fill: #6dd;}
+      .red {font: bold 26px sans-serif; fill: #d66;}
+    </style>
+    <text class="gri" x="10" y="30">Цвет текста</text>
+    <text class="red" x="120" y="30">SVG.</text>
+</svg>
+
+
+ +

Результат

+ +

{{EmbedLiveSample('SVG_3', 200, '100%')}}

+ +

Применение CSS-стилей к содержимому элемента <text>.

+ +

Содержимое SVG элемента <text> может быть стилизовано как обычный текст в HTML.

+ +

SVG

+ +
+
  <svg viewBox="0 0 300 100" xmlns="http://www.w3.org/2000/svg">
+    <style>
+      .stil {font: italic 16px sans-serif;}
+      .list {font: bold 26px sans-serif;}
+    </style>
+    <text class="stil" x="10" y="30">Стиль текста</text>
+    <text class="list" x="140" y="30">SVG.</text>
+</svg>
+
+
+ +

Результат

+ +

{{EmbedLiveSample('SVG_4', 200, '100%')}}

+ +

Спецификация

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКоммент
{{SpecName('SVG2', 'text.html#TextElement', '<text>')}}{{Spec2('SVG2')}} 
{{SpecName('SVG1.1', 'text.html#TextElement', '<text>')}}{{Spec2('SVG1.1')}}Начальное определение
+ +

Таблица составлена по информации из этого источника.

+ +

Совместимость с браузером

+ + + +

{{Compat("svg.elements.text")}}

+ +

Контекст использования

+ +

{{Svginfo}}

+ +

Связь

+ +
    +
  • {{SVGElement("tref")}}
  • +
  • {{SVGElement("tspan")}}
  • +
  • {{SVGElement("altGlyph")}}
  • +
diff --git "a/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/use/index.html" "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/use/index.html" new file mode 100644 index 0000000000..12d7007932 --- /dev/null +++ "b/files/ru/web/svg/\321\215\320\273\320\265\320\274\320\265\320\275\321\202/use/index.html" @@ -0,0 +1,126 @@ +--- +title: +slug: Web/SVG/Элемент/use +tags: + - SVG + - SVG Графика + - Ссылка + - Элемент +translation_of: Web/SVG/Element/use +--- +
{{SVGRef}}
+ +

Элемент <use> берёт элементы из SVG-документа и дублирует их где-то еще.

+ +
+ + +
<svg viewBox="0 0 30 10" xmlns="http://www.w3.org/2000/svg">
+  <circle id="myCircle" cx="5" cy="5" r="4" stroke="blue"/>
+  <use href="#myCircle" x="10" fill="blue"/>
+  <use href="#myCircle" x="20" fill="white" stroke="red"/>
+  <!--
+  В данном случае атрибут stroke="red" будет игнорироваться, так как
+  ранее он был задан непосредственно для фигуры круга с id "myCircle".
+  Большинство атрибутов (кроме x, y, width, height и (xlink:)href) не
+  переопределяют значения, заданные у предка.
+  Вот почему круги имеют разные координаты "x", но одинаковое значение "stroke".
+  -->
+</svg>
+ +

{{EmbedLiveSample('Exemple', 100, 100)}}

+
+ +

Эффект такой же, как если бы элементы были полностью склонированы в DOM, а затем расположены в месте, где находится элемент use, подобно элементам <template> в HTML 5.
+
+ Большинство атрибутов use не переопределяют те, что уже заданы у элемента, на который use ссылается. (Это отличается от того, как атрибуты CSS-стилей, переопределяют те, что были заданы раньше в каскаде). Только атрибуты {{SVGAttr("x")}}, {{SVGAttr("y")}}, {{SVGAttr("width")}}, {{SVGAttr("height")}} и {{SVGAttr("href")}} элемента use будут переопределять те, что были заданы у элемента, на который use ссылается. Однако к элементу use будут применены любые другие атрибуты, не заданные у элемента, на который use ссылается.
+
+ Поскольку клонированные элементы не отображаются, нужно соблюдать осторожность при использовании CSS для стилизации элемента use и его клонированных потомков. Нет гарантии, что CSS-свойства будут унаследованы клонированным DOM, пока вы явно не зададите им использование CSS-наследования.
+
+ По соображениям безопасности, браузеры могут применять правило ограничения домена для элементов use и могут отказаться загружать URL другого источника в атрибуте {{SVGAttr("href")}}.

+ +
+

Начиная с SVG 2, атрибут {{SVGAttr("xlink:href")}} получил статус "Устарело" в пользу {{SVGAttr("href")}}. Дополнительную информацию ищите на странице {{SVGAttr("xlink:href")}}. Тем не менее,  на практике всё еще может быть потребность в использовании {{SVGAttr("xlink:href")}} для кроссбраузерной совместимости (смотрите таблицу совместимости ниже).

+
+ +

Атрибуты

+ +
+
{{SVGAttr("href")}}
+
Ссылка на элемент/фрагмент, который нужно продублировать.
+ Тип значения: <URL> ; Значение по умолчанию: none; Анимируется: да
+
{{SVGAttr("xlink:href")}}
+
{{Deprecated_Header("SVG2")}}<IRI>-ссылка на элемент/фрагмент, который нужно продублировать.
+ Тип значения: <IRI> ; Значение по умолчанию: none; Анимируется: да
+
{{SVGAttr("x")}}
+
Координата "x" элемента use.
+ Тип значения: <coordinate> ; Значение по умолчанию: 0; Анимируется: да
+
{{SVGAttr("y")}}
+
Координата "y" элемента use.
+ Тип значения: <coordinate> ; Значение по умолчанию: 0; Анимируется: да
+
{{SVGAttr("width")}}
+
Ширина элемента use.
+ Тип значения: <length> ; Значение по умолчанию: 0; Анимируется: да
+
{{SVGAttr("height")}}
+
Высота элемента use.
+ Тип значения: <length> ; Значение по умолчанию: 0; Анимируется: да
+
+ +
+

Примечание: Начиная с SVG2, x, y, width, и height являются Свойствами Геометрии, то есть эти атрибуты также могут быть использованы в качестве CSS-свойств для этого элемента.

+
+ +

Глобальные атрибуты

+ +
+
Core Attributes
+
Most notably: {{SVGAttr('id')}}, {{SVGAttr('tabindex')}}
+
Styling Attributes
+
{{SVGAttr('class')}}, {{SVGAttr('style')}}
+
Conditional Processing Attributes
+
Most notably: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}
+
Атрибуты Событий
+
Global event attributes, Graphical event attributes
+
Presentation Attributes
+
Most notably: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('color-interpolation')}}, {{SVGAttr('color-rendering')}}, {{SVGAttr('cursor')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('pointer-events')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}
+
ARIA Атрибуты
+
aria-activedescendant, aria-atomic, aria-autocomplete, aria-busy, aria-checked, aria-colcount, aria-colindex, aria-colspan, aria-controls, aria-current, aria-describedby, aria-details, aria-disabled, aria-dropeffect, aria-errormessage, aria-expanded, aria-flowto, aria-grabbed, aria-haspopup, aria-hidden, aria-invalid, aria-keyshortcuts, aria-label, aria-labelledby, aria-level, aria-live, aria-modal, aria-multiline, aria-multiselectable, aria-orientation, aria-owns, aria-placeholder, aria-posinset, aria-pressed, aria-readonly, aria-relevant, aria-required, aria-roledescription, aria-rowcount, aria-rowindex, aria-rowspan, aria-selected, aria-setsize, aria-sort, aria-valuemax, aria-valuemin, aria-valuenow, aria-valuetext, role
+
XLink Атрибуты
+
{{SVGAttr("xlink:href")}}, {{SVGAttr("xlink:title")}}
+
+ +

Примечание по использованию

+ +

{{svginfo}}

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('SVG2', 'struct.html#UseElement', '<use>')}}{{Spec2('SVG2')}}
{{SpecName('SVG1.1', 'struct.html#UseElement', '<use>')}}{{Spec2('SVG1.1')}}Initial definition
+ +

Браузерная совместимость

+ + + +

{{Compat("svg.elements.use")}}

-- cgit v1.2.3-54-g00ecf