纯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 相关文章推荐
JavaScript中的运算符种类及其规则介绍
Sep 26 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
AngularJs中route的使用方法和配置
Feb 04 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
jQuery模拟淘宝购物车功能
Feb 27 Javascript
在vscode里使用.vue代码模板的方法
Apr 28 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
Sep 28 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
JS如何生成随机验证码
Mar 02 Javascript
vue实现简易的双向数据绑定
Dec 29 Vue.js
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
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
PHP中each与list用法分析
2016/01/08 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
详细探究Python中的字典容器
2015/04/14 Python
Golang与python线程详解及简单实例
2017/04/27 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
Python 3.8 新功能全解
2019/07/25 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
外贸业务员的岗位职责
2013/11/23 职场文书
高中毕业生个人自我鉴定
2013/11/24 职场文书
优秀员工自荐书范文
2013/12/08 职场文书
行政部总经理岗位职责
2014/01/04 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
个人贷款收入证明
2014/10/26 职场文书
个人汇报材料范文
2014/12/30 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
导师工作推荐信
2015/03/27 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
安全知识竞赛主持词
2015/06/30 职场文书