css: 常用的元素居中方法

2017-06-07  本文已影响0人  天承本草2020

日常工作中常常会遇到元素居中的需求,通常块级元素的水平居中只需左右margin设为auto即可。而行间元素的居中则是由父级设置行高(等于父级高度)和 text-align(center)实现。

但是如果要求是块级元素水平垂直居中呢?本文总结了一些常用的元素水平垂直居中方法。

absolute

1. 定位实现居中(需计算偏移值)

<div class="absolute_p1"> <div class="absolute_c1"></div>
</div>
.absolute_p1 { position: relative; width: 200px; height: 200px;
}
.absolute_p1 .absolute_c1 { position: absolute; left: 50%; top: 50%; width: 100px; height: 100px; margin-left: -50px; margin-top: -50px; }

2. 定位实现居中(不需计算偏移值)

<div class="absolute_p2"> <div class="absolute_c2"></div>
</div>
.absolute_p2 { position: relative; width: 200px; height: 200px;
}
.absolute_p2 .absolute_c2 { position: absolute; left: 0; top: 0; bottom: 0; right: 0; width: 100px; height: 100px; margin: auto; }

3. 定位实现居中(不需计算偏移值)

<div class="absolute_p3"> <div class="absolute_c3"></div>
</div>
.absolute_p3 { position: relative; width: 200px; height: 200px;
}
.absolute_p3 .absolute_c3 { position: absolute; left: 50%; top: 50%; width: 100px; height: 100px; transform: translate(-50%, -50%);
}

table

<div class="table_p1"> <div class="inner"> <div class="table_c1"></div> </div>
</div>
.table_p1 { display: table; width: 200px; height: 200px;
}
.table_p1 .inner { display: table-cell; vertical-align: middle; text-align: center;
}
.table_p1 .table_c1 { display: inline-block; width: 100px; height: 100px;
}

inline

<div class="inline_p1"> <div class="inline_c1"> </div>
</div>
.inline_p1 { width: 200px; height: 200px; text-align: center; line-height: 200px; }
.inline_p1 .inline_c1 { display: inline; font-size: 0; padding: 50px;
}

伪元素

<div class="before_p1"> <div class="before_c1"> </div>
</div>
.before_p1 { width: 200px; height: 200px; font-size: 0; }
.before_p1::before { display: inline-block; content: ''; height: 100%; vertical-align: middle;
}
.before_p1 .before_c1 { display: inline-block; width: 100px; height: 100px; vertical-align: middle;
}

box flexbox

box 1

<div class="box_p1"> <div class="box_c1"> </div>
</div>
.box_p1 { display: -webkit-box; -webkit-box-pack: center; -webkit-box-align: center; width: 200px; height: 200px;
}
.box_p1 .box_c1 { width: 100px; height: 100px;
}

box 2

<div class="box_p2"> <div class="box_c2"> </div>
</div>
.box_p2 { display: flex; justify-content: center; align-items: center; width: 200px; height: 200px;
}
.box_p2 .box_c2 { width: 100px; height: 100px;
}

css: 常用的元素居中方法

上一篇 下一篇

猜你喜欢

热点阅读