Skip to content

About

可复用的企业官网响应式内容区块集合,基于原生 HTML / CSS / JavaScript。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

响应式企业官网内容组件集合

一套面向企业官网、B2B 网站和产品型网站的响应式内容展示组件示例。

项目目前包含 4 组可独立复用的 Section,分别覆盖产品分类、流程与媒体展示、应用场景切换、新闻资讯列表等常见企业官网场景。所有组件均使用原生 HTML、CSS 和 JavaScript 实现,不依赖 jQuery、Swiper、Bootstrap 或其他第三方框架,可直接打开 index.html 运行,也便于后续拆分到 WordPress、PHP 模板或其他 CMS 中使用。


项目特点

  • 零构建流程:无需 npm、打包器或开发服务器,直接打开 index.html 即可预览。
  • 原生实现:HTML5 + CSS Grid / Flexbox + Vanilla JavaScript。
  • 响应式设计:桌面端、平板端和手机端分别针对内容结构进行优化,而不是简单缩放。
  • 组件作用域清晰:使用 #section01 ~ #section04 限定 CSS,减少不同模块之间的样式污染。
  • 命名简单统一:切换项统一采用 item01 / item02 / ...,方便搜索、复制和替换。
  • 内容保留在 HTML 中:JavaScript 主要负责状态切换,不将核心正文写入 JS,更利于维护、SEO 和 CMS 迁移。
  • 本地资源优先:SVG 占位图、MP4 视频均保存在本地目录,适合离线演示和私有项目使用。
  • 交互克制:仅保留必要的 hover、focus、淡入和轻量位移动效,整体风格偏现代企业官网,而非纯视觉 Demo。

组件概览

Section 组件类型 桌面端结构 手机端结构
#section01 产品与解决方案 左侧纵向 Tabs + 右侧图文详情 Dropdown + 单列图文
#section02 流程控制 左右辅助图片 + 中央大视频 视频优先 + 2 × 2 图片网格
#section03 应用场景 左侧大图详情 + 右侧 2 × 3 场景入口 2 × 3 场景入口 + 下方详情
#section04 新闻资讯 双分类 Tabs + 3 × 2 新闻卡片 双 Tabs + 单列新闻卡片

四组组件采用不同布局,但共用同一套颜色、文字、圆角和交互规范,因此组合在同一个页面中时仍能保持统一的视觉语言。


Section 01:产品与解决方案

section01 用于展示产品体系、业务分类、解决方案分类等内容。

桌面端

  • 左侧为纵向分类导航。
  • 当前项使用品牌强调色突出显示。
  • 右侧展示当前分类对应的标题、描述、CTA 和图片。
  • 图文内容采用横向布局,适合产品与解决方案入口。

手机端

  • 左侧纵向导航自动收起为 Dropdown。
  • Dropdown 选项由 JavaScript 根据桌面端导航自动生成,因此分类名称只需要维护一份。
  • 图文详情改为单列排列,避免在窄屏上强行保持双栏结构。

适合场景

  • 产品分类
  • 产品体系
  • 服务类别
  • 行业解决方案
  • 企业业务板块

Section 02:流程控制与媒体展示

section02 用于展示生产流程、质量控制、研发能力、工厂实力等需要图片与视频共同表达的内容。

桌面端

使用 CSS Grid 构建 Mosaic Media Grid:

图片 01    核心视频    图片 03
图片 02    核心视频    图片 04

中央视频承担主要视觉内容,两侧图片用于补充流程节点或检测项目。

手机端

手机端重新排序为:

核心视频

图片 01   图片 02
图片 03   图片 04

这样可以继续突出视频,同时避免原始五块媒体连续单列导致页面过长。

视频播放规则

section02 对视频播放进行了统一控制:

  1. 切换 Tab 前,当前视频立即暂停。
  2. 被隐藏 Panel 中的视频会重置到开头。
  3. 任意一个视频开始播放时,会自动暂停 Section 内其他视频。
  4. 同一时刻只允许一个视频播放,桌面端和手机端规则一致。
  5. 浏览器页面切到后台时,正在播放的视频自动暂停。
  6. 视频使用 playsinline,减少移动端被强制全屏播放的情况。
  7. 使用 preload="metadata",避免页面初始加载时下载完整视频。

适合场景

  • 质量控制
  • 生产流程
  • 工厂制造能力
  • 实验室检测
  • 研发流程
  • 企业实力展示

