-
HTML5的标签原生支持三种主要视频格式:MP4、WebM和Ogg。选择合适的格式能确保视频在不同浏览器中顺利播放。MP4(H.264+AAC)——兼容性最强MP4是目前兼容性最好的格式,几乎所有现代浏览器都支持它。但要注意,并非所有MP4文件都能播放,必须使用特定编码:视频编码:H.264(也称AVC)音频编码:AACMIME类型:video/mp4苹果Safari、微软Edge和InternetExplorer都只支持这种组合。因此,提供一
-
状态管理是前端应用中对数据存储、更新和分发的统一控制。1.它涵盖UI状态(如加载提示)、业务状态(如购物车)和服务器缓存状态。2.随着单页应用发展,组件间数据共享与视图同步成为挑战,需通过有效数据流提升可维护性和协作效率。3.小型项目可用组件内状态(如useState),大型项目倾向集中式管理。4.主流模式包括:单向数据流(如Redux),强调动作→状态→视图的可预测流程;响应式数据流(如Vuereactive、MobX),自动追踪依赖并更新;命令式方案(如Zustand、Jotai),API简洁适合轻量
-
Webpack是一个现代JavaScript应用的静态模块打包工具,将JS、CSS、图片等资源视为模块,通过依赖图打包为浏览器可运行文件,并通过loader处理非JS资源、plugin扩展构建能力,支持代码分割与热更新。
-
CSS定位通过position属性控制元素位置,包含static(默认流)、relative(相对偏移)、absolute(相对非static祖先)、fixed(相对视口)和sticky(条件吸附)五种方式,配合z-index管理层叠顺序。
-
使用浮动实现多列等宽需控制总宽度不超过100%、应用box-sizing:border-box避免溢出,通过精确百分比如33.33%或25%设置列宽,结合overflow:hidden防止高度塌陷;为避免浏览器四舍五入导致换行,可将总宽度设为99.9%以内或使用font-size:0消除空白符影响;当存在边框或外边距时,可用负margin微调对齐,如.container加margin-right:-1px抵消边框;推荐现代方案采用Flex布局,设display:flex与flex:1实现自动均分,无需计算
-
audio没声音主因是浏览器自动播放策略限制,需用户交互后调用play();其次检查muted属性、文件路径格式、MIME类型、音量设置及父容器静音状态。
-
通过结合word-break属性和media查询可解决响应式布局中长单词或URL导致的换行异常。在小屏幕下使用word-break:break-all或overflow-wrap:break-word强制断行,大屏幕则恢复自然换行,确保内容不溢出容器,适用于用户输入、代码片段及flex/grid布局场景。
-
在HTML中创建进度条最直接的方法是使用<progress>标签。1.基本用法通过value和max属性定义当前值与最大值,如<progressvalue="30"max="100"></progress>表示30%进度;若未指定max,则默认为1.0。2.可通过CSS对进度条进行美化,使用伪元素选择器如::-webkit-progress-value和::-moz-progress-bar分别适配不同浏览器样式。3.结合JavaScript可实现动态更新,例如通过se
-
:read-only伪类仅对原生支持只读的表单元素(如input、textarea)且显式设置readonly属性时生效,不匹配disabled元素或contenteditable=false的非表单元素;需检查选择器优先级、属性是否被JS动态移除,并推荐用自定义class作为兼容性替代方案。
-
box-sizing是控制width/height计算范围的属性,默认content-box(仅内容),推荐全局设为border-box(内容+内边距+边框),确保所见即所得;需包含伪元素,margin不受其影响。
-
全选功能可通过三种方式实现:一、用document.execCommand("selectAll")配合focus()适用于可编辑元素;二、用input/textarea的select()方法最简捷;三、用Range与SelectionAPI手动控制,适用于div等非表单元素。
-
Map和Set因基于哈希表,查找、插入、删除操作平均时间复杂度为O(1),优于对象和数组。Map支持任意类型键、性能稳定且可直接获取大小,适合高频读写的键值存储场景,如缓存系统;Set自动去重,has()方法为O(1),适用于去重和存在性判断,如防止重复提交;两者结合可高效处理多对多关系,如用户兴趣标签管理,显著提升大数据量下的操作性能与代码可维护性。
-
最常用的方法是toString(),因为它语义清晰且适用于明确的数字类型;2.String()能安全处理null和undefined,适合不确定类型时使用;3.空字符串拼接(+'')简洁但隐式,可读性较差;4.模板字面量(${})在构建复杂字符串时最优雅且自然完成转换;5.toString()支持进制转换,是唯一能转为二进制、十六进制等字符串的方法;6.所有方法对NaN、Infinity、-Infinity的转换结果一致,分别为"NaN"、"Infinity"、"-Infinity";7.选择应基于可读性
-
应将重复的CSS动画逻辑抽成语义化可复用class,如.animate-fade-in、.animate-slide-up等,统一时长0.3s和fill-mode:both;支持data属性动态控制参数;允许多类组合;推荐工具辅助生成;仅对高频低差异动效封装。
-
分页组件需语义化HTML结构,用<nav>与列表包裹页码,Flex布局居中对齐并设gap间距,按钮统一尺寸与圆角,高亮当前页,悬停变色,禁用状态置灰,移动端适配间距与字体,确保可访问性与响应式。