使定位元素居中的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>

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

转载于:https://www.cnblogs.com/linsinan/p/6533070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值