移动端布局使用哪种单位比较好?

关于移动端布局使用哪种单位,每个人都有自己习惯使用的单位,这个也只是我个人的一点点浅见。

欢迎大家指点。

很多人在谈到写移动端页面的时候,都觉得很恼火。因为要写n套css样式。然后用媒体查询做适配。

一般这个时候我都表示自己懵懵哒,搞不懂为什么要写这么多套。可能是由于我经验不够,所以看不出来写这么多套有什么深意。

我认为在移动端可以做到适配不同的手机分辨率,如果只是保持整体缩放,没有设计上的差异可以不需要用到`media query`。

下面说说我习惯使用的单位:em,rem,%

1.em

em是一个相对值,而且是一个相对于父元素的值,因此在使用em时,需要清楚父元素的font-size是多少。

em计算公式如下:

1 ÷ 父元素的font-size × 需要转换的像素值 = em值

我第一次使用em的时候,由于不清楚它是相对父元素的值,写出来的页面真是萌萌哒。

在使用em时,我用js做了一些适配。

不同手机的浏览器默认分辩率是不一样的,所以需要计算浏览器实际屏幕宽度与设计图宽度的比例,然后根据该比例计算body的font-size。

只需要写一套css样式,在不同尺寸的屏幕上显示出来都是合适的。

sw是设计图宽度,假设按照Iphone 6设计的高清设计图,设计图的宽度为750;


var w = $(window);
function auto() {
  var sw = 750;
  var auto1 = (parseInt(w.width()) / sw);
  var auto3 = auto1 * 62.5 + "%";
  $("body").css("font-size", auto3);
};

注意:使用em时,一定要注意其父级元素的font-size的大小!

重要的事情说三遍:em是相对于父级的!em是相对于父级的!em是相对于父级的!!

2.rem

rem是相对于根元素<html>的值,我们只需要在根元素设置一个固定的值,然后计算比例写相应的rem就可以啦。非常简单。

下面来看一个简单代码实例:

html {font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/}
body {font-size: 1.4rem;/*1.4 × 10px = 14px */}
h1 { font-size: 2.4rem;/*2.4 × 10px = 24px*/}

我在根元素<html>中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )。从上面的计算结果,我们使用“rem”就像使用“px”一样的方便,而且同时解决了“px”和“em”两者不同之处。

在了解了rem这个单位后,我们可以针对这个单位的特性进行移动端布局。

①设置页面rem的大小

html {font-size: calc(100vw/3.75)}

100vw是设备的宽度,除以3.75可以让1rem的大小在iPhone6下等于100px。

②换算单位

在布局时,直接换算,将‘px‘替换为‘rem‘。加入在设计图上10px,就可以携程0.1rem。这样,在IPhone 6下,所有元素的尺寸还是和视觉稿的尺寸一样,而在别的手持设备上,100vw/3.75的值会随着手持设备的宽度变化呈正比例变化。

这样就可以做到针对任何分辨率的设备保持视觉一致了。

③vw单位兼容性

低版本的手持设备可能不支持vw单位,需要使用js处理。

document.documentElement.style.fontSize = window.innerWidth/3.75+‘px‘

在实际运用中,window.innerWidth在个别安卓手机上获取的是屏幕的分辨率宽度,而不是设备宽度。使用该方法的童鞋注意测试。

3.百分比%

视觉稿上元素的宽度/视觉稿宽度=元素在设备上显示的宽度百分比。

这样,在不同分辨率的手持设备上,也能保持与视觉稿一致。

时间: 2024-11-05 18:31:58

移动端布局使用哪种单位比较好?的相关文章

移动端布局总结

最近做了几个移动端的项目,因为第一次接触移动端的布局,所以踩了几个坑,今天总结一下,有不对的地方欢迎大家提意见. 移动端布局需要考虑为不同分辨率的设备都提供一个出色的使用体验,下面我来总结一下移动端布局的方法. 借助库 比如Bootstrap和MUI都可以实现自适应布局,借助于他们定义好的样式,我们很少需要自己重新写样式,节省了大量的开发时间,推荐使用.在样式不能满足要求的情况下,再自己重写样式. 允许网页宽度自动调整 首先要想自适应必须加入一行viewport标签: <meta name=&quo

精通移动端布局 - 概念篇 -

