-
一个页面只能有一个<main>元素,且不能嵌套在<header>、<footer>、<nav>、<aside>内;它必须包裹本页独一无二、不可复用的核心内容,否则将损害可访问性、SEO及Lighthouse评分。
-
place-items是CSSGrid专用简写属性,用于同时设置justify-items和align-items,仅在display:grid容器上生效,控制直接子项在网格单元格内的对齐,不适用于Flex或普通块级布局。
-
column-fill在Grid布局中完全不起作用,因为它是多列布局(CSSColumns)专属属性,与Grid布局模型无关;一旦使用display:grid,浏览器即进入Grid计算逻辑,所有多列相关属性(如column-fill、column-gap等)均被忽略。
-
CSS变量不支持语法嵌套,但可通过命名约定和作用域实现逻辑层级。1.无法像编程语言那样嵌套定义变量;2.可采用BEM风格命名如--color-primary模拟层级;3.利用作用域在不同选择器中覆盖变量值,实现主题切换;4.支持变量间引用,通过var()构建依赖关系,集中管理设计系统。核心是借助级联与继承而非语法嵌套。
-
锚点跳转失效主因是id重复、非法字符、隐藏或DOM未就绪;href需规范书写,注意大小写与路径;CSS用scroll-margin-top或JSscrollIntoView补偿固定导航栏;SPA中需手动处理hash定位。
-
必须先用gl.getUniformLocation获取uniform位置并检查是否为null,再用gl.uniformMatrix4fv传列主序的16元素数组,且需确保当前绑定正确program。
-
discard后JS环境已终止,无法监听;唯一可靠信号是pageshow且persisted===false,需结合URL标记、localStorage时间戳、navigation.type交叉验证;保存现场仅能在freeze事件或pagehide且persisted===true时完成。
-
letter-spacing调整字符间距,word-spacing控制单词间距,两者配合可提升文本可读性与设计感;前者适用于标题或字体微调,后者多用于英文段落增强呼吸感;合理设置正值或负值能优化视觉效果,避免过大间距破坏语义连贯,掌握叠加规则使排版更精准。
-
@debug在编译时将变量或表达式原始值(如10px、rgba(0,0,0,0.5))输出到终端,不生成CSS,用于快速验证逻辑;但遇null或未定义变量会报错中断编译。
-
在Angular16中,父组件无法向子组件正确传递@Input()数据,通常源于模板中属性绑定语法位置错误:输入属性必须写在自定义元素标签内(如<childInbox[inboxRowsQuantity]="inboxRowsQuantity">),而非标签外。
-
旋转偏移因默认以左上角为原点,需设transform-origin:center;rotate()角度必须带单位如360deg;避免box-shadow、overflow:hidden等触发重排降级;动画优先级高于transition,推荐用animation而非混用。
-
关闭Preflight需在tailwind.config.js中设置corePlugins.preflight:false,使Tailwind跳过生成@tailwindbase的CSS;prefix:'tw-'后所有utilityclass自动加前缀,不影响自定义类名;important:true并非万能解药,会引发调试困难与冲突;CSS加载顺序不可靠,推荐prefix+preflight:false+twMerge组合方案。
-
容器查询无法直接按字数响应,因CSS无字符串函数;可行方案是JS测字数并注入CSS变量驱动字号,或用容器高度变化间接模拟字数档位,但后者受字体、断行等影响大。
-
最稳妥方式是用Babel插件在AST层精准识别并删除调试逻辑,因其可区分调用类型、支持别名与自定义函数、保留源码结构且能结合环境配置;而Terser的drop_console会误删error/warn、不支持非标准写法且缺乏语义判断能力。
-
核心是用display:flex+flex-wrap:wrap实现宽屏横排、窄屏单列;需配合max-width媒体查询移动优先,子项用弹性宽度而非固定高,避免white-space:nowrap等导致不换行。