网站搭建 (第04天) 导航栏与页脚

一、前言

  经过观察可以发现,基本上每个网站都会有一个叫导航栏的东西,其目的就是为了方便用户找到自己查看的页面。导航栏可以自己制作,但我选择的方法是使用Bootstrap框架,还有给每个网页都添加一段导航栏代码会显得特别冗余,所以这里还涉及到一个模板继承的知识点,我将模板继承知识写在了Django入门: (第八天) 模板定义与继承,方便查阅。

  那么有了模板继承的知识以后,就可以给整个站点设计一个公共的代码部分-导航栏,将模板页面加入到路径中,修改settings.py文件,设置TEMPLATES的DIRS值。

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],

二、引入bootstrap

  做完上面这一步,接下来一个知识点就是静态文件的处理,它包括css,js,图片,这些都属于静态文件,那么同样,静态文件处理部分内容也在Django入门: (第十一天) 处理静态文件详细说明,这里我给出我的路径。

base.css文件存放路径   /mainsite/static/blog/css/base.css
bootstap文件存放路径   /mainsite/static/bootstrap-3.3.7

  将这些都准备工作都做好以后,就可以开始编写base.html页面了,因为引入了静态资源处理,就需要在base.html开头处加上

{% load static from staticfiles %}

  静态文件需要在head标签引入:

<link rel="stylesheet" href="{% static ‘blog/css/base.css‘ %}">
<link rel="stylesheet" href="{% static ‘bootstrap-3.3.7/css/bootstrap.min.css‘ %}">
<script type="text/javascript" src="{% static ‘bootstrap-3.3.7/js/bootstrap.min.js‘ %}"></script>

三、导航栏样式

  现在可以编写body体内的代码了,主要是用到bootstap框架,简单的介绍也在移动端库和框架,不过还是建议查看bootstap的文档:Bootstrap中文文档,内部介绍的更为详细还有例子解释,在组件的右边有导航栏的使用方法,这个都可以根据自己需要的功能自行分析添加,所以我就直接贴出我的导航栏部分代码。

