纯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 对象的定义方法
Jan 10 Javascript
javascript 面向对象封装与继承
Nov 27 Javascript
调试JavaScript中正则表达式中遇到的问题
Jan 27 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
基于jQuery实现自动轮播旋转木马特效
Nov 02 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
Sep 26 Javascript
从源码看angular/material2 中 dialog模块的实现方法
Oct 18 Javascript
iconfont的三种使用方式详解
Aug 05 Javascript
微信小程序保存多张图片的实现方法
Mar 05 Javascript
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
解决layer 动态加载select 失效的问题
Sep 18 Javascript
vue 动态组件用法示例小结
Mar 06 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
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
浅谈PHP中的
2016/04/23 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
django中send_mail功能实现详解
2018/02/06 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Python之变量类型和if判断方式
2020/05/05 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
优秀毕业大学生推荐信
2013/11/13 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
职务聘任书范文
2014/03/29 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
主持稿开场白
2015/06/01 职场文书
房屋产权证明书
2015/06/19 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python