目錄
將主要內容與背景分離
對內聯圖像使用object-fit 屬性
即將推出:aspect-ratio
首頁 web前端 css教學 流體圖像以變量比例佈局

流體圖像以變量比例佈局

Apr 04, 2025 am 09:51 AM

Fluid Images in a Variable Proportion Layout

處理獨立佈局中的流體圖像如今已相當容易。然而,對於更複雜的界面,我們經常需要將圖像放置在響應式元素內,例如這張卡片:

假設此圖像是非語義內容,僅作裝飾。這非常適合使用background-image 。並且,由於此圖像包含對象,我們不能在響應式佈局時裁剪任何部分,因此我們選擇background-size: contain

問題在於:在移動設備上,此卡片方向發生變化並變為垂直方向,圖像位於頂部。我們可以使用任何類型的CSS 佈局技術實現這一點,並且可能最好使用CSS 網格或彈性盒。

但是,當我們測試較小的屏幕時,由於contain屬性,我們會得到以下結果:

這不太理想。圖像調整大小以保持其縱橫比,不會裁剪任何細節,如果圖像是重要內容並且不應裁剪,則我們不能將background-size更改為cover

此時,我們的下一個嘗試可能很熟悉:將圖像內聯放置,而不是背景。

在桌面設備上,這可以正常工作:

在移動設備上也不錯:

但在較小的屏幕上,由於所有固定大小,圖像的比例會失真。

我們可以花費數小時來調整圖像、卡片和彈性屬性,來回調整。或者,我們可以……

將主要內容與背景分離

這是在響應式圖像方面獲得更大靈活性和彈性的基礎。雖然並非在所有情況下都能實現,但在許多情況下,只需在設計方面稍加努力即可實現,尤其是在預先計劃這種方法的情況下。

在我們的下一次迭代中,我們將草莓圖像放在透明背景上,並使用CSS 設置光柵圖像中的藍色。通過調整樣本空間的大小,繼續在演示中使用視口大小進行操作!

仔細查看樣式,請注意我們還向包含圖像的div 添加了填充,因此草莓不會過於靠近邊緣。我們可以通過此填充完全控制我們希望它們有多近或多遠。

請注意,我們還使用負邊距來補償外部卡片包裝上的填充,否則圖像周圍會出現空白。

對內聯圖像使用object-fit 屬性

儘管之前的演示有效,但我們仍然可以改進這種方法。到目前為止,我們假設該圖像是無語義內容——但在此佈局中,圖像插圖也可能不僅僅是裝飾。

如果是這種情況,我們絕對不希望圖像被裁剪,因為這實際上相當於數據丟失。為了防止這種情況,最好將圖像內聯放置而不是背景,我們可以使用object-fit屬性來實現。

我們已從背景中提取草莓,它現在是一個內聯元素,但我們保留了同一圖像div 中的背景顏色。

最後,將object-fit: contain100%寬度相結合,可以調整窗口大小並保持草莓的縱橫比。但是,這種方法的缺點是,我們需要為桌面版本的圖像設置固定高度——否則它將遵循設置寬度的比例(降低它會改變佈局)。如果我們需要使用可變數量的文本生成這些卡片,這些文本會換行,這可能會使事情過於受限。

即將推出:aspect-ratio

上述問題的解決方案可能即將通過即將推出的aspect-ratio屬性實現。這將允許設置元素的固定比例,例如:

 .el {
  aspect-ratio: 16 / 9;
}
登入後複製

這意味著我們將能夠消除固定高度並將其替換為我們計算的縱橫比。例如,我們最後一個示例的桌面斷點中的尺寸如下所示:

 .image {
  /* ... */
  height: 184px;
  width: 318px;
}
登入後複製

使用aspect-ratio ,我們可以刪除高度聲明並進行計算以獲得最接近184 的比例:

 .image {
  /* ... */
  width: 318px; /* 基準寬度*/
  height: unset; /* 重置在媒體查詢之外設置的高度*/
  aspect-ratio: 159 / 92; /* 接近184px 高度*/
}
登入後複製

如果您想了解更多信息,可以在本文中更深入地探討即將推出的屬性。

最後,有多種方法可以在可變比例佈局中實現可靠的響應式圖像。但是,使這項工作更容易——並且更好——的技巧不一定在於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教學
1663
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1264
29
C# 教程
1237
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中數據屬性的所有信息。

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

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

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

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

如何在WordPress主題中構建VUE組件 如何在WordPress主題中構建VUE組件 Apr 11, 2025 am 11:03 AM

內聯式模板指令使我們能夠將豐富的VUE組件構建為對現有WordPress標記的逐步增強。

php是A-OK用於模板 php是A-OK用於模板 Apr 11, 2025 am 11:04 AM

PHP模板通常會因促進Subpar代碼而變得不良說唱,但這並不是這樣的情況。讓我們看一下PHP項目如何執行基本的

編程SASS創建可訪問的顏色組合 編程SASS創建可訪問的顏色組合 Apr 09, 2025 am 11:30 AM

我們一直在尋求使網絡更容易訪問。顏色對比只是數學,因此Sass可以幫助涵蓋設計師可能錯過的邊緣案例。

See all articles