Section 03:应用场景

section03 用于展示同一产品在不同空间、行业或使用环境中的应用方式。

桌面端

  • 左侧为当前场景的大图、标题和描述。
  • 右侧为 2 × 3 场景入口矩阵。
  • 点击任意场景入口,左侧详情同步切换。
  • Active 项使用品牌色,普通项保留轻量 hover / focus 状态。

手机端

手机端将场景入口移动到详情区域之前:

标题与说明
↓
2 × 3 场景入口
↓
当前场景详情

用户可以先选择场景,再查看对应的完整内容。

适合场景

  • 应用领域
  • 使用空间
  • 行业分类
  • 项目类型
  • 区域解决方案
  • 案例分类入口

Section 04:新闻资讯

section04 用于公司新闻、行业新闻、博客、知识文章等内容入口。

分类结构

当前设置两个分类:

item01 → 公司新闻
item02 → 行业新闻

顶部使用双 Tabs 切换不同文章组,Active 项通过品牌色下划线强调。

新闻卡片

桌面端每个分类显示 3 × 2 共 6 张卡片。

每张卡片包含:

  • 新闻标题
  • 简短描述
  • 点击查看 → CTA

为了保持卡片高度整齐:

  • 标题最多显示 1 行,超出自动省略。
  • 描述最多显示 2 行,超出自动截断。
  • CTA 固定在卡片底部。
  • 整张卡片均可点击。

响应式

桌面端:3 列
平板端:2 列
手机端:1 列

适合场景

  • 公司新闻
  • 行业资讯
  • 博客文章
  • 技术知识库入口
  • 媒体中心
  • 最新动态

整体视觉规范

四个 Section 共用一套基础设计变量,集中定义在 css/style.css 顶部:

:root {
  --brand: #651e7c;
  --dark: #484848;
  --ink: #202124;
  --body-text: #4f5357;
  --sub-text: #74787c;
  --surface: #f5f5f5;
  --surface-soft: #eef1f4;
  --radius-sm: 4px;
  --radius-md: 6px;
}

当前设计原则

  • 品牌色:使用紫色 #651e7c 作为 Active、CTA 和强调色。
  • 深色 Section:统一使用 #484848。
  • 浅色 Section:保持白色背景,通过浅灰内容区建立层级。
  • 正文颜色:避免大面积纯黑,使用深灰提高长文本阅读舒适度。
  • 圆角:只使用 4px / 6px 小圆角,保持 B2B 企业网站的克制感。
  • 阴影:仅在新闻卡片和必要 hover 状态中使用轻量阴影。
  • 动效:以 1~2px 位移、轻微缩放和短时淡入为主,不增加复杂装饰动画。

页面整体采用:

浅色 Section
↓
深色 Section
↓
浅色 Section
↓
深色 Section

形成稳定的明暗交替节奏。


项目目录

project/
├── index.html
├── README.md
├── css/
│   └── style.css
├── js/
│   └── main.js
├── images/
│   ├── item01.svg
│   ├── item02.svg
│   ├── ...
│   ├── section02-item01-01.svg
│   ├── section02-item01-video.svg
│   ├── ...
│   └── section03-item06.svg
└── videos/
    ├── section02-item01.mp4
    └── section02-item02.mp4

项目没有第三方依赖,也没有构建输出目录。


快速使用

下载项目后直接打开:

index.html

即可查看完整效果。

如果通过本地 Web Server 预览,也可以使用 VS Code Live Server、PHP 内置服务器或其他静态服务器,但不是必须的。


命名与作用域规范

Section ID

每个独立组件统一使用:

<section id="section01">...</section>
<section id="section02">...</section>
<section id="section03">...</section>
<section id="section04">...</section>

后续扩展时继续使用:

section05
section06
...

内部类名

Section 内尽量使用简短、容易复用的类名,例如:

.wrap
.head
.title
.desc
.layout
.nav
.item
.tabs
.tab
.panel
.grid
.card
.media
.copy

CSS 通过 Section ID 限定作用域:

#section03 .item {
  ...
}

因此即使不同 Section 中都存在 .item、.panel、.card,也不容易互相污染。

数据选项

切换项统一使用:

item01
item02
item03
...

通过:

data-item="item01"
data-panel="item01"

建立导航与内容之间的对应关系。

这种方式比把业务名称直接写进类名更容易复制、替换和扩展。


如何新增一个切换项

以场景组件为例,新建一个入口时保持 data-item 与 data-panel 一致:

