html - 链接与子元素的高度不同

标签 html css

我有一个包含 2 个子元素的元素,一个是文本容器,另一个是图像。元素后有一个空格。我使用了 inspect element 并且空格属于链接,但对我来说 ii 没有意义。我是 Web 开发的新手,所以请不要对我太苛刻。

jsfiddle:https://jsfiddle.net/semfa64e/ 这是移动设备优先的设计,因此您可能应该缩小结果窗口。

HTML:

<div class="item">
    <a href="#">
        <div class="item-content">
            <h3>Item title</h3>
            <p>Item description lorem ipsum dolor sit amet contrectetur</p>
        </div>
        <img src="http://lorempixel.com/200/300" alt="img" />
    </a>
</div>

<div class="item">
    <a href="#">
        <div class="item-content">
            <h3>Item title</h3>
            <p>Item description lorem ipsum dolor sit amet contrectetur</p>
        </div>
        <img src="http://lorempixel.com/200/300" alt="img" />
    </a>
</div>

CSS:

.item {
    width: 100%;
    height: auto;
}

.item-content {
    position: absolute;
    text-align: center;
    color: #fff;
    width: 80%;
    margin-top: 90%;
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    transition: all .2s ease-in-out;
}

a:hover .item-content {
    opacity: 1;
    margin-top: 20%;
    background-color: rgba(24, 24, 24, .7);
}

img {
    width: 100%;
    height: auto;
}

最佳答案

在你的<a>里面有一些空白(空格),空白有一个 4px chrome 中的高度和宽度...

那么是什么导致了这个问题呢?
<img>叫做replaced element ,它将被数据(二进制)替换,因此它基本上表现得像文本并让 block 具有额外的高度。 https://html.spec.whatwg.org/multipage/rendering.html#replaced-elements

  1. 添加vertical-align: middle;<img>

  2. 添加display: block;<img>

  3. 添加display: flex;<a>

引用:

  1. https://css-tricks.com/fighting-the-space-between-inline-block-elements/
  2. HTML 5 strange img always adds 3px margin at bottom

关于html - 链接与子元素的高度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631866/

相关文章:

html - 扩展文本框以填充它可用的空间

css - 使用 CSS 创建方格背景

javascript - 无法在函数内的警报中使用变量

javascript - 如何使用 iframe 而不是 ajax 重新加载网页的一部分?

java - Selenium Java 如何定位元素问题?

javascript - 如何在 Javascript 中更改复选框的边框颜色

javascript - 如何使用keyarrows在javascript中获取元素的焦点

html - 嵌套 div 在框模型外应用边距

javascript - 通过 Dom 查询时 Last child is null 错误

html - 水平导航栏显示为垂直