Стиль закрытия встроенного CSS SVG-изображения не работает - PullRequest
0 голосов
/ 03 октября 2018

У меня странная проблема с рендерингом изображений SVG, содержащих текст.Когда я добавляю собственный шрифт в раздел DEF и встраиваю изображение в тело документа, все работает отлично.

Однако, когда я определяю тот же код SVG как часть URL-адреса изображения CSS, явижу странное поведение.

Прежде всего, мой редактор (подсветка синтаксиса) и браузер отмечают проблему, когда они видят закрывающий тег "style" в определении css.В приведенном ниже примере я использовал html-кодировку для закрывающего тега стиля, чтобы заставить страницу действительно работать!Однако, спросите вы можете видеть, что шрифт, отображаемый в результате фонового подхода CSS, использует неправильный шрифт.

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

Взгляните на мой рабочий пример здесь!https://jsfiddle.net/j72ayfrn/

Если вы редактируете CSS и переключаетесь на использование обычного закрывающего тега, ничего не отображается.Скопируйте код и запустите в своем браузере, и вы получите код, напечатанный на вашем экране.

Любые идеи !!Спасибо

HTML

<div class="size This_Works">

        </div>
        <div class="size This_Doesnt">
                <svg width='390' height='54' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'>
                    <defs>
                        <style type='text/css'> 
                            @font-face {
                                font-family: 'Charmonman';
                                font-style: normal;
                                font-weight: 400;
                                src: local('Charmonman Regular'), local('Charmonman-Regular'), url(https://fonts.gstatic.com/s/charmonman/v1/MjQDmiR3vP_nuxDv47jiaJaivQ.woff2) format('woff2');
                            }
                        </style>
                    </defs>
                    <style type='text/css'> 
                        .st0 {
                            font-family:'Charmonman';
                        } 
                    </style> 
                    <text x='50%' y='50%' text-anchor='middle' dominant-baseline='central' class='st0' style='fill:rgb(37,37,38);'>This font is Right</text>
                </svg>
        </div>

CSS

.size {
            width: 500px;
            height: 200px;
            background-color: ;
        }
        .This_Doesnt {
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
            background-image: url("data:image/svg+xml;utf8,<svg width='390' height='54' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><defs><style type='text/css'> @font-face { font-family: 'Charmonman'; font-style: normal; font-weight: 400; src: local('Charmonman Regular'), local('Charmonman-Regular'), url(https://fonts.gstatic.com/s/charmonman/v1/MjQDmiR3vP_nuxDv47jiaJaivQ.woff2) format('woff2'); } %3C%2Fstyle%3E </defs><style type='text/css'> .st0{font-family:'Charmonman';} %3C%2Fstyle%3E <text x='50%' y='50%' text-anchor='middle' dominant-baseline='central' class='st0' style='fill:rgb(37,37,38);'>The font is wrong</text></svg>");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...