-
用CSS自定义属性映射状态颜色的正确做法是:先通过属性选择器(如[data-state="error"])声明--state-color等变量,再在通用规则中用var(--state-color)消费,实现状态与样式的解耦和集中维护。
-
SVG内联图标fill不生效,主因是SVG自带fill属性优先级高于CSS;解决方法为删除原fill或改用fill="currentColor",再通过CSS变量(如--icon-color)或color属性统一控制颜色。
-
background-size:cover在手机上总切掉人脸,因其只保证“填满”容器而不保证“内容可见”,等比缩放时短边撑满、长边溢出,而iPhone14Pro(19.5:9)与常见图片(16:9或4:3)宽高比差异大,竖屏必裁顶部/底部,横屏则可能左右被砍。
-
真正隐藏又可读应使用.sr-only类:绝对定位+1px宽高+负边距+溢出隐藏+clip/clip-path+white-space:nowrap;禁用display:none、visibility:hidden、hidden属性。
-
本文详解为何直接向数组推送Object.keys()后调用.sort()无法实现排序,揭示JavaScript数组嵌套与原地排序机制的关键差异,并提供简洁、高效、符合最佳实践的对象键名排序方案。
-
HTML5中清除浮动影响的五种方法:一、clear:both插入空元素;二、触发BFC(如overflow:hidden或display:flow-root);三、伪元素clearfix方案;四、Flexbox替代浮动;五、CSSGrid布局。
-
掌握WebGL需理解:1.渲染管线包括顶点着色器、图元装配、光栅化、片元着色器和逐片元操作;2.使用GLSLES编写着色器,管理attribute、uniform和varying变量;3.通过VBO上传顶点数据并配置属性指针;4.利用模型、视图、投影矩阵进行坐标变换;5.加载纹理并设置采样参数;6.管理状态如启用深度测试、清屏及绘制调用。
-
WebUSB和WebBluetooth必须经用户显式授权且仅限安全上下文(HTTPS/localhost);WebUSB需满足协议、触发方式、设备过滤三条件,WebBluetooth依赖系统蓝牙开启、权限、设备可见性及正确过滤。
-
ShadowDOM是WebComponents的核心技术,用于实现DOM封装与样式隔离。通过attachShadow()方法可在元素内部创建独立的DOM环境,其结构和样式对外不可见且互不影响。支持open和closed两种模式,分别控制外部是否可访问ShadowRoot。具备样式隔离、结构隐藏和事件重定向特性,确保组件内聚性。利用:host和::slotted()可实现宿主与插槽的样式控制,CSS变量支持穿透传递。广泛应用于自定义UI组件、第三方嵌入工具及设计系统中,结合CustomElements构建高
-
Vue组件中emit不捕获原生DOM事件,子组件需监听DOM事件后调用emit抛出语义化业务事件;父组件应监听业务事件而非DOM事件,避免传递原生event对象、滥用.native修饰符,并采用kebab-case命名。
-
BEM不支持继承关系,因其要求每个类名脱离DOM结构独立存在、可迁移、可识别归属;禁止使用.card__content.button等后代选择器,避免样式意外生效、渲染性能下降及维护困难。
-
label属性用于在浏览器字幕菜单中显示轨道名称,必须与kind和srclang配合使用;单独设置无效,且需确保同一kind与srclang下label唯一,长度宜≤20字、不含HTML。
-
直接写.page-link{background-color:red}不生效,是因为Bootstrap5使用高权重选择器如a.page-link[href],其CSS权重高于单类选择器;需用.my-pagination.page-link等更具体选择器覆盖全部状态(默认、hover、focus、active、disabled),并推荐通过CSS变量--bs-pagination-bg等实现主题化。
-
图片悬停放大后“跳一下”的根本原因是图片默认为行内元素,受基线对齐影响产生底部空白,放大时空白被拉伸导致视觉上移;需加display:block或vertical-align:top消除间隙,并配合transform-origin:center、overflow:hidden及will-change:transform等优化措施。
-
grid-template-areas不能定义网格线名,线名必须在grid-template-rows/columns中用方括号语法声明,引用时也必须加方括号,如[name],裸名会被忽略或报错。