css - 图像占据了两个图像之间不必要的填充和边距或空间

标签 css margin padding

我希望 .img-menu 内的粉红色框内的所有图像都在一行中,但即使边距和填充为 0,第三张图像也会低于。额外空间的原因是什么?另外,我希望粉红色框 (.img-menu) 与列表项正确对齐。 JSfiddle-https://jsfiddle.net/zLuw50h4/


HTML

<div class="sub">
    <div class="sub-menu">
        <ul class="menu">
                <h3>Header</h3>

            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
        </ul>
    </div>
    <div class="img-menu">
        <ul class="img-ul">
            <li class="img-menu-list"> <a href=""> <img src="https://placehold.it/250x140" alt=""> </a> 
            </li>
            <li class="img-menu-list"> <a href=""> <img src="https://placehold.it/250x140" alt=""> </a> 
            </li>
            <li class="img-menu-list"> <a href=""> <img src="https://placehold.it/250x140" alt=""> </a> 
            </li>
        </ul>
    </div>
</div>

CSS

    .sub {
        position: absolute;
        background: skyblue;
        width: 1000px;
        height: 200px;
    }
    .sub-menu {
        width: 250px;
    }
    .sub-menu li {
        float: left;
        width: 48%;
        background: blue;
        margin: 0 0 2% 2%;
    }
    .img-menu {
        width: 700px;
        background: pink;
        float: right;
        margin: 0;
        padding: 0;
    }
    .img-ul {
        margin: 0;
        padding: 0;
    }
    .img-menu-list {
        display: inline-block;
        margin: 0;
        padding: 0;
    }
    .img-menu-list a img {
        width: 70%;
        margin:0;
        padding:0;
    }

最佳答案

要将图像排成一条直线,请将 width/max-width 添加到每个 li 而不是每个 img,例如

.img-menu-list {
    display: inline-block;
    max-width: 175px;  /* same as 70% of 250px */
    margin: 0;
    padding: 0;
}
.img-menu-list a img { }

如果您希望图像列表位于文本菜单项旁边,那么我建议更改您的 HTML 结构,例如

<div class="sub">
    <div class="sub-menu">
        <h3>Header</h3>
        <ul class="menu">
            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
            <li class="menu-item">Some Text</li>
        </ul>
        <div class="img-menu">
            <ul class="img-ul">
                <li class="img-menu-list"> <a href=""> <img src="https://placehold.it/250x140" alt=""> </a> 
                </li>
                <li class="img-menu-list"> <a href=""> <img src="https://placehold.it/250x140" alt=""> </a> 
                </li>
                <li class="img-menu-list"> <a href=""> <img src="https://placehold.it/250x140" alt=""> </a> 
                </li>
            </ul>
        </div>
    </div>
</div>

关于css - 图像占据了两个图像之间不必要的填充和边距或空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32371232/

相关文章:

css - 在 IE7 中水平对齐 div,无垂直堆叠

html - 无法为 .png 图像使用动画

html - 相邻背景色 div 之间不需要的 "margin"

html - CSS min-height 添加到子元素的底部边距

android - listview - 以编程方式为 listview 的项目设置负边距

c - 为什么 __last__ 元素需要 c struct 填充

html - 更改 Flexbox HTML 中内容的填充

没有脚本的 jQuery 导航菜单切换

html - 为什么使用 translateY 使 div 居中可以在桌面浏览器上工作,而不能在 iOS Safari 上工作?

html - 如何识别页面顶部的这个奇怪的空白区域?