搜尋
首頁web前端css教學淺談css3 device-width和width之間的差異

這篇文章和大家談談css媒體查詢中device-width與width的差別。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

淺談css3 device-width和width之間的差異

【推薦教學:CSS影片教學 】

1.device-width

定義:定義輸出裝置的螢幕可見寬度。

不管你的網頁是在safari打開還是嵌在某個webview中,device-width都只跟你的設備有關,如果是同一個設備,那麼他的值就不會變。

例如iphone6的device-width*device-height為375*667,而跟他的dpr等無關。

2.width

定義:定義輸出裝置中的頁面可見區域寬度。

輸出的是你的網頁可見區域的寬高,假設你的網頁是行動裝置網頁嵌套在某個webview中,width其實就是webview的寬高,如果在不同的瀏覽器中,width和height也有可能不一樣,又假如,你的頁面用的rem佈局,並且對於retina屏來說dpr>1,meta標籤中設置了content="width=device-width, initial-scale=0.5, minimum-scale=0.5, maximum-scale=0.5, user-scalable=no,viewport-fit=cover",你的iphone6上的width大小就為750px了。

我這裡用得比較用得多的是device-width和device-height,因為不用考慮橫屏的情況

比如說適配iphoneX,你已經明確知道了iphoneX( 375*812)的尺寸就可以用下面語句:

/*iphone x*/
@media only screen and (device-width:375px) and (device-height:812px) and (-webkit-device-pixel-ratio:3) {
    .foriphoneX()
}

又例如最新的三星折疊螢幕

@media screen and (device-width: 586px) and (device-height: 820px){
    html{
        font-size: 110px !important;
    }
}

總之,device-width在一個裝置中是不會變的,他的值跟裝置寬度有關,width在不同的佈局方案或不同的容器中展示都有可能不一樣,這裡我覺得device-width就相當於js的window.screen.width,width相當於js的document .body.clientWidth了。

另外錄下我這裡適配華為折疊螢幕的情況,由於此時還沒真機,我只知道華為展開情況下的解析度為2200*2480,dpr什麼的還不清楚,因此不知道device-width和device-height(我這邊不能用width來做查詢,原因關係到業務邏輯),因此選了device-aspect-ratio,

最開始我在我的less中是這樣寫的

@media (device-aspect-ratio: 55/62) {
    /*适配*/
}

然後css中device-aspect-ratio被計算成小數了

@media (device-aspect-ratio: 0.887097) {
    /*适配*/
}

device-aspect-ratio是不支援小數的,因此匹配不上

所以查了一下怎麼讓less不執行55/62的結果,發現將屬性用引號包起來,並且前面加上波浪號就可以了,像這樣:

@media (device-aspect-ratio: ~"55/62") {
    /*适配部分*/
}

問題解決!

不過MDN上已經不推薦使用device-aspect-ratio了,這個屬性將會被逐廢棄,如果找到了更好的解決方案我也會用替代方案。

更多程式相關知識,請造訪:程式設計入門! !

以上是淺談css3 device-width和width之間的差異的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
@KeyFrames vs CSS過渡:有什麼區別?@KeyFrames vs CSS過渡:有什麼區別?May 14, 2025 am 12:01 AM

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

使用頁面CMS進行靜態站點內容管理使用頁面CMS進行靜態站點內容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y'知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接HTML中CSS文件的最終指南鏈接HTML中CSS文件的最終指南May 13, 2025 am 12:02 AM

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

CSS Flexbox與網格:全面評論CSS Flexbox與網格:全面評論May 12, 2025 am 12:01 AM

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

如何包括CSS文件:方法和最佳實踐如何包括CSS文件:方法和最佳實踐May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

See all articles

熱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

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

熱門文章

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具