SlideShare a Scribd company logo
1 of 27
Download to read offline
КАК Я ПЕРЕСТАЛ БОЯТЬСЯ И 
ПОЛЮБИЛ SVG 
Руслан Каймаков 
Frontend-разработчик 
MoscowJS 17 
27.11.14
• Что такое SVG 
• Использование SVG спрайтов 
2
ЧТО ТАКОЕ SVG? 
• Двухмерная векторная графика 
• Подмножество XML 
3
ЗАЧЕМ? 
• Одинаково выглядит на любых экранах 
• Хорошо масштабируется 
• Малый вес в сравнении с png и jpeg 
• Можно стилизовать при помощи CSS 
4
КАК СОЗДАТЬ SVG? 
• Sketch 
• Illustrator 
• Avocode 
• Photoshop 
5 
Редакторы:
КАК СОЗДАТЬ SVG? 
• Vector Magic 
6 
Конвертирование: 
Оптимизация: 
• SVGO
КАК СОЗДАТЬ SVG? 
7
СПРАЙТЫ 
SVG можно использовать в спрайтах 
8
СПРАЙТЫ 
9
СПОСОБЫ ПОДКЛЮЧЕНИЯ 
• <SVG> + <USE> 
• background-image 
• FontFace 
10
SVG USE 
11 
<body> 
<svg display=“none”> 
<defs> 
<symbol id="Rambler" viewBox="0 0 300 35”>…</symbol> 
<symbol id="MoscowJS" viewBox="0 0 150 150">…</symbol> 
</defs> 
</svg> 
… 
<svg class=“icon-rambler”> 
<use xlink:href="#Rambler"></use> 
</svg> 
… 
</body>
SVG USE 
12 
Инструменты: 
• grunt-svgstore 
• IcoMoon
13 
Плюсы: 
• Работает в любом браузере с поддержкой SVG 
• Полная поддержка возможностей SVG 
Минусы: 
• Нельзя кешировать 
SVG USE
SVG USE EXTERNAL FILE 
<body> 
… 
<svg class=“icon-rambler”> 
<use xlink:href=“sprite.svg#Rambler"></use> 
</svg> 
… 
</body> 
14
SVG USE EXTERNAL FILE 
15 
Инструменты: 
• grunt-svgstore 
• IcoMoon
SVG USE EXTERNAL FILE 
16 
Плюсы: 
• Полная поддержка возможностей SVG 
• Можно кешировать 
Минусы: 
• Не работает в IE 
• Файл должен лежать на том же домене
BACKGROUND-IMAGE 
.icon-rambler { 
background: url(icons.svg) no-repeat 0 0; 
width: 300px; 
height: 35px; 
} 
<body> 
… 
<img class=“icon-rambler”> 
… 
</body> 
17
BACKGROUND-IMAGE 
18 
Инструменты: 
• grunt-iconizrn
BACKGROUND-IMAGE 
19 
Плюсы: 
• Работает в любом браузере с поддержкой SVG 
• Можно кешировать 
Минусы: 
• Ограниченные возможности SVG
FONTFACE 
<body> 
… 
<i class=“icon-rambler"></i> 
… 
</body> 
20 
.icon-rambler:before { 
… 
font-family: "FontIcon"; 
content: "f100"; 
… 
}
FONTFACE 
21 
Инструменты: 
• grunt-webfont 
• Font Custom 
• IcoMoon, Fontello
FONTFACE 
22 
Плюсы: 
• Самая лучшая поддержка среди браузеров 
• Можно кешировать 
Минусы: 
• Ограниченные возможности SVG 
• Возможны проблемы на некоторых устройствах
СРАВНЕНИЕ 
Тип CSS Стабильность 
SVG USE Любую часть изображения + 
background-image Только целое изображение + 
FontFace Только целое изображение - 
23
БРАУЗЕРЫ 
Тип Поддержка Fallback 
SVG USE Chrome, Opera, FF, Safari, IE9+ SVG for Everybody(IE9+) extrenal 
24 
file only 
background-image Chrome, Opera, FF, Safari, IE9+ PNG (IE8) 
FontFace Chrome, Opera, FF, Safari, IE8+
http://bit.ly/ilovesvg 
ВСЕМ СПАСИБО! 
Работайте #ВХорошейКомпании 
25 
@mrmoranxp 
mrmoranxp@gmail.com 
hr@rambler-co.ru
RAMBLER&CO 
26
RAMBLER&CO 
27

