前端技术文章
-
overflow:hidden能撑开父容器高度是因为触发BFC,使浮动子元素参与高度计算;但会裁剪溢出内容,现代推荐语义更清晰、无副作用的display:flow-root。102 收藏 -
hover过渡不生效的主因是transition未写在元素默认状态规则中,且:hover可能未真正命中目标元素;需确保transition声明在非hover规则里,并用开发者工具验证实际触发区域。356 收藏 -
HTML本身不参与SourceMap配置,因其无编译转换过程;真正需配置的是构建工具(如Vite、Webpack)对JS/CSS生成的SourceMap,HTML仅作为资源容器被动引用。488 收藏 -
Wireshark能抓到WebSocket数据包但默认不解析,因其必须捕获HTTPUpgrade握手过程(客户端GET+Upgrade头、服务端101响应)才能启用WebSocket解析;若抓包启动晚于握手完成,后续流量仅显示为TCP或乱码二进制。493 收藏 -
HTML无法实现排列组合,因其是无逻辑的标记语言,缺乏变量、循环等能力;必须用JavaScript在浏览器中动态生成和操作DOM组合状态。453 收藏 -
code标签仅提供语义标识,不保留格式;多行代码必须嵌套在pre中,二者分工明确:pre保留空白符,code声明代码语义,且HTML字符需转义。292 收藏 -
不能直接用transition:height实现面板展开动画,因为height:auto无法参与过渡;应使用max-height过渡或JS动态设置精确高度。421 收藏 -
在angular.json的styles数组中引入的CSS文件全局生效,注入<head>,优先级高于组件样式,但不影响innerHTML渲染内容和ShadowDOM组件。450 收藏 -
在Vue2中,直接修改数组中对象的属性(如item.price=...)不会触发视图更新;必须用this.$set显式通知Vue数据变化,且需作用于响应式数组的索引位置,而非对象内部。364 收藏 -
关键是从静态到交互只需用hover和transition重新组织CSS属性:hover定义悬停状态,transition控制变化过程,二者缺一不可;需在默认状态写transition、hover中改对应属性,推荐从按钮练习,注意属性匹配、过渡时间(0.2–0.35s最佳)及触屏兼容性。385 收藏 -
模态框遮罩不透明是因为父元素opacity导致子元素继承叠加,应使用rgba()单独设置背景层透明度;pointer-events:none需加在遮罩层并配合伪元素确保点击拦截;移动端需结合touch-action、overflow:hidden及层叠上下文排查。394 收藏 -
will-change不能自动消除卡顿,而是提前告知浏览器优化意图;需精准作用于即将变化的transform或opacity等合成属性,在交互触发时动态添加、动画结束立即移除,并配合transform/opacity避免重排重绘。245 收藏 -
原生<selectmultiple>不能直接用Choices.js是因为Choices.js完全接管渲染:它读取原<select>的<option>数据后隐藏原生元素,再用div+ul+input重建交互层,故必须确保原生<select>合法(含multiple属性、每个<option>有明确value)、name不可省略,且初始化需在DOM就绪后执行。266 收藏 -
符合W3C标准的HTML结构核心三点:必须以<!DOCTYPEhtml>开头(全大写、空格分隔、独占首行),<html>根元素须含合法BCP47语言标签如lang="zh-CN",且<head>内<metacharset="UTF-8">必须在<title>之前以确保正确解码。355 收藏 -
加了cursor:move弹窗仍不动,因为该属性仅改变鼠标样式,不触发位置计算;真正实现拖拽需JavaScript监听mousedown/mousemove并动态设置style.left/style.top。267 收藏