Django v4x博客集成TailwindCSS v4时3列网格布局失效求助
问题分析与解决
问题出在网格容器的位置——你把grid grid-cols-3的容器写在了{% for post in posts %}循环内部,每遍历一篇文章就生成一个独立的3列网格,但每个网格里只有一个文章元素,所以每篇文章都会单独占满一行,最终呈现纵向排列的效果。
正确的做法是把网格容器放到循环外面,让所有文章都作为同一个网格容器的子元素,这样Tailwind的3列网格规则才会生效,文章会横向排列,填满一行后自动换行。
修正后的代码如下:
{% block content %} <div class="border-8 border-purple-900"> <h1>Articles</h1> <div class="grid grid-cols-3 gap-4"> <div>01</div> <div>02</div> <div>03</div> <div>04</div> <div>05</div> <div>06</div> <div>07</div> <div>08</div> <div>09</div> </div> <!-- 把网格容器移到循环外面 --> <div class="grid grid-cols-3 gap-1"> {% for post in posts %} <div class="border-4 border-black"> <article> <h1 class="text-2xl font-semibold"> <a href="{% url 'blog:blog_detail' post.slug %}">{{ post.title }}</a> </h1> <h4>{{ post.created_at.date }}</h4> <!-- <p>{{ post.author }}</p> --> <div>{{ post.content | slice:":50" }}...</div> </article> </div> {% endfor %} </div> </div> {% endblock %}
这样修改后,所有文章都会被包裹在同一个3列网格容器里,按照grid-cols-3的规则横向排列,每一行显示3篇文章,之后自动换行到下一行。
内容的提问来源于stack exchange,提问作者user3125823
相关产品推荐
相关产品推荐

