-
IE6–8不支持border-radius时可用PIE.htc,但需严格满足路径、display、hasLayout、overflow等条件,HTTPS下须确保协议一致及MIME正确,动态修改需手动detach/attach,现代项目应避免使用并优先采用渐进增强策略。
-
ArrayBuffer比普通字符串或数组更具优势,原因在于它提供了字节级别的访问和连续内存分配。首先,字符串以UTF-16编码存储,不适合处理无字符编码的原始二进制数据,频繁的编码/解码操作会引入错误和性能损耗;其次,普通数组存储任意JavaScript值,导致额外内存开销和低效访问,而ArrayBuffer通过TypedArray视图实现高效读写同质数据,通过DataView支持异质数据及字节序控制,适用于图像处理、音频合成等高性能场景。
-
使用模板引擎如Jinja2定义宏可实现HTML代码复用,通过在macros.html中定义input_field和button等宏,并在index.html中导入调用,提升开发效率与维护性,确保多页面组件一致性,避免重复代码。1.建立清晰目录结构,如templates/components/分类存放宏文件;2.遵循命名规范,使用小写加下划线;3.添加注释说明参数与用途;4.保持宏职责单一,避免过度复杂;5.将宏文件纳入版本控制,便于团队协作。主流工具还包括Handlebars、EJS、Twig及Vue/R
-
flex-basis是分配空间前的初始基准,非固定值;优先用0px而非0%,因0%在旧版Safari中可能回退为auto导致布局错乱,且需配合min-width:0解除隐式最小尺寸限制。
-
会错位。纯用<span>嵌数字默认按文本基线对齐,与徽章背景垂直中心不匹配,尤其小字号或混排时明显偏下;需用position:relative+transform微调,确保宽高偶像素、避免半像素模糊,并统一缩放line-height与padding。
-
cursor属性支持url()自定义图标和关键字两类值,其中url()需配fallback关键字,推荐尺寸≤128×128px,热点需显式指定,且移动端Safari不支持。
-
CSS变量在calc()中必须用var()包裹且带单位,否则因语法错误被静默丢弃;预处理器变量需插值;小程序中calc()易被截断,需转义并避免跨单位混用;空格是calc()语法必需。
-
CSS宽度计算偏差源于默认content-box盒模型,width仅指内容区,不含padding和border;解决方法是全局设置box-sizing:border-box,并在flex中用flex:00宽度避免flex-shrink压缩。
-
图片不居中是因浏览器默认inline样式导致,需设display:block;margin:0auto;或父容器display:flex;justify-content:center;,denoserve不干预样式与响应头。
-
window.name适合存临时业务数据,因其生命周期与窗口绑定、跨域可用、不参与HTTP请求;但仅支持字符串、有容量限制且同域iframe共享,故适用于非敏感、临时、结构简单的数据。
-
Promise是对异步操作的标准化封装,核心判断标准是结果是否在未来某个时刻获得且有明确成功/失败状态;纯同步计算或立即完成逻辑不应使用Promise。
-
原型链是JavaScript中对象查找属性和方法时逐级向上追溯的链条,由每个对象的[[Prototype]]内部属性连接各原型对象直至null构成;它支撑继承、instanceof等机制,是JS对象系统的核心基础。
-
em相对于父元素font-size,嵌套易失控;rem始终相对于根元素font-size,适合全局缩放。响应式优先用rem,局部缩放才用em;避免html设62.5%影响可访问性。
-
通过CSS自定义属性实现动态主题切换,定义:root和[data-theme='dark']中的变量,利用JavaScript切换data-theme属性并结合localStorage持久化用户偏好,实现亮色、暗色主题的实时切换与记忆功能。
-
HTML5中换行符不渲染是因浏览器默认忽略空白字符,解决方法包括:一、用white-space:pre-line等CSS属性;二、用<pre>标签;三、JS将\n替换为;四、CSS伪元素注入换行;五、服务端预处理。