前端技术文章
-
纯CSS弹窗动画需用visibility+opacity+transform组合,禁用display;原生dialog须弃用showModal()改用show()+自定义backdrop;触发动画前需offsetWidth强制重排;移动端须加will-change和translate3d启用GPU加速。499 收藏 -
Object.entries返回一个二维数组,每个子元素为[key,value]形式的数组,仅包含对象自身可枚举、非Symbol的属性,不遍历原型链、不可枚举属性或Symbol键。233 收藏 -
mix-blend-mode在IE和旧版Safari中不支持,连前缀也无效;应使用@supports检测并仅对Chrome41+、Firefox32+、Safari8+/iOS9.3+启用,且不可用于关键视觉信息。385 收藏 -
Object.freeze比Object.seal保护更强:两者均禁止增删属性且不可修改描述符,但freeze还禁止修改属性值;均不递归处理嵌套对象;isFrozen为真必isSealed为真,反之不成立。435 收藏 -
<header>专用于语义上的页面或区块入口内容,必须包含标题(如<h1>或<h2>),可含logo、主导航<nav>(需aria-label)、搜索<form>(建议role="search"),不可塞轮播图、广告等非入口内容,无默认样式且IE8以下不支持,多<header>需明确归属,禁止嵌套或滥用。447 收藏
fetchpriority仅对Chromium119+的<img>和<iframe>生效,需src静态存在、未缓存、不与loading="lazy"冲突;它不强制插队,只提示优先级,生效需满足空闲连接等条件。139 收藏
错位主因是line-height用了带单位的值(如24px)或字体栈不统一,导致缩放时行高与基线不同步;应改用无单位line-height(如1.5)并统一font-family。239 收藏
平板端布局混乱主因是响应式设计忽略中等屏幕;2.使用Flexbox的flex-wrap和min-width确保元素弹性与换行;3.采用CSSGrid的minmax()与auto-fit实现自适应列数;4.添加768px–1024px针对性媒体查询调整布局细节;5.配合相对单位如%、rem、fr提升整体适配性。289 收藏
浮动布局虽被flex和grid取代,但在图文环绕、简易导航、表单内联等轻量场景中仍具实用价值,尤其兼容旧浏览器且代码简洁。293 收藏
CSS动画性能关键在属性选择与控制:width/height/top/left等触发重排,box-shadow/filter等易致重绘;应优先使用transform和opacity等合成属性;需限制并发数量、视口外暂停、交互动画≤300ms,并合理设置时长与缓动。167 收藏
WebNFCAPI必须在HTTPS或localhost安全上下文中使用,否则NDEFReader构造函数抛出SecurityError;仅Chrome90+和Edge117+支持,Safari与Firefox完全不支持;所有操作须由用户手势触发,且需设备NFC开启并解锁屏幕。136 收藏
表单验证必须同时使用addEventListener('input')和submit事件:input实现实时反馈,submit作为防绕过兜底;正则需严格使用^和$锚定边界,并配合trim()处理空格,所有前端校验均不可替代服务端验证。361 收藏
watch失效主因是父组件异步数据晚于子组件挂载,导致首次prop赋值不被视为“变化”;推荐用v-if延迟子组件挂载或watchEffect+条件判断来规避。329 收藏
原生alert/confirm/prompt不响应Esc键,因其为同步阻塞式API,非DOM元素,不派发任何事件;仅<dialog>支持Esc触发cancel事件,且需showModal()并可preventDefault()拦截。449 收藏
使用可选链(?.)可安全绑定事件,避免因DOM节点未挂载、已移除或为null导致的“Cannotreadproperty'addEventListener'ofnull”错误;它使查询与绑定串联执行,任一环节为空即终止,不报错。340 收藏
