一个系统登录界面的设计(含相关代码)

        为了忘却的纪念,于是乎就把登录界面设计和实现的过程记录下来。

     1.修改档案管理登录界面的起因

        档案管理系统界面上线之前,觉得这样太简单,有点难为情,人家用户信任我们,我们弄给这样没有技术含量的登录界面,也太对不起人了,于是,搜搜一些大型网站的登录界面,后来看到12306网站的登录界面,眼睛一亮:就是它了。

     2.登录界面的设计草图

       根据上面的浏览和研究,决定弄一个类似的登录界面,垂直方向分三栏,具体是:logo区域,登录区域和版权信息,中间的登录区域分左边和右边,左边显示系统介绍和帮助信息,右边为用户登录的界面。画个草图或用Axure把设计的想法表达出来,图显示如下。

    3.登录界面的实现

      根据设计的草图,开始登录界面的实现。

     本次档案管理系统采用了Bootstrap进行前端设计,登录界面也不例外。

    3.1 登录页面整体实现

      新建一个jsp页面文件,命名为:login.jsp,引入jquery‐2.1.1.min.jsbootstrap‐3.3.7,其中bootstrap包含css和js文件,分别是:bootstrap.min.jsbootstrap.min.css,另外引入字体文件:font‐awesome.min.css,整个页面的文件如下:

    程序清单3.1 login.jsp

<%@ page language="java" contentType="text/html; charset=UTF‐8" pageEncoding="UTF‐8"%>
<%@ include file="/include/global.jsp"%>

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf‐8">
 <meta http‐equiv="X‐UA‐Compatible" content="IE=edge,chrome=1">
 <meta name="keywords" content="荆楚理工学院,荆楚理工,荆楚,综合档案管理系统">
 <meta name="description" content="荆楚理工学院综合档案管理系统V1.0">
 <meta name="viewport" content="width=device‐width, initial‐scale=1">

 <title>荆楚理工学院综合档案管理系统V1.0</title>

 <link rel="stylesheet" href="${staticPath }/static/bootstrap‐3.3.7/css/bootstrap.min.css" />
 <link rel="stylesheet" href="${staticPath }/static/css/font‐awesome.min.css">
 </head>

<body>
 <!‐‐ 头部 ‐‐>
 <nav class="navbar" role="navigation">
 <div class="container">

		<div>
logo区域

		</div>
</div>
</nav>
<!‐‐ 登录区域 ‐‐>
<div class="content" id="content">
 <div class="container">
 <div class="row">登录区域
 </div>
</div>
</div>
<!‐‐ 版权信息 ‐‐>
<div class="footer">
 <div class="container">
 <div class="row">
 版权信息
</div>
</div>
</div>
<!‐‐ Javascript:js文件的引入 ‐‐>
<script type="text/javascript" src="${staticPath }/static/js/jquery‐2.1.1.min.js"></script>
<script type="text/javascript" src="${staticPath }/static/bootstrap‐3.3.7/js/bootstrap.min.js"></script>
 
 </body>
</html>

       代码说明:

        1.整个布局采用了Bootstrap中的导航栏navdiv+css布局。

        2.21~27行采用导航栏布局,导航栏nav是使用Bootstrap进行网站设计一个很有用的功能,可用于页面导航、站点logo信息和定义导航样式,比如:可以是按钮、超链接和菜单等形式的导航,是Bootstrap中一个基础的响应式组件。导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开。21行创建导航栏nav,向 <nav> 标签添加 class .navbar,添加role="navigation",有助于增加可访问性。

       3.div+css布局是html5最核心的布局形式,登录页面程序清单3.1 login.jsp,采用了Bootstrap提供的默认的css,主要有:navbarcontentfootercontainerrow

       4.css.navbar代码:       

.navbar {
  position: relative;
  min‐height: 50px;
  margin‐bottom: 20px;
  border: 1px solid transparent;
}
@media (min‐width: 768px) {
  .navbar {
    border‐radius: 4px;
  }
} 

       5.布局容器containerrow

       containerrowcss样式如下:

