html水平垂直居中

最近遇到很多居中的问题,就花点时间总结了一下放在这里,以后找也方便,0.0~~ 
1.居中文本

 <div class="wrap">
我在中间……
</div>

1.1. height+line-height+text-center(只能居中单行)

 .wrap{
width:200px;
height:200px;
border:1px solid red;
text-align: center;
line-height: 200px;
}
ps:text-align:center只是将元素下面的内联元素居中显示

1.2display:table-cell(多行固定高度居中)

 .wrap{
width:200px;
height:200px;
border:1px solid red;
text-align: center;
display:table-cell;
vertical-align: middle;
}
display:table-cell:ie67不管用,最好配合display:table;一起用
ie67下:(以后也不用了,不过也放这儿吧)
方法一:(通过em标签高度与父级等高,所以span和em居中就相当于span在父级居中)
 <div class="wrap">
<span>
我在中间…… 我在中间…… 我在中间…… 我在中间……
</span>
<em></em>
</div>
 .wrap{
width:200px;
height:200px;
border:1px solid red;
text-align: center;
}
.wrap span{
vertical-align: middle;
display:inline-block;
width:180px;
}
.wrap em{
height:100%;
vertical-align: middle;
display:inline-block;
}
方法二:(通过给子元素增加一个绝对定位的父级标签,再配合子元素的相对定位水平垂直居中)
 <div class="wrap">
<span class="span1">
<span class="span2">我在中间…… 我在中间…… 我在中间…… 我在中间……</span>
</span>
</div>
 .wrap{
width:200px;
height:200px;
border:1px solid red;
display:table;
position:relative;
overflow: hidden;
}
.wrap .span1{
display:table-cell;
vertical-align: middle;
text-align: center;
*position:absolute;
top:50%;
left:50%;
}
.wrap .span2{
*position:relative;
top:-50%;
left:-50%;
}

1.3padding(内填充,不用多说)

 .wrap{
width:200px;
border:1px solid red;
padding:50px 0;
}

2.居中元素

 <div class="wrap">
<span></span>
</div>

2.1position:absolute+margin负值(必须要有宽高,才能计算margin)

 .wrap{
width:200px;
height:200px;
position:absolute;
top:50%;
left:50%;
margin-top:-101px;
margin-left:-101px;
border:1px solid red;
}
.wrap span{
width:80px;
height:80px;
background:red;
position: absolute;
top:50%;
left:50%;
margin-top:-40px;
margin-left:-40px;
}
ps:position:absolute/fixed使内嵌支持宽高

2.2Position:absolute+margin:auto

 .wrap{
width:200px;
height:200px;
position:absolute;
top:50%;
left:50%;
margin-top:-101px;
margin-left:-101px;
border:1px solid red;
}
.wrap span{
width:80px;
height:80px;
background:red;
position: absolute;
top:;
right:;
bottom:;
left:;
margin:auto;
}

2.3position负值

 <div class="wrap">
<span class="span1">
<span class="span2">fds</span>
</span>
</div>
 .wrap{
width:200px;
height:200px;
position:absolute;
top:50%;
left:50%;
margin-top:-101px;
margin-left:-101px;
border:1px solid red;
}
.wrap .span1{
position:absolute;
top:50%;
left:50%;
width:80px;
height:80px;
}
.wrap .span2{
width:80px;
height:80px;
display:block;
line-height:80px;
text-align:center;
background:red;
position:relative;
top:-50%;
left:-50%;
}

2.4transform: translate(-50%,-50%);(translate相对于自己偏移,不考虑兼容性的情况下,这个方法很好)

 <div class="wrap">
<span >fds</span>
</div>
 .wrap{
width:200px;
height:200px;
position:absolute;
top:50%;
left:50%;
margin-top:-101px;
margin-left:-101px;
border:1px solid red;
}
.wrap span{
width:80px;
height:80px;
background:red;
position:absolute;
top:50%;left:50%;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
-o-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}

2.5并行一个标签

 <div class="wrap">
<span></span>
<em></em>
</div>
 .wrap{
width:200px;
height:200px;
position:absolute;
top:50%;
left:50%;
margin-top:-101px;
margin-left:-101px;
border:1px solid red;
text-align: center;
}
.wrap span{
width:80px;
height:80px;
background:red;
display:inline-block;
vertical-align: middle;
}
.wrap em{
height:100%;
vertical-align:middle;
display:inline-block;
}

2.6display:table和display:table-cell

 <div class="wrap">
<div>
<span></span>
</div>
</div>
 .wrap{
width:200px;
height:200px;
position:absolute;
top:50%;
left:50%;
margin-top:-101px;
margin-left:-101px;
border:1px solid red;
display:table;
}
.wrap div{
display:table-cell;
vertical-align: middle;
text-align: center;
}
.wrap span{
width:80px;
height:80px;
background:red;
display:inline-block;
}

2.7display:box

 <div class="wrap">
<span >fds</span>
</div>
 .wrap{
width:200px;
height:200px;
position:absolute;
top:50%;
left:50%;
margin-top:-101px;
margin-left:-101px;
border:1px solid red;
display: -webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
}
.wrap span{
width:80px;
height:80px;
background:red;
display:block;
}

3.居中浮动元素

 <div class="wrap">
