Django模板全宽CSS

时间:2018-06-27 21:53:43

标签: html css django templates

我想将所有我的Category元素并排放置,但是由于某种原因,我在彼此之间有两个元素,在那之后新的一行开始了,在左边我仍然有很多空间... < / p>

css

.category {
    float: left;
    width: 40%;
    margin-right: 3.33333%;
    margin-bottom: 3.33333%;
    padding: 15px;
    text-align: center;
    box-sizing: border-box;
    background: radial-gradient(white, white, whitesmoke);
    border-radius: 3%;

}

.categorycover {
    height: 100px;
    -webkit-box-reflect: below 8px -webkit-gradient(linear, right top, right bottom, from(transparent), to(rgba(255, 255, 255, 0.2)));
}

模板

{% block content %}
    {% for category in object_list %}
        <div>
            <span class="category">
                <img class="categorycover" src="/media/{{ category.cover }}">
                <h1>{{ category.title }}</h1>
                <p>{{ category.post_set.count }}Posted element(s)</p>
                <p>{{ category.description|readmore:10|linebreaksbr}}</p>
            </span>
        </div>
    {% endfor %}
{% endblock %}

我是否必须在其上放置100%页面宽度的div容器?任何提示都会有所帮助。

1 个答案:

答案 0 :(得分:0)

我可能会提供另一种方法。充分利用Flexbox的功能,使物品完美地排成一排。

{% block content %}
    {% for category in object_list %}
        <div class="container">
            <span class="category">
                <img class="categorycover" src="/media/{{ category.cover }}">
                <h1>{{ category.title }}</h1>
                <p>{{ category.post_set.count }}Posted element(s)</p>
                <p>{{ category.description|readmore:10|linebreaksbr}}</p>
            </span>
        </div>
    {% endfor %}
{% endblock %}

您的样式将如下所示:

.container{
display:flex;
flex-direction: row;
justify-content: space-around; #or space-evenly
}
.category{
    padding: 15px;
text-align: center;
box-sizing: border-box;
background: radial-gradient(white, white, whitesmoke);
border-radius: 3%;
}

父容器的flexbox样式将为您解决对齐问题以及页边距的问题。水平或垂直对齐div中的项目时,它的效果非常好。有关可以使用的其他样式,请参见本文:A Complete Guide to Flexbox