图片元素 WebP flexing
Picture element WebP flexing
背景:
我现在知道如何弯曲 3 张图片了:
body {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-content: space-around;
align-items: flex-start;
}
img {
width: 30%;
order: 0;
flex: 0 1 auto;
align-self: auto;
}
<img src="https://placehold.it/1024x768" />
<img src="https://placehold.it/1024x768" />
<img src="https://placehold.it/1024x768" />
但我想介绍更小的 WebP 替代图像,我认为您可以使用 picture element.
body {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-content: space-around;
align-items: flex-start;
}
picture {
width: 30%;
order: 0;
flex: 0 1 auto;
align-self: auto;
}
<picture>
<source srcset="http://s.natalian.org/2015-12-12/1024x768.webp" type="image/webp" />
<img src="https://placehold.it/1024x768" />
</picture>
<picture>
<source srcset="http://s.natalian.org/2015-12-12/1024x768.webp" type="image/webp" />
<img src="https://placehold.it/1024x768" />
</picture>
<picture>
<source srcset="http://s.natalian.org/2015-12-12/1024x768.webp" type="image/webp" />
<img src="https://placehold.it/1024x768" />
</picture>
但是,我无法弄清楚如何使 CSS 格式与 IMG 中的 PICTUREs 3 并驾齐驱。我错过了什么?
当您创建弹性容器时,只有 child 元素成为弹性项目。 children 之后的后代不会成为弹性项目,弹性属性不适用于它们。
在您的 first example 中,body
是弹性容器,img
是弹性项目。
但是,在您的第二个示例中,body
是 flex 容器,picture
是 flex 项目,而 img
在 flex 方面没有什么特别之处。这是一个普通的内联元素。
您需要制作 picture
一个(嵌套的)弹性容器,以便将弹性属性应用于图像元素。但在你的情况下,this may not be necessary.
另请注意,picture
元素尚未得到普遍支持(请参阅 caniuse.com)。
您的第一个演示:DEMO 1
您的第二个演示,已修改:DEMO 2
背景:
我现在知道如何弯曲 3 张图片了:
body {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-content: space-around;
align-items: flex-start;
}
img {
width: 30%;
order: 0;
flex: 0 1 auto;
align-self: auto;
}
<img src="https://placehold.it/1024x768" />
<img src="https://placehold.it/1024x768" />
<img src="https://placehold.it/1024x768" />
但我想介绍更小的 WebP 替代图像,我认为您可以使用 picture element.
body {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-content: space-around;
align-items: flex-start;
}
picture {
width: 30%;
order: 0;
flex: 0 1 auto;
align-self: auto;
}
<picture>
<source srcset="http://s.natalian.org/2015-12-12/1024x768.webp" type="image/webp" />
<img src="https://placehold.it/1024x768" />
</picture>
<picture>
<source srcset="http://s.natalian.org/2015-12-12/1024x768.webp" type="image/webp" />
<img src="https://placehold.it/1024x768" />
</picture>
<picture>
<source srcset="http://s.natalian.org/2015-12-12/1024x768.webp" type="image/webp" />
<img src="https://placehold.it/1024x768" />
</picture>
但是,我无法弄清楚如何使 CSS 格式与 IMG 中的 PICTUREs 3 并驾齐驱。我错过了什么?
当您创建弹性容器时,只有 child 元素成为弹性项目。 children 之后的后代不会成为弹性项目,弹性属性不适用于它们。
在您的 first example 中,body
是弹性容器,img
是弹性项目。
但是,在您的第二个示例中,body
是 flex 容器,picture
是 flex 项目,而 img
在 flex 方面没有什么特别之处。这是一个普通的内联元素。
您需要制作 picture
一个(嵌套的)弹性容器,以便将弹性属性应用于图像元素。但在你的情况下,this may not be necessary.
另请注意,picture
元素尚未得到普遍支持(请参阅 caniuse.com)。
您的第一个演示:DEMO 1
您的第二个演示,已修改:DEMO 2