小序
其实走过了,也便不觉得有什么了
以前认为十分在意的,今天已然侃侃而谈,稀松平常了
看到了csdn助手的建议,今天就来谈一谈页面布局
本篇文章仍然有着多样的布局方式
同时,此篇依然会连带着VUE一起来谈一谈
正文
如果说上一篇文章的导航栏是用户的指南针,那页面布局就是用户的“晴雨表”
好的页面布局自然会使得人耳目一新
反之,如果页面杂乱不堪,相信。。。你们懂的
直接进入正题
HTML
头部 + 导航 + 内容 + 底部
布局示例图
我们可以看到,上面使用栅格布局
整体上分为四个部分:头部、导航、中部、底部(中间的三个格子均属于正文部分)
具体构建代码如下:(用的代码上面三篇文章基本上均有涉及,有问题可自行查看)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS之页面布局</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
box-sizing: border-box;
}
body {
margin: 0;
}
/* 头部样式 */
.header {
background-color: #46a4b2;
padding: 20px;
text-align: center;
}
/* 导航条 */
.topnav {
overflow: hidden;
background-color: #b2d279;
}
/* 导航链接 */
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
/* 链接 - 修改颜色 */
.topnav a:hover {
background-color: #ddd;
color: black;
}
/* 创建三个相等的列 */
.column {
float: left;
padding: 13px;
}
/* 左右两侧宽度 */
.column.side {
width: 25%;
background-color: #b0c7cb;
margin: 0;
padding: 8px;
}
/* 中间区域宽度 */
.column.middle {
width: 50%;
text-align: center;
background-color: violet;
}
/* 列后面清除浮动 */
.row:after {
content: "";
display: table;
clear: both;
}
/* 响应式布局 - 宽度小于600px时设置上下布局 */
@media screen and (max-width: 600px) {
.column.side, .column.middle {
width: 100%;
}
}
/* 底部样式 */
.footer {
background-color: #ddc4c4;
padding: 18px;
text-align: center;
margin-top: -5px; //调整两个盒子间的间隙
}
</style>
</head>
<body>
<div class="header">
<h1>头部区域</h1>
</div>
<div class="topnav">
<a href="#">页面一</a>
<a href="#">页面二</a>
<a href="#">页面三</a>
</div>
<div class="row">
<div class="column side">
<h2>左侧栏</h2>
<br>
<p style="font-family: STKaiti;font-size: 25px;">木兰花</p>
<br>
<p style="font-family: STKaiti;font-size: 25px;">临江仙·寒柳</p>
<br>
</div>
<div class="column middle">
<h2>主区域内容</h2>
<br>
<p style="font-family: STXingkai;font-size: 25px;"> 人生若只如初见 , 何事秋风悲画扇 </p>
<br>
<p style="font-family: STXingkai;font-size: 25px;"> 湔裙梦断续应难。 西风多少恨 , 吹不散眉弯 </p>
<br>
</div>
<div class="column side">
<h2 style="text-align: right;">右侧栏</h2>
<br>
<p style="text-align: center;font-family: YouYuan;font-size: 20px;">纳兰性德</p>
<br>
<br>
<p style="text-align: center;font-family: YouYuan;">清丽婉约,哀感顽艳</p>
<p style="text-align: center;font-family: YouYuan;">格高韵远,独具特色,直指本心</p>
<br>
</div>
</div>
<div class="footer">
<p>底部区域</p>
</div>
</body>
</html>
代码运行效果如下图所示
再来一个侧边栏的例子吧
伸缩侧边栏
侧边栏示例
代码如下(本设计使用了layui实现)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<!-- 头部 -->
<div class="layui-header">
<ul class="layui-nav layui-layout-left">
<li class="layui-nav-item" lay-unselect>
<a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>
</li>
</ul>
</div>
<!-- 侧边栏 -->
<div class="layui-side">
<div class="layui-side-scroll">
<ul class="layui-nav layui-nav-tree" lay-filter="admin-side-nav" lay-shrink="_all" style="margin: 15px 0;">
<li class="layui-nav-item">
<a><i class="layui-icon layui-icon-android"></i> <cite >系统管理</cite></a>
<dl class="layui-nav-child">
<dd ><a lay-href="/user/index">xxx</a></dd>
<dd><a lay-href="/sensor/index">xxx</a></dd>
</dl>
</li>
<li class="layui-nav-item">
<a><i class="layui-icon layui-icon-android"></i> <cite >设备管理</cite></a>
<dl class="layui-nav-child">
<dd ><a lay-href="/device/index">xxx</a></dd>
<dd><a lay-href="/monitor/index">xxx</a></dd>
<dd><a lay-href="/monitor/dataview">xxx</a></dd>
</dl>
</li>
<li class="layui-nav-item">
<a><i class="layui-icon layui-icon-android"></i> <cite >数据管理</cite></a>
<dl class="layui-nav-child">
<dd ><a lay-href="/his/index">xxx</a></dd>
<dd ><a lay-href="/his/charts">xxx</a></dd>
</dl>
</li>
</ul>
</div>
</div>
<!-- 主体部分 -->
<div class="layui-body"></div>
<div class="layui-footer layui-text">
copyright © 2020 <a href="http://www.javaweb.vip" target="_blank">javaweb.vip</a> all rights reserved.
<span style="margin-left: 100px;">fancymeng</span>
<span class="pull-right" text="'Version '"></span>
</div>
</div>
<!-- 加载动画 -->
<div class="page-loading">
<div class="ball-loader">
<span></span><span></span><span></span><span></span>
</div>
</div>
<!-- js部分 -->
<script type="text/javascript" src="/static/assets/libs/layui/layui.js"></script>
<script type="text/javascript" src="/static/assets/js/common.js?v=318"></script>
<script>
layui.use(['index'], function () {
var $ = layui.jquery;
var index = layui.index;
// 默认加载主页
index.loadHome({
menuPath: '/begins',
menuName: '<i class="layui-icon layui-icon-home"></i>'
});
});
</script>
</body>
</html>
layout布局
<!DOCTYPE html>
<html lang="en">
{% include 'xxx.html' %}
<body>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
{% block content %}
{% endblock %}
</div>
</div>
</div>
</body>
</html>
代码实现效果如下:
VUE
下面再用vue做一个简单的页面布局
使用vue同上一篇文章所说的一样,可借助Element-UI 来实现基本的布局
具体的要求再根据实际需要修改就好
不得不说,vue有了组件的帮助,实现起来容易多啦
老样子 直接上手
本设计示例图如下
<template>
<div class="homepage-hero-module">
<div class="video-container">
<div :style="fixStyle" class="filter">
<div class="common-layout">
<el-container>
<el-aside width="200px">
<Header :isLogin="store.state.token ? true : false" width="auto"/>
</el-aside>
<el-container>
<el-header height="150px">
<div class = 'logo'>
<el-avatar shape="square" :size="80" :fit="cover" :src="logo">
</el-avatar>
<h3>人脸表情识别</h3>
</div>
</el-header>
<el-main style="position: static">
<router-view :isLogin="isLogin"/>
</el-main>
<el-footer style="position: static" height="100px">
<p style="color: saddlebrown">© fancy clancy freestyle</p>
</el-footer>
</el-container>
<el-aside width="200px" class="deal">
<el-icon :size="30"><UserFilled /></el-icon>
<br/>
<br/>
<el-avatar shape="square" :size="60" :fit="cover" :src="tx">
</el-avatar>
<h3>{{ store.getters.title }}</h3>
<user />
<br/>
<br/>
<a class="facebook weixin" href="javascript:">
<img class="fab fa-weixin" src="../assets/image/QRcode1.png" style="float:right" width="30" height="30">
</a>
</el-aside>
</el-container>
</div>
</div>
<img src="../assets/image/background.JPG" class="fillWidth"/>
</div>
</div>
</template>
实现效果如下:
本文一如既往,通过具体详细的代码来介绍和实现布局结构,可以说网页布局还是相对简单的,但是需要考虑的东西较多,功能、设计、美观… 这些对于最终的呈现效果都有着重要的影响。
在此感谢大家对上一篇文章的喜欢,感谢支持!
结束语
有到了每篇文章的结束语环节了
今天说些什么呢?
还是坚持做自己吧
好好过好每天的生活
过去的已然过去
未来也还是未知
立足当下
活在现在
才能对得起过去
握得住将来
最近歌曲恰恰都很应景
那就接着以现在听的一首歌结束吧
请带我去很远地方
去他乡 陌生方向
漫无目的地流浪
去疯狂 去飞翔
看看成群的牛羊
高原星空的模样
像年轻时一样躺在地上仰望
带我去很远地方
去他乡 插上翅膀
漫无目的去流浪
去疯狂 去张扬
再看一看唐古拉
珠穆朗玛的月光
那曲天湖的流淌和海阔天茫