<button class="item" data-item="item07">
  新场景
</button>

<article class="panel" data-panel="item07" hidden>
  ...
</article>

并添加对应资源:

images/section03-item07.svg

JavaScript 不需要为每一个业务名称单独编写判断逻辑。


图片与视频替换

当前 SVG 主要作为布局演示占位图,正式项目中建议直接替换为真实图片。

图片建议

  • 尽量统一图片构图与比例。
  • 图文主视觉建议优先使用 16:9。
  • 使用真实图片时可采用 WebP / AVIF,并保留 JPEG 作为兼容方案。
  • 正式上线时请填写准确的 alt 文本,而不是保留“占位图”等描述。

视频建议

建议保持:

<video controls playsinline preload="metadata" poster="...">

网页短视频可优先考虑:

  • MP4 / H.264
  • 16:9
  • 控制码率与文件体积
  • 使用独立 poster 封面
  • 非必要不自动播放

section02 的暂停、重置和单视频播放逻辑已经写在 js/main.js 中,替换视频文件通常不需要修改 JavaScript。


JavaScript 结构

js/main.js 将四个组件分别初始化:

initTabs()       → section01
initMediaTabs()  → section02
initSceneTabs()  → section03
initNewsTabs()   → section04

每个功能相互独立,主要负责:

  • Active 状态切换
  • Panel 显示 / 隐藏
  • 手机 Dropdown 控制
  • 视频播放状态管理
  • ARIA 状态同步

核心内容仍保留在 HTML 中,因此未来如果某个 Section 不再需要,可以直接删除对应 HTML、CSS 和初始化代码,而不会影响其他 Section 的内容结构。


响应式断点

项目主要围绕以下宽度调整:

900px   → 中等屏幕布局调整
768px   → 进入手机 / 单列核心布局
420px   → section01 极窄屏调整
360px   → section02 / section03 极窄屏保护

断点并不是为了适配某一台具体设备,而是根据组件在不同内容宽度下是否仍然具有良好可读性来决定。


可访问性与交互细节

项目已经包含一些基础可访问性处理:

  • 使用真正的 <button> 作为 Tabs 和切换操作。
  • 维护 aria-selected、aria-expanded 等状态。
  • 手机 Dropdown 支持 Escape 关闭。
  • 交互元素提供 :focus-visible 状态。
  • 视频保留浏览器原生 controls。
  • 支持 prefers-reduced-motion: reduce,用户关闭动画偏好时减少过渡与淡入效果。

如果用于正式生产环境,还可以根据项目要求继续增强完整的 ARIA Tabs 键盘方向键导航。


正式项目使用建议

这个项目更适合作为一套 可复制的企业官网前端组件基础,而不是要求整页原样使用。

实际应用时建议:

  1. 根据页面需求选择单独的 Section,而不是为了使用全部组件而全部加入。
  2. 替换所有 href="#" 为真实页面地址。
  3. 将 SVG 占位图替换为正式图片。
  4. 优化真实图片尺寸、格式和加载策略。
  5. 根据企业品牌色修改 --brand,优先通过 CSS 变量统一调整。
  6. 在 WordPress 中让 PHP / Gutenberg / ACF / Meta Box 输出完整 HTML 数据,JavaScript 继续只负责交互。
  7. 新闻、产品等动态数据应由 CMS 输出,不建议在 JavaScript 中维护大量正文数据。

维护原则

本项目刻意保持较轻的技术结构,后续维护建议继续遵循:

  • 优先使用原生 CSS 和 JavaScript。
  • 能通过 HTML / CSS 解决的问题,不额外引入第三方库。
  • 每个 Section 保持独立作用域。
  • 新组件继续使用 section05 / section06 ... 编号。
  • 通用颜色与圆角优先写入 :root 变量。
  • 不为了动画效果增加复杂结构。
  • 桌面端和手机端尽量共用同一份 HTML 内容。
  • 交互逻辑与业务内容分离。

这样既方便当前作为静态页面实验保存,也方便后期拆分到实际企业网站中长期使用。


技术栈

  • HTML5
  • CSS3
  • CSS Grid
  • Flexbox
  • CSS Custom Properties
  • Responsive Design
  • Vanilla JavaScript
  • HTML5 Video
  • SVG

无第三方运行时依赖。

About

可复用的企业官网响应式内容区块集合,基于原生 HTML / CSS / JavaScript。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages