移动适配的另一种方式—— vw / vh

2023-11-15

前言  

        哦吼,之前我们对移动适配的其中一种方式(rem)进行了学习。当时在学习的时候我们有提到过另一种的适配方式。那么今天,我们就一起来对移动适配的另一种方式——vw/vh,进行学习。


        我们在学习了rem后,知道他是相对单位,而且是相对于根元素HTML的字体大小来计算的;我们今天学习的vw/vh,也是相对单位,是相对于视口的尺寸来计算的。下面我们来看一下他们的个人简介,看看他们和rem有什么区别。

vw/vh简介

        vw : 视口宽度(viewport width)

        1vw = 1 / 100  视口宽度

        vh : 视口高度(viewport height)

        1vh = 1 / 100  视口高度  

        例如:设计稿iphone678宽度为375px,高度是667px。vw将屏幕宽度分为100等份,1vw就等于3.75px;vh将屏幕高度划分为100等份,1vh就等于6.67px。


vw/vh初体验

        刚刚我们对vw/vh进行了一个简单的了解,知道了这是一个相对单位,并且是相对于视口的宽高来计算的。那么我们在实际开发过程中,应该如何确定设计稿对应的vw/vh尺寸呢?

那么确定设计稿对应的vw/vh尺寸分为三个步骤:

1、首先我们查看整个设计稿的宽度;

2、然后确定我们需要参考的设备宽度,也就是我们的视口宽度;

3、根据1 / 100的比例,确定vw/vh的尺寸。

        好的,确定设计稿对应的vw/vh尺寸步骤我们已经知道了,那么我们接下来去写一下代码,体验体验vw/vh。

        让我们来创建一个盒子,让他的宽高都为300px,按设计稿iphone678的视口大小来计算。那么我们应该给宽高设置为多少呢?

        很简单,让宽度300 / vw(375的百分之一),得出结果80vw,那么高度也是80vw。

         这是用vw,那么用vh呢,一样的。让高度300 / vh(667的百分之一),得出结果约等于44.97vh,那么宽度也是44.97vh。

        

         那么,我们可以看到,我们使用vw或者vh都不需要去做适配,因为它本身就已经是适配了,这也是我们说,为什么未来的适配方式会是vw/vw了。

        好的,这时候有小伙伴要问了,我在使用vw/vh进行适配的时候,能不能混用?

        接下来,我们一起实验一下,还是以上面的盒子为例。把我们的宽高分别用vw和vh来表示:

 

        嗯~我们可以看到,在设计稿iphone678的视口大小下,我们将vw和vh混用,也可以实现盒子宽高为300px的情况。这是不是就意味着,我们在使用vw和vh进行适配时,可以混用呢?

        别着急,我们继续看!

         看到了吧?当我们将尺寸大小改为响应时,随意拖动他的宽,会发现,只有宽度在随着视口的大小而改变,我们的高度却固定了。

        那么这是为什么呢?重点来了,快拿小本本记上!

        在实际开发过程中,我们不会将vw和vh混用,是因为我们的vh是百分之一的视口高度,那么全面屏的视口高度尺寸比较大,如果vw和vh混用就可能导致盒子变形。

         小伙伴们,记住了吗?不能将vw和vh进行混用!不能将vw和vh进行混用!不能将vw和vh进行混用!(重要的事情说三遍!!!)


rem和vw/vh的区别

        现在我们已经将移动端适配的两种方法都进行了学习,那么我们来总结一下,rem和vw/vh之间的区别。

        rem:在当前市场上比较常见,那么他在使用过程中,需要不断的去修改html的字体大小;需要使用到媒体查询;需要引入flexible.js文件;

        vw/vh:未来市场要用到的,省去了各种判断和修改,不需要再另外做适配。


结束语

        好的,小伙伴们,今天我们的学习到这里就结束了,希望我给大家分享的内容会给大家有一些帮助。当然分享的再有用,只看不练也学不会,所以在之后我们应该去不断的练习,将这些内容变成我们今后吃饭的工具!

        加油!!!奥里给!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动适配的另一种方式—— vw / vh 的相关文章

  • TDD/测试 CSS 和 HTML? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法测试 CSS 和 HTML 例如 有时某些通知会受到某些 CSS 更改的影响 我不想每次进行更改时都手动测试所有通知 Tha
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击
  • asp.net mvc html 属性没有值

    我正在尝试根据 HTML5 规范创建一个隐藏表单 其中隐藏属性在没有值的情况下使用 现在我不知道如何将其强制到 asp net mvc 中 上面的方法不能编译 Compiler Error Message CS0103 The name h
  • 使用画布仅删除文本而不删除图像

    我正在尝试删除画布元素中的文本 而不丢失Background Image of the Canvas Element 我想我需要保存Imagesrc并把它还给Canvas Element之后clearRect 但我不知道该怎么做 我希望有人
  • 如何在文本区域中使用除“文本插入符号”之外的透明字体?

    我有一个简单的文本区域 我需要制作透明字母 同时允许文本插入符可见 当我应用以下规则时 我会得到隐形插入符 textarea background transparent opacity 0 当我键入不可见文本时 我需要看到文本插入符移动
  • 设置浏览器窗口最小化的最小尺寸限制?

    有没有办法在所有浏览器中手动设置浏览器窗口的最小尺寸 你可以试试 body min width 600px 一旦视口小于 600 像素 您将得到一个水平滚动条 这仅适用于支持 min width CSS 属性的现代浏览器 我认为不可能限制用
  • 使用 jQuery 清除 IMG

    我正在尝试从 a 中删除加载的图像 img 元素 但清除或删除 src 不会执行此操作 该怎么办 HTML img src https www google com images srpr logo3w png JQUERY img att
  • 如何在HTML中的PHP中注释掉HTML和PHP?

    这是我想注释掉的一行代码 h1 class post title a href title a h1 一种流行的注释方法是分别注释 html 和 php 有一个更好的方法吗
  • 调整文本区域大小

    我需要使用文本区域来显示一些文本 问题是 如果我放置 4 5 行文本 就会出现滚动条 如何使用 CSS HTML 使文本区域与其内容一样大 没有滚动条 文本区域不需要动态更改其大小 我仅使用它来显示文本 我也可以使用禁用的文本区域 我希望文
  • 如何使用 a-href 标签链接回文件夹? [复制]

    这个问题在这里已经有答案了 好吧 我在文件夹中有一个页面 该页面称为 jobs html 该文件夹简称为 jobs 它是我的 网站 文件夹的子文件夹 在 main 文件夹的主目录中是我的 home html 文件 当我尝试做的时候 a hr
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 防止用户在下拉菜单中选择默认值

    我试图阻止用户选择默认的下拉菜单选项 有没有办法在下拉菜单选项中添加文本而不是值 我的代码
  • W3C 验证器:“握手警报:unrecognized_name”

    我正在尝试验证我的网站W3C Nu Html 检查器 https validator w3 org nu doc https 3A 2F 2Fwww healthdrop in 2F但我遇到了以下错误 不知道为什么 IO 错误 握手警报 u
  • Jquery 中的动态滚动位置

    请帮助我解决以下情况 我有 3 个页面 当滚动到达第二页时 用户滚动页面 它必须找到特定的 ID 然后触发一个函数 一旦第三页开始 另一个函数就会触发 根据要求我不应该使用任何插件
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • JSTL 在循环中每 5 个字段集创建一个新行

    您好 我目前正在迭代并在表中显示字段集列表 为了让布局变得更得体一些 我想在每次循环到达第五个字段集时创建一个新行 谢谢 JSP div class det table class det tr td td tr table div
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4

随机推荐