You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2.1.2 mask внутри symbol может привести к тому что иконка будет не видна в ИЕ11
2.2 типичный пример <b:svg use="/pathToSvgDefs/symbol-defs.svg#iconSvg-desktop"></b:svg> (c) @sm0g
2.3 символы хороши тем, что
- они эффективно переиспользуются на странице ( в отличие от "инлайн" svg)
- можно менять цвет с помощью css (on hover) (в отличие от вставки svg как background: url(icon.svg))
надо заресерчить, почему по некоторым (или по всем?) иконкам в ИЕ не получается кликать
@harvyso февр. 07 12:43
работает ли basisjs c SVG также как c HTML DOM, есть примеры? template: "<b:svg><circle cx='10' cy='20' r='10' /></b:svg>"
svg добавлен как element, но почему circle как text node?
добавление xmlns:svg = 'http://www.w3.org/2000/svg' и изменение circle на svg:circle не помогает.
можете пояснить как обстоит дело с SVG!?
ответы к 2:
Alexey Smirnov @sm0g февр. 07 13:34
Я делал через use <b:svg use="/pathToSvgDefs/symbol-defs.svg#iconSvg-desktop"></b:svg>
попробуйте объявить svg элементы в отдельном файле (спрайты) добавить в шаблон. Далее использовать через use
Roman Dvornov @lahmatiy февр. 07 22:09
работает так же как с HTML, но нужно добавлять префикс svg:, то есть правильно будет template: "<svg:svg><svg:circle cx='10' cy='20' r='10' /></svg:svg>"
Когда svg вставляется в html, то браузерный парсер неявно добавляет неймспейс узлам
Но если вы сделаете document.createElement('svg'), то будет создана HTML нода, а не SVG. Для того чтобы сделать правильно, нужно document.createElementNS('svg', 'http://www.w3.org/2000/svg')
по идее при вставке в html нужно писать так <svg:svg xmlns:svg="http://www.w3.org/2000/svg"><svg:circle cx='10' cy='20' r='10' /></svg:svg>
но это сложно для большинства, потому, как писал выше, разработчики браузеров это упростили
Roman Dvornov @lahmatiy февр. 07 22:16
кстати да, нужно template: '<svg:svg><svg:circle cx="10" cy="20" r="10" /></svg:svg>'
одинарные кавычки не разрешены для атрибутов в XML/XHTML, парсер шаблонизатора ведет себя как XHTML парсер, поэтому встретив ' он посчитал конструкцию неверной для тега и сконвертировал все в текст
так вот, в шаблонизаторе basis'е нет словарей для тегов, что что-то относится к другому неймспейсу, но он умеет работать с неймспейсами
сейчас там зашиты неймспейсы svg и xlink https://github.com/basisjs/basisjs/blob/master/src/basis/template/namespace.js
конец ответов к 2
The text was updated successfully, but these errors were encountered:
добавление свг напрямую (
<svg:svg>...
). Зачем нужен namespaceтипичный кейс свг для иконок как symbol (
<b:svg>...
)2.1 symbol надо готовить
2.2 типичный пример
<b:svg use="/pathToSvgDefs/symbol-defs.svg#iconSvg-desktop"></b:svg>
(c) @sm0g2.3 символы хороши тем, что
- они эффективно переиспользуются на странице ( в отличие от "инлайн" svg)
- можно менять цвет с помощью css (on hover) (в отличие от вставки svg как background: url(icon.svg))
надо заресерчить, почему по некоторым (или по всем?) иконкам в ИЕ не получается кликать
вопросы из https://gitter.im/basisjs/basisjs
Ответ: нужен namespace, см ниже
работает ли basisjs c SVG также как c HTML DOM, есть примеры?
template: "<b:svg><circle cx='10' cy='20' r='10' /></b:svg>"
svg добавлен как element, но почему circle как text node?
добавление
xmlns:svg = 'http://www.w3.org/2000/svg'
и изменениеcircle
наsvg:circle
не помогает.можете пояснить как обстоит дело с SVG!?
ответы к 2:
Alexey Smirnov @sm0g февр. 07 13:34
Я делал через use <b:svg use="/pathToSvgDefs/symbol-defs.svg#iconSvg-desktop"></b:svg>
попробуйте объявить svg элементы в отдельном файле (спрайты) добавить в шаблон. Далее использовать через use
Roman Dvornov @lahmatiy февр. 07 22:09
работает так же как с HTML, но нужно добавлять префикс svg:, то есть правильно будет
template: "<svg:svg><svg:circle cx='10' cy='20' r='10' /></svg:svg>"
Когда svg вставляется в html, то браузерный парсер неявно добавляет неймспейс узлам
Но если вы сделаете
document.createElement('svg')
, то будет создана HTML нода, а не SVG. Для того чтобы сделать правильно, нужноdocument.createElementNS('svg', 'http://www.w3.org/2000/svg')
по идее при вставке в html нужно писать так
<svg:svg xmlns:svg="http://www.w3.org/2000/svg"><svg:circle cx='10' cy='20' r='10' /></svg:svg>
но это сложно для большинства, потому, как писал выше, разработчики браузеров это упростили
Roman Dvornov @lahmatiy февр. 07 22:16
кстати да, нужно
template: '<svg:svg><svg:circle cx="10" cy="20" r="10" /></svg:svg>'
одинарные кавычки не разрешены для атрибутов в XML/XHTML, парсер шаблонизатора ведет себя как XHTML парсер, поэтому встретив ' он посчитал конструкцию неверной для тега и сконвертировал все в текст
так вот, в шаблонизаторе basis'е нет словарей для тегов, что что-то относится к другому неймспейсу, но он умеет работать с неймспейсами
сейчас там зашиты неймспейсы svg и xlink https://github.com/basisjs/basisjs/blob/master/src/basis/template/namespace.js
конец ответов к 2
The text was updated successfully, but these errors were encountered: