我想将所有我的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容器?任何提示都会有所帮助。
答案 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