css中device-width与width有什么区别

css中device-width与width有什么区别

1、device-width

定义:定义输出设备的屏幕可见宽度。

不管你的网页是在safari打开还是嵌在某个webview中,device-width都只跟你的设备有关,如果是同一个设备,那么他的值就不会变。

比如iphone6的device-width*device-height为375*667,而跟他的dpr等无关。

(推荐教程:CSS教程)

立即学习“前端免费学习笔记(深入)”;

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)的尺寸就可以用下面语句:

@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了,这个属性将会被逐废弃。

相关视频教程推荐:CSS教程

以上就是css中device-width与width有什么区别的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2886352.html

(0)
上一篇 2025年3月10日 20:50:27
下一篇 2025年3月1日 04:25:06

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css如何实现下划线滑动效果

    本文主要讲述两种下划线动效效果,第一种悬停时x轴由内向外展开实现动画效果,第二种为左右自动展示,由左向右,或由右向左。 实现的主要效果是利用伪类标签,以及hover,利用transfromm trition实现动画效果。 x轴由内向外展开 …

    2025年3月10日
    200
  • 详细介绍css中的数学表达式calc()

    数学表达式calc()是css中的函数,主要用于数学运算。使用calc()为页面元素布局提供了便利和新的思路。 定义 数学表达式calc()是calculate计算的缩写,它允许使用+、-、*、/这四种运算符,可以混合使用%、px、em、r…

    2025年3月10日
    200
  • css如何控制网页背景颜色

    说到背景也就只有背景颜色和颜色图片,这两个我想大家一定都知道在里加入bgcolor=”#808080″和background=”url”对吧,可是我这里将要介绍不是这样做的,而是用css样式来…

    2025年3月10日
    200
  • css如何实现边框长度控制功能

    以前需要边框长度比容器小一些时,我用div嵌套。后来发现伪类在实现这个效果时很方便,只需要一个div就够了,另外调整padding和margin都不会很麻烦。 (推荐教程:CSS入门教程) border topborder leftbord…

    2025年3月10日
    200
  • css中的content属性该如何使用

    content属性一般用于::before、::after伪元素中,用于呈现伪元素的内容。平时content属性值我们用的最多的就是给个纯字符,其实它还有很多值可供选择。 1、插入纯字符 *{margin: 0;padding: 0;box…

    2025年3月10日
    200
  • 关于css中的类名问题的介绍

    以下以数字开头的 css 类名不会生效: .1st{    color: red;} 登录后复制 一个合法的 CSS 类名必需以下面其中之一作为开头: 1、下划线 _ 2、短横线 – 3、字母 a – z 立即学习“…

    2025年3月10日
    200
  • css如何实现网页背景动态渐变效果

    html部分: nbsp;html>     渐变——天际线           渐变——天际线     登录后复制 实现背景颜色渐变不需要在HTML(结构)部分做任何操作 这里加了一行字,方便显示效果; (推荐教程:CSS教程) C…

    2025年3月10日
    200
  • css如何解决图片底部空白缝隙问题

    问题描述: 引用图片时下方总出现空白,情况如下图所示。 css代码: .img-box { border: 2px solid red; width: 550px; }    @@##@@ 登录后复制 原因分析: 立即学习“前端免费学习笔记…

    2025年3月10日
    200
  • css实现文字竖排效果

    html中文字的默认排列是横向排列的,但一些特殊情况下是需要文字竖向排列的。 单行文字竖向排列 .onecn{     width: 20px;      margin: 0 auto;      line-height: 24px;  }…

    2025年3月10日 编程技术
    200
  • css实现文本图标对齐的方法

    开发中遇见图片跟文字放在一行显示是最常见不过的了,两个行内元素的对齐通常也是最令人头疼,有时候明明使用了最常用的对齐方法,却总还是有些许偏差,先来看一个最基本的示例: html部分:     @@##@@    xx测试对齐Style- 登…

    2025年3月10日 编程技术
    200

发表回复

登录后才能评论