前端技术文章
-
BEM命名本身不能阻止margin塌陷,因其仅规范类名结构而不改变CSS渲染规则;需通过单侧margin、BFC封装或Flex/Grid的gap等样式策略来规避。384 收藏 -
JSON是轻量级数据交换格式,非编程语言,语法独立于语言但类似JavaScript对象字面量;要求双引号、无注释、顶层仅object或array;JSON.parse()严格校验,JSON.stringify()忽略undefined/function并丢失类型信息。401 收藏 -
解构赋值可通过嵌套结构、默认值、动态键名、函数参数解构、别名及剩余运算符等高级技巧提升代码可读性与开发效率,适用于处理复杂数据结构、配置项和API响应。478 收藏 -
答案:在VisualStudio中编写HTML需通过浏览器预览效果。方法一:右键文件选择“在浏览器中查看”,用默认浏览器打开;方法二:手动将HTML文件拖入浏览器窗口,适合频繁调试;方法三:使用VSCode的LiveServer插件实现热重载,保存后自动刷新。注意F5不适用于纯HTML项目,避免路径含中文或空格,确保引用资源路径正确。445 收藏 -
能,border-radius和box-shadow可直接组合使用,二者作用域独立;阴影默认为矩形投射,需靠足够模糊半径(如12px)与合理偏移(如04px)实现视觉圆角贴合,避免依赖overflow:hidden裁剪。423 收藏 -
在实现简易计算器时,若对HTML输入框元素直接使用一元加号(+)强制转换类型,却未取其value属性,会导致NaN;正确做法是先获取input元素的value字符串,再转换为数字。424 收藏 -
flex-grow设为1未撑满父容器,根本原因是父容器缺乏明确宽度上下文,导致无剩余空间可分配;需确保父容器有width、max-width或为block布局,并检查flex-shrink:0与min-width干扰。322 收藏 -
<p>真正随机选名字只需一行:constwinner=names[Math.floor(Math.random()*names.length)];需确保names非空,避免减1或round导致偏差,不重复抽签应先洗牌再顺序取值。</p>496 收藏 -
:empty只匹配完全无子节点(含文本、注释、元素)的元素,换行、空格、注释均使其失效;:blank才忽略空白符但兼容性差;稳妥替代法是服务端不渲染或JS判断innerText.trim()后控制显示。450 收藏 -
align-items:stretch失效主因是父容器无明确高度或子元素设了固定高/最小高;应设父容器height/min-height,子项用flex:1替代height,IE11需height:100%+flex:1双保险。232 收藏 -
用canvas手动画极坐标图最可控:需手动计算极坐标点、平移原点、绘制网格线;Chart.js雷达图易配错选项;D3.js推荐用d3-polar;CSStransform伪极坐标不可靠。420 收藏 -
ESM循环引用触发TDZ报错,本质是实例化阶段导出绑定未激活时提前读取let/const变量;解析→实例化→执行三步中,循环发生在实例化期,此时顶层代码未执行,导出值仍为“未初始化”状态。451 收藏 -
ViewTransitionsAPI仅适用于单页内同步DOM更新,跨页面跳转无效;必须用document.startViewTransition()包裹同步操作,确保view-transition-name成对唯一且元素已挂载,旧元素需保持可绘制状态。474 收藏 -
HTML乱码主因是文件编码非UTF-8无BOM,其次为metacharset位置/写法错误、HTTP响应头覆盖及表单/AJAX传输未声明UTF-8。426 收藏 -
高分屏下<img>模糊主因是浏览器用低分辨率图强行拉伸填充CSS像素区域,触发双线性插值致边缘发虚;根本解法是用srcset+sizes让浏览器按设备像素比自动选对图源,并配合image-rendering等CSS控制重采样。421 收藏