
一,假如pc端>
前几天开发公司产品官网的时候,遇到了一些适配问题,当时选择用postcss-px-to-viewport方案来实现适配,效果也很显著,每个页面都适配到位
step1 vue安装postcss-px-to-viewport插件。
step2 配置适配插件的参数
使用PostCss配置文件时,在<u>postcssconfigjs</u>添加如下配置:
或者在<u>packagejson</u>中,添加以下配置:
说明下几个重要参数的使用:
适配存在的问题点:
注:执行指令后在packagejson的devDependencies分支可以看到相应的版本,
2 在mainjs中导入lib-fixible
如果未使用vue的伙伴可以直接在前端中直接使用阿里的CDN,如下:
注:此处是postcss-px2rem而不是px2rem-loader,网上很多文章都引用是后者,会导致在配置时候无法成功配置。
在vueconfigjs中配置如下配置即可,如未有此文件请自行搜索查询创建配置。
集成以上两个步骤,基本前端即可根据屏幕自行适配,但可能有部分伙伴会遇到data-dpr始终为1,遇到这个情况多半是因为在html头中自己设置了<meta name="viewport" >,
查看lib-flexble做了配置,默认会根据屏幕为我们添加头文件的,如果自行设置,那么只会进行修改设置的值而已,并不会再添加,所以导致data-dpr始终为1,所以把<metaname="viewport" >去除
<meta charset="utf-8">
@(概述)[基本概念|百分比|rem|vw/vh|响应式设计]
移动端web页面的开发,由于手机 屏幕尺寸 、 分辨率 不同,或者需要考虑 横竖屏 问题,为了使得web页面在不同移动设备上具有相适应的展示效果,需要在开发过程中使用合理的适配方案来解决这个问题。
早期网页设计采用 静态布局 ,通过 <meta> 标签中的 applicable-device 应用设备标识识别移动设备,即 <meta name = 'applicable-device' content = 'mobile'> ,在 <meta> 标签中的 viewport 标签中设置 width ,通过 js 动态修改标签的 initial-scale 使得页面等比缩放,刚好占满整个屏幕。一些文章中有提到静态布局中页面各个元素采用 px 为单位,这种方案实现简单,不存在兼容性问题,但用户体验很不友好。
后面出现 流式布局 ,使用百分比 % 定义宽度,高度使用 px 固定,根据可视区域大小实时进行尺寸调整,通常使用 max-width/min-width 控制尺寸范围过大或者过小。这种方案实现比较简单,但在大屏手机或横竖屏切换场景下可能会导致页面元素被拉伸变形,字体大小无法随屏幕大小发生变化。
顺应不同页面字体大小展现问题,出现了 d性布局 。这种布局方案下,包裹文字的元素的尺寸采用 em/rem 为单位,页面主要划分区域的尺寸依据情况使用 px 、百分数或者 em/rem 。如一些高校的网站 jlu ,页面的主要划分区域使用 px 和百分比,包裹文字的元素和文字采用 em 。
上面的这几种方案下,页面元素的大小按照屏幕分辨率进行适配调整,但是整体布局不变,对于 响应式web设计 ,网页布局会随着访问它的视口及设备的不同呈现不同的样式,在实现上可能会以上多种方案的结合,同时搭配 媒体查询 技术使用,使得一个页面在多个终端 (PC, mobile, pad) 呈现满意效果,如 mashable 。
[TOC]
像素,是屏幕上显示数据的最基本的点,表示相对大小。不同分辨率下相同长度的 px 元素显示会不一样,是因为像素点的个数相同情况下,不同分辨率下每个像素点对应的像素宽度不同。比如同样是 14px 大小的字,在 1366×768 显示屏下会显示的小,在 1024×768 显示屏下会相对大。也称为 物理像素(设备像素 ),是分辨率的尺寸单位。
印刷行业常用单位,能够使用测量设备测得的长度,等于 1/72 英寸。
在不同屏幕上, css 像素呈现的物理尺寸一致,但 css 像素对应的物理像素具数不同。标准的显示密度下, 1 个 css 像素对应一个物理像素,缩放时, 1 个 css 像素对应的物理像素会减增。是一种 设备独立像素(device independent pixels: DIPs)
像素密度,每英寸所拥有的像素数。值越高,显示画面细节越丰富。计算公式为:[上传失败(image-245547-1621406560980)]
,其中 [上传失败(image-2b7617-1621406560980)]
和 [上传失败(image-f0525f-1621406560980)]
是分辨率的宽高,[上传失败(image-2b6254-1621406560980)]
是屏幕尺寸。
打印设备每英寸印刷出来的点有多少个,值越高,越细腻。
设备物理像素和设备独立像素比 ,即[上传失败(image-6bbc3c-1621406560980)]
是指在理想布局宽度,使用多少个物理像素来渲染一个css像素。js中通过 windowdevicePixelRatio 获取,css中通过 -webkit-device-pixel-ratio , -webkit-min-device-pixel-ratio , -webkit-max-device-pixel-ratio 进行媒体查询。
<meta> 标签中定义了一些元数据信息,通过设置 <meta name = "viewport"> ,提供有关 视口初始大小 的信息,供 移动设备 使用。属性值为
移动端涉及 布局视口 (Layout Viewport)、 视觉视口 (Visual ViewPort)和 理想视口 (Ideal ViewPort)。
与移动端web页面适配有关的手机屏幕特性包括
硬件所支持的,屏幕每行的像素 每列的像素点数,单位是 px 。
设备独立的,软件可以达到的,个人理解是使得软件/页面在不同屏幕上显示出来的效果一致。
像素分辨率 ÷ 逻辑分辨率等于 倍率 ,如 @3x 表示分辨率的 3 倍。一个已知物理像素大小的元素,如果在普通屏中其设备像素等于 css 像素,但在一些高清屏中,如 Retina 显示屏,一个css像素对应 2 或 3 个设备像素,这时显示出来的元素会变小。为了让元素如期待显示,需要传入 原始设计稿尺寸 × 倍率 的设计稿,根据 DPR 的定义,这样加载后能够达到同样的效果。
手机屏幕对角线长度换算成英寸的大小
贴上 源码 分析
视口 是浏览器中用于呈现网页的区域,移动端的视口通常指的是 布局视口
使用 css 预处理器把设计稿尺寸转换为 vw 单位,包括 文本 , 布局高宽 , 间距 等,使得这些元素能够随视口大小自适应调整。以 1080px 设计稿为基准,转化的计算表示为
响应式设计 使得一个网站同时适配 多种设备 和 多个屏幕 ,让网站的布局和功能随用户的使用环境(屏幕大小、输出方式、设备/浏览器能力而变化),使其视觉合理,交互方式符合习惯。如使得内容区块可伸缩与自由排布,边距适应页面尺寸,适应比例变化,能够自动隐藏/部分显示内容,能自动折叠导航和菜单。
你可以加上这段声明:<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=05,maximum-scale=20">
其次,手机端的分辨率和电脑不同,布局的时候最好采用自适应布局。百分比设定宽度。h5的手机兼容性要比xhtml要来的稳定。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)