如何理解vertical-align: -0.125em和vertical-align: middle的区别?

2023-12-08

我看到代码了vertical-align: -0.125em;,并思考它和vertical-align:middle?


vertical-align:middle means

将元素的中间与基线加上父级 x 高度的一半对齐

所以你需要找到middle元素的基线和 x 高度的一半(由ex unit).

这是一个例子:

.box {
  font-size:50px;
  background:
    linear-gradient(green,green) 0 46px/100% 2px no-repeat;
}

.box > span {
  display:inline-block;
  width:30px;
  height:30px;
  background:
    linear-gradient(black,black) center/100% 2px no-repeat,
    linear-gradient(red,red) 0 calc(50% + 0.5ex)/100% 1px no-repeat,
    yellow;
  vertical-align:middle;
}
<div class="box">
Some text j <span></span>
</div>

绿线是基线,span 元素上的黑色线是中间。我们将中间偏移 x 高度的一半(红线)

vertical-align: -0.125em is vertical-align: <length> means

将元素的基线与其父元素基线上方的给定长度对齐。允许负值。

这是考虑偏移量后元素的基线相对于父元素的基线:

.box {
  font-size:50px;
  background:
    linear-gradient(green,green) 0 46px/100% 2px no-repeat;
}

.box > span {
  display:inline-block;
  font-size:20px;
  width:30px;
  height:30px;
  background:
    linear-gradient(black,black) 0 18px/100% 2px no-repeat,
    linear-gradient(red,red) 0 calc(18px - 0.125em)/100% 1px no-repeat,
    yellow;
  vertical-align:-0.125em;
}
<div class="box">
Some text j <span>aq</span>
</div>

请注意,在某些情况下,找到基线有点困难。对于空元素,基线是元素的底部:

.box {
  font-size:50px;
  background:
    linear-gradient(green,green) 0 46px/100% 2px no-repeat;
}

.box > span {
  display:inline-block;
  font-size:20px;
  width:30px;
  height:30px;
  background:
    linear-gradient(red,red) left 0 bottom 0.5em/100% 1px no-repeat,
    yellow;
  vertical-align:-0.5em;
}
<div class="box">
Some text j <span></span>
</div>

如果元素有,它也是底部overflow:hidden

.box {
  font-size:50px;
  background:
    linear-gradient(green,green) 0 46px/100% 2px no-repeat;
}

.box > span {
  display:inline-block;
  overflow:hidden;
  font-size:20px;
  width:30px;
  height:30px;
  background:
    linear-gradient(red,red) left 0 bottom 0.5em/100% 1px no-repeat,
    yellow;
  vertical-align:-0.5em;
}
<div class="box">
Some text j <span></span> <span>aq</span>
</div>

如果我们处理图像或 SVG,它也是底部

.box {
  font-size:50px;
  background:
    linear-gradient(green,green) 0 46px/100% 2px no-repeat;
}

.box > span {
  display:inline-block;
  overflow:hidden;
  font-size:20px;
  width:30px;
  height:30px;
  background:
    linear-gradient(red,red) left 0 bottom 0.5em/100% 1px no-repeat,
    yellow;
  vertical-align:-0.5em;
}

.box > img {
  vertical-align:-0.5em;
}
<div class="box">
Some text j <span></span> <span>aq</span> <img src="https://picsum.photos/id/100/30/30" >
</div>

请注意图像的对齐方式不同,因为em会考虑家长font-size 50px不像span元素会考虑自己的font-size. Use px他们将对齐相同:

.box {
  font-size:50px;
  background:
    linear-gradient(green,green) 0 46px/100% 2px no-repeat;
}

.box > span {
  display:inline-block;
  overflow:hidden;
  font-size:20px;
  width:30px;
  height:30px;
  background:
    linear-gradient(red,red) left 0 bottom 10px/100% 1px no-repeat,
    yellow;
  vertical-align:-10px;
}

.box > img {
  vertical-align:-10px;
}
<div class="box">
Some text j <span></span> <span>aq</span> <img src="https://picsum.photos/id/100/30/30" >
</div>

