移动端适配布局rem和vw

news2024/11/13 7:55:10

在日益发展的移动互联网时代,作为前端开发者,我们必须了解和掌握各种移动端显示效果的适配技术。在众多适配方案中,使用remvw进行布局是当前最为流行和普遍使用的两种技术。通过合理运用这两种技术,我们可以让我们的网页在不同尺寸的屏幕上都展现出最优越的视觉效果。同时,它们也带来了更大的灵活性和便捷性。那么,如何才能更好地理解和运用这两种技术呢?让我们深入探讨一下移动端适配布局remvw

一、逻辑像素和物理像素

逻辑像素和物理像素都是描述计算机屏幕分辨率的术语。

  1. 逻辑像素:也称为独立像素,它不是表示屏幕上的实际点,而是一个抽象的单位,由系统使用。例如,在编程时,我们经常基于逻辑像素进行布局设计,因为逻辑像素具有稳定性和一致性,它能在不同的设备和分辨率中保持不变。

  2. 物理像素:也称为设备像素,代表屏幕上的实际点。每个物理像素包括一个或多个可以发光的子像素(通常是红色、绿色和蓝色的子像素)。屏幕分辨率为1920×1080,说明屏幕宽度为1920个物理像素,高度为1080个物理像素。

逻辑像素和物理像素的关系是通过一个叫做设备像素比(Device Pixel Ratio)来定义的,即物理像素数目与逻辑像素数目的比值。例如,若设备像素比为2,那么表示一个逻辑像素等于2×2的物理像素网格。

例如iPhone 8的屏幕分辨率为750×1334,但因为设备像素比为2,所以对于开发者来说,他的屏幕大小则变为375×667个逻辑像素,这样开发者就可以基于375×667这个固定的逻辑分辨率来进行布局设计和元素的定位。当然,实际显示效果的清晰度和细节度会取决于物理像素的数量。

总结如下:

  • 逻辑像素:CSS中的像素,绝对单位,保证不同设备下元素的尺寸是相同的。
  • 物理像素:设备屏幕实际拥有的像素点,相对单位,不同设备下物理像素大小不同。

二、视口元标签

视口元标签(Viewport Meta Tag)是一个HTML的<meta>标签的一个版本,它让网页开发者可以控制视口的大小和比例。这对于响应式网页设计来说特别重要,因为它可以帮助确保内容在各种设备上正确渲染。

视口元标签的主要用途有:

  1. 建立移动设备友好的网站:使用视口元标签可以保证页面在移动设备上的正确显示。
  2. 控制页面的大小和缩放:可以设置initial-scale,minimum-scale,maximum-scale属性来控制页面的初始缩放级别、最小和最大的缩放级别。
  3. 改善用户体验:使用视口元标签可以使用户在使用不同设备查看网页时获得更好的体验。

一个常见的视口元标签看起来像这样:

<meta name="viewport" content="width=device-width, initial-scale=1">
  • name="viewport"这部分代码告诉浏览器这是一个视口元标签。

  • content="width=device-width, initial-scale=1.0"这部分代码则定义了视口的具体行为。

    • width=device-width设置布局视口的宽度等于设备正面的宽度(单位是设备无关像素),则页面会在各种设备上具有相同的布局宽度。

    • initial-scale=1.0设定初始缩放比例为1.0,这意味着默认情况下页面的宽度就是浏览器视口的宽度,不会发生任何缩放。

这个标签的意思是设置视口的宽度等于设备的宽度,并且页面的初始缩放级别为1
这段代码的主要目的是确保您的网页在所有屏幕和设备上都能以适当的大小和比例显示,而不需要用户手动缩放或滚动

meta标签可设置的属性如下:

属性描述
width设备的显示屏幕的宽度,常用的值有device-width(代表设备宽度)和600等具体数值
height设备的显示屏幕的高度,常用的值有device-height(代表设备的高度)和800等具体数值
initial-scale初始缩放比例,即网页首次被显示是相对于视口的缩放比例,通常设置为1.0
minimum-scale允许用户缩小到的最小比例,必须是一个数字,默认值为0.25
maximum-scale允许用户放大到的最大比例,必须是一个数字,默认值为1.6
user-scalable用户是否可以手动缩放,值为no表示不可以,yes表示可以。

三、 em和rem

1. em和rem的基本概念

em和rem都是CSS中的长度单位,用于设置元素的字体大小、高度、宽度等属性。

  • em相对单位相对于父元素的字体大小。如果父元素的字体大小未被指定,则em会相对于浏览器的默认字体大小,通常是16px。例如,如果父元素字体大小是20px,那么“1em”就等于20px,“0.5em”就等于10px。

  • rem相对单位,和em类似,不过rem是相对于根元素(html)的字体大小,而不是相对于父元素的字体大小。例如,如果html的字体大小是20px,那么“1rem”就等于20px,“0.5rem”就等于10px。

