当前博客:47-快码FOF中文编程layui实战:实现博客列表页面

306 次浏览【转载需注明来源】

博客作者:【qiang】

个性签名:请输入个性签名___________

首先我们设置一下页面的字体、字体大小,字体颜色,背景颜色,超链接颜色等。

这些设置好了,整个页面的风格就出来了,

然后我们看页面的头部组成,

这个头部,是不是外面一个区块,里面一左一右两个区块组成的(左右布局),这里就是一个经典的头部结构了。

外面的区块,用一个白色的背景,再嵌套一层中间的区块,由于是响应式的,lay-容器 类名是不是就可以使用在这里,然后区块里面,左侧是一个logo,右侧是一个导航,layui的导航组件的样式稍微改一改,再用左右浮动布局是不是就可以实现了。

看代码示例:

<!--  一个头部区块包裹,背景白色 -->
<区块 类名="头部">
    <!--  lay-容器包裹方便响应式改变大小 -->
	<区块 类名="lay-容器">
	    <!--  左侧一个logo -->
		<区块 类名="LOGO">
			<超链接 链接地址="index.html">FOF博客</超链接>
		</区块>
		<!--  右侧一个导航,用的layui导航组件,修改了样式 -->
		<无序列表 类名="lay-导航 头部导航" lay-功能条="禁用">
			<列表项 类名="lay-导航-项目">
				<超链接 链接地址="index.html">首页</超链接>
			</列表项>
			<列表项 类名="lay-导航-项目">
				<超链接 链接地址="index.html">博客</超链接>
			</列表项>
			<列表项 类名="lay-导航-项目">
				<超链接 类名="lay-按钮 lay-按钮-百搭" 链接地址="个人中心.html" id="个人中心" 行内样式="">个人中心</超链接>
				<按钮 类名="lay-按钮 lay-按钮-百搭" id="登录按钮" 行内样式="显示模式: 无效">登录/注册</按钮>
			</列表项>
		</无序列表>
	</区块>
</区块>
Markup
.头部 {
	背景: 颜色值-白色;
	高度: 60px;
	盒子-阴影: rgb(204, 204, 204) 0px 0px 5px;
}
.LOGO {
	浮动: 左侧;
	字体-大小: 30px;
	行高: 60px;
}
.头部导航 {
	左边距: 100px;
	文本-对齐: 右侧;
	背景-颜色: 透明;
}
.头部导航 .lay-导航-项目 超链接 {
	颜色: #000;
}
.头部导航 .lay-导航-项目 超链接:鼠标移入 {
	颜色: #1e9fff;
}
CSS

都是很简单的修改样式,就得出了一个头部:

然后,我们在看下面的内容结构,

是不是又是左右结构的,像这种左右结构,我们就不用浮动了,layui的栅格化框架正好可以使用在这里,因为我们写的树响应式页面,所以栅格化要多用,我们设置好栅格类名,这个区块就会根据屏幕大小,展示不同的尺寸,上代码:

<区块 类名="内容板块" 行内样式="上边距: 25px">
	<区块 类名="lay-容器">
		<区块 类名="lay-栅格行 lay-栅格间隔20">
			<区块 类名="lay-栅格中屏9 lay-栅格小屏8">
				<无序列表 类名="博客列表">
					<列表项 类名="lay-卡片面板" 行内样式="高度: 175px"></列表项>
					<列表项 类名="lay-卡片面板" 行内样式="高度: 175px"></列表项>
					<列表项 类名="lay-卡片面板" 行内样式="高度: 175px"></列表项>
					<列表项 类名="lay-卡片面板" 行内样式="高度: 175px"></列表项>
				</无序列表>
			</区块>
			<区块 类名="lay-栅格中屏3 lay-栅格小屏4">
				<区块 类名="lay-卡片面板" 行内样式="高度: 110px"></区块>
				<区块 类名="lay-卡片面板" 行内样式="高度: 275px"></区块>
				<区块 类名="lay-卡片面板" 行内样式="高度: 275px"></区块>
			</区块>
		</区块>
	</区块>
</区块>
Markup

这个页面结构是不是就出来了,我们在 卡片面板里面加上内容代码,再去掉高度(我为了方便展示加的高度),让内容自然撑开,这个页面大部分的内容是不是就好了。

