首页 web前端 js教程 改变文字墙:玻璃形态、CSS 动画和版式的现代设计

改变文字墙:玻璃形态、CSS 动画和版式的现代设计

Nov 21, 2024 am 10:45 AM

Transforming the Wall of Text: Modern Design with Glassmorphism, CSS Animations, and Typography

简介
“文本墙”——一大堆无格式的内容,读起来像是一件苦差事。无论您是在构建博客、教育资源还是登陆页面,此类墙都会使用户脱离并离开。但是,如果您可以将这个沉闷的街区变成一个现代的、视觉上令人惊叹的、互动的杰作呢?

在本教程中,我们将向您展示如何使文本墙既有吸引力又可读。使用玻璃形态、响应式排版和流畅的动画,您可以轻松引导用户浏览您的内容。这种方法非常适合开发人员、设计师以及任何希望改进其 Web 项目的人。

在本教程结束时,您将学到:

  • 如何为文本较多的内容构建 HTML 语义结构。
  • 如何应用现代 CSS 技术,包括 glassmorphism 和优雅的排版。
  • 如何使用 CSS 动画和 JavaScript 创建动态的滚动触发效果。
  • 如何添加微妙的交互性和层次结构以使文本内容引人入胜。

第 1 步:构建 HTML

每一个好的设计都始于组织良好的 HTML。语义 HTML 不仅提高了可访问性,还使您的设计更易于设计和维护。

这是我们将设计的示例结构:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Wall of Text - Glassmorphism</title>
  <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div>



<p>Key elements:</p>

<ul>
<li>Semantic tags: Tags like , , and  improve readability for developers and accessibility for screen readers.</li>
<li>Content hierarchy: Break down the wall into smaller, readable blocks using headings (<h2>), paragraphs (</h2>
<p>), and lists (</p>
<ul>).</ul>
</li>
<li>Quotes: Use  for memorable quotes to add visual interest and meaning.</li>
</ul>

<p>Step 2: Crafting the Design with CSS</p>

<p>To make this text stand out, we’ll use modern glassmorphism techniques, strong typography, and subtle interactivity.</p>

<p>Glassmorphism Background</p>

<p>Glassmorphism combines a semi-transparent background, blur effects, and shadows to mimic frosted glass. It gives a modern and polished look.<br>
</p>

<pre class="brush:php;toolbar:false">body {
  font-family: 'Poppins', sans-serif;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.8), rgba(50, 50, 50, 0.9)), url('https://source.unsplash.com/1600x900/?abstract,texture') no-repeat center center/cover;
  color: #333;
  overflow: auto;
}

.container {
  width: 80%;
  max-width: 900px;
  padding: 2.5rem;
  background: rgba(255, 255, 255, 0.95); /* Subtle frosted effect */
  border-radius: 20px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

.container:hover {
  transform: scale(1.02);
  box-shadow: 0 15px 45px rgba(0, 0, 0, 0.5);
}

版式

排版在可读性方面起着至关重要的作用。专注于干净的无衬线字体,具有一致的行间距和清晰的层次结构。

.text-wall h2 {
  font-size: 2rem;
  text-transform: uppercase;
  color: #333;
  border-bottom: 2px solid #ff8a00;
  padding-bottom: 0.5rem;
}

.text-wall p {
  line-height: 1.8;
  margin-bottom: 1rem;
  color: #555;
}

.text-wall aside {
  font-style: italic;
  background: rgba(240, 240, 240, 1); /* Light background for readability */
  padding: 1rem 1.5rem;
  border-radius: 15px;
  margin-top: 1.5rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

第3步:添加滚动动画

动画使设计充满活力。我们将使用 Intersection Observer API 在部分进入视口时触发动画。

用于滚动效果的 JavaScript

document.addEventListener('DOMContentLoaded', () => {
  const sections = document.querySelectorAll('.text-wall section');

  const observer = new IntersectionObserver((entries, observer) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        entry.target.classList.add('in-view');
        observer.unobserve(entry.target);
      }
    });
  });

  sections.forEach((section) => observer.observe(section));
});

动画 CSS

