创建一个BFC,高度坍塌、居中、margin重合问题均可解决
1、 浮动元素float不为none
2、 绝对定位或固定定位:position:absolute/fixed
3、 行内元素:display:inline-block;
4、 overflow不为visible的块级元素
5、 display值为flow-root、表格单元素table-cell、表格标题table-caption
6、 匿名表格单元格元素

1、水平居中

块级元素
方法一:auto
注意:该元素不可浮动、绝对定位、固定定位

margin: 0 auto;

方法二:calc 注意:两个数值之间必须有空格

position:  relative / absolute / fixed;
left: calc(50% - 元素宽的一半px);    四则运算
top: calc(50% - 元素高的一半px);      垂直居中

方法三:弹性盒子

父级元素属性
display: flex;      弹性盒子
flex-direction: row;        主轴方向为水平方向,起点在左端
justify-content:center;

方法四:定位

position: absolute;
left: 50%;
margin-left: -元素的一半宽px; / transform: translate(-50%,0);2D变换中的属性,延x轴移动自身的-50%

行内元素

text-align: center;  /* 父元素 */

注意:calc低版本IE不支持


2、垂直居中

行内元素:父级元素属性,并且父级元素必须是块元素
方法一(多行文本失效):这个只表示某一行当中的垂直居中

line-height:父元素的高;   将字体高度调整为div的高度
vertical-align: bottom;         暂未理解,底部对齐

方法二(IE8不支持):
父元素相对定位 relative,必须有固定高度,子元素绝对定位absolute

子元素属性
top: 50%;
transform: translate(0,-50%); / calc(50% - 一半高度) /margin-top: -(一半高度);

方法三:弹性盒子(兼容性问题,IE不支持,移动端浏览器都支持)
原理:交叉轴上的内容在轴上居中

父类属性
display: flex;
align-items:center;(垂直居中)

块级元素
方法一:弹性盒子

display: flex;
display: -webkit-flex;
justify-content: space-between;
align-items: center;

方法二:弹性盒子

父元素:display:flex;
子元素:align-self:center;

方法三:vertical-align,IE不兼容

父元素{display: table-cell  / inline-block;vertical-align: middle;
}

方法四:绝对定位

父元素relative
子元素{position: absolute;top: 50%;margin-top: -自身高度的一半;
}

方法五:伪元素before

父元素::before{content: '';display: inline-block;vertical-align: middle;height: 100%;
}
子元素 {display: inline-block;vertical-align: middle;
}

方法六:transformY

子元素{position: relative;top: 50%;transform: translateY(-50%);
}

3、水平垂直居中

方法一:
父元素 {position: relative;
}
子元素 {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}方法二:
父元素{position: relative;height: 50px;
}子元素 {position: absolute;top: 50%;left: 50%;margin-top: -25px;margin-left: -25px;
}方法三:
父元素{display: flex;justify-content: center;align-items: center;
}

4、高度坍塌

方法一:使父元素浮动 float
方法二:清除浮动 clear:both;
方法三:给父级元素固定宽高
方法四:给父元素添加overflow:hidden;
方法五:万能清除法:after伪元素+清除浮动html部分

父元素::after {  content: '';height: 0;clear: both;display: block;
}

前端元素垂直水平居中的多个方法相关推荐

  1. 使一个div垂直+水平居中的几种方法

    前几天去一家互联网公司面试,面试官问到了这个应该算是比较简单的问题,在我自认为回答正确时,才知道这道题的答案有很多种,下面就让我们一起来探讨一下这个问题: 思路1:绝对定位居中(原始版) 这个是我回答 ...

  2. 关于css设置元素垂直水平居中的问题

    第一种: 利用定位属性实现,但需要知道元素的宽高 <div class="box"></div><style>.box{weight:200px ...

  3. css面试题实现元素垂直水平居中-包括未知宽高的元素五种回答

    css实现元素垂直水平居中-包括未知宽高的元素 这个一道很经典的面试题,做项目中也常会出现这样的需求. 现在我就用几种比较常用的方法.兼容性也列出来. 第一种已知宽高(定位加负边距解决)兼容到IE6 ...

  4. html body不定宽居中,纯CSS实现元素垂直水平居中-非固定宽度

    这里不讨论行内元素的居中!! 盒子垂直居中+水平居中的需求时经常遇到的,看到的较多实现逻辑是固定content-box的宽度,通过让margin-left和margin-top等于宽或高的负一半来实现 ...

  5. 用css实现垂直水平居中的几种方法

    1.用inline-block和vertical-align来实现居中:这种方法适合于未知宽度高度的情况下. <!DOCTYPE html> <html lang="en& ...

  6. 元素垂直水平居中布局

    水平居中 水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父容器是 ...

  7. 设置不定宽高的元素垂直水平居中

    1:思路:使用css3 flex布局 优点:简单 快捷 缺点:兼容不好吧,详情见:http://caniuse.com/#search=flex 先看效果 html代码 <div class=' ...

  8. python docx 表格元素垂直水平居中

    doc.tables[0].cell(a, b).vertical_alignment = WD_ALIGN_VERTICAL.CENTER # 垂直居中 doc.tables[0].cell(a, ...

  9. div垂直水平居中经常使用的方法

    通过定位: 父级元素:position: relative; 子元素:  position: absolute; top:50%: left:50%: transform: translate(-50 ...

最新文章

  1. pandas使用split函数将dataframe中的特定列表字段(list column)裂变为多个数据列并拼接到原dataframe中
  2. 笔试分享 | 带你解读校招人工智能笔试题
  3. java编写一个函数_请教如何用java编写一个函数图像生成的应用程序?谢谢!
  4. 数据挖掘—BP神经网络(Java实现)
  5. 跨域资源共享 CORS 详解
  6. 大数据之-Hadoop3.x_Hadoop_MapReduce_介绍---大数据之hadoop3.x工作笔记0081
  7. Lua中的协同程序 coroutine
  8. python使用视频_Python中操作各种多媒体,视频、音频到图片的代码详解
  9. ai替代数据可视化_在药物发现中可视化AI初创公司
  10. excel表格的函数公式大全
  11. 2104.10729阅读笔记
  12. 新物种爆炸:认知升级时代的新商业思维
  13. STM32+光敏模块
  14. 全国城市API(精确到县级)JSON数据
  15. 截图神器推荐 ShareX
  16. 田忌赛马java lms_【044】:田忌赛马
  17. 计算机丢了文件游戏打不开,你好360检测说我电脑文件缺失现在我电脑里游戏客户端打不开了怎么办...
  18. Java零基础学习全套视频笔记
  19. 小程序安卓和ios使用自定义字体,解决安卓不生效问题
  20. 基于时间轮的定时器HashedWheelTimer

热门文章

  1. SAP批次管理-内容概览
  2. java 非侵入式_Java非侵入式API接口文档工具apigcc用法详解
  3. 【Vue2】vue2全内容整理
  4. LeetCode 1.Minimum Path Sum 2.Unique Paths I and II
  5. 八旬拾荒婆婆捐万元助学 蜗居8平米地下室
  6. 淘晶驰串口屏_ 控件事件详解
  7. thinkphp5 验证码跨域/验证失败 问题解决方案
  8. IDEA反编译出整个jar包源码
  9. 安卓六大平台开发者注册地址和方法链接
  10. 仿写练习-京东商城导航条