You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bootstrap卡片中截断长文本?Django+CSS实现

解决Bootstrap Card长文本拉伸布局问题,用Django截断过滤器实现文本省略

我用Bootstrap的Card组件展示日志内容,正常状态下显示效果良好,但当日志内容过长时,卡片会被拉伸得很长,破坏页面布局。想要实现长文本自动截断并以“...”结尾的效果,例如“今天是个好日子。我从编程开启一天,然而我发现我...”。

原始HTML代码

<div class = "container mt-4 mb-4">
    <div class="center_journal">
        <div class="col">
            <div class="row">
                {% for journal in journals %}
                <div class="card d-flex flex-column col-4 " style="width: 36rem;">
                    <h5 class="card-title text-center mt-4"><a href="{% url 'journal_detail' journal.id %}" >{{ journal.title }}</a></h5>
                    {% if journal.photo %}
                    <img src="{{ journal.photo.url }}" class="card-img-top" alt="...">
                    {% endif %}
                    <div class="card-body">
                        {% if journal.audio %}
                        <audio controls>
                            <source src="{{ journal.audio.url }}" type="audio/ogg">
                            <source src="{{ journal.audio.url }}" type="audio/mpeg">
                            <source src="{{ journal.audio.url }}" type="audio/wav">
                            Your browser does not support the audio element.
                        </audio>
                        {% endif %}
                        <p class="card-content text-center">{{ journal.content }}</p>
                        <p class="text-center font-weight-light">Created on {{ journal.date_created|date:'Y-m-d H:i' }}</p>
                        {% if journal.favourite %}
                        <div class="text-center font-weight-light">
                            <p>Added to Favourite!</p>
                        </div>
                        {% endif%}
                        <!-- <div class="text-center">
                            <a href="{% url 'journal_detail' journal.id %}" ><button class=" btn btn-outline-info">View</button></a>
                        </div> -->
                    </div>
                </div>
                {% endfor %}
            </div>
        </div>
    </div>
</div>

解决方案

使用Django内置的truncatewords过滤器,修改展示日志内容的<p>标签代码:

<p class="card-content text-center">{{ journal.content | truncatewords:10}}</p>

其中10代表保留10个单词后截断,可根据实际需求调整数值,实现长文本自动截断并添加“...”的效果,彻底解决卡片被拉伸的布局问题。

内容的提问来源于stack exchange,提问作者lilsnow02

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:14:55