前端技术文章
-
伪类作用于DOM元素状态,伪元素生成渲染层虚拟内容;单冒号:仅用于伪类,双冒号::专用于伪元素,语义强制区分,混用会导致样式失效或解析错误。329 收藏 -
CSSmax()是CSS函数,非HTML功能,必须用于支持长度值的CSS属性中(如width),且需浏览器支持CSSValuesandUnitsLevel4;写在HTML标签或属性里无效。440 收藏 -
标签中添加 fetchpriority="low" 属性,告诉浏览器该图片不是关键资源,可以稍后加载。
2. 适用">
能,但仅Chromium98+支持,Firefox和Safari忽略;它不阻止加载,只降低请求调度优先级,需与loading="lazy"配合使用才有效。459 收藏 -
WeakRef仅避免阻止GC,不自动清理缓存;FinalizationRegistry才是感知对象真正回收并触发缓存键删除的唯一机制,二者需配合使用且不可替代。494 收藏 -
能,但效果受限——因原生<select>由操作系统绘制,box-shadow常被系统控件遮盖或忽略;可靠方案是用带阴影的包裹容器配合appearance:none自定义样式。303 收藏 -
HTTP/2ServerPush在现代浏览器中已完全失效,Chrome96+、Firefox90+、Edge96+均静默忽略,仅rel="preload"是唯一可行替代方案,需置于<head>中并严格指定as属性。496 收藏 -
可以使用 :nth-child() 伪类结合类名来选择特定的元素。不过需要注意的是,:nth-child() 是根据元素在父元素中的位置来选择的,而不是根据类名。如果你想按类名过滤后选择第 N 个匹配元素,可以使用 :nth-of-type() 或者结合 JavaScript 来实现。方法一:使用 :nth-of-type()(适用于相同标签)如果元素是相同的标签(如都是),你可以这样
.class:nth-child(n)指父元素第n个子节点恰好是.class元素,而非筛选后取第n个;它受HTML结构严格限制,空白文本节点会导致匹配失败,目前无可靠CSS原生替代方案。490 收藏
PWA后台冻结管理需主动监听freeze与pagehide双事件,在JS挂起前完成状态保存与资源清理;resume事件精准恢复,状态存sessionStorage且仅限可序列化轻量数据。156 收藏
Group-hover为什么必须配合group类使用直接写group-hover:xxx没效果,是因为Tailwind的group-hover是一个“依赖类”——它只在父元素有group类时才生效。没有group,group-hover根本不会被编译进CSS。错误写法:文字→完全无效正确结构:文字group必须加在触发hover的祖先容器上(不一定是直接父级,但必须是DOM上层)子元素hover状态下修改父级以外的兄弟元素常见需求:鼠标悬停在387 收藏
虚拟DOM和响应式系统是现代JavaScript框架的核心。答案:通过JS对象模拟DOM并结合数据监听实现自动更新。用VNode描述UI结构,避免频繁操作真实DOM;利用Object.defineProperty或Proxy监听数据变化,在getter中收集依赖,setter中触发更新;状态变化时重新生成VNode,通过diff算法比对新旧节点,最小化更新真实DOM;结合二者可实现“数据变→视图更新”的闭环,构成Vue、React等框架基础。121 收藏
使用组合选择器和BEM命名规范可有效避免CSS嵌套样式污染,通过提升特异性和作用域隔离,确保组件样式互不干扰。489 收藏
clearTimeout用于取消未执行的setTimeout定时器,需传入其返回的timerID;未保存ID则无法取消,重复调用或传入无效值均无效果但不报错。324 收藏
:nth-child(2n+1)按父元素所有子元素序号选中奇数位置元素,不区分标签类型;若存在其他节点(如div、注释或空白文本节点),则实际li的序号偏移,导致视觉奇数项未被选中。498 收藏
jQuery已非新项目必需,因现代浏览器原生API成熟、主流框架减少DOM操作、体积负担与维护成本高;仅老系统、特定插件依赖或极简静态页等场景暂难替代。451 收藏
flex-grow无法直接过渡,因其为非数值型计算属性,无中间状态;应改用flex-basis、width或max-width等可动画数值属性配合transition实现平滑伸缩。309 收藏