.container {
  padding‐right: 15px;
  padding‐left: 15px;
  margin‐right: auto;
  margin‐left: auto;
}
@media (min‐width: 768px) {
  .container {
    width: 750px;
  }
}
</body>
</html>
49
50
@media (min‐width: 992px) {
  .container {
    width: 970px;
  }
}
@media (min‐width: 1200px) {
  .container {
    width: 1170px;
  }
}
.container‐fluid {
  padding‐right: 15px;
  padding‐left: 15px;
  margin‐right: auto;
  margin‐left: auto;
}
.row {
  margin‐right: ‐15px;
  margin‐left: ‐15px;
}

        Bootstrap 需要为页面内容和栅格系统提供了.container 容器。有两种样式:.container .container­fluid,由于 padding 等属性的原因,这两种 容器样式类不能互相嵌套。

       .container 类用于固定宽度并支持响应式布局的容器。.container­fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。行(row)必须包含在 .container (固定宽度)或 .container­fluid 100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。

       第223139行采用.container 布局。

        上面图是运行后的界面,很显然还是个雏形,也许连雏形都算不上。

      3.2 创建css文件:style.csslogin.css

        在staticcss文件夹中创建一个login文件夹,在该文件夹中创建两个css文件,分别为:style.css。

程序清单3.2 style.css

* {
    margin: 0;
    padding: 0
}
html, body {
    height: 100%; /* 作为div的父元素 */
    /* background: #1faad6; */
}
body {
    font‐family: 'Roboto', sans‐serif;
    font‐size: 16px;
    font‐weight: 300;
    color: #888;
    line‐height: 30px;
    /* text‐align: center; */
}
.container {
    /* 只有同时为html和body设置height: 100%时,这里才生效, 并且随浏览器窗口变化始终保持和浏览器视窗等高 */
    height: 100%;
    position: relative;
}

        在程序清单3.1中引入style.css,具体语句如下:

        <link rel="stylesheet" href="${staticPath }/static/css/login/style.css">

        程序清单3.3 login.jsp

<%@ page language="java" contentType="text/html; charset=UTF‐8" pageEncoding="UTF‐8"%>
<%@ include file="/include/global.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf‐8">
<meta http‐equiv="X‐UA‐Compatible" content="IE=edge,chrome=1">
<meta name="keywords" content="荆楚理工学院,荆楚理工,荆楚,综合档案管理系统">
<meta name="description" content="荆楚理工学院综合档案管理系统V1.0">
<meta name="viewport" content="width=device‐width, initial‐scale=1">
<title>荆楚理工学院综合档案管理系统V1.0</title>
<link rel="stylesheet" href="${staticPath }/static/bootstrap‐3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" href="${staticPath }/static/css/font‐awesome.min.css">
<!‐‐ 引入登录界面的css ‐‐>
<link rel="stylesheet" href="${staticPath }/static/css/login/style.css">
</head>
<body>
    <!‐‐ 头部 ‐‐>
    <nav class="navbar" role="navigation">
        <div class="container">
            <div>
                logo区域
            </div>
        </div>
    </nav> 
    <!‐‐ 登录区域 ‐‐>
    <div class="container">
        <div class="row">登录区域
        </div>
    </div>     
    <!‐‐ 版权信息 ‐‐>
    <div class="footer">
        <div class="container">
            <div class="row">
                版权信息
            </div>
        </div>
    </div>
    <!‐‐ Javascript:js文件的引入 ‐‐>
    <script type="text/javascript"  src="${staticPath }/static/js/jquery‐2.1.1.min.js"></script>
    <script type="text/javascript"  src="${staticPath }/static/bootstrap‐3.3.7/js/bootstrap.min.js"></script>
</body>
</html>

        运行界面如下:

     3.3 logo区域的设计

       logo区域采用了Bootstrap中的导航navbar组件(设置nav元素为导航条组件)

       程序清单3.4 style.css

