div永远垂直居中的方法
2016-02-25 09:04
525 查看
如果div大小和父级元素大小已定,那垂直居中的方法就很多,今天来讨论下如果子元素大小和父级元素大小都不确定,要保持一个div永远垂直居中的方法。
在绝对定位里,top,left移动的百分比是相对于父级元素的百分比,而translate的百分比是自身大小的百分比,因此这样可以永远保持垂直居中。
flex是个好东西,是未来布局的主要趋势。
当然现在要注意兼容性。
table布局虽然我们现在不太用了,但是作为垂直居中的方式还是不错的,简单快捷。
主要就是父元素要有line-height,然后子元素要display成inline-block,然后就能使用vertical-align让其垂直居中了。
这里重点在inline-block,是它的特性。
本来我也没想到还有这个方法的,不过昨天我师父跟我讲了,图片就能使用vertical-align,因为它是inline-block,所以把元素设置成inline-block就也能使用vertical-align。所以呢,学习要举一反三,不然不会有进步。
用CSS3来实现
如果使用css3的话就有挺多的方法。teansform:translate
.parent{ position:relative; } .child{ position:absolute; top:50%; left:50; transform:translateX(-50%); transform:translateY(-50%);
在绝对定位里,top,left移动的百分比是相对于父级元素的百分比,而translate的百分比是自身大小的百分比,因此这样可以永远保持垂直居中。
flex
.parent{ display: -ms-flex; display: -webkit-flex; display: flex; -ms-flex-align: center; -webkit-align-items: center; -webkit-box-align: center; align-items: center; } .child{ margin:0 auto; }
flex是个好东西,是未来布局的主要趋势。
当然现在要注意兼容性。
用CSS2来实现
table
.parent{display:table;} .child{display:table-cell;vertical-align:middle;text-align: center;}
table布局虽然我们现在不太用了,但是作为垂直居中的方式还是不错的,简单快捷。
inline-block
.parent{ text-align: center; line-height: 500px; border: 1px solid black; } .child{ display: inline-block; vertical-align: middle; line-height: 30px; background-color: black; }
主要就是父元素要有line-height,然后子元素要display成inline-block,然后就能使用vertical-align让其垂直居中了。
这里重点在inline-block,是它的特性。
本来我也没想到还有这个方法的,不过昨天我师父跟我讲了,图片就能使用vertical-align,因为它是inline-block,所以把元素设置成inline-block就也能使用vertical-align。所以呢,学习要举一反三,不然不会有进步。
相关文章推荐
- CSS3属性教程与案例分享
- CSS3属性教程与案例分享
- CSS3的calc()使用
- 使用CSS3的appearance属性改变元素的外观
- Web布局连载——两栏固定布局(五)
- CSS3美化图片
- CSS3质感分析——表面线性渐变
- 分析选项卡底部内凹圆角制作
- 细说百度图片栏目——图片展示效果
- 8个实用的响应式设计框架
- 20+ Animation Scripts, Libraries and Plugins
- [div+css]晒晒最新制作专题推广页模板
- [css] line-height 百分比单位和数值单位的区别
- 设计更快的网页(三):字体和 CSS 调整
- 纯CSS制作的新闻网站中的文章列表
- 10条影响CSS渲染速度的写法与使用建议第1/3页
- BS项目中的CSS架构_仅加载自己需要的CSS
- 很不错的 CSS Hack 又学了一招
- 发一个css比较清爽的写法
- CSS expression控制图片自动缩放效果代码[兼容 IE,Firefox]