【问题标题】:Why images overflow inline-block?为什么图像会溢出内联块?
【发布时间】:2020-07-23 18:58:18
【问题描述】:

HTML:

<div id="content">
    <div class="card">
        <span class="card-title">Album</span>
        <div class="card-content">
            <img class="album-thumbnail" src="a.jpg">
            <img class="album-thumbnail" src="b.jpg">
            <img class="album-thumbnail" src="c.jpg">
            <img class="album-thumbnail" src="d.jpg">
        </div>
    </div>
</div>

CSS:

.card {
    background-color: white;
    margin: 0 2em 2em 0;
    display: inline-flex;
    flex-direction: column;
    padding: 1.5em;
    border: 1px solid black;
}

.card-content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-content: flex-start;
    max-height: 300px;
}

.album-thumbnail {
    width: 150px;
    margin: 1px;
}

在浏览器中,我可以看到两列图像,但卡片内容的宽度在第一列结束处结束。是什么原因造成的,我该如何解决? 这是它目前的样子:

【问题讨论】:

    标签: html css image flexbox inline


    【解决方案1】:

    因为您在此代码部分中有 display 的重复项:

    .card {
        background-color: white;
        margin: 0 2em 2em 0;
        display: flex;
        flex-direction: column;
        padding: 1.5em;
        border: 1px solid black;
    
        display: inline-block;
    }
    

    删除此行display: inline-block;,它应该可以正常工作。这是applied solution问题的副本jsfiddle

    这是检查了您的元素的屏幕截图:

    如果您不希望列周围有空格,您应该删除的另一件事是 align-items: center; 在类 .card-content 中。

    打开更新的小提琴以查看更改。

    【讨论】:

    • 我没有注意到,我设置了两次显示,但删除最后一个并不能解决问题,因为我希望该 div 的宽度适合其内容的宽度。
    • @AdriánSopár 到底是哪个 div?我已经用屏幕截图更新了我的问题。您的卡片 div 确实占据了整个宽度,但它的填充为 24px,如果您希望它占据整个宽度,只需删除填充。提问时请尽可能具体
    • 这是我想要的东西,但看起来不像这样。我更新了我的问题,让你看到问题。
    • @AdriánSopár 你在我的答案中打开了我为你提供的 js fiddle 吗?它从字面上解决了这个问题......
    • 我已经打开了,但这不是我需要的。我不希望列周围有空间。
    猜你喜欢
    • 2018-05-29
    • 2020-06-02
    • 2017-03-05
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多