阻拦元素背景而不是儿童内联元素背景

问题描述 投票:2回答:1

为什么元素内的匿名内联文本的下延符出元素的背景或(内容区域),而元素的背景(或内容区域)包含下降(和潜在的上升)文本?这是否与字体的em-box计算,不完全包含内联子元素的块元素,或者字体大小等于font-size的问题有关? https://jsfiddle.net/norkuy/462wzvq1/

p {
  font-size: 40px;
  margin: 0;
  line-height: 1;
  background: tomato;
  color: black;
  margin-top: 20px;
}

p span {
  background: DarkSlateGray;
  color: white;
}
<p>A sentence containing <span>ggg's</span> and <span>jjj's</span></p>
html css
1个回答
1
投票

p元素是block元素,其高度是根据line-height1计算的,font-size是根据40pxp计算得出的。所以height有一个计算的40pxspan,这不足以覆盖下降器。

inline元素是background-color元素,它们的高度根据其内容自动设置。他们甚至会忽略分配给他们的任何高度属性。所以高度和span覆盖了所需的空间。

作为一个额外的例子,我复制了相同的片段,但是应用了一个类来将inline-block元素转换为p { font-size: 40px; margin: 0; line-height: 1; background: tomato; color: black; margin-top: 20px; } p span { background: DarkSlateGray; color: white; /* / No matter what we do / we can't change the height */ font-size: 40px; line-height: 1; height: 40px !important; } .turnedIntoBlock { display: inline-block; }元素,这将遵循我们定义的高度。

<p>A sentence containing <span>ggg's</span> and <span>jjj's</span></p>

<p>A sentence containing <span class="turnedIntoBlock">ggg's</span> and <span class="turnedIntoBlock">jjj's</span></p>
qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.