* {
    margin: 0;
    padding: 0
}
html, body {
    height: 100%; /* 作为div的父元素 */
    /* background: #1faad6; */
}
body {
    font‐family: 'Roboto', sans‐serif;
    font‐size: 16px;
    font‐weight: 300;
    color: #888;
    line‐height: 30px;
    /* text‐align: center; */
}
.container {
    /* 只有同时为html和body设置height: 100%时,这里才生效, 并且随浏览器窗口变化始终保持和浏览器视窗等高 */
    height: 100%;
    position: relative;
}
/* start:logo区域的css */
.navbar {
    padding‐top: 20px;
    background: #fff;
    background: rgba(51, 51, 51, 0.3);
    border: 0;
    ‐o‐transition: all .3s;
    ‐moz‐transition: all .3s;
    ‐webkit‐transition: all .3s;
    ‐ms‐transition: all .3s;
    transition: all .3s;
}
.navbar.navbar‐no‐bg {
    background: #fff;
}
.navbar‐brand {
    width: 250px;
    height: 60px;
    background: url(../../images/login/logo.png) left center no‐repeat;
    text‐indent: ‐99999px;
}
.header‐welcome {
    float: left;
    height: 50px;
    line‐height: 50px;
    padding‐left: 5px;
    font‐size: 20px;
}
/* end:logo区域结束 */

       login.jsp页面对logo头部修改如下:

       程序清单3.5 login.jsp

<!‐‐ logo头部 ‐‐>
    <nav class="navbar navbar‐no‐bg" role="navigation">
        <div class="container">
            <div class="navbar‐header">
                <a class="navbar‐brand" href="#">综合档案管理系统V1.0</a>
                <div class="header‐welcome">综合档案管理系统V1.0</div>
            </div>
        </div>
    </nav>

运行:

     3.4 登录区域的设计与实现

      3.4.1 登录区域总体布局

       登录区域根据设计图,分左右两栏:左边是系统简介、系统帮助等信息,用户在不登录系统的情况下就可以对系统进行了解,另外,也可以查询一些公共服务的档案信息;右边是用户登录界面。两栏布局采用了Bootstrap的栅格系统,左边8列,右边4列。由于垂直三栏都包含容器container,为了保持其css的一致性,在登录区域这个container容器的外面又增加一个div,用于管理整个登录区域下面的标签,就相当于加了一个相框,里面放不同的照片,都在这个相框之中。该div命名为:login‐content,具体是:<div class="login‐content" id="login‐content">,程序清单3.6 login.jsp是登录区域的总体布局代码。

       程序清单3.6 login.jsp登录区域总体布局代码。

<!‐‐ 登录区域 ‐‐>
    <div class="login‐content" id="login‐content">
        <div class="container">
            <div class="row">
                <div class="col‐sm‐8 text">综合档案管理系统V1.0</div>
                <div class="col‐sm‐4">登录界面</div>
            </div>
        </div>
    </div>

       程序清单3.7 style.csslogin‐content等的css。

/* 登录区主体页面css */
.login‐content {
    padding: 150px 0 180px 0;
    background: #19b9e7
}
/* 登录区左边css */
.login‐content .text {
    padding‐top: 120px;
    color: #fff;
}

       程序清单3.7中,第4行设置整个登录区域的页面背景颜色,后面会讲到用图片来充填。

       运行界面图如下:

       这个界面比之前要好点,有了颜色,慢慢来,一步一步来。

      3.4.2 登录区域左边

      左边用了一个h1标签定义标题,还放了两个div标签,一个div放置了p标签,用于显示系统的简要说明,另一个div放置了按钮,用于导航。具体布局如程序清单3.8,显示了登录区域左边的布局。

       程序清单3.8 login.jsp 登录区域左边布局。

<!‐‐ 登录区域 ‐‐>
    <div class="login‐content" id="login‐content">
        <div class="container">
            <div class="row">
                <div class="col‐sm‐8 text">
                    <!‐‐ 登录区域左边布局 ‐‐>
                    <h1>
                        <strong>荆楚理工学院</strong> 综合档案管理系统V1.0
                    </h1>
                    <div class="description">
                        <p>综合档案管理信息系统依据《档案著录规则》、《文书档案案卷格式》和《归档文件整理规则》等档案法律法规
