Html 为什么这两个div没有对齐?
我有这个HTML:Html 为什么这两个div没有对齐?,html,css,Html,Css,我有这个HTML: <div class="s0"> <div class="s1"></div><div class="s2">Some text</div> </div> 如果您测试这段代码,您将看到两个div没有对齐 您可以在这里查看: 如果我删除绿色DIV中的文本,问题就会消失 有人能解释一下为什么会这样吗?抱歉,如果已经有人问过这个问题,但是我在其他问题中找不到完全相同的问题 提前感谢。啊,这是一个垂直
<div class="s0">
<div class="s1"></div><div class="s2">Some text</div>
</div>
如果您测试这段代码,您将看到两个div没有对齐
您可以在这里查看:
如果我删除绿色DIV中的文本,问题就会消失
有人能解释一下为什么会这样吗?抱歉,如果已经有人问过这个问题,但是我在其他问题中找不到完全相同的问题
提前感谢。啊,这是一个垂直对齐问题 做 这将设置两个div与父对象的顶部对齐 (或者,如果需要,您可以
垂直对齐
中间,底部)
或者,您可以将一个或另一个DIV与顶部v对齐。你也可以考虑<代码>浮点< /代码>属性,如果你要进行一个圆柱布局。
啊,这是一个垂直对齐问题。
做 这将设置两个div与父对象的顶部对齐 (或者,如果需要,您可以垂直对齐
中间,底部)
或者,您可以将一个或另一个DIV与顶部v对齐。你也可以考虑<代码>浮点属性,如果你要进行一个柱形布局。 < P>试试这个“”。
.s0 {
width:300px;
background-color:gray;
display:inline-block;
}
.s1 {
float:left;
width:150px;
height:100px;
display:inline;
background-color:blue;
margin-right:10px;
}
.s2 {
float:right;
width:140px;
height:100px;
display:inline;
background-color:green;
}
这在小提琴上对我很管用。
我添加了一个显示:内联块将s1和s2的代码>更改为.s0
显示从内联块
更改为内联
,并浮动.s1
左侧和.s2
右侧
你可以这样做,也可以这样做:
.s1, .s2 {
vertical-align: top;
}
任何一个都可以。试试这个
.s0 {
width:300px;
background-color:gray;
display:inline-block;
}
.s1 {
float:left;
width:150px;
height:100px;
display:inline;
background-color:blue;
margin-right:10px;
}
.s2 {
float:right;
width:140px;
height:100px;
display:inline;
background-color:green;
}
这在小提琴上对我很管用。
我添加了一个显示:内联块将s1和s2的代码>更改为.s0
显示从内联块
更改为内联
,并浮动.s1
左侧和.s2
右侧
你可以这样做,也可以这样做:
.s1, .s2 {
vertical-align: top;
}
任何一个都有效。添加浮点:右
to.s2
div类解决了这个问题。添加float:right
to.s2
div类解决了这个问题。了解垂直对齐行为
考虑以下三个例子:
<h2>Example 1</h2>
<div class="s0 ex1">
<div class="s1"></div><div class="s2">Some text</div>
</div>
<h2>Example 2</h2>
<div class="s0 ex2">
<div class="s1">A word</div><div class="s2">Some text</div>
</div>
<h2>Example 3</h2>
<div class="s0 ex3">
<div class="s1"></div><div class="s2">Some text</div>
</div>
在示例1中,有一个块级元素.s0
,其中包含两个子内联块元素(s1
和s2
)。两个内联块元素沿父元素的基线放置。在s1
的情况下,基线是元素的底部边缘,因为元素没有文本,因此没有流入内容,如规范中所述:
“内联块”的基线是其在正常流中最后一个行框的基线,除非其没有内联行框,或者其“溢出”属性的计算值不是“可见”,在这种情况下,基线是底部边距边缘
见:
如果如例2所示,s1
中有文本,则s1
的基线是内联文本框的底边
如果将vertical align
属性应用于top
(如前面的答案所述),则可以解决问题,如示例3所示
请参见fiddle:了解垂直对齐行为
考虑以下三个例子:
<h2>Example 1</h2>
<div class="s0 ex1">
<div class="s1"></div><div class="s2">Some text</div>
</div>
<h2>Example 2</h2>
<div class="s0 ex2">
<div class="s1">A word</div><div class="s2">Some text</div>
</div>
<h2>Example 3</h2>
<div class="s0 ex3">
<div class="s1"></div><div class="s2">Some text</div>
</div>
在示例1中,有一个块级元素.s0
,其中包含两个子内联块元素(s1
和s2
)。两个内联块元素沿父元素的基线放置。在s1
的情况下,基线是元素的底部边缘,因为元素没有文本,因此没有流入内容,如规范中所述:
“内联块”的基线是其在正常流中最后一个行框的基线,除非其没有内联行框,或者其“溢出”属性的计算值不是“可见”,在这种情况下,基线是底部边距边缘
见:
如果如例2所示,s1
中有文本,则s1
的基线是内联文本框的底边
如果将vertical align
属性应用于top
(如前面的答案所述),则可以解决问题,如示例3所示
请参阅fiddle:使用floatsMight更容易浮动div-使用floatsMight更容易浮动div-非常感谢,这很有效。我只是想知道这种行为背后的逻辑是什么…@emanuele这只是内联块元素的默认行为。想象一下图像
,它们本来就是内联块。非常感谢,这很有效。我只是想知道这种行为背后的逻辑是什么…@emanuele这只是内联块元素的默认行为。将图像
看作是内联块。