纯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 相关文章推荐
学习YUI.Ext 第二天
Mar 10 Javascript
js 深拷贝函数
Dec 04 Javascript
JavaScript CSS修改学习第六章 拖拽
Feb 19 Javascript
读取input:file的路径并显示本地图片的方法
Sep 23 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
Sep 04 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
Jun 26 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
Seajs源码详解分析
Apr 02 Javascript
基于Vue实现电商SKU组合算法问题
May 29 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 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
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
python字符串对其居中显示的方法
2015/07/11 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
python实现同一局域网下传输图片
2020/03/20 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
拖鞋店创业计划书
2014/01/15 职场文书
美德好少年主要事迹
2014/01/29 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
医院信息公开实施方案
2014/05/09 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python