进行设计,
                            采用开源框架SSM和响应式组件Bootstrap进行开发,
                            实现了对档案进行收集、整理、移交、归档、统计和利用等全过程信息化管理。</p>
                    </div>
                    <div class="top‐big‐link">
                        <a class="btn btn‐link" href="#">系统简介</a>
                        <a class="btn btn‐link" href="#">档案法规</a>
                        <a class="btn btn‐link" href="#">档案查询</a>
                        <a class="btn btn‐link" href="#">系统帮助</a>
                        <a class="btn btn‐link" href="#">关于我们</a>
                    </div>             
                </div>
                <div class="col‐sm‐4">登录界面</div>
            </div>
        </div>
    </div>

       程序清单3.8中所涉及的css,在 style.css中进行了定义,如程序清单3.9

       程序清单3.9 style.css中登录左边区域的css。

/* 登录区左边css */
.login‐content .text {
    padding‐top: 120px;
    color: #fff;
}
.login‐content .text h1 {
    color: #fff;
}
.login‐content .description {
    margin: 20px 0 10px 0;
}
.login‐content .description p {
    line‐height: 2em;  /* 行间距(应该是2倍行间距的意思) */
    text‐indent: 2em; /* 首行缩进2个字 */
    opacity: 0.8;
}
.login‐content .description a {
    color: #fff;
}
.login‐content .description a:hover, .login‐content .description a:focus
    {
    border‐bottom: 1px dotted #fff;
}
.login‐content .top‐big‐link {
    margin‐top: 35px;
}
.login‐content .btn‐link {
    display: inline‐block;
    height: 50px;
    margin: 0 5px;
    padding: 15px 20px 0 20px;
    font‐size: 16px;
    font‐weight: 300;
    line‐height: 16px;
    color: #fff;
    ‐moz‐border‐radius: 4px;
    ‐webkit‐border‐radius: 4px;
    border‐radius: 4px;
}
.login‐content .btn‐link:hover, .btn‐link:focus, .login‐content .btn‐link:active,
    .btn‐link:active:focus {
    outline: 0;
    opacity: 0.6;
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
}

运行:

       左边弄的差不多了,再弄右边吧。

      3.4.3 登录区域右边

      右边是用户真正登录的地方,这个布局放了两个div,第一个div显示用户登录的提示;第二个div放置了表单form标签,form标签放了字体文件的css三个输入框,一个登录按钮,三个输入框分别为:输入用户名的输入框,输入密码的输入框,输入验证码的输入框,显示验证码的标签,具体布局如程序清单3.10

       程序清单3.10 login.jsp右边的布局。

<div class="col‐sm‐4">
                        <div class="form‐top">
                            <div class="form‐top‐center">
                                <h3>用户登录</h3>
                            </div>
                        </div>
                        <div class="form‐bottom">
                            <form method="post" id="loginform" class="registration‐form">
                                <input type="hidden" name="${_csrf.parameterName}"
                                    value="${_csrf.token}" />
                                <div class="form‐group">
                                    <i class="icon‐user icon_font"></i><input type="text"
                                        class="login_input" id="username" name="username"
                                        placeholder="请输入用户名..." required="required" autocomplete="off" />
                                </div>
                                <div class="form‐group">
                                    <i class="icon‐lock icon_font"></i> <input type="password"
                                        class="login_input" name="password" id="password"
                                        placeholder="请输入密码..." required="required" autocomplete="on" />
                                </div>
                                <div class="form‐group">
                                    <i class="icon‐key icon_font"></i> <input class="login_input c"
                                        type="text" name="captcha" required="required"
                                        placeholder="请输入验证码" /> <img id="captcha" alt="验证码"
                                       src="${path }/captcha.jpg" data‐src="${path }/captcha.jpg?t="
                                        style="vertical‐align:middle;border‐
