HTML — Понимание автоматически сгенерированного кода из https://www.responsivebreakpoints.com — Веб-адаптивные изображения

#html #responsive-design #auto-generate

#HTML #адаптивный дизайн #автоматическое создание

Вопрос:

Я пытаюсь создать веб-страницу с изображениями, которые меняют свой размер в зависимости от размера окна. И я нашел следующий веб-сайт: https://www.responsivebreakpoints.com

Этот веб-сайт генерирует веб-адаптивный HTML-код, когда вы загружаете изображение, которое хотите адаптировать (а также обрезаете его и даете вам все разные размеры).

Я смотрел на код, и я изо всех сил пытаюсь его понять:

 <picture>
      <source
      media="(max-width: 767px)"
      sizes="(max-width: 1534px) 100vw, 1534px"
      srcset="
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_50.jpg 50w,
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_656.jpg 656w,
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_893.jpg 893w,
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1121.jpg 1121w,
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1291.jpg 1291w,
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1452.jpg 1452w,
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1529.jpg 1529w,
            milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1534.jpg 1534w">
      <source
      media="(min-width: 768px) and (max-width: 991px)"
      sizes="(max-width: 1983px) 70vw, 1388px"
      srcset="
            milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_538.jpg 538w,
            milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_945.jpg 945w,
            milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_1222.jpg 1222w,
            milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_1349.jpg 1349w,
            milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_1388.jpg 1388w">
      <source
      media="(min-width: 992px) and (max-width: 1199px)"
      sizes="(max-width: 2400px) 60vw, 1440px"
      srcset="
            milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_596.jpg 596w,
            milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_1068.jpg 1068w,
            milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_1398.jpg 1398w,
            milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_1440.jpg 1440w">
      <img
      sizes="(max-width: 13688px) 40vw, 5475px"
      srcset="
            milkyway_a0ye1g_c_scale,w_480.jpg 480w,
            milkyway_a0ye1g_c_scale,w_1614.jpg 1614w,
            milkyway_a0ye1g_c_scale,w_2334.jpg 2334w,
            milkyway_a0ye1g_c_scale,w_2831.jpg 2831w,
            milkyway_a0ye1g_c_scale,w_3485.jpg 3485w,
            milkyway_a0ye1g_c_scale,w_4042.jpg 4042w,
            milkyway_a0ye1g_c_scale,w_4479.jpg 4479w,
            milkyway_a0ye1g_c_scale,w_4882.jpg 4882w,
            milkyway_a0ye1g_c_scale,w_5379.jpg 5379w,
            milkyway_a0ye1g_c_scale,w_5475.jpg 5475w"
      src="milkyway_a0ye1g_c_scale,w_5475.jpg" alt="">
</picture>
 

В чем разница между размерами и носителями? Насколько я понимаю, media=»(max-width:767px)» является условием, и следующий код выполняется только в том случае, если размер окна меньше 768 пикселей. Если это так, то какой смысл иметь еще большее количество пикселей в размерах?

Ответ №1:

Я немного покопался в Sublime Text 3 и обнаружил, что если код очищен, визуальный результат будет таким же:

 <picture>
    <source
    media="(max-width: 767px)"
    sizes="100vw"
    srcset="
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_50.jpg 50w,
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_656.jpg 656w,
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_893.jpg 893w,
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1121.jpg 1121w,
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1291.jpg 1291w,
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1452.jpg 1452w,
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1529.jpg 1529w,
        milkyway_a0ye1g_ar_1_1,c_fill,g_auto__c_scale,w_1534.jpg 1534w">
    <source
    media="(min-width: 768px) and (max-width: 991px)"
    sizes="70vw"
    srcset="
        milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_538.jpg 538w,
        milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_945.jpg 945w,
        milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_1222.jpg 1222w,
        milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_1349.jpg 1349w,
        milkyway_a0ye1g_ar_4_3,c_fill,g_auto__c_scale,w_1388.jpg 1388w">
    <source
    media="(min-width: 992px) and (max-width: 1199px)"
    sizes="60vw"
    srcset="
        milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_596.jpg 596w,
        milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_1068.jpg 1068w,
        milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_1398.jpg 1398w,
        milkyway_a0ye1g_ar_16_9,c_fill,g_auto__c_scale,w_1440.jpg 1440w">
    <img
    sizes="40vw"
    srcset="
        milkyway_a0ye1g_c_scale,w_480.jpg 480w,
        milkyway_a0ye1g_c_scale,w_1614.jpg 1614w,
        milkyway_a0ye1g_c_scale,w_2334.jpg 2334w,
        milkyway_a0ye1g_c_scale,w_2831.jpg 2831w,
        milkyway_a0ye1g_c_scale,w_3485.jpg 3485w,
        milkyway_a0ye1g_c_scale,w_4042.jpg 4042w,
        milkyway_a0ye1g_c_scale,w_4479.jpg 4479w,
        milkyway_a0ye1g_c_scale,w_4882.jpg 4882w,
        milkyway_a0ye1g_c_scale,w_5379.jpg 5379w,
        milkyway_a0ye1g_c_scale,w_5475.jpg 5475w"
    src="milkyway_a0ye1g_c_scale,w_5475.jpg" alt="">
</picture>
 

Как вы можете видеть, размеры теперь занимают только% экрана, который будет использоваться изображением. Другие параметры ничего не сделали. Я полагаю, как это часто бывает в автоматически сгенерированном коде, что лишний материал бесполезен и может быть очищен для уменьшения размера.
Носитель более ограничен, и поэтому параметры в размерах не просматриваются.