這篇文章給大家分享的是有關(guān)css3媒體查詢中device-width和width的區(qū)別有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
超過(guò)10多年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營(yíng)模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:網(wǎng)站建設(shè)、做網(wǎng)站,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,微信小程序開(kāi)發(fā),微信開(kāi)發(fā),重慶App定制開(kāi)發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營(yíng)銷(xiāo)和我們一樣獲得訂單和生意!
1.device-width
定義:定義輸出設(shè)備的屏幕可見(jiàn)寬度。
不管你的網(wǎng)頁(yè)是在safari打開(kāi)還是嵌在某個(gè)webview中,device-width都只跟你的設(shè)備有關(guān),如果是同一個(gè)設(shè)備,那么他的值就不會(huì)變。
比如iphone6的device-width*device-height為375*667,而跟他的dpr等無(wú)關(guān)。
2.width
定義:定義輸出設(shè)備中的頁(yè)面可見(jiàn)區(qū)域?qū)挾取?/p>
輸出的是你的網(wǎng)頁(yè)可見(jiàn)區(qū)域的寬高,假設(shè)你的網(wǎng)頁(yè)是移動(dòng)端網(wǎng)頁(yè)嵌套在某個(gè)webview中,width實(shí)際上就是webview的寬高,如果在不同的瀏覽器中,width和height也有可能不一樣,又假如,你的頁(yè)面用的rem布局,并且對(duì)于retina屏來(lái)說(shuō)dpr>1,meta標(biāo)簽中設(shè)置了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,因?yàn)椴挥每紤]橫屏的情況
比如說(shuō)適配iphoneX,你已經(jīng)明確知道了iphoneX(375*812)的尺寸就可以用下面語(yǔ)句:
/*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在一個(gè)設(shè)備中是不會(huì)變的,他的值跟設(shè)備寬度有關(guān),width在不同的布局方案或者不同的容器中展示都有可能不一樣,這里我覺(jué)得device-width就相當(dāng)于js的window.screen.width,width相當(dāng)于js的document.body.clientWidth了。
另外記錄一下我這里適配華為折疊屏的情況,由于此時(shí)還沒(méi)真機(jī),我只知道華為展開(kāi)情況下的分辨率為2200*2480,dpr什么的還不清楚,因此不知道device-width和device-height(我這邊不能用width來(lái)做查詢,原因關(guān)系到業(yè)務(wù)邏輯),因此選了device-aspect-ratio,
最開(kāi)始我在我的less中是這樣寫(xiě)的
@media (device-aspect-ratio: 55/62) { /*適配*/ }
然后css中device-aspect-ratio被計(jì)算成小數(shù)了
@media (device-aspect-ratio: 0.887097) { /*適配*/ }
device-aspect-ratio是不支持小數(shù)的,因此匹配不上
所以查了一下怎么讓less不執(zhí)行55/62的結(jié)果,發(fā)現(xiàn)將屬性用引號(hào)包起來(lái),并且前面加上波浪號(hào)就可以了,像這樣:
@media (device-aspect-ratio: ~"55/62") { /*適配部分*/ }
問(wèn)題解決!
不過(guò)MDN上已經(jīng)不推薦使用device-aspect-ratio了,這個(gè)屬性將會(huì)被逐廢棄,如果找到了更好的解決方案我也會(huì)用替代方案。
感謝各位的閱讀!關(guān)于“css3媒體查詢中device-width和width的區(qū)別有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!