综上所述,两者之间没有明确的关系middle and -0.125em因为两者都有不同的定义并且不使用相同的引用。在某些特定情况下,两者可能会给出相同的对齐方式,但这并不意味着它们是等效的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何理解vertical-align: -0.125em和vertical-align: middle的区别? 的相关文章

  • CSS - 第一个没有特定类别的孩子

    是否可以编写一个 CSS 规则来选择没有特定类的元素的第一个子元素 example div span class common class ignore span span class common class ignore span sp
  • 如何将元素浮动到水平居中元素的左侧或右侧?

    对于分页 我想使用元素的水平对齐方式 如下所示
  • JavaFX ScrollPane 样式

    我正在尝试在 JavaFX 中创建一个黑白 ScrollPane 我已经创建了一个 CSS 文件 它工作得很好 除了这个小方块 无论我尝试什么 我都无法将其变黑 这是我的 CSS 文件 scroll pane fx background c
  • 具有自定义设计的 ASP.NET 复选框

    有没有办法改变asp net复选框的ui样式 我试过这个 cabeceraCheckBoxNormal background url ig res Default images ig checkbox off gif no repeat c
  • 图表js不显示

    我正在尝试使用 Charts js 创建一个简单的折线图 当我运行下面的代码时 没有出现图表 我究竟做错了什么 我正在关注这个教程http www chartjs org docs latest getting started http w
  • 如何使用 javascript/ASP.NET/CSS 旋转和淡入淡出背景图像

    我需要随机淡入淡出背景图像 这将是一个定时函数 例如每 5 秒一次 我需要使用 ASP NET Javascript CSS 或全部三者来完成此操作 请大家帮帮我 谢谢 Cycle 一个 jQuery 插件 是一个非常灵活的图像旋转解决方案
  • 使用 RGBA 颜色覆盖背景图像,并使用 CSS3 过渡

    今天早些时候我问使用 rgba 背景颜色覆盖背景图像 https stackoverflow com q 17134929 1544337 我的目标是拥有一个带有背景图像的 div 当有人将鼠标悬停在 div 上时 背景图像会覆盖有 rgb
  • :目标选择器不适用于选项标签

    我试图在这里帮助一位 StackOverflow 成员 我发现 CSS target选择器不适用于选项标签 我创建了一个示例来说明使用w3schools 教程 http www w3schools com cssref tryit asp
  • App_offline.htm、CSS、图像和 aspnet_isapi.dll

    因此 我正在开发的网站正在使用 urlrewriting 与 aspnet isapi dll 配合 所有内容都映射到它 我放置了 app offline htm 文件 所有文本均显示 但是 CSS 或图像未提供 我猜测由于通配符映射而不是
  • 滚动视图上的固定按钮

    我目前正在尝试在屏幕右下角的滚动视图上显示一个按钮 但它不起作用 当我滚动视图时按钮会移动 我尝试先插入按钮 但滚动视图位于其上方 class HomePage extends Component loadUserItems this pr
  • CSS - 100% 高度,带页眉和页脚

    我正在尝试设计一个带有页眉 延伸至 100 垂直景观 减去页眉和页脚 的主 div 和页脚的页面 就像这张照片 我可以让标题和主 div 正常工作 像这样 div div class header div HEADER div div cl
  • 正常显示截断的文本,但悬停时显示完整文本

    我有一个 div 里面有一段左右的文本 我希望它正常显示前几个单词 但在悬停时展开以显示全文 理想情况下 我想仅使用 CSS 来完成此操作 而不需要重复数据 这是我尝试过的 div 1 ONE div
  • 如何使用标准 JavaScript 在 CSS 转换结束后立即重新启动它?

    我构建了一种密码生成器 只要倒计时到期 它就会显示新密码 不幸的是 我只设法弄清楚如何运行我的代码一次 倒计时由一个简单的 CSS 过渡组成 我想保留它 因为它比我的其他尝试平滑得多 其中我尝试使用 JavaScript 重复更新宽度 va
  • 使用非常大的背景位置偏移是否存在性能问题?

    我正在构建一个进度条控件 并且正在研究它实际上并不显示进度 而只是旋转 正在发生某事 的指示器的情况 我的设计基本上是交替的对角条纹 本质上是一个像这样的理发杆 但是 旋转 由于希望将尽可能多的负载转移给渲染引擎 我想为此使用 CSS 过渡
  • CSS 内边框?

    我纯粹用 CSS 创建了左侧的按钮 它是一个div 中的一个div 然而 右侧的三个按钮是background属性于img标签 我这样做是为了按照以下说明模拟翻转效果here http kyleschaeffer com best prac
  • 如果 CSS 是渲染阻塞的,为什么我们会看到 FOUC?

    为了构建渲染树 浏览器需要 DOM 和 CSSOM CSSOM 只有在下载 CSS 后才能构建 本质上 一旦下载了 CSS 页面就应该可以正常渲染了 但是 为什么我们会在页面上看到 Flash Of Unstyled Content FOU
  • CSS如何制作可滚动列表

    我正在尝试创建一个由标题和标题下方的项目列表组成的网页 我希望项目列表可以垂直滚动 我还希望网页占据整个窗口 但不要更大 目前我的问题是项目列表不可滚动 而是延伸到窗口底部下方很远 这导致窗口可滚动 应该做什么CSS属性位于html bod
  • 如何将两个 span 元素一个向左对齐,另一个向右对齐?

    我有两个 span 要素 span style margin right auto 2012 XYZ Corp All Rights Reserved span span style margin left auto Built with
  • 在“onClick”上切换 DIV 高度

    我想切换分区的高度 我尝试过将 animate 与 if else 语句一起使用 但它只会反弹 我现在使用的代码将隐藏我的分区而不是切换高度 点击时会触发 document ready function content1 toggle fu
  • 伪元素的元素类型是什么?

