-
JavaScript通过FileAPI纯前端读取用户上传文件,核心是<inputtype="file">获取File对象,再用FileReader异步读取为文本、base64或ArrayBuffer;支持多选、图片预览、JSON解析等场景,受限于安全策略无法获取真实路径,IE9及以下不支持。
-
使用overflow和padding可解决浮动导致的父元素高度塌陷。首先,通过设置父容器overflow:hidden触发BFC,使其包含浮动子元素,防止布局塌陷;其次,结合padding确保内容与边框间距,提升视觉效果,同时可添加clear:both的清除元素保证布局稳定。该方法无需复杂布局技术,兼容性好,适用于旧项目维护和需广泛浏览器支持的场景。
-
HTML5通过<video>标签原生支持视频嵌入,需设置宽高、controls、preload和poster属性;用多个<source>适配格式;自动播放须加autoplay与muted;响应式布局用CSS保持宽高比;添加备用文本、aria-label和<track>提升可访问性。
-
用border实现扁三角形的原理是利用相邻边交界处的斜切效果,三边透明、一边实色,配合width:0;height:0;形成三角;关键在于控制border-width比例(如2:1)和transform微调形状。
-
HTML5无法原生播放RTSP,所有方案均依赖中间服务转封装/转码;WebRTC替代HLS或MSE可显著降内存;需优化FFmpeg参数、前端资源释放及启用硬件加速。
-
input[type="checkbox"]和radio不能直接CSS改外观因浏览器原子级渲染,需先用appearance:none解锁;移除后须设宽高、关联label、处理状态与无障碍。
-
合理安排外部CSS引入顺序并区分关键与非关键资源可提升页面性能。首先在<head>中通过<link>引入重置样式和核心布局文件,确保首屏内容优先渲染;随后加载视觉增强类库如Animate.css。对于非关键CSS(如打印样式),采用rel="preload"结合onload或动态创建<link>元素实现异步加载,避免阻塞渲染。若使用Web字体,应配合<linkrel="preconnect">和<linkrel=
-
navigator对象是浏览器提供的全局接口,用于获取浏览器环境、操作系统及硬件能力等信息。1.常用属性和方法包括:navigator.userAgent获取用户代理字符串;navigator.platform获取操作系统平台;navigator.cookieEnabled判断Cookie是否启用;navigator.onLine检测网络状态;navigator.language/languages获取语言偏好;navigator.hardwareConcurrency获取逻辑核心数;navigator.
-
TensorFlow.js支持浏览器内机器学习,1.可加载预训练模型实现图像识别;2.能基于MobileNet迁移学习定制分类;3.支持前端从零训练简单模型;4.结合摄像头麦克风实现实时交互,兼顾隐私与离线运行。
-
PostCSS是一个基于JavaScript插件链式处理CSS的平台,本身不直接处理CSS,需通过插件(如autoprefixer、cssnano)实现功能,并集成于Webpack(viapostcss-loader)或Vite(默认内置支持,依赖postcss.config.js配置)中运行。
-
Proxy是可拦截对象操作的代理包装器,它不存储数据而转发操作给目标对象,并通过handler中的trap(如get、set)插入自定义逻辑;创建需newProxy(target,handler),且常用陷阱需配合Reflect方法确保行为正确。
-
浏览器通过解析HTML构建DOM树,加载外部资源,结合CSSOM生成渲染树,完成布局与绘制,最终合成图层并显示页面内容。
-
Flex布局必须作用于直接父容器,子元素设display:flex无效;主轴默认为row,justify-content控制主轴对齐,align-items控制交叉轴;flex:1是flex-grow:1、flex-shrink:1、flex-basis:0%的简写;IE11需加-ms-前缀且部分属性不支持。
-
加了border后圆形头像变椭圆或发虚,是因为box-sizing:content-box使border额外撑开尺寸;应设相等宽高、border-radius:50%、box-sizing:border-box,并用object-fit:cover和object-position:center控制图片。
-
Modernizr不会自动为html添加类名,需确保脚本正确加载、DOM就绪后再读取className,并确认检测项(如flexbox)已启用;Modernizr.load已废弃,应改用loadjs或原生import();@supports可替代纯样式检测,Modernizr适用于JS行为分支。