SpringBoot+layui实现简单登录(项目创建+前后端配置)

后端技术

  • 开发工具 IDEA
  • Java 1.8
  • 项目构建 spring boot 2.6.7
  • 项目管理 maven 3.6.3
  • 持久层 mybatis-plus 3.5.0
  • 数据库 MySQL 8.0.28
  • 数据源 Druid 1.2.8

前端技术

  • Layui 2.6.8 https://www.layuion.com/
  • jQuery 3.6.0 https://jquery.com/download/

实现过程有些长,效果:
登录页面:
在这里插入图片描述
后台基础页面
在这里插入图片描述

基础目录

如何通过IDEA创建springboot项目请自行另外查找
在这里插入图片描述
static下layui可以通过https://www.layuion.com/ 下载

基本配置

pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo-manage</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo-manage</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

application.yml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    # 数据库用户名
    username: root
    # 数据库密码
    password: 123456
    # 127.0.0.1 本地地址,3306 端口 demo_manage 数据库名称
    url: jdbc:mysql://127.0.0.1:3306/demo_manage?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8

    # druid参数调优(可选)
    # 初始化大小,最小,最大
    initialSize: 5
    minIdle: 5
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 300000
    # 测试连接
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置监控统计拦截的filters
    filters: stat
    # asyncInit是1.1.4中新增加的配置,如果有initialSize数量较多时,打开会加快应用启动时间
    asyncInit: true

mybatis-plus:
    # 包扫描
  type-aliases-package: com.example.model
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 开启驼峰
    map-underscore-to-camel-case: true

application.properties

# 格式化全局时间字段
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 指定时间区域类型
spring.jackson.time-zone=GMT+8

前端

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>Demo-Manage</title>
    <link rel="stylesheet" href="layui/css/layui.css">
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo">Demo Manage</div>
        <!-- 头部区域(可配合layui已有的水平导航) -->
        <ul class="layui-nav layui-layout-left">
            <li class="layui-nav-item"><a href="">控制台</a></li>
            <li class="layui-nav-item"><a href="">商品管理</a></li>
            <li class="layui-nav-item"><a href="">用户</a></li>
            <li class="layui-nav-item">
                <a href="javascript:;">其它系统</a>
                <dl class="layui-nav-child">
                    <dd><a href="">邮件管理</a></dd>
                    <dd><a href="">消息管理</a></dd>
                    <dd><a href="">授权管理</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item">
                <a href="javascript:;">
                    <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
                    赵云
                </a>
                <dl class="layui-nav-child">
                    <dd><a href="">基本资料</a></dd>
                    <dd><a href="">安全设置</a></dd>
                    <dd><a href="">退出</a></dd>
                </dl>
            </li>
            <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
                <a href="javascript:;">
                    <i class="layui-icon layui-icon-more-vertical"></i>
                </a>
            </li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree"  lay-filter="test">
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="javascript:;">所有商品</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">列表一</a></dd>
                        <dd><a href="javascript:;">列表二</a></dd>
                        <dd><a href="javascript:;">列表三</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">解决方案</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">列表一</a></dd>
                        <dd><a href="javascript:;">列表二</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item"><a href="">云市场</a></li>
                <li class="layui-nav-item"><a href="">发布商品</a></li>
            </ul>
        </div>
    </div>

    <div class="layui-body">
        <!-- 内容主体区域 -->
        <div style="padding: 15px;">内容主体区域</div>
    </div>

<!--    <div class="layui-footer">-->
<!--        &lt;!&ndash; 底部固定区域 &ndash;&gt;-->
<!--        © layui.com - 底部固定区域-->
<!--    </div>-->
</div>
<script src="layui/layui.js"></script>
<script>
    //JavaScript代码区域
    layui.use(['element', 'layer', 'util'], function(){
    
    
        var element = layui.element
            ,layer = layui.layer
            ,util = layui.util
            ,$ = layui.$;

        //头部事件
        util.event('lay-header-event', {
    
    
            //左侧菜单事件
            menuLeft: function(othis){
    
    
                layer.msg('展开左侧菜单的操作', {
    
    icon: 0});
            }
            ,menuRight: function(){
    
    
                layer.open({
    
    
                    type: 1
                    ,content: '<div style="padding: 15px;">处理右侧面板的操作</div>'
                    ,area: ['260px', '100%']
                    ,offset: 'rt' //右上角
                    ,anim: 5
                    ,shadeClose: true
                });
            }
        });

    });
</script>
</body>
</html>