More Related Content

What's hot

CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest
 
JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ SQALab
 
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»DevGAMM Conference
 
Как стать front-end разработчиком с 0? (2)
Как стать front-end разработчиком с 0? (2)Как стать front-end разработчиком с 0? (2)
Как стать front-end разработчиком с 0? (2)GoIT
 
«Mobile To The People» - Дмитрий Колодько
«Mobile To The People» - Дмитрий Колодько«Mobile To The People» - Дмитрий Колодько
«Mobile To The People» - Дмитрий КолодькоITсonnect ITconnect
 
"Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React""Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React"Fwdays
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...oelifantiev
 
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
Встреча "Front-end: на старт, внимание, разработка!", Сергей ПузанковGoIT
 
Mobile Web Apps development essentials
Mobile Web Apps development essentialsMobile Web Apps development essentials
Mobile Web Apps development essentialsPavlo Iuriichuk
 
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10OdessaFrontend
 
Вебинар по Frontend: Профессия Frontend разработчика
Вебинар по Frontend: Профессия Frontend  разработчикаВебинар по Frontend: Профессия Frontend  разработчика
Вебинар по Frontend: Профессия Frontend разработчикаGoIT
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TKConf
 
Alex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projectsAlex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projectsAlexander Baumgertner
 
Как верстать сайты быстрее чем их рисуют
Как верстать сайты быстрее чем их рисуютКак верстать сайты быстрее чем их рисуют
Как верстать сайты быстрее чем их рисуютYuriy Artyukh
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16OdessaFrontend
 
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчикаДмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчикаYandex
 
Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]GoIT
 
Снижение затрат на разработку и поддержку сайта без потери качества
Снижение затрат на разработку и поддержку сайта без потери качестваСнижение затрат на разработку и поддержку сайта без потери качества
Снижение затрат на разработку и поддержку сайта без потери качестваAstra Media Group, Russia
 
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Ontico
 
Дизайн и разработка фронтенда
Дизайн и разработка фронтендаДизайн и разработка фронтенда
Дизайн и разработка фронтендаYandex
 

What's hot (20)

CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
 
JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥
 
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
 
Как стать front-end разработчиком с 0? (2)
Как стать front-end разработчиком с 0? (2)Как стать front-end разработчиком с 0? (2)
Как стать front-end разработчиком с 0? (2)
 
«Mobile To The People» - Дмитрий Колодько
«Mobile To The People» - Дмитрий Колодько«Mobile To The People» - Дмитрий Колодько
«Mobile To The People» - Дмитрий Колодько
 
"Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React""Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React"
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...
 
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 
Mobile Web Apps development essentials
Mobile Web Apps development essentialsMobile Web Apps development essentials
Mobile Web Apps development essentials
 
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
 
Вебинар по Frontend: Профессия Frontend разработчика
Вебинар по Frontend: Профессия Frontend  разработчикаВебинар по Frontend: Профессия Frontend  разработчика
Вебинар по Frontend: Профессия Frontend разработчика
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Alex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projectsAlex baumgertner bem_in_small_projects
Alex baumgertner bem_in_small_projects
 
Как верстать сайты быстрее чем их рисуют
Как верстать сайты быстрее чем их рисуютКак верстать сайты быстрее чем их рисуют
Как верстать сайты быстрее чем их рисуют
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16
 
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчикаДмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
 
Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]
 
Снижение затрат на разработку и поддержку сайта без потери качества
Снижение затрат на разработку и поддержку сайта без потери качестваСнижение затрат на разработку и поддержку сайта без потери качества
Снижение затрат на разработку и поддержку сайта без потери качества
 
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
 
Дизайн и разработка фронтенда
Дизайн и разработка фронтендаДизайн и разработка фронтенда
Дизайн и разработка фронтенда
 

Viewers also liked

Алексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksАлексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksJetStyle
 
Сборка Front-end’a
Сборка Front-end’aСборка Front-end’a
Сборка Front-end’aDelphiCon
 
Know yourengines velocity2011
Know yourengines velocity2011Know yourengines velocity2011
Know yourengines velocity2011Demis Bellot
 