我们再分析一下这里面的内容,有哪些是可以layui实现的,

我们先写左侧的列表,

<列表项 类名="lay-卡片面板">
	<区块 类名="置顶">置顶</区块>
	<标题4>
	    <!--  徽章 -->
		<超链接 链接地址="博客内容.html"><行内元素 类名="lay-徽章 lay-青色背景">新</行内元素>JS与ES6高级编程学习笔记(一)——JavaScript核心组成</超链接>
	</标题4>
	<区块 类名="发布信息">
	    <!-- 图标,按钮 -->
		<行内元素><斜体文本 类名="lay-图标 lay-图标时间"></斜体文本>发布于: <时间文本>2023-2-21 12:00</时间文本></行内元素>
		<行内元素><斜体文本 类名="lay-图标 lay-图标便签"></斜体文本>分类: <font><超链接 类名="lay-按钮 lay-按钮-迷你 lay-按钮-警告" 链接地址="/">JavaScript</超链接></font></行内元素>
	</区块>
	<区块 类名="摘要信息">
		<段落>
			<超链接 链接地址="博客内容.html"><重要文本>摘要:</重要文本> JavaScript(JS)是一种轻量级、解释型、动态类型的高级程序设计语言. 它诞生于1995年,是一门基于原型、函数优先的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程. 它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持,如 Node.js、 Apache CouchDB 和 Adobe Acrobat. 它已经由ECMA(欧洲计算机制造商协会)通过ECMAScript实现语言的标准化.</超链接>
		</段落>
	</区块>
</列表项>
Markup

emmm,有点样子了,我们再给这个列表加一点样式,

.博客列表 列表项 {
	定位: 相对定位;
	内边距: 15px 20px;
	过渡: 所有 0.3s;
	溢出: 隐藏;
}
.博客列表 列表项 .置顶 {
	宽度: 80px;
	文本-对齐: 居中;
	背景: red;
	颜色: #fff;
	高度: 20px;
	行高: 20px;
	字体-大小: 12px;
	字体-粗细: 粗体;
	转换: 旋转(-45deg);
	定位: 绝对定位;
	左侧: -24px;
	顶部: 5px;
}
.博客列表 列表项:鼠标移入 {
	背景: 颜色通道(255, 255, 255, 0.7);
}
.博客列表 列表项 标题4 {
	字体-大小: 16px;
	字体-粗细: 粗体;
	高度: 30px;
	行高: 30px;
	空格: 不换行;
	溢出: 隐藏;
	文本-溢出: 省略号;
}
.博客列表 列表项 标题4 超链接 {
	颜色: #1e9fff;
	显示模式: 块级元素;
}
.博客列表 列表项 标题4 行内元素 {
	右边距: 5px;
	垂直-对齐: 文本顶端对齐;
}
.博客列表 列表项 .发布信息 {
	下内边距: 10px;
	边框-底部: 1px #ccc 实线;
}
.博客列表 列表项 .发布信息 行内元素 {
	高度: 20px;
	行高: 20px;
	显示模式: 内联块元素;
	右边距: 10px;
}
.博客列表 列表项 .发布信息 斜体文本 {
	垂直-对齐: 顶部;
	右边距: 5px;
}
.博客列表 列表项 .摘要信息 {
	内边距: 10px 0;
}
.博客列表 列表项 .摘要信息 超链接 {
	显示模式: 块级元素;
}
.博客列表 列表项 .摘要信息 重要文本 {
	颜色: 颜色值-红色;
}
.博客列表 列表项 .摘要信息 段落 {
	行高: 1.5;
	显示模式: -谷歌内核-盒子;
	溢出: 隐藏;
	-谷歌内核-盒子排列: 垂直排列;
	-谷歌内核-行数限制: 3;
}
CSS

再复制几个列表,这个列表是不是就好了,

然后我们再看右边,

这几个板块,都是上下结构,一个标题,一个内容,正好layui的卡片面板刚好可以做这玩意儿,