login.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>登录</title>
    <link rel="stylesheet" href="/layui/css/layui.css">
    <link rel="stylesheet" href="/layui/css/admin.css">
    <link rel="stylesheet" href="/layui/css/log.css">
</head>
<body>
<div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;">
    <div class="layadmin-user-login-main">
        <div class="layadmin-user-login-box layadmin-user-login-header">
            <h2>Demo-Manage</h2>
            <p>基于Layui的后台管理系统</p>
        </div>
        <div class="layadmin-user-login-box layadmin-user-login-body layui-form">
            <div class="layui-form-item">
                <label class="layadmin-user-login-icon layui-icon layui-icon-username"></label>
                <input type="text" name="username" id="LAY-user-login-username" lay-verify="required" placeholder="用户名" class="layui-input">
            </div>
            <div class="layui-form-item">
                <label class="layadmin-user-login-icon layui-icon layui-icon-password"></label>
                <input type="password" name="password" id="LAY-user-login-password" lay-verify="required" placeholder="密码" readonly onfocus="this.removeAttribute('readonly');" class="layui-input">
            </div>
            <div class="layui-form-item" style="margin-bottom: 20px;">
                <input type="checkbox" name="remember" lay-skin="primary" title="记住密码" >
                <a href="#" class="layadmin-user-jump-change layadmin-link" style="margin-top: 7px;">忘记密码?</a>
            </div>
            <div class="layui-form-item">
                <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit">登 入</button>
            </div>
            <div class="layui-trans layui-form-item layadmin-user-login-other">
                <label>社交账号登入</label>
                <a href="javascript:;"><i class="layui-icon layui-icon-login-qq"></i></a>
                <a href="javascript:;"><i class="layui-icon layui-icon-login-wechat"></i></a>
                <a href="javascript:;"><i class="layui-icon layui-icon-login-weibo"></i></a>

                <a href="#" class="layadmin-user-jump-change layadmin-link">注册帐号</a>
            </div>
        </div>
    </div>
</div>

<script src="/layui/layui.js"></script>
<script>
    //JavaScript代码区域
    layui.use(['layer','element','form'], function(){
    
    
        var layer = layui.layer;
        var form = layui.form;
        var element = layui.element;

    });
</script>
</body>
</html>

这里面有自定义的css

自定义css

在这里插入图片描述

admin.css

