本文主要介绍水平居中,垂直居中,还有水平垂直居中各种办法,集齐各种常用的居中方法,以备平时工作使用查阅,也欢迎大家更新或者提供建议

水平居中

1.行内元素水平居中

利用 text-align: center 可以实现在块级元素内部的行内元素水平居中。此方法对inline、inline-block、inline-table和inline-flex元素水平居中都有效。

.parent{ text-align:center;//在父容器设置}

此外,如果块级元素内部包着也是一个块级元素,我们可以先将其由块级元素改变为行内块元素,再通过设置行内块元素居中以达到水平居中。如下

常常有一些初学者在使用text-align:center时会碰到不生效的问题,如下面的一个例子

p为块状元素,所以只需要在p的css代码里设置display:inline或display:inline-block,将块状元素转为内联元素即可。对于块状元素也可以使用margin:0 auto;来控制居中。

2.块级元素的水平居中(5种方法)

这种情形可以有多种实现方式,下面我们详细介绍:

1)将该块级元素左右外边距margin-left和margin-right设置为auto

.child{ width: 100px;//确保该块级元素定宽 margin:0 auto;}

2)使用table+margin

先将子元素设置为块级表格来显示(类似),再将其设置水平居中。display:table在表现上类似table元素,实现table一样的居中效果,但是宽度为内容宽。

Demo

3)使用absolute+transform

先将父元素设置为相对定位,再将子元素设置为绝对定位,向右移动子元素,移动距离为父容器的一半,最后通过向左移动子元素的一半宽度以达到水平居中。

Demo

注:不过transform属于css3内容,兼容性存在一定问题,高版本浏览器需要添加一些前缀。

4)使用flex+justify-content

通过CSS3中的布局利器flex中的justify-content属性来达到水平居中。

Demo

也会遇到和transform一样的问题,需要注意浏览器的兼容性

5)使用flex+margin

通过flex将父容器设置为为Flex布局,再设置子元素居中。

Demo

垂直居中

单行内联元素垂直居中

单行内联元素垂直居中。。

2.多行内联元素垂直居中(2种方法)

1)利用flex布局(flex)

利用flex布局实现垂直居中,其中flex-direction: column定义主轴方向为纵向。这种方式在较老的浏览器存在兼容性问题。

Dance like nobody is watching, code like everybody is. Dance like nobody is watching, code like everybody is. Dance like nobody is watching, code like everybody is.

2)利用表布局(table)

利用表布局的vertical-align: middle可以实现子元素的垂直居中

The more technology you learn, the more you realize how little you know. The more technology you learn, the more you realize how little you know. The more technology you learn, the more you realize how little you know.

3 块级元素垂直居中(四种方法)

1)使用absolute+负margin(已知高度宽度)

通过绝对定位元素距离顶部50%,并设置margin-top向上偏移元素高度的一半,就可以实现了

必须要指定父元素的高度,否则出现高度塌陷的问题

2)使用absolute+transform

当垂直居中的元素的高度和宽度未知时,可以借助CSS3中的transform属性向Y轴反向偏移50%的方法实现垂直居中。但是部分浏览器存在兼容性的问题。

未知高度的块级元素垂直居中。

.parent {position: relative;}.child {position: absolute;top: 50%;transform: translateY(-50%);}

3)使用flex+align-items

通过设置flex布局中的属性align-items,使子元素垂直居中

未知高度的块级元素垂直居中。

.parent { display:flex; align-items:center;}

4)使用table-cell+vertical-align

通过将父元素转化为一个表格单元格显示(类似 和 ),再通过设置 vertical-align属性,使表格单元格内容垂直居中。

Demo

水平垂直居中(5种方法)

这种情形也是有多种实现方式。

方法1:绝对定位与负边距实现(已知高度宽度)

注:这种方式需要知道被垂直居中元素的高和宽,才能计算出margin值,兼容所有浏览器。

方法2:绝对定位与margin:auto(已知高度宽度)

这种方式无需知道被垂直居中元素的高和宽,但不能兼容低版本的IE浏览器。

 #container { position: relative; height:100px;//必须有个高度 } #center { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto;//注意此处的写法 }

方法3:绝对定位+CSS3(未知元素的高宽)

利用Css3的transform,可以轻松的在未知元素的高宽的情况下实现元素的垂直居中。 CSS3的transform固然好用,但在项目的实际运用中必须考虑兼容问题,大量的hack代码可能会导致得不偿失。

 #container { position: relative; } #center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

方法4:flex布局

利用flex布局,其中justify-content 用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式;而align-items属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。不能兼容低版本的IE浏览器。

 #container {//直接在父容器设置即可 height: 100vh;//必须有高度 display: flex; justify-content: center; align-items: center; }

方法5:flex/grid与margin:auto

容器元素设为 flex 布局或是grid布局,子元素只要写 margin: auto 即可,不能兼容低版本的IE浏览器。

 #container { height: 100vh;//必须有高度 display: grid; } #center { margin: auto; }

