前端技术文章
-
HSL色相(H)天然适配色轮,因H为0–360°角度值,直接映射牛顿色环物理顺序(0°红、120°绿、240°蓝),而RGB无环状结构,线性插值易产生灰褐断层;HSL的L值单轴调控明度不扰动色相与饱和度,RGB调任一通道均会偏移色相;但HSL在s≈0%或l=0%/100%时失真,品牌色定义仍需以RGB/HEX为基准。171 收藏 -
本文详解如何基于CSS子选择器(>)与事件委托,构建真正独立控制的多级下拉菜单:点击任一级标题仅展开其直属子菜单,互不干扰,支持无限嵌套,并附可复用的HTML/CSS/JS完整实现。本文详解如何基于CSS子选择器(`>`)与事件委托,构建真正独立控制的多级下拉菜单:点击任一级标题仅展开其直属子菜单,互不干扰,支持无限嵌套,并附可复用的HTML/CSS/JS完整实现。在实际开发中,常见的“多级下拉菜单”往往面临一个核心缺陷:点击父级菜单436 收藏 -
Array.isArray()是唯一能跨全局环境准确识别数组的原生方法,因其不依赖构造函数或原型链,而是直接检查内部类型标记,故在iframe、Worker、Node.js多Context等场景下均可靠。146 收藏 -
纯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 收藏
