html - 如何让行内元素展开到行高

标签 html css block

让我们考虑这个 block 元素:

<div style="background-color: gray; line-height: 30px;">
    Some text and a <a style="background-color: yellow;">link<\a>
<\div>

为什么黄色没有占据线条的全部高度?我该如何解决?

此外,如果我在此行上放置一个内联 block ,它会扩展到该行的整个高度。为什么在这种情况下?

编辑

经过深思熟虑,我想我已经回答了我的一些问题:

首先,内联元素的宽度和高度不受 line-height 属性的影响,因此 <a> 的黄色区域的大小。元素。其次,inline-block 元素之所以看起来会扩展到 line-height,是因为它们继承了父元素的 line-height 属性。因此,当我在内联 block 元素中写入一些文本时,该文本的行高等于其父元素。 inline-block 的高度扩展,以便它获得其中的所有内容(= 文本的行高)。这可以通过创建一个没有文本和定义宽度的行内 block 来验证。在这种情况下,根本不会有黄色区域,因为行内 block (与任何 block 元素一样)在为空时的高度为 0。

所以,我想让内联元素(例如 <a><span> 等)的高度等于 line-height 的正确方法是将其更改为 inline-block 元素。或者还有别的办法吗?

既然这一切都是我的直觉,有人能给我一些证实吗?

最佳答案

您可以将显示属性设置为内联 block :

样式元素

<style>

#your_dive {
    background-color: gray;
    line-height: 30px;
}

#your_anchor {
    diskplay: inline-block;
    background-color: yellow;
}

</style>

HTML 元素

<div id="your_dive">
    Some text and a <a id="your_anchor">link</a>
</div>

关于html - 如何让行内元素展开到行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20698004/

相关文章:

css - Rails Assets 位于子目录中,无法在生产环境中加载

iOS 阻止自省(introspection)

javascript - jQuery $(document).ready 错误阻止页脚脚本

html - 如何将多个 Struts 文本字段以一种形式放置到 4 个单独的 block 中?

html - 带有一行复选框的 ionic 头像图片

javascript - wow.js 发生在页面加载时而不是滚动时

C# 阻止非托管代码的线程

ruby - 在 block /lambda 中产生问题

html - 将网站嵌入 iframe 并隐藏某些元素

javascript - 页面加载时的插件和 html - 元素遍布各处的瞬间