水平对齐文本行?

时间:2019-04-03 16:10:42

标签: html css

我希望每一行div中的链接都合理,并在页面上居中,这样看起来更整洁(假设下面在页面上居中):

Chrysanthemum.jpg     Desert.jpg     Hydrangeas.jpg
Jellyfish.jpg         Koala.jpg      Lighthouse.jpg
Penguins.jpg          test (1).jpg     test (2).jpg
test (3).jpg          test (4).jpg       Tulips.jpg

它不必看起来完全一样,因为图像名称的长度是可变的,我只是想使其比现在更好:

html:

<div id='image-list'>
        <div class="row">
            <a class="image-link" href="/static/images/Chrysanthemum.jpg"> Chrysanthemum.jpg </a>
            <a class="image-link" href="/static/images/Desert.jpg"> Desert.jpg </a>
            <a class="image-link" href="/static/images/Hydrangeas.jpg"> Hydrangeas.jpg </a>
        </div>
        <div class="row">
            <a class="image-link" href="/static/images/Jellyfish.jpg"> Jellyfish.jpg </a>
            <a class="image-link" href="/static/images/Koala.jpg"> Koala.jpg </a>
            <a class="image-link" href="/static/images/Lighthouse.jpg"> Lighthouse.jpg </a>
        </div>
        <div class="row">
            <a class="image-link" href="/static/images/Penguins.jpg"> Penguins.jpg </a>
            <a class="image-link" href="/static/images/test%20%281%29.jpg"> test (1).jpg </a>
            <a class="image-link" href="/static/images/test%20%282%29.jpg"> test (2).jpg </a>
        </div>
        <div class="row">
            <a class="image-link" href="/static/images/test%20%283%29.jpg"> test (3).jpg </a>
            <a class="image-link" href="/static/images/test%20%284%29.jpg"> test (4).jpg </a> 
            <a class="image-link" href="/static/images/Tulips.jpg"> Tulips.jpg </a>                
        </div>            
    </div>

css:

#image-list{
    display:  flex;
    justify-content: space-around;
}

当前输出,可以工作,但是将所有行都放在同一行上: enter image description here

我也尝试过此CSS:

#image-list.row{
    display:  flex;
    justify-content: space-around;
}

但这只是将所有内容推向左侧,没有看似合理的理由: screenshot here

我在俯视什么或做错什么?我是否必须将div设置为特定宽度,然后以某种方式调整为该宽度?

1 个答案:

答案 0 :(得分:2)

您似乎正在显示表格数据,那么为什么不使用<table>

如果您想要某种响应式布局,则可以将display: tabledisplay: table-cell用于桌面,然后在较小的断点处使用媒体查询还原为display: block

否则,为每个链接定义一个设置宽度将使它们很好地对齐,例如.image-link { width: 33.33%; }

另外,要使弹性项目能够包装而不是在一行上显示,您需要使用#image-list.row { flex-wrap: wrap; }