Bootstrap开发
是一个很好用的页面布局。实在好用,我在http://4440271.blog.51cto.com/4430271/1663863
中使用的就是boostrap的模板
下载:http://v3.bootcss.com/getting-started/
这里,我用在:bbs_pro项目中的登陆页面来说明其用法,在这一部分中所介绍的内容均在前端,后端的部分略去,详细参考关于项目的解说部分:http://4440271.blog.51cto.com/4430271/1663863
在bbs_pro项目中,我们选择:http://v3.bootcss.com/examples/navbar-static-top/
作为基本样式,所有代码均在这个基础上改动。
最总,我们所做的bbs_pro的基本页面,index.html 样式如下图:
登陆页面login.html 的显示为:
由此可以看出,登陆页面与index页面导航部分的样式是相同的,因此,登陆页面与index页面存在继承的关系,具体来看一下各部分是如何完成的:
首先,应当添加所需的css样式:
这里重点说一下customize.css这个文件,它是从虎嗅网中取出的对bbs正文栏的阴影样式,在虎嗅网中找到表示阴影部分的代码拷贝下来,放到customize.css文件中
.center-container-hx,.footer {
box-shadow: 2px 0 5px rgba(214, 214, 215, 0.9), -2px 0 5px rgba(214, 214, 215, 0.9);
}
/*.contents{margin-top: 20px;}*/
/*.container-hx {width:1000px;margin:0 auto;z-index:10;height:100%;text-align: left}*/
.contents {margin-top:20px;}
/** {word-wrap:break-word;}*/
/*.comments{*/
/*width:70%*/
/*}*/在index中的引入如图:
相应的,在customize.css中
下面给出index页面部分的代码,
<!DOCTYPE html>
<!-- saved from url=(0048)http://v3.bootcss.com/examples/navbar-fixed-top/ -->
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="http://v3.bootcss.com/favicon.ico">
<title>Fixed Top Navbar Example for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/static/css/navbar-fixed-top.css" rel="stylesheet">
<!--从虎嗅网中导入的带阴影的边框,代码保存在/static/css/customize.css中-->
<link href="/static/css/customize.css" rel="stylesheet">
<!-- Just for debugging purposes. Don‘t actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top"><!--导航标签-->
<div class="container"> <!-- 导航的logo -->
<div class="navbar-header"><!--导航的头部分-->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">抽屉</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav"> <!--导航栏中的内容-->
<li class="active"><a href="/">全部</a></li>
{% for category in bbs_category %}
{% ifequal category.id cate_id %}
<li class="active"><a href="/category/{{ category.id }}/">{{ category.name }}</a></li>
{% else %}
<li class=""><a href="/category/{{ category.id }}/">{{ category.name }}</a></li>
{% endifequal %}
{% endfor %}
</ul>
<ul class="nav navbar-nav navbar-right"> <!--登陆设置,在最右端的下拉菜单-->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{% if user.is_authenticated %}
{{ user.username }}
{% else %}
登陆
{% endif %}
<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="/login/">Login</a></li>
<li><a href="/logout/">Logout</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<!--虎嗅网中的样式-->
<div class="container center-container-hx"> <!-- 放置可重用的数据-->
<!---------------------------------------------------------------------------------------->
<!--下面的代码为动态页面,此页面为母版,其他网站可以重用block中的数据,只要继承母版即可-->
{% block page-content %}
<!-- Main component for a primary marketing message or call to action -->
<ul class="nav nav-pills navbar-right" role="tablist">
<li role="presentation" class="active">
<a href="/bbs_pub/">发帖</a>
</li>
</ul>
<br/>
<hr>
<div class="contents">
{% for bbs in bbs_list %}
<!--论坛首页链接标题-->
<a href="/detail/{{ bbs.id }}">{{ bbs.title }}</a><!--点击标题跳转到bbs_detail.html-->
<br>
{{ bbs.summary }}
<br>
<hr>
{% endfor %}
</div>
{% endblock %}
<!--------------------------------------------------------------------------------------->
</div> <!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="/static/js/jquery-2.1.1.min.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
</body></html>在登录页面中,继承了{%block xxxxxx%}……{%endblock%}之外的内容
在登录页面中,我们借用了http://v3.bootcss.com/examples/signin/
中的样式
查看网页代码,可以截取form中的内容,如图:
我们看到,这里用到from-signin的样式,但是我们的样式中没有这个样式,查看代码引入的样式,可以看到:
点击框中的文件,可以看到这段css文件的代码,将其拷贝到:
少做修改:
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #eee;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="text"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}这样,就可将这个样式引入到我们的login.html中
因为login.html继承自index.html,要写明继承关系,然后在{%block%}中填写login的代码。具体代码如下:
<link href="/static/css/signin.css" rel="stylesheet">
{%extends ‘index.html‘%}
{% block page-content%}
<div class="container">
<form action=‘/acc_login/‘ class="form-signin" method=‘POST‘>
{# <input type=‘text‘ name=‘username‘ />#}
{# <input type=‘password‘ name=‘password‘ />#}
{##}
{# <input type=‘submit‘ value=‘Login‘ />#}
<h2 class="form-signin-heading">Please sign in</h2>
<label for="in" class="sr-only">Username</label>
<input type="text" name="username" class="form-control" placeholder="Username" required>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="password" class="form-control" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
{# <input type=‘submit‘ value=‘Sign in‘ />#}
<span style=‘color:red‘>{{login_err}}</span>
</form>
</div>
{%endblock%}加上bbs_pro的后台代码,就可以的到如前面所给出的显示。
本文出自 “thystar” 博客,请务必保留此出处http://4440271.blog.51cto.com/4430271/1663934
原文:http://4440271.blog.51cto.com/4430271/1663934