Задать вопрос
@zlodiak

Почему в svg не отображается div?

Пытаюсь встроить в svg элемент div. Использую foreignObject.

JSFIDDLE

В результате foreignObject виден(он стилизован), а сам div, ради которого это всё и делалось не виден. Точнее, div в разметке есть, но у нему не применяются стили и текст дива не выводится. Помогите пожалуйста это исправить.

js:
const svg = d3.select('#svg');

const fo = svg.append("foreignObject")
                .attr("class","fo")
                .attr("x","40")
                .attr("y","40")
                .attr("width","100")
                .attr("height","100");

fo.append('div').attr('class', 'div').html('its div');


css:
#svg {
	width: 500px;
	height: 500px;
	background: yellow;
}

.fo {
	background: maroon;
	color: red;
}

.div {
	color: green;
	background: blue;
  padding: 20px;
}
  • Вопрос задан
  • 1301 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F
Надо указать пространство имён, к которому относится добавляемый элемент.

Т.е., вместо append('div') должно быть append('xhtml:div').

Если захотите добавить внутрь div'а ещё что-то - указывать пространство имён уже не нужно, по умолчанию оно наследуется от родительского элемента.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
31 янв. 2025, в 09:18
10000 руб./за проект
31 янв. 2025, в 08:29
1000 руб./в час
31 янв. 2025, в 06:03
9999999 руб./за проект