-
单行文字用line-height最直接,设为与容器height相等即可垂直居中;多行文字用display:flex加align-items:center;注意盒模型(padding/border)影响实际居中区域,vertical-align对块级元素无效。
-
视频无法播放的原因是浏览器对视频编码支持不同,解决方法是使用多个<source>标签提供多种格式。HTML5的<video>标签通过MP4(H.264)、WebM(VP8/VP9)、Ogg(Theora)等格式实现跨浏览器兼容;关键属性包括controls(控制条)、width/height(尺寸)、poster(封面图)和<source>(多格式支持);常见问题如自动播放需配合muted、preload优化加载、playsinline适配移动端;优化方面包括视频压缩、
-
grid-auto-rows:1fr起作用需容器有明确高度约束;它按比例分配可用高度,非强制等高,须配合min-height或父容器高度上下文才能实现卡片等高。
-
HTML5拖拽排序核心是dragstart中设置dataTransfer,drop时必须preventDefault;推荐用text/plain传id,用insertBefore精准插入,移动端需用SortableJS等库替代原生API。
-
CSS没有background-video属性,全屏背景视频需用video元素配合object-fit:cover、width:100vw、height:100vh及autoplaymuted等属性实现,并注意移动端playsinline、兼容性降级和视频源质量。
-
关键在于避免动画元素频繁触发合成层更新,GPU只负责合成而非重绘;仅transform、opacity、部分filter变更可走合成线程;需用will-change+translateZ预创建层,杜绝强制同步布局,并管控图层生命周期。
-
生成器和迭代器基于统一协议实现惰性求值与数据遍历,通过next()方法返回{value,done}对象,生成器函数简化了迭代器创建过程,提升处理大数据序列的效率与代码可读性。
-
尾调用优化在ES6中要求尾调用重用当前栈帧,避免栈溢出,适用于函数尾位置直接返回另一函数调用的场景,如尾递归阶乘函数。
-
正确插入网络图片需用完整URL(含https://协议),避免混合内容、缺失alt属性及CORS限制;外链图片存在失效风险,关键内容不宜依赖。
-
opacity渐入渐出不触发,因display:none禁用动画;须用opacity+visibility控制,配合animationend事件清理状态并避免重复触发。
-
Vue中用v-permission指令实现按钮级权限控制:通过binding.value获取权限码,从sessionStorage读取解析后的权限数组,比对后无权限则el.parentNode&&el.parentNode.removeChild(el)安全移除DOM节点。
-
消息面板需语义化结构(article/h3/time)、状态同步(API+loading)、可访问性(aria-label)、性能优化(预处理时间、懒加载)及跨端兼容(时区、点击热区)。
-
<mark>标签是HTML5新增的语义化标签,专用于标记与当前上下文相关的内容(如搜索关键词、引用重点、法律条款),需配合CSS定制样式以保障可访问性,不可用于纯装饰性高亮。
-
使用CSS浮动可实现表单元素横向布局。1.通过float:left/right使元素脱离文档流并排列,需设宽度、清除浮动;2.input与select并排时统一宽高,父容器用::after清浮;3.checkbox的label浮动实现同行多选,避免换行;4.响应式下小屏改垂直布局,取消浮动设块级显示。浮动仍适用于简单表单,关键在控制宽高、浮动方向及清除机制。
-
BEM嵌套过深会引发选择器权重失控、可维护性下降、类名匹配性能损耗及动态拼接易出错等问题,应按语义独立性拆分block,严格区分--modifier(静态变体)与is-*(运行时状态),并配套工具链规范保障一致性。