Я работаю с SVG в документе HTML. По какой-то причине в Chrome любое содержимое любого элемента <foreignObject>
отображается в верхнем левом углу родительского элемента элемента <svg>
; как будто элемент <foreignObject>
был абсолютно позиционирован или что-то еще У меня нет этой проблемы в Firefox.
Что может быть причиной этого? Как я могу это исправить?
Вот мой тестовый пример: ( пример также на JsFiddle )
<!DOCTYPE html>
<html>
<head>
<title>SVG bug in Chrome?</title>
<style type="text/css">
code {
background: #FFFAEE;
}
pre code {
display:block;
}
.widget-body {
background:yellow;
position: relative; /* This is the problem! */
}
</style>
<body>
<h1>SVG bug in Chrome?</h1>
<div>
<p>
The elemts in the <foreignObject> are not positioned properly unless the <code>.widget-body</code> rule is changed to:
<pre><code>.widget-body {
background:yellow;
/* position: relative; /* This is the problem! */
position: static;
}
Пример:
То, что я ожидаю увидеть (что я вижу в FireFox), это:
Что я получаю в Chrome (15.0.874.121 на Fedora и на планшете Android):
У меня минимальный контроль над содержимым HTML, так как я использую JavaScript Framework для многофункциональных приложений и уже существующих виджетов.