2015-04-09 4 views
0

Возможно ли, чтобы высота диаграмм в следующем фрагменте кода автоматически изменялась так же, как и ширина (см. Jsfiddle ниже)?Динамическая высота Highcharts с расположением таблицы

<div class="chartTable"> 
    <div class="chartRow"> 
     <div id="chart1" class="leftContainer"></div> 
     <div id="chart2" class="rightContainer"></div> 
    </div> 
    <div class="chartRow"> 
     <div id="chart3" class="leftContainer"></div> 
     <div id="chart4" class="rightContainer"></div> 
    </div> 
</div> 

http://jsfiddle.net/cmoowwm1/

Комментируя обратно в положение «: абсолютные» стили будут иллюстрировать, как я хотел бы, чтобы работать, но, очевидно, нужно все 4 графы в поле зрения.

+0

Вы можете поймать событие $ (window) .resize(), а затем вызвать [chart.setSize()] (http://api.highcharts.com/highcharts#Chart.setSize) с вычисленной шириной/высотой. –

+0

Если возможно, я хотел бы добиться желаемого поведения, используя только CSS, а не манипулировать диаграммами, которые должны реагировать на дизайн. – dre

ответ

1

Если вы хотите использовать только CSS, вам нужно сохранить первую строку position:absolute.

Я использовал position:fixed для второго ряда и bottom: 0, чтобы держать его дно в сноске. Таким образом, это будет работать только для двухстрочной диаграммы. Вот DEMO того, что вы ищете.

+0

Итак, вы говорите, что из-за абсолютного и фиксированного позиционирования это НЕ будет работать, если бы этот экран генерировался динамически, и в этом случае можно было бы создать несколько строк «двух диаграмм»? – dre

+0

Я не полностью понял, что вы подразумеваете под этим предложением, но я имел в виду, что вы можете создать динамически сгенерированную страницу с двумя строками диаграмм (столько, сколько вы можете добавить в строку). Для более двух, мой путь не работает из-за ** 'position: fixed' **. Вы не можете использовать ** 'position: absolute' ** для каждой строки, потому что они будут перекрываться и перекрывать друг друга. –

+0

Да, это именно то, что я имел в виду. Мне нужно создать несколько строк. С тех пор я решил эту проблему с помощью javascript в своем приложении, но я думаю, потому что я не упоминал об этом требовании в моем вопросе, ваш ответ является вполне приемлемым решением. – dre

Смежные вопросы