目錄
將主要內容與背景分離
對內聯圖像使用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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++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教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

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

靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

與部分元素的交易 與部分元素的交易 Apr 12, 2025 am 11:39 AM

同一天發表了兩篇文章:

多腳步滑塊:一般案例 多腳步滑塊:一般案例 Apr 12, 2025 am 10:52 AM

這個兩部分系列的第一部分詳細介紹了我們如何獲得兩次跑步的滑塊。現在,我們&#039;

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

我們如何標記Google字體並創建Goofonts.com 我們如何標記Google字體並創建Goofonts.com Apr 12, 2025 pm 12:02 PM

Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭 Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

See all articles