新视口单位 svh/dvh/lvh:移动端 100vh 的救赎
移动端 Safari 上 100vh 一直被地址栏坑,老方案是 JS 算 --vh 变量。现在 CSS 原生给出了答案:svh、dvh、lvh 三兄弟。这篇讲清它们的区别和迁移策略。
移动端 Safari 上 100vh 一直被地址栏坑,老方案是 JS 算 --vh 变量。现在 CSS 原生给出了答案:svh、dvh、lvh 三兄弟。这篇讲清它们的区别和迁移策略。
:has() 让 CSS 第一次能"选中父元素",容器查询让组件按自身宽度响应式,原生嵌套让预处理器不再是必需品。
过渡和关键帧动画怎么选?贝塞尔曲线、steps 步进动画有什么用?从语法讲到性能与可访问性注意事项。
两个布局系统都 2022 年了还经常被问"用哪个"。其实它们不是竞争关系而是互补关系——这篇总结我的选型经验:什么时候 Flex,什么时候 Grid,什么时候一起上。
手机屏幕尺寸千差万别,一套设计稿怎么适配所有机型?梳理 viewport、rem+flexible、vw 与 clamp 现代方案。
Flex 管一维,Grid 管二维。用 grid-template-columns/rows、区域命名等方式实现经典布局,对比 Flex 选型。
CSS Variables(自定义属性)不只是换皮工具,它改变了 CSS 的组织方式。这篇聊聊我用它做主题切换的完整方案,以及和 Sass 变量的本质区别。
为什么我的 z-index: 999 还是被盖住?这个前端高频面试题的背后是层叠上下文。把 position 五个值和 stacking context 的触发条件捋清楚,这类问题就再也不会懵。
width 到底包不包含 border?margin 为什么会"穿透"父元素?从标准/怪异盒模型讲到 BFC 的三个经典用途。