前端技术分享-码匠 极客编程技术分享

您当前位于:HTML+CSS ——> CSS实现水平垂直居中 - 你可能不知道的其他方法

CSS实现水平垂直居中 - 你可能不知道的其他方法

2015/08/07 17:35:35 | 作者:HTML5学堂(码匠) | 分类:HTML+CSS | 关键词:CSS,水平垂直,居中,float

CSS实现水平垂直居中-其他方法

HTML5学堂:最近给大家分享了许多水平垂直居中的方法,大家可以感受到,知识点虽然少,但是结合在一起的话,就出现了许多实现方法,可以总结出一句话:理解原理,重在灵活应用。不多说了,赶紧来看看其他的实现方法吧。

欢迎沟通交流~HTML5学堂

利用text-align让块元素实现水平垂直居中

  1. <!doctype html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>HTML5Course - 梦幻雪冰</title>
  6.     <link rel="stylesheet" href="reset.css">
  7.     <style>
  8.         .wrap {
  9.             width: 400px;
  10.             height: 300px;
  11.             padding-top: 100px;
  12.             background-color: skyblue;
  13.             text-align: center;
  14.         }
  15.         .con {
  16.             /*展示特性转换成行块元素的展示特性*/
  17.             display: inline-block;
  18.             width: 200px;
  19.             height: 200px;
  20.             background: url("https://mmbiz.qlogo.cn/mmbiz/p6DwiaCENIB6pR8GhsfVeo7382t1SicdA8iahVpBPSRMaFPaHHLXuyXvkryL43R4GuLMOrhVvDFwwfprmH9f9EgVg/0?wx_fmt=jpeg") no-repeat;
  21.             background-size: 100%;
  22.         }
  23.     </style>
  24. </head>
  25. <body>
  26.     <div class="wrap">
  27.         <div class="con"></div>
  28.     </div>
  29. </body>
  30. </html>

效果

利用text-align让块元素实现水平垂直居中

float布局的水平垂直居中

  1. <!doctype html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>HTML5Course - float布局的水平垂直居中</title>
  6.     <link rel="stylesheet" href="reset.css">
  7.     <style>
  8.         .wrap {
  9.             width: 400px;
  10.             height: 400px;
  11.             background-color: skyblue;
  12.         }
  13.         .wrap .outer {
  14.             /*设置浮动的目的是由内容撑开宽高*/
  15.             float: left;
  16.             /*设置相对定位*/
  17.             position: relative;
  18.             left: 50%;
  19.             top: 50%;    
  20.         }
  21.         .inner {
  22.             position: relative;
  23.             left: -50%;
  24.             /*top:50%是不生效的,因为如果没给父元素设置高度,这个50%是计算不出来的, 所以用transform : translate3d(0, -50%, 0)。(参考大搜车前端博客)*/
  25.             /*top: -50%;*/
  26.             background-color: #999;
  27.             color: #fff;
  28.             transform : translate3d(0, -50%, 0);
  29.         }
  30.     </style>
  31. </head>
  32. <body>
  33.     <div class="wrap">
  34.      <div class="outer">
  35.         <div class="inner">HTML5学堂、刘国利、陈能堡</div>
  36.      </div>
  37.     </div>
  38. </body>
  39. </html>

效果

float布局的水平垂直居中

优缺点

原理与CSS实现元素水平垂直居中-网易NEC方法类似。这种方法的优点是元素可以不定宽,任何时候都可以做到居中,不足之处就是当居中元素的父元素left:50%时,如果元素宽度足够大,会超出外面的容器。

display: flex的水平垂直居中

  1. <!doctype html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>HTML5Course - HTML5学堂</title>
  6.     <link rel="stylesheet" href="reset.css">
  7.     <style>
  8.         .wrap {
  9.             /*多栏多列布局*/
  10.             display: -webkit-box;
  11.             display: -webkit-flex;
  12.             display: -ms-flexbox;
  13.             display: flex;
  14.             /*设置弹性盒子元素在纵轴方向上的对齐方式。*/
  15.             /*center意思是弹性盒子元素在该行的纵轴上居中放置*/
  16.             align-items: center;
  17.             /*设置弹性盒子元素在主轴方向上的对齐方式。*/
  18.             justify-content: center;
  19.             width: 400px;
  20.             height: 400px;
  21.             background-color: pink;
  22.         }
  23.         .box {
  24.             background-color: skyblue;
  25.         }
  26.     </style>
  27. </head>
  28. <body>
  29. <div class="wrap">
  30.     <div class="box">
  31.         HTML5学堂、刘国利、陈能堡
  32.     </div>
  33. </div>
  34. </body>
  35. </html>

效果

弹性布局的水平垂直居中

支持程度

flex支持程度

相关文章推荐

CSS实现元素水平垂直居中

CSS实现元素水平垂直居中 - 网易方法

CSS实现元素水平垂直居中 - CSS3 calc方法

欢迎沟通交流~HTML5学堂

微信公众号,HTML5学堂,码匠,原创文章,WEB前端,技术分享

HTML5学堂

原创前端技术分享

HTML5学堂,HTML5,WEB,前端,视频课程,技术视频,学习视频,面试,JS

原创视频课程

用心打造精品课程

微信小程序,决胜前端,面试题,面试题集合,前端,HTML5,真题

小程序-决胜前端

前端面试题宝库

原创书籍,学习书籍,书籍推荐,HTML5布局之路,HTML5,WEB前端

HTML5布局之路

非传统模式讲解前端