本文主要包含CSS,div,居中等相关知识,Aaron  希望在学习及工作中可以帮助到您
  很多新手在写css的时候经常遇到的一个问题,当div没有固定的宽度或者高度的时候,如何才能让div水平或者垂直居中显示。
如果div有固定宽度的话,用padding,margin都很容易实现。方法有很多种。不过经常遇到这种div没有固定的宽度高度的情况,我们就不能用margin,padding设置固定的距离了。这个问题让很多人头疼。而怎么样才能让这个div居中显示呢?其实这种情况解决的办法也是有很多种,js,css都可以实现。
这里主要介绍一下采用css的方法,有什么问题还请各位看官指出。
方法一:
用一个“ghost”伪元素(看不见的伪元素)和 inline-block / vertical-align 可以搞定居中,非常巧妙。但是这个方法要求待居中的元素是 inline-block,不是一个真正通用的方案。
html如下:
- <div class="block" style="height: 300px;">
 - <div class="centered">
 - <h1>haorooms案例题目</h1>
 - <p>haorooms案例内容,haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容</p>
 - </div>
 - </div>
 
css如下:
- /* This parent can be any width and height */
 - .block {
 - text-align: center;
 - }
 - /* The ghost, nudged to maintain perfect centering */
 - .block:before {
 - content: '';
 - display: inline-block;
 - height: 100%;
 - vertical-align: middle;
 - margin-right: -0.25em; /* Adjusts for spacing */
 - }
 - /* The element to be centered, can
 - also be of any width and height */
 - .centered {
 - display: inline-block;
 - vertical-align: middle;
 - width: 50%;
 - }
 
方法二:
可以用table布局方法,但是这种方法也有局限性!
写法如下:
- <table style="width: 100%;">
 - <tr>
 - <td style="text-align: center; vertical-align: middle;">
 - Unknown stuff to be centered.
 - </td>
 - </tr>
 - </table>
 
由于table写法比较费时,你也可以用div代替table,写法如下:
html:
- <div class=
 

