因为浏览器对transform和opacity的动画能走合成层(compositor thread),不触发重排重绘;而用left、top、width等属性驱动动画,每次变化都会强制同步计算样式+布局+绘制,尤其在低端设备或复杂页面里容易掉帧甚至肉眼可见闪烁。
border
精选推荐
css 伪元素 ::after 常见用途_清除浮动与内容扩展技巧
css动画如何实现元素的缩放效果_通过scale()函数和@keyframes控制缩放动画
最新动态
CSS加载状态提示器_各种圆形、条形Loader的CSS实现
CSS颜色属性全解析_整理100个关于颜色的属性与值
CSS 里根本不存在「100个颜色属性」——这是对 CSS 颜色体系的严重误解。真正可用的颜色相关属性只有 color、background-color、border-color、outline-color、fill、stroke 等寥寥几个,其余全是「值」,不是「属性」。
CSS轮廓线设置_outline与border的区别及应用
这是最常被误用的根源。当你给一个 div 加上 outline: 2px solid red,它不会影响周围元素的位置;但换成 border: 2px solid red,整个盒模型宽度和高度就多了 4px(上下/左右各 2px),可能触发重排或挤掉邻近元素。
CSS斜体与倾斜的区别_italic与oblique的微小差异
font-style: italic 不是“让字歪一点”,而是告诉浏览器:“请调用这个字体家族里专门设计的斜体字形”。比如 Open Sans 或 Georgia 都自带独立的 italic 字重文件,字母 a、e、f 的曲线、收笔、倾斜角度全是手绘优化过的。
css动画如何创建闪烁效果_利用opacity和@keyframes实现元素闪烁
直接写 opacity: 0 → opacity: 1 循环,常遇到“闪一下就停”或“根本不动”,根本原因是没设 animation-fill-mode 和 animation-iteration-count。浏览器默认只播一次、结束后回退到初始状态,看起来就像没动。
Sublime当前行下划线_Sublime highlight_line设置【高亮】
Sublime Text 默认没有“下划线当前行”这个功能,你看到的 highlight_line 是背景色高亮整行,不是加下划线。想实现视觉上更醒目的当前行标识,得靠它——但很多人误以为它能画线,结果开了没反应,其实是理解错了作用方式。
CSS伪元素::first-line应用_打造报刊排版的首行效果
因为它的样式作用范围极小,且受制于父元素的显示类型和内容结构。最常见的情况是:父元素用了 display: flex 或 display: grid,或者里面包裹了 <span></span>、<strong></strong> 这类内联子元素——这些都会打断首行的“连续文本流”,导致 ::first-line 完全不生效。
CSS内边距Padding详解_四个方向的独立设置技巧
直接说结论:padding: 10px 20px 30px 40px 的顺序是固定的——上、右、下、左,顺时针。写反了(比如误以为是“上下左右”)会导致视觉错位,尤其在卡片、表单等对称布局中特别明显。
CSS过渡属性transition-property_指定哪些样式参与动画
它不是“开关”,而是白名单机制:只对列表里明确写出的 CSS 属性做过渡,其余一概忽略。常见错误是写成 transition-property: all 却期望 display 或 height(从 0 到 auto)能动——这两者根本不在可动画属性列表里。
如何优雅解决固定宽度动态垂直导航栏与主内容重叠问题
本文提供纯 css 方案,通过重构布局结构(用 `position: fixed` 容器包裹导航与主内容,并启用 flex 布局),使动态宽度的垂直导航栏与 “ 区域始终自适应、无重叠,兼容小屏幕设备,无需 javascript。