Search code examples
amp-html

AMP carousel with fixed-height does not work


I am starting to AMPlify web pages after attending the AMP team's excellent roadshow yesterday. If I use layout="responsive", the carousel works flawlessly. However, if I use layout="fixed-height", the images are not displayed, only the navigation button is there. The following is from the page's source:

<amp-carousel width="450" height="300" layout="fixed-height" type="slides" class="i-amphtml-element i-amphtml-carousel-has-controls i-amphtml-slidescroll">
  <!-- Use `type="slides"` to display a list of images as slides. -->
  <div class="i-amphtml-slides-container" aria-live="polite">
    <div class="i-amphtml-slide-item">
      <amp-img alt="ART" height="300" width="450" src="/Content/images/foo_01.png" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined amp-carousel-slide">
        <i-amphtml-sizer style="display: block; padding-top: 66.6667%;"></i-amphtml-sizer>
      </amp-img>
    </div>
    <div class="i-amphtml-slide-item">
      <amp-img alt="ART" height="300" width="450" src="/Content/images/foo_02.png" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined amp-carousel-slide">
        <i-amphtml-sizer style="display: block; padding-top: 66.6667%;"></i-amphtml-sizer>
      </amp-img>
    </div>
    <div class="i-amphtml-slide-item">
      <amp-img alt="ART" height="300" width="450" src="/Content/images/foo_03.png" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined amp-carousel-slide">
        <i-amphtml-sizer style="display: block; padding-top: 66.6667%;"></i-amphtml-sizer>
      </amp-img>
    </div>
    <div class="i-amphtml-slide-item">
      <amp-img alt="ART" height="300" width="450" src="/Content/images/foo_04.png" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined amp-carousel-slide">
        <i-amphtml-sizer style="display: block; padding-top: 66.6667%;"></i-amphtml-sizer>
      </amp-img>
    </div>
    <div class="i-amphtml-slide-item">
      <amp-img alt="ART" height="300" width="450" src="/Content/images/foo_05.png" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined amp-carousel-slide">
        <i-amphtml-sizer style="display: block; padding-top: 66.6667%;"></i-amphtml-sizer>
      </amp-img>
    </div>
    <div class="i-amphtml-slide-item">
      <amp-img alt="ART" height="300" width="450" src="/Content/images/foo_06.png" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined amp-carousel-slide">
        <i-amphtml-sizer style="display: block; padding-top: 66.6667%;"></i-amphtml-sizer>
      </amp-img>
    </div>
  </div>
  <div tabindex="0" class="amp-carousel-button amp-carousel-button-prev amp-disabled" role="button" aria-disabled="true"></div>
  <div tabindex="0" class="amp-carousel-button amp-carousel-button-next" role="button" aria-disabled="false"></div>
</amp-carousel>

Any hint will be greatly appreciated.


Solution

  • The fixed-height layout type does not accept a defined width. Either remove width from your amp-carousel tag or change the value to auto.

    You can learn more about the different layout attributes here.