<ul>
<li>fdasfd</li>
<li>fdsfds</li>
<li>fdfds</li>
</ul>
</div>
 .wrap{
width:800px;
height:200px;
margin:200px auto;
border:1px solid red;
position:relative;
overflow: hidden;
}
.wrap ul{
float: left;
position: relative;
left:50%;
top:50%;
border:1px solid red;
height:100px;
}
.wrap li{
float: left;
width:100px;
height:100px;
background:red;
position: relative;
left:-50%;
top:-50%;
margin-left:10px;
list-style: none;
_display:inline; /*ie6双边距*/
*overflow: hidden;/*ie7下面不支持宽度*/
}

关于html水平垂直居中的一些总结吧的更多相关文章

  1. CSS实现水平|垂直居中漫谈

    利用CSS进行元素的水平居中,比较简单,手到擒来:行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.而撸起垂直居中, ...

  2. IE6+未知尺寸元素水平垂直居中

    首先讨论在IE8以上(也就是支持伪元素after的基础上)的2种情况 当有一段不知道长度大小的文字在你面前,你需要使它垂直居中的时候,你肯定会想到:1.text-align:center;水平居中没错 ...

  3. css水平垂直居中对齐方式

    1.文字或者内联元素的垂直水平居中对齐 css属性 -- 水平居中:text-aligin:center; 垂直居中: line-height:height; 例子:. html: <div c ...

  4. CSS实现元素水平垂直居中—喜欢对称美,这病没得治

    [TOC] 在CSS中对元素进行水平居中是非常简单的:如果它是一个行内元素,就对它的父元素应用text-align:center;如果它是一个块级元素,就对它自身应用margin:auto.然而要对一 ...

  5. CSS之水平垂直居中

    在css的世界里,如果我们想让一个块级元素水平居中,想必大家都知道利用margin:0 auto;嘛,这样就可以让块级元素在它的父元素中水平居中了. 列如这样: <!DOCTYPE html&g ...

  6. 【前端攻略】最全面的水平垂直居中方案与flexbox布局

    最近又遇到许多垂直居中的问题,这是Css布局当中十分常见的一个问题,诸如定长定宽或不定长宽的各类容器的垂直居中,其实都有很多种解决方案.而且在Css3的flexbox出现之后,解决各类居中问题变得更加 ...

  7. CSS3中flexbox如何实现水平垂直居中和三列等高布局

    最近这些天都在弥补css以及css3的基础知识,在打开网页的时候,发现了火狐默认首页上有这样一个东西.

  8. 把简单做好也不简单-css水平垂直居中

    44年前我们把人送上月球,但在CSS中我们仍然不能很好实现水平垂直居中. 作者:Icarus 原文链接:http://xdlrt.github.io/2016/12/15/2016-12-15 水平垂 ...

  9. CSS水平垂直居中的方法

    原文链接:http://caibaojian.com/370.html 水平垂直居中,特别是使用在列表的时候经常会用到的,以前有需求的时候我也做过类似的代码,是使用display:table-cell ...

  10. css 水平垂直居中总结

    空闲总结了下水平垂直居中方案,欢迎补充: 水平居中 水平居中有两种情况: 子元素是内联元素 这种那个情况下只需要在父元素定义: text-align:center; 例子: html: //省略了bo ...

随机推荐

  1. Egret HTTP网络

    HTTP 请求与响应: private createGameScene():void { //HTTP 1.0 var request = new egret.HttpRequest(); reque ...

  2. +=与join的性能测试

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  3. Vim C/C++的一键编译

    开始用Vim差不多有两个月的时间, 一开始用Makefile 编译一整个项目无压力, 但是当写到单个文件的时候, 编译就比较麻烦了, 每次都得 :w :!gcc -o 1.exe 1.c :!1 非常 ...

  4. 关于Weblogic Server(介绍)

    Weblogic, 美国Oracle公司名下产品,是一个基于 J2EE 架构.可扩展的应用服务器. 本文档选取部分官方文档翻译 总览 支持多种类型的分布式应用 基于 SOA 应用的理想架构 完整实现 ...

  5. libevent带负载均衡的多线程使用示例

    功能: 主线程根据负载工作线程负载均衡算法,每隔一秒钟向特定的工作线程发送一条字符串信息,工作线程简单的把字符串信息打开出来.   Makefile   eventtest : eventtest.c ...

  6. Struts2之ajax初析

    Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单, ...

  7. Java Random

    第一种情况 Random rand = new Random(47); for(int i=0;i<10;i++) System.out.println(rand.nextInt(100)); ...

  8. 执行计划中常见index访问方式(转)

    近期有朋友对于单个表上的index各种情况比较模糊,这里对于单个表上,单个index出现的大多数情况进行了总结性测试,给出了测试结果,至于为什么出现这样的试验结果未做过多解释,给读者留下思考的空间.本 ...

  9. C++ primer读书笔记 chapter3 标准库类型

    除第二章介绍的是C++的基本类型,本章将大致介绍一下C++定义的内容丰富的抽象数据库类型标准库.着重介绍一下sting.vector和bitset. 3.2标准库string类型 1.string类型 ...

  10. common tar command

    Compress tar -cvzf jy2653.2.tgz jy2653.2 Decompress tar -xvf jy2653.1.tgz