美文网首页
元素上下左右居中的几种方法

元素上下左右居中的几种方法

作者: 北冥有鱼我养的 | 来源:发表于2019-05-28 10:37 被阅读0次

定位居中1

让外层div相对定位(得设置宽高),内层div绝对定位,top、left分别设为50%,然后通过设置margin-top、margin-left值为宽度的负数并且是内层div的一半,就可以成功实现垂直水平居中了。如下:

<style>
.one{ position: relative; width: 100%; height: 500px; }
.two{ position: absolute; left: 50%; top:50%; margin-left: -100px; margin-top: -100px; background-color: #a00; width: 200px; height: 200px;  }
</style>

<div class="one">
    <div class="two"></div>
</div>

定位居中2

与1类似,不过将two的定位稍作修改,不用算什么百分比,margin什么的,原理就是让two既要往左也要往右,既要往上也要往下。这时候它就不知所措了,只好待在中间。:

.two{ position: absolute; margin: auto; left: 0; right: 0; top: 0; bottom: 0; background-color: #a00; width: 200px; height: 200px;  }

这个方法,不仅能在内部宽度不确定时发挥作用,还能兼容各种主流浏览器,看上去似乎很完美,但事实上,当我们的需求改为:宽度随内部文字自适应 ,即宽度未设置时,这种方法就无法满足需求了,原因是left、right设为0后,inner在宽度未设置时将占满父元素的宽度。

定位居中3

居中的主要目的是让里面的div在top和left方向发生50%偏移之后,再往回偏移一定距离,而在css3中新增的属性,selector{transform:translate();}也可实现这个功能。translate代表着水平、垂直方向上的转换(位移),其中当括号内的值设为百分比时,将以元素自身宽度为基准,移位相应的宽度,显然设为-50%就可以实现我们想要的效果。
将里面的div样式修改如下:

.two{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);background-color: #a00; width: 200px; height: 200px;  }

这个方法妥善解决了内层div宽度不确定的问题,不用像第一种方法一样计算应该向左向上偏移多少了,但由于使用了css3的新属性,在低版本ie浏览器下是不兼容的。

定位居中4

运用flex布局,flex布局是移动端一种很新潮的布局方法,利用flex布局使元素垂直水平居中,缺点依然是令人头疼的兼容性问题(在ie11-中不起作用),优点是代码量比前几种方法相比略少,方便使用。

<style>
.one{ 
    margin:0 auto;
    width: 100%; 
    height: 500px; 
    display: flex;/*设置外层盒子display为flex*/
    justify-content:center;/*设置内层盒子的水平居中*/
    align-items:center;/*设置内层盒子的垂直居中*/ 
}
.two{ 
    display: inline-block; 
    background-color: #a00; 
    width: 200px; 
    height: 200px;  
}
</style>
<body>
    <div class="one">
        <div class="two">我们都是好孩子</div>
    </div>
</body>

以上就是使div垂直+水平居中的四种方式,各有利弊。

相关文章

  • 文字与元素居中的方式

    我们经常会让元素进行上下左右的居中,这里提供几种方法供大家使用 我们经常会让元素进行上下左右的居中,这里提供几种方...

  • 元素上下左右居中的几种方法

    定位居中1 让外层div相对定位(得设置宽高),内层div绝对定位,top、left分别设为50%,然后通过设置m...

  • CSS垂直居中,你会多少种写法?

    CSS控制居中是前端开发中非常常用的布局技能,本文列出几种CSS控制元素居中的几种方法。  谈及HTML元素居中展...

  • 元素div 上下左右居中方法总结

    元素div 上下左右居中方法总结 情景一:一个浏览器页面中,只有一个div模块,让其上下左右居中 解决方案: { ...

  • CSS居中小结

    下面是CSS居中的几种方法: 水平居中元素: 通用方法,元素的宽高未知 方式一:CSS3 transform 方式...

  • 一、垂直居中方法1:绝对定位 + 元素上下左右为0 + margin:auto方法2:table-cell方法3:...

  • 元素居中的几种方法

    flexbox 绝对定位 + transform

  • CSS水平居中和垂直居中的方法

    本篇文章主要介绍本人最近在CSS学习中整理总结出的水平&垂直居中的几种方法 水平居中 子元素为行内元素、单个块状及...

  • css3 元素居中的几个方法

    原文参考 纯CSS实现垂直居中的几种方法 html 当元素为 block时 position position +...

  • 2020-09-07

    子元素如何居中的几种方法 1. 已知盒子大小: 1) 子盒子:定位+margin(position:...

网友评论

      本文标题:元素上下左右居中的几种方法

      本文链接:https://www.haomeiwen.com/subject/gmjrtctx.html