纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示


Posted in Javascript onSeptember 12, 2015

下文以span元素为例子,介绍一下如何实现span元素在div中实现水平垂直居中效果,代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>三水点靠木</title>
<style type="text/css">
#box{
 width:200px;
 height:150px;
 background:blue;
 position:relative;
}
#antzone{
 background:green;
}
</style>
<script type="text/javascript">
window.onload=function(){
 var obox=document.getElementById("box");
 var oantzone=document.getElementById("antzone");
 var w=oantzone.offsetWidth;
 var h=oantzone.offsetHeight;
 oantzone.style.position="absolute";
 oantzone.style.left="50%";
 oantzone.style.top="50%";
 
 oantzone.style.marginLeft=-(w/2)+"px";
 oantzone.style.marginTop=-(h/2)+"px";
}
</script>
</head>
<body>
<div id="box">
 <spanj id="antzone">三水点靠木</span>
</div>
</body>
</html>

上面你的代码实现了span元素在div中垂直水平居中效果,下面简单介绍一下它的实现过程。

一.实现原理:

虽然css为明确给出span元素的尺寸,但是它毕竟有一个尺寸的,这个尺寸可以使用offsetWidth和offsetHeight属性获取,然后将此span元素设置为绝对定位,然后再将left和top属性值分别设置为50%,但是这个时候并不是span元素的中心点垂直水平居中,而是span元素的左上角垂直水平居中,然后在设置span元素的负的外边距,尺寸是span元素宽高的一半,这样就实现了垂直水平居中效果。

以上就是本文的全部内容,今天就到此为止,后续给大家更新scrollTop、offsetHeight和offsetTop等属性用法详解,请持续关注本站,谢谢。

Javascript 相关文章推荐
JS实现标签页效果(配合css)
Apr 03 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
Jan 02 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
Feb 03 Javascript
jQuery Ajax页面局部加载方法汇总
Jun 02 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
详解vue之页面缓存问题(基于2.0)
Jan 10 Javascript
js实现3d悬浮效果
Feb 16 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
Jul 27 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
Oct 25 Javascript
JavaScript数组去重的几种方法
Apr 07 Javascript
vue input标签通用指令校验的实现
Nov 05 Javascript
使用vant的地域控件追加全部选项
Nov 03 Javascript
JS实现超精简响应鼠标显示二级菜单代码
Sep 12 #Javascript
JS+CSS实现的简单折叠展开多级菜单效果
Sep 12 #Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 #Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 #Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 #Javascript
JavaScript中this的9种应用场景及三种复合应用场景
Sep 12 #Javascript
javascript判断网页是关闭还是刷新
Sep 12 #Javascript
You might like
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
javascript 日期时间 转换的方法
2013/02/21 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
详解Django通用视图中的函数包装
2015/07/21 Python
Python全排列操作实例分析
2018/07/24 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
电脑专业个人求职信范文
2014/02/04 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
老公出轨后的保证书
2015/05/08 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
小学班主任研修日志
2015/11/13 职场文书
golang 实用库gotable的具体使用
2021/07/01 Golang
python神经网络 使用Keras构建RNN训练
2022/05/04 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle
MySQL深分页问题解决思路
2022/12/24 MySQL