HTML & CSS:手把手教你实现骨架屏效果

效果演示

这个 HTML 和 CSS 代码创建了一个模拟加载效果的卡片,包含一个主加载条和两个辅助的加载条,用来模拟数据加载的过程。(骨架屏: 在需要等待加载内容的位置设置一个骨架屏,某些场景下比 Loading 的视觉效果更好。)

HTML

html 复制代码
<div class="card">
    <div class="card_load"></div>
    <div class="card_load_extreme_title"></div>
    <div class="card_load_extreme_descripion"></div>
</div>
  • card:作为卡片的容器,包含三个子元素:card_load、card_load_extreme_title和card_load_extreme_descripion。
  • card_load:代表主加载条,显示在卡片的最左侧。
  • card_load_extreme_title和card_load_extreme_descripion:分别代表卡片标题和描述的加载条,显示在卡片的右侧。

CSS

css 复制代码
.card {
  width: 190px;
  height: 90px;
  background: #ffff;
  box-shadow: 0 1px 25px rgba(0,0,0,0.2);
  position: absolute;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  padding: 12px 10px;
  border-radius: 5px;
}

.card_load {
  width: 70px;
  height: 70px;
  position: relative;
  float: left;
  background: linear-gradient(120deg, #e5e5e5 30%, #f0f0f0 38%, #f0f0f0
  40%, #e5e5e5 48%);
  border-radius: 50%;
  background-size: 200% 100%;
  background-position: 100% 0;
  animation: load89234 2s infinite;
}

.card_load_extreme_title {
  width: 90px;
  height: 10px;
  position: relative;
  float: right;
  border-radius: 5px;
  background: linear-gradient(120deg, #e5e5e5 30%, #f0f0f0 38%, #f0f0f0
  40%, #e5e5e5 48%);
  background-size: 200% 100%;
  background-position: 100% 0;
  animation: load89234 2s infinite;
}

.card_load_extreme_descripion {
  width: 90px;
  height: 47px;
  position: relative;
  float: right;
  border-radius: 5px;
  background: linear-gradient(120deg, #e5e5e5 30%, #f0f0f0 38%, #f0f0f0
  40%, #e5e5e5 48%);
  margin-top: 10px;
  background-size: 200% 100%;
  background-position: 100% 0;
  animation: load89234 2s infinite;
}

@keyframes load89234 {
  100% {
    background-position: -100% 0;
  }
}
  • .card设置卡片的宽度、高度、背景色、阴影、位置、变换、内边距和边框半径。
  • .card_load设置主加载条的宽度、高度、背景渐变、边框半径和背景大小。
  • 使用background-position和animation属性创建水平移动的加载效果。
  • .card_load_extreme_title 和 .card_load_extreme_descripion设置标题和描述加载条的宽度、高度、背景渐变、边框半径和背景大小。
  • 同样使用background-position和animation属性创建加载效果。
  • @keyframes load89234定义了一个关键帧动画,使背景位置从100%移动到-100%,实现加载条的动画效果。
相关推荐
SuperEugene2 分钟前
Promise 从入门到实战:同步异步、回调地狱、then/catch/finally 全解
前端·javascript·面试
前端 贾公子3 分钟前
uniapp 小程序获取后端的二进制 保存到手机相册
java·前端·javascript
智能工业品检测-奇妙智能6 分钟前
快速直播:Node.js + FFmpeg + flv.js 全栈实战
javascript·ffmpeg·node.js
清空mega18 分钟前
《Vue3 模板语法与常用指令详解:插值、绑定、件、条件渲染、列表渲染一次学会》
前端·javascript·vue.js
周淳APP18 分钟前
【HTTP相关及RESTful】风萧萧兮易水寒之壮士学习不复返
前端·javascript·网络·网络协议·http·restful·jsonp
程序员敲代码吗20 分钟前
使用OpenPDF实现HTML到PDF的高效转换
python·pdf·html
周淳APP23 分钟前
【计算机网络之HTTP、TCP、UDP、HTTPS、Socket网络连接】
前端·javascript·网络·网络协议·http·前端框架
柳杉28 分钟前
精选10套开源数据可视化大屏项目合集 | 从 3D 地球到数字孪生
前端·javascript·数据可视化
qhd吴飞29 分钟前
ElementUI Table合并单元格后,勾选行时,数据错误问题
前端·javascript·elementui
easyboot31 分钟前
vxetable的表格滚动条加粗功能
前端·javascript·vue.js