HTML5/CSS3基础——div盒子水平垂直居中的三种方案

  • 一、基于定位的使div盒子水平居中的三种方式
    • 1、使用top:50% left:50% 以及margin-top 和 margin-left 来进行定位
    • 2、使用top:50% left:50% 以及 transform: translate(-50%,-50%);
    • 3、使用top:0 left:0 right:0 bottom:0 以及 margin:auto
  • 二、使用Flex 布局使div盒子水平居中
  • 三、使用js的方式使div盒子水平居中

如何使盒子水平垂直居中,是我们在写页面布局经常能遇到的问题之一。以前我的我每次需要用到水平垂直居中的时候都会百度,每次百度总是又能找到不同的方式 而且还记不住:( 但今天就写系统的总结和整理了一下 我们使div盒子水平垂直居中的方式到底有哪些 跟我之前有着一样困惑的小伙伴一起来看吧~~

我们的html是这样滴:

<body>
<div class="box" id="box">水平垂直居中方案</div>
</body>

一、基于定位的使div盒子水平居中的三种方式

1、使用top:50% left:50% 以及margin-top 和 margin-left 来进行定位

注意: 必须知道盒子的具体的宽和高,否则无法计算margin的值

.box{/* 盒子长为200,宽为100 背景为海蓝色*/height:100px;width:200px;background-color: aquamarine;position: absolute; /* 注意这是指盒子的左顶点在页面的中心 */top:50%;left:50%; margin-top:-50px;  /* 盒子要向上移动自己高度的50% */margin-left:-100px;/* 盒子要向左移动自己宽度的50% */}html,body{position: relative;height:100%; margin:0;}

2、使用top:50% left:50% 以及 transform: translate(-50%,-50%);

来进行定位
注意: 跟上一种相比,不需要宽和高,内容就会撑开盒子,但是兼容性差

.box{/* 盒子长为200,宽为100 背景为海蓝色*/height:100px;width:200px; background-color: aquamarine;position: absolute; top:50%;left:50%;/* 根据自有的宽度分别向上移和像左移动50% */transform: translate(-50%,-50%);}html,body{position: relative;height:100%; margin:0;}

3、使用top:0 left:0 right:0 bottom:0 以及 margin:auto

注意: 盒子必须有宽和高,但不会用到宽和高进行具体的计算

 .box{/* 盒子长为200,宽为100 背景为海蓝色*/height:100px;width:200px;background-color: aquamarine;position: absolute; top:0;left:0;right:0;bottom:0;margin:auto; }html,body{position: relative;height:100%; margin:0;}

二、使用Flex 布局使div盒子水平居中

 .box{/* 盒子长为200,宽为100 背景为海蓝色*/height:100px;width:200px;background-color: aquamarine;}html,body{height:100%; margin:0;display: flex;/* 主轴位于中间 */justify-content:center ;/* 交叉轴位于中间 */align-items: center;}

三、使用js的方式使div盒子水平居中

水平居中方法: 将浏览器可视区的宽度(clientWidth) 减去 要居中元素本身的宽度(offsetWidth) /除以 2 +‘px’
垂直居中方法: 将浏览器可视区的高度(clientHeight) 减去 要居中元素本身的高度(offsetHeight) /除以 2 +‘px’

window.onload = function(){//var box =document.getElementById('box');let HTML =document.documentElement,winW=HTML.clientWidth,winH=HTML.clientHeight,boxW=box.offsetWidth,boxH=box.offsetHeight;box.style.position="absolute";box.style.left=(winW-boxW)/2+'px';box.style.top=(winH-boxH)/2+'px';}

HTML5/CSS3基础——div盒子水平垂直居中的三种方案相关推荐

  1. div盒子水平垂直居中的几种方式

    1. div水平居中 div{width:100px;height:100px;margin:0 auto; } 2. div水平垂直居中 这里要有两层或者给body设置高度100vh,然后给元素设置 ...

  2. html flex上下居中,css3 flex实现div内容水平垂直居中的几种方法

    一.flex-direction: (元素排列方向) ※ flex-direction:row (横向从左到右排列==左对齐) ※ flex-direction:row-reverse (与row 相 ...

  3. css设置子盒子水平垂直居中(四种方式)

    css设置子盒子水平垂直居中(四种方式) 1. 使用绝对定位 <!DOCTYPE html> <html><head><meta charset=" ...

  4. CSS图片水平垂直居中的三种方法

    CSS图片水平垂直居中的三种方法 设置行高 使用定位和translate 使用弹性盒子 设置行高 我们知道img元素为行内快元素,所以首先设置图片元素的父元素里文字水平居中,行高与整体高度一致. 其次 ...

  5. CSS实现div盒子水平垂直居中的方式

    网上看到有很多方式,这里记录一下我用起来顺手的几种方式,这里敲黑板做笔记,哈哈~~ <div id='container'><div class='middle'></d ...

  6. 如何将一个div盒子水平垂直居中?

    1: 第一种方法: <div class="parent"> // 父级盒子<div class="child"><div> ...

  7. div盒子水平垂直居中的方法

    一.盒子没有固定的宽和高 方案1.Transforms 变形 这是最简单的方法,不仅能实现绝对居中同样的效果,也支持联合可变高度方式使用.内容块定义transform: translate(-50%, ...

  8. css实现文字或者div盒子水平垂直居中的方法

    实现水平垂直居中的方法 文本(文字)内容属于行内元素 行内元素水平垂直居中方法 方式一: 设置文字外层的盒子 text-align:center /*水平居中*/ height = 100px; /* ...

  9. 如何实现div盒子水平垂直居中

    关于如何使一个小盒子在大盒子中水平垂直居中有很多方法,下面将列举常用的几种: ###html 代码 <div class="parent"><div class= ...

最新文章

  1. Golang的反射reflect深入理解和示例
  2. 解密Elasticsearch技术,腾讯开源的万亿级分布式搜索分析引擎
  3. 如何理解JavaScript原型
  4. 对AI毫无了解?本文带你轻松了解AI
  5. springMVC纯java代码配置(一)- 数据源与事务管理(转载的哦)
  6. C++的四种强制类型转换
  7. php秒数怎么转换为时间格式,php将秒数转换为时间(年、月、日、小时…)
  8. Hadoop伪分布式搭建(本人新手,欢迎大家多多指导和关照)
  9. 深度学习15-Google涂鸦识别挑战项目(下)
  10. sql批量修改数据_Excel技巧 | 如何批量修改行列数据
  11. 中查询每个班成绩前三_重磅 2020卫生资格中初级考试成绩今天公布了
  12. qt信号槽踩坑日记(信号执行一次,槽函数执行多次解决方案)
  13. 叫号系统服务器,排队叫号系统设置方法
  14. Multi-Scale Boosted Dehazing Network with Dense Feature Fusion笔记和代码
  15. 3dmax:3dmax三维VR渲染设置(V-Ray帧缓存、V-Ray全局开关、V-Ray图像采样器、自适应细分采样器、V-Ray环境、全局确定性蒙特卡、摄像机、颜色贴图)之详细攻略(切记收藏!)
  16. 【GAPPER乡村笔记项目】盘点老龄化社会背景下人工智能及机器人技术的应用
  17. 《Neural Network and Deep Learning(神经网络与深度学习)》练习及问题详解
  18. 如何成功激活win10专业版
  19. 应急响应--记录一次漏洞紧急处理中意外发现的挖矿木马(Shiro反序列化漏洞和ddg挖矿木马)...
  20. BUAA 1489

热门文章

  1. Spark的broadcast
  2. AMEsim HCD库中锐边开有槽口的滑阀模型help文档阅读小结
  3. 探索性思维——How to Solve It
  4. Oracle新建的用户看不到表,Oracle 创建用户及数据表的方法
  5. 书论37 李嗣真《书后品》
  6. “剥皮”法求区域中心
  7. 宁波银行金融科技部2023届校招开始了!内推码:90OF50
  8. 七十八首适合相册视频的背景音乐
  9. Java实现暂停_Java中暂停线程的简单实现
  10. HINTERNET 句柄