代码示例:

<html>
<head>
<style>
    /* 设置根元素的字体大小为20px */
    html { font-size: 20px; }
    div { font-size: 2rem; } /* 2rem = 40px */
    p { font-size: 2em; } /* 2em 的实际大小取决于其父元素div的字体大小,因此是2*40px=80px */
</style>
</head>
<body>
    <div>
        这段文字的字体大小是2rem,实际大小为40px。
        <p>这段文字的字体大小是2em,实际大小为80px。</p>
    </div>
</body>
</html>

在这个例子中,p元素的字体大小是2em。因为其父元素div的字体大小是40px(2rem),所以2em实际上等于80px。因此,用em和rem作为长度单位可以方便地实现相对布局和响应式设计。

使用em和rem的好处是能够让网页在不同的设备和浏览器上更好地显示,并且可以轻松地实现响应式设计。

2. vscode插件px to rem

vscode中推荐使用px to rem插件
在这里插入图片描述
pxrem都是CSS样式中的长度单位。在不同的设备和显示屏上,px的尺寸是固定的,而rem的尺寸是相对的,可以根据网页的根字体大小(root em)进行缩放。在响应式设计中,为了使网页的布局和元素能在不同大小的设备上自适应显示,通常会使用rem作为长度单位。

VSCode插件px to rem可以帮助你在编写CSS样式时自动将px单位转换为rem单位,使得你无需手动进行计算和转换,提高了编程的效率。只需要你在设置中定义好根字体大小,该插件就会根据这个大小将你输入的px值自动转换为对应的rem值。

  • 配置转换率
    在这里插入图片描述
    在这里插入图片描述
    在这里配置转换单位,就是1rem等于多少px,一般设置为100方便计算。
  • 转换快捷键 alt + z
    在这里插入图片描述
    使用也很简单,将你写的px代码选中,再按alt+z就可以转换成rem拉。

四、 vw

1. vw基本概念

vw是在CSS中使用的相对单位,全称是viewport width,即视口宽度。1vw等于视口宽度的1%。

在响应式设计中,vw单位被广泛用于创建可在不同屏幕尺寸和分辨率下正常工作的布局。因为它们是相对于视口尺寸的,而不是像像素那样是固定的,所以在改变视口大小时,使用vw单位的元素可以自动调整大小,以保持在视口中的相对位置和尺寸。

例如,如果你将一个元素的宽度设置为50vw,那么无论视口的宽度如何,这个元素的宽度始终为视口宽度的50%。这使得在不同设备和屏幔尺寸上保持布局的一致性成为可能。

2. px转换vw

在不同的设备和视口中,1vw的尺寸表示的是视口宽度的1%,vw单位能帮助创建更加灵活和可适应的布局。

将px转换vw可以手动计算,也可以通过在线工具或插件自动转换。

  • 手动计算:
    转化的公式是: 1vw = 100 / 设计稿的宽度(px)。
    所以px转为vw就是: 元素的宽度(px) * (100 / 设计稿的宽度(px)) = 元素的宽度(vw)。例如设计稿的宽度是750px,那么元素的宽度20px就可以转为: 20 * (100 / 750) = 2.667vw。

  • 在线工具:
    可以使用在线单位转换工具,例如PX to VW/VH转换工具。

  • 插件:
    一些前端开发工具和IDE提供了插件支持自动转换,例如VSCode就有px to vw等插件。
    在这里插入图片描述
    这个使用方式和px-to-rem差不多,就不多赘述了。

需要注意,vw单位不一定在所有浏览器和设备上都能完美支持,可以根据实际需求选择使用。

3. 实际应用

在移动端开发页面时,vw(Viewport-Width)是一种相对于视口宽度的单位,可以用来实现响应式布局。下面是一个完整案例,具体步骤如下:

  1. 创建一个HTML文件,并引入CSS文件。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>使用vw实现响应式布局</title>
  <link rel="stylesheet" href="./style.css">
</head>
<body>
  <h1>使用vw实现响应式布局</h1>
  <p>这是一段文字,会随着屏幕大小的变化而改变大小。</p>
</body>
</html>
  1. 在CSS文件中,使用vw来定义元素的大小和位置。
h1 {
  font-size: 6vw;
  margin-top: 3vw;
}

p {
  font-size: 4vw;
  line-height: 6vw;
}

在上面的代码中,h1的字体大小和margin-top都是使用vw作为单位的,表示它们的大小和视口宽度成比例。p元素的字体大小和行高也是使用vw单位的,这样就可以实现在不同屏幕大小下,文字大小和行距的适配。

  1. 在浏览器中查看页面效果。

