纯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 相关文章推荐
Display SQL Server Login Mode
Jun 21 Javascript
浅谈JavaScript字符集
May 22 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
JavaScript中Function()函数的使用教程
Jun 04 Javascript
javascript实现加载xml文件的方法
Nov 24 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
Jan 19 Javascript
JavaScript 拖拽实例代码
Sep 21 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
微信小程序webview实现长按点击识别二维码功能示例
Jan 24 Javascript
原生js实现购物车
Sep 23 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 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中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
wordpress之js库集合研究介绍
2007/08/17 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
python实现实时监控文件的方法
2016/08/26 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python实现多进程代码示例
2018/10/31 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
教师找工作推荐信
2013/11/23 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
应聘面试自我评价
2014/01/24 职场文书
北体毕业生求职信
2014/02/28 职场文书
个性与发展自我评价
2015/03/06 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python