CSS2.1第10.6.1节规定:
内容区域的高度应基于字体,但是此 规范未指定 。UA可以例如使用字体的em-box或最大升序和降序。
内联不可替换框的垂直填充,边框和边距从内容区域的顶部和底部开始, 与 “ line-
height”
无关 。
然后,在10.8行高计算中遵循似乎矛盾的语句:
线框的高度确定如下:
和:
用户代理必须通过其相关基准使未替换的嵌入式框中的字形彼此对齐…。
内联框的高度将所有字形及其两边的前导部分包围起来, 因此正好是行高”
在这里,我有些不完全了解。
内联级别框 的高度等于line-height
它们上设置的属性(最小是line-height
在父 块html" target="_blank">容器元素
上设置的属性),还是仅由字体高度(和UA实现)确定?
编辑
只是为了避免造成混淆(因为有很多与此相关的帖子):
inline-level element
的内容高度等于它包含的字体(以及UA实现)10.6.1
,但10.8.1
其中指出的高度inline-level box
等于的高度line-height
编辑:
为了避免“基于意见”的接近投票,我更改了标题。我认为规范不矛盾,我也不是在征求其他人的意见是否也相互矛盾。
我意识到它 实际上并不 矛盾,我只是试图理解它的含义(鉴于其措辞)。
内联级别框的高度是否等于其上设置的line-height属性(最小值是在父块容器元素上设置的line-height),
是的。
还是仅由字体高度(和UA实现)确定?
不,不是
CSS实际上是关于盒子的,而不是元素的,并且您应该尽量不要混淆两者。
因此,一个内联元素与之关联了许多盒子。内容框,填充框,边框和边距框。它 还有
零(如果display:none
),一个或多个内联框。内容框,内边距,边框和边距可以在内联框之间划分,以便内联内容可以分布在多行上。
内联 盒子
的高度是由调整后的内容高度领先。领导在这里发挥了魔力。前导定义为元素的行高减去该内联框的内容高度。
简单地重新排列方程式就可以告诉我们,内联框的高度仅取决于行高,而不取决于内容框(或填充,边框,边距框)。
请注意,以上内容都没有讨论行框,这又是另一回事,而不是内联元素或其框的直接属性。通过将出现在同一行上的内联框排列成它们的垂直对齐方式来构造该行框,以使其垂直对齐适合为元素计算的规则,包括由撑杆形成的零宽度内联框。
每个行框都由该行框包含的最上面的内嵌框的顶部和最下面的内嵌框的底部限制。
题外话:为什么线框的高度会令人惊讶。
假设我们有一个包含块的简单情况,它只包含一个简短的内联元素(即足够短,以至于它适合单个行框)。 还假设一切都在基线上对齐。假设在包含框上将line-
height设置为20px,并且inline元素继承了该高度。还假设包含块的字体大小(em-
square)为16px,这意味着字体度量计算得出的上升(基线以上)为14px,下降(基线以下)为4px。
因此,支撑的内容区域高(14px + 4px =)18px。
行高为20像素,因此领先2像素,在上升上方1像素,在下降下方1像素。因此,撑杆的线高由基线上方的15px和基线下方的5px组成。
现在,假设inline元素的font-size设置为0.5em(即包含块的一半)。内联元素的内容区域将是7px的上升和2px的下降。行高仍为20px,因此行距为20px-(7px+2px)=11px,这意味着5.5px在上升上方,而5.5px在下降下方。这导致内联元素的行高由基线上方12.5px和基线下方7.5px组成。
由于strut和inline元素垂直于基线对齐,因此,最上面的inline框(strut)的顶部比基线高15px,最下面的inline框(inline元素)的底部比基线低7.5px,则线框的实际高度不是20px,而是(15px + 7.5px =)22.5px。
问题内容: 我是SQL新手,遇到了一个奇怪的问题。所以我有两个表OFFERS和SUPPLIER。这是供应商表。 这是OFFERS表。 所以现在,当我尝试像这样向offers表添加外键约束时 我收到一条错误消息:“ ORA-01735:无效的ALTER TABLE选项”。如果我删除最后一行,即“ ON UPDATE CASCADE”,则可以正常工作。那么,我在做什么错呢?我在互联网上看到了很多类似的
问题内容: 我在某处读过该元素的行为类似于两者。如果正确,可以有人举例说明吗? 问题答案: 的确,它们都是-或更确切地说,它们是“内联块”元素。这意味着它们像文本一样内联地流动,但也像块元素一样具有宽度和高度。 在CSS中,您可以设置一个元素以使其复制图像的行为*。 图像和对象也被称为“已替换”元素,因为它们本身不具有内容,因此该元素实际上被二进制数据替换。 *请注意,浏览器在技术上使用(如在开发
CloudGate高级规则需要通过配置格式导入! 规则列表 规则名称 下载地址 Surge https://async.be/Rule/JSON/Surge Shadowrocket https://async.be/Rule/JSON/Shadowrocket A.BIG.T https://async.be/Rule/JSON/A.BIG.T Potatso https://async.be/
阅读本指南之前,请确保已阅读 关联指南. 让我们从 User 和 Profile 之间的多对多关系示例开始. const User = sequelize.define('user', { username: DataTypes.STRING, points: DataTypes.INTEGER }, { timestamps: false }); const Profile = sequ
问题内容: html CSS 我想在我将display:inline属性添加到css中后,立即以其原始高度和宽度(在css中设置)并排显示两个div,它似乎失去了先前定义的高度和宽度。[用#1和#2检查divs似乎松动了高度和宽度设置] 有人可以指出我似乎正在做的错误或此怪异行为的解决方法吗? 问题答案: 内联对象没有高度或宽度。为什么要先将它们设置为内联?您可能想要浮动它们或使用它们。
问题内容: 我最近一直在尝试找出何时适合使用s。它们似乎比仅一个元素有用得多。实际上,内联块元素似乎能够执行块元素可以做的任何事情,但是要有一些额外的样式。 与的元素有什么区别吗?(除了一个更长的事实?) 问题答案: 您所说的完全正确:“内联块元素似乎能够执行块元素可以做的任何事情,但要有一些额外的样式。” 这主要是由于两者的共同点是它们都是块容器。 但是,有一个陷阱。 块框参与块格式化上下文,内