-
poster属性是video标签的原生HTML属性,用于指定视频加载完成前或用户点击播放前显示的占位图;它仅在视频未开始加载或尚未解码首帧时生效,一旦首帧就绪即被替换,不响应交互且无法控制首帧内容。
-
aspect-ratio可在Chrome88+、Firefox89+、Safari15.4+、Edge101+中直接使用,但Safari15.0–15.3会静默忽略,IE、X5内核等完全不支持;需配合width/max-width使用,不可与height共存,且必须作用于块级或弹性/网格子项容器,搭配object-fit等控制内容填充。
-
隐式转换主要发生在==、+、!、if条件判断、&&/||等场景,通过toString()或valueOf()自动进行;===不触发转换,更安全可预测。
-
length属性写入小于当前值会同步、不可逆地删除超出元素并释放内存;仅对真数组有效,需赋非负整数,比splice(0)、赋新数组或循环pop更高效轻量。
-
HTML原生<inputtype="date">无法修改显示格式(如改为yyyy-MM-dd),其格式由浏览器强制控制;必须借助Angular第三方日期组件(如AngularMaterial或ng-bootstrap)实现灵活的格式化与本地化支持。
-
HTML无法实现排列组合,因其是无逻辑的标记语言,缺乏变量、循环等能力;必须用JavaScript在浏览器中动态生成和操作DOM组合状态。
-
使用float实现卡片左右排列需设置元素向左浮动并控制宽度,通过clear或overflow清除浮动影响,适用于旧项目维护但现代布局推荐Flexbox。
-
使用CSStransform:translate()配合@keyframes可实现流畅卡片滑动动画。通过translateX()实现水平滑入,如从右侧滑入视图;结合opacity用translateY()实现垂直滑下;同时使用X、Y轴位移实现斜向移动;设置关键帧百分比与steps()函数可创建无限轮播效果;利用GPU硬件加速提升性能,添加will-change优化渲染,避免重排重绘,确保动画高效流畅。
-
用position:fixed实现右下角悬浮按钮的核心写法是直接设置position:fixed、right:20px、bottom:20px、z-index:1000,并避免父元素有transform/filter/perspective;常见失效原因是父级创建了新的containingblock;移动端需用env(safe-area-inset-bottom)适配。
-
ShadowDOM必须通过attachShadow()创建,仅div、span、自定义元素等支持宿主,img/input等替换元素不支持;重复调用抛InvalidStateError;innerHTML直接赋值有XSS和样式污染风险,应使用DOMParser+adoptedStyleSheets安全注入。
-
justify-content只对flex容器生效,必须在父元素设置display:flex;子元素不能直接设该属性;需配合align-items实现垂直居中,且父容器需有明确高度;IE兼容可降级为text-align:center+inline-block。
-
WeakRef无法释放WebGL纹理,必须手动调用gl.deleteTexture()并解除所有强引用;它仅能安全关联轻量级JS元数据,不能影响GPU内存回收。
-
不能直接用video默认控件,因其样式、布局、快捷键、拖动反馈均被封装且浏览器行为不一致;必须移除controls属性,用JavaScript接管play()/pause()、currentTime等API,并通过事件监听实现自定义交互与可访问性。
-
float与position:sticky无法共存,因float使元素脱离文档流,而sticky要求元素在常规流中;正确方案是用flex或grid布局配合sticky,并确保父容器可滚动且侧边栏为直接子元素。
-
本文介绍如何利用Angular的属性绑定机制,将组件类中的数值变量实时同步到HTML<progress>元素的value属性,实现进度条的动态更新。