Django Bootstrap card-deck if forloop divisibleby
Django Bootstrap card-deck if forloop divisibleby
我正在尝试使用 bootstrap 卡。但我有问题。
当我添加新的 post 以显示为卡片时,我显示超过 5 个,它们开始挤压。
每次显示超过 5 张卡片时,我都尝试使用 forloop 计数器开始新行。
但我做错了什么。我什么都读,到处都是一样的东西。但我肯定做错了。
<div class="card-deck">
{% for post in post_list %}
{% if forloop.counter0|divisibleby:3 %}
<div class="card border-primary mb-3" style="max-width: 20rem;">
<a href="{% url 'post_detail' post.slug %}">
<img style="height: 200px; width: 100%; display: block;" src="{{ post.thumb.url }}" alt="Card image"></a>
<div class="card-header">Header</div>
<div class="card-body">
<h4 class="card-title">{{ post.title }}</h4>
<p class="card-text">{{post.content|slice:":200" }}</p>
</div>
</div> {% endif %}
</div>
</div> {% endfor %}
Reference image
现在你只能看到每三张牌(因为 "divisibleby:3")。我不太确定你想要实现什么,但如果你想显示所有卡片,有几个选项。其中两个是卡片组(https://getbootstrap.com/docs/4.0/components/card/#card-groups) and card decks (https://getbootstrap.com/docs/4.0/components/card/#card-decks),但是当卡片数量越来越多时,它们确实会变得混乱。我成功使用的一个解决方案是使用 Bootstrap 的网格。当视口较小或卡片数量较多时,卡片将自动换行到下一行。下面的代码应该可以工作(还没有测试过):
div class="container-fluid">
<div class="row">
{% for post in post_list %}
<div class="col-auto">
<div class="card border-primary mb-3">
<a href="{% url 'post_detail' post.slug %}">
<img style="height: 200px; width: 100%; display: block;" src="{{ post.thumb.url }}" alt="Card image">
</a>
<div class="card-header">
Header
</div>
<div class="card-body">
<h4 class="card-title">{{ post.title }}</h4>
<p class="card-text">{{ post.content|slice:":200" }}</p>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
我正在尝试使用 bootstrap 卡。但我有问题。 当我添加新的 post 以显示为卡片时,我显示超过 5 个,它们开始挤压。 每次显示超过 5 张卡片时,我都尝试使用 forloop 计数器开始新行。 但我做错了什么。我什么都读,到处都是一样的东西。但我肯定做错了。
<div class="card-deck">
{% for post in post_list %}
{% if forloop.counter0|divisibleby:3 %}
<div class="card border-primary mb-3" style="max-width: 20rem;">
<a href="{% url 'post_detail' post.slug %}">
<img style="height: 200px; width: 100%; display: block;" src="{{ post.thumb.url }}" alt="Card image"></a>
<div class="card-header">Header</div>
<div class="card-body">
<h4 class="card-title">{{ post.title }}</h4>
<p class="card-text">{{post.content|slice:":200" }}</p>
</div>
</div> {% endif %}
</div>
</div> {% endfor %}
Reference image
现在你只能看到每三张牌(因为 "divisibleby:3")。我不太确定你想要实现什么,但如果你想显示所有卡片,有几个选项。其中两个是卡片组(https://getbootstrap.com/docs/4.0/components/card/#card-groups) and card decks (https://getbootstrap.com/docs/4.0/components/card/#card-decks),但是当卡片数量越来越多时,它们确实会变得混乱。我成功使用的一个解决方案是使用 Bootstrap 的网格。当视口较小或卡片数量较多时,卡片将自动换行到下一行。下面的代码应该可以工作(还没有测试过):
div class="container-fluid">
<div class="row">
{% for post in post_list %}
<div class="col-auto">
<div class="card border-primary mb-3">
<a href="{% url 'post_detail' post.slug %}">
<img style="height: 200px; width: 100%; display: block;" src="{{ post.thumb.url }}" alt="Card image">
</a>
<div class="card-header">
Header
</div>
<div class="card-body">
<h4 class="card-title">{{ post.title }}</h4>
<p class="card-text">{{ post.content|slice:":200" }}</p>
</div>
</div>
</div>
{% endfor %}
</div>
</div>