px
常用的单位,即像素pixel缩写,但通常被当做绝对单位,但严格说并不是,因为官方考虑到观看不同设备显示屏时,使网页设计出的某一图形的显示大小在人眼中的观看效果差不多,而定义的一个相对值,即人以一臂之遥观看96DPI的显示屏的角度,大概就是利用透视的近大远小原理,照顾不同设备的最终观看效果。
比如某网页图形设置为一固定的px值,在手机浏览器上显示是用直尺测大概1cm,但是同样在不缩放情况下,电脑显示屏测量可能就是1.5cm左右,如果是打印机打印出来的话也许就是2cm左右了。
em
常用的相对单位,前面的数字是比例,即相对于父元素的字体尺寸的比例,比如父元素字体16px,子元素设置1em,也可以理解为100%,那么子元素也是16px,同样,2em就是200%,32px,也可以是小数0.2em,1.5em等等。
rem
类似于em,但rem是相对于根元素html,例如用css标签选择器给html标签设置字体尺寸font-size大小为20px,那么文档中的每个1rem就代表20px,1.5em代表30px,以此类推。
in,cm,mm
这些虽然是生活中的物体测量单位,但网页的1cm尺寸的元素显示到显示器上,用直尺测量通常不是标准1cm,因为css已经默认设置1in=96px,前面也讲过px会因显示屏而不同,因此最终尺寸也不是绝对的,其他也差不多,所以这类尺寸很少用。
也是查找了好多资料才找到的,这种方式,可以消除 后退的所有动作。包括 键盘、鼠标手势等产生的后退动作。
1 2 3 4 5 6 7 |
<script language="javascript"> //防止页面后退 history.pushState(null, null, document.URL); window.addEventListener('popstate', function () { history.pushState(null, null, document.URL); }); </script> |
现在,我们项目中就使用了第三种方式。在常用浏览器中,都可以禁用了后退。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//禁用浏览器返回 function fobidden_back() { //防止页面后退 history.pushState(null, null, document.URL); window.addEventListener('popstate', back_common) } //启用浏览器返回 function enable_back() { history.go(-1); window.removeEventListener('popstate', back_common) } function back_common() { history.pushState(null, null, document.URL); } |
mb里可以直接配置项禁用回退 wkeSetDebugConfig(webview, "backKeydownEnable", "0") from:利用js实现 禁用浏览器后退 (jvbaopeng.com)
View Details前言:项目迁移,在调用uni.request去请求微信的接口时报错:
1 |
errMsg: "request:fail -2:net::ERR_FAILED" errno: 600001 |
返回代码:600001。 pc端工具能访问接口成功,估计是勾选了不效验合法域名的原因,而手机端就显示报错。 查阅了一下微信开放文档,提示是token太长;但我排查了一下我的token,不存在这个问题。 接着直接在百度里找,找到了原因:项目迁移用了一个新域名,而这个域名的证书链有问题,请检查你的域名的证书链,看看是否存在证书链错误,具体设置证书链是由后端完成的,我这里贴出2个我找到的解决方案。 链接1:https://blog.csdn.net/anjingshen/article/details/116926409 链接2:https://blog.csdn.net/Cike___/article/details/109544449 检测域名证书是否正确,可用一下两个网站(网站链接来之上面两个链接): 域名证书检测网站1:https://www.digicert.com/help/ 域名证书检测网站2:https://myssl.com/ from:https://www.cnblogs.com/iuniko/p/16190740.html
View Detailsgulp作用:
Sass编译
Css Js 图片压缩
Css Js 合并
Css Js 内联
Html的include功能
Autoprefixer
自动刷新
去缓存
Handlebars模板文件的预编译
雪碧图
ESLint rem移动端适配方案
最近写项目时发现通过meta标签已无法禁止移动端双指缩放,一般的js写法也无法阻止,最终解决方案如下: 重点:passive
1 2 3 4 5 6 |
//禁止双指放大 document.documentElement.addEventListener('touchstart', function (event) { if (event.touches.length > 1) { event.preventDefault(); } }, {passive:false}); |
如果需要该事件,页面写入以下代码即可:
1 2 3 4 5 |
document.documentElement.addEventListener('touchstart', function (e) { e.returnValue = true; }, false); |
from:https://www.cnblogs.com/zeosky-zhe/p/13599945.html
View Details在ios10前我们能通过设置meta来禁止用户缩放页面:
1 |
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" /> |
监听事件进行判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
window.onload = function() { // 阻止双击放大 var lastTouchEnd = 0; document.addEventListener('touchstart', function(event) { if (event.touches.length > 1) { event.preventDefault(); } }); document.addEventListener('touchend', function(event) { var now = (new Date()).getTime(); if (now - lastTouchEnd <= 300) { event.preventDefault(); } lastTouchEnd = now; }, false); // 阻止双指放大 document.addEventListener('gesturestart', function(event) { event.preventDefault(); }); } |
from:https://www.jianshu.com/p/923e63cb3390
View Details
1 |
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi" /> |
P.S 这个方法在ios10以后无效 属性解释: 1.width width设置viewport的宽度,即iphone最初模拟PC浏览器的宽度,之后iphone会这个宽度展现的页面同比缩放到iphone屏幕上。设置width=device-width后就不会再进行缩放了,因为宽度正好和iphone的宽度相同(前提是没有设置缩放比例)。 2.minimum-scale和maximum-scale 控制用户允许设置的缩放比例的。 3.user-scalable 标识是否允许对页面进行缩放,取值有两个yes和no。设置为no则不允许进行页面缩放了。 4.initial-scale 设置用户最初看到页面时的缩放比例。 5.target-densitydpi Android 浏览器所需要的,因为 Android 硬件设备标准不一, 其中同样物理尺寸的屏幕,可能因为 dpi 的不同而具有不同的分辨率, Android 浏览器默认会缩放页面以便最好地呈现, 可惜和 Java 的垃圾回收一样,它很难做到"最好"。所以最好还是人工指定吧。 target-densitydpi 可以设定的值 device-dpi – 设备本身的像素 high-dpi -用高像素,中低像素屏幕适当缩小。 medium- 中等像素,高的屏幕放大,低的变小是默认值 low-dpi – 低像素,中高像素会适当变大。 from:http://t.zoukankan.com/bugs-p-3139811.html
View Details直接贴代码了: js调用
1 |
window.location.href = "tel:要拨打的电话号码"; |
a标签调用
1 2 3 4 5 |
<meta name="format-detection" content="telephone=yes"/> <a href="tel:要拨打的电话号码">点击打电话噢~</a> <a href="sms:要发短信的电话号码">发短信</a> |
from:https://blog.csdn.net/qq_42817227/article/details/102569519
View Details
1 2 |
head 里面加上: <meta name="format-detection" content="telephone=yes"/> |
1 2 |
需要拨打电话的地方: <a href="tel:400-0000-677">400-0000-688</a> |
1 2 |
发短信: <a href="sms:155********">发短信</a> |
点击页面上的电话号码 ,页面会调用手机的电话接口。 from:https://blog.csdn.net/baidu_39043816/article/details/108318327
View Details1. 创建一个文件包
2. npm init
3. 创建一个index.js 文件,并写入一些要实现的代码
4. npm install -g
5. npm link
6. npm login
7. npm publish
8. npm publish --registry=https://指定你要推送的包管理库
9. npm version patch // 更新版本
10. npm update gulp //可以把当前目录下node_modules子目录里边的对应模块更新至最新版本
11. npm unpublish npmhswcommonwei@1.0.2 // 可以撤销发布自己发布过的某个版本代码