乐趣区

关于前端:CSS水平居中的四种方法

程度垂直居中,特地是应用在列表的时候常常会用到的,以前有需要的时候我也做过相似的代码,是应用 display:table-cell,mg12 的博客那个相干文章的列表如同就是应用这个代码来的,之前我也是参考他来的。

明天重新整理一下,并联合前人的辛苦,总结一下以作备份。程度居中,如果晓得元素的宽度,则能够应用 .cell{width:300px; margin:0 auto; text-align:center;}

如果是内联元素居中,那么间接用 text-align:center 则行 如果未知元素宽度,并且非内联元素,那么上面给出的几种计划也适宜你。

第一种:绝对定位法

原理是父类浮动的同时向左 left:50%, 而子类则向左浮动的同时 left:50%;

<style type="text/css">
.centerlist {position:relative;left:50%;float:left;}
.centerlist li {position:relative;right:50%; z-index:2;float:left}
</style>
<ul class="centerlist">
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
    <li><a href="#">Lorem ipsum dolor.</a></li>
</ul>

第二种:强制内联

<style type="text/css">
.centerlist_inline{text-align: center;}
.centerlist_inline li{display: inline;}
</style>
<ul class="centerlist_inline">
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
</ul>

局限:块级元素改为内联元素,那么高度、宽度、margin-top,margin-bottom, padding-top,padding-bottom, 等都不能用。

第三种:应用 inline-block

如果大家看过我之前写的 inline-block 替换 float 可能就会分明这个属性的益处了。

<style type="text/css">
.centerlist_inline-block{text-align: center; font-size:0; -letter-spacing:-1px;}
.centerlist_inline-block li{display: inline-block; \*display: inline; \*zoom:1; font-size:12px; letter-spacing:normal; word-spacing:normal;}
</style>
<ul>
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
</ul>

第四种:table-cell

<style type="text/css">
.centerlist_table-cell{display:table; margin:0 auto;}
.centerlist_table-cell{display:table-cell;}
</style>
<ul class="centerlist_table-cell">
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
<li><a href="">lorem1</a></li>
</ul>

毛病是不兼容 ie6,ie7 举荐应用 inline-block 这种程度居中的办法,既保留了块级元素个性,而且完满兼容。就是代码有点多。

另外你还能够应用表格的形式来程度居中。说完了程度居中,上面说垂直居中。

如果元素是内联元素,并且只有一行,则咱们能够通过 line-height 来设置与其高度同样大小,则实现了垂直居中了。

如果未知元素高度,则能够应用上面代码:CSS 多行文字垂直居中的两种办法 挪动端垂直居中对齐

最初

关注公众号:前端开发博客,并回复:1024,支付前端进阶材料包

退出移动版