Это набор изображений, сгенерированный Gatsby:
<source type="image/webp" srcset="
/static/be21c7dd0d11c74c18530fc39aefa922/10917/mailboxes.webp 200w,
/static/be21c7dd0d11c74c18530fc39aefa922/21f2d/mailboxes.webp 400w,
/static/be21c7dd0d11c74c18530fc39aefa922/fdc6a/mailboxes.webp 800w,
/static/be21c7dd0d11c74c18530fc39aefa922/e7f3d/mailboxes.webp 1200w,
/static/be21c7dd0d11c74c18530fc39aefa922/faacb/mailboxes.webp 1600w,
/static/be21c7dd0d11c74c18530fc39aefa922/acdd2/mailboxes.webp 1800w"
sizes="(max-width: 800px) 100vw, 800px">
Мое изображение отображается в контейнере шириной не более 800 пикселей, поэтому я бы предпочел, чтобы браузер выбрал:
if screenWidth > 400 then choose 800w
if screenWidth > 200 then choose 400w
else choose 200w
Однако, браузер фактически всегда выбирает максимально возможное изображение (даже если я изменяю размер браузера до 200 по ширине).
Я считаю, что проблема здесь:
sizes="(max-width: 800px) 100vw, 800px"
Должно быть примерно 3 условия, верно?Вместо этого есть только 1 условие.Я не уверен, что могу даже интерпретировать, что это условие пытается попросить браузер.
Ниже приведен мой код GraphQL:
edges {
node {
excerpt
fields {
slug
prefix
}
frontmatter {
title
tags
cover {
children {
... on ImageSharp {
fluid(maxWidth: 800, maxHeight: 360, traceSVG: { color: "#f9ebd2" }) {
...GatsbyImageSharpFluid_withWebp_tracedSVG
}
}
}
}
}
}
}
Фрагмент ...GatsbyImageSharpFluid_withWebp_tracedSVG
генерирует srcset
и sizes
.В документации нет ничего, что я мог бы сделать, чтобы повлиять на то, как они генерируются.Тем не менее, я мог бы потенциально манипулировать ими на более позднем этапе:
<Picture fluid={fluid} />
Должен ли я манипулировать fluid.sizes
на этом этапе, или есть менее грязный способ исправить srcset?