目录
目录X
WebFuture实现日历式文章图文列表
AI摘要(BLUF)
一、需求说明
基于公版组件进行扩展,实现个性化发布时间展示,以“日历式”样式呈现文章日期信息。同时支持以下功能:
按“年 + 月日”分层展示日期(增强视觉识别)
展示文章标题与摘要内容
支持缩略图显示(存在图片时自动展示)
提供灵活的日期格式配置能力 该组件适用于新闻列表、通知公告等场景,能够有效提升信息的层级感与可读性。
二、效果示意
三、使用方法
1. 调用组件
<ul class="pageTPList">
@Power.ArticleList("文章图文列表", new {
Node = Model,
Paging = true,
TitleLength = 120,
PicFollowTitle = false,
ContentLength = 300,
ImageWidth = 300,
ImageHeight = 200,
DateFollowTitle = false,
DisplayDateTime ="yyyy",
MinorDateFormat = "MM-dd",
RefNode = true
})
</ul>2. 关键参数说明
| 名称 | 参数值 | 说明 |
|---|---|---|
| DateFollowTitle | false | 控制发布日期显示位置:true 表示日期跟随标题后显示,false 表示显示在标题前 |
| DisplayDateTime | "yyyy" | 主日期格式(通常用于年份),支持标准时间格式化规则(如 yyyy、MM、dd、HH 等) |
| MinorDateFormat | "MM-dd" | 附加日期格式(通常用于“月-日”),用于构建日历式展示效果 |
| PicFollowTitle | false | 控制图片位置:true 表示图片显示在标题后,false 表示显示在标题前 |
💡 说明:通过 DisplayDateTime 与 MinorDateFormat 的组合,可以灵活实现“年月分离”的日历式展示效果。
四、HTML 结构示例
<li> <span class="date"> <span class="dd">01-07</span> <span class="ym">2026</span> </span> <div class="pic"> <a href="/xydt/xyxw/content_37153" target="_blank" rel="noopener noreferrer"> <img alt="学院举行2025年奖助学金发放仪式暨学生表彰大会" src="/upload/main/contentmanage/article/image/8d18406688384da5bcc23339fcd84e13_300_200.png" width="300" height="200"> </a> </div> <div class="con"> <div class="title"> <a target="_blank" class="tit" href="/xydt/xyxw/content_37153" title="学院举行2025年奖助学金发放仪式暨学生表彰大会" rel="noopener noreferrer"> 学院举行2025年奖助学金发放仪式暨学生表彰大会 </a> </div> <div class="intro"> 1月6日,学院2025年奖助学金发放仪式暨学生表彰大会在大礼堂举行。党委副书记张海军在讲话中指出,学院育人工作取得显著成效,包括制度完善、资助体系优化、学风建设提升以及学生创新能力增强等方面…… </div> </div> </li>
五、样式实现(CSS)
/* 日历式图文列表 */
.pageTPList li {
position: relative;
z-index: 1;
display: flex;
gap: 30px;
padding: 30px;
margin-bottom: 20px;
overflow: hidden;
border-bottom: 1px solid #eee;
}
.pageTPList li::before {
position: absolute;
z-index: -1;
content: '';
left: 0;
top: 0;
right: 0;
bottom: 0;
background: #2FA64C;
border-radius: 20px 0 20px 0;
visibility: hidden;
transform: translateY(100%);
}
.pageTPList li.last { margin-bottom: 0; }
.pageTPList .pic { width: 210px; }
.pageTPList .pic img {
width: 100%;
height: 140px;
}
.pageTPList .con {
flex: 1 0 0;
align-self: center;
}
.pageTPList .title {
font-size: 18px;
line-height: 30px;
max-height: 60px;
overflow: hidden;
font-weight: bold;
}
.pageTPList .title a {
display: block;
text-decoration: none;
color: inherit;
}
.pageTPList .title a::after {
position: absolute;
right: 70px;
bottom: 40px;
font-family: "iconfont";
content: '\e607';
width: 34px;
height: 34px;
line-height: 34px;
border: 1px solid #eee;
border-radius: 50%;
text-align: center;
font-size: 16px;
font-weight: normal;
color: #999;
}
.pageTPList .intro {
margin-top: 15px;
font-size: 15px;
line-height: 28px;
max-height: 56px;
color: #999;
overflow: hidden;
}
.pageTPList .others { display: none; }
/* 日历日期样式 */
.pageTPList .date {
font-family: Arial;
order: 1;
margin: 20px 0 70px 10px;
line-height: 1;
}
.pageTPList .date .dd {
display: block;
font-weight: bold;
font-size: 30px;
color: #DFB072;
}
.pageTPList .date .ym {
display: block;
margin-top: 10px;
font-size: 16px;
color: #999;
}六、实现要点说明
使用 Flex 布局 实现整体结构排列,保证响应式表现
通过
gap控制元素间距,使结构更简洁使用
order属性调整日期位置,实现“视觉优先级控制”利用时间格式拆分(
yyyy+MM-dd)实现“日历式展示”图标使用字体图标(iconfont)实现“更多”视觉提示