CSS里面device-width的使用与width一样吗
Admin 2022-07-04 群英技术资讯 1186 次浏览
这篇文章给大家介绍了“CSS里面device-width的使用与width一样吗”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。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了,这个属性将会被逐废弃,如果找到了更好的解决方案我也会用替代方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
css同一行字体改变不同颜色的方法1、新建一个html文件,命名为test.html,用于讲解如何用css将div中的一行字设置成两种颜色。使用div标签创建一行文字,并设置其class为test,主要
由于容器隐藏横向滚动条后,移动端横向滚动效果不受影响,但是pc端是无法通过鼠标进行横向滚动,因此需要自己手动实现效果。 draggable=
我们知道CSS的font属性是字体样式设置的一个属性,我们经常需要对字体样式进行操作,对此这篇就给大家来讲讲font属性的时候,以及使用需要注意的一些事项问题,文中的示例代码有一定的参考价值,有需要的朋友可以了解看看。
1、不带任何提示关闭窗口的js代码1<inputtype="button"name="close"value="关闭"onclick="window.close();"/>2、自定义提示关闭1<scriptlanguage="javascript">2//这个脚本是ie6和ie7通用的脚本3functio
我们在做一个渐变背景颜色的时候会用到linear-gradient() 函数用于创建一个线性渐变的 "图像"。它是css3中的语法,最低兼容IE10。下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“{title}”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008