纯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 相关文章推荐
Jquery 学习笔记(一)
Oct 13 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
使用Math.max,Math.min获取数组中的最值实例
Apr 25 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
Aug 09 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
深入探索VueJS Scoped CSS 实现原理
Sep 23 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
Dec 29 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
Jan 25 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 事务处理数据实现代码
2010/05/13 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
怎么清空javascript数组
2013/05/11 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
Python验证码识别处理实例
2015/12/28 Python
python 字典(dict)按键和值排序
2016/06/28 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python基于递归解决背包问题详解
2019/07/03 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
java关于string最常出现的面试题整理
2021/01/18 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
40岁生日感言
2014/02/15 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
导游词之上海豫园
2019/10/24 职场文书
浅谈pytorch中的dropout的概率p
2021/05/27 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL