display:flex完全居中子元素

使用flexbox,很多布局问题都可以解决,今天分享一个所有子元素居中对齐的样式。

涉及到居中的样式CSS主要是align-items:center;

需求是需要中间的某个块不要占全部,而是自适应子元素内容扩展。

<div class="box">
	<ul class="box-inner">
		<li>A</li>
		<li>A</li>
		<li>A</li>
		<li>A</li>
		<li>A</li>
		<li>A</li>
		<li>A</li>
		<li>A</li>
		<li>A</li>
	</ul>
</div>

样式:

.box{
	position: fixed;
	right: 0;
	top: 0;
	height: 100%;
	width: 40px;
	right: 15px;
	display: flex;
	align-items: center;
	background: rgba(0,0,0,0.5);
}
.box-inner{
	display: flex;
	flex-flow: column nowrap;
	align-items: center;
	text-align: center;
	background: #ddd;
}
.box-inner li{
	width: 40px;
	white-space: nowrap;
	color: #f00;
}

实现效果,中间的一块不是铺满整个屏幕,而是根据里面的子元素自适应大小居中。

演示

记录这篇代码是因为我以为子元素的外面的元素无法自适应扩展高度,需要占据整个高度,后来看到一个同事写的代码才发现原来嵌套多一层子元素,并设置里面的资源为flexbox时,它就不会占据整个高度了。

题外话:

有一段时间没写文章记录了,感觉学习到的东西很浅显,所以也没有去记录的意愿,前段时间去搞微信和头条号,还以为能搞出些名堂来,结果是发现花费了很多时间,但却收获不大,而且经常还熬夜,有时候还因为被人鄙视内容不够好,我想我可能还没有准备好。

暂时先放弃了,接下来的日子里专心的写一写之前的一些记录,哪怕再小的东西,也不要去管有没有人关注;有没有人因为看到这些东西而取消关注你。也许某天你还会遇到,就会一个印象了。

我不是大牛,我只是觉得自己比较喜欢整理一些东西,纯粹是记录并分享一些自己的成长,仅此而已。


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流