.text-wall section {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.text-wall section.in-view {
  opacity: 1;
  transform: translateY(0);
}

第 4 步:添加标注部分

让我们添加一个标注部分来宣传您的项目或服务。例如,角斗士之战的促销:




<p>结论</p>

<p>通过这些步骤,您已经将无聊的文字墙变成了视觉上引人注目的交互式体验。使用语义 HTML、玻璃形态和滚动触发的动画,您的内容现在变得现代且引人入胜。无论是博客、登陆页面还是教育资源,这种设计方法都能提升用户体验。</p>

<p>?探索现场演示并尝试在您的下一个项目中使用它:<br>
文字墙 - CodePen 上重新定义的 Glassmorphism https://codepen.io/HanGPIIIErr/pen/BaXexPL</p>

<p>别忘了查看 https://gladiatorsbattle.com/ 以获得更多灵感和史诗般的游戏玩法!走进古罗马世界,收集专属卡牌,参与惊心动魄的战斗。在 Twitter 上关注我们:@GladiatorsBT! ?</p>

            
        

以上是改变文字墙:玻璃形态、CSS 动画和版式的现代设计的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在JS中与日期和时间合作? 如何在JS中与日期和时间合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和时间处理需注意以下几点:1.创建Date对象有多种方式,推荐使用ISO格式字符串以保证兼容性;2.获取和设置时间信息可用get和set方法,注意月份从0开始;3.手动格式化日期需拼接字符串,也可使用第三方库;4.处理时区问题建议使用支持时区的库,如Luxon。掌握这些要点能有效避免常见错误。

为什么要将标签放在的底部? 为什么要将标签放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

什么是在DOM中冒泡和捕获的事件? 什么是在DOM中冒泡和捕获的事件? Jul 02, 2025 am 01:19 AM

事件捕获和冒泡是DOM中事件传播的两个阶段,捕获是从顶层向下到目标元素,冒泡是从目标元素向上传播到顶层。1.事件捕获通过addEventListener的useCapture参数设为true实现;2.事件冒泡是默认行为,useCapture设为false或省略;3.可使用event.stopPropagation()阻止事件传播;4.冒泡支持事件委托,提高动态内容处理效率;5.捕获可用于提前拦截事件,如日志记录或错误处理。了解这两个阶段有助于精确控制JavaScript响应用户操作的时机和方式。

如何减少JavaScript应用程序的有效载荷大小? 如何减少JavaScript应用程序的有效载荷大小? Jun 26, 2025 am 12:54 AM

如果JavaScript应用加载慢、性能差,问题往往出在payload太大,解决方法包括:1.使用代码拆分(CodeSplitting),通过React.lazy()或构建工具将大bundle拆分为多个小文件,按需加载以减少首次下载量;2.移除未使用的代码(TreeShaking),利用ES6模块机制清除“死代码”,确保引入的库支持该特性;3.压缩和合并资源文件,启用Gzip/Brotli和Terser压缩JS,合理合并文件并优化静态资源;4.替换重型依赖,选用轻量级库如day.js、fetch

JavaScript模块上的确定JS综述:ES模块与COMPORJS JavaScript模块上的确定JS综述:ES模块与COMPORJS Jul 02, 2025 am 01:28 AM

ES模块和CommonJS的主要区别在于加载方式和使用场景。1.CommonJS是同步加载,适用于Node.js服务器端环境;2.ES模块是异步加载,适用于浏览器等网络环境;3.语法上,ES模块使用import/export,且必须位于顶层作用域,而CommonJS使用require/module.exports,可在运行时动态调用;4.CommonJS广泛用于旧版Node.js及依赖它的库如Express,ES模块则适用于现代前端框架和Node.jsv14 ;5.虽然可混合使用,但容易引发问题

如何在node.js中提出HTTP请求? 如何在node.js中提出HTTP请求? Jul 13, 2025 am 02:18 AM

在Node.js中发起HTTP请求有三种常用方式:使用内置模块、axios和node-fetch。1.使用内置的http/https模块无需依赖,适合基础场景,但需手动处理数据拼接和错误监听,例如用https.get()获取数据或通过.write()发送POST请求;2.axios是基于Promise的第三方库,语法简洁且功能强大,支持async/await、自动JSON转换、拦截器等,推荐用于简化异步请求操作;3.node-fetch提供类似浏览器fetch的风格,基于Promise且语法简单

编写清洁和可维护的JavaScript代码的最佳实践是什么? 编写清洁和可维护的JavaScript代码的最佳实践是什么? Jun 23, 2025 am 12:35 AM

要写出干净、可维护的JavaScript代码,应遵循以下四点:1.使用清晰一致的命名规范,变量名用名词如count,函数名用动词开头如fetchData(),类名用PascalCase如UserProfile;2.避免过长函数和副作用,每个函数只做一件事,如将更新用户信息拆分为formatUser、saveUser和renderUser;3.合理使用模块化和组件化,如在React中将页面拆分为UserProfile、UserStats等小组件;4.写注释和文档时点到为止,重点说明关键逻辑、算法选

var vs Let vs const:快速JS综述解释器 var vs Let vs const:快速JS综述解释器 Jul 02, 2025 am 01:18 AM

var、let和const的区别在于作用域、提升和重复声明。1.var是函数作用域,存在变量提升,允许重复声明;2.let是块级作用域,存在暂时性死区,不允许重复声明;3.const也是块级作用域,必须立即赋值,不可重新赋值,但可修改引用类型的内部值。优先使用const,需改变变量时用let,避免使用var。

See all articles