我感到困惑line-height
的inline
元素。
但是我不确定我是否理解。我知道如果将display:inline-block转换为block,我可以使高度正确。但是我试图理解的是行高内联元素是如何工作的。这里是问题:
我有一段文字,font-size: 15px
但是如果看到浏览器的开发人员工具,它将显示18px
。为什么?该font-size
只是aproximate?还是不能衡量起伏?
为什么背景色inline
元素不具有相同的height
比line-height
?的line-height
在inline
元件测量线箱的空间,即空间的上方和下方的线,而不是inline
元素本身。那是解释吗?
CSS:
#block-element {
font-family: 'verdana', sans-serif;
font-size: 15px;
line-height: 15px;
text-decoration: none;
color: black;
margin: 0;
background-color: grey;
}
#inline-element {
-webkit-box-sizing: border-box;
font-family: 'verdana', sans-serif;
font-size: 15px;
line-height: 15px;
text-decoration: none;
color: black;
margin: 0;
background-color: green;
}
<div id="block-element">
<a id="inline-element" href="#">
inline element font-size:15px but height:18px real
</a>
</div>
这可能会造成混淆,因为在内联格式模型中,高度是不同的。
内联框的高度
的元素会display: inline
生成一个内联框:
一个 行内框 是一个既行内和其内容参与其含有内嵌格式化的内容。display
值为的不可替换元素将inline
生成一个内联框。
并line-height
确定该盒子]的高度:
内联框的高度将所有字形及其两边的前导部分包围起来,因此正好是“行高”
因此,您的盒子实际上15px
很高。
线盒高度
还有线框:
在内联格式设置上下文中,框从一个包含块的顶部开始以一个接一个的水平排列。这些框之间应注意水平边距,边框和填充。这些框可以以不同的方式垂直对齐:它们的底部或顶部可以对齐,或者其中的文本基线可以对齐。包含形成线的框的矩形区域称为
线框 。
线框的高度由“ 线高计算 ”部分中给出的规则确定。
如果一个行框仅包含非替换的行内框与同line-height
和vertical-align
,那些规则说,行框的高度由下式给出line-height
。
因此,就您而言,这也是15px
。
内联框内容区域的高度
但是,您的浏览器的开发人员工具说18px
。那是因为那18px
是内容区域的高度。这也是由绿色背景绘制的内容区域(以及填充)。
请注意,这些18px
可能会有所不同,因为CSS2.1没有指定算法:
内容区域的高度应基于字体,但是此规范未指定如何。UA可以例如使用字体的em-box或最大升序和降序。(后者将确保在em-box上方或下方具有部分内容的字形仍位于内容区域内,但导致不同字体的大小不同的box;前者将确保作者可以控制相对于’line-height’的背景样式。,但会导致字形在其内容区域之外绘画。)
如果UA实施第一个建议,则内容高度将由font-size
决定,该高度决定了em-box。这就是您期望的,绿色框15px
很高。
但是,大多数UA似乎都没有这样做。这意味着高度可能是font-family
和中font-size
使用的最高字形的高度。
但是使用font-size
值15px
并不意味着最高的字形也将15px
很高。这取决于字体。这有点类似于normal
的初始值line-height
,定义为
告诉用户代理根据元素的字体将使用的值设置为“合理”的值。我们建议使用介于1.0
到之间的“正常”值1.2
。
这意味着,如果您使用font-size: 15px
,则line-height
在15px
和之间将是“合理的” 18px
。Firefox认为“
Verdana”字体是最好的18px
。在“ sans-serif”中,它使用17px
。
问题内容: 鉴于: 如何注释,以便XML为: 问题答案: 您可以利用注释执行以下操作。 oo 酒吧 想要查询更多的信息 http://blog.bdoughan.com/2011/06/jaxb-and-complex-types-with-simple.html
问题内容: 我无法弄清楚为什么内联元素在某些浏览器中会忽略(Chrome和Firefox会忽略它,但IE9不会)。 这是一个例子: 预期结果是元素高度为26px,但是将其设置为31px。如果我将元素的显示设置为“阻止”,则高度正确设置为26px。 我读的所有内容都应该设置为行高,因此我无法弄清楚。这是我在W3C上阅读的内容: 计算行框中每个行内框的高度。对于替换的元素,内联块元素和内联表元素,这是
行内级元素(inline-level element),就是那些在源文档中不会形成新块的元素,这些元素的左右可以放置其他元素。典型的行内级元素有 span、em、strong、a,等等。 根据元素自身的特点,行内级元素又被分为非替换元素和替换元素。 非替换元素的内容直接包含在文档中,浏览器在渲染页面时,会读取元素的内容,并直接显示在页面上。说白了,非替换元素的内容就是文本。如: <span>这里
假如你想用特殊的格式表示诸如短语、用户输入、命令、软件、文件,尽量不要使用 emphasis(强调),它们有专门的元素来表示。 尽管使用了这些元素,得到的效果可能和强调一样是粗体,而且还要考虑使用哪种类型,比较麻烦。 不过等到你想用红色表示命令、绿色表示文件……,这个时候,如果你一直用的是 emphasis,你将会为你的草率付出代价。 元素名 含义 示例 abbrev 略写,一般后面带有一个点('
问题内容: 我的问题很简单: 为什么在Firefox中,内联元素的边距顶部被忽略? 有人知道吗? 问题答案: 这不仅限于Firefox,而且在CSS 2.1规范中进行了定义: ### 8.3边距属性:“ margin-top”,“ margin-right”,“ margin-bottom”,“ margin-left”和“margin” 边距属性指定框的边距区域的宽度。’margin’速记属性设
问题内容: 引用首长html: 您可以将填充添加到内联元素的顶部和底部,但是该填充不会影响周围其他内嵌元素的间距,因此该填充将与其他内嵌元素重叠 a)据我所知,在行内元素的顶部和底部添加填充不会(曾经)对周围的元素产生任何影响,因此对页面外观没有影响? b)但是“ 填充将与其他内联元素重叠 ”到底是什么意思?它是否暗示在某些情况下填充(内联元素的顶部和底部)会影响页面的外观? 谢谢 问题答案: 如