Я создаю таблицу, которая должна отображать данные приемлимым образом. И не занимать ширину 100%, если она не нужна.
Проблема в том, что в одном столбце я использую линейную диаграмму, и когда я строю эту диаграмму с помощью div, она работает хорошо, но когда я использую SVG, таблица занимает 100% (я предпочитаю использовать SVG, поскольку он более гибкий).
Ниже показано, как должна выглядеть таблица (и это выглядит так, если использовать div вместо SVG для отображения линейной диаграммы):
И вот так таблица выглядит при использовании SVG, занимая всю ширину страницы.
Я предполагаю, что это потому, что SVG пытается захватить как можно больше места и раздувает таблицу до 100%.
Как это можно исправить?
Я использую фиксированный макет таблицы и фиксированную процентную ширину столбца. Я не знаю заранее данные, которые будут отображаться в таблице, и ширину таблицы, таблица должна автоматически определять оптимальную ширину.
Один из возможных способов исправить это - сначала скрыть линейные графики SVG и позволить визуализировать таблицу без SVG. А затем через 1 мс или около того, когда таблица будет отрисована, измерить ширину таблицы и явно установить ее с помощью JS. Затем отобразите строки SVG, и таблица будет ограничена явной шириной, измеренной ранее.
Но, может быть, есть способ попроще?
Вот способ, чтобы отключить влияние SVG на ширину. Вы просто устанавливаете width: 0 и добавляете min-width: 100%, чтобы снова восстановить полную ширину:
Он должен работать на вашем реальном примере (я тестировал)