Good front end - bad front-end (Vladimir Gutorov)
Good front end -  bad  front-end (Vladimir Gutorov)Good front end -  bad  front-end (Vladimir Gutorov)
Good front end - bad front-end (Vladimir Gutorov)LumoSpark
 

Viewers also liked (6)

Алексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksАлексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalks
 
Use Grunt Luke
Use Grunt LukeUse Grunt Luke
Use Grunt Luke
 
Сборка Front-end’a
Сборка Front-end’aСборка Front-end’a
Сборка Front-end’a
 
Backbone Javascript Application
Backbone Javascript ApplicationBackbone Javascript Application
Backbone Javascript Application
 
Know yourengines velocity2011
Know yourengines velocity2011Know yourengines velocity2011
Know yourengines velocity2011
 
Good front end - bad front-end (Vladimir Gutorov)
Good front end -  bad  front-end (Vladimir Gutorov)Good front end -  bad  front-end (Vladimir Gutorov)
Good front end - bad front-end (Vladimir Gutorov)
 

Similar to Как я перестал бояться и полюбил SVG -- Руслан Каймаков -- MoscowJS 17

Оптимизация графики на практике
Оптимизация графики на практикеОптимизация графики на практике
Оптимизация графики на практикеTimophy Chaptykov
 
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...CodeFest
 
Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"Yandex
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщикаmcslayer
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
 
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Yandex
 
Я ♥ Svg — Владимир Кузнецов, Engine6
Я ♥ Svg — Владимир Кузнецов, Engine6Я ♥ Svg — Владимир Кузнецов, Engine6
Я ♥ Svg — Владимир Кузнецов, Engine6Yandex
 
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Yandex
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в DjangoMoscowDjango
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanovyaevents
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Yandex
 
Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Anastasia Goryacheva
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?buranLcme
 
Вёрстка для мобильных телефонов
Вёрстка для мобильных телефоновВёрстка для мобильных телефонов
Вёрстка для мобильных телефоновtoWave.ru
 
Наталия Макишвили "Вёрстка для мобильных устройств"
Наталия Макишвили "Вёрстка для мобильных устройств"Наталия Макишвили "Вёрстка для мобильных устройств"
Наталия Макишвили "Вёрстка для мобильных устройств"Yandex
 
Быстрое создание картографических JavaScript приложений на основе Configurab...
Быстрое создание картографических JavaScript приложений на основе Configurab...Быстрое создание картографических JavaScript приложений на основе Configurab...
Быстрое создание картографических JavaScript приложений на основе Configurab...mchepurnoy
 

Similar to Как я перестал бояться и полюбил SVG -- Руслан Каймаков -- MoscowJS 17 (20)

Оптимизация графики на практике
Оптимизация графики на практикеОптимизация графики на практике
Оптимизация графики на практике
 
SVG in game development
SVG in game developmentSVG in game development
SVG in game development
 
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...
CodeFest 2014. Чаптыков Т. — Автоматизация хранения графики в новой онлайн-ве...
 
Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"Владимир Гриненко "Инструменты фронтенд-разработчика"
Владимир Гриненко "Инструменты фронтенд-разработчика"
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
 
Я ♥ Svg — Владимир Кузнецов, Engine6
Я ♥ Svg — Владимир Кузнецов, Engine6Я ♥ Svg — Владимир Кузнецов, Engine6
Я ♥ Svg — Владимир Кузнецов, Engine6
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
Cacoo
CacooCacoo
Cacoo
 
Speed Up Your Website
Speed Up Your WebsiteSpeed Up Your Website
Speed Up Your Website
 
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в Django
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanov
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
 
Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
 
Вёрстка для мобильных телефонов
Вёрстка для мобильных телефоновВёрстка для мобильных телефонов
Вёрстка для мобильных телефонов
 
Наталия Макишвили "Вёрстка для мобильных устройств"
Наталия Макишвили "Вёрстка для мобильных устройств"Наталия Макишвили "Вёрстка для мобильных устройств"
Наталия Макишвили "Вёрстка для мобильных устройств"
 
Быстрое создание картографических JavaScript приложений на основе Configurab...
Быстрое создание картографических JavaScript приложений на основе Configurab...Быстрое создание картографических JavaScript приложений на основе Configurab...
Быстрое создание картографических JavaScript приложений на основе Configurab...
 

