如何居中一个浮动元素【2015-05-15】

昨天面试的时候,做到了一道题,如何居中一个浮动元素?
那么

如何居中一个浮动元素呢?

当时取巧写了两个方法:

1、给定一个父元素,设置父元素居中

2、在浮动元素左侧加一个div,设置浮动且宽度为响应式,并且visibility:hidden,以达到浮动元素居中的目的。

回来后总觉得有些不妥,就百度了一下,找到了如下方法,记录以备查阅!
  • 设置容器的浮动方式为相对定位

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <!DOCTYPE HTML>  
    <html>
    <head>
    <style type="text/css">
    div{
    width: 500px; /*跟要居中的浮动元素大小一致即可*/
    height: 300px;
    margin: -150px 0 0 -250px;
    position: absolute;
    left: 50%;
    top: 50%;
    background-color: yellow;
    }
    </style>
    </head>
    <body>
    <div>
    元素居中
    </div>
    </body>
    </html>

首们需要position:absolute;绝对定位。而层的定位点,使用外补丁margin负值的方法。负值的大小为层自身宽度高度除以二。
如:一个层宽度是400,高度是300。使用绝对定位距离上部与左部都设置成50%。而margin-top的值为-150。margin-left的值为-200。这样我们就实现了层垂直居中于浏览器的样式编写

  • 如果你是想让div垂直居中与div,那么你可以在父级div上加一个position:relative即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<style type="text/css">
<!--
div {
position:absolute;
top:50%;
left:50%;
margin:-150px 0 0 -200px;
width:400px;
height:300px;
border:1px solid #008800;
}
-->
</style>
<div>让层垂直居中于浏览器窗口</div>
posted @ 2015-07-22 12:19  憔悴心只为你  阅读(343)  评论(0编辑  收藏  举报