html – 我可以用于高度和宽度受限的图像吗?

我有一个幻灯片放映的东西,图像将尽可能大,但不超过视口的宽度或高度.基本上是对象:包含.

我想让这些图像反应灵敏,因为对于手机而言,“尽可能大”,而大型桌面则非常不同.我不能使用< img srcset>因为现在,它只有屏幕密度(x描述符)或宽度(w描述符).离开< picture>自己手动制作选择逻辑.

我开始时:

<picture>
  <source media="(orientation:portrait)"
          sizes="(max-width: 1200px) 100vw,1200px"
          srcset="300.jpg 300w,500.jpg 500w,800.jpg 800w,1200.jpg 1200w">
  <source sizes="(max-width: 1200px) 100vw,1200.jpg 1200w">
  <img src="default.jpg" alt="a man slipping on a banana peel">
</picture>

但它并不像屏幕的方向那么简单,因为所涉及的实际宽高比对于视口(非常高的手机,浏览器工具栏等)和图像本身而言都会变得非常奇特;相同的图像可能在一个屏幕上受到宽度约束,但在另一个屏幕上受到高度约束.我想我可以编写一个解析宽高比的脚本,但是我很难将其转化为有意义的srcset和sizes列表.

理想情况下< img srcset>将get the h descriptor soon,但我想要一起解决现在可以工作的东西.

解决方法

我想我得到它(1/2)等于(宽度/高度):

<img 
    srcset="http://lorempixel.com/960/1920/sports/10/w1920/ 960w"
    sizes="(min-aspect-ratio: 1/2) calc(100vh * (1 / 2))"
    />

或者使用更多代码:

<img
    srcset="http://lorempixel.com/960/1920/sports/10/w1920/ 960w"
    sizes="(min-aspect-ratio: 1/2) calc(100vh * (1 / 2)),100vw"
    />

作为旁注:我还编写了一个脚本,可以自动计算父高度/宽度约束大小的正确大小.见这里parent-fit script.

相关文章

HTML代码中要想改变字体颜色,常常需要使用CSS样式表。CSS是...
HTML代码如何让字体盖住图片呢?需要使用CSS的position属性及...
HTML代码字体设置 在HTML中,我们可以使用标签来设置网页中的...
在网页设计中,HTML代码的字体和字号选择是非常重要的一个环...
HTML(Hypertext Markup Language,超文本标记语言)是一种用...
外链是指在一个网页中添加一个指向其他网站的链接,用户可以...