-
在JavaScript中添加右键菜单需先阻止默认事件并创建自定义菜单。1.使用contextmenu事件监听并调用event.preventDefault()阻止默认菜单;2.用HTML和CSS构建菜单结构并隐藏;3.通过event.clientX和event.clientY获取坐标,设置菜单position实现定位;4.右键时显示菜单,点击其他区域或菜单项后隐藏;5.为菜单项绑定点击事件执行对应功能;6.兼容性处理需判断event.button或event.which;7.若仅在特定元素显示,将事件监听
-
navigator.connection.effectiveType必须通过JavaScript访问,不能在HTML中直接使用;需先检测'connection'innavigator且effectiveType为字符串,再读取其值,否则会报错。
-
分页请求应优先用GET,因其支持缓存、书签和幂等性;仅当URL超长时才用POST并手动管理历史;数据超1000条必须后端分页,推荐游标分页;需加请求锁防重复提交;键盘翻页和跳转输入需事件绑定与焦点管理;游标值须原样透传。
-
Grid本身不支持宽高联动,设1fr或minmax仍依赖内容撑高;视频在Grid中易拉伸塌陷,aspect-ratio兼容性差且无法与padding-top共存;安全方案是用position:relative+padding-top的独立容器包裹视频,并确保Grid仅负责布局定位。
-
li标签默认没有margin;浏览器显示的间距主要来自ul/ol的默认padding(如Chrome的padding-left:40px)或换行符产生的空白字符。
-
小项目用根目录+css/js/images/pages四文件夹,够用零配置;中大型项目必须分src/dist,否则路径混乱、协作困难。小项目指单人维护、页面≤5个、无构建需求的静态站,核心是路径稳定、一眼可定位:index.html放根目录,css/只放main.css和reset.css,js/仅存main.js和utils.js,images/按icons/banner分但不超过两层,多页面统一放pages/about.html等。
-
every()对应“与”逻辑(全真才真,遇假即停),some()对应“或”逻辑(一真即真,遇真即停);二者均支持短路,空数组时every返回true、some返回false,且回调必须明确返回truthy/falsy值。
-
reduceRight()可实现右结合的函数组合,即按compose(f,g,h)(x)≡f(g(h(x)))顺序执行,从数组最右函数开始依次包裹,天然支持空数组和单函数场景。
-
red与#ff0000在CSS中完全等价,均映射为rgb(255,0,0),属W3C标准硬编码常量;差异仅在语义、兼容性及扩展性场景下的选用策略。
-
<embed>标签没有object属性,该属性不存在于HTML标准中,浏览器会直接忽略;正确传参应使用<object>标签配合data属性和<param>子元素。
-
最稳妥的HTML版权声明写法是用全局<footer>包裹<p>,年份动态生成,©用©实体,多语言页需匹配lang属性并分版本书写。
-
HTML本身不支持工厂模式,“HTML工厂模式”实为用JavaScript在浏览器中模拟工厂逻辑,动态创建并组装DOM元素;核心是封装document.createElement等操作为可扩展、解耦的函数或类,统一接收配置对象、返回HTMLElement实例,避免硬编码与原型污染,按项目复杂度选用简单工厂、工厂方法或抽象工厂结构。
-
使用Flexbox可轻松实现等高盒子,只需将父容器设为display:flex,子盒子会自动拉伸至相同高度,无需额外设置高度,内容最少的盒子也会与最高盒子等高。
-
importNode是Document对象方法,须通过document.importNode()调用,不可直接使用;报错多因上下文错误或IE兼容问题;深拷贝由第二参数控制,跨文档导入需严格匹配源节点所属文档。
-
Chrome和Safari显示同一颜色#FF6B6B偏粉或偏橙,是因为Safari默认启用DisplayP3色彩空间而Chrome坚持sRGB,导致未声明色彩空间的颜色值被不同解析;应统一使用rgb(255107107/1)并显式指定insrgb,图片导出需转sRGB,用color-mix()和@supports确保跨浏览器一致性。