元素水平居中的多种实现
水平居中的实现在写样式中经常会用到。因此简单的记录一下。
第一种方法是最古老的实现方案,也是最常见的方案,在分页容器上定义一个宽度,然后配合margin的左右值为“auto”实现效果。
具体用margin: 0 auto; 或者定义好容器的宽度之后,分别定义margin-left和margin-right均为auto。
优点:实现方法简单易懂,浏览器兼容性强;
缺点:有时候很难确定容器的宽度,因此扩展性差,无法自适应未知项情况。
优点:简单易懂,扩展性强;
缺点:需要额外处理inline-block的浏览器兼容性,貌似奇葩的IE不会兼容它的。
现在要想的办法是让分页导航居中的效果了,在这里是通过“position:relative”属性实现,首先在列表项“ul”上向右移动50%(left:50%;),看到如下图所示:
如上图所示一样,整个分页向右移动了50%的距离,紧接着我们在“li”上也定义“position:relative”属性,但其移动的方向和列表“ul”移动的方向刚好是反方向,而其移动的值保持一致:
这样一来就实现了float浮动居中的效果。是不是感觉略屌的样子啊?
优点:兼容性强,扩展性强;
缺点:实现原理较复杂。