-
::marker不是list-style-type的替代品,而是补充,仅在需动态控制序号样式(如颜色、字体、图标、状态响应)时使用;它不支持修改序号内容、不作用于div等非原生列表项、仅兼容Chrome86+/Firefox89+/Safari15.4+,且受display:flex/grid/contents和有限CSS属性限制。
-
直接给.login-box容器设background-image最稳妥,需同时设置background-size:cover、background-position:center、background-repeat:no-repeat,并加background-color降级;配遮罩层::before提升文字可读性,用min-height:100vh保障响应式高度,高DPR屏需提供@2x图。
-
纯HTML+CSS旅行相册:用语义化<figure>+<figcaption>组织照片、地点、日期,配合srcset/sizes响应式图片、grid-template-columns:repeat(auto-fill,minmax(320px,1fr))自适应布局及打印优化,确保信息完整、多端清晰、无需JS。
-
BEM通过“块__元素--修饰符”命名法使class名语义清晰、无需上下文即可理解,如button__icon表示按钮的图标子元素,button--primary表示主色调修饰态,且禁止嵌套过深或跨块组合。
-
Date对象处理时区和国际化存在四大坑:1.不带时区的字符串解析为UTC,导致本地时间偏差;2.toLocaleString输出依赖系统环境,需显式指定locale;3.夏令时切换引发时间计算错误,建议用UTC运算;4.本地时间存储致跨时区混乱,应统一存UTC时间戳并按需格式化。复杂场景推荐使用luxon、dayjs插件或Temporal。
-
lang属性必须显式声明在<html>标签上,浏览器和屏幕阅读器依赖它识别语言;子语言切换需用lang而非CSS或HTTP头;语义标签需配合lang声明语言边界;dir与lang须组合使用;多语言导航需<nav>包裹并为每个链接设hreflang和lang。
-
语义优先选<strong>,纯样式需求可用<b>;<strong>表示重要性(屏幕阅读器加重),<b>仅视觉加粗;现代HTML5推荐<strong>,注意避免嵌套、块级误用和滥用样式。
-
text-align:justify对中英文混排无效是因中文无空格,需配合text-justify:inter-character(Chrome120+/Firefox110+/Safari17.4+)、lang属性及合理font-family顺序才能实现真正两端对齐。
-
Vue插槽是组件解耦与复用的底层设计契约,含匿名、具名、作用域、动态四类:匿名插槽提供默认内容占位;具名插槽实现多区域精准投递;作用域插槽支持子组件向父组件反向传参;动态插槽名实现运行时内容流向控制。
-
钟摆动画需用@keyframes配合ease-in-out或cubic-bezier模拟正弦运动,transform-origin设为50%0确保支点在顶部中点,搭配animation-direction:alternate实现自然往复,注意Safari兼容性及响应式角度调整。
-
应使用transform:translateY()而非top/left移动卡片,避免重排和掉帧;transition必须写在默认状态;注意父容器overflow和移动端hover兼容性。
-
外边距合并是CSS规范定义的垂直方向块级元素间margin-top与margin-bottom的叠加行为,仅发生在普通流中,典型场景包括相邻兄弟、父子穿透及空块级元素自身合并;推荐用display:flow-root触发BFC解决,或用Flex/Grid的gap替代margin。
-
过早晋升表现为老年代单次晋升量异常大(如>20MB/sec)、TenuringDistribution中年龄阈值骤降至2且age1对象占比过高、老年代呈阶梯式增长且FullGC释放极少;需排除大对象直入、System.gc()及GC算法差异干扰。
-
column-count实现瀑布流更快落地,因其是原生文档流分栏机制,无需计算列高、不依赖子项顺序、不触发重排,仅三行CSS即兼容主流浏览器;而Grid需显式定义轨道、处理自动填充逻辑,易出现留白、参差、响应式错乱等问题。
-
心跳检测需与连接状态、业务流量、重连策略深度耦合:必须在ws.readyState===WebSocket.OPEN时发送原生Ping帧,及时清理定时器,结合业务消息重置超时,并采用指数退避+随机抖动重连,避免竞态与重连风暴。