前端技术文章
-
MediaRecorder必须依赖MediaStream才能工作,报错通常源于流未获取、无效或传参错误;需校验流有效性、确保HTTPS环境、避免手动stop流、正确管理生命周期。320 收藏 -
display:none使元素脱离文档流且不占空间,布局重排;visibility:hidden保留空间,布局不变,仅视觉隐藏。320 收藏 -
::marker{color:red}未生效,是因为部分旧版浏览器(如旧Safari/Firefox)对::marker支持有限,且::marker不继承li的color,但可能受ol的color影响;需显式为li::marker设置color并隔离文字色,兼容性差时应降级使用list-style-type:none+counter()模拟。320 收藏 -
indexOf在document.body.innerHTML中搜不到中文或换行,是因为浏览器已将原始HTML解析并规范化:换行符被压缩为空格、连续空白合并、中文可能被转义为中文,且标签自动闭合,导致字符串与渲染内容不一致。320 收藏 -
align-items-stretch在.row上无效是因为Bootstrap4的.row默认display:block,非Flex容器;需手动加d-flex类或升级至Bootstrap5并确保display未被覆盖。320 收藏 -
start属性值必须为整数,非整数会退化为1;常见失效原因包括CSS隐藏序号(如list-style:none)、type与start未配合(如type="a"时start="5"显示"e."而非"5.")、aria-hidden等遮蔽元素,或value局部覆盖干扰全局计数。319 收藏 -
JavaScript类实例可直接解构赋值,前提是属性为实例自身可枚举属性;也可通过toObject()方法返回纯对象再解构;或实现Symbol.iterator支持数组式解构;还可结合默认值增强容错性。319 收藏 -
fetch不会自动拒绝404/500等HTTP错误,必须手动检查response.ok并主动throw错误;否则错误响应会被当作成功处理,导致后续解析失败或逻辑异常。319 收藏 -
用grid-template-columns:240px1fr实现侧边栏固定宽、主内容自适应;1fr分配剩余空间而非等同100%或auto;响应式需媒体查询切换布局;resize模拟拖拽需overflow配合;移动端错位多因未设grid-column或高度未拉伸;fr比%/calc()更精准高效。319 收藏 -
Less不支持对象式变量,因变量系统仅接受单一值且为文本替换;需用命名空间模拟键值对,并配合条件混入与方括号语法访问。319 收藏 -
ToNumber将undefined转为NaN、null转为0,根源在于语义定位:undefined表示“缺失”,无可数值化;null作为“空对象引用”,映射为默认值0。319 收藏 -
:has()伪类兼容性有限,Chrome105/Firefox103/Safari16.4起支持,旧版本静默失效;不支持伪元素和状态伪类;构建工具可能误删;JS监听+class切换更可靠。319 收藏 -
使用rel="preload"预加载关键CSS,内联首屏样式并异步加载非关键CSS,结合rel="prefetch"预取后续页面资源,避免渲染阻塞,提升页面加载速度与用户体验。319 收藏 -
outline不占盒模型空间而border占用,这是根本区别:border改变元素布局尺寸,outline仅视觉呈现且不影响周围元素。319 收藏 -
Flex居中失效主因是html/body未设height:100%,需全局重置;推荐用gridplace-items:center替代flex,更稳定;模态框须避免absolute/fixed定位及bodyoverflow:hidden陷阱。319 收藏