@@ -3671,7 +3671,25 @@ function makePlotFramework(gd) {
36713671 fullLayout . _container . enter ( )
36723672 . insert ( 'div' , ':first-child' )
36733673 . classed ( 'plot-container' , true )
3674- . classed ( 'plotly' , true ) ;
3674+ . classed ( 'plotly' , true )
3675+ // The plot container should always take the full with the height of its
3676+ // parent (the graph div). This ensures that for responsive plots
3677+ // without a height or width set, the paper div will take up the full
3678+ // height & width of the graph div.
3679+ // So, for responsive plots without a height or width set, if the plot
3680+ // container's height is left to 'auto', its height will be dictated by
3681+ // its childrens' height. (The plot container's only child is the paper
3682+ // div.)
3683+ // In this scenario, the paper div's height will be set to 100%,
3684+ // which will be 100% of the plot container's auto height. That is
3685+ // meaninglesss, so the browser will use the paper div's children to set
3686+ // the height of the plot container instead. However, the paper div's
3687+ // children do not have any height, because they are all positioned
3688+ // absolutely, and therefore take up no space.
3689+ . style ( {
3690+ width : "100%" ,
3691+ height : "100%"
3692+ } ) ;
36753693
36763694 // Make the svg container
36773695 fullLayout . _paperdiv = fullLayout . _container . selectAll ( '.svg-container' ) . data ( [ 0 ] ) ;
0 commit comments