<div class="navbar navbar-default navbar-fixed-top" role="navigation">
      <div class="container_fluid">
          <div class="navbar-header">
              <a class="navbar-brand" href="{% url ‘blog:blog‘ %}">蒋振飞的博客</a>
              <button class="navbar-toggle collapsed nav_bar" data-target="#navbar-collapse" data-toggle="collapse">
              {#  <span class="sr-only"></span>#}
                   <span class="icon-bar"></span>
                   <span class="icon-bar"></span>
                   <span class="icon-bar"></span>
              </button>
          </div>
          <div id="navbar-collapse" class="collapse navbar-collapse">
               <ul class="nav navbar-nav base_head">
                   {# 博客首页 #}
                   <li class="{% block nav_home_active %}{% endblock %}">
                       <a href="{% url ‘blog:home‘ %}"><span class="glyphicon glyphicon-home">博客首页</span></a>
                   </li>
                   {# 博客列表 #}
                   <li class="{% block nav_blog_active %}{% endblock %}">
                       <a href="{% url ‘blog:blog‘ %}"><span class="glyphicon glyphicon-pencil">博客列表</span></a>
                   </li>
                   {# 博客分类 #}
                   <li class="{% block nav_category_active %}{% endblock %}">
                       <a href="{% url ‘blog:category_list‘ %}"><span class="glyphicon glyphicon-file">博客分类</span></a>
                   </li>
                   {# 日期归档 #}
                   <li class="{% block nav_date_active %}{% endblock %}">
                       <a href="{% url ‘blog:date_list‘ %}"><span class="glyphicon glyphicon-book">日期归档</span></a>
                   </li>
                   {# 关于我 #}
                   <li class="{% block nav_about_active %}{% endblock %} hidden-sm">
                       <a href="{% url ‘user:about‘ %}"><span class="glyphicon glyphicon-education">关于我</span></a>
                   </li>
               </ul>

                {# 搜索框 #}
               <form method=‘get‘ class="navbar-form navbar-left" action="/search/">
                   <div class="form-group search_box">
                       <input type="text" name="q" class="form-control" placeholder="搜点啥?">
                   </div>
                   <button type="submit" class="hidden-sm btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
               </form>
          </div>
     </div>
</div>

  这是我的导航栏排布,可以根据功能自己添加相应的模板页面和功能处理,其中用户登录和注册留到后面介绍用户操作再作解释。

四、页脚样式

  导航栏已添加成功,那么还缺少页脚功能,如关于本站信息和网站备案号等。页脚其实有很多种方法,而且注意不是将页脚完全固定到窗口底部一直显示,而是可以跟随滚动条滚动。我使用的是position定位的方法,还有一种叫做负margin的方法,比如说下面这个是一个html文件的导航栏,内容,页脚。

<body>

    <div class=‘header‘></div>
    <div class=‘container‘></div>
    <div class=‘footer‘></div>

</body>

  在使用position定位的时候,注意要将body采用绝对定位,而且padding-bottom的高度一定要大于页脚内容的高度。

body{
    min-height:100%;
    position:absolute;
    padding-bottom: 30px; /*需要 >= footer的height值*/
}

.footer{
    height:30px;
    position:absolute;
    bottom:0px;
}

  以下是我的页脚代码:

<div class="footer">
    <div class="website-info">

        <div class="about">
            <h4>关于本站</h4>
            <p>1.基于Django+Bootstrap开发</p>
            <p>2.主要发表本人的技术笔记与随笔</p>
            <p>3.本站于2018-5-30开始建站</p>
        </div>

        <div class="response hidden-xs">
            <h4>建议反馈</h4>
            <p>1.欢迎注册评论</p>
            <p>2.可在相应的博文底下评论</p>
            <p>3.发邮件到[email protected]</p>
        </div>

        <div class="contact hidden-xs hidden-sm">
            <h4>欢迎联系</h4>
            <p> <img src="{% static ‘blog/media/qq.ico‘ %}" alt="qq">:1378482556</p>
            <p><img src="{% static ‘blog/media/github.ico‘ %}" alt="github">:<a href="https://github.com/XiaoFei-97">https://github.com/XiaoFei-97</a></p>
        </div>

    </div>

    <div class="copyright">
        <span>Welcome to visit my website © Jack Jiang</span>
        <span class="hidden-xs"><a href="http://www.miibeian.gov.cn/" target="_blank">赣ICP备18008471号</a></span>
    </div>

</div>

  ?导航栏与页脚部分base.css如下:

body{
    margin-top: 50px!important;
    background-color: #4cae4c;
    margin-bottom: 2em;
    font-size: 2em;
    min-height:100%;
    position:absolute;
    width: 100%;
    padding-bottom: 10em;
}

.footer{
    width: 100%;
    position: absolute;
    bottom: 0;
}

.website-info{
    overflow: hidden;
    background-color: #e7e7e7;
    padding-left: 10%;
}

.website-info h4{
    padding-bottom: 3px;
    color: #424242;
    font-weight: bold;
    border-bottom: 1px solid #aaa;
}

.about, .response, .contact{
    float: left;
    margin-right: 10%;
    margin-left: 2% ;
    font-size: 0.75em;
}

.about p, .response p, .contact p{
    margin-bottom: 0.2em;
}

.copyright{
    text-align: center;
    padding: 0.5em 0;
    background: #4F5893;
    color: #e7e7e7;
    bottom: 10em;
}

.copyright a{
    color: #fff;
    margin-left: 1em;
}

.copyright a:hover{
    color: cyan;
}

原文地址:https://www.cnblogs.com/djcoder/p/10744985.html

时间: 2024-10-11 04:07:45

网站搭建 (第04天) 导航栏与页脚的相关文章

HTML5开发移动web应用—JQuery Mobile(2)-导航栏和页脚

导航栏部分的代码一般放置在data-role为header的div的内. <div data-role="header"> <a href="#" data-role="button" data-icon="home">首页</a> <h1>欢迎访问我的主页</h1> <a href="#" data-role="button&qu

iOS开发项目篇—04添加导航栏的按钮

iOS开发项目篇—04添加导航栏的按钮 一.设置导航栏的按钮 要求实现的效果:             说明:默认状态下和高亮状态下的图片是不一样的. 按钮的图片需要设置默认状态和高亮状态时的显示,系统了提供的下面方法 viewController.navigationItem.leftBarButtonItem=[UIBarButtonItem alloc]initWithImage:<#(UIImage *)#> style:<#(UIBarButtonItemStyle)#>

iOS开发项目—04添加导航栏的按钮

iOS开发项目—04添加导航栏的按钮 一.设置导航栏的按钮 要求实现的效果:             说明:默认状态下和高亮状态下的图片是不一样的. 按钮的图片需要设置默认状态和高亮状态时的显示,系统了提供的下面方法 viewController.navigationItem.leftBarButtonItem=[UIBarButtonItem alloc]initWithImage:<#(UIImage *)#> style:<#(UIBarButtonItemStyle)#>

基于Mint UI开发VUE项目一之环境搭建和头部底部导航栏的实现

一:简介 Mint UI 包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要.通过它,可以快速构建出风格统一的页面,提升开发效率.真正意义上的按需加载组件.可以只加载声明过的组件及其样式文件,无需再纠结文件体积过大.考虑到移动端的性能门槛,Mint UI 采用 CSS3 处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验.依托 Vue.js 高效的组件化方案,Mint UI 做到了轻量化.即使全部引入,压缩后的文件体积也仅有 ~30kb (JS + CSS

web导航栏点击跳转后的样式

搭建web网页的导航栏时,需要有点击某导航页面跳转后,被点击的<a>标签样式添加或改变(bootstrap只能实现页面不刷新的点击效果),网上查阅了很多,终于解决了问题,豁然开朗的同时也小总结一下: ps:以下为摘录百度知道,并非本人原创,而我用的便是其中第二种方法. 方法有很多,大体可分为三种: 一.在服务器端判断当前页面隶属于哪一个分类,然后对其进行高亮化,这个高亮化的方法也有很多,相信不是你要的,不一一讲解: 二.每一个页面这个导航条都在各自的页面内,那么独立对其分配class或者行内样

Bootstrap&lt;基础十七&gt;导航栏

导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏在您的应用或网站中作为导航页头的响应式基础组件.导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开.在 Bootstrap 导航栏的核心中,导航栏包括了站点名称和基本的导航定义样式. 默认的导航栏 创建一个默认的导航栏的步骤如下: 向 <nav> 标签添加 class .navbar..navbar-default. 向上面的元素添加 role="navigation",有助

Bootstrap导航栏实例讲解

导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏是响应式元组件就,作为应用程序或网站的导航标题.导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开.在 Bootstrap 导航栏的核心中,导航栏包括了为站点名称和基本的导航定义样式. 1.默认的导航栏创建一个默认的导航栏的步骤如下: 向 <nav> 标签添加 class .navbar..navbar-default(白底黑字),navbar-inverse(黑底白字) 向上面的元素添加 ro

双击导航栏自动滑动ListView到顶部

有些app都实现了双击导航栏让页面的list自动滑动到顶部的feature. 先实现一个继承于OnTouchListener的监听多次点击事件的监听器,通过callback把连续点击的次数返回给客户代码,代码见gist:MultiTouchListener.java. https://gist.github.com/Viyu/d06eda19f9bcf7223f6b 然后给导航栏添加下面这个OnTouchListener的实现: OnMultiTouchListener mOnMultiTouc

JavaScript网站设计实践(二)实现导航栏当前所选页面的菜单项高亮显示

一.(一)中的代码还可以修改的地方. 在(一)中,如果是运行在服务器下,如apache等,可以把head和navigation的div抽取出来,放置在另一个html文件里,然后在页面中,include进来.这样,当要对导航栏进行修改时,只需要修改一个文件,而不用修改所有相关的页面文件.不过,我这里没有这样做,没有抽取出来. 二.实现当前页面的标识+不同页面的head头部背景图片的改变 现在在(一)实现的基础之上,来实现导航栏当前所选页面的菜单项高亮显示,让访问者一路了然知道"我正在这里"