zoukankan      html  css  js  c++  java
  • css系列(布局):实现一个元素在浏览器中水平、垂直居中的几个方案

    在开发中偶遇需要一个元素垂直居中的需求,之前都是水平居中,垂直居中使用的比较少,经过一通研究,选择了几种相对比较实用的方案分享,抛砖引玉,如有遗漏不足,还望不吝指正。

    方案一(IE7下该方案无法实现垂直居中):

    通过设置父级的的块属性实现,将父级元素手动转换位display:table-cell属性,然后使用表格的vertical-align: middle属性,实现元素的垂直居中,子元素继续使用margin:0 auto;实现水平居中即可

    代码如下:

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <style>
     7         *{
     8             margin: 0;
     9             padding: 0;
    10         }
    11         .container{
    12             width: 500px;
    13             height: 500px;
    14             display: table-cell;
    15             vertical-align: middle;
    16             background: green;
    17         }
    18         .box{
    19             width: 100px;
    20             height: 100px;
    21             background: #f00;
    22             margin: 0 auto;
    23         }
    24     </style>
    25 </head>
    26 <body>
    27 
    28 <div class="container">
    29     <div class="box"></div>
    30 </div>
    31 </body>
    32 </html>
    View Code

     方案二(IE7下该方案无效):

    使用position:absolute,设置left、top、bottom、right、margin的属性

    代码如下:

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <style>
     7         *{
     8             margin: 0;
     9             padding: 0;
    10         }
    11         .box{
    12             width: 100px;
    13             height: 100px;
    14             background: #f00;
    15             position: absolute;
    16             top: 0;
    17             left: 0;
    18             bottom: 0;
    19             right: 0;
    20             margin: auto;
    21         }
    22     </style>
    23 </head>
    24 <body>
    25 <div class="box"></div>
    26 </body>
    27 </html>
    View Code

     方案三(完美兼容):

    使用position:absolute,设置left、top、margin-left、margin-top的属性,这种方法基本浏览器都能够兼容,不足之处就是需要固定宽高。

    代码如下:

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <style>
     7         *{
     8             margin: 0;
     9             padding: 0;
    10         }
    11         .box{
    12             width: 100px;
    13             height: 100px;
    14             background: #f00;
    15             position:absolute;
    16             top:50%;
    17             left:50%;
    18             margin-top:-50px;
    19             margin-left:-50px;
    20         }
    21     </style>
    22 </head>
    23 <body>
    24 <div class="box"></div>
    25 </body>
    26 </html>
    View Code
    技术交流群:821039247
  • 相关阅读:
    LODOP、C-LODOP注册号的区别
    Lodop强制分页LODOP.NewPage()和LODOP.NewPageA()
    c-lodop云打印实现手机打印 JS语句打印
    如何取消浏览器护眼色 Lodop打印图片有窗口颜色的边框
    PS中如何提高修改psd图片的效率(自动选择工具)
    Lodop如何打印直线
    Lodop打印控件 如何打印虚线
    Lodop窗口的按钮、权限,隐藏或设置功能不可用
    ArrayList与LinkedList区别
    URLDecoder与URLEncoder
  • 原文地址:https://www.cnblogs.com/humaotegong/p/5667359.html
Copyright © 2011-2022 走看看