Skip to content

几行 CSS 代码实现骨架屏

就是利用 CSS 的背景渐变属性 background-image,不过需要注意一下设置 background-position 属性的坑。

它是根据背景图宽度和容器宽度的差值来计算的

HTML

html
<div class="box"></div>

CSS

css
.box {
	width: 200px;
	height: 200px;
	/* 默认角度是 0 度,垂直向上。角度增大方向为顺时针。 */
	background-image: linear-gradient(90deg, red 23%, blue 45%, red 75%);
	/* 注意背景图片的 position,是根据背景图宽度和容器宽度的差值来计算的。 */
	background-position: 0 0;
	/* 大小是根据父容器来计算的 */
	background-size: 400% 100%;
	/* 禁止背景图片重复 */
	background-repeat: no-repeat;
	animation: skeleton-loading 1.4s ease infinite;
}
@keyframes skeleton-loading {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 100% 0;
  }
}

未命名 ‑ Made with FlexClip.gif

Released under the MIT License.