因为iPhone 6的设计图是2倍图,在iOS中,宽度是375pt,换算成px为750px。
有的,编写好一个js文件,然后引入就可以,编写的时候全部使用rem单位。
npx webpack
1.font-size决定字体的大小,rem=px
2.rem的值就是font-size获取的px的值
3.前面有公式用:
@function px($px){
$rem:37.5px;
@return ($px / $rem) + rem;
}
我也是特别纠结这个地方,没太明白 $rem: 37.5px;不就是直接写死了吗?应该是 $rem: font-size才对啊
@function px2rem($px){ $rem : 41.4px; @return ($px / $rem) + rem; }
//获取视窗宽度 let htmlWidth = document.documentElement.clientWidth || document.body.scrollWidth; console.log(htmlWidth); //获取视窗高度 let htmlDom = document.getElementsByTagName('html')[0]; htmlDom.style.fontSize = htmlWidth / 10 + 'px';
写页面的时候设计稿数值除以3
但是你要是设置基准计算尺寸为124.2px时,数字直接按设计稿所标
个人见解,也希望老师看看是否正确
最好是设计给好标准值,比如以iphone5的宽度320为基础给字体大小或者以iphone6 375px的宽度来给字体大小,一般公司的UI也是会根据主流手机型号来给设计稿。比如实际项目中ui给前端的是iphone5的宽度,我将1rem=100px,基本上将设计稿的字体大小除以100,即可(16px字体设置成0.16rem)
这个设计稿 你直接看视频的时候截图就可以了 只要记住各个像素就可以了 图片可以去网上随便下载就可以了
rem是基于视频中iphone6和设计稿计算出来的常数(37.5只是为了方便计算出rem,任何值都可以)。
变数是你所用的手机尺寸 和 根目录font-size, 手机尺寸改变了自然要动态修改font-size才能得到同样的rem
375设计稿的1:1,750的设计稿就要除2,视频中的设计稿是750的吧
一般企业里ui都会提供标注图的,网上也有很多,练习的话没必要非要和老师的一样。
苹果6的屏幕宽度为375px,375/10便得到了37.5。给的设计稿一般情况下是iPhone6的,2倍图,不是的话,你可以先把设计图缩放一下,变成宽度375的,然后用37.5;或者用给的那个设计稿宽度除以10。跟js没有关系
因为用到了sass,所以要用构建工具,webpack gulp之类的,如果不用的话就用js控制吧,毕竟为了这个还要再去学习构建工具,主要目的是定义font-size基准值,计算px转成rem大小
老师那样的做法就是调用function简化了代码量,这种方法就是每次页面加载都要引入计算,麻烦些对吧
平面稿的实际像素为什么要除以2呢?不太懂,嘿嘿
你可以去下载Flexible.js,引入到你的页面,这是淘宝开源的rem处理js
你想要的是webpack的配置文件么?我的不是和教学视频一模一样,这是我的,你可以看看,能正常运行
var webpack = require('webpack');
var path = require('path');
module.exports = {
entry: ['./app.js'],
output: {
path: path.resolve(__dirname, './build'),
filename: 'bundle.js'
},
module: {
loaders: [
{ test: /\.css$/, loader: 'style-loader!css-loader' },
{ test: /\.scss$/, loader: 'style-loader!css-loader!sass-loader' },
{ test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192' }
]
}
}
函数function px2rem()返回的是 return ($px / 37.5) + rem, 也就是返回的是 xx rem,而rem是根据屏幕宽度得到的, 1rem=font-size值,设定 font-size = cilentWidth / 10 + 'px' (这里才是真正的rem值设定), 以iphone6为基准(clientWidth = 375px), 那么1rem = 37.5 px,这个函数输出就等于输入,因为分母37.5被消除了, 而其他屏幕大小clientWidth改变,1rem就不等于37.5了。函数的作用只是用iPhone6屏幕大小做基准。
我也疑惑了好久,主要是这个变量($rem)起名太迷惑了~~~_(:з」∠)_
对scss的使用不是很熟悉