博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css居中div的几种常用方法
阅读量:6991 次
发布时间:2019-06-27

本文共 2839 字,大约阅读时间需要 9 分钟。

在开发过程中,很多需求需要我们居中一个div,比如html文档流当中的一块div,比如弹出层内容部分这种脱离了文档流等。不同的情况有不同的居中方式,接下来就分享下一下几种常用的居中方式。

1.text-align:center方式

代码:

  
123  
.center{
  text-align:center;}center_text{
  display:inline-block;  width:500px}

这种方式可以水平居中块级元素中的行内元素,如inline,inline-block;

 

 

但是如果用来居中块级元素中的块级元素时,如div中的div,一旦内层的div有自己的宽度,这种方法就会失效。只能让里面div的文字等内容居中,而div仍然是左对齐的。

还有一种情况,当内部的元素脱离了文档流,display:absolute的情况下,不管是否是块级元素,都会居中,但是这种居中不是基于内部div的内容的,而是内部div最左端,内部div的最左端在div的中间(前提外部div设置了position:relative/absolute/fixed);

 

 

2.margin:0 auto方式

代码:

  
我是块级元素,我是块级元素,我给自己设了display:block  

 

center_text{  display:block;  width:500px   margin:0 auto;}

这种对齐方式要求内部元素(.content_text)是块级元素,并且不能脱离文档流(如设置position:absolute),否则无效。

 

3.脱离文档流的居中方式

 这种通常应用在自定义弹框当中,把背景层设置成透明灰色,内容居中显示在最前面。

代码:

  
    我是要居中的板块  

 

.mask{  display: block;  position: fixed;  top: 0;  left: 0;  width: 100%;  height: 100%;  background: #000;  filter: alpha(opacity=30);  -ms-filter: "alpha(opacity=30)";  opacity: .3;  z-index: 10000;}.center{    display: block;    position: fixed;    _position: absolute;    top: 50%;    left: 50%;    width: 666px;    height:400px;    margin-left: -333px;    margin-top: -200px;    z-index: 10001;    box-shadow: 2px 2px 4px #A0A0A0, -2px -2px 4px #A0A0A0;    background-color: #fff;}

效果:

 

 

这种居中方式,把内部div设置宽高之后,再设置top、left各为50%,设置完之后,这里是按照左端居中的,接着我们使用负边距的方式调整,将margin-top设置为负的高度的一半,margin-left设置为负的宽度的一半,就可以居中了。

这种方式还有一种居中方法就是设置margin:-(内部div高度的一半) auto;这用就不用设置left的值了。

 

4.display:table-cell

display:table-cell配合width,text-align:center,vertical-align:middle让大小不固定元素垂直居中,这个方式将要对其的元素设置成为一个td,float、absolute等属性都会影响它的实现,不响应margin属性;

 

代码:

 

  
    1111111   

 

 

.center {  display: table;  width: 100%;}.center_text {  display: table-cell;  text-align: center;  vertical-align: middle;}

  

 

5.垂直居中

行内元素的垂直居中把height和line-height的值设置成一样的即可。

代码:

  
    我是要居中的内容   

 

center{  height:40px;  line-heigth:40px; }

这样内部的span标签就可以居中了。

 

6.使用css3的translate水平垂直居中元素 

代码:

  
    我是要居中的内容   

 

.center {    position: relative;    height: 500px;}.center_text{    position: absolute;    top: 50%;     left: 50%;    transform: translate(-50%, -50%);    width: 300px;     height: 600px;}

这种方式将脱离文档流的元素,设置top:50%,left:50%,然后使用transform来向左向上便宜半个内元素的宽和高。

 

7.使用css3计算的方式居中元素calc

代码:

  
    我是要居中的内容   

 

.center {    position: relative;    height: 300px;    width: 1000px;    border: 1px solid #ccc;}.center_text{    position: absolute;    top: calc(50% - 50px);    left: calc(50% - 150px);    width: 300px;    height: 100px;    border: 1px solid #000;}

效果:

这种方式同样是将脱离文档流的元素,然后使用计算的方式来设置top和left;

 

以上是几种居中的方式,前3种是比较常用的,只要了解原理,后几种都是这个原理的不同实现方式。 

 

转载于:https://www.cnblogs.com/zhangwenjiajessy/p/6130658.html

你可能感兴趣的文章
【RabbitMQ系列】队列、绑定、交换器
查看>>
Run as ant build每次都执行两次
查看>>
如何在微信公众号下载保存图片??
查看>>
Spring读书笔记——bean解析
查看>>
算法练习(5)数字列表中 连续最大的和
查看>>
C# 导出 不保存 直接显示
查看>>
bzoj4445&&dtoj#2348. 小凸想跑步(convex)
查看>>
常见模块设计--权限管理(一)
查看>>
powerdesigner中实现PDM到MYSQl数据库的转换《转》
查看>>
解决element-ui 中upload组件使用多个时无法绑定对应的元素
查看>>
[Docker]容器镜像
查看>>
stl学习之模板
查看>>
CentOS-7.3.1611编译安装 Nginx-1.12.1+mysql-5.7.19+PHP-7.1.8+zabbix-3.4.1
查看>>
元学习 - Learning How to Learn - 第一课:集中与发散思维
查看>>
一种具有细节保留功能的磨皮算法。
查看>>
排序算法7--选择排序--堆排序
查看>>
iOS开发规范&建议
查看>>
[原]如何为SqlServer2008数据库分配用户
查看>>
【leetcode】Basic Calculator III
查看>>
关于CCS中一些错误的解决方法
查看>>