我创建了一个简单的网页(请忽略php)。我想让身体的所有内容都居中 - 它是水平对齐的(通过文本对齐:中心),但是我不能让它在顶部和底部垂直对齐。
链接到JS小提琴:http://jsfiddle.net/6q1a1b01/1/
我试过了:
margin: 0 auto 0 auto;
vertical-align: middle;
尽管有这两次尝试,但我还是很欣赏有关为什么内容没有垂直居中的原因。
HTML:
<body>
<h1>Welcome to my website!</h1>
<h2>Please login below.</h2>
<h3>Don't have an account? Create one here.</h3>
<div class="formFormat" >
<div id="table1">
<form name="loginForm" method="post" action="<?php? $_SERVER['PHP_SELF'];>" >
<table id="cssTable">
<tr>
<td>Username:</td><td><input type="text" id="user" name="user" value="<?php echo $user_name?>" /></td>
</tr>
<tr>
<td>Password:</td><td><input type="text" id="pass" name="pass" value="<?php echo $user_password?>"/></td>
</tr>
</table>
</form>
</div>
<div id="table2">
<form>
<table>
<tr>
<td><input type="submit" name="submitLogin"/></td>
</tr>
<tr>
<td id="createAccount">Create an account.</td>
</tr>
</table>
</form>
</form>
</div>
</div>
</body>
</html>
CSS:
body {
width: 100%;
height: 100%;
text-align:center;
font-family: helvetica;
font-color: white;
background-image: url(https://download.unsplash.com/photo-1429091967365-492aaa5accfe);
margin: 0 auto;
}
.formFormat{
padding: 10px;
height: auto;
width:auto;
border: 1px black solid;
display:inline-block;
position: relative;
}
#table1 {
padding-bottom: 0px;
}
#table2 {
display:inline-block;
}
#createAccount {
font-style: italic;
}
td {
padding: 5px;
font-size: 18px;
}
input[type="text"] {
border : 1px solid ;
}
input[type="submit"] {
border : 1px solid ;
}
答案 0 :(得分:0)
试试这个http://jsfiddle.net/6q1a1b01/3/。
在<body>
<div class="outer">
<div class="inner">
在</body>
</div>
</div>
在CSS中包含此代码:
.outer {
display: table;
position: absolute;
height: 100%;
width: 100%;
}
.inner {
display: table-cell;
vertical-align: middle;
}
答案 1 :(得分:0)
使用vertical-align: middle;
属性无法垂直对齐到屏幕中间。
你可以采取以下几种方式:
基于JSFiddle代码的HTML建议很少:
答案 2 :(得分:0)
看看这个,看看是否可以帮到你: vertical align anything with just 3 lines of css