第一部分:项目规划与准备
在开始之前,清晰的规划能让后续工作事半功倍。

(图片来源网络,侵删)
明确网站需求与结构
你需要规划好网站需要哪些页面和栏目,一个典型的公司网站结构如下:
- 首页: 展示公司形象、核心业务、最新动态、联系方式等。
- 关于我们: 公司简介、发展历程、企业文化、团队风采。
- 产品/服务: 核心产品或服务的详细介绍,可能需要多级分类。
- 新闻中心: 公司新闻、行业资讯、媒体报道等。
- 案例展示: 成功案例、客户见证、项目作品。
- 联系我们: 联系方式、在线地图、留言表单。
技术选型与工具
- CMS: Dedecms V5.7 或 V5.8 (V5.7 是最稳定和广泛使用的版本,V5.8 做了一些优化)。
- 服务器: 支持 PHP + MySQL 的任意服务器 (如 Nginx + PHP-FPM + MySQL 的组合)。
- 前端框架:
- Bootstrap: 最推荐的选择,它提供了强大的栅格系统、大量的预置组件(导航栏、轮播图、模态框等)和响应式工具,能极大简化开发工作。
- 纯 CSS Media Queries: 如果你对前端很熟悉,也可以不使用框架,自己写媒体查询来实现响应式,但工作量会大很多。
- 开发工具:
- 代码编辑器: VS Code, Sublime Text, Atom 等。
- 本地环境集成软件: XAMPP, WampServer, phpStudy 等,用于在本地搭建和测试网站。
- 浏览器开发者工具: 用于调试响应式布局(F12,切换设备模式)。
第二部分:响应式设计核心思想
响应式设计的核心是 “弹性布局” 和 “媒体查询”。
-
弹性布局:
- 流式布局: 使用百分比 (%) 而不是固定像素 来定义宽度,使页面元素能根据浏览器窗口大小自适应伸缩。
- 弹性图片: 图片设置
max-width: 100%;和height: auto;,确保图片不会溢出其容器。 - 相对单位: 使用
em或rem代替px来定义字体大小,使字体也能随容器缩放。
-
媒体查询:
(图片来源网络,侵删)- 这是响应式的“大脑”,通过
@media查询,我们可以根据不同的屏幕尺寸(宽度、高度、分辨率)应用不同的 CSS 样式。 - 常见的断点:
- 移动端:
max-width: 767px - 平板端:
min-width: 768px和max-width: 991px - 桌面端:
min-width: 992px
- 移动端:
- 这是响应式的“大脑”,通过
第三部分:基于 Dedecms 的具体实现步骤
步骤 1:安装并配置 Dedecms
- 在本地服务器环境(如 phpStudy)中,将下载好的 Dedecms 程序上传到网站根目录(如
www)。 - 运行安装向导,完成数据库的配置和安装。
- 登录后台: 访问
你的域名/dede/,使用管理员账号登录。 - 基本设置:
- 系统 -> 系统基本参数: 设置网站名称、网站版权信息、网站路径等。
- 核心 -> 栏目管理: 创建我们第一步规划好的所有栏目(如“关于我们”、“产品中心”等),在添加栏目时,选择“栏目列表”和“文章列表”等合适的模型。
- 核心 -> 频道管理: 确保顶级栏目(如首页、关于我们)的类型为“频道封面”。
步骤 2:下载并整合 Bootstrap
- 访问 Bootstrap 官网,下载 "Compiled CSS and JS" 版本。
- 解压下载的文件,你会看到
css/,js/,fonts/等文件夹。 - 将这些文件夹上传到你的 Dedecms 网站模板目录下,
/templets/default/,为了整洁,你可以创建一个名为assets的文件夹来存放它们,最终路径为/templets/default/assets/。
步骤 3:创建响应式首页模板
这是最关键的一步,我们将创建一个名为 index.html 的首页模板。
- 创建模板文件: 在
/templets/default/目录下,新建一个文件index.html。 - 编写模板代码: 将以下代码复制到
index.html中,代码中包含了详细的注释,解释了每一部分的作用。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">{dede:global.cfg_webname/}</title>
<!-- Bootstrap CSS -->
<link href="/templets/default/assets/css/bootstrap.min.css" rel="stylesheet">
<!-- 自定义样式 -->
<link href="/templets/default/style.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://cdn.bootcdn.net/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- 顶部导航栏 -->
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">公司Logo</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
{dede:channelartlist typeid='top'}
<ul class="nav navbar-nav">
{dede:channel type='son' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<!-- 轮播图部分 -->
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
{dede:arclist flag='c' row='5'}
<li data-target="#myCarousel" data-slide-to="[field:global name='autoindex' runphp='yes']@me = @me - 1;[/field:global]" {if [field:global name='autoindex' runphp='yes']@me == 1{/if} class="active"></li>
{/dede:arclist}
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
{dede:arclist flag='c' row='5'}
<div class="item [field:global name='autoindex' runphp='yes']if(@me==1) @me='active'; else @me='';{/field:global]">
<img src="[field:litpic/]" alt="[field:title/]">
<div class="carousel-caption">
<h3>[field:title/]</h3>
<p>[field:description function='cn_substr(@me,80)'/]...</p>
</div>
</div>
{/dede:arclist}
</div>
<!-- Controls -->
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<!-- 公司简介 -->
<div class="container">
<div class="row">
<div class="col-md-8">
<h2>关于我们</h2>
{dede:sql sql="SELECT content FROM `dede_arctype` WHERE id='栏目ID'"}
[field:content function='htmlspecialchars_decode(@me)'/]
{/dede:sql}
</div>
<div class="col-md-4">
<h2>联系我们</h2>
<p>地址:XXXXXXXXXXXXXXXX</p>
<p>电话:XXXXXXXXXXXXXXXX</p>
<p>邮箱:XXXXXXXXXXXXXXXX</p>
</div>
</div>
</div>
<!-- 产品展示 -->
<div class="container">
<h2>我们的产品</h2>
<div class="row">
{dede:arclist typeid='产品栏目ID' row='6' titlelen='24'}
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<img src="[field:litpic/]" alt="[field:title/]">
<div class="caption">
<h3>[field:title/]</h3>
<p>[field:description function='cn_substr(@me,100)'/]...</p>
<p><a href="[field:arcurl/]" class="btn btn-primary" role="button">查看详情</a></p>
</div>
</div>
</div>
{/dede:arclist}
</div>
</div>
<!-- 页脚 -->
<footer class="footer">
<div class="container">
<p class="text-muted">版权所有 © 2025 公司名称 | 基于 Dedecms 构建</p>
</div>
</footer>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery) -->
<script src="/templets/default/assets/js/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件,你也可以只加载单个插件。 -->
<script src="/templets/default/assets/js/bootstrap.min.js"></script>
</body>
</html>
步骤 4:创建自定义样式文件
在上面的模板中,我们引用了一个自定义的 CSS 文件 style.css,这个文件用于覆盖或补充 Bootstrap 的默认样式,并实现一些特定于你网站的样式。
- 在
/templets/default/目录下,创建style.css文件。 - 添加一些基本样式,并开始编写媒体查询。
/* style.css */
/* --- 全局样式 --- */
body {
font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
padding-top: 50px; /* 为固定导航栏留出空间 */
}
/* --- 轮播图样式覆盖 --- */
.carousel {
height: 400px;
background-color: #000;
}
.carousel .item {
height: 400px;
background-color: #777;
}
.carousel img {
width: 100%;
height: 400px;
object-fit: cover;
}
.carousel-caption {
background-color: rgba(0,0,0,0.5);
border-radius: 10px;
}
/* --- 产品展示样式 --- */
.thumbnail {
transition: transform 0.3s ease;
}
.thumbnail:hover {
transform: scale(1.05);
box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
/* --- 页脚样式 --- */
.footer {
background-color: #f5f5f5;
padding: 20px 0;
margin-top: 50px;
text-align: center;
}
/* ===================== */
/* === 响应式媒体查询 === */
/* ===================== */
/* --- 平板设备 (sm) --- */
@media (max-width: 991px) {
.carousel {
height: 300px;
}
.carousel .item, .carousel img {
height: 300px;
}
.carousel-caption h3 {
font-size: 20px;
}
.carousel-caption p {
display: none; /* 在平板上隐藏描述文字 */
}
}
/* --- 移动设备 (xs) --- */
@media (max-width: 767px) {
body {
padding-top: 0; /* 移动端取消顶部内边距 */
}
.navbar {
margin-bottom: 0; /* 移动端导航栏和轮播图无缝衔接 */
}
.carousel {
height: 200px;
margin-top: 0; /* 取消轮播图顶部外边距 */
}
.carousel .item, .carousel img {
height: 200px;
}
.carousel-caption {
display: none; /* 在手机上隐藏轮播图文字 */
}
.container .row .col-md-8, .container .row .col-md-4 {
margin-bottom: 20px; /* 手机端上下间距 */
}
}
步骤 5:设置首页并生成
- 设置首页模板: 登录 Dedecms 后台,进入【系统】-> 【系统基本参数】 -> 【核心设置】,找到 “主页模板” 选项,将其值修改为
index.html。 - 生成网站: 进入【生成】-> 【更新主页HTML】,点击 “更新主页HTML” 按钮,Dedecms 会根据你刚才创建的模板文件,生成静态的
index.html文件。 - 生成其他页面: 同样,你需要为其他栏目(如“关于我们”、“产品中心”)创建对应的模板文件(如
about.html,products.html),并设置好栏目对应的模板,然后逐一生成。
第四部分:上传与测试
- 上传文件: 使用 FTP 工具,将本地
/templets/default文件夹下的所有内容(包括新创建的index.html,style.css以及assets文件夹)上传到服务器上对应的目录。 - 数据库上传: 如果你是在本地开发完成,还需要将本地的数据库导出(.sql 文件),然后导入到服务器上。
- 测试:
- 桌面端: 在电脑浏览器上访问你的网站,检查布局是否正常。
- 响应式测试:
- 方法一(推荐): 使用 Chrome 或 Firefox 浏览器的开发者工具(按 F12),点击设备模拟按钮(一个手机/平板图标),切换不同的设备尺寸(iPhone, iPad, Desktop)来查看效果。
- 方法二: 用真实的手机、平板电脑访问网站,这是最真实的测试。
总结与建议
- 善用 Dedecms 标签: Dedecms 的模板标签(如
arclist,channel,list等)非常强大,是动态调用内容的核心,务必花时间熟悉它们。 - 模块化开发: 对于页眉、页脚、侧边栏等重复出现的部分,可以考虑使用
include标签({dede:include filename='head.html'/})将其拆分成独立的文件,方便管理和维护。 - 保持代码整洁: 编写清晰、有注释的 HTML 和 CSS 代码,不仅对你自己友好,也方便他人接手项目。
- 安全第一: 在将网站部署到服务器前,请务必修改默认的后台目录名(
dede)和默认管理员账号密码,并做好目录权限设置。
遵循以上步骤,你就可以成功地构建一个功能完善、外观现代且在各种设备上都能良好显示的响应式公司网站了,祝你开发顺利!

(图片来源网络,侵删)
