获得徽章 14
#每天一个知识点# flex布局中的item,如果上下两个item固定的height,中间的item想要填充剩余高度,给他一个flex:auto的样式就可以了
#每天一个知识点# promise可以通过await进行同步等待,给await所在得function添加aync修饰符
#每天一个知识点# position定位,
fixed:相对视口定位
relative:相对于本来的位置定位,原来空间占用还在
absolute:相对于第一个非static的父元素定位:不占用原来空间
#每天一个知识点# flex布局总结
● 概念
○ 水平主轴 main axis
■ main start
■ main end
■ main size
○ 垂直交叉轴 cross axis
■ cross start
■ cross end
■ cross size
#每天一个知识点# 根据设备的dpi来缩放canvas的画布
const ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
#每天一个知识点# 如果要做移动端的页面,高度不能用100vh,要用window.innerHeight,不然浏览器的顶部地址栏和底部的工具栏会把原本的内容区挡住
#每天一个知识点# signature_pad,一个用来做电子签名的库,有一个canvas即可实现
#每天一个知识点# 用最新的nettysocketio有bug,每次连接会创建两次,所以降级使用,netty-socketio用1.7.25.nodejs的socketio-client用2.5.0
#每天一个知识点# 之前都在写后端,最近新启一个项目,公司有个现成的基础轮子可以用,就是前端技能比较薄弱,把代码翻了一下,为了满足开发,前端的知识储备包括:nodejs,typescript,vite,vue,pinia,vue-router,naiveui,tailwindcss
#每天一个知识点# 浏览器治理的媒体类型
const possibleTypes = [
"video/webm;codecs=h264,opus",
"video/webm;codecs=vp9,opus",
"video/webm;codecs=vp8,opus",
];
possibleTypes.filter((mimeType) => {
return MediaRecorder.isTypeSupported(mimeType);
});
下一页