-
图片加载失败需用onerror指令触发状态变更,配合CSS类名与伪元素实现占位;优先内联SVG/base64避免二次请求;父容器统一管控尺寸与占位;结合loading、decoding、crossorigin等原生属性提升鲁棒性。
-
window.location.search返回URL中问号(?)开始、直到哈希(#)前的完整字符串,包括开头的?,例如https://example.com/page?a=1&b=2#section返回"?a=1&b=2"。
-
find()适合查找首个匹配项,语义准确、性能更优;filter()适合筛选所有匹配项,误用会导致语义错位和额外开销。
-
树形组件节点编辑需用动态input替代contenteditable:点击进入编辑态,创建input并聚焦,禁用方向键导航;提交或取消后还原DOM、同步数据与ARIA属性,确保语义、焦点流和状态一致性。
-
可通过调整HTML结构与CSS样式实现博客主题与布局设置。一、使用内联CSS在head中添加style标签,定义字体、背景色和标题样式;二、引入外部CSS文件如style.css和dark-theme.css,通过修改link标签的href属性切换主题,结合JavaScript实现动态切换;三、利用header、main、article、aside、footer等语义化标签构建清晰结构,提升SEO与可读性;四、采用CSSGrid设置display:grid、自适应列数和间隙,实现响应式文章网格布局;五、运
-
aspect-ratio是最干净的方案,但需Chrome88+、Firefox89+、Safari15.4+支持;在Bootstrap5.1+中需确保父容器不破坏BFC、子元素正确定位且display合法,自定义比例推荐用--bs-aspect-ratio变量,兼容性要求高时应回退padding-top。
-
应设为具体属性名而非all,如transform、opacity;timing-function优先用cubic-bezier调试;delay失效多因强制布局,需用requestAnimationFrame规避;transitionend监听需避免display切换和伪元素限制。
-
Object.assign()无法迁移事件监听器,因其仅复制可枚举自有属性,而addEventListener绑定的监听器由浏览器内部维护、不暴露为对象属性;可行方式是显式重绑定、事件委托或封装行为逻辑。
-
Grid中margin:auto仅对未显式定位的直接子项生效,需容器有明确高度且子项无grid-column等属性;place-items和place-self更可靠,分别用于全局和单个子项居中。
-
现代浏览器强制阻止HTTPS页面加载HTTP资源,称混合内容:主动型(脚本/iframe等)直接拦截,被动型(图片/视频等)Chrome94+/Firefox100+也默认阻止;CSP无法绕过,修复须改用HTTPS或协议相对路径,第三方不支持HTTPS时需代理。
-
后代选择器(空格)匹配所有嵌套层级的后代元素,不关心中间隔几层;子选择器(>)仅匹配直接子元素,要求目标为父元素的第一层子节点。
-
size属性用于切换select控件类型而非调节下拉高度:size="1"为传统下拉,size≥2时变为始终展开的列表控件,支持键盘导航且所有option默认可见,但移动端Safari会忽略size>1。
-
@page规则中不存在page-orientation属性,真正控制打印方向的是size属性的landscape或portrait关键字;其生效受组策略、命名冲突、分页行为及内容样式协同影响。
-
border-bottom不支持transform动画,故需用::after伪元素实现动态底划线;须设position:relative于菜单项、absolute于::after,并用transform:scaleX()配合transform-origin控制滑入或居中展开效果。
-
initial-letter在Chrome/Firefox中不生效,是因为浏览器尚未原生实现该属性:Chrome119+需手动开启实验标志才支持,Firefox至今完全不支持,AndroidWebView及旧版Safari亦无实现。