素日里的小结1

移动端常见适配方案

1. 弹性盒布局(display: flex), 如拉勾网

  • 特点: 关键元素高度和位置不变, 容器元素做伸缩变换。
  • 用法: (1). 文字使用流失布局(em单位); (2). 图片等比缩放

2. 使用rem单位(网易做法)

  • (1). 设1rem = 100px, 设计稿750px, body宽度为7.5rem, 在不同的屏幕宽度下: font-size = width / 7.5rem;
  • (2). 设置meta标签, ;
  • (3). 当设备分辨率大于设计稿750px, 设置body宽度始终为7.5rem;

3. 使用rem单位(淘宝做法)

  • (1). 设置meta标签, device-width = 设备物理分辨率 / (devicePixelRatio * scale), 当scale = 1时, 即device-width = 设备物理分辨率 / dpr;
  • (2). var scale = 1 / devicePixelRatio, document.querySelector('meta[name="viewport"]').setAttribute('content','initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
  • (3). html元素的font-size的计算公式,font-size = deviceWidth / 10, 设计稿750px, 则font-size为75px, 元素rem尺寸为: 150px / 75px = 2rem;

4. bootstrap栅格布局

vue项目总结

  1. 问题: vue中请求返回的数组(嵌套对象), 改变对象value, 可以触发视图的更新; 若将请求返回的数组与本地数组拼接, 成为了普通数组, 改变对象value, 不能触发视图的更新; 解决方法: vue是通过检测get, set才得知数据是否更新的,而对于普通数组来说,是没有get,set方法的,所以需要我们自己手动触发,需要发送消息通知vue this.list[index].flag = true; Vue.set(this.list, index, this.list[index]);
  1. 问题: 列表在ios上滑动卡顿 解决方法: ul { overflow-y: auto; -webkit-overflow-scrolling: touch; }

日常问题

  1. 关于在谷歌浏览器中input[type="password"]框设置autocomplete=off失效问题 解决方法: 同事去掉input的id和name属性, 如果要加name, 在onchange事件中加
  1. npm安装开发环境的包: npm install --save-dev 或者 npm i -D; npm安装生产环境的包: npm install --save -dev;
  1. 移动端web app UI框架
UI框架星星语言前端框架
Ionic34Ktypescriptangular
ant-design27.6k
weui18.5k
vux12.2kvue
Framework712.2k
amazeui11.7k
mui8.9k
onsenui6.3k
sui5.5k
/* IE浏览器对输入控件有自己的font-family,需要统一 */
input,
textarea,
button{
	font-family: inherit;
}

/* Chrome浏览器会在输入控制聚集的时候添加一个蓝色的outline */
input:focus,
textarea:focus,
select:focus {
	outline: none;
}

/* 去掉textarea的可拉大小功能 */
textarea {
	resize: none;
}

/* IOS Safari在横屏的时候会放大字体,第二个属性让滑动更流畅 */
html {
	-webkit-text-size-adjust: 100%;
	-webkit-overflow-scrolling : touch;
}

/* 统一标签的margin值和p标签的line-height */
body, p, h1, h2, ul, ol, figure, li {
	padding: 0;
	margin: 0;
}
h1, h2, p {
	line-height: 150%;
}

/* 去掉select的默认样式 */
select{
	-webkit-appearance: none;
}

/* 如果有输入内容IE会给输入框右边加一个大大的X */
input::-ms-clear {
	display: none;
	width: 0;
	height: 0;
}

/* 去掉number输入框右边点击上下的小三角 */
input::-webkit-inner-spin-button {
	-webkit-appearance: none;
}
input::-webki-outer-spin-button {
    -webki-appearance: none;
}
复制代码
  • 8.图片压缩 使用tinypng.com

前端常见反爬虫策略

    1. 定义font-face字符集 例子:猫眼电影 使用font-face定义字符集, 并通过unicode去映射展示。 每次刷新,字符集的url都会发生变化。
    1. background拼凑式 例子:美团 数字为图片,根据background-position进行偏移,显示不同的字符。
    1. 字符穿插式 例子:微信公众号文章
    1. 伪元素隐藏式

      例子:汽车之家

      把关键字做到伪元素的content里面,

      div::after {
          content: "哈撒给";
      }
      
      复制代码
    1. 元素定位覆盖式 例子:去哪儿 4位数字,先用4个标签展示,其中有的数字是错的,再用几个标签(带正确的数字)去覆盖错误的数字。
    1. 增加一些无用的dom数字节点

页面元素动起来的动画库

    1. scrollreveal.js
    1. animate.css + wow.js
一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值