美文网首页
前端小白在路上。。。

前端小白在路上。。。

作者: zoepraiselife | 来源:发表于2017-09-06 17:29 被阅读0次

初级前端的我,面对很多问题,都不知道怎么解决,百度,问别人,然后自己去理解。

发现,太多的事情无法想象,无法预料,现在,还可以好好的活着就该感恩的活着!

我的大学同学,我的主内家人,竟那么突然离开了,没有留下一丝的只言片语,能怎么办呢?只能感恩的活着,活出感恩的生活,写这个文章,想好好的提醒自己,今天,此时此刻,还能坐着敲代码是种幸福,因为我知道我不是自己活着,我是为荣耀上帝而活,有目标有使命,希望,我身边的人可以因为我而得益处!

感慨下人生,立足现在,好好生活。珍惜眼前的一切,因为不知道明天和意外哪个会先来。。。

进入正题,之前不太会写移动端,就会用框架,然而框架还用的不太熟,所以,一顿百度,记录下。

首先要清楚一些概念:

物理像素(physical pixel)

一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。

设备独立像素(density-independent pixel)

设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素(比如: css像素),然后由相关系统转换为物理像素。

所以说,物理像素和设备独立像素之间存在着一定的对应关系,这就是接下来要说的设备像素比。

设备像素比(device pixel ratio)

设备像素比(简称dpr)定义了物理像素和设备独立像素的对应关系,它的值可以按如下的公式的得到:

设备像素比 = 物理像素 / 设备独立像素 // 在某一方向上,x方向或者y方向

在javascript中,可以通过window.devicePixelRatio获取到当前设备的dpr。

在css中,可以通过-webkit-device-pixel-ratio,-webkit-min-device-pixel-ratio和 -webkit-max-device-pixel-ratio进行媒体查询,对不同dpr的设备,做一些样式适配。

移动端页面的head里要写上

<meta name="viewport" content="width=device-width,inital-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">

解析:

width=device-width:让宽度=设备缩放之后的宽度,比如320、360、375、414这些屏幕。

initial-scale=1:初始化的缩放比例1,这个属性和css中transform: scale(1);有异曲同工之妙。

minimum-scale=1:最小缩放比例,相当于你给div设置mix-height一样,有限制。maximum-scale=1:最大缩放比例。

user-scalable=no:是否允许用户使用双指进行缩放,默认不允许。

我们需要写border:1px的时候,实际上是物理相似2px,这种情况平时做直线的时候勉强可以应付,transform: scaleY(0.5);这样看起来就洗了很多,但是做圆角的按钮的时候就力不从心了,而且大量使用transform 的代码也不是很优雅,这个时候我们可以在头部引入这么一行代码:

<meta name="viewport" content="width=640,user-scalable=no">

就是640,和设计图的尺寸一模一样。还是灰常管用的,可以用下

然后,你需要引入js,之前我写的媒体查询,但是效果不是特别好,很多屏幕还有距离什么的与设计出入太大,所以还是动态获取当前屏幕大小,然后让电脑自己生成相应的样式渲染还是很棒哒!来段js代码

(function () {

var supportOrientation = (typeof window.orientation === 'number' && typeof window.onorientationchange === 'object')

var init = function () {

var htmlNode = document.body.parentNode, orientation

var updateOrientation = function () {

if (supportOrientation) {

orientation = window.orientation

switch (orientation) {

case 90:

case -90:

orientation = 'landscape'

break;

default:

orientation = 'portrait'

break;

}

} else {

orientation = (window.innerWidth > window.innerHeight) ? 'landscape' : 'portrait'

}

htmlNode.setAttribute('class', orientation)

}

var recalc = function () {

var docEl = document.documentElement

var clientWidth = docEl.clientWidth

docEl.style.fontSize = 50 * (clientWidth / 375) + 'px'

}

var x=function(){

recalc()

updateOrientation()

}

if (supportOrientation) {

window.addEventListener('orientationchange', x, false)

} else {

//监听resize事件

window.addEventListener('resize', x, false)

}

x()

}

window.addEventListener('DOMContentLoaded', init, false)

})()

docEl.style.fontSize = 50 * (clientWidth / 375) + 'px'.这个50是根font-size的大小,可以自己改动,我的设计稿是苹果6的375*667,所以我用的50,这个根据实际情况和个人偏好而定,怎么好算怎么来。

然后就可以进行你的布局和渲染了。。。。里面用到的属性,不管是height,width,margin,padding,都统一用的rem,相对的单位,字体的话就是设计给的大小,用px和rem进行换算,话说有点费脑筋,所以如果可以,可以选择用Sass语言,便利开发,这也是我要学习的。


慢慢学习,每天进步一点点,希望可以帮到你!

每天都是新的,每天都是与众不同的,世界有你会更美好!加油!!!

相关文章

  • 前端小白在路上。。。

    初级前端的我,面对很多问题,都不知道怎么解决,百度,问别人,然后自己去理解。 发现,太多的事情无法想象,无法预料,...

  • 小白在路上

    截至目前,已经往指数基金里面投入了12200元,如果自己都不懂自己买的是什么理财产品,岂不是贻笑大方。这篇文...

  • 新手小白在路上

    对于写作我是热爱的,可真让写的话我是不会的,以前只想不写,以后要付之行动。 于是今天下载了简书,开始我的写作之路,...

  • 写作小白在路上

    本人文学系研究生,从小到大别的不说,作文也写了不少了,感觉写东西也不是很难,但是在经历了这一年半快两年的工作时间(...

  • 写作小白在路上

    时间转眼即逝,鱼苗写作训练营第二期也已经接近尾声了。在这里首先要谢谢鱼哥不留余力的走心教学,鱼苗管理组的细心认真的...

  • 写作小白在路上

    大家好,我就是小白,在写作的路上,这些话是想对同样小白的你讲的。 1、折叠空间 写书哥第二期的写作训练营里,本科及...

  • 芒果来袭

    小白在路上

  • call与apply以及bind的区别

    作为一名前端小白,就要开始了自己的第一篇文章了,心里也是小小的激动,同时也是为自己以后前端路上的成长铺好基石。好了...

  • 前端小白

    第一次写文章,工作快三年了,两年的编程工作经历,时间过得好快。感觉自己和刚刚毕业的时候,变化不是很大。

  • 前端学习各阶段分别都在哪学?

    最近在群里总有小伙伴跟小肆说最近在学习前端的路上感到迷茫,他们有刚刚接触前端的小白,也有工作3年以上的老手,无一例...

网友评论

      本文标题:前端小白在路上。。。

      本文链接:https://www.haomeiwen.com/subject/pcrvjxtx.html