我对HTML / CSS很陌生,并尝试理解所涉及的许多概念。我试图在一个较大的div中垂直居中2个div,并将元素置于这些div中。
HTML:
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<div id="MainDiv">
<div id="SubDiv">
<form method="POST">
<input type="text" name="example1" class="Text">
<input type="text" name="example2" class="Text">
<input type="submit" value="Go"> <br>
</form> <br/>
</div>
<div id="SubDiv">
<input type="button" value="Button 1"/>
<input type="button" value="Button 2"/>
</div>
</div>
</body>
CSS:
#MainDiv
{
width: 60%;
height: 30%;
margin: auto;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
text-align: center;
border: 1px solid black;
}
#SubDiv
{
width: 90%;
height: 45;
margin: auto;
border: 1px solid black;
}
.Text
{
width: 40%;
}
当然,我已经做了大量的搜索尝试解决这个问题,但任何修复似乎要么什么都不做,要么更糟糕。非常感谢任何帮助。
答案 0 :(得分:0)
与水平居中相比,垂直居中有点难。
为此,我在Subdivs元素上设置了一个容器,并设置了一个id SubDivContainer
。然后为该容器设置样式,使其垂直居中。
#SubDivContainer {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
}
汇总:
#MainDiv
{
width: 60%;
height: 120px;
margin: auto;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
text-align: center;
border: 1px solid black;
}
#SubDivContainer {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
}
#SubDiv
{
width: 90%;
height: 45;
margin: auto;
border: 1px solid black;
}
.Text
{
width: 40%;
}
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<div id="MainDiv">
<div id="SubDivContainer">
<div id="SubDiv">
<form method="POST">
<input type="text" name="example1" class="Text">
<input type="text" name="example2" class="Text">
<input type="submit" value="Go"> <br>
</form> <br/>
</div>
<div id="SubDiv">
<input type="button" value="Button 1"/>
<input type="button" value="Button 2"/>
</div>
</div>
</div>
</body>
</html>
答案 1 :(得分:0)
您可能需要考虑使用flexbox,它具有内置的垂直居中
这里有关于flexbox的精彩介绍: http://flexboxin5.com/