Каким образом код в amp-html должен реагировать на многостолбцовые изображения? - PullRequest
0 голосов
/ 08 октября 2018

Это то, что я имел в виду, по этой ссылке с кодом

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
    box-sizing: border-box;
}

.row {
    display: flex;
}

/* Create three equal columns that sits next to each other */
.column {
    flex: 33.33%;
    padding: 5px;
}
</style>
</head>
<body>

<h2>Images Side by Side</h2>
<p>How to create side-by-side images with CSS Flexbox:</p>

<div class="row">
  <div class="column">
    <img src="img_snow.jpg" alt="Snow" style="width:100%">
  </div>
  <div class="column">
    <img src="img_forest.jpg" alt="Forest" style="width:100%">
  </div>
  <div class="column">
    <img src="img_mountains.jpg" alt="Mountains" style="width:100%">
  </div>
</div>

</body>
</html>

С этим кодом одна строка с тремя изображениями рядом, и если размер экрана изменяетсяэти 3 изображения увеличиваются / уменьшаются соответственно пропорционально.

Я нашел в интернете информацию об amp-html примерно так:

<!doctype html>
<html ⚡>
<head>
  <meta charset="utf-8">
  <title>AMP #0</title>
  <link rel="canonical" href="amps.html" >
  <meta name="viewport" content="width=device-width,minimum-scale=1">
  <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>

  <style amp-custom>
  .container {
    display: flex;
    flex-direction: row;
    width: 450px;
    height: 200px;
    margin:auto;
  }

  </style>

  <script async src="https://cdn.ampproject.org/v0.js"></script>
</head>

<body>

<div class="container">
   <amp-img class="child-flex-default" src="https://lh3.googleusercontent.com/pSECrJ82R7-AqeBCOEPGPM9iG9OEIQ_QXcbubWIOdkY=w400-h300-no-n" layout=flex-item></amp-img>
  <amp-img class="child-flex-default" src="https://lh3.googleusercontent.com/5rcQ32ml8E5ONp9f9-Rf78IofLb9QjS5_0mqsY1zEFc=w400-h300-no-n" layout=flex-item></amp-img>
  <amp-img class="child-flex-default" src="https://lh3.googleusercontent.com/Z4gtm5Bkxyv21Z2PtbTf95Clb9AE4VTR6olbBKYrenM=w400-h300-no-n" layout=flex-item></amp-img>
</div>

</body>
</html>

Но то, что в коде amp-html нене увеличивать / уменьшать эти три изображения при изменении размера экрана.

Поэтому я попытался изменить стиль следующим образом:

  <style amp-custom>
  .container {
    display: flex;
    flex-direction: row;
    max-width: 450px;
    height: 200px;
    margin:auto;
  }

  </style>

Ширина этих трех изображений увеличилась / уменьшиласькогда я изменяю размер экрана, но не высоту.Поэтому я попытался изменить height: 200px; на max-height: 200px;, после чего все три изображения исчезли (без отображения).Тот же результат, если я удалил атрибут высоты в этом стиле, без отображения.

Мой вопрос:
Как мне написать код, чтобы ширина и высота пропорционально менялись при изменении размераэкран?

1 Ответ

0 голосов
/ 09 октября 2018

Измените свой стиль следующим образом:

 .container {
    display: flex;
 }

 .child-flex-default{
    width: 100%; // Or 33.33%, or whatever. Just make sure you specify in %
 }

Теперь вы должны изменить свои amp-img теги следующим образом с помощью layout="responsive":

<amp-img width="150" height="200" layout="responsive" class="child-flex-default" src="https://lh3.googleusercontent.com/pSECrJ82R7-AqeBCOEPGPM9iG9OEIQ_QXcbubWIOdkY=w400-h300-no-n"></amp-img>
<amp-img width="150" height="200" layout="responsive" class="child-flex-default" src="https://lh3.googleusercontent.com/5rcQ32ml8E5ONp9f9-Rf78IofLb9QjS5_0mqsY1zEFc=w400-h300-no-n"></amp-img>
<amp-img width="150" height="200" layout="responsive" class="child-flex-default" src="https://lh3.googleusercontent.com/Z4gtm5Bkxyv21Z2PtbTf95Clb9AE4VTR6olbBKYrenM=w400-h300-no-n"></amp-img>

Просто обратите внимание, что когда выиспользовать отзывчивый макет, вы должны указать атрибуты width и height.И теперь ваши изображения будут изменяться в соответствии с указанным вами соотношением width, height.

...