CSS 如何实现垂直居中的几种方法(必看)

看淡拥有,不刻意追求某些东西,落叶归根,那些属于你的,总会回来。劳动的意义不仅在于追求业绩,更在于完善人的心灵。

最近在学关系型数据库相关,MySQL 和 Postgre,捎带着学了 PHP,为了练手这几天就忙着自己搭博客,项目部署在某云上,该云算是良心,给的空间自己搭博客用足够了。本来想着每日一bo的,所以有的时候实在来不及就只能隔天更新了。以后尽量发点东西出来,等博客搭完写一写 SQL 数据库基础相关的分享,给跟我一样的小白道友们做下参考,大神请直接无视~

说到居中,很多人第一反应应该是水平居中,说到水平居中,肯定道友们有一万种方法做到,CSS3 的FlexBox更是强大到没朋友。但是良辰今天想聊的是 CSS 垂直居中的方法,下面是萌萌的分割线。神马?你敢说不萌?

方式一 :table 布局方法

•直接上🐴:

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPEhtml>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <style>
  9. .container{
  10. width:200px;
  11. height:200px;
  12. font-weight:bold;">deepskyblue;
  13. display:table;
  14. }
  15. .cell{
  16. display:table-cell;
  17. vertical-align:middle;
  18. font-weight:bold;">lawngreen;
  19. }
  20. .content{
  21. font-weight:bold;">yellow;
  22. }
  23. </style>
  24. <divclass="container">
  25. <divclass="cell">
  26. <divclass="content">
  27. Content
  28. </div>
  29. </div>
  30. </div>
  31. </body>
  32. </html>

效果:

  • •分析

    •优点:content 高度可以动态改变,无须担心父级容器高度不够被截断;

    •缺点:IE8 还没搞定。  

    •方式二:布局对象固定高度

    CSS Code复制内容到剪贴板
    1. <!DOCTYPEhtml>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>vertical-center</title>
    6. </head>
    7. <body>
    8. <style>
    9. .container{
    10. width:200px;
    11. height:200px;
    12. background-color:#003366;
    13. position:relative;
    14. text-align:center;
    15. display:table;
    16. }
    17. .content{
    18. width:100px;
    19. height:100px;
    20. background-color:yellow;
    21. position:absolute;
    22. top:50%;
    23. margin-top:-50px;
    24.     left:50%;
    25.   margin-left:-50px;
    26. }
    27. .point{
    28. width:50px;
    29. height:50px;
    30. position:absolute;
    31. top:50%;
    32. margin-top:-25px;
    33. left:50%;
    34. margin-left:-50px;
    35. background-color:green;
    36. }
    37. </style>
    38. <divclass="container">
    39. <divclass="content">
    40. <divclass="point">
    41. pointgoeshere.
    42. </div>
    43. </div>
    44. </div>
    45. </body>
    46. </html>

    •就这样,我们实现了垂直和水平的居中

  • 上面提到的方法,都有局限性,下面介绍一种通用的方法,不过是 CSS3实现的,但是通用。

    XML/HTML Code复制内容到剪贴板
    1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    2. <htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en">
    3. <head>
    4. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
    5. <title>haorooms不固定高度div写法</title>
    6. <style>
    7. .center{
    8. position:fixed;
    9. top:50%;
    10. left:50%;
    11. background-color:#000;
    12. width:50%;
    13. height:50%;
    14. -webkit-transform:translateX(-50%)translateY(-50%);
    15. }
    16. </style>
    17. </head>
    18. <body>
    19. <divclass="center"></div>
    20. </body>
    21. </html>

    •看吧,我们只是吧 margin 变成translate,其他浏览器的写法如下:

    -webkit-transform: translateX(-50%) translateY(-50%);

    -moz-transform: translateX(-50%) translateY(-50%);

    -ms-transform: translateX(-50%) translateY(-50%);

    transform: translateX(-50%) translateY(-50%);•justify-content:center;//子元素水平居中

    align-items:center;//子元素垂直居中

    display:-webkit-flex; 就先写这么多吧,先吃饭去啦~

    以上这篇CSS 实现垂直居中的几种方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

    原文地址:http://www.cnblogs.com/Slim-Shady/archive/2016/06/13/5582324.html

    您可能有感兴趣的文章
    CSS如何实现Tab布局的简单实例(必看)

    空心三角形的简单如何实现(必看篇)

    CSS水平居中总结(新手必看篇)

    CSS重要属性之 margin 属性知识大整合(必看篇)

    CSS 之margin知识点(必看)