Почему Mobile Chrome не рендерит SVG с ссылками? - PullRequest
1 голос
/ 11 апреля 2019

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

Он отлично отображается в Safari (для настольных и мобильных), Brave (для настольных и мобильных), Firefox (настольный и мобильный), а также браузер Chrome для настольных ПК.По какой-то причине изображение вообще не отображается в мобильном браузере Chrome.

<?xml version="1.0" encoding="utf-8"?>

<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 viewBox="0 0 1650 145" style="enable-background:new 0 0 1650 145;" xml:space="preserve">

<style type="text/css">
    .st0{fill:#F7F7F7;}
</style>

<path class="st0" d="M-5.2,0l0,2.9c0.5,0.7,0.8,1.6,0.8,2.8c0,0.3,0,0.6,0,1c0.1,0.4,0.1,0.8,0,1.3c0,0.1,0,0.2,0,0.3
c-0.1,3.4-0.2,6.8-0.5,10.1l2,122.9c0.1,0.8,0.2,1.5,0.3,2.3c0.6-1.8,2.1-3.2,4.5-3.2c3.9,0,5.4,3.6,4.6,6.5l836.1-2.6l4.4-33.5
L-5.2,0z"/>

<path class="st0" d="M1648.9,8.3c-0.3-1.2-0.5-2.4-0.8-3.5c-0.2-0.9-0.2-1.7,0-2.4c-0.2-1.6,0.3-2.9,1.1-3.9l-852,115l4.2,31.5
c0,0,0.1,0,0.1,0c1.8,0,3.1,0.8,3.9,1.9l843.2-2l2.2-97.4C1650.9,34.3,1650.6,21.2,1648.9,8.3z"/>

<path class="st0" d="M803.1,157.5C802,154,802,151,802,147C802,151,802,154,803.1,157.5"/>
</svg>

1 Ответ

1 голос
/ 12 апреля 2019

После дальнейшего устранения неполадок я обнаружил, что мой SVG также хорошо отображается в мобильном браузере Chrome для iOS, но не в мобильном браузере Chrome для Android.

Оказывается, мобильный браузер Chrome для Android не будет отображать SVG, если я установлю высоту родительского элемента в «vh» вместо «px».

Чтобы уточнить, я бы установил высоту моего родительского элемента равной 40vh (с SVG, на который ссылается дочерний элемент как фоновое изображение), а в Chrome mobile for Android не будет отображаться SVG. Как только я изменил высоту родительского элемента на 350 пикселей, мобильный браузер Chrome для Android отобразил SVG, на который ссылается дочерний элемент, просто отлично.

В итоге - мобильный браузер Chrome, в частности для Android, не любит:

.parent {
    height: 40vh;
}
.child {
    background-image: url(images/example.svg);
}

Но это так:

.parent {
    height: 350px;
}
.child {
    background-image: url(images/example.svg);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...