Skip to content

静态页面编写

首先先实现页面的编写

在课程开始之前,静态页面已经编写好了,但是为了在学习的时候能够对相关知识掌握的更加熟练一些,课程内我们还是对对应的逻辑再走一遍。

首先编写后端路由

python
# filename: forum/views/index.py

from flask import Blueprint, current_app, render_template

index_bp = Blueprint("index", __name__, url_prefix='/')


@index_bp.route("/")
def index():
    return render_template("forum/index.html")

然后返回页面内容

html
<!--index.html-->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>正心论坛</title>
    <link rel="stylesheet" href="/static/layui/css/layui.css">
    <link rel="stylesheet" href="/static/css/main.css">
    <script src="/static/layui/layui.js"></script>
</head>
<body>

</body>
</html>

需要提前下载 layui 的静态文件 layui.dev

页面头部

1、没有登录之前不显示个人信息,只显示左上角的登录按钮。

html

<div class="header">
    <div class="header-demo">

        <a href="/" class="logo">
            正心全栈论坛
        </a>

        <!--中间分类栏-->
        <ul class="menu">
            <li class="active" data-cid="0"><a href="javascript:;">最新</a></li>
            <li data-cid="1"><a href="javascript:;">基础</a></li>
            <li data-cid="2"><a href="javascript:;">爬虫</a></li>
            <li data-cid="3"><a href="javascript:;">数据分析</a></li>
            <li data-cid="4"><a href="javascript:;">全栈</a></li>
            <li data-cid="5"><a href="javascript:;">交流区</a></li>
        </ul>

        <!--登录注册栏-->
        <div class="login">
            <a href="javascript:;" class="login_btn">登录</a> /
            <a href="javascript:;" class="register_btn">注册</a>
        </div>

        <!-- 用户登录后显示下面 -->
        <div class="login" style="display: none">
            <img src="/static/images/person01.png" class="login-pic" alt="">
            <a href="#">用户张三</a>
            <a href="#">退出</a>
        </div>
    </div>
</div>
css
* {
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}

/*页面头部导航栏*/
.header {
    height: 59px;
    background-color: #fff;
    border-bottom: 1px solid #ccc;
}

.header .header-demo {
    width: 1200px;
    height: 59px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}


.header .header-demo .logo {
    font-size: 22px;
    width: 140px;
    height: 33px;
    line-height: 59px;
}

.header .header-demo .menu {
    /*菜单栏*/
    display: flex;
    flex-direction: row;
    width: 600px;
    height: 59px;
    line-height: 59px;
    font-size: 14px;
    color: #666;
}

.menu li {
    height: 59px;
    padding: 0 30px;
}

.menu li:hover {
    border-bottom: 2px solid #16baaa;
}


.menu li.active a {
    color: #16baaa;
    height: 59px;
}

.menu li.active {
    border-bottom: 2px solid #16baaa;
    color: #16baaa;
}

.header .login {
    line-height: 59px;
    font-size: 14px;
    color: #666;
}

.header .login a:hover {
    color: #16baaa;
}

.header-demo .login-pic {
    /*退出显示内容*/
    height: 30px;
    line-height: 59px;
    margin-right: 5px;
}

页面中间部分

html

<div class="main">
    <!--占位 页面主要内容-->
</div>
css
.main {
    min-height: calc(100% - 151px); /* 减去页脚的高度 */
}

.main {
    /*内容组件栏*/
    width: 1200px;
    overflow: hidden;
    margin: 20px auto 0;
    display: flex;
    gap: 10px;
}


.login_form, .register_form {
    padding: 20px;
}

页面尾部

html
<!--页脚栏-->
<div class="footer">
    <div class="footer-links">
        <a href="">关于我们</a>
        <span>|</span>
        <a href="">联系我们</a>
        <span>|</span>
        <a href="">招聘人才</a>
        <span>|</span>
        <a href="">友情链接</a>
    </div>
    <p class="copyright">
        CopyRight © 2024 正心全栈编程 All Rights Reserved
    </p>
    <p class="copyright"> 电话:010-****888 湘 ICP 备*******8号</p>
</div>
css

.footer {
    background: #262f38;
    color: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 5px 0;
}

.footer_links span {
    margin: 0 5px;
}

.footer-links {
    color: #fff;
    font-size: 12px;
}

.footer-links a,
.footer-links span {
    color: #fff;
    font-size: 12px;
}