/** layuiAdmin.std-v1.2.1 LPPL License By http://www.layui.com/admin/ */
html #layuicss-layuiAdmin{
    
    display:none;position:absolute;width:1989px}::-webkit-input-placeholder{
    
    color:#ccc}html{
    
    background-color:#f2f2f2;color:#666}.layadmin-tabsbody-item,[template]{
    
    display:none}[lay-href],[lay-tips],[layadmin-event]{
    
    cursor:pointer}.layui-layout-admin .layui-header{
    
    position:fixed;top:0;left:0;width:100%;height:50px}.layui-layout-admin .layui-header .layui-nav .layui-nav-child a{
    
    color:#333}.layui-layout-admin .layui-side{
    
    width:220px;top:0;z-index:1001}.layui-layout-admin .layui-header .layui-nav .layui-nav-item,.layui-layout-admin .layui-logo{
    
    height:50px;line-height:50px}.layui-layout-admin .layui-logo{
    
    position:fixed;left:0;top:0;z-index:1002;width:220px;height:49px;padding:0 15px;box-sizing:border-box;overflow:hidden;font-weight:300;background-repeat:no-repeat;background-position:center center}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-layout-left{
    
    left:220px}.layadmin-pagetabs{
    
    position:fixed;top:50px;right:0;z-index:999}.layadmin-pagetabs .layui-breadcrumb{
    
    padding:0 15px}.layui-layout-admin .layui-body{
    
    position:fixed;top:90px;bottom:0}.layui-layout-admin .layui-body .layadmin-tabsbody-item{
    
    position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.layui-layout-admin .layui-header .layui-nav-img{
    
    width:26px;height:26px}.layui-layout-admin .layui-header .layui-nav-child{
    
    top:55px}.layui-layout-admin .layui-header .layui-layout-right .layui-nav-child{
    
    left:auto;right:0}.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this,.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this a{
    
    background:0 0}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-header .layui-layout-right,.layui-layout-admin .layui-header .layui-nav .layui-nav-item,.layui-layout-admin .layui-layout-left,.layui-layout-admin .layui-logo,.layui-layout-admin .layui-side{
    
    transition:all .3s;-webkit-transition:all .3s}.layui-icon-login-qq{
    
    color:#3492ED}.layui-icon-login-wechat{
    
    color:#4DAF29}.layui-icon-login-weibo{
    
    color:#CF1900}.layui-form[wid100] .layui-form-label{
    
    width:100px}.layui-form[wid100] .layui-input-block{
    
    margin-left:130px}@media screen and (max-width:450px){
    
    .layui-form[wid100] .layui-form-item .layui-input-inline{
    
    margin-left:132px}.layui-form[wid100] .layui-form-item .layui-input-inline+.layui-form-mid{
    
    margin-left:130px}}.layui-form-item .layui-input-company{
    
    width:auto;padding-right:10px;line-height:38px}.layui-bg-white{
    
    background-color:#fff}.layadmin-loading{
    
    position:absolute;left:50%;top:50%;margin:-16px -15px;font-size:30px;color:#c2c2c2}.layadmin-fixed{
    
    position:fixed;left:0;top:0;z-index:999}.layadmin-link{
    
    color:#029789!important}.layadmin-link:hover{
    
    opacity:.8}.layui-layer-admin .layui-layer-title{
    
    height:50px;line-height:50px;border:0;background-color:#20222A;color:#fff}.layui-layer-admin i[close]{
    
    position:absolute;padding:5px;right:10px;top:12px;color:#fff;cursor:pointer}.layui-layer-admin .layui-layer-content{
    
    padding:20px;line-height:22px}.layui-layer-admin .layui-layer-content cite{
    
    font-style:normal;color:#FF5722}.layui-layer-adminRight{
    
    top:50px!important;bottom:0;box-shadow:1px 1px 10px rgba(0,0,0,.1);border-radius:0;overflow:auto}.layadmin-note .layui-layer-content{
    
    padding:0}.layadmin-note textarea{
    
    display:block;width:300px;height:132px;min-width:300px;min-height:132px;line-height:20px;padding:10px 20px;border:none;box-sizing:border-box;color:#666;word-wrap:break-word}.layui-layout-admin .layui-layout-left{
    
    padding:0 10px}.layui-layout-admin .layui-layout-left .layui-nav-item{
    
    margin:0 20px}.layui-layout-admin .layui-input-search{
    
    display:inline-block;vertical-align:middle;height:32px;border:none;cursor:text}.layui-layout-admin .layui-layout-left a,.layui-layout-admin .layui-layout-right{
    
    padding:0}.layui-header .layui-nav-item .layui-icon{
    
    position:relative;top:1px;font-size:16px}.layui-header .layui-layout-right .layui-badge-dot{
    
    margin-left:11px}.layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{
    
    top:0!important;bottom:auto;height:3px;background-color:#fff;background-color:rgba(255,255,255,.3)}.layadmin-body-shade{
    
    position:fixed;display:none;left:0;right:0;top:0;bottom:0;background-color:rgba(0,0,0,.3);z-index:1000}.layui-side-menu .layui-side-scroll{
    
    width:240px}.layui-side-menu .layui-nav{
    
    width:220px;margin-top:50px;background:0 0}.layui-side-menu .layui-nav .layui-nav-item a{
    
    height:40px;line-height:40px;padding-left:45px;padding-right:30px}.layui-side-menu .layui-nav .layui-nav-item>a{
    
    padding-top:8px;padding-bottom:8px}.layui-side-menu .layui-nav .layui-nav-item a:hover{
    
    background:0 0}.layui-side-menu .layui-nav .layui-nav-itemed>.layui-nav-child{
    
    padding:5px 0}.layui-side-menu .layui-nav .layui-nav-item .layui-icon{
    
    position:absolute;top:50%;left:20px;margin-top:-19px}.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child{
    
    background:0 0!important}.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child a{
    
    padding-left:60px}.layui-side-menu .layui-nav .layui-nav-more{
    
    right:15px}@media screen and (max-width:992px){
    
    .layui-layout-admin .layui-side{
    
    transform:translate3d(-220px,0,0);-webkit-transform:translate3d(-220px,0,0);width:220px}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-layout-left{
    
    left:0}}.layadmin-side-shrink .layui-layout-admin .layui-logo{
    
    width:60px;background-image:url(res/logo.png)}.layadmin-side-shrink .layui-layout-admin .layui-logo span{
    
    display:none}.layadmin-side-shrink .layui-side{
    
    left:0;width:60px}.layadmin-side-shrink .layadmin-pagetabs,.layadmin-side-shrink .layui-layout-admin .layui-body,.layadmin-side-shrink .layui-layout-admin .layui-footer,.layadmin-side-shrink .layui-layout-admin .layui-layout-left{
    
    left:60px}.layadmin-side-shrink .layui-side-menu .layui-nav{
    
    position:static;width:60px}.layadmin-side-shrink .layui-side-menu .layui-nav-item{
    
    position:static}.layadmin-side-shrink .layui-side-menu .layui-nav-item>a{
    
    padding-right:0}.layadmin-side-shrink .layui-side-menu .layui-nav-item cite,.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-item>.layui-nav-child,.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-item>a .layui-nav-more{
    
    display:none;padding:8px 0;width:200px}.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-itemed>a{
    
    background:rgba(0,0,0,.3)}.layadmin-side-spread-sm .layadmin-pagetabs,.layadmin-side-spread-sm .layui-layout-admin .layui-body,.layadmin-side-spread-sm .layui-layout-admin .layui-footer,.layadmin-side-spread-sm .layui-layout-admin .layui-layout-left{
    
    left:0;transform:translate3d(220px,0,0);-webkit-transform:translate3d(220px,0,0)}.layadmin-side-spread-sm .layui-layout-admin .layui-layout-right{
    
    transform:translate3d(220px,0,0);-webkit-transform:translate3d(220px,0,0)}.layadmin-side-spread-sm .layui-side{
    
    transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0)}.layadmin-side-spread-sm .layadmin-body-shade{
    
    display:block}.layadmin-pagetabs .layui-tab-title li:first-child .layui-tab-close,.layadmin-tabs-select.layui-nav .layui-nav-bar,.layadmin-tabs-select.layui-nav .layui-nav-more{
    
    display:none}.layadmin-pagetabs{
    
    height:40px;line-height:40px;padding:0 80px 0 40px;background-color:#fff;box-sizing:border-box;box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.layadmin-pagetabs .layadmin-tabs-control{
    
    position:absolute;top:0;width:40px;height:100%;text-align:center;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box;border-left:1px solid #f6f6f6}.layadmin-pagetabs .layadmin-tabs-control:hover{
    
    background-color:#f6f6f6}.layadmin-pagetabs .layui-icon-prev{
    
    left:0;border-left:none;border-right:1px solid #f6f6f6}.layadmin-pagetabs .layui-icon-next{
    
    right:40px}.layadmin-pagetabs .layui-icon-down{
    
    right:0}.layadmin-tabs-select.layui-nav{
    
    position:absolute;left:0;top:0;width:100%;height:100%;padding:0;background:0 0}.layadmin-tabs-select.layui-nav .layui-nav-item{
    
    line-height:40px}.layadmin-tabs-select.layui-nav .layui-nav-item>a{
    
    height:40px}.layadmin-tabs-select.layui-nav .layui-nav-item a{
    
    color:#666}.layadmin-tabs-select.layui-nav .layui-nav-child{
    
    top:40px;left:auto;right:0}.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this,.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this a{
    
    background-color:#f2f2f2!important;color:#333}.layadmin-pagetabs .layui-tab{
    
    margin:0;overflow:hidden}.layadmin-pagetabs .layui-tab-title{
    
    height:40px;border:none}.layadmin-pagetabs .layui-tab-title li{
    
    min-width:0;line-height:40px;max-width:160px;text-overflow:ellipsis;padding-right:40px;overflow:hidden;border-right:1px solid #f6f6f6;vertical-align:top}.layadmin-pagetabs .layui-tab-title li:first-child{
    
    padding-right:15px}.layadmin-pagetabs .layui-tab-title li .layui-tab-close{
    
    position:absolute;right:8px;top:50%;margin:-7px 0 0;width:16px;height:16px;line-height:16px;border-radius:50%;font-size:12px}.layadmin-pagetabs .layui-tab-title li:after{
    
    content:'';position:absolute;top:0;left:0;width:0;height:2px;border-radius:0;background-color:#292B34;transition:all .3s;-webkit-transition:all .3s}.layadmin-pagetabs .layui-tab-title li:hover:after{
    
    width:100%}.layadmin-pagetabs .layui-tab-title li.layui-this,.layadmin-pagetabs .layui-tab-title li:hover{
    
    background-color:#f6f6f6}.layadmin-pagetabs .layui-tab-title li.layui-this:after{
    
    width:100%;border:none;height:2px;background-color:#292B34}.layadmin-tabspage-none .layui-layout-admin .layui-header{
    
    border-bottom:none;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layadmin-tabspage-none .layui-layout-admin .layui-body{
    
    top:50px}.layadmin-tabspage-none .layadmin-header{
    
    display:block}.layadmin-tabspage-none .layadmin-header .layui-breadcrumb{
    
    border-top:1px solid #f6f6f6}.layui-layout-admin .layui-header{
    
    border-bottom:1px solid #f6f6f6;box-sizing:border-box;background-color:#fff}.layui-layout-admin .layui-header a,.layui-layout-admin .layui-header a cite{
    
    color:#333}.layui-layout-admin .layui-header a:hover{
    
    color:#000}.layui-layout-admin .layui-header .layui-nav .layui-nav-more{
    
    border-top-color:#666}.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{
    
    border-color:transparent transparent #666}.layui-layout-admin .layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{
    
    height:2px;background-color:#20222A}.layui-layout-admin .layui-logo{
    
    background-color:#20222A;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.layui-layout-admin .layui-logo,.layui-layout-admin .layui-logo a{
    
    color:#fff;color:rgba(255,255,255,.8)}.layui-side-menu{
    
    box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layui-layout-admin .layui-footer{
    
    padding:10px 0;text-align:center;box-shadow:0 -1px 2px 0 rgba(0,0,0,.05)}.layadmin-setTheme-side,.layui-side-menu{
    
    background-color:#20222A;color:#fff}.layadmin-setTheme-header,.layui-layout-admin .layui-footer{
    
    background-color:#fff}.layui-tab-admin .layui-tab-title{
    
    background-color:#393D49;color:#fff}.layui-fluid{
    
    padding:15px}.layadmin-header{
    
    display:none;height:50px;line-height:50px;margin-bottom:0;border-radius:0}.layadmin-header .layui-breadcrumb{
    
    padding:0 15px}.layui-card-header{
    
    position:relative}.layui-card-header .layui-icon{
    
    line-height:initial;position:absolute;right:15px;top:50%;margin-top:-7px}.layadmin-iframe{
    
    position:absolute;width:100%;height:100%;left:0;top:0;right:0;bottom:0}.layadmin-carousel{
    
    height:185px!important;background-color:#fff}.layadmin-carousel .layui-carousel-ind li{
    
    background-color:#e2e2e2}.layadmin-carousel .layui-carousel-ind li:hover{
    
    background-color:#c2c2c2}.layadmin-carousel .layui-carousel-ind li.layui-this{
    
    background-color:#999}.layadmin-carousel .layui-carousel,.layadmin-carousel>[carousel-item]>*{
    
    background-color:#fff}.layadmin-carousel .layui-col-space10{
    
    margin:0}.layadmin-carousel .layui-carousel-ind{
    
    position:absolute;top:-41px;text-align:right}.layadmin-carousel .layui-carousel-ind ul{
    
    background:0 0}.layui-card .layui-tab-brief .layui-tab-title{
    
    height:42px;border-bottom-color:#f6f6f6}.layui-card .layui-tab-brief .layui-tab-title li{
    
    margin:0 15px;padding:0;line-height:42px}.layui-card .layui-tab-brief .layui-tab-title li.layui-this{
    
    color:#333}.layui-card .layui-tab-brief .layui-tab-title .layui-this:after{
    
    height:43px}.layui-card .layui-tab-brief .layui-tab-content{
    
    padding:15px}.layui-card .layui-table-view{
    
    margin:0}.layadmin-shortcut li{
    
    text-align:center}.layadmin-shortcut li .layui-icon{
    
    display:inline-block;width:100%;height:60px;line-height:60px;text-align:center;border-radius:2px;font-size:30px;background-color:#F8F8F8;color:#333;transition:all .3s;-webkit-transition:all .3s}.layadmin-shortcut li cite{
    
    position:relative;top:2px;display:block;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:14px}.layadmin-shortcut li:hover .layui-icon{
    
    background-color:#f2f2f2}.layadmin-backlog .layadmin-backlog-body{
    
    display:block;padding:10px 15px;background-color:#f8f8f8;color:#999;border-radius:2px;transition:all .3s;-webkit-transition:all .3s}.layadmin-backlog-body h3{
    
    padding-bottom:10px;font-size:12px}.layadmin-backlog-body p cite{
    
    font-style:normal;font-size:30px;font-weight:300;color:#009688}.layadmin-backlog-body:hover{
    
    background-color:#f2f2f2;color:#888}.layadmin-dataview{
    
    height:332px!important}.layadmin-dataview>[carousel-item]:before{
    
    display:none}.layadmin-dataview>[carousel-item]>div{
    
    height:332px}.layadmin-takerates{
    
    padding-top:5px}.layadmin-takerates .layui-progress{
    
    margin:50px 0 60px}.layadmin-takerates .layui-progress:last-child{
    
    margin-bottom:10px}.layadmin-takerates .layui-progress h3{
    
    position:absolute;right:0;top:-35px;color:#999;font-size:14px}.layadmin-takerates .layui-progress-bar{
    
    text-align:left}.layadmin-takerates .layui-progress-text{
    
    top:-35px;line-height:26px;font-size:26px}.layadmin-news{
    
    height:60px!important;padding:5px 0}.layadmin-news a{
    
    display:block;line-height:60px;text-align:center}.layadmin-news .layui-carousel-ind{
    
    height:45px}.layadmin-list li{
    
    margin-bottom:6px;padding-bottom:6px;border-bottom-color:#f6f6f6;list-style-position:inside;list-style-type:disc;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layadmin-list li a{
    
    color:#666}.layadmin-list li a:hover{
    
    color:#009688}.layadmin-list li:last-child{
    
    border:none;padding:0;margin:0}.layadmin-text p{
    
    margin-bottom:10px;text-indent:2em}.layadmin-text p:last-child{
    
    margin:0}.layadmin-font-em{
    
    font-size:13px;color:#758697}.layui-card-header .layui-a-tips{
    
    position:absolute;right:15px;color:#01AAED}.layuiadmin-card-text{
    
    background-color:#f8f8f8;color:#777;padding:24px}.layuiadmin-card-text .layui-text-top{
    
    padding-bottom:10px}.layuiadmin-card-text .layui-text-top i{
    
    margin-right:10px;font-size:24px;color:#009688}.layuiadmin-card-text .layui-text-top a{
    
    line-height:24px;font-size:16px;vertical-align:top}.layuiadmin-card-text .layui-text-center{
    
    height:44px;line-height:22px;margin-bottom:10px;overflow:hidden}.layuiadmin-card-text .layui-text-bottom{
    
    position:relative}.layuiadmin-card-text .layui-text-bottom a{
    
    color:#777;font-size:12px;text-overflow:ellipsis;word-break:break-all}.layuiadmin-card-text .layui-text-bottom span{
    
    color:#CCC;font-size:12px;position:absolute;right:0}.layuiadmin-badge,.layuiadmin-btn-group,.layuiadmin-span-color{
    
    position:absolute;right:15px}.layuiadmin-card-link a:hover,.layuiadmin-card-team li a:hover,.layuiadmin-card-text a:hover{
    
    color:#01AAED;transition:all .3s}.layuiadmin-card-status{
    
    padding:0 10px 10px}.layuiadmin-card-status dd{
    
    padding:15px 0;border-bottom:1px solid #EEE;display:-webkit-flex;display:flex}.layuiadmin-card-status dd:last-child{
    
    border:none}.layuiadmin-card-status dd div.layui-status-img,.layuiadmin-card-team .layui-team-img{
    
    width:32px;height:32px;border-radius:50%;background-color:#009688;margin-right:15px}.layuiadmin-card-status dd div.layui-status-img a{
    
    width:100%;height:100%;display:inline-block;text-align:center;line-height:32px}.layuiadmin-card-status dd div.layui-status-img img,.layuiadmin-card-team .layui-team-img img{
    
    width:50%;height:50%}.layuiadmin-card-status dd div a{
    
    color:#01AAED}.layuiadmin-card-status dd div span{
    
    color:#BBB}.layuiadmin-card-link{
    
    padding-left:10px;font-size:0}.layuiadmin-card-link a{
    
    display:inline-block;width:25%;color:#666;font-size:14px;margin-bottom:12px}.layuiadmin-card-link button{
    
    vertical-align:top}.layuiadmin-card-link button:hover{
    
    color:#009688}.layuiadmin-card-team li{
    
    padding:10px 0 10px 10px}.layuiadmin-card-team .layui-team-img{
    
    display:inline-block;margin-right:8px;width:24px;height:24px;text-align:center;line-height:24px}.layuiadmin-card-team span{
    
    color:#777}.layuiadmin-badge{
    
    top:50%;margin-top:-9px;color:#01AAED}.layuiadmin-card-list{
    
    padding:15px}.layuiadmin-card-list p.layuiadmin-big-font{
    
    font-size:36px;color:#666;line-height:36px;padding:5px 0 10px;overflow:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap}.layuiadmin-card-list p.layuiadmin-normal-font{
    
    padding-bottom:10px;font-size:20px;color:#666;line-height:24px}.layuiadmin-span-color{
    
    font-size:14px}.layuiadmin-span-color i{
    
    padding-left:5px}.layuiadmin-card-status li{
    
    position:relative;padding:10px 0;border-bottom:1px solid #EEE}.layuiadmin-card-status li h3{
    
    padding-bottom:5px;font-weight:700}.layuiadmin-card-status li p{
    
    padding-bottom:10px}.layuiadmin-card-status li>span{
    
    color:#999}.layuiadmin-home2-usernote .layuiadmin-reply{
    
    display:none;position:absolute;right:0;bottom:12px}.layuiadmin-home2-usernote li:hover .layuiadmin-reply{
    
    display:block}.layuiadmin-page-table td span{
    
    color:#2F4056}.layuiadmin-page-table td span.first{
    
    color:#FF5722}.layuiadmin-page-table td span.second{
    
    color:#FFB800}.layuiadmin-page-table td span.third{
    
    color:#5FB878}.layuiAdmin-msg-detail h1{
    
    font-size:16px}.layuiAdmin-msg-detail .layui-card-header{
    
    height:auto;line-height:30px;padding:15px}.layuiAdmin-msg-detail .layui-card-header span{
    
    padding:0 5px;color:#999}.layuiAdmin-msg-detail .layui-card-header span:first-child{
    
    padding-left:0}.layuiAdmin-msg-detail .layui-card-body{
    
    padding:15px}.layuiadmin-content-bread{
    
    padding-bottom:20px}.layuiadmin-order-progress{
    
    position:relative;top:12px}.layui-card-header.layuiadmin-card-header-auto{
    
    padding-top:15px;padding-bottom:15px;height:auto}.layuiadmin-card-header-auto i.layuiadmin-button-btn{
    
    position:relative;right:0;top:0;vertical-align:middle}.layuiadmin-card-header-auto .layui-form-item:last-child{
    
    margin-bottom:0}.layadmin-setTheme{
    
    padding:15px;overflow-x:hidden}.layadmin-setTheme>h5{
    
    padding:20px 0 10px;color:#000}.layadmin-setTheme>h5:first-child{
    
    padding-top:0}.layadmin-setTheme-color{
    
    width:330px;font-size:0}.layadmin-setTheme-color li{
    
    position:relative;display:inline-block;vertical-align:top;width:80px;height:50px;margin:0 15px 15px 0;background-color:#f2f2f2;cursor:pointer;font-size:12px;color:#666}.layadmin-setTheme-color li:after{
    
    content:'';position:absolute;z-index:20;top:50%;left:50%;width:1px;height:0;border:1px solid #f2f2f2;transition:all .3s;-webkit-transition:all .3s;opacity:0}.layadmin-setTheme-color li.layui-this:after,.layadmin-setTheme-color li:hover:after{
    
    width:100%;height:100%;padding:4px;top:-5px;left:-5px;border-color:#5FB878;opacity:1}.layadmin-setTheme-header{
    
    position:relative;z-index:10;height:10px;border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2}.layadmin-setTheme-side{
    
    position:absolute;left:0;top:0;width:20px;height:100%;z-index:11;box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layadmin-setTheme-logo{
    
    position:absolute;left:0;top:0;width:100%;height:10px;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.layadmin-form-right{
    
    text-align:right}.layadmin-about p{
    
    margin-bottom:10px}.layadmin-menu-list .layui-card-header{
    
    height:50px;line-height:50px;font-size:16px}.layadmin-menu-list .layui-card-header:active{
    
    background-color:#f2f2f2}.layadmin-menu-list .layui-card-header .layui-icon{
    
    position:relative;top:1px;left:0;display:inline-block;margin:0 10px;font-size:18px}@-webkit-keyframes layui-rl{
    
    from{
    
    -webkit-transform:translate3d(100%,0,0)}to{
    
    -webkit-transform:translate3d(0,0,0)}}@keyframes layui-rl{
    
    from{
    
    transform:translate3d(100%,0,0)}to{
    
    transform:translate3d(0,0,0)}}.layui-anim-rl{
    
    -webkit-animation-name:layui-rl;animation-name:layui-rl}@-webkit-keyframes layui-lr{
    
    from{
    
    -webkit-transform:translate3d(0 0,0);opacity:1}to{
    
    -webkit-transform:translate3d(100%,0,0);opacity:1}}@keyframes layui-lr{
    
    from{
    
    transform:translate3d(0,0,0)}to{
    
    transform:translate3d(100%,0,0)}}.layui-anim-lr,.layui-anim-rl.layer-anim-close{
    
    -webkit-animation-name:layui-lr;animation-name:layui-lr}.layadmin-tips{
    
    margin-top:30px;text-align:center}.layadmin-tips .layui-icon[face]{
    
    display:inline-block;font-size:300px;color:#393D49}.layadmin-tips .layui-text{
    
    width:500px;margin:30px auto;padding-top:20px;border-top:5px solid #009688;font-size:16px}.layadmin-tips h1{
    
    font-size:100px;line-height:100px;color:#009688}.layadmin-tips .layui-text .layui-anim{
    
    display:inline-block}@media screen and (max-width:768px){
    
    .layadmin-panel-selection{
    
    margin:0;width:auto}.layui-body .layui-nav .layui-nav-item{
    
    display:block}.layui-layout-admin .layui-body .layadmin-tabsbody-item{
    
    -webkit-overflow-scrolling:touch;overflow:auto}}

log.css

/** layuiAdmin.std-v1.2.1 LPPL License By http://www.layui.com/admin/ */
#LAY_app,body,html{
    
    height:100%}.layui-layout-body{
    
    overflow:auto}#LAY-user-login,.layadmin-user-display-show{
    
    display:block!important}.layadmin-user-login{
    
    position:relative;left:0;top:0;padding:110px 0;min-height:100%;box-sizing:border-box}.layadmin-user-login-main{
    
    width:375px;margin:0 auto;box-sizing:border-box}.layadmin-user-login-box{
    
    padding:20px}.layadmin-user-login-header{
    
    text-align:center}.layadmin-user-login-header h2{
    
    margin-bottom:10px;font-weight:300;font-size:30px;color:#000}.layadmin-user-login-header p{
    
    font-weight:300;color:#999}.layadmin-user-login-body .layui-form-item{
    
    position:relative}.layadmin-user-login-icon{
    
    position:absolute;left:1px;top:1px;width:38px;line-height:36px;text-align:center;color:#d2d2d2}.layadmin-user-login-body .layui-form-item .layui-input{
    
    padding-left:38px}.layadmin-user-login-codeimg{
    
    max-height:38px;width:100%;cursor:pointer;box-sizing:border-box}.layadmin-user-login-other{
    
    position:relative;font-size:0;line-height:38px;padding-top:20px}.layadmin-user-login-other>*{
    
    display:inline-block;vertical-align:middle;margin-right:10px;font-size:14px}.layadmin-user-login-other .layui-icon{
    
    position:relative;top:2px;font-size:26px}.layadmin-user-login-other a:hover{
    
    opacity:.8}.layadmin-user-jump-change{
    
    float:right}.layadmin-user-login-footer{
    
    position:absolute;left:0;bottom:0;width:100%;line-height:30px;padding:20px;text-align:center;box-sizing:border-box;color:rgba(0,0,0,.5)}.layadmin-user-login-footer span{
    
    padding:0 5px}.layadmin-user-login-footer a{
    
    padding:0 5px;color:rgba(0,0,0,.5)}.layadmin-user-login-footer a:hover{
    
    color:rgba(0,0,0,1)}.layadmin-user-login-main[bgimg]{
    
    background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.05)}.ladmin-user-login-theme{
    
    position:fixed;bottom:0;left:0;width:100%;text-align:center}.ladmin-user-login-theme ul{
    
    display:inline-block;padding:5px;background-color:#fff}.ladmin-user-login-theme ul li{
    
    display:inline-block;vertical-align:top;width:64px;height:43px;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;background-color:#f2f2f2}.ladmin-user-login-theme ul li:hover{
    
    opacity:.9}@media screen and (max-width:768px){
    
    .layadmin-user-login{
    
    padding-top:60px}.layadmin-user-login-main{
    
    width:300px}.layadmin-user-login-box{
    
    padding:10px}}

前端内容测试

访问localhost:8080 (spring boot 默认访问static下的index.html)
在这里插入图片描述
访问localhost:8080/index.html
在这里插入图片描述

下文:
SpringBoot+layui实现简单登录(后端+前端联调实现)

猜你喜欢

转载自blog.csdn.net/RoyRaoHR/article/details/124621703