在浏览器中打开HTML文件,可以看到页面会自动适应屏幕大小,文字大小和行距也会按比例缩放。如果在PC机上查看,可以尝试改变浏览器窗口大小观察效果。

通过上面的案例,可以看到使用vw单位可以很方便地实现响应式布局,而不需要使用复杂的CSS媒体查询。但需要注意的是,在使用vw单位时,需要根据具体情况来设置合适的比例,否则可能会导致显示效果不佳。

五、pxcook像素转换工具

pxcook是一款设计工具,主要针对的是设计人员和前端开发者,并能快速生成css样式代码。它能做如下几种操作:

  1. 它可以提取UI设计稿中的颜色、字体、尺寸、间距等属性。
  2. 它能将设计稿直接对话切图,大大减少了设计和前端的沟通时间。
  3. 通过pxcook工具可以导出设计师和开发者都能理解的设计规范,使团队间的沟通更高效。
  4. 它提供设计稿的全局统一分析,快速生成主题色板并提取字体元素。
  5. 支持多平台和多种设计工具(PS/Sketch/蓝湖/拖拽图片)的设计稿解析。

pxCook下载地址:https://www.fancynode.com.cn/pxcook

在这里插入图片描述

六、总结

在移动端适配布局方案中,rem和vw都是值得推荐的方案。使用rem可以根据根元素的字体大小来进行相对单位的适配,而vw则是根据视口的宽度来进行适配。在选择使用哪种方案时,需要根据项目的具体情况进行选择。无论是使用rem还是vw,都需要充分考虑各种屏幕尺寸和设备像素密度的差异,以达到最佳的适配效果。希望这篇文章能为你提供一些帮助,让你更加深入地了解移动端适配布局的相关知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/816054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIP——前期综合实验

前期综合实验 一、实验拓扑二、实验要求三、实验思路四、实验步骤1、配置接口IP地址2、交换机配置划分vlan10以及vlan203、总部分部&#xff0c;骨干网配置OSPF分部总部骨干网 4、配置BGP建立邻居关系总部骨干网分部 5、发布用户网段6、将下一跳改为本地7、允许AS重复8、重发布…

揭秘!头条百科词条创建全过程及技巧解析

随着互联网时代的到来&#xff0c;人们获取信息的方式越来越便捷。作为国内领先的信息平台&#xff0c;头条百科成为了很多人查阅知识的首选。然而&#xff0c;如何在头条上创建百科词条&#xff0c;让更多人了解和熟知自己呢&#xff1f;本文伯乐网络传媒将为您揭开这个谜团&a…

何恺明把神经网络做深了,谷歌把神经网络的入口拉大了,又深又大,才成为今天的大模型

openai chatgpt 相关_个人渣记录仅为自己搜索用的博客-CSDN博客 大神回归学界&#xff1a;何恺明宣布加入 MIT 如今大模型都在使用的 transformer 的编码器和解码器&#xff0c;里面都有源自 ResNet 的残差链接。 「在 ResNet 之后就可以有效地训练超过百层的深度神经网络&…

Windows 实例如何开放端口

矩池云 Windows 实例相比于 Linux 实例&#xff0c;除了在租用机器的时候自定义端口外&#xff0c;还需要在 Windows防火墙中添加入口规则。接下来将教大家如何设置 Windows 防火墙&#xff0c;启用端口。 租用成功后通过 RDP 链接连接服务器&#xff0c;然后搜索防火墙&#x…

uniapp使用getStorage对属性赋值无效

1正常set(get)storage都是可以正常使用的 2.但对属性进行赋值的时候&#xff0c;却发现this.name并没有发生变化 3. 在里面打印this发现&#xff0c;在set*getStorage中并不能拿到this. 4.优化代码 这样就可以给this.name成功赋值

pinia 状态管理器详细文档记录,如何使用pinia看着一篇就够了!!!

目录 安装Pinia 定义store 1.option对象写法&#xff1a; 2.Setup 函数写法 使用store 接下来细化一下pinia的三大核心概念 state、action、getter 一、state 访问 state 重置 state 变更 state 替换 state 订阅 state 二、Getter 访问其他 getter 向 getter 传递…

116、你是如何理解Spring事务的传播机制的?底层是如何实现的?

你是如何理解Spring事务的传播机制的&#xff1f;底层是如何实现的&#xff1f; 一个线程在运行过程中&#xff0c;可能会连续调用好几个方法&#xff0c;在调用某一个方法时&#xff0c;可能就开启了一个Spring事务&#xff0c;那么在调用接下来的方法时&#xff0c;到底是共用…

【C++】二叉搜索树的原理及实现

