css设置div垂直居中

一开始想着直接对div用margin-top:50%就行了,但不知道为什么会移到很下面,margin-top:12.5%才刚好居中,这个问题暂时还没有解决。

这里介绍的方法是使用top和transform来实现div的一个居中。

html文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="${pageContext.request.contextPath }/css/index.css">
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/js/bootstrap.min.js"></script>
<script src="${pageContext.request.contextPath }/js/height.js"></script>
<title>首页</title>
</head>
<body>
	<div class="page">
		<form action="">
			<table>
				<tr>
					<td></td>
					<td><strong>用户登录</strong></td>
				</tr>
				<tr>
					<td><label for="id">用户名:</label></td>
					<td><input type="text" class="form-control" name="id" id="id"/></td>
				</tr>
				<tr>
					<td><label for="pwd">密码:</label></td>
					<td><input type="password" class="form-control" name="pwd" id="pwd"/></td>
				</tr>
				<tr>
					<td></td>
					<td><button type="submit" class="btn">登录</button></td>
				</tr>
			</table>
		</form>
	</div>
</body>
</html>

css文件

html,body{width:100%;height:100%;padding:0;margin:0;}
.page{width:280px;height:215px;border:1px #CCCCCC solid;padding:20px 30px;margin:0px auto;font-size:15px;top:50%;transform:translateY(-50%);position:relative;}
.page td{padding:8px 3px;font-size: 13px;}
.page input{width:130px;height:20px;font-size:13px;}
.page button{font-size:13px;}

这里有几个要注意的点:
1.html 和 body 标签需要设置高度百分之百,并且将padding和margin清除,不然会有滚动条
2.div的position不能用默认的static,static是不能移动的,这里不需要使用absolute和fixed,因为relative是不会使元素脱离文档流的,absolute和fixed则会。所以这里使用relative就行了
3.这里的原理是想下移动父级div高度的50%,即top:50%
然后再将div向上移动它的高度的50%,即transform:translateY(-50%),这样就实现了一个垂直居中的效果

在寻找方法的时候,找了下怎么用jquery获取窗口的height,这里也和大家分享一下:

$(document).ready(function(){
alert($(window).height()); //浏览器当前窗口可视区域高度
alert($(document).height()); //浏览器当前窗口文档的高度
alert($(document.body).height());//浏览器当前窗口文档body的高度
alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin

alert($(window).width()); //浏览器当前窗口可视区域宽度
alert($(document).width());//浏览器当前窗口文档对象宽度
alert($(document.body).width());//浏览器当前窗口文档body的宽度
alert($(document.body).outerWidth(true));//浏览器当前窗口文档body的总宽度 包括border padding margin

})
全部评论

相关推荐

09-13 08:41
服装/纺织设计
那一天的Java_J...:你第一次参加面试吗
点赞 评论 收藏
分享
头像
10-22 20:13
中南大学 Java
序言大家好呀。我是希晨er,一个初入职场的程序猿小登最近上班摸鱼刷到了一篇文章:10年深漂,放弃高薪,回长沙一年有感,还有聊聊30岁大龄程序员过往的心路历程,突然就有点感慨。我如今也做出了和大明哥一样的抉择,只是更早。此外我22年的人生,好像从来没好好记录过。正好现在工作不太忙,就想把这些经历写下来,也希望能得到社区里各位前辈的指点个人背景我是03年出生的西安娃,父母都是普通打工人。刚从中南大学软件工程专业毕业半年,现在在老家的央企过着躺平摆烂的日子成长轨迹从农村到城市的童年我家并不是西安的,只是爸妈在西安上班,从小学之后就把我接到了西安。后来老家房子拆了,爷爷奶奶也搬了过来。农村的生活,我觉...
Yki_:看哭了,恋爱那一段你女朋友说你不够关心她,可你毕竟也愿意遇到矛盾写几千字来和她慢慢分析;说不愿意给她花钱,我感觉可能只是消费观不一样;如果她想留在长沙,也应该提前跟你说开。不过她也许会心疼你放弃大厂offer转向数字马力?我也因为同样的原因有过一段幸福而充满遗憾的感情,不过跟爱情相比确实前途更重要一点。至于offer的选择,换我我也会这么选。把这些旧事记录下来以后,接下来就好好向前看吧,加油兄弟
🍊晨光随笔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务