<区块 类名="lay-卡片面板 搜索博客">
	<区块 类名="lay-卡片面板-头部">博客搜索</区块>
	<区块 类名="lay-卡片面板-主体">
		<表单 类名="清除浮动" 表单地址="" 交互类型="">
			<数据框 数据类型="文本输入" 属性名称="账号" 必填状态="" lay-验证="必填项" 自动填充="记住" 类名="lay-输入框" />
			<按钮 类名="lay-按钮 lay-按钮-警告 lay-图标 lay-图标搜索 lay-字体18" lay-提交=""></按钮>
		</表单>
	</区块>
</区块>
<区块 类名="lay-卡片面板">
	<区块 类名="lay-卡片面板-头部">博客分类</区块>
	<区块 类名="lay-卡片面板-主体">
		<无序列表 类名="列表">
			<列表项><超链接 链接地址="">全部文章</超链接></列表项>
			<列表项><超链接 链接地址="">前端</超链接></列表项>
			<列表项><超链接 链接地址="">Layui</超链接></列表项>
			<列表项><超链接 链接地址="">JavaScript</超链接></列表项>
			<列表项><超链接 链接地址="">PHP</超链接></列表项>
			<列表项><超链接 链接地址="">其它</超链接></列表项>
		</无序列表>
	</区块>
</区块>
Markup

雏形有了,给加点样式。

.lay-卡片面板 {
	盒子-阴影: 颜色通道(0, 0, 0, 0.15) 0 0 5px 0;
	溢出: 隐藏;
}
.lay-卡片面板-头部 {
	背景: #1e9fff;
	颜色: #fff;
}
.lay-卡片面板-主体 {
	内边距: 15px 12px;
}
.搜索博客 表单{
    清除浮动: 全部清除;
    溢出: 隐藏;
}
.搜索博客 数据框 {
	宽度: 计算(100% - 56px);
	浮动: 左侧;
}
.搜索博客 按钮 {
	浮动: 右侧;
}
.列表 列表项 超链接 {
	显示模式: 块级元素;
	内边距: 5px 10px;
	定位: 相对定位;
	过渡: 所有 0.5s;
}
CSS

ok,就差日历了,日历的做法参考:33-快码FOF中文编程layui教学-组件:日期和时间组件-快码编程博客阅读 (fofstudio.net)  

可以下载案例,查看直接显示日历,我这里大概的说一下,

新建对象 lay_日期({
	[lay_日期.配置.绑定元素]: "#日历",
	[lay_日期.配置.定位]: lay_日期.定位.静态定位, // 设置定位为静态定位的时候,日历会直接嵌套显示
	[lay_日期.配置.显示底部]: 假,
	[lay_日期.配置.主题]: "#1E9FFF",
	[lay_日期.配置.日历]: 真,
});
JavaScript

我们在html绑定id 日历,

这里要说一个细节,由于我们的js是直接编译到网页head里面的,所以再写js的时候,通常需要加个等待加载dom完成再执行,要不然查询不到dom元素。

$(定义函数 () {
	// 代码...
	
});
JavaScript

继续页面,页面还有一个列表分页(这分页是不是可以用layui实现呢),一个尾部,这尾部很简单,就是一个背景,一段居中的文字 。

先做一下分页(参考博客:34-快码FOF中文编程layui教学-组件:分页组件-快码编程博客阅读 (fofstudio.net)):

html代码:

<区块 类名="分页" id="博客分页"></区块>

js代码:

新建对象 lay_分页({
	[lay_分页.配置.绑定元素]: "#博客分页",
	[lay_分页.配置.总数]: 50,
	[lay_分页.配置.主题]: "#1e9fff",
});

没有居中,我们再加点css:

#博客分页 {
	文本-对齐: 居中;
}

完成,就剩一个尾部了,太简单了,直接上代码:

<区块 类名="尾部">
	<段落>Copyright © 2023 FOF博客 All Rights Reserved V.1.0.0 Power by FOF博客</段落>
</区块>
.尾部 {
	内边距: 10px 0;
	高度: 30px;
	行高: 30px;
	文本-对齐: 居中;
	背景: #1e1e1e;
	颜色: #ccc;
	上边距: 40px;
}

ok,到这里,一个博客列表页就完成了,不过我们这是响应式的,还需要兼容其它端,下一篇继续移动端,这一篇太长了。

47-快码FOF中文编程layui实战:实现博客列表页面