@@ -590,9 +590,15 @@ private function maybeAddSizerInto(
590590 if ($ layout === Layout::RESPONSIVE ) {
591591 $ elementId = $ element ->getAttribute (Attribute::ID );
592592 if (!empty ($ elementId ) && array_key_exists ($ elementId , $ this ->customSizerStyles )) {
593- $ sizer = $ this ->createResponsiveSizer ($ document , $ width , $ height , $ this ->customSizerStyles [$ elementId ]);
593+ $ sizer = $ this ->createResponsiveSizer (
594+ $ document ,
595+ $ element ,
596+ $ width ,
597+ $ height ,
598+ $ this ->customSizerStyles [$ elementId ]
599+ );
594600 } else {
595- $ sizer = $ this ->createResponsiveSizer ($ document , $ width , $ height );
601+ $ sizer = $ this ->createResponsiveSizer ($ document , $ element , $ width , $ height );
596602 }
597603 } elseif ($ layout === Layout::INTRINSIC ) {
598604 $ sizer = $ this ->createIntrinsicSizer ($ document , $ width , $ height );
@@ -607,25 +613,30 @@ private function maybeAddSizerInto(
607613 * Create a sizer element for a responsive layout.
608614 *
609615 * @param Document $document DOM document to create the sizer for.
616+ * @param Element $element Element to add a sizer to.
610617 * @param CssLength $width Calculated width of the element.
611618 * @param CssLength $height Calculated height of the element.
612619 * @param string $style Style to use for the sizer. Defaults to padding-top in percentage.
613620 * @return Element
614621 */
615622 private function createResponsiveSizer (
616623 Document $ document ,
624+ Element $ element ,
617625 CssLength $ width ,
618626 CssLength $ height ,
619- $ style = 'padding-top:%s%% '
627+ $ style = ''
620628 ) {
621629 $ padding = $ height ->getNumeral () / $ width ->getNumeral () * 100 ;
622630 $ paddingString = rtrim (rtrim (sprintf ('%.4F ' , round ($ padding , 4 )), '0 ' ), '. ' );
631+ $ paddingStyle = ! $ element ->hasAttribute (Attribute::HEIGHTS )
632+ ? sprintf ('padding-top:%s%% ' , $ paddingString )
633+ : '' ;
623634
624- $ style = empty ( $ style ) ? ' display:block ' : "display:block; {$ style }" ;
635+ $ style = "display:block; { $ paddingStyle } ; {$ style }" ;
625636
626637 $ sizer = $ document ->createElement (Amp::SIZER_ELEMENT );
627638 $ sizer ->setAttribute (Attribute::SLOT , Amp::SERVICE_SLOT );
628- $ sizer ->addInlineStyle (sprintf ( $ style, $ paddingString ) );
639+ $ sizer ->addInlineStyle ($ style );
629640
630641 return $ sizer ;
631642 }
0 commit comments