当前位置: 首页 > 面试题库 >

为什么将内联块元素向下推?

红存
2023-03-14
问题内容

以下是我的代码,我想理解 为什么 #firstDiv被所有浏览器向下推。我真的很想 了解
以下事实的内部运作原理:为什么将其向下而不是以一种或另一种方式向上拉。(而且我知道如何对齐它们的顶部:))

而且我知道它的overflow:hidden是导致它的原因,但不确定为什么将div向下推。

body {

  width: 350px;

  margin: 0px auto;

}



#container {

  border: 15px solid orange;

}



#firstDiv {

  border: 10px solid brown;

  display: inline-block;

  width: 70px;

  overflow: hidden;

}



#secondDiv {

  border: 10px solid skyblue;

  float: left;

  width: 70px;

}



#thirdDiv {

  display: inline-block;

  border: 5px solid yellowgreen;

}


<div id="container">

  <div id="firstDiv">FIRST</div>

  <div id="secondDiv">SECOND</div>

  <div id="thirdDiv">THIRD

    <br>some more content<br> some more content

  </div>

</div>

问题答案:

基本上,您在代码中添加了更多的混乱情况,这造成了更多的混乱,因此,首先,我尝试消除妨碍理解真正问题的混乱情况。

首先,我们必须确定真正的问题是什么? 其“inline-block”元素为何被向下推。

现在我们开始理解它,并先消除混乱。

1- 为什么不给所有三个div相同的边框宽度? 让我们给它。

2- 浮动元素和向下插入的内嵌块元素有什么联系吗?不,与它无关。

因此,我们完全删除了该div。您还看到内联块元素被向下推的相同行为。

现在轮到一些文献来理解线框的概念,以及如何将它们放在同一行中,特别是仔细阅读最后一段,因为这是您问题的答案。

“ inline-block”的基线是正常流中其最后一个线框的基线,除非它没有流入流线框,或者如果其“ overflow”属性的计算值不是“
visible”,则在这种情况下,基线是下边距。

如果您不确定基线,那么这里是简单的简短解释。

除了’gjpqy’以外的所有字符都写在基线上,您可以认为基线就像您在这些“随机字符”下方绘制一条与下划线相同的简单水平线一样,它将成为基线,但现在如果您编写任何“gjpqy”同一行上的一个或多个字符,则这些字符的下部将落在该行下方。

因此,可以说除“ gjpqy”以外的所有字符都完全写在基线之上,而这些字符的某些部分则写在基线之下。

3-为什么不检查生产线的基线在哪里?我添加了一些字符来显示该行的基线。

4-
为什么不在我们的div中添加一些字符以在div中找到其基线?此处,在div中添加了一些字符以阐明基线。

现在,当您了解基线时,请阅读以下有关内联块基线的简化版本。

i)如果有问题的内联块的溢出属性设置为可见(默认情况下,因此无需设置)。 然后,其基线将是该行包含块的基线。

ii)如果所讨论的内联块的溢出属性设置为“其他可见”。 然后,其底边距将在包含框的线的基线上。

  • 第一点详细

现在再来看一看,以澄清您的概念greendiv发生了什么。如果仍然有任何困惑,则在此处添加更多靠近绿色div的字符以建立包含块的基线,并对齐绿色div基线。

好吧,我现在声称它们具有相同的基准?对?

5- 那么为什么不重叠它们,看看它们是否彼此合适?因此,我带来了第三个div -left:35px;检查他们现在是否具有相同的基准?

现在,我们已经证明了我们的第一点。

  • 第二点详细

好了,在解释了第一点之后,第二点很容易理解,您会看到将溢出属性设置为可见(隐藏)以外的第一格的底边在该线的基线上。



 类似资料:
  • 如果我在锚元素中放置div元素,它会使我的超文本标记语言无效。 不在内联元素中放置块级元素的原因是什么?

  • 问题内容: 遇到了一个奇怪的CSS问题。有人可以解释为什么包含内容的框未垂直对齐吗? 如果您将文本放在class的范围内-它将正确对齐。 问题答案: 默认值是其 将框的基线与父框的基线对齐 注意:您可以通过添加到选择器中来查看此默认值。由于是默认设置,因此对齐方式保持不变。 您需要对其进行更改以使块在顶部对齐,例如: 基准定义为 大多数字母“坐着”且下级延伸到其下的线 解决 为什么 添加文本似乎可

  • 问题内容: 举个例子 是在HTML5有效吗? 问题答案: 是的,您编写的内容在HTML5中有效,但并非所有内联元素,我认为这只是适用于.. 参考:HTML5中的“块级”链接 提示:如果使用此设置,则to 或可能会有意外的视觉样式结果 更新: 对于“默认样式可能会导致混淆”的其他“内联代码块”组合,则“不允许”使用-说明在这里 ### 默认样式可能导致混淆的情况 某些元素具有默认样式或行为,这些默认

  • 问题内容: 阅读CSS2规范的height 属性时遇到以下问题: 适用于:除不可替换的嵌入式元素,表列和列组以外的所有元素 我了解替换后的element()或内联element(,)是什么,但是很难找到未替换的内联元素的示例。 问题答案: 表达式“不可替换的内联元素”没有自己的定义:它仅指代既是不可替换的元素又是内联元素的任何元素。如。HTML中的大多数元素都是不可替换的。不可替换元素只是一个不是

  • 问题内容: 鉴于: 如何注释,以便XML为: 问题答案: 您可以利用注释执行以下操作。 oo 酒吧 想要查询更多的信息 http://blog.bdoughan.com/2011/06/jaxb-and-complex-types-with-simple.html

  • 本文向大家介绍可以给内联元素设置宽和高吗?为什么?相关面试题,主要包含被问及可以给内联元素设置宽和高吗?为什么?时的应答技巧和注意事项,需要的朋友参考一下