使用Flexbox垂直定心

上的 

垂直居中兄弟内容是我们在网络上长期需要的任务,但似乎总是比它应该的要困难。我们最初使用表格来完成任务,然后转向CSS和JavaScript技巧,因为表格布局效率极低——然而,表格似乎是实现垂直居中的最简单、最可靠的方法。垂直对齐CSS属性被引入后,我非常兴奋,但很快发现它通常没有做我想做的事情。

在为DevTools调试器使用flexbox之后,我发现对齐项目:居中;是我一直需要的英雄。

让我们考虑以下HTML标记,它具有不同高度的内容:

<div class=“parent”><div>您好</div(分频)>佩伦特斯克居住者莫尔比·特里斯提克(morbi tristique senectus et netus et malesuada fames ac turpis egestas)。前庭扭转室,后庭,耳道,颞侧坐位,前庭。Donec eu libero坐在amet quam egestas semper。埃涅阿斯变形金刚。Mauris砂矿位于eleifend leo。安静地坐在阿米特·埃斯特·萨皮安·乌兰科珀·法雷塔</p> </div><div><img src=“https://davidwalsh.name/wp-content/themes/punky/images/logo.png“style=”display:inline;“></div></div>

如果我们希望每个元素的内容垂直居中,可以使用flexbox和对齐-项目要做到这一点:

.父级{显示:flex;对齐项目:居中;}

Flexbox一直被承诺是网页布局的救星,但似乎有点熄火,转而支持CSS网格;我很高兴flexbox解决了垂直对齐问题,这个问题让我们做了这么长时间的噩梦!

最近的功能

  • MooTools模板简介

    使用MooTools JavaScript框架创建UI组件的一个主要问题是,没有一种很好的方式允许自定义模板和轻松创建节点。截至目前,有两种创建方式:新元素疯狂创建UI驱动的第一种方法。。。

  • 您没有使用的5个HTML5 API&#8217;t已知存在

    当你说或读“HTML5”时,你有一半的期待是外来舞者和独角兽会随着“我性感,我知道”的曲调走进房间。你能怪我们吗?我们看到基本API停滞了这么长时间,以至于一个基本功能。。。

令人难以置信的演示

  • 全屏API

    随着我们向更真实的web应用程序迈进,我们的JavaScript API正在尽最大努力跟上。一个非常简单但有用的新JavaScript API是全屏API。全屏API提供了一种编程方式来请求用户全屏显示并退出。。。

  • 使用MooTools滑块的常见问题解答

    我经常用一个注重细节的网站来评价一个优秀的网站,让所有的“小事情”看起来好像花费了很多时间。让我们面对现实——常见问题解答总是那么无聊。那就是,直到你。。。

讨论

  1. 正如你所说的那样,我们所有设计过网站的人都经常为将项目居中而挣扎。我从表格开始,但随着web2.0的出现,它不再受欢迎,CSS的使用变得越来越普遍,但这很困难。我希望这个flexbox是我一直在寻找的完美解决方案。非常感谢!

  2. 西蒙

    这篇文章很棒,很简洁,谢谢。真的很喜欢你的博客帖子。我觉得只是一个小错误…

    这不应该…。

    .父级{显示:flex;对齐项目:居中;}

    是这样吗?

    .演示内容部分{显示:flex;对齐项目:居中;}
    • 弗朗西斯科·布兰查特

      为什么?容器有一个“父”类…

  3. 你好,大卫

    我不会说Flexbox“有点支持CSS网格”。它们可以一起使用——事实上,我会说Flexbox,尤其是这种垂直居中技术,是对CSS网格的补充。

  4. 本·C

    令人难以置信和失望的是,一种令人满意的垂直对齐方法花了这么长时间才出现,但迟做总比不做好!

    至于Flexbox vs Grid,我同意Andrew的观点。也许最初围绕Flexbox有一种额外的兴奋,它将帮助解决一些问题,这些问题实际上不是它设计的或理想的,但在Grid出现之前,它仍然是新的最佳工具。但现在Flexbox是定义布局的一维部分(尽管有时有多行)的可靠选择,而Grid是2D布局的解决方案,是使用HTML表进行可视化布局的最终正确CSS替代品。

  5. 我完全同意flexbox经常会出现在离合器中,并且在Andrew提到的基础上可以很好地一起使用!

将代码包装起来<pre class=“{language}”>标签,链接到GitHub要点、JSFiddle提琴或CodePen笔进行嵌入!