首頁 web前端 css教學 使用現代CSS構建響應式圖像網格

使用現代CSS構建響應式圖像網格

Feb 22, 2025 am 10:01 AM

本文使用響應式圖像庫探討了掌握響應網格佈局中列之間間距的技術。

>>要進一步了解響應式佈局,請查看我們的屏幕截圖:在Flexbox中創建多列佈局。

鑰匙要點:

  • 可以通過精確控制柱間間距來實現自定義響應的佈局,如響應式圖像庫所證明的那樣。
  • display: inline-block方法創建響應式圖像庫;將父字體的大小設置為零,刪除了默認的內聯窗口間距。
  • >
  • Flexbox有效地解決了常見的佈局問題,在所有屏幕尺寸上創建了相等的高度列,從而簡化了響應式圖像網格中的柱間間距控制。
  • >媒體查詢和CSS網格佈局啟用響應式圖像網格,根據設備特徵(屏幕尺寸)應用不同的CSS規則。

構建一個響應式佈局:>

在較大的屏幕上,畫廊類似於以下內容:

>

Using Modern CSS to Build a Responsive Image Grid

在較小的屏幕上:

Using Modern CSS to Build a Responsive Image Grid

簡單標記:

<div>
  <a href="https://www.php.cn/link/14d2bc475177e1dde633b4ca1972d53c">
    <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/"  class="lazy" alt="Using Modern CSS to Build a Responsive Image Grid " />
  </a>
  <!-- ...more images... -->
</div>
登入後複製
登入後複製
幾種佈局方法實現了這一目標。 在探索兩個之前,讓我們重申要求:

    在中屏和較小的屏幕上的兩列佈局。
  • 8px柱間間距。

使用inline-block

方法構建畫廊。 考慮一下此CSS:display: inline-block

div {
  font-size: 0;
}

a {
  font-size: 16px;
  display: inline-block;
  margin-bottom: 8px;
  width: calc(50% - 4px);
  margin-right: 8px;
}

a:nth-of-type(2n) {
  margin-right: 0;
}

@media screen and (min-width: 50em) {
  a {
    width: calc(25% - 6px);
  }

  a:nth-of-type(2n) {
    margin-right: 8px;
  }

  a:nth-of-type(4n) {
    margin-right: 0;
  }
}
登入後複製
登入後複製
>說明:

通過將父字體大小設置為零來覆蓋

默認的內聯塊間距。 子元素字體大小可能需要重置(不在此)。

>

小屏幕具有兩個列佈局,帶有8px間距。 列寬度計算:

    >每行的總列空間:1 * 8px = 8px(8px,而不是16px,因為從每個第二列中刪除了右邊緣)。
  • >
  • 列寬度:
  • (4px = 8px / 2)。 calc(50% - 4px)

Using Modern CSS to Build a Responsive Image Grid

大屏幕具有四列佈局,帶有8px間距。列寬度計算:

    >每排總列空間:3 * 8px = 24px(24px,而不是32px,因為從每個第四列中刪除了右邊緣)。
  • 列寬:
  • (6px = 24px / 4)。
  • > calc(25% - 6px)

Using Modern CSS to Build a Responsive Image Grid 請參閱

方法的Codepen演示。

>

使用flexbox:

inline-block解決方案具有缺點。 添加標題演示一個:

更新的標記:

<div>
  <a href="https://www.php.cn/link/14d2bc475177e1dde633b4ca1972d53c">
    <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/"  class="lazy" alt="Using Modern CSS to Build a Responsive Image Grid " />
  </a>
  <!-- ...more images... -->
</div>
登入後複製
登入後複製

>帶有標題的大屏幕庫:

Using Modern CSS to Build a Responsive Image Grid

通過Flexbox解決

不相等的高度。 更新父元素的CSS:

div {
  font-size: 0;
}

a {
  font-size: 16px;
  display: inline-block;
  margin-bottom: 8px;
  width: calc(50% - 4px);
  margin-right: 8px;
}

a:nth-of-type(2n) {
  margin-right: 0;
}

@media screen and (min-width: 50em) {
  a {
    width: calc(25% - 6px);
  }

  a:nth-of-type(2n) {
    margin-right: 8px;
  }

  a:nth-of-type(4n) {
    margin-right: 0;
  }
}
登入後複製
登入後複製

結果是在所有屏幕上相等的高度列。大屏幕示例:

Using Modern CSS to Build a Responsive Image Grid

>使用帶有改進字幕的Flexbox請參閱Codepen演示。

> Flexbox的

屬性並未直接創建此佈局。 justify-content>和space-between在最後一行導致尷尬的分佈。 CSS:space-around

<div>
  <a href="https://www.php.cn/link/14d2bc475177e1dde633b4ca1972d53c">
    <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/"  class="lazy" alt="Using Modern CSS to Build a Responsive Image Grid " />
    <figcaption>Some text here</figcaption>
  </a>
  <!-- ...more images... -->
</div>
登入後複製
>否

需要; margin-right處理項目分佈。 justify-content

>使用

屬性參見Codepen演示。 justify-content

結論: >本文詳細介紹了用於控制響應圖像網格中柱間間距的技術。

就足夠了,flexbox更容易,更方便,尤其是

>。 inline-blockcalc()在我們的屏幕截圖中了解有關Flexbox佈局的更多信息:在Flexbox中創建多列佈局。

> >(為簡潔而省略了FAQ部分,因為這是對常見響應式設計問題的重複。)

以上是使用現代CSS構建響應式圖像網格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1657
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1229
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

如何通過CSS選擇第一個類名為item的子元素? 如何通過CSS選擇第一個類名為item的子元素? Apr 05, 2025 pm 11:24 PM

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

為什麼在Safari中自定義樣式表能在本地網頁生效,但在百度頁面上卻無法生效? 為什麼在Safari中自定義樣式表能在本地網頁生效,但在百度頁面上卻無法生效? Apr 05, 2025 pm 05:15 PM

在Safari中使用自定義樣式表的問題探討今天我們來探討一個關於Safari瀏覽器的自定義樣式表應用問題。前端新手...

See all articles