移动端适配概述
随着移动设备访问量的持续增长,织梦CMS网站的栏目页移动端适配成为必须解决的问题。通过响应式设计、独立的移动模板或动态适配方案,可以让栏目在手机、平板等设备上有良好的展示效果。
一、响应式模板方案(推荐)
在栏目模板中添加响应式CSS,一套模板适配所有设备:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
/* 基础样式 */
.nav-menu{display:flex;gap:15px;}
.article-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
/* 平板端 */
@media(max-width:1024px){
.article-list{grid-template-columns:repeat(2,1fr);}
.nav-menu{flex-wrap:wrap;}
}
/* 手机端 */
@media(max-width:768px){
.article-list{grid-template-columns:1fr;}
.nav-menu{flex-direction:column;display:none;}
.nav-menu.active{display:flex;}
.mobile-menu-btn{display:block;}
h1{font-size:22px;}
.content img{max-width:100%;height:auto;}
}
</style>
二、独立移动模板方案
为栏目创建专门的手机版模板,通过域名判断切换:
<!-- 在栏目页模板中添加判断 -->
{dede:php}
$ua=$_SERVER['HTTP_USER_AGENT'];
$is_mobile=preg_match('/(android|iphone|ipad|mobile)/i', $ua);
if($is_mobile){
// 使用移动端模板
$GLOBALS['cfg_df_style']='mobile'; // 切换到手机模板目录
}
{/dede:php}
创建移动模板目录结构和文件:
templets/
├── default/ # PC端模板
│ ├── list_article.htm
│ └── article_article.htm
└── mobile/ # 移动端模板
├── list_article.htm
└── article_article.htm
三、栏目导航的移动端适配
实现移动端常见的汉堡菜单效果:
<!-- 移动端导航 -->
<nav class="channel-nav">
<div class="menu-toggle" onclick="toggleMenu()">
<span></span><span></span><span></span>
</div>
<ul id="main-menu">
{dede:channel type='top' row='10'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
</nav>
<script>
function toggleMenu(){
document.getElementById('main-menu').classList.toggle('show');
}
</script>
四、栏目列表页移动端优化
<!-- 移动端友好的列表布局 -->
{dede:list pagesize='15'}
<div class="article-card">
<a href="[field:arcurl/]" class="card-img">
<img src="[field:litpic/]" alt="[field:title/]" loading="lazy">
</a>
<div class="card-body">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="card-desc">[field:description function='cn_substr(@me,80)'/]</p>
<div class="card-meta">
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
<span>[field:click/]次阅读</span>
</div>
</div>
</div>
{/dede:list}
五、移动端分页优化
<!-- 移动端友好的分页 -->
<div class="mobile-pagination">
{dede:pagelist listitem="pre,next" listsize="3"/}
</div>
六、图片适配移动端
<!-- 使用srcset实现响应式图片 -->
<img src="[field:litpic/]"
srcset="[field:litpic/]?w=400 400w,
[field:litpic/]?w=800 800w"
sizes="(max-width: 768px) 100vw, 50vw"
alt="[field:title/]">
最佳实践:建议优先采用响应式设计方案,一套模板适配所有设备。这样只需维护一套代码,避免了PC端和移动端内容不同步的问题。使用CSS Grid和Flexbox可以轻松实现各种屏幕尺寸下的自适应布局。