几种常见的水平垂直居中方法

2022-08-20  本文已影响0人  欢宝吖_

常见的水平垂直居中方式

我将分为两个部分,一个是从行内元素,另一个是从块级元素两个部分来分享。水平垂直居中的方式很多,这篇文章就列举几种比较常见比较简单的方法。

行内元素

常见的行内元素有span标签、input标签、img标签等

html代码块

<div>
    <span>青春不常在,抓紧谈恋爱</span>
</div>
<div><a href="https://www.jianshu.com/">简书</a></div>
<div><input type="text"></div>

css代码块

<style>
    * {
        margin: 0;
        padding: 0;
    }/*清楚浏览器默认样式*/
        
    div {
        height: 100px;/*块级元素的高*/
        background-color: pink;
        margin-top: 10px;
        text-align: center;/*块级元素中的行内元素水平居中*/
        line-height: 100px;/*块级元素的行高与高相等,即可实现行内元素垂直居中*/
    }
</style>

效果图

行内元素水平垂直居中.png

无论浏览器是否缩放,无论浏览器窗口大小,行内元素都会实现水平垂直居中

html代码块

<div>
    <span>青春不常在,抓紧谈恋爱</span>
    <img src="./images/snow.jpg" height="300px">
</div>

css代码块

<style>
    * {
        margin: 0;
        padding: 0;
    }
    
    div {
        height: 300px;
        background-color: pink;
        text-align: center;/*水平居中对齐*/
    }
    
    img {
        vertical-align: middle;/*垂直居中,基线对齐*/
    }
</style>

效果图

图片和文字水平垂直居中.png

vertical-align属性的定义:该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。

块级元素

常见的块级元素有p标签、div标签等

html代码块

 <div class="father">
    <div class="son"></div>
</div>

css代码块

<style>
    * {
        margin: 0;
        padding: 0;
    }
    
    .father {
        width: 100%;
        height: 300px;
        background-color: pink;
        position: relative;/*父级元素相对定位*/
    }
    
    .father .son {
        width: 200px;
        height: 200px;
        background-color: skyblue;
        position: absolute;/*绝对定位*/
        top: 50%;
        left: 50%;
        margin-top: -100px;
        margin-left: -100px;
    }
</style>

效果图

块级元素1.png

html代码块

<div class="father">
    <div class="son"></div>
</div>

css代码块

<style>
    * {
        margin: 0;
        padding: 0;
    }
    
    .father {
        width: 100%;
        height: 300px;
        background-color: skyblue;
        display: flex;/*父级元素弹性盒子布局*/
    }
    
    .father .son {
        width: 200px;
        height: 200px;
        background-color: pink;
        margin: auto;/*外边距自动对齐*/
    }
</style>

效果图

块级元素2.png

html代码块

<div class="father">
    <div class="son"></div>
</div>

css代码块

<style>
    * {
        margin: 0;
        padding: 0;
    }
    
    .father {
        width: 100%;
        height: 300px;
        background-color: palegoldenrod;
        position: relative;
    }
    
    .father .son {
        width: 200px;
        height: 200px;
        background-color: palegreen;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
</style>

效果图


块级元素3.png

html代码块

<div class="father">
    <div class="son"></div>
</div>

css代码块

<style>
    * {
        margin: 0;
        padding: 0;
    }
    
    .father {
        width: 500px;
        height: 500px;
        background-color: wheat;
        display: table-cell;
        vertical-align: middle;
    }
        
    .father .son {
        width: 200px;
        height: 200px;
        background-color: paleturquoise;
        margin: auto;
    }
</style>

效果图

块级元素4.png

这篇文章就整理了几种比较常见的方法,有其他方法可以实现效果的同学也可以一起相互讨论噢~

上一篇 下一篇

猜你喜欢

热点阅读