结合CSS3的新特性来总结垂直居中的如何实现方法

不是别人逼你去优秀,是你自己为自己而奋斗。身体是自己的,健康是自己的,难受也是自己的,所以不要想吃什么就吃什么。

0.单行内容的居中
只考虑单行是最简单的,无论是否给容器固定高度,只要给容器设置 line-height 和 height,并使两值相等,再加上 over-flow: hidden 就可以了

CSS Code复制内容到剪贴板
  1. .middle-demo-1{
  2. height:4em;
  3. line-height:4em;
  4. overflow:hidden;
  5. }

优点:
(1). 同时支持块级和内联极元素
(2). 支持所有浏览器
缺点:
(1). 只能显示一行
(2). IE中不支持<img>等的居中
要注意的是:
(1). 使用相对高度定义你的 height 和 line-height
(2). 不想毁了你的布局的话,overflow: hidden 一定要
为什么?
请比较以下两个例子:

XML/HTML Code复制内容到剪贴板
  1. <pstyle="background:#900;color:#00f;font:bold12px/24pxHelvertica,Arial,sans-serif;height:24px;width:370px;">Loremipsumdolorsitamet,consectetueradipiscingelit.</p>
  2. <br/>
  3. <br/>
  4. <pstyle="background:#090;color:#00f;font:bold12px/2emHelvertica,Arial,sans-serif;height:2em;width:370px;overflow:hidden;">Loremipsumdolorsitamet,consectetueradipiscingelit.</p>

上一个高度是用的绝对单位px,并且没有隐藏溢出,下一个高度用的单位是相对单位em,并且隐藏了溢出。如果你的浏览器支持放大字体,那么尽情地放大字体,看看会出现什么效果。

1.使用position:absolute(fixed),设置left、top、margin-left、margin-top的属性;

CSS Code复制内容到剪贴板
  1. .box{
  2. position:absolute;/*或fixed*/
  3. top:50%;
  4. left:50%;
  5. margin-top:-100px;
  6. margin-left:-200px;
  7. }

2.利用position:fixed(absolute)属性,margin:auto这个必须不要忘记了;

CSS Code复制内容到剪贴板
  1. .box{
  2. position:absolute;或fixed
  3. top:0;
  4. rightright:0;
  5. bottombottom:0;
  6. left:0;
  7. margin:auto;
  8. }

3.利用display:table-cell属性使内容垂直居中;

CSS Code复制内容到剪贴板
  1. .box{
  2. display:table-cell;
  3. vertical-align:middle;
  4. text-align:center;
  5. width:120px;
  6. height:120px;
  7. background:purple;
  8. }

4.使用css3的新属性transform:translate(x,y)属性;

CSS Code复制内容到剪贴板
  1. .box{
  2. position:absolute;
  3. transform:translate(50%,50%);
  4. -webkit-transform:translate(50%,50%);
  5. -moz-transform:translate(50%,50%);
  6. -ms-transform:translate(50%,50%);
  7. }

5.最高大上的一种,使用:before元素;

CSS Code复制内容到剪贴板
  1. .box{
  2. position:fixed;
  3. display:block;
  4. background:rgba(0,0,0,.5);
  5. }
  6. .box:before{
  7. content:'';
  8. display:inline-block;
  9. vertical-align:middle;
  10. height:100%;
  11. }
  12. .box.content{
  13. width:60px;
  14. height:60px;
  15. line-height:60px;
  16. color:red;

6.Flex布局;

CSS Code复制内容到剪贴板
  1. .box{
  2. display:-webkit-box;
  3. display:-webkit-flex;
  4. display:-moz-box;
  5. display:-moz-flex;
  6. display:-ms-flexbox;
  7. display:flex;
  8. 水平居中
  9. -webkit-box-align:center;
  10. -moz-box-align:center;
  11. -ms-flex-pack:center;
  12. -webkit-justify-content:center;
  13. -moz-justify-content:center;
  14. justify-content:center;
  15. 垂直居中
  16. -webkit-box-pack:center;
  17. -moz-box-pack:center;
  18. -ms-flex-align:center;
  19. -webkit-align-items:center;
  20. -moz-align-items:center;
  21. align-items:center;
  22. }

到此这篇关于结合CSS3的新特性来总结垂直居中的如何实现方法就介绍到这了。一个人身边没有人,就容易寂寞。但一个人心里没有人,才会空虚。更多相关结合CSS3的新特性来总结垂直居中的如何实现方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
css让页脚保持在底部位置的四种方案

CSS如何使用Flex和Grid布局如何实现3D骰子

Flex布局史上最简单使用语法教程

新的CSS 伪类函数 :is() 和 :where()示例详解

纯CSS打字动画的如何实现示例