使用 CSS Grid 实现骨架屏效果的教程

在现代 Web 开发中,骨架屏(Skeleton Screen)已经成为了提升用户体验的常用手段之一。而在实现骨架屏时,CSS Grid 可以帮助我们让代码更加简洁和灵活。本文将介绍如何使用 CSS Grid 实现骨架屏效果的教程。

什么是骨架屏

骨架屏是指在网页内容加载完成前,先展现页面的基本结构,给用户提供一种加载中的预览效果,增强了用户的交互体验。通常,骨架屏是通过一系列简单的占位符、占位图或者简单的纯色块来实现的。

骨架屏的优点:

  • 提升用户满意度,降低用户等待感受。
  • 告诉用户哪些元素即将出现,让用户精准等待。
  • 对SEO友好,搜索引擎可以直接获取到页面的基本结构。

骨架屏的实现

  1. HTML布局
---- ------------------
  ---- -------------------
  ---- -------------------
  ---- -------------------
  ---- -------------------
  ---- -------------------
  ---- -------------------
  ---- -------------------
  ---- -------------------
------

先创建一个 container 容器,里面包含了8个 item,我们需要让这8个 item 填充满整个 container

  1. CSS 样式
---------- -
  -------- -----
  ---------------------- --------- -----
  ---- -----
  -------- -----
  ----------------- -----
-

----- -
  ----------------- -----
-

-- - ---- --------------------------- --
------------ -
  -------- ---
  -------- ------
  ------ -----
  --------------- -----
  ----------------- -----
  -------------- ----
-

首先,使用 display: grid 定义父元素 .container 为网格布局,grid-template-columns: repeat(4, 1fr); 定义了 4 列,每一列的占比为 1 ,即每个 item 将会占据 1/4 的宽度 。gap: 10px; 定义每个 item 之间的距离为 10px 。padding: 10px 定义了容器的内边距。background-color: #eee 为整个容器设置了一个灰色背景。

接着,使用 background-color: #fffitem 设置白色背景色,并使用 :before 伪元素创建一个宽高相同、背景为灰色的占位块,通过 padding-bottom: 100%; 让高度等于实际宽度, border-radius: 4px; 设置圆角使其更加美观。

实现效果

在加载前填充了一个占位块,突显了整个页面的布局,起到了很好的预览效果。

总结

本文教程中,我们通过 HTML 布局和 CSS 样式,使用 CSS Grid 实现了骨架屏效果。希望这篇文章对于想要了解如何使用 CSS Grid 实现骨架屏的读者有所帮助。除了骨架屏,CSS Grid 还有很多强大的布局功能,如果想要学习 Grid 的更多应用,可以参考 CSS Grid 相关的学习资料。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/649e2c2f48841e9894ab3722