radius:4px;width:94.5px;height:35px;cursor:pointer;">
                                </div>
                                <div class="form‐group">
                                    <!‐‐ <button style="submit" class="login_btn" id="login">登 录</button> ‐‐>
                                    <input type="button" class="login_btn" id="login" value="登  录">
                                </div>
                            </form>
                        </div>
                    </div>

       程序清单3.10中所涉及的css,在 style.css中进行了定义,如程序清单3.11

       程序清单3.11 style.css中登录右边区域的css。

/* 右边登录界面css */
.form‐top {
    overflow: hidden;
    padding: 0 25px 15px 25px;
    background: #fff;
    ‐moz‐border‐radius: 4px 4px 0 0;
    ‐webkit‐border‐radius: 4px 4px 0 0;
    border‐radius: 4px 4px 0 0;
    text‐align: left;
}
.form‐top‐left {
    float: left;
    width: 75%;
    padding‐top: 25px;
}
.form‐top‐center {
    /* float: right; */
    text‐align: center;
    width: 100%;
    padding‐top: 25px;
}
.form‐top‐left h3 {
    margin‐top: 0;
}
.form‐top‐center h3 {
    margin‐top: 0;
}
.form‐top‐right {
    float: left;
    width: 25%;
    padding‐top: 5px;
    font‐size: 66px;
    color: #ddd;
    line‐height: 100px;
    text‐align: right;
}
.form‐bottom {
    padding: 5px 25px 30px 25px;
    background: #fff;
    ‐moz‐border‐radius: 0 0 4px 4px;
    ‐webkit‐border‐radius: 0 0 4px 4px;
    border‐radius: 0 0 4px 4px;
    text‐align: left;
}
.form‐bottom form textarea {
    height: 100px;
}
.form‐bottom form .input‐error {
    border‐color: #19b9e7;
}
.login_btn {
    display: block;
    background: #1faad6;
    color: #fff;
    font‐size: 15px;
    width: 100%;
    line‐height: 50px;
    border‐radius: 3px;
    border: none;
}
.login_input {
    width: 100%;
    border: 1px solid #1faad6;
    border‐radius: 3px;
    height: 40px;
    line‐height: 40px;
    padding: 2px 5px 2px 30px;
    background: none;
    font‐size: 14px;   
    color: #404040;
    background: white;
    margin‐top: 20px;
    ‐moz‐outline‐radius: 3px;
    ‐webkit‐box‐shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12);
    box‐shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12);
}
.c {
    width: 60%;
}
.icon_font {
    position: absolute;
    left: 50px;
    margin‐top: 30px;
    font‐size: 18px;
    color: #1faad6;
}
.font16 {
    font‐size: 18px;
    margin‐top: ‐25px;
}
.login {
    width: 400px;
    height: 265px;
    position: absolute;
    background‐color: white;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
}
/* end:登录区域结束 */

       运行:

      

      终于有点样子了。

    3.5 版权信息的设计与实现

      版权信息比上面的布局要简单一点,程序清单3.12显示了布局的代码。

      程序清单3.12 login.jsp版权信息。

<!‐‐ 版权信息 ‐‐>
    <div class="footer">
        <div class="container">
            <div class="row">
                <p>
                    <span>版权所有©2018</span> <span>荆楚理工学院</span>
                </p>
                <p>
                    <span>荆楚理工学院计算机工程学院开发</span>
                </p>
            </div>
        </div>
    </div>

       程序清单3.12中所涉及的css,在 style.css中进行了定义,如程序清单3.13

       程序清单3.13 style.css中版权信息的css。

/* 版权信息 */
.footer {
  text‐align: center;
  background: #fff;
  color: #c1c1c1;
}
.footer p {
    line‐height: 2em;  /* 2倍行间距 */
    margin:10px 0px 0px 0px;
}

       运行:

       有点小成就了,登录界面弄出来了。在不同的浏览器或不同大小的窗口测试一下。

       在火狐和其实浏览器测试省略。

     4.说明

    (1)把中间登录区的颜色换成图片,或者轮播图

    (2)文档还没有对代码

相关代码

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值