随机推荐

  • 从 Mysql DB 填充 JFreechart TimeSeriesCollection?

    我正在尝试在我的应用程序中制作一个图表 该图表可以返回几个月内各天的温度 该图表是 JFreechart TimeSeriesCollection 我无法让该图表从数据库读取正确的数据 它显示了一些值 但不是全部 并且不显示正确的时间 为了
  • 为什么 gc() 不释放内存?

    我在一个上运行模拟Windows 64 位计算机 with 64 GB 内存 内存使用达到55 完成模拟运行后 我通过以下方式删除工作空间中的所有对象rm list ls 后面跟着一个double gc 我认为这将为下一次模拟运行释放足够的
  • 如何使用特定网络接口(或特定源 IP 地址)进行 Ping?

    根据这个链接 使用 System Net NetworkInformation 有没有办法将 ping 绑定到特定接口 ICMP 不能绑定到网络接口 与基于套接字的东西不同 ICMP 不是基于套接字的 ping 将根据路由表发送到适当的端口
  • 列表视图滚动不平滑

    我有一个自定义列表视图 显示用户和照片 我从 API 检索数据 它提供 JSON 输出 我的问题是列表视图滚动不顺畅 它挂起一秒钟并滚动 它重复相同的操作直到我们到达末尾 我认为这可能是因为我正在 UI 线程上运行与网络相关的操作 但即使在
  • 实体框架能否在保存时自动将日期时间字段转换为 UTC?

    我正在使用 ASP NET MVC 5 编写一个应用程序 我要存储在数据库中的所有日期时间必须首先从本地时区转换为 UTC 时区 我不确定在请求周期内最好的地方在哪里 我可以在控制器中通过 ViewModel 规则后将每个字段转换为 UTC
  • JS 中的猜数字游戏

    我想创建一个数字游戏 用户输入 1 100 之间的数字 脚本将尝试猜测 10 次用户的输入 如果猜对的数字在 10 以内 则用户获胜 否则用户获胜 到目前为止 我让它正常工作 除了我在尝试让它显示游戏结束时的猜测数量时遇到问题 例如 如果进
  • 如何使用模型/视图/控制器方法制作 GUI?

    我需要理解模型 视图 控制器方法背后的概念以及如何以这种方式编写 GUI 这只是一个非常基本 简单的 GUI 有人可以向我解释如何使用 MVC 重写这段代码吗 from tkinter import class Application Fr
  • 使用 Button Jupyter Notebook 终止循环?

    我想要 从串口读取 无限循环 当按下 STOP 按钮时 gt 停止读取并绘制数据 From 如何通过按键终止 while 循环 我以使用键盘中断为例 这有效 但我想使用一个按钮 键盘中断示例 weights times open port
  • 将 ACE 与 WT 结合使用

    UPDATE 3最终工作代码如下 您需要 src 文件夹中的 ace js 它无法从库中运行 您需要从他们的站点获得预打包版本 WText editor new WText root editor gt setText function n
  • 在 Kubernetes Python 客户端中使用 create_namespaced_secret API

    我必须创建一个像这样的秘密 但是使用Python kubectl create secret generic mysecret n mynamespace from literal etcdpasswd echo n PASSWORD ba
  • 为什么我的坐标区对象的 ButtonDownFcn 回调在绘制某些内容后停止工作?

    我正在图中创建一组轴并为其分配回调 ButtonDownFcn 像这样的财产 HRaxes axes Parent Figure Position 05 60 9 35 XLimMode manual ButtonDownFcn HR Bu
  • 在 unicode 中填充“o”字符或通过 CSS 模仿

    我需要用 HTML 编写此文本 我尝试使用一些 unicode 字符 例如Unicode字符集 黑圈 U 25CF or Unicode字符集 黑色大圆圈 U 2B24 但它们需要一些样式 即尺寸与实际尺寸不同 o 并且在某些系统和字体上显
  • 如何更改 stackplot、matplotlib 的调色板?

    我希望更改 stackplot 的调色板 使大区域具有浅色 较小区域具有明亮颜色 import numpy as np import pandas as pd import matplotlib pyplot as plt import s
  • 循环总结大于 R 中主题的观察结果

    我有一个看起来像这样的数据集 set seed 100 da lt data frame exp c rep A 4 rep B 4 diam runif 8 10 30 对于数据集中的每一行 我想总结大于特定行中的直径并包含在级别 exp
  • 如何在空手道中使用特定于环境的测试数据

    我想知道在各种环境中执行测试时如何在运行时使用不同的数据集 我已阅读文档 但无法找到针对这种情况的最佳解决方案 要求 在 QA 环境中执行测试 然后在 SIT 中执行相同的测试 但是 在请求中使用不同的数据 例如 customerIds 这
  • 如何在AngularJS中渲染之前编译过滤器的结果

    我有一个网络应用程序 用户可以在其中输入 富文本 内容 tinymce 并可能输入超链接 在我的角度应用程序中 我使用 ng bind html unsafe 在 div 中渲染它以保留所有格式 我想将 ng click 附加到该内容中的任
  • 哪个事件被触发? (javascript,输入字段历史记录)

    我有一个空的文本字段 但是当您单击它时 它会显示以前输入的一些建议 如果我用鼠标选择其中一个 JavaScript 事件 会触发哪个 JavaScript 事件 我正在使用 jquery 1 6 2 来绑定侦听器 view textRegi
  • 如何从 tfrecords 目录创建 tf.data.dataset?

    我的数据集有不同的目录 每个目录对应一个类 每个目录中有不同数量的 tfrecord 我的问题是如何从每个目录中采样 5 个图像 每个 tfrecord 文件对应一个图像 我的另一个问题是如何对其中 5 个目录进行采样 然后从每个目录中采样
  • MS Access - Docmd.OpenReport

    我正在尝试打开一个包含两个日期 dateFrom 和 dateTo 之间的日期字段的报告 该日期字段来自表单中的文本框 共享的尝试不会起作用 第一个 因为日期应该以特定方式格式化 YYYY MM DD 或 MM DD YYYY 并用 值 而
  • 如何理解vertical-align: -0.125em和vertical-align: middle的区别?

    我看到代码了vertical align 0 125em 并思考它和vertical align middle vertical align middle means 将元素的中间与基线加上父级 x 高度的一半对齐 所以你需要找到middl