Html CSS:垂直对齐
如何在不使用显示表格/表格单元格或绝对位置的情况下进行垂直对齐Html CSS:垂直对齐,html,css,vertical-alignment,Html,Css,Vertical Alignment,如何在不使用显示表格/表格单元格或绝对位置的情况下进行垂直对齐 #父级{ 边框:1px纯红; 高度:100vh; } .孩子{ 边框:1px纯蓝色; } 我想垂直对齐 您可以使用相对位置,顶部为50%,平移为-50% #父级{ 边框:1px纯红; 高度:100vh; } .孩子{ 位置:相对位置; 最高:50%; 转换:翻译(0,-50%); 边框:1px纯蓝色; } 我想垂直对齐 您可以使用显示:flex: #parent { border: 1px solid red; he
#父级{
边框:1px纯红;
高度:100vh;
}
.孩子{
边框:1px纯蓝色;
}
我想垂直对齐
您可以使用相对位置,顶部为50%,平移为-50%
#父级{
边框:1px纯红;
高度:100vh;
}
.孩子{
位置:相对位置;
最高:50%;
转换:翻译(0,-50%);
边框:1px纯蓝色;
}
我想垂直对齐
您可以使用显示:flex代码>:
#parent {
border: 1px solid red;
height: 100vh;
display:flex;
align-items:center;
justify-content:center;
}
另一种方法是使用浮动div
#父级{
边框:1px纯红;
高度:100vh;
}
.漂浮物{
浮动:左;
身高:50%;
宽度:100%;
边缘底部:-25px;
}
.孩子{
边框:1px纯蓝色;
明确:两者皆有;
高度:50px;
}
我想垂直对齐
我想你可以这样使用
position: fixed; top: 50%;
下面是另一个使用“Flex”属性的选项
<div id="parent">
<div class="child">
<p>I want to be vertical aligned</p>
</div>
</div>
#parent {
border: 1px solid red;
display: flex;
align-items: center;
height: 100vh;
}
.child {
border: 1px solid blue;
flex-grow: 1;
}
我想垂直对齐
#母公司{
边框:1px纯红;
显示器:flex;
对齐项目:居中;
高度:100vh;
}
.孩子{
边框:1px纯蓝色;
柔性生长:1;
}
如果您不介意浏览器兼容性,我会选择flex
——请参见@rblarsen,@Satheesh Kumars-answers
但如果您需要扩展浏览器支持,这里有一个更复杂但更可靠的解决方案:经过测试的IE9+FF Chrome和其他主要浏览器
看看这把小提琴:
HTML
注-上述translate
解决方案虽然相当简单,但有时会导致较差的渲染问题,请查看:
您可以尝试使用display:flex。
CSS
#父级{
边框:1px纯红;
高度:100vh;
显示器:flex;
对齐项目:居中;/*垂直*/
对齐内容:居中;/*水平*/
}
.孩子{
边框:1px纯蓝色;
}
我想垂直对齐
#父{边框:1px实心红色;高度:100vh;显示:表格;宽度:100%;}。子{边框:1px实心蓝色;显示:表格单元格;文本对齐:中心;垂直对齐:中间;}我喜欢这个解决方案@satheesh kumar您认为使用不同的子类(如grow-1、grow-2)来控制flex grow是一个好主意吗?这对多个子类如何起作用?我可以让-50%更具动态性吗?在这种情况下,您可以拥有一个包含多个孩子的容器,并对其应用翻译。
<div class="wrapper">
<div class="content">Middle aligned</div>
<div class="middle"></div>
</div>
.wrapper{
width : 100%;
height : 100%;
text-align: center;
}
.content{
display: inline-block;
vertical-align: middle;
}
.middle{
height: 100%;
display: inline-block;
vertical-align: middle;
}