项目中的描述

1.项目中用了模块化设计?详细描述,这个模块化设计在这个项目中的角色是什么,你又做了哪些优化的工作

css模块化设计&&js模块化设计

css模块化设计
问题提出:
1.在同一个页面中,如何用btn这个类名来显示两种不同的按钮
2.两个不同的页面,有相同的样式模块,如何重用css代码

js模块化设计


image.png

common.js是放一些比如公司里的注册、登录这些所有的项目通用的东西,而不是局限在页面和页面之间公共的东西,而是公司内所有的大项目,比如说公司有好几个项目,这些项目之间都用到登录注册这些体系中的东西,这是整个公司通用的,而不是某个业务通用的,

layout.js某个项目就布局来说,a页面和b页面都有同样的布局,那么就可以抽象出来一个layoutjs

util.js是一些辅助函数的设计

2.自适应方案设计

物理像素&&逻辑像素&&dpr

css像素 px 逻辑像素
绝大多数的电脑显示器
1920*1080
表示屏幕的宽上排列了1920个像素点
屏幕的高上排列了1080个像素点

物理像素没有确切的大小

16px的字体在大屏幕的1080屏幕上,可能显示更大一些

设备 物理像素 逻辑像素 逻辑像素
xxx 640*960 320*480 2
xxx 640*1136 320*568 2
xxx 750*1334 375*667 2
xxx 1242*2208 414*736 3

iPhone4 iPhone5 iPhone6 四个物理像素点聚合成一个css像素点

因为市面上的设备很多,所以很多公司会采用iPhone678设备的分辨率750*1334

在iPhone5为主要设备时,设计图基本为640*xxx

设置视口,在移动端设计中,必须要设置视口,
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
viewport属于meta标签的一种

content='width=device-width表示让物理像素聚合变成标准的逻辑像素,这样才能让16px的大小在移动端和pc端显示的一样大

为什么使用rem作为单位,因为是基于HTML字体大小单位,他有一个统一标准,这种方案推崇的是在不同设备上显示的效果形同(等比缩放)。因此我们以750的设计图为标准,100px作为标准字体大小,因为要等比放大和缩小,因此根据设备宽度改变HTML大小,因此得到公式
fontsize:设备宽度=100:设计图宽度(750)
fontsize=100*设备宽度/设计图宽度
当页面加载完成后计算字体大小并设置
当页面大小改变后计算字体大小并设置

window.onload = function(){
    /*720代表设计师给的设计稿的宽度,你的设计稿是多少,就写多少;100代表换算比例,这里写100是
      为了以后好算,比如,你测量的一个宽度是100px,就可以写为1rem,以及1px=0.01rem等等*/
    getRem(720,100)
};
window.onresize = function(){
    getRem(720,100)
};
function getRem(pwidth,prem){
    var html = document.getElementsByTagName("html")[0];
    var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
    html.style.fontSize = oWidth/pwidth*prem + "px";
}

代码二: 小米官网的写法

!function(n){
    var  e=n.document,
         t=e.documentElement,
         i=720,
         d=i/100,
         o="orientationchange"in n?"orientationchange":"resize",
         a=function(){
             var n=t.clientWidth||320;n>720&&(n=720);
             t.style.fontSize=n/d+"px"
         };
         e.addEventListener&&(n.addEventListener(o,a,!1),
         e.addEventListener("DOMContentLoaded",a,!1))
}(window);

3.代码维护和复用性设计的思考
一个漂亮的项目不在于这个项目的难度有多大,这里面用了哪些算法、js交互有多复杂,这些一点都不重要,项目的亮点是什么,你的代码维护和复用性设计,比如说,产品新增加一个功能,你能用20分钟搞定他吗,如果产品说这个地方要改,一些交互和逻辑你能在短时间内快速的完成吗,还有,线上发现了bug,你能快速定吗,定位以后能快速的修复吗,这个和你代码的设计有关系,你又该怎么去做

如果你学习组件化只考虑js而不考虑css的设计,那么组件化是不完整的

image.png

需求变更:交互的耦合和解耦的过程

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容

  • 我们第一次接触移动web的时候,直观印象样应该是:屏幕比pc小很多,所以对pc端设计的界面,不一定(或者说不完全)...
    Scaukk阅读 16,852评论 6 46
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,315评论 0 11
  • 页面布局 静态布局(Static Layout)使用CSS逻辑像素单位px进行定宽布局,是PC端最常见形式。 流式...
    JunChow520阅读 1,427评论 0 6
  • CSS参考手册 一、初识CSS3 1.1 CSS是什么 CSS3在CSS2.1的基础上增加了很多强大的新功能。目前...
    没汁帅阅读 3,584评论 1 13
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,220评论 0 8