html - 内部 div 显示 inline-block 的 Div 高度和位置

标签 html css

我试图找出内部 div 的位置,当它显示为 inline-block 并且外部 div 设置了行高时。

<!DOCTYPE html>
<html>
<style>
.outer {
    line-height: 20px;
    width: 30px;
    border: 1px solid black;
}
.inner {
    display: inline-block;
    width: 20px;
    height: 5px;
    border: 1px solid green;
}

</style>
<body>

<div class='outer'>
    <div class='inner'></div>
</div>

</body>
</html>

https://jsfiddle.net/L4przovt/2/ 这里令人惊讶的是内部 div 的定位。我希望它位于外部 div 的顶部,但它位于中间的某个位置。你能解释一下是什么让它被定位在这个地方吗?

这可能是 font-size vs line-height vs actual height 的重复项但我的问题似乎更具体。如果您认为之前的回答对我来说应该足够了,请告诉我。

最佳答案

.inner div 设置为display: inline-block。这会激活 vertical-align 属性,该属性仅适用于 inline-level and table cell elements .

vertical-align 的默认值是baseline。这就是您所看到的——内部 div 与 baseline of the content 对齐.

要解决此问题,请将此添加到您的代码中:

.inner {
    vertical-align: top;
}

关于html - 内部 div 显示 inline-block 的 Div 高度和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52047691/

相关文章:

html - 嵌套时css优先级: outer class higher than inner?

html - Div 高度边框问题

javascript - 简单的javascript错误 - 按钮单击在表单提交上附加查询字符串

jquery - 如何同时使用 jQuery 样式和 css 样式表?

html - html/css是否可以使用此布局?

html - Bootstrap 导航栏切换不切换

css - 如何减少透明度堆栈组件标签的宽度

html - 从小屏幕切换到大屏幕时,基础顶部栏部分没有响应

PHP echo 里面的 echo

html - CSS:强制 float:left 而不指定 div 宽度