码迷,mamicode.com
首页 > 其他好文 > 详细

Div 内容垂直居中

时间:2015-04-30 18:15:38      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:html   css   


感觉 CSS 有很多可以hack 的,好玩的地方。

想了一个简单的,诡异的办法,让Div 中想展现的内容垂直居中。

而不去使用 flexbox, JS, Less, Scss, rotate, before, after。

可以在 container 头部塞一个与“内容区域”一样大小的 div,然后设置“内容区域”的 bottom 为父亲的 50%,

最后计算下,会发现“内容区域”上下距离相等。


<html>
    <head>    
        <style type="text/css">    
          
            #container {        
                position: relative;
                left: 200px;
                top: 100px;
                width: 100px;
                height: 400px;
                background-color: #7873fa;
            }
            
            #offset-head {            
                height: 50px;       
            }
            
            #offset-body {
                width: 100px;
                height: 350px;     
                position: relative;
            }
       
            #show {
                width: 100px;
                height: 50px;
                background-color: #ffbc3e;
                position: absolute;
                bottom: 50%;
            }
            
        </style>          
    </head>
    <body> 
        <div id="container">       
            <div id="offset-head"></div>
            <div id="offset-body">
                <div id="show"></div>            
            </div>
        </div>         
    </body>
</html>


效果图:

技术分享

不过代码发生改动的时候,比如:

将黄色 (show ) 变高时,需调整offset-headheight使showoffset-head 两者的height一样高。

改动 containerheight 时,需将offset-bodyheight 改成container.height - offset-head.height


Div 内容垂直居中

标签:html   css   

原文地址:http://blog.csdn.net/pandora_madara/article/details/45396579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!