-
css:has()选择器能直接选中含特定子元素的父项吗?能,但只在现代浏览器里可靠。Chrome105+、Firefox118+、Safari15.4+支持,旧版Safari和所有IE完全不支持。:has()是CSS唯一原生支持“从子反查父”的机制,不需要JS干预。写:has()时最常见的语法错误容易多写空格、漏括号,或误用伪类顺序。浏览器遇到语法错误会整个规则失效,且不报错——你只会发现样式没生效。div:has(>.error)✅正确:直接子元素匹配
-
flex-wrap用于控制Flexbox子元素是否换行,可选值为nowrap(不换行)、wrap(允许换行)和wrap-reverse(反向换行),常与flex-direction配合实现响应式布局。
-
BEM命名本身不能阻止margin塌陷,因其仅规范类名结构而不改变CSS渲染规则;需通过单侧margin、BFC封装或Flex/Grid的gap等样式策略来规避。
-
Grid布局与浮动混用必然出问题,因Grid容器内float无效,而兄弟或嵌套浮动会干扰文档流,导致错位、塌陷;应分离职责:Grid管整体结构,浮动仅限隔离的局部上下文。
-
应添加transition属性,如transition:transform0.5sease-out,并为常态设置transform:rotate(0deg),否则因缺失过渡声明导致瞬时跳变或卡顿。
-
HEX转RGBA应优先使用构建工具或CSS原生语法而非手写JS函数;固定透明度用PostCSS/Sass,动态才用JS;8位HEX(#RRGGBBAA)兼容性有限,需降级处理;JS实现须严格校验格式并trim空格。
-
text-wrap:nowrap不是标准CSS属性,根本不存在;正确写法是white-space:nowrap,它通过禁止自动换行并合并空格来实现单行显示,需配合width、overflow和text-overflow才能稳定生效。
-
行内样式本身不直接触发重排,但JS中读写交替(如先读offsetHeight再设style)会强制同步布局;单纯改opacity等属性通常只重绘,改width或display则大概率重排。
-
外边距合并是CSS规范定义的margin-collapse行为,仅发生在普通流中垂直方向块级元素间;有效解法是触发BFC(如overflow:hidden或display:flow-root)或改用flex+gap布局。
-
JavaScript表单正则验证关键在于流程嵌入而非语法本身:blur触发主校验、input仅做轻量过滤;必加^$锚点防子串匹配;显式处理中文、空格、emoji;前后端校验逻辑必须一致,且后端不可省略。
-
required仅校验非空,不校验格式;pattern自动锚定且不支持标志符;min/max/step在number与date中行为不同;setCustomValidity需手动清空;原生校验仅响应表单提交事件。
-
HTML中有<header>标签,它是语义化标签而非页眉专用容器,不强制位置或样式,仅表征逻辑页眉;应按内容层级合理使用,避免滥用导致可访问性下降。
-
bind方法创建新函数并永久绑定指定this值和预设参数;调用func.bind(obj)后,新函数无论在哪执行this始终为obj;支持预设前置参数实现柯里化,如func.bind(null,'a','b')调用时自动前置;新函数不可用new调用,无prototype,length为原函数形参减已绑定数。
-
必须设且设为zh-CN——它明确表示简体中文+中国大陆规范,影响屏幕阅读器朗读、浏览器翻译、SEO及CSS:lang()伪类;设错或不设会导致语音引擎误用、翻译异常、SEO降级等问题。
-
fr单位按剩余空间分配而非等分屏幕,受box-sizing、padding、滚动条等影响;响应式需结合minmax()、grid-template-areas及flex降级方案。