zoukankan      html  css  js  c++  java
  • 实现DIV居中的几种方法

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>demo</title>
        </head>
        <body>
            <style type="text/css">
                .div1{  width: 100px; height: 100px; border: 1px solid #000000;} 
                .div2{ width:40px ; height: 40px; background-color: green;}
            </style>
    
            <div class="div1">
                <div class="div2">
    
                </div>
            </div>
    
        </body>
    </html>

    如上的两个div,实现div2在div1里面是居中显示

    一、方法一

      利用margin,div1的宽减去div2的宽就是div2margin-left的数值:(100-40)/2=30

      div1的高减去div2的高就是div2margin-top的数值:(100-40)/2=30

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>demo</title>
        </head>
        <body>
            <style type="text/css">
                .div1{  width: 100px; height: 100px; border: 1px solid #000000;} 
                .div2{ width:40px ; height: 40px; background-color: green;}
    
                .div22{
                    margin-left: 30px;margin-top: 30px;
                }
            </style>
    
            <div class="div1">
                <div class="div2 div22">
    
                </div>
            </div>
    
        </body>
    </html>

    二、方法二

      利用css的 position属性,把div2相对于div1的top、left都设置为50%,然后再用margin-top设置为div2的高度的负一半拉回来,用marg-left设置为宽度的负一半拉回来,css如下设置

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>demo</title>
        </head>
        <body>
            <style type="text/css">
                .div1{  width: 100px; height: 100px; border: 1px solid #000000;} 
                .div2{ width:40px ; height: 40px; background-color: green;}
    
                .div11{
                    position: relative;
                }
                .div22{
                    position: absolute;top:50%;left: 50%;margin-top: -20px;margin-left: -20px;
                }
            </style>
    
            <div class="div1 div11">
                <div class="div2 div22">
    
                </div>
            </div>
    
        </body>
    </html>

    三、方法三

      还是用css的position属性,如下的html

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>demo</title>
        </head>
        <body>
            <style type="text/css">
                .div1{  width: 100px; height: 100px; border: 1px solid #000000;} 
                .div2{ width:40px ; height: 40px; background-color: green;}
    
                .div11{
                    position: relative;
                }
                .div22{
                    position: absolute;margin:auto; top: 0;left: 0;right: 0;bottom: 0;
                }
            </style>
    
            <div class="div1 div11">
                <div class="div2 div22">
    
                </div>
            </div>
    
        </body>
    </html>

    四、方法四

      利用css3的新增属性table-cell

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>demo</title>
        </head>
        <body>
            <style type="text/css">
                .div1{  width: 100px; height: 100px; border: 1px solid #000000;} 
                .div2{ width:40px ; height: 40px; background-color: green;}
    
                .div11{
                    display: table-cell;vertical-align: middle;
                }
                .div22{
                    margin: auto;
                }
            </style>
    
            <div class="div1 div11">
                <div class="div2 div22">
                </div>
            </div>
    
        </body>
    </html>

    这个方法还有一个好处就是,div2的高度可以不固定,如下

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>demo</title>
        </head>
        <body>
            <style type="text/css">
                .div1{  width: 100px; height: 100px; border: 1px solid #000000;} 
                .div2{ width:40px ; background-color: green;}
    
                .div11{
                    display: table-cell;vertical-align: middle;
                }
                .div22{
                    margin: auto;
                }
            </style>
    
            <div class="div1 div11">
                <div class="div2 div22">
                   div居中方法
                </div>
            </div>
    
        </body>
    </html>

  • 相关阅读:
    每周问问你的团队这10个问题
    Android用java代码转换dp或者sp到px
    获取ScrollView的可见高度,和获取HorizontalScrollView的可见宽度
    关于自定义ViewGroup在ScrollView中无法显示的问题.
    Android源码混淆脚本proguard
    关于Bitmap内存溢出问题
    WebView退出时停止视频播放
    WebView页面加载完成后报空指针异常
    最近一次Android源码编译过程
    警告:Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the ...
  • 原文地址:https://www.cnblogs.com/jiekk/p/5802147.html
Copyright © 2011-2022 走看看