html - 有没有办法根据大小以正确的方式自动放置 div
问题描述
我正在尝试制作一个图片库网站,所以我使用 Flask 作为后端来搜索数据库中的图像这里是代码。
应用程序.py
from flask import Flask
app = Flask('__name__')
.....
.....
@app.route('/')
def index():
images = Image_Table.query.all()
return render_template("index.html", images=images)
索引.html
{% 'extends base.html ' %}
{% block content %}
{% for image in images %}
<div class="gallery">
<img class="image" src="{{ url_for('static', filename='photos/' + image.image_file) }}">
</div>
{% endfor %}
{% endblock %}
这是样式style.css
.gallery {
display: grid;
grid-templates-column: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 10px;
}
.gallery .image {
width:100%;
}
但相反我得到了这个
简而言之,我希望完成那些空白空间。
解决方案
如果您不介意按列绘制图像,可以使用CSS column。
基本上你的 CSS 可以变成:
.gallery {
column-width: 300px;
column-gap: 10px;
}
.gallery img {
width: 100%;
margin-bottom: 10px;
}
<div class="gallery">
<img src=" https://picsum.photos/200/80">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/402">
<img src=" https://picsum.photos/200/102">
<img src=" https://picsum.photos/200/302">
<img src=" https://picsum.photos/200/301">
<img src=" https://picsum.photos/200/201">
<img src=" https://picsum.photos/200/401">
<img src=" https://picsum.photos/200/101">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/300">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/402">
<img src=" https://picsum.photos/200/102">
<img src=" https://picsum.photos/200/302">
<img src=" https://picsum.photos/200/301">
<img src=" https://picsum.photos/200/201">
<img src=" https://picsum.photos/200/401">
<img src=" https://picsum.photos/200/101">
<img src=" https://picsum.photos/200/300">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/300">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/402">
<img src=" https://picsum.photos/200/102">
<img src=" https://picsum.photos/200/302">
<img src=" https://picsum.photos/200/301">
<img src=" https://picsum.photos/200/201">
<img src=" https://picsum.photos/200/401">
<img src=" https://picsum.photos/200/101">
</div>
clamp()
如果您希望在计算列的宽度时更加流畅,您可以暂时使用:
https://developer.mozilla.org/en-US/docs/Web/CSS/clamp()
CSS 函数将
clamp()
一个值限制在上限和下限之间。clamp()
允许在定义的最小值和最大值之间的值范围内选择中间值。它采用三个参数:最小值、首选值和最大允许值。该clamp()
函数可以在任何允许使用<length>
,<frequency>
,<angle>
,<time>
,<percentage>
,<number>
或<integer>
的地方使用。
.gallery {
column-width:300px;/* wherever clamp() is not supported */
column-width: clamp(150px,30vw,300px);
column-gap: 10px;
}
.gallery img {
width: 100%;
margin-bottom: 10px;
}
<div class="gallery">
<img src=" https://picsum.photos/200/80">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/402">
<img src=" https://picsum.photos/200/102">
<img src=" https://picsum.photos/200/302">
<img src=" https://picsum.photos/200/301">
<img src=" https://picsum.photos/200/201">
<img src=" https://picsum.photos/200/401">
<img src=" https://picsum.photos/200/101">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/300">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/402">
<img src=" https://picsum.photos/200/102">
<img src=" https://picsum.photos/200/302">
<img src=" https://picsum.photos/200/301">
<img src=" https://picsum.photos/200/201">
<img src=" https://picsum.photos/200/401">
<img src=" https://picsum.photos/200/101">
<img src=" https://picsum.photos/200/300">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/300">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/400">
<img src=" https://picsum.photos/200/100">
<img src=" https://picsum.photos/200/200">
<img src=" https://picsum.photos/200/402">
<img src=" https://picsum.photos/200/102">
<img src=" https://picsum.photos/200/302">
<img src=" https://picsum.photos/200/301">
<img src=" https://picsum.photos/200/201">
<img src=" https://picsum.photos/200/401">
<img src=" https://picsum.photos/200/101">
</div>
推荐阅读
- c - 如何检查两个可执行二进制文件是否从相同的源代码生成?
- rest - protobuf 是外部微服务的好选择吗?外部微服务是指一些作为 RESTful 端点公开的服务
- ios - 以编程方式将按钮对齐到 UITableView 单元格的左侧
- c# - 水平列表框多行(WPF)
- reactjs - 水平平面列表项相对于屏幕的位置
- python - 在用户定义的环境中更新了 spyder 4.0.1(比如 abc)但是当我在激活 abc 后打开 spyder 时,仍然只打开 spyder 3.3.6
- javascript - Onmouseover 为不同的图像映射播放不同的音频文件
- python - 芹菜有时不会在 docker 中运行
- swift - AVCaptureMovieFileOutput 从不调用屏幕录制的委托
- python - 两个列表之间的向量化距离计算