简介 二叉搜索树(Binary Search Tree&#xff0c;BST)是一种常用的数据结构&#xff0c;本文将介绍二叉搜索树的原理与特性&#xff0c;并给出C代码实现&#xff0c;最后对其性能进行详细的分析。 文章目录 简介 一、二叉搜索树的概念 二、二叉搜索树的操作及实现 2、1 二叉搜…

01|Oracle学习(监听程序、管理工具、PL/SQL Developer、本地网络服务介绍)

基础概念 监听程序&#xff1a;运行在Oracle服务器端用于侦听客户端请求的程序。 相当于保安&#xff0c;你来找人&#xff0c;他会拦你&#xff0c;问你找谁。他去帮你叫人过来。 配置监听程序应用场景 Oracle数据库软件安装之后没有监听程序&#xff08;服务&#xff09;…

pdf阅读器哪个好用?这个阅读器别错过

pdf阅读器哪个好用&#xff1f;PDF是一种流行的文件格式&#xff0c;可以保留文档的原始格式、布局和字体。与其他文档格式相比&#xff0c;PDF在不同设备和操作系统上的显示效果更为一致&#xff0c;确保文档内容的准确性和可读性。在阅读一些PDF文件的时候&#xff0c;使用一…

文本怎么用手机生成二维码?二维码在线文本码制作技巧

现在二维码可以展示的内容越来越丰富&#xff0c;比如文本就是很常见的一种形式。编辑好文本内容之后&#xff0c;将文字内容添加到二维码中&#xff0c;其他人扫码就可以获取到文字内容&#xff0c;那么文本二维码该如何制作呢&#xff1f;想要制作二维码&#xff0c;那么可以…

全网最牛,postman接口测试-高级应用实战(总结)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 流程控制 流程控…

【Excel自动化办公】openpyxl如何实现Excel超链接批量化设置?

Python是一种高效的编程语言&#xff0c;它可以方便地处理各种文件格式&#xff0c;包括Excel。 在Excel中&#xff0c;超链接是一种非常有用的功能&#xff0c;它可以让用户快速跳转到其他工作表或其他文件中的特定单元格。 在本文中&#xff0c;我们将介绍如何使用Python来…

openpnp - Enable Visual Homing

文章目录 openpnp - Enable Visual Homing概述笔记视觉归零设置END openpnp - Enable Visual Homing 概述 设备已经完全通过openpnp的校验了. 当时发现一个问题, 视觉归零如果使能, 就会使主校准点和次校准点的位置发生变化, 导致顶部相机十字不能准确的落在主/次校准点上. 当…

【计算机网络】HTTP 协议详解

文章目录 1. HTTP 协议介绍2. HTTP 协议的工作过程3. Fiddler 抓包工具介绍3.1 抓包工具的使用3.2 抓包结果3.3 抓包工具原理 4. HTTP 协议格式总览5. HTTP 请求&#xff08;Request&#xff09;5.1 认识 URLURL 基本介绍URL 基本格式URL 参数介绍URLencode 介绍 5.2 认识“方法…

同一数据集(相同路径)的 FID 为负数

公众号&#xff1a;EDPJ 先说结论&#xff1a;这是算法中对复数取实部的结果&#xff0c;对 FID 的影响不大。 FID是从原始图像的计算机视觉特征的统计方面&#xff0c;来衡量两组图像的相似度&#xff0c;是计算真实图像和生成图像的特征向量之间距离的一种度量。 这种视觉特…

CASS数据带属性转GIS的shp数据教程

一、数据&#xff1a;DWG文件中含有JZD&#xff08;宗地层&#xff09;&#xff0c;JZP&#xff08;界址点层&#xff09;&#xff0c;其中JZP中含有界址点号&#xff0c;实现JZD层转成ZD的shp数据&#xff1b;JZP转成JZD点的shp数据&#xff0c;并带出界址点号。 二、实现原理…

flutter 导出iOS问题2

问题1:The Swift pod FirebaseCoreInternal depends upon GoogleUtilities, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries) 参考 正如上图报错第三方…

基于P2P技术的远距离传输大型文件解决方案

随着互联网的普及和数据存储的快速发展&#xff0c;远距离传输大型文件成为一种常态。传统的文件传输方式&#xff0c;如邮件、FTP等&#xff0c;通常只适用于小型文件的传输&#xff0c;对于大型文件的传输则效率低下并且很容易遇到传输失败的问题。面对这个问题&#xff0c;P…

一起学算法(位运算篇)

1.位运算 1.二进制数值表示 在计算机中&#xff0c;我们可以用单纯的0和1来表示数字&#xff0c;一般不产生歧义&#xff0c;我们会在数字的右下角写上它的进制&#xff0c;例如&#xff1a;1010&#xff08;10&#xff09;其表示的是1010&#xff0c;1010&#xff08;2&#…