链接文章

https://segmentfault.com/a/1190000013966650

https://juejin.im/post/5bc3eb8bf265da0a8a6ad1ce

https://segmentfault.com/a/1190000015095402

aspose.words 表格内容水平居中_CSS十五种方法教你如何居中一个元素相关推荐

  1. Python实现将内容写入文件的五种方法总结

    本篇带你详细看一下python将内容写入文件的方法以及细节,主要包括write()方法.writelines() 方法.print() 函数.使用 csv 模块.使用 json 模块,需要的可以参考一 ...

  2. 五种方法教你永久关闭win10自动更新

    五种方法教你永久关闭win10自动更新 注意:Win10自动更新关闭后,系统长期不更新当您再次尝试将系统更新到新版本系统,可能会导致系统出错.若您担心系统出错,可以提前对系统备份. 一:Windows ...

  3. 五种方法教你解除电脑开机密码

    大家在设置自己电脑的开机密码的时候,有时候可能会忘记自己的开机密码,下面我给大家介绍一下解除电脑开机密码的五种方法. 方法一.在开机时,按下F8进入"带命令提示符的安全模式",输入 ...

  4. python二维列表转为一维列表(十五种方法)

    随机生成二维列表: import random random.seed(123) a=[[random.randint(0,10) for j in range(random.randint(3,6) ...

  5. 你没看错,勾股定理证明七十五种方法

    勾股定理是平面几何中最重要的定理!它是历史上第一个将数与形联系起来的定理,开启了论证几何的开端,甚至引发了第一次数学危机,勾股定理的发现使人们加深了对数的理解,发现了无理数.勾股定理也是历史上第一个给 ...

  6. 五种方法教你预防ddos攻击

    DDoS攻击是一种常见攻击,可确实是个困扰运维人员最为恼火的问题,可导致网站宕机.服务器崩溃.内容被篡改甚至品牌/财产严重受损.其实防御DDoS攻击除了运维人员日常的一些防范意识及操作外,IDC服务商 ...

  7. 五种方法教你鉴别山寨、欺诈和钓鱼网站

    互联网的发展给我们购物.存取款以及与周围的人交流的方式都带来了很多极其便利的进步.然而与此同时,层出不穷的各种山寨.欺诈和钓鱼网站也带来了新的风险--针对那些毫无防范的人,犯罪分子有了新的犯罪途径:网 ...

  8. php 错误关闭_五种方法教你如何关闭php错误回显信息

    有几种方法可以屏蔽错误回显信息: 1.php.ini的display_errors在php.ini文件中找到display_errors设置项,如果前面有分号,需要删去分号,并将值改为off 2.ph ...

  9. js获取元素的五种方法

    在使用Javascript的过程中我们经常都需要获取元素 ,接下来就给大家介绍一下我知道的在js中获取元素的五种方法. 1.根据选择器查找元素 1.1  document.querySelector( ...

最新文章

  1. 首届腾讯数字安全创新大赛在京启动,挖掘新锐力量推动产业创新
  2. oracle rac em cluster name,ORACLE 11G RAC重建EM问题
  3. asp.net mvc 用Redis实现分布式集群共享Session。
  4. HashMap的使用方法及注意事项
  5. C#设计模式系列:抽象工厂模式(AbstractFactory)
  6. create-react-app 开发环境编译太慢的解决方案
  7. 根据车辆型号自动生成车辆编号
  8. Eclipse连接小米手机无连接显示解决办法
  9. 数仓建模—元数据管理
  10. 各种音视频编解码学习详解之 编解码学习笔记(三):Mpeg系列——Mpeg 1和Mpeg 2
  11. 你知道上海社保缴费基数吗?上海各类人员的社保缴费基数
  12. 新浪微博上市好故事难讲
  13. 前端实现图片快速反转替换_canvas实现图片镜像翻转的2种方式
  14. CSS3 线性渐变循环动画
  15. 2019年软件评测师真题精选
  16. RabbitMQ(四)远程连接RabbitMQ
  17. 『每周译Go』写了 50 万行 Go 代码后,我明白这些道理
  18. 巧用VBA统一数字单位
  19. day43--插入排序
  20. 从sql server 到mysql,从Microsoft SQL Server到MySQL的转换

热门文章

  1. 移动设计需避免四种常见的用户体验失败
  2. Win7新手系列教程:从安装到简单使用(新人必读)
  3. JAVA-retry 重试
  4. Android Studio 快捷键使用说明
  5. 微信小程序开发——小程序API获取用户位置及异常流处理完整示例
  6. git bash退回上一个文件夹
  7. 第十八章 20结构体与string
  8. PE格式详细讲解1 - 系统篇01|解密系列
  9. leetcode 1143. 最长公共子序列
  10. ****65.磁盘阵列RAID