有時候我們會有讓內容剛好佔一屏,並且適配各種尺寸的設備的需求。我們先不談這樣做會導致在一些設備上的顯示不盡人意,直接談如何實現。
我們會第一個想到的可能是,頁面內所有區塊級元素的寬度,高度,邊距值(margin,padding)都用百分數唄。
在水平方向,寬度,水平方向的間距值如果為百分數的值,其值是相對於其父元素的寬度來計算的,可以實現水平方向適配不同尺寸的設備。
在垂直方向,高度值如果為百分數,其值是相對於父元素的高度來計算的。但垂直方向的間距值如果為百分數的話,其值是相對與父元素寬度(而非高度)來計算的,呵呵(無奈~~~)。
因此,水平方向我們可以用百分數的方案來做適配。垂直方向需要其他方案。
我們能不能用 CSS3 的 Media Queries 呢?做不到。雖然 Media Queries 支援對裝置高度的查詢,但我們不可能列舉所有裝置的高度,為每種不同高度的裝置寫一套 CSS 吧。如果只需相容於幾種高度的設備,可以考慮這個方案。
下面介紹幾個解決方案。
用JS 來實作
原理是,在元素上設定高度用data-style-height 屬性,其值為在父元素高度中佔的份數。頁面初始化時,JS 會根據該值,父元素的高度,父元素的高度的總份數,給予該元素的高度賦值。如
<p> </p><p></p> <p></p>
在上面程式碼中,父元素的高度的總份數為 3,a 的高度佔 1 份,b 的高度 佔 2 份。假設父元素的高度是 100px, 則 a 的高度為 (1 / 3 * 100)px
,b 的高度為 (2 / 3 * 100)px
。
相同的,設定間距用這些屬性: data-style-margin-top, data-style-margin-bottom, data-style-# padding-top, data-style-padding-bottom。頁面初始化時,JS 會根據屬性值給元素的對應的間距賦值。
具體實作程式碼請看這裡。
用 flex 實作
原理和用 JS 實現基本一致。用 flex 實作只是用 flex-grow
的值大於 0 的 flex 元素在父空間很大時,會自動變大的特性來取代 JS 的計算。
具體的原理是,在元素上設定高度用data-style-height 屬性,其父元素設定樣式<a href="http://www.php.cn/wiki/927.html" target="_blank">display</a>:flex;flex-<a href="http://www.php.cn/wiki/873.html" target="_blank">direction</a>: column;
。頁面初始化時,JS 會根據該值給該元素設定 flex-grow:屬性值
。間距用帶有 data-style-height 屬性並且元素內容為空的元素來實現。
具體實作程式碼請看這裡。
用圖片實現
如果內容不需要交互,可以將整個頁面做成一張圖片來實現。當然,這樣做後期維護會比較坑爹。
HTML:
<img class="fullpage lazy" src="/static/imghwm/default1.png" data-src="..." alt="適配各種尺寸的設備的實現" >
CSS:
html,body{ height: 100%; } .fullpage{ width: 100%; height: 100%; }
以上是適配各種尺寸的設備的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在這篇文章中,布萊克·莫里(Blackle Mori)向您展示了一些駭客,同時試圖推動同位HTML支持的極限。如果您敢於使用這些,以免您也被標記為CSS罪犯。

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。