首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

移动端适配viewport缩放方案

# 1、前言 设计师交付给前端一张宽度为750px的视觉稿,并对设计稿上元素的尺寸、颜色、位置等做了标注,要求工程师工在适配不同屏幕尺寸的设备时采用等比缩放的方案。...采用viewport缩放的方案能又快又好的实现需求。 # 2、原理 在写HTML、CSS对设计稿进行还原时不关注屏幕尺寸的差异,而是直接按设计稿的标注来开发。...之后需要通过JavaScript计算获取屏幕的宽度(假设需要适配逻辑像素宽度是428px的屏幕),在HTML的head里添加viewport" content="width=750px...这段代码的意思是:设置布局视口(layout viewport)的宽度为750px(此时页面一般会超出屏幕),再缩放页面(initial-scale)使其恰好撑满屏幕。 # 3、适配代码 适配范围广。 缺点:页面整体放大缩小,对于不想缩放的元素无法控制。比如边框在大屏手机下显得很粗,在小屏手机下显得很细。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    利用css @viewport 做设备适配

    在需要调整设备浏览器的viewport时,我们通常在HTML中使用来解决。但是令人意想不到的是,viewport meta标签并不具有“规范性”,即它不是W3C的正式标准,也非Web标准。...viewport meta标签是用做布局的,这种活本应属于CSS的职能。这也是为什么W3C正在尝试规范一种新的设备适配方法的原因,将HTML对viewport的控制转交给CSS。...@viewport CSS 规则 使用@viewport规则控制viewport,与使用meta标签的效果相同,只是我们完全使用CSS来控制。...奇怪的是,在viewport小于400px的时候,IE10忽略了viewport meta标签,所以依赖meta标签的站点,在这种小窗口下是没有优化效果的。...@viewport 与 Media Queries配合使用 我们可以在media query里面使用@viewport,已达到更加精准的优化。

    65010

    移动端页面适配方案(viewport)

    大家好,又见面了,我是你们的朋友全栈君。...通过 viewport"> 给视口设置固定的宽度,浏览器对页面自动缩放来实现页面的适配效果 优点是可以使用px布局,不用额外进行rem或者vw等等单位的换算了 缺点是如果是无滚动条的页面在某些设备上...(例如平板这种宽高3比4的,折叠屏8比7的)由于宽高比不同有些区域会被挤到视口之外从而导致一些体验上的问题,不过demo2也给出了解决方案; 这里给两个demo,demo1是有滚动条页面的示例,demo2...,若是可以就给viewport设置为固定的宽度让浏览器自适应,若是不行让viewport为设备原始的视口宽度给页面的body等设置固定的宽度然后居中即可。...注:下面的js中的0.6跟css媒体查询中的3/5 (3➗5=0.6 )就是宽高比 这个宽高比我是通过chrome的移动设备模拟器来得出的,即将设备类型调整为responsive,然后手动去调整得到一个最小的可展示内容区域的宽高比

    62510

    viewport缩放方法,解决移动端自适配

    一、概述: 做了几年的移动端一直用 rem ,感觉最繁琐的就是 rem 的计算。随便可以用 css rem 自动计算,但是有时候感觉宽度跟高度的 rem 并不是完全准确。...所以决定用 viewport 缩放来试试看效果,经过一些网友的帮忙测试,发现缩放 viewport 这种方法更简单、高效、准确 二、思路: 例如效果图是:750*1334(px)的源文件。...1、根据750 PSD源图 宽度尺寸进行比例缩放,高度并没有限制,所以高度是自由的 2、缩放viewport的同时,宽度跟高度是等比的,所以敢说这种方式比rem更准确。...三、js核心代码: 代码说明:切图时只需要按照PSD尺寸大小设置px即可,无需复杂的 rem 计算 js 代码: (function (doc, win) { var maxwidth...,user-scalable=no 属性的设置,可能会限制缩放效果 总结: 使用缩放 viewport 来做移动端适配确实简单,但在缩放时,有人反应页面会出现糊的情况。

    1.1K10

    JS 适配器模式

    简介 适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。 2....对象适配器可以适配它的父对象接口方法或属性。...而适配器则意味着改变一个已有对象的接口。 装饰者模式增强了其它对象的功能而同时又不改变它的接口,因此它对应程序的透明性比适配器要好,其结果是装饰者支持递归组合,而纯粹使用适配器则是不可能的。...---- 本文是系列文章,可以相互参考印证,共同进步~ JS 抽象工厂模式 JS 工厂模式 JS 建造者模式 JS 原型模式 JS 单例模式 JS 回调模式 JS 外观模式 JS 适配器模式 JS 利用高阶函数实现函数缓存...(备忘模式) JS 状态模式 JS 桥接模式 JS 观察者模式 网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~ 参考: 《Javascript 设计模式

    1K20

    理想的viewport(视口)并不存在

    如果我们从收集到的数据点中筛选出前20个独特的视口尺寸,主要都是较小的尺寸。你可能会推测这些都是移动设备——特别是前10个——但也值得考虑的是,视口尺寸也会因环境条件而有所不同。...然而,如果你倾向于使用非常特定的断点和硬编码的字体、尺寸和间距,即使出发点很好,你也可能发现自己并没有提供最佳的用户体验。...有趣的比较 来自流行框架的断点(Breakpoints) Figma中的断点 这一切的要点是什么? 我们想强调的主要观点是,你根本无法知道用户会以何种方式访问你的网站或网络应用。...与其基于严格、有限的断点来做出设计决策,不如考虑到视口尺寸存在的大量碎片化。 我们向客户的总是建议,成为浏览器的引导者,而非其微管理者。...创建灵活的规则,并允许浏览器发挥其最擅长的一面:根据所处的条件计算出最佳的展示效果。 这一点也同样适用于你的项目规划。在规划页面内容时,问问自己对于那些不符合典型模式的奇怪视口尺寸,情况会是如何?

    21730

    浅谈移动端中的视口(viewport)

    而移动端则较为复杂,它涉及到三个视口:布局视口(Layout Viewport)、视觉视口(Visual Viewport)和理想视口(Ideal Viewport)。 本文主要讨论移动端中的视口。...物理像素(设备像素,device pixels) 指的是设备屏幕的物理像素,任何设备的物理像素数量都是固定的。 CSS 像素(CSS pixels) 是 CSS 和 JS 中使用的一个抽象概念。...布局视口(layout viewport) 一般移动设备的浏览器都默认设置了一个 viewport 元标签,定义一个虚拟的布局视口(layout viewport),用于解决早期的页面在手机上显示的问题...理想视口(ideal viewport) 布局视口的默认宽度并不是一个理想的宽度,于是 Apple 和其他浏览器厂商引入了理想视口的概念,它对设备而言是最理想的布局视口尺寸。...2.视口的设置 我们可以使用视口元标签(viewport meta 标签)来进行布局视口的设置 "viewport" content="width=device-width,initial-scale

    2.3K20

    移动前端开发之viewport的深入理解

    在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备...然而,layout viewport 的宽度是大于浏览器可视区域的宽度的,所以我们还需要一个viewport来代表 浏览器可视区域的大小,ppk把这个viewport叫做 visual viewport...但浏览器觉得还不够,因为现在越来越多的网站都会为移动设备进行单独的设计,所以必须还要有一个能完美适配移动设备的viewport。...所谓的完美适配指的是,首先不需要用户缩放和横向滚动条就能正常的查看网站的所有内容;第二,显示的文字的大小是合适,比如一段14px大小的文字,不会因为在一个高密度像素的屏幕里显示得太小而无法看清,理想的情况是这段...五、把当前的viewport宽度设置为 ideal viewport 的宽度 要得到ideal viewport就必须把默认的layout viewport的宽度设为移动设备的屏幕宽度。

    1.1K50

    JS设计模式之适配器模式

    意图 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。...——《设计模式:可复用面向对象软件的基础》中文版第106页 值得注意的是,在JS中,我们对于数据类型的适配(把后端传来的JSON转成我们希望的格式)也应属于适配器的范畴,所以下文中分别叙述它们的应用...适配方法 假设我们有谷歌地图和百度地图的API,但是它们俩提供的方法名字不同,如下: const googleMap = { show() { console.log('Shows...适配类型 除了传统的适配相同方法外,在JS中还经常做适配不同类型的操作,如下: function bookAdapter(book) { return { name: book[...虽然它与传统意义上的适配器有区别,但我认为两者的思想是相同的,故这里也展示一下。 参考 设计模式:可复用面向对象软件的基础 JavaScript设计模式——适配器模式 JS 适配器模式

    31410

    移动端最佳适配解决方案

    移动端最佳适配解决方案 移动端rem的适配已经淘汰了,目前大家使用的都是viewport。lib-flexible作者也在github明确地表示lib-flexible这个解决方案可以放弃使用了。...本文带大家一起来看看评论区所说的viewport适配解决方案。 什么是viewport viewport翻译成中文的意思大致是视图、视窗。在移动端设备中,整块显示屏就相当于视图、视窗。...但浏览器觉得还不够,因为现在越来越多的网站都会为移动设备进行单独的设计,所以必须还要有一个能完美适配移动设备的ideal viewport。...目的是为了获取到不同移动端设备下的像素比。对于rem的适配该库是至关重要的。本篇文章使用viewport适配则不再需要。...375 : 750; 至此,我们的viewport的适配就做好了,只需要按照设计稿的比例进行开发就可以了。

    1.4K30

    在 Nuxt.js 中配合 windicss 实现暗黑模式适配

    在 windicss 中,提供了媒体查询和 class 两种方式实现暗黑模式适配。...而且比较省心的是——其提供的 dark 变体会自动根据选择的适配模式,生成对应的代码,可以有效避免写出一堆没用的css,看起来也比较清晰。...为了方便控制,我们选择使用 class 的方式来切换暗黑模式(即给根元素赋予类名 dark 来切换到暗黑模式) 基础样式 首先,需要一些全局 css 来解决 windicss 无法覆盖的样式。...,当传入布尔值时,会同时设置 html 的类名和 theme-color 的 meta 标签(ssr/csr均可用) 使用了来自 VueUse 的 useHead 方法 const currentMode...usePreferredDark 来获取当前浏览器的颜色模式。

    1.6K20

    愈发熟练的 CSS 技巧

    rem + simple-flexible 适配方案 简单解析 rem 相对于根元素 的 font-size 的大小来计算坐作为一个单位;simple-flexible 是根据手淘团队 lib-flexible.js...,是 1:100, 即 1rem = 100px; 使用步骤 复制 simple-flexible 的 flexible.min.js 或 flexible.js 代码到页面的 的 的 IPheonX 做出了适配方案,建议使用 rem + lib-flexible 适配方案 简单解析 lib-flexible.js 是手淘团队制作的一个 Js 插件,实际上就是能过...的大小; 与 Viewpost 相关的单位有以下四个 vw : 是 Viewport width 的简写 1vw = window.innerWidth的 1%; vh : 是 Viewport height...还有很多本人未知的方案,但是所有的适配方案都是为了完美的还原视觉设计稿,完美解决兼容性问题,当然这都是理想状态; 前端学习笔记?

    84120

    PC端、移动端的页面适配及兼容处理

    第一种是通过响应式或页面终端判断去实现一套资源适配所有终端; 第二种是通过终端判断分别调取两套资源以适配所有终端。 这两种思路我们并不能斩钉截铁的说哪一个更优选,正所谓”合适的才是最好的”。...zepto作为jquery的移动端版本,依然延续其自身优势,大幅优化了移动端API且摒弃了兼容”非现代浏览器”的冗余代码,成为移动端轻 便可用的js框架代表,对于习惯了jquery的同学来说简直是不二之选...ua判断可放在服务端也可放在页面中,在代理服务器中做跳转更快、更  准确且不走应用程序层,即使浏览器禁用了js依然可以跳转到相应的地址,同时秉承着公共服务放在服务端这样的云端服务理念,我们选择了通过代理服务器做终端适配...layout viewport 移动设备的默认viewport,css布局是以layout viewport 来做为参考系计算的 document.documenElement.clientWidth...(二)如何实现屏幕适配 需要用到 meta viewport 中有6个通用属性: width 设置layout viewport的宽度 正整数或字符串 ‘width-device’ initial-scale

    2.8K20

    一次讲清移动端适配解决方案—rem和vw

    目前移动端的适配方案一般就是两种,一个是rem方案,一个就是vw的方案,本篇就是一次性讲清楚如何去运用这两种方案来解决问题。...一般是使用手淘的lib-flexible.js,但是这个作为一种过渡方案已经被废弃了,目前已不推荐在你的新项目中使用这个方案来解决手机适配问题。...感兴趣可以看看我老早以前写的这篇-->手机适配问题之rem和lib-flexible,我们主要还是来谈谈如何用vw来解决这个手机适配问题。...,有很多插件被大家开发出来为它赋能,实现vw适配就是要利用这么一个插件:postcss-px-to-viewport,先安装它: $ npm install postcss-px-to-viewport...:postcss-px-to-viewport 4、小结 其实使用vw来实现移动端的适配还是比较简单的,主要就是使用postcss-px-to-viewport这个插件。

    1.2K11
    领券