-
DartSass是当前唯一被官方activelymaintained的Sass实现,RubySass、LibSass和NodeSass均已停更;它由原作者团队开发,独占支持:has()、color-mix()、@use/@forward等新特性,且通过CSSSpecTestSuite验证兼容性。
-
ChromeDevTools断点调试最直接有效,需结合debugger语句、行号断点与条件断点;善用console.group、table、格式化及标签过滤;错误须用console.error输出完整对象;VSCode调试需正确配置sourceMaps和webRoot。
-
直接切换link.href会闪屏,因浏览器需卸载旧样式再加载新CSS,产生无样式空白期;应预加载所有皮肤CSS并用disabled控制启用状态,避免网络请求与解析延迟。
-
Grid布局中项目高度不一致时,应使用grid-auto-rows:minmax(最小值,最大值)统一行高,并配合align-items控制项目内垂直对齐,避免跨行干扰需显式设置grid-row-end。
-
表单字段条件显示必须用JavaScript监听事件并控制显示/隐藏,同步更新required属性;下拉联动需用映射对象动态生成选项;多选框逻辑应基于checked状态判断;提交前须校验可见必填字段,后端必须重复校验。
-
calc中运算符两侧必须加空格,否则解析器误判为非法token;Sass需用#{$var}插值、Less需用~"..."转义,避免预处理器错误计算;所有数值必须带单位(含0)。
-
禁用HTML5表单验证直接在<form>标签添加novalidate布尔属性即可,它会彻底关闭该表单所有原生验证(如required、type、pattern),但DOM状态和伪类可能残留;若仅禁用单个提交按钮的验证,可用formnovalidate;仅移除required属性不可靠,需配合setCustomValidity('')和reportValidity()重置状态;低版本IE/Android存在兼容性问题,需JS兜底;适用于自定义提示、异步校验、多步骤表单等场景。
-
button标签必须显式声明type属性,否则在Chrome等浏览器中默认为submit导致意外提交表单,而IE11则默认为button,造成兼容性问题。
-
浮动元素设pointer-events:none后点击能穿透到底层;但若其自身或任意祖先设了该属性,则整棵子树被跳过命中测试,子元素设auto也无效。
-
place-items是justify-items和align-items的简写,先水平后垂直;仅作用于网格容器直接子项,不控制子项内部布局;单值复用、双值分设,禁混单位与关键字;易与place-content、align-content混淆;受align-self/justify-self覆盖;IE不支持。
-
根本原因是video自身宽高比约束父容器尺寸,object-fit:cover仅控制内容裁剪而不改变容器布局;必须用position:fixed使父容器强制铺满视口,并重置bodymargin、设video为block且加-webkit前缀兼容旧版Safari。
-
background-image路径需相对于CSS文件位置,推荐用构建工具的url(./)写法;背景不显示常因repeat、size或容器无宽高;body上使用需重置html/body样式;响应式建议媒体查询切换,降级用background-color。
-
Grid布局中元素间距重叠主因是混淆gap、margin、padding作用范围:gap控制网格轨道间空白,应设于容器;避免给网格项设垂直margin以防偏移;padding按需设于容器或子项。
-
CSS文字渐变必须用background-clip:text配合渐变背景和透明文字实现,因color属性仅支持单色值,不接受linear-gradient()等image类型;核心四行缺一不可:渐变定义、-webkit-background-clip:text、background-clip:text、-webkit-text-fill-color:transparent,并需设置display为block或inline-block。
-
本文讲解如何避免因直接修改DOM导致原始数据丢失的问题,通过将初始值存入内存(如对象或dataset)作为“单一数据源”,确保每次计算都基于原始基准值,从而实现准确、可逆的动态比例换算。