如何竖直居中一个元素


本文摘自PHP中文网,作者藏色散人,侵删。

竖直居中一个元素的方法:1、通过“line-height”属性对单行内联元素实现垂直居中;2、利用flex布局实现垂直居中;3、使用“absolute+负margin”实现块级元素垂直居中。

垂直居中

1.单行内联元素垂直居中

1

2

3

4

5

6

7

8

9

10

<div id="box">

     <span>单行内联元素垂直居中。</span>。

</div>

<style>

 #box {

    height: 120px;

    line-height: 120px;

    border: 2px dashed #f69c55;

    }

</style>

2.多行内联元素垂直居中

①利用flex布局(flex)

利用flex布局实现垂直居中,其中flex-direction: column定义主轴方向为纵向。这种方式在较老的浏览器存在兼容性问题。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<div class="parent">

    <p>Dance like nobody is watching, code like everybody is.   

    Dance like nobody is watching, code like everybody is.   

    Dance like nobody is watching, code like everybody is.</p>

</div>

<style>

    .parent {

        height: 140px;

        display: flex;

        flex-direction: column;

        justify-content: center;

        border: 2px dashed #f69c55;

    }

</style>

企业微信截图_1593658599701.png

②利用表布局(table)

利用表布局的vertical-align: middle可以实现子元素的垂直居中

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<div class="parent">

    <p class="child">The more technology you learn, the more you realize how little you know.

    The more technology you learn, the more you realize how little you know.

    The more technology you learn, the more you realize how little you know.</p>

</div>

 <style>

    .parent {

        display: table;

        height: 140px;

        border: 2px dashed #f69c55;

    }

    .child {

        display: table-cell;

        vertical-align: middle;

    }

</style>

3 块级元素垂直居中

①使用absolute+负margin(已知高度宽度)

通过绝对定位元素距离顶部50%,并设置margin-top向上偏移元素高度的一半,就可以实现了。

1

2

3

4

5

6

7

8

9

10

11

12

<div class="parent">

    <div class="child">固定高度的块级元素垂直居中。</div>

</div>

.parent {

position: relative;

}

.child {

position: absolute;

top: 50%;

height: 100px;

margin-top: -50px;

}

②使用absolute+transform

当垂直居中的元素的高度和宽度未知时,可以借助CSS3中的transform属性向Y轴反向偏移50%的方法实现垂直居中。但是部分浏览器存在兼容性的问题。

1

2

3

4

5

6

7

8

9

10

11

<div class="parent">

    <div class="child">未知高度的块级元素垂直居中。</div>

</div>

.parent {

position: relative;

}

.child {

position: absolute;

top: 50%;

transform: translateY(-50%);

}

③使用flex+align-items

通过设置flex布局中的属性align-items,使子元素垂直居中。

1

2

3

4

5

6

7

<div class="parent">

    <div class="child">未知高度的块级元素垂直居中。</div>

</div>

.parent {

    display:flex;

    align-items:center;

}

④使用table-cell+vertical-align

通过将父元素转化为一个表格单元格显示(类似 <td> 和 <th>),再通过设置 vertical-align属性,使表格单元格内容垂直居中。

1

2

3

4

5

6

7

8

9

<div class="parent">

  <div class="child">Demo</div>

</div>

<style>

  .parent {

    display: table-cell;

    vertical-align: middle;

  }

</style>

推荐学习:《前端视频

以上就是如何竖直居中一个元素的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

怎样定义内联元素span的最小高度

css如何禁止元素的点击事件

dom节点 vs 元素,两者有什么区别?

html元素语法介绍

css中什么属性可为元素设置外边距

css如何控制元素的显示与隐藏

div标签中的元素margin-top失效的解决方法

如何伸展一个元素到窗口高度

css实现元素自适应屏幕大小的思路是什么

css3中让图像居中可以使用哪个元素

更多相关阅读请进入《元素》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...