纯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 入门讲解1
Apr 15 Javascript
超级酷和最实用的jQuery实例收集(20个)
Apr 21 Javascript
理解Javascript_05_原型继承原理
Oct 13 Javascript
技术男用来对妹子表白的百度首页
Jul 23 Javascript
Javascript vue.js表格分页,ajax异步加载数据
Oct 24 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
Javascript中的async awai的用法
May 17 Javascript
详解JS浏览器事件循环机制
Mar 27 Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 Javascript
JavaScript常用内置对象用法分析
Jul 09 Javascript
vue element upload实现图片本地预览
Aug 20 Javascript
微信小程序自定义导航栏(模板化)
Nov 15 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
NO3第三帝国留言簿制作过程
2006/10/09 PHP
php下intval()和(int)转换使用与区别
2008/07/18 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
php文件上传类完整实例
2016/05/14 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
vue微信分享插件使用方法详解
2020/02/18 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
Python实现的多线程端口扫描工具分享
2015/01/21 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
python如何实现复制目录到指定目录
2020/02/13 Python
python定时截屏实现
2020/11/02 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
社区学雷锋活动策划方案
2014/01/30 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
安全教育感言
2014/03/04 职场文书
求职信范文大全
2014/05/26 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
python 远程执行命令的详细代码
2022/02/15 Python