【发布时间】:2018-03-01 00:35:08
【问题描述】:
我在另一个 id 为粉色的 div 中有三个 id 为红色绿色和蓝色的 div。我期望的是红色、绿色和蓝色都可以在粉红色的顶部进行。我还希望每个元素的宽度都等于其中最宽的子元素的宽度。但是发生的事情是它们与粉红色的底部对齐。此外,当将孩子添加到其中之一时,它的宽度和高度都会增加,从而增加粉红色的宽度和高度。
我的问题是三方面的。一、为什么红、绿、蓝不对齐粉红色的顶部;或者更准确地说,为什么它们与粉红色的底部对齐?其次,为什么当我添加孩子时,红色绿色或蓝色的宽度会增加——即使孩子是垂直排列的?最后,我必须改变什么才能使红色绿色和蓝色与粉红色的顶部对齐并且每个的宽度等于其最宽的孩子的宽度?我试图澄清我的问题,所以如果我做得不够,请原谅我。
<style>
.menu {
position: absolute;
left: 10px;
top: 30px;
border-radius: 3px;
background-color: lightgoldenrodyellow;
z-index: 5000;
}
.subMenu {
position: relative;
display: inline-block;
}
.subMenuHead {
display: inline-block;
width: 100%;
font-weight: bold;
text-align: center;
}
.subMenuOption {
display: inline-block;
width: 100%;
color: darkblue;
font-size: 16px;
white-space: nowrap;
}
</style>
<div id="menu" class="menu">
<div id="pink" style="background-color:pink;">
<div id="red" class="subMenu" style="background-color:red;">
<span class="subMenuHead">Project</span>
<span class="subMenuOption">New...</span>
</div>
<div id="green" class="subMenu" style="background-color:green;">
<span class="subMenuHead">Upload Data</span>
</div>
<div id="blue" class="subMenu" style="background-color:blue;">
<span class="subMenuHead">Account</span>
</div>
</div>
</div>
感谢任何见解。
【问题讨论】:
-
将
.vertical-align: top添加到您的.subMenucss 样式中。您需要指定宽度以防止红色、绿色和蓝色框拉伸。 -
好的,知道了。很简单。谢谢。如果您将此作为单独的答案发布,我会将其标记为已接受。
-
它没有回答你的整个三个问题。那是犯规的。
-
- 首先,为什么红、绿、蓝没有对齐到粉红色的顶部;因为垂直对齐默认是基线,您可以将其设置为顶部。 - 其次,为什么当我添加孩子时,红色绿色或蓝色的宽度会增加 - 即使孩子是垂直排列的?:因为您设置的子菜单的显示是内联块。大小将丢失约 4px。 - 最后你在上面尝试这个代码
标签: html css vertical-alignment