Django - Bootstrap响应式布局

Bootstrap的响应式设计

在这里插入图片描述

修改博客列表页面

  • 使用 bootstrap 里面带标题的面板
<div class="panel panel-default">
  <div class="panel-heading">Panel heading without title</div>
  <div class="panel-body">
    Panel content
  </div>
</div>

博客列表页面

在blog App 里面创建一个static, 用来存储此App用的静态文件, 把li标签前面的小圆点去掉, 创建了一个blog_type.css文件, 然后在html文件里面引入此文件.
blog_list.html

{% extends 'base.html' %}

{% block title %}个人博客网站{% endblock %}
{% block nav_blog_active %}active{% endblock %}

{% load staticfiles %}
{% block head %}
    <link rel="stylesheet" href="{% static 'blog/css/blog_type.css' %}">
{% endblock %}

{% block content %}
    <div class="container">
        <div class="row">
            <div class="col-sm-9">
                 <div class="panel panel-default">
                    <div class="panel-heading">博客列表 (一共有{{ blogs | length }}篇博客)</div>
                    <div class="panel-body">
                        {% for blog in blogs %}
                            <div class="blog">
                                <h3>
                                    <a href="{% url 'blog_detail' blog.id %}">
                                        {{ blog.title }}
                                    </a>
                                </h3>
                                <p class="blog-info">
                                    <span class="glyphicon glyphicon-tag"></span> <a href="{% url 'blog_with_type' blog.blog_type.pk %}">{{ blog.blog_type }}</a>
                                    <span class="glyphicon glyphicon-time"></span> {{ blog.created_time | date:"Y-m-d" }}
                                </p> 
                                <p>{{ blog.content|truncatechars:50 }}</p>
                            </div>
                        {% empty %}
                            <div class="blog">
                                <h3> 暂无博客,敬请期待 </h3>
                            </div>
                        {% endfor %}
                    </div>
                </div>
            </div>

            <div class="col-sm-3 hidden-xs">
                <div class="panel panel-default">
                    <div class="panel-heading">博客分类</div>
                    <div class="panel-body">
                        <ul class="blog-types">
                            {% for blog_type in blog_types %}
                                <li>
                                    <a href="{% url 'blog_with_type' blog_type.pk %}">
                                        {{ blog_type.type_name }}
                                    </a>
                                </li>
                            {% empty %}
                                <li>暂无分类</li>
                            {% endfor %}
                        </ul>
                    </div>
                </div>
            </div>
        </div>
    </div>
{% endblock %}

设置样式

/* 设置小圆点不显示 */
.blog-types {
    list-style-type: none
}
/* 设置外边距,内边距和边框, 最后一个元素不设置 */
.blog:not(:last-child) {
    margin-bottom: 2em;
    padding-bottom: 1em;
    border-bottom: 1px solid #eee;
}
.blog h3 {
    margin-top: 0.5em;
}

博客详情页

{% extends 'base.html' %} 
{% block title %} {{ blog.title }} {% endblock %} 
{% block nav_blog_active %}active{% endblock %}

{% load staticfiles %}
{% block head %}
    <link rel="stylesheet" href="{% static 'blog/css/blog_content.css' %}">
{% endblock %}

{% block content %}
    <div class="container">
        <div class="row">
            <div class="col-xs-10 col-xs-offset-1">
                <p>作者: {{ blog.author }}</p>
                <p>创建时间: {{ blog.created_time | date:"Y-m-d H:n:s" }}</p>
                <p>分类:
                    <a href="{% url 'blog_with_type' blog.blog_type.pk %}">
                        {{ blog.blog_type }}
                    </a>
                </p>
                <p class="blog-content">{{ blog.content }}</p>
            </div>
        </div>
    </div>
{% endblock %}

设置样式

.blog-types {
    list-style-type: none
}
.blog:not(:last-child) {
    margin-bottom: 2em;
    padding-bottom: 1em;
    border-bottom: 1px solid #eee;
}
.blog h3 {
    margin-top: 0.5em;
}

div.blog p.blog-info {
    margin-bottom: 0;
}

.blog-content {
    width: 100%;
    height: auto;
    word-wrap:break-word;
    word-break:break-all;
    overflow: hidden;
    text-indent: 2em;
}
.blog-info-description {
    list-style-type: none;
    margin-bottom: 5px;
}
.blog-info-description li {
    display: inline-block;
    margin-right: 10px;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本门课程重实战,将基础知识拆解到项目里,让你在项目情境里学知识。 这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能用在哪、能怎么用。 平时不明白的知识点,放在项目里去理解就恍然大悟了。   一、融汇贯通 本视频采用了前后端分离的开发模式,前端使用Vue.js+Element UI实现了Web页面的呈现,后端使用Python 的Django框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。   二、贴近实战 本系列课程为练手项目实战:学生管理系统v4.0的开发,项目包含了如下几个内容:项目的总体介绍、基本功能的演示、Vuejs的初始化、Element UI的使用、在Django中实现针对数据的增删改查的接口、在Vuejs中实现前端增删改查的调用、实现文件的上传、实现表格的分页、实现导出数据到Excel、实现通过Excel导入数据、实现针对表格的批量化操作等等,所有的功能都通过演示完成、贴近了实战   三、课程亮点 在本案例中,最大的亮点在于前后端做了分离,真正理解前后端的各自承担的工作。前端如何和后端交互   适合人群: 1、有Python语言基础、web前端基础,想要深入学习Python Web框架的朋友; 2、有Django基础,但是想学习企业级项目实战的朋友; 3、有MySQL数据库基础的朋友  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值