本文大多数的内容基本都是从多篇博客或相关文章中进行筛选,提炼出来,原本我也想用我匮乏的语言来描述,但是发现别人已经总结的更好了,所以...我还是乖乖的站在巨人的肩膀上吧~~ 完整目录: 基本概念    物理像素    设备独立像素    CSS 像素    PPI的概念    DPR的概念    缩放的概念    viewPort 的概念    viewport 渲染流程    Meta 标签说明 移动端布局实践    混合方式    REM 方式        响应式        JS自动换

精通移动端布局 - 实践篇 -

本文大多数的内容基本都是从多篇博客或相关文章中进行筛选,提炼出来,原本我也想用我匮乏的语言来描述,但是发现别人已经总结的更好了,所以...我还是乖乖的站在巨人的肩膀上吧~~ 完整目录: 基本概念    物理像素    设备独立像素    CSS 像素    PPI的概念    DPR的概念    缩放的概念    viewPort 的概念    viewport 渲染流程    Meta 标签说明 移动端布局实践    混合方式    REM 方式        响应式        JS自动换

浅谈移动端布局问题

移动端推广速度快,效果好,越来越多的企业,商家开始重视移动站的建设和移动页面(h5)的制作.随着移动页面的玩法越来越多,对前端技术的要求也会越来越高.选择合适的布局,是写好移动页面的第一步.今天我们就来谈谈移动端的布局问题.为什么移动端布局如此混乱?这是由多方的原因造成的. css这套技术系统本身十分混乱,基本上可以说毫无规律可言,依赖于技术人员的熟练程度而不是逻辑更多一些:2.css历经了多个时代的升级,每一次升级之后,新的技术标准和旧的基本上没有任何关联.比如:table布局,div+css

移动端布局学习之流式布局1

1.移动端基础 1.1 浏览器现状 国内的UC和QQ 百度等手机浏览器都是根据Webkit修改过来的内核,国内目前尚无自主研发的内核,就像国内的手机系统基本上都是局域安卓修改开发的一样. 意思就是:兼容移动端主流浏览器 处理Webkit内核浏览器即可. 1.2 手机屏幕的现状 移动端设备屏幕尺寸非常多,碎片化严重 Android设备有多种分辨率480*480 480*854 540*960 720*1280 等等 近年来iPhone的碎片化也严重了 其设备的主要分辨率有 640*960 640*

移动端布局,字体使用rem不生效问题

本文参考连接:https://blog.csdn.net/qq_35484341/article/details/78248371 移动端布局是最让我感到头疼的一件事,一直都是逃避的心态,不想面对,但没办法,公司前端就我一个人,所有的问题迟早都要自己解决,所以不得不开始摸索,最快的办法就是看前辈们都是怎么解决的,但是有些办法不一定适合自己,要挨个试,才知道哪个方法好用,这次我就来记录一下移动端布局rem不生效的问题. 众所周知,rem是相对于html元素的font-size大小而言的,而em是相

移动端布局之路-----rem布局

rem基础 rem单位 rem (root em)是一个相对单位,类似于em,em是父元素字体大小. 不同的是rem的基准是相对于html元素的字体大小. 比如,根元素(html)设置font-size=12px; 非根元素设置width:2rem; 则换成px表示就是24px. /* 根html 为 12px */ html { font-size: 12px; } /* 此时 div 的字体大小就是 24px */ div { font-size: 2rem; } rem的优势:父元素文字大

页面布局的几种方式

基本布局的几种方式: (1)流体布局: 流布局与固定宽度布局基本不同点就在于对网站尺寸的测量单位不同.固定宽度布局使用的是像素,但是流布局使用的是百分比,看到百分比,你应该想到,这将提供了很强的可塑性和流动性.换句话说,通过设置了百分比,你将不需要考虑设备尺寸或者屏幕宽度大小了,结论就是,你可以为每种情形找到一种可行的方案,因为你的设计尺寸将适应所有的设备尺寸.流布局与媒体查询和优化样式技术的关系密切. (2)固定布局 在固定布局中,网页的宽度是必须指定为一个像素值,一般设为960像素.在过去,

移动端布局解决方案+神器

godcss 移动端布局终极解决方案+神器--- 让移动端布局开发更加容易 http:/www.github.com/godcss/ 介绍 godcss不是一个库,也不是一个框架.它是一个移动端布局开发解决方案.使用godcss可以让移动端布局开发更容易. 使用动态的HTML根字体大小和动态的viewport scale. 遵循视觉一致性原则.在不同大小的屏幕和不同的设备像素密度下,让你的页面看起来是一样的. 不仅便捷了你的布局,同时它使用起来异常简单.可能你会说 talk is cheap,s