flex布局怎么实现水平垂直居中详细步骤

admin 综合编程开发技术 3


新手在做网页布局时,是不是经常遇到这样的问题:想让一个元素稳稳地居中在父容器里,用 margin 调半天位置不对,用定位又容易跑偏?其实啊,用 flex 布局实现水平垂直居中特别简单,今天兔子哥就给大家讲讲详细步骤,不管是图片、文字还是盒子,都能轻松搞定。咱们常说的 “flex 布局水平垂直居中教程”“新手怎么用 flex 快速居中元素”,这篇文章都能帮你解决,跟着做保证一学就会。

一、先搞懂:为什么 flex 居中比传统方法好用?


传统居中方法有多麻烦?咱们来对比看看:
居中方法优点缺点
margin: 0 auto简单,适合水平居中只能水平居中,垂直居中搞不定
定位 + transform能实现垂直居中容易受父元素影响,新手容易算错位置
flex 布局一次设置全居中需要了解基础属性,但学会后超方便

你看,传统方法不是功能不全就是操作复杂,而 flex 布局只需要给父容器加几个属性,子元素就能自动居中,这也是为什么现在大家做居中都爱用 flex 的原因。


二、核心步骤:3 步搞定 flex 水平垂直居中


咱们一步一步来,别着急,保证新手也能看懂。
第一步:给父容器开启 flex 布局。这是最关键的一步,给父元素设置 display: flex,这样父容器就变成了 flex 容器,里面的子元素就会按照 flex 规则排列。代码可以这么写:.parent {display: flex;} 刚开始学的时候,我总忘了这一步,结果后面怎么调都没效果,大家可别犯这个错。
第二步:设置水平方向居中。在 flex 容器里,水平方向叫主轴(默认情况),用justify-content: center这个属性,就能让子元素在水平方向居中。这时候你会发现,子元素已经左右居中了,是不是很神奇?
第三步:设置垂直方向居中。垂直方向在 flex 里叫交叉轴,用align-items: center这个属性,子元素就会在垂直方向居中。这两个属性一设置,子元素就乖乖地水平垂直都居中了,是不是比传统方法简单多了?


三、实战演示:给一个登录框做居中


光说步骤不够,咱们来个实战案例。比如做一个登录框,要居中在浏览器中间,步骤是这样的:
  1. 先写 HTML 结构:一个大的父容器 div(class="container"),里面放登录框 div(class="login-box")。
  2. 给父容器设置样式:.container {display: flex; justify-content: center; align-items: center; width: 100vw; height: 100vh;} 这里 width 和 height 设为 100vw、100vh,是为了让父容器占满整个屏幕。
  3. 给登录框加点样式:.login-box {width: 300px; height: 200px; background: #fff;} 这样登录框就会稳稳地居中在屏幕中间了。

试一下就知道,不管你怎么拉大缩小浏览器窗口,这个登录框都会保持居中,这就是 flex 的弹性优势。


四、常见问题:这些坑新手容易踩


刚开始用的时候,肯定会遇到问题,兔子哥总结了几个常见的,咱们一起来看看。
问:设置了属性怎么没效果?答:先检查父容器有没有加 display: flex,这是基础中的基础,没开 flex 布局,后面的属性都没用。
问:水平居中了,但垂直没反应?答:看看父容器有没有高度,如果父容器高度和子元素一样,垂直居中就看不出来效果,给父容器设个明确的高度试试。
问:主轴和交叉轴搞混了怎么办?答:默认主轴是水平方向(row),这时候 justify-content 管水平,align-items 管垂直。如果主轴设成垂直方向(column),那 justify-content 就管垂直,align-items 管水平,这点一定要记牢,我刚开始就总搞反,调半天没效果。


五、个人心得:多试多调比死记硬背有用


其实 flex 居中不难,关键是多动手试。刚开始可以随便写个父容器和子元素,然后改改 justify-content 和 align-items 的值,看看元素怎么动,调错几次就记住了。比如把 justify-content 换成 flex-start,看看元素是不是靠左了;换成 space-between,是不是两端对齐了,这样印象更深刻。
现在做网页,不管是 PC 端还是移动端,flex 居中都是最常用的方法,学会它能少走很多弯路。别觉得 CSS 布局难,掌握了 flex 这种好用的工具,很多问题都能迎刃而解。希望这篇教程能帮到刚开始学布局的你,多练习几次,你会发现 flex 居中真的超简单!

标签: justify-content 一学就会

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~