- В SVG 1.1 свойство переполнения для
<svg>
элементов по умолчанию скрыто. - В SVG 2 предлагается, чтобы он по умолчанию был видимым.
Кажется, что Chrome реализовал это предлагаемое изменение SVG 2, но Firefox, вероятно, не будет.
Вы действительно должны рисовать внутри холста SVG и не зависеть от видимого переполнения, поскольку он имеет довольно большой удар по производительности, поскольку браузер больше не может предполагать, что максимальные границы холста SVG - это высота и ширина внешнего SVG-элемента.
Если вам действительно нужно рисовать за пределами границ, просто явно установите переполнение, чтобы получить согласованное поведение в разных браузерах, например
var chart = d3.select("#container").append("svg")
.attr("class", "chart")
.attr("width", 800) // bar has a fixed width
.attr("height", 300)
.attr("overflow", "visible")
.style("padding-top", "20px")