rccoder / blog

😛 个人博客 🤐 订阅是 watch 是 watch 是 watch 是 watch
582 stars 36 forks source link

从baidu-ife Task1-11 初尝移动端开发 —— 萌芽篇 #7

Open rccoder opened 8 years ago

rccoder commented 8 years ago

下面的内容在近期极有可能是错误的,只是我的一个小记录。如果你想参考的话,也欢迎参考;如果有着严重的错误认识,那你指出来是最好不过了

缘由

正文

这是第一次尝试移动端开发,准备也是比较仓促。

相比PC端,移动端的屏幕比较复杂,不过布局也相对来说比较简单。移动端开发应该是可以分为移动端Web App 和 套壳开发。

目前 IFE 任务上只是要求 纯 css 实现简单的布局,我的认知还处在萌芽阶段。

实践

上面给的设计图好像并不是很准确的,为了方便按照设计图开发,首先需要对他进行转化。依照约定俗称的,用 PS 转化成 375px 宽的即可(iPhone6)。

然后为了比较好的响应移动端不同的设备,一般采用rem作为单位。

对 html 标签进行这样的设置

html {
  /*font-size : 14px;*/
  font-size: calc(100vw/26.785);
  font-family: 'Microsoft YaHei',"Helvetica Neue", Helvetica, STHeiTi, Arial, sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;
}

这样后面的 1rem = 14px,针对 PSD , 我们对每个像素除以14 即可转变为 rem,采用 scss 开发可以简化这个过程

@function px2rem($px, $base-font-size: 14px) {
  @if (unitless($px)) {
    @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels for you";
    @return px2rem($px + 0px); // That may fail.
  } @else if (unit($px) == rem) {
    @return $px;
  }
  @return ($px / $base-font-size) * 1rem;
}

这样以后使用的时候用 px2rem(40px) 这样的方法即可。

demo

https://github.com/HashCoding/task1-11

参考资料

移动前端开发和 Web 前端开发的区别是什么

使用Flexible实现手淘H5页面的终端适配

lscho commented 8 years ago

似乎什么也没有讲