猜你喜欢

  • 如何使用 Vue.js 和 Vuex 构建 SPA 的状态管理?

    随着现代 Web 应用程序的开发变得越来越复杂,我们需要一种更好的方式来管理应用程序的状态。在这方面,Vue.js 和 Vuex 是一对非常强大的工具,它们能够帮助我们构建可扩展、易于维护的单页应用程...

    1 年前
  • 使用 Fastify 和 Next.js 构建 React SSR 应用

    随着前端技术的发展和应用场景的不断增加,服务器端渲染(Server-side Rendering,SSR)的需求越来越大。SSR 相比于传统的客户端渲染(Client-side Rendering,C...

    1 年前
  • # 如何在 React Native 项目中使用 Enzyme 进行组件测试?

    如何在 React Native 项目中使用 Enzyme 进行组件测试? Enzyme 是一个流行的 JavaScript 测试工具,它被设计用于测试 React 组件。

    1 年前
  • ES8 中新增的 Object.values() 方法,用来支持 ES6 的 Map 和 Set 对象

    ES8 中新增的 Object.values() 方法 在 JavaScript 中,Object 是一个常用的内置对象,它表示一组键值对,其中键是字符串类型,值可以是任意类型。

    1 年前
  • 使用 GhostInspect 工具实现 Mocha 单测的性能分析

    前言 单元测试是前端开发的重要组成部分,其中性能测试是其中不可或缺的环节。在大型项目中,单元测试的数目通常很大,为了能更好地定位性能瓶颈,需要分析每个单测的执行时间。

    1 年前
  • 如何使用 Node.js 实现 OAuth2.0 授权认证?

    什么是 OAuth2.0? OAuth2.0 是一种用于授权的开放标准。它允许用户授权第三方应用程序访问他们的资源。OAuth2.0 中有四种角色:客户端、资源拥有者、授权服务器和资源服务器。

    1 年前
  • 给自己的 React 项目安装 Babel

    给自己的 React 项目安装 Babel 在学习 React 的过程中,我们都知道可以使用 JSX 来编写组件,但是,JSX 不是标准的 JavaScript 语法,因此需要使用 Babel 来转换...

    1 年前
  • PM2 在 Node.js 应用上的使用

    PM2是一个具有内置负载均衡器的Node.js应用程序管理器,可以将多个Node.js应用程序纳入到一个进程管理器中,简化了Node.js应用程序的部署流程。本文将详细介绍PM2的使用方法,并提供示例...

    1 年前
  • Web Components 中的简单 WebGL 应用程序

    前言 Web Components 是一种用于构建网页应用程序的 Web 平台 API。这种技术使开发人员能够创造重复使用的组件,从而简化并加速应用程序开发。虽然 Web Components 可以实...

    1 年前
  • ES7 中的 Array.prototype.reduce()

    JavaScript 的数组具有很多有用的方法,其中之一就是 reduce() 方法。在 ES7 之前,reduce() 方法的参数只能是一个函数,这个函数定义了如何对数组元素进行归纳操作。

    1 年前
  • 如何使用 TailwindCSS 实现自适应宽度的框架?

    什么是 TailwindCSS? TailwindCSS 是一个基于原子类的 CSS 框架,提供了大量的类名可以用于快速实现各种样式。使用 TailwindCSS 可以提高 CSS 编写效率,同时也可...

    1 年前
  • MongoDB 操作手册之数据备份和恢复

    在 MongoDB 中,备份和恢复数据是非常重要的操作,特别是在数据量较大时,需要经常备份,以避免意外的数据丢失。本文将会介绍 MongoDB 数据备份和恢复相关的内容,包括备份和恢复的方法、备份的性...

    1 年前
  • 搭建 ESLint 服务器端渐进式全局错误检测

    前端开发中存在的一个常见问题是代码风格和语法的不一致性,这会导致代码的可读性和可维护性降低。而 ESLint 就是一个能够解决这个问题的工具,它能够对代码进行静态分析,帮助我们发现并消除代码中的语法和...

    1 年前
  • Material Design 风格应用中实现下拉刷新的方法

    前言 随着 Material Design 风格在移动应用中的广泛使用,下拉刷新也成为了一种常见的交互方式。本文将介绍如何在 Material Design 风格应用中实现下拉刷新的效果。

    1 年前
  • PWA 应用中的动态路由实现方法

    前言 PWA(Progressive Web Apps)是现代 Web 应用开发当中非常热门的话题,它提供了许多能够使 Web 应用更加快速、安全和易用的特性。其中一个非常重要的特性就是 Offlin...

    1 年前
  • 如何使用 ES10 中新增的 Array.flatMap() 方法

    在 JavaScript 中,一个常见的操作是将数组中的项转换为新的数组,然后再将结果合并成一个新的数组。在旧的代码版本中,我们经常使用 Array.map() 方法来完成这个操作。

    1 年前
  • RESTful API 如何处理分布式事务

    在分布式系统中,有时候需要同时操作多个资源,这时候就需要处理分布式事务。对于 RESTful API,同样需要考虑分布式事务处理的问题。本文将介绍 RESTful API 如何处理分布式事务,以及相关...

    1 年前
  • Docker Compose 中使用 Varnish 实现缓存

    随着现代 Web 应用的不断发展,应用的性能问题变得越来越重要。其中一个主要的性能问题就是如何缓存内容来提升用户的访问速度和减轻服务器的负担。Varnish 是一个高性能的 HTTP 缓存服务器,本文...

    1 年前
  • Koa2 + Docker 实战:使用 Docker 部署 Koa2 应用

    介绍 Koa2 是一款轻量级的 Node.js 框架,它的设计理念是通过提供简单的接口来增强 Web 应用程序和 API 的可定制性。Docker 是一种开源的应用程序容器化平台,它可以帮助开发者更好...

    1 年前
  • 解决 Firefox 中自定义元素的问题

    背景 随着 Web 技术的不断发展,越来越多的开发者开始尝试使用自定义元素来实现更加个性化的界面元素。然而,使用自定义元素在不同浏览器上兼容性并不一定良好,尤其是在 Firefox 浏览器上可能会出现...

    1 年前

相关推荐

    暂无文章