Getting Started

В процессе перевода.

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

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

<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:
    • декларацию doctype, как известно из (X)HTML,  следует опустить, потому что DTD на основе валидации SVG приводит к большим проблемам, чем решает
    • чтобы определить версию SVG для других типов валидации, следует использовать вместо атрибуты версии и baseProfile
    • как диалект XML, SVG всегда правильно должен связывать простанства имен (в атрибуте xmlns). Смотри страницу Namespaces Crash Course для большей информации.
  2. Фон устанавливается красным при помощи рисования прямоугольника <rect/>, который покрывает всю область изображения
  3. Зеленый круг <circle/> с радиусом 80px рисуется поверх центра красного прямоугольника (смещение 30+120px вовнутрь, и 50+50px вверх).
  4. Текст "SVG" рисуется. Внутренняя часть каждой буквы наполняется белым. Расположение текста определяется привязкой, где мы хотим, чтобы была середина: в этом случае середина должна соответствовать центру зеленого круга. Для улучшения эстетического вида можно сделать точные настройки размера шрифта и вертикального положения.

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

  • Первая важная вещь, которую следует заметить - это порядок отображения элементов. Глобально действующее правило для файлов SVG - элементы, которые отрендерились позднее, отображаются поверх предыдущих элементов. Чем дальше вниз элемент (по коду / порядку рендеринга), тем более видимым он будет.
  • Файлы SVG в вэбе могут быть отображены прямо в браузере или внедрены в файлы HTML посредством нескольких методов:
    • Если HTML является XHTML и выводится как тип приложение/xhtml+xml, SVG может быть прямо внедрён в источник XML.
    • Если HTML является HTML5, и браузер совместим с HTML5, SVG может быть прямо внедрён тоже. Однако, возможны синтаксические изменения для совмещения с HTML5 специфированием
    • SVG файл может быть привязан с элементом object:
              <object data="image.svg" type="image/svg+xml" />
    • Аналогично может быть использован элемент iframe:
              <iframe src="image.svg"></iframe>
    • Элемент img тоже может быть использован теоретически. Однако эта техника не работает в Firefox до версии 4.0.
    • Наконец SVG может быть создан динамически с помощью JavaScript и введён в HTML DOM. Этот способ имеет преимущество тем, что могут быть реализованы замещающие технологии для браузеров, которые не могут воспроизводить SVG.
    Смотри эту статью для более глубокого знакомства с темой.
  • Как 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 будет вероятнее всего показывать разметку файлов как текст или кодированный мусор, или даже спрашивать программу просмотру выбрать приложение, чтобы открыть их.

Метки документа и участники

 Внесли вклад в эту страницу: valery-paschenkov, tavira, mboris1, Eugene_Ishchenko
 Обновлялась последний раз: valery-paschenkov,