垂直居中元素(如何让它水平且垂直居中的六种方法)

 2024-11-24  阅读 121  评论 0

摘要:这类问题是面试中经常出现的css问题。那么你会吗?会的话,你能想出几种解决方案呢?我这里大致列举六个方法!分享之前推荐下我的前端群:524262608,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的前端资料和零基础入门教程,欢迎初学和进阶中的小伙伴。1.弹性

垂直居中元素(如何让它水平且垂直居中的六种方法)(1)

这类问题是面试中经常出现的css问题。那么你会吗?会的话,你能想出几种解决方案呢?我这里大致列举六个方法!

分享之前推荐下我的前端群:524262608,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的前端资料和零基础入门教程,欢迎初学和进阶中的小伙伴。

1.弹性盒模型flex布局

<style type="text/css"> .wrap{ width:500px; height: 500px; background: red; display: flex; justify-content: center; /*主轴居中对齐*/ align-items: center; /*交叉轴即y方向剧中对齐*/ } .box{ width: 333px; height: 333px; background: blue; }</style></head><body> <div class="wrap"> <div class="box"></div> </div></body>

2.利用伪类来对齐

<style type="text/css"> .wrap{ width:500px; height: 500px; background: red; text-align: center; } .wrap:after{ display: inline-block; content: ''; height: 100%; /*width:0;*/ vertical-align: middle; } .box{ width: 333px; height: 333px; background: blue; display: inline-block; vertical-align: middle; }</style></head><body> <div class="wrap"> <div class="box"></div> </div></body>

3.利用空span,原理与上面的类似

<style type="text/css"> .wrap{ width:500px; height: 500px; background: red; text-align: center; } span{ display: inline-block; height: 100%; vertical-align: middle; } .box{ width: 333px; height: 333px; background: blue; display: inline-block; vertical-align: middle; }</style></head><body> <div class="wrap"> <div class="box"></div><span></span> </div></body>

4.利用表格的特性:单元表格的内容默认垂直居中

<style type="text/css"> .wrap{ width:500px; height: 500px; background: red; text-align: center; border-collapse: collapse; } .box{ width: 333px; height: 333px; background: blue; display: inline-block; /*margin: 0 auto;*/ /*或者*/ }</style></head><body> <table class="wrap"> <td><div class="box"></div></td> </table></body>

5.将块标签转换成表格属性,display:table-cell

<style type="text/css"> .wrap{ width:500px; height: 500px; background: red; display: table-cell; text-align: center; vertical-align: middle; } .box{ width: 333px; height: 333px; background: blue; display: inline-block; vertical-align: middle; }</style></head><body> <div class="wrap"> <div class="box"></div> </div></body>

6.利用相对定位和transform

<style type="text/css"> .wrap{ width:500px; height: 500px; background: red; /*display: table-cell;*/ /*text-align: center;*/ } .box{ width: 333px; height: 333px; background: blue; position: relative;//不脱离文档流,left,top移动父级的百分之五十 left: 50%; top: 50%; -webkit-transform: translateX(-50%) translateY(-50%)//即使未知元素自身宽高,自动计算后x,y轴移动元素自身宽高的负百分之五十 }</style></head><body> <div class="wrap"> <div class="box"></div> </div></body>

总结:span和伪类对齐方法主要是利用了空内容将基线定在了父级元素的中间位置,然后用inline-block结合vertical-align:middle. table的2种方法则是利用了表格的自带属性,弹性盒模型的话就不用多说了,强大的爱不释手,

最后还是要推荐下我的前端群:524262608,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的前端资料和零基础入门教程,欢迎初学和进阶中的小伙伴。

transform和相对定位结合处理的话,因为要依据父级宽高所以用相对定位,用绝对定位的话会一层层找到顶级,transform再根据自身宽高负方向移动半个宽高。

web前端学习方法经验可以关注我的‘学习web前端’,每天更新案例源码或经验分享,关注后回复‘给我资料’可以领取一套完整的学习视频

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/ce7a1Cz0EBAgFUFU.html

发表评论:

管理员

  • 内容266588
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 泰达科技网易库网

页面耗时0.1551秒, 内存占用1.34 MB, 访问数据库18次