css - 如果两个同级内联元素用垂直对齐标记,那么作为基线的字体是什么?
问题描述
据我了解,将inline-block元素相对于文本字体的基线vertical-align
对齐。当inline-block元素有一个文本兄弟时,这是有道理的,这样我们就知道用作基线的字体大小是多少。
但是如果兄弟不是文本,而是另一个inline-block元素呢?采用基线的文本字体是什么?
例如:
<div style="padding: 8px 16px; background-color: green">
<div style="display:inline-block;font-size:18px;vertical-align:text-top">Hello</div>
<div style="display:inline-block;font-size:72px;vertical-align:text-top">Help</div>
</div>
这里到底发生了什么?底线是什么?
解决方案
从规范:
以下值仅对父内联元素或父块容器元素的支柱有意义。
和
在内容由行内元素组成的块容器元素上,'line-height' 指定元素内行框的最小高度。最小高度由基线上方的最小高度和基线下方的最小深度组成,就像每个行框都以具有元素字体和行高属性的零宽度行内框开始一样。我们称那个假想的盒子为“支柱”。(这个名字的灵感来自 TeX。)。
所以就好像我们的容器内总是有一种宽度为 0 的文本来定义基线。
.box {
background:linear-gradient(red,red) 0 22px/100% 1px no-repeat;
}
.box > * {
outline:1px solid;
}
With text
<div style="padding: 8px 16px; background-color: green" class="box">
BASELINE
<div style="display:inline-block;font-size:18px;vertical-align:text-top">Hello</div>
<div style="display:inline-block;font-size:72px;vertical-align:text-top">Help</div>
</div>
without text (the reference is the same)
<div style="padding: 8px 16px; background-color: green" class="box">
<div style="display:inline-block;font-size:18px;vertical-align:text-top">Hello</div>
<div style="display:inline-block;font-size:72px;vertical-align:text-top">Help</div>
</div>
推荐阅读
- python - 在 Django 视图中出现错误:“NoReverseMatch at /view/”
- java - 调用异步方法时发生意外错误
- html - 如何通过在调用 API 时从服务器接收到的动态传递 id 来使用键和值设置 http 选项中的参数
- flask - 如何在不使用 FLASK_WTF 的情况下将 form1 中的下拉列表中的值传递给多个不同的表单/多个不同的烧瓶句柄
- node.js - 如何在节点中使用 mongoose 将多个属性插入 mongodb?
- python - 1次迭代后函数不调用
- c# - 无法在 .Net 标准类库中加载文件或程序集“Newtonsoft.Json”
- node.js - 使用 nodeJS Express 从文件夹中获取项目
- amazon-web-services - 如何在 serverless.yml 文件中引用 lambda 名称?
- python - Django 图像文件处理