前端知识学习-----居中布局的多种实现方法

水平居中的几种实现方式

01. inline-block + text-align
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    text-align: center;
}
.child {
    display: inline-block
}

02. table + margin
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    display: table;
    margin:0 auto;
}

03. absolute + transform
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    position: relative;
}
.child {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);/*以自身为参照偏移50%*/
}

04. flex + justify-content/margin
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>
.parent {
    display: flex;
    justify-content: center;
}
或者:
.parent {
    display: flex;
}
.child {
    margin: 0 auto;
}

以上方法实现效果:
这里写图片描述

垂直居中

01. table-cell + vertical-align 主要利用table-cell的单元格特性
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    width: 200px;
    height: 200px;
    display: table-cell;
    vertical-align: middle;
}

02. absolute + transform
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    width: 200px;
    height: 200px;
    position: relative;
}
.child {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

03. flex + align-items
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    width: 200px;
    height: 200px;
    display: flex;
    align-items: center;
}

以上代码效果:
这里写图片描述

居中 (水平居中加垂直居中)

01. inline-block + text-align + table-cell + vertical-align
上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    height: 300px;
    width: 300px;
    background: #666;
    text-align: center;
    display: table-cell;
    vertical-align: middle;
}
.child {
    display: inline-block;
    background: #999;
}

02. absolute + transform

上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    height: 300px;
    width: 300px;
    background: #666;
    position: relative;
}
.child {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    background: #999;
}

03. flex + justify-content + align-items

上代码:

<div class="parent">
        <div class="child">DEMO</div>
</div>

.parent {
    height: 300px;
    width: 300px;
    background: #666;
    display: flex;
    justify-content: center;
    align-items: center;
}
.child {
    background: #999;
}

以上代码实现效果:

这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章