More from MoscowJS

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionMoscowJS
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидахMoscowJS
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийMoscowJS
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyMoscowJS
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkMoscowJS
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31MoscowJS
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31MoscowJS
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31MoscowJS
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31MoscowJS
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33MoscowJS
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33MoscowJS
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33MoscowJS
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...MoscowJS
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...MoscowJS
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29MoscowJS
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29MoscowJS
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29MoscowJS
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28MoscowJS
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27MoscowJS
 

More from MoscowJS (20)

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидах
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложений
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkey
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
 

Как я перестал бояться и полюбил SVG -- Руслан Каймаков -- MoscowJS 17

  • 1. КАК Я ПЕРЕСТАЛ БОЯТЬСЯ И ПОЛЮБИЛ SVG Руслан Каймаков Frontend-разработчик MoscowJS 17 27.11.14
  • 2. • Что такое SVG • Использование SVG спрайтов 2
  • 3. ЧТО ТАКОЕ SVG? • Двухмерная векторная графика • Подмножество XML 3
  • 4. ЗАЧЕМ? • Одинаково выглядит на любых экранах • Хорошо масштабируется • Малый вес в сравнении с png и jpeg • Можно стилизовать при помощи CSS 4
  • 5. КАК СОЗДАТЬ SVG? • Sketch • Illustrator • Avocode • Photoshop 5 Редакторы:
  • 6. КАК СОЗДАТЬ SVG? • Vector Magic 6 Конвертирование: Оптимизация: • SVGO
  • 8. СПРАЙТЫ SVG можно использовать в спрайтах 8
  • 10. СПОСОБЫ ПОДКЛЮЧЕНИЯ • <SVG> + <USE> • background-image • FontFace 10
  • 11. SVG USE 11 <body> <svg display=“none”> <defs> <symbol id="Rambler" viewBox="0 0 300 35”>…</symbol> <symbol id="MoscowJS" viewBox="0 0 150 150">…</symbol> </defs> </svg> … <svg class=“icon-rambler”> <use xlink:href="#Rambler"></use> </svg> … </body>
  • 12. SVG USE 12 Инструменты: • grunt-svgstore • IcoMoon
  • 13. 13 Плюсы: • Работает в любом браузере с поддержкой SVG • Полная поддержка возможностей SVG Минусы: • Нельзя кешировать SVG USE
  • 14. SVG USE EXTERNAL FILE <body> … <svg class=“icon-rambler”> <use xlink:href=“sprite.svg#Rambler"></use> </svg> … </body> 14
  • 15. SVG USE EXTERNAL FILE 15 Инструменты: • grunt-svgstore • IcoMoon
  • 16. SVG USE EXTERNAL FILE 16 Плюсы: • Полная поддержка возможностей SVG • Можно кешировать Минусы: • Не работает в IE • Файл должен лежать на том же домене
  • 17. BACKGROUND-IMAGE .icon-rambler { background: url(icons.svg) no-repeat 0 0; width: 300px; height: 35px; } <body> … <img class=“icon-rambler”> … </body> 17
  • 19. BACKGROUND-IMAGE 19 Плюсы: • Работает в любом браузере с поддержкой SVG • Можно кешировать Минусы: • Ограниченные возможности SVG
  • 20. FONTFACE <body> … <i class=“icon-rambler"></i> … </body> 20 .icon-rambler:before { … font-family: "FontIcon"; content: "f100"; … }
  • 21. FONTFACE 21 Инструменты: • grunt-webfont • Font Custom • IcoMoon, Fontello
  • 22. FONTFACE 22 Плюсы: • Самая лучшая поддержка среди браузеров • Можно кешировать Минусы: • Ограниченные возможности SVG • Возможны проблемы на некоторых устройствах
  • 23. СРАВНЕНИЕ Тип CSS Стабильность SVG USE Любую часть изображения + background-image Только целое изображение + FontFace Только целое изображение - 23
  • 24. БРАУЗЕРЫ Тип Поддержка Fallback SVG USE Chrome, Opera, FF, Safari, IE9+ SVG for Everybody(IE9+) extrenal 24 file only background-image Chrome, Opera, FF, Safari, IE9+ PNG (IE8) FontFace Chrome, Opera, FF, Safari, IE8+
  • 25. http://bit.ly/ilovesvg ВСЕМ СПАСИБО! Работайте #ВХорошейКомпании 25 @mrmoranxp mrmoranxp@gmail.com hr@rambler-co.ru