• 使定位元素居中的4种方法例举


    例子:

    创建两个div,定位父级‘box’  和   定位元素‘sun’。本文要做的是 ‘sun’ 要在 ‘box’ 中居中显示, 该怎么做呢?

    定位前效果图

     

    定位元素居中后的效果图

     

    HTML代码:

     

    <!--定位元素父级-->
        <div id="box">
            <!--定位元素-->
            <div id="sun"></div>
        </div>
    
    样式代码:
    <style type="text/css">
            /*定位父级*/
            #box{
                width:200px;
                height:110px;
                border:1px solid #000;
                position:relative;
            }
    
            /*定位元素*/
            #box #sun{
                width:100px;
                height:100px;
                background:red;
                position:absolute;
            }
        </style>

    下面我来依次介绍使定位元素居中的4种方法。

      

    方法一:计算定位居中时‘sun’元素的"left", "top" 属性值。

    Top属性的值公式:Top属性值 =(‘box’元素的height  – ‘sun’元素的height)÷2;

    Left属性的值公式:left属性值 =(‘box’元素的width  – ‘sun’元素的width)÷2;

    样式代码:

    <style type="text/css">
    
    /*定位元素*/
            #box #sun{
                width:100px;
                height:100px;
                background:red;
                position:absolute;
                top:5px;/*(110-100)÷2*/
                left:50px;/*(200-100)÷2*/            
         }
    
    </style>

    这种方法需要计算定位元素的"left", "top" 属性值。

    方法二:计算‘sun’元素的"left", "top" 属性值的百分比。

    Top属性的值公式:Top属性值 =(‘box’元素的height  – ‘sun’元素的height)÷2÷‘box’元素的height  ×100%;

    Left 属性的值公式:left属性值 =(‘box’元素的width  – ‘sun’元素的width)÷2÷‘box’元素的width×100%;

    样式代码:

    <style type="text/css">
    
    /*定位元素*/
    #box #sun{
                 width:100px;
                height:100px;
                background:red;
                position:absolute;
                top:4.5%;/*(110-100)÷2÷110×100%*/
                left:25%;/*(200-100)÷2÷200×100%*/
       }
    
    </style>

    这种方法也要需要计算定位元素的"left", "top" 属性值百分比,但是计算方法相对复杂。

    方法三:设置‘sun’元素的"left", "top" 属性值的百分比都为50%,然后设置margin-left的值为‘sun’元素的宽度一半的负值、设置margin-top的值为‘sun’元素的高度一半的负值。

    样式代码:

        <style type="text/css">
    
            /*定位元素*/
            #box #sun{
                width:100px;
                height:100px;
                background:red;
                position:absolute;
                top:50%;
                left:50%;
                margin-top:-50px;/*高度一半的负值*/
                margin-left:-50px;/*宽度一半的负值*/ 
            }
    
        </style>

    这种方法省去了相对复杂的计算过程,但需要知道定位元素的宽高值。

    方法四:设置‘sun’元素的 "left", "top", "right" 以及 "bottom" 属性值都为0,然后设置‘sun’元素的外边据为:auto

    样式代码:

        <style type="text/css">
    
            /*定位元素*/
            #box #sun{
                width:100px;
                height:100px;
                background:red;
                position:absolute;
                top:0;
                left:0;
                right:0;
                bottom:0;
                margin:auto; 
            }
    
        </style>

    这种方法省去了相对复杂的计算过程,也不需要知道定位元素的宽高值。 我把这种方法叫做 ‘万能自适应定位居中’

  • 相关阅读:
    安卓Dialog setCanceledOnTouchOutside(ture) 无效问题
    com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException,OkHttp时间戳校验问题
    安卓recyclerView 分割线的那些事
    安卓小知识
    安卓GridView奇偶行不同颜色
    安卓加载网络图片OOM问题解决
    安卓使用TextView实现图片加文字说明
    内置模块
    递归
    内置函数
  • 原文地址:https://www.cnblogs.com/linsinan/p/6533070.html
Copyright © 2020-2023  润新知