色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

CSS網(wǎng)格上的響應(yīng)圖像;如何提供最佳圖像尺寸

我有一個(gè)CSS網(wǎng)格,重復(fù)列的流體布局最小最大(33.8雷姆,1fr)。

網(wǎng)格容器應(yīng)用了最大寬度:140rem,因此它最多顯示4列。網(wǎng)格容器使用margin: 0 auto居中。

每個(gè)網(wǎng)格單元保存一個(gè)& quot卡片& quot下面有一幅圖像和一些文字。

我的問(wèn)題是,我如何讓每張圖片使用一個(gè)接近& quot理想& quot尺寸?

我的問(wèn)題是,雖然我已經(jīng)將:root字體大小設(shè)置為62.5%,因此1rem(通常)等于10px,但我仍然不知道每個(gè)網(wǎng)格列到底有多寬。

對(duì)于大多數(shù)手機(jī),會(huì)顯示一個(gè)單列。這可能小于33.8雷姆,但可能會(huì)更大(1fr),可能略低于2 x 33.8rem雷姆= 66.7雷姆。

以下& ltimg & gt標(biāo)簽工作得相當(dāng)好:

<img alt=""
  src="https://placehold.co/208x130.png"
  sizes="(max-width: 715px) 100vw,
         (max-width: 1069px) 50vw,
         (max-width: 1399px) 33vw,
         25vw"
  srcset="https://placehold.co/320x200.png 320w,
          https://placehold.co/560x350.png 560w,
          https://placehold.co/640x400.png 640w,
          https://placehold.co/704x440.png 704w,
          https://placehold.co/800x500.png 800w,
          https://placehold.co/960x600.png 960w,
          https://placehold.co/1280x800.png 1280w"
/>

大小屬性使用2列、3列和4列下的斷點(diǎn),并使用vw百分比...因此,對(duì)于4列布局,2列以下的任何內(nèi)容都使用100vw,以25vw結(jié)束。(我知道我可以使用calc()從100vw中減去我的填充等;為了簡(jiǎn)單起見,這里不做!)

這似乎工作得很好,將選擇正確的圖像大小,即使在設(shè)備與DPR & gt;1(所以大部分移動(dòng)設(shè)備)。

然而,當(dāng)我使用DPR為1的桌面類型分辨率(比如1920x1080)時(shí),它將使用4列布局。此時(shí),它決定25vw是它應(yīng)該使用的圖像大小,在這種情況下,我知道它應(yīng)該選擇320w圖像,因?yàn)?列布局受到網(wǎng)格容器最大寬度的限制。但是它沒(méi)有——它選擇了一個(gè)更大的圖像!這(我相信)是因?yàn)?920年的25% = 480像素(我假設(shè)一個(gè)最大化的瀏覽器窗口),但網(wǎng)格是居中的,如果少于4列,這是無(wú)關(guān)緊要的,一旦網(wǎng)格達(dá)到其最大寬度,居中工作,所以圖像可能會(huì)更小。

我可以更改大小屬性,使默認(rèn)值為320像素,但這樣它會(huì)請(qǐng)求320像素的圖像,即使在DPR較高的設(shè)備上也不行。

sizes="(max-width: 715px) 100vw,
         (max-width: 1069px) 50vw,
         (max-width: 1399px) 33vw,
         320px"

有什么方法可以解決這個(gè)問(wèn)題嗎?

CSS的主要位在這里(這些是在CSS復(fù)位之后):

:root { font-size: 62.5%; }
body  { font-size: 1.6rem; }
main  { margin: 0 auto; }
.grid {
  display: grid;
  grid-template-columns: repeat( auto-fill, minmax(33.8rem, 1fr) );
  gap: 1.6rem;
}
.card {
  background-color: #f9f9f9;
  padding: 0.8rem;
  border: 1px solid #bacdd8;
}
.card img {
  width: 100%;
}