移动端布局Rem】的更多相关文章

默认以宽度为640px的设计稿为基准页面,然后通过JS获取当前显示设备的尺寸,对应的调整 html 标签的font-size大小,从而实现通过以rem为单位的移动端布局适配. 具体代码 (function(win, doc) { var timer = null, html = doc.documentElement, baseWidth = html.dataset.basewidth * 1 || 640, metaEl = document.querySelector('meta[name…
1.概念 em作为font-size的单位时,其代表父元素的字体大小,em作为其他属性单位时,代表自身字体大小 rem作用于非根元素时,相对于根元素字体大小:rem作用于根元素字体大小时,相对于其出初始字体大小 优缺点:em就是为字体和行高而生的,有些时候子元素字体就应该相对于父元素,元素行高就应该相对于字体大小:而rem的有点在于统一的参考系 2.Rem布局原理 rem布局的本质是等比缩放,一般是基于宽度 3.比Rem更好的方案 vw -- 视口宽度的 1/100:vh -- 视口高度的 1/…
1.rem布局,根据屏幕来计算rem,也就是意义上的适应屏幕,但是一些字体大小转换和计算有些复杂. // rem 布局重定义 (function(){ $('html').css('font-size', ($(window).width() - 2) / 10); var multiple = parseFloat($('html').css('font-size')) / ($(window).width() - 2) * 100; if(multiple != 10){ $('html')…
一.最好用没有之一 http://www.jianshu.com/p/b00cd3506782 虽然博主说这个方案已经过期了 但是新方案还没有理解 就接着沿用这个 可以根据自己常用的设计稿的宽度修改 640 为 750 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" con…
created(){ // 设置根字号 // 屏幕宽度 setHTML(); // addEventListener()不冲突 window.addEventListener('resize', setHTML, true); function setHTML(){ // 读取当前屏幕宽度 var windowWidth = document.documentElement.clientWidth; // 看是600的多少倍 ; // 是600的多少倍就要让HTML的根字号设置为60的多少倍(这…
好久没有写博客了,刚好说说最近遇到的移动端布局问题吧. 本来一直是觉得我的页面布局能力还是不错的,当然,是相对于较基础的来说还是不错的.不过,自己写的案例终归是跟实际开发有区别的,自己写案例的是觉得这个样式有时候并没有那个完美就放弃那个效果了.到后来 ,发现这是一个很不好的习惯,一直想着小毛病不去解决,想着以后总归是会的.结果在实际开发的时候,发现这个太影响工作效率了.的确,很多小问题百度都能解决,只是,小毛病一多你就会发现你写一个项目的时候一直都在百度... 今天,就来讲讲之前遗留下来的一个问…
viewport(视口) 具体数值(不设置时默认为980 ,部分安卓手机不支持设置成具体数值) width=device-width 和设备宽度保持一致 user-scalable=no 是否允许用户缩放no/yes(iOS10不支持 近乎无解) initial-scale 初始缩放比例 minimum-scale 最小缩放比例 maximum-scale 最大缩放比例 页面宽度 页面宽度=device-width/scale 在页面中实现等比像素的JS代码: <!--利用页面的像素比来进行页面…
Vuex里的modules 在store文件夹里创建一个modules的文件夹,里面随意创建一个.js文件,然后export输出…
上两张图自勉一下(来自刘墉先生的文章,最近看他的作品):然后移动端该愈来愈受到重视,未来的市场我不知道,不过我知道手机的功能越来越强大是不争的事实!移动端布局的积累也需要从现在做起! 需求一:实现下图效果,注意不同手机的型号:原生称为适配,我们称为自适应不变形 思路一:btn+ima布局风格 <div class="row margin-top"> <div class="col-sm-12"> <div class="for…
写H5页面一直写的有点随意,只是保证了页面在各个屏幕下显示良好,却没有保证到在各个屏幕下是等比例放大或者缩小.这些天在写一些页面,试着看看能不能写出等比例放大缩小的页面,发现不容易啊,在网上找了一些文章,整理如下: (只说方案,具体实现看大神的文章) 方法一:用流式布局,px做css单位,在大屏小屏自动适应,我之前一直用这种方法,适合于简单的页面,比如说列表页,写法比较简单,不用考虑太多 缺点是: 1.页面虽然展示正常,却不是等比缩放,在高清屏上难免看起来怪怪的(px换算统一除以2,在dpr是2…
流体布局:宽度用百分比,计算真实宽度用函数 : width: calc(25% - 4px); box-sizing: 1.content-box:默认计算方式 ,宽度和高度分别应用到元素的内容框.在宽度和高度之外绘制元素的内边距和边框. 2. border-box:为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制. 通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度. -----------------------------------------------…
1.媒体查询:@media only screen and (max-width: ) {},在最初做pc端时,使用各种媒体查询,因为pc的屏幕分辨率总共就几种,不嫌麻烦的重复使用类名.有很大的缺陷就是UI给的设计稿宽度是一定的,在做响应式式凭借自己的感觉是一种超级不爽的美感纠结症. 2.百分比:百分比也是相当的麻烦,还要去各种计算,不是程序员该做的笨重事. 3.em:缺陷是父盒子的百分比. 自己探索了一条自己选择走的捷径,不用在担心宽度和高度不等比例适应,也不用担心在各分辨率下的布局会出现问题…
通过前几天写的两篇博客(浅谈移动端三大viewport和移动端em和rem区别),我们现在来总结一下如何实现一个最佳方案. 之前在第二篇博客中提到过我们可以使用媒体查询来针对不同设备及做适配,如下图 但是这个可能不会太精准,比如我的设备布局viewport可能是370px,这样只能使用320这一版本.而事实上,他们的viewport并不相同,所以他们的布局也得不一样.也就是说我们如果用css媒体查询只能说是可以用,但不是最佳实践.其实通过看某些牛逼的移动端网站,可以看到他们的共同点,他们都是使用…
相信很多刚开始写移动端页面的同学都要面对页面自适应的问题,当然解决方案很多,比如:百分比布局,弹性布局flex(什么是flex),也都能获得不错的效果,这里主要介绍的是本人在实践中用的最顺手最简单的布局方案--rem(什么是rem)布局 其 主要原理就是 根据手机屏幕宽度动态改变html的fontsize值   而页面中凡是使用到rem的单位都会根据html的值动态发生改变  这里我处理了下 当屏幕大于750px时  就不在自适应了 直接固定了为ios6的手机屏幕的显示效果 使用方法: 直接将下…
写移动端项目时,总是会纠结是用css3 media query 还是用rem.移动端框架挺多,但是因为项目都比较小,不考虑使用. 无意在网上找到一个移动端rem布局的解决方案,经个人实践,目前未出现什么大问题,收藏备用. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>移动端rem布局</title> &…
前言 首先你要知道 vw 和 rem 是什么?怎么使用? ①:简单来说 vw 是视口单位,相当于把视口等分成了100,1vw = 1; ②:rem是相对单位,设置根元素 html 的 font-size,比如给 html 设置字体大小为100px,1rem = 100px; 注:我之前针对 vw 和 rem 分别写过一篇博客,详见如下 vw:https://www.cnblogs.com/tu-0718/p/9906692.html rem:https://www.cnblogs.com/tu-…
1.前言 (1)vw/vh介绍 在使用之前,我们先简单了解一下什么是vw和rem以及它们的作用,vw是css3出现的一个新单位,它是"view width"缩写,定义为把当前屏幕分成一百份,1vw即为屏幕的1%,与之对应的是vh,把高分成一百份,1vh即为屏幕高的1%,一般我们常用的vw单位来完成响应式开发 (2)rem介绍 rem是相对长度单位.相对于根元素(即html元素)font-size计算值的倍数,比如你html设置的字体为20px,那么页面中的1rem就相当于20px,举个…
相信大家在做移动端的时候都会做各个手机的适配这种适配就是响应式布局在之前做网站的响应式从pc到手机用的是媒体查询 @media screen and (max-width: 300px){} 最大宽度300像素需要的样式 后面移动端业务兴起后做的响应式布局是基于手机各个型号以及各种分辨率的响应式这个时候用的就是rem布局,也是最简单的布局直接用rem写是不行的,这个时候就需要借助js function fontRem() { var bodyWidth = document.getElement…
rem是什么? rem是css3中新增加的一个单位属性(font size of the root element),根据页面的根节点的字体大小进行转变的单位.root!!!!!!!!!根节点,也就是html. 例:(下面例子中的根节点是html ,它的字体大小是100px,所以根节点下面的元素所设置的rem,都是1rem=100px.)rem的初始值是16px,也就是说在没有设置根节点的font-size的时候,1rem=16px <html> <head> <style&…
补充一个基本知识,不许笑,1rem等于HTML中设置的字体大小(px) 首先,HTML 的 head 部分中加入如下代码: <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> initial-scale:初始缩放比例,即当浏览器第一次加载页面时的缩放比例.值…
1.viewport.js (function(window, document) { // 给hotcss开辟个命名空间,别问我为什么,我要给你准备你会用到的方法,免得用到的时候还要自己写. const hotcss = {} ;(function() { // 根据devicePixelRatio自定计算scale // 可以有效解决移动端1px这个世纪难题. let viewportEl = document.querySelector("meta[name=\"viewport…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <meta name="viewport" content="width=device-width, initial-scale=1 user-scalable=0"> &…
---恢复内容开始--- html { font-size:10vw: } div { width: 1rem; height: 1rem; } VW这个单位适合用来适应不同设备的 一个设备的宽度就为100VW 比如说屏幕375px的宽度可以写为100vw,同样的 750px的宽度也是100vw 1vw=1%屏幕 的宽度 在上述例子中我们将根元素的字体大小也就是html的字体大小设置为10vw 当设备宽度为375px时 ,html的字体大小为37.5px;  而rem这个单位是根元素的倍数,1r…
rem即是以html文件中font-size的大小的倍数rem布局的原理:通过媒体查询设置不同屏幕宽度下的html的font-size大小,然后在css布局时用rem单位取代px,从而实现页面元素大小的动态适配,做出更漂亮整洁的页面rem布局的好处:1.页面整洁2.动态适配缺点:1.需要计算rem,但可以通过自动转化单位插件弥补 less:是一门css扩展语言,也成为css预处理器,引入了变量,mixin(混入).运算以及函数等功能css弊端:1.冗余度高 2.维护成本高 3.没有很好的计算能力…
如下方法如有不正确的地方,欢迎指正 前提: 设置稿750px 目标:40px = 1rem js设置方法:(小于等于750屏幕等比缩放) ;(function (doc, win, undefined) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in win? 'orientationchange' : 'resize', recalc = function () { var clientWidth =…
如果不引入插件的话:ui稿的px转化成rem需自己计算 根据设计稿我们需要自己计算元素的rem(假如我们将html根元素font-size设置为41.4px): 那么1rem=41.4px; ui稿上的375px = 375/41.4rem=9rem; 这样每个元素进行计算是不是得疯,vant组件中推荐的适配方法: postcss-pxtorem 安装yarn add postcss-pxtorem@5.1.1 -D postcss.config.js中配置 module.exports = {…
使用目的:为了让移动设计稿在大部分的移动设备上看起来有一致的展示效果,我们使用rem的像素单位. 方法一: 1.在页面引入js,获取屏幕大小,更新rem基准. (function () { var currentWidth = document.documentElement.clientWidth || document.body.clientWidth nFont = currentWidth * 50 / 375; if (nFont > 50) { nFont = 50 } getHtm…
移动端适配方案,说多也很多.可以使用百分比布局,但百分比与em都是基于父元素进行计算的,在实际应用中不是很方便.使用rem不仅可以设置字体大小,块大小也可以设置.而且可以良好的适配各种终端,所以这方案很受欢迎. rem定义及浏览器支持情况 rem(font size of the root element)是指相对于根元素的字体大小的单位.简单的说它就是一个相对单位.看到rem一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位.它们之间其…
对于移动端开发来说,无可避免的就是直面各种设备不同分辨率和不同DPR(设备像素比)的问题,在此忽略其他兼容性问题的探讨. 一. 移动端开发有关于像素的概念: 1.设备像素(dp),也叫物理像素.指设备能控制显示的最小物理单位,意指显示器上一个个的点.从屏幕在工厂生产出的那天起,它上面设备像素点就固定不变了. 2.分辨率,屏幕上物理像素的数量. 3.设备独立像素(dip),又称密度无关像素.可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用并控制的虚拟像素.由相关系统转化为物理像素在…
移动端开发中,有一些基本概念需要理解清楚,才能更好的组织编程逻辑.在刚接触时,移动端视口的缩放和rem单位的缩放搞混淆了,弄得自己很蒙圈.所以仔细总结下自己的理解. 移动端的适配,我理解为两点: 第一点就是视口的缩放配置,牵扯出视口和像素等概念.目的是为让我们的CSS样式中逻辑像素匹配到手机终端的物理像素,让网页视图适合手机屏幕.虽然在代码中只是一个语句就解决的问题,但要理解它,要弄懂很多概念.<关于像素Pixel历史的详解看下一篇文档> 第二点就是rem单位的使用,目的是为了我们只需要一份代…