-
:is()适用于重复父路径加多个子选择器的场景,如.article:is(h1,h2,.meta),可避免重复书写父选择器、提升可维护性;不适用于跨不同祖先的选择器合并,且需注意特异性、兼容性和禁用嵌套与伪元素。
-
HTML变量在主题切换中不能直接用。需通过data-theme属性配合CSS规则声明变量,JS仅设置属性;刷新时须手动从localStorage恢复,并确保在CSS加载后、组件渲染前执行。
-
HTML无法实现艾宾浩斯算法,必须用JavaScript动态计算复习间隔;需根据用户操作实时更新data-next-review等属性,并将复习计划存入localStorage,日期比较应使用newDate()转时间戳。
-
Symbol是ES6引入的唯一值类型,用于避免属性名冲突、模拟私有属性、定义对象特殊行为(如Symbol.iterator)和替代魔术字符串,提升模块安全与语义清晰性。
-
justify-content和align-items对绝对定位子元素无效,因为position:absolute使元素脱离文档流、不再属于flex项目,无法参与flex布局计算;其定位仅依赖最近的定位祖先及top/left/transform等属性。
-
系统性掌握HTML5需分三阶段:一、掌握语义化标签结构,如<header><nav><main>等及DOCTYPE声明;二、通过复刻响应式页面练习盒模型与媒体查询;三、用JavaScript实现DOM获取、事件监听与内容修改。
-
Modernizr是全局特性检测最省心方案,通过HTML类名和Modernizr对象支持多特性检测;原生JS可用in操作符、CSS.supports()和Image实测分别检测API、CSS和图片格式支持。
-
单行省略必须同时满足white-space:nowrap、overflow:hidden、text-overflow:ellipsis且容器有明确宽度;多行省略在Less中依赖-webkit-line-clamp组合四属性(display:-webkit-box、-webkit-box-orient:vertical、-webkit-line-clamp、overflow:hidden),缺一不可,且受限于WebKit/Blink内核,Firefox等仅能降级为max-height+hidden。
-
正确控制Grid子元素换行高度需结合grid-auto-rows与line-height设置。1.grid-auto-rows定义隐式行高,确保每行基础高度一致;2.line-height影响文本渲染,过大或相对值会导致内容区域溢出;3.子元素应设overflow:hidden、min-height:0或使用line-clamp限制行数,防止文本换行撑开布局;4.推荐配合flex居中内容,实现等高卡片稳定显示。
-
<tr>标签本身无悬停效果,需CSS或JS实现;推荐用tbodytr:hover(需含<tbody>)、避免内联JS、注意IE8兼容性及移动端适配。
-
:read-only伪类仅对原生支持只读的表单元素(如input、textarea)且显式设置readonly属性时生效,不匹配disabled元素或contenteditable=false的非表单元素;需检查选择器优先级、属性是否被JS动态移除,并推荐用自定义class作为兼容性替代方案。
-
csscolor-contrast()通过自动计算背景色与备选色的对比度,选择符合WCAG标准的颜色,确保文本可读性;在响应式设计中实现主题切换时的文本自适应;结合LCH/OKLCH等现代颜色空间,提升视觉一致性与设计自由度,优化无障碍体验。
-
translate3d(0,0,0)比translateZ(0)更稳,因老内核对其支持更完整;但需配合backface-visibility:hidden、避免父容器干扰及禁用内部overflow等组合使用才真正有效。
-
Webflow导出HTML时忽略align属性,因其采用CSSFlex/Grid布局且align在HTML5中已废弃;图片对齐需通过自定义CSS类(如.img-wrap-leftimg{float:left})实现,且导出前须勾选“Downloadassetslocally”避免图片404。
-
最安全优雅的方式是用工厂函数返回新对象,因对象字面量会导致多个组件实例共享同一引用,引发引用污染;Vue中default必须为无参函数,React中推荐组件内解构合并或useMemo。