box怎么用 latency_使用Flexbox的六个理由

您使用 flexbox吗?上周我在 twitter 上,问了这个问题,很惊讶地发现,不少于 50%的人回答是。之所以感到惊讶是因为,直到最近,我并不在我的任何项目中使用 flexbox ,我想我一定是唯一的一个。

我不使用 flexbox 有几个原因。但是,经过一些调查研究之后,我的担忧得到明显的减弱,我已经开始了转变。所以这里有你应当开始使用Flexbox的六个理由。

所有主流浏览器均支持

我还没有使用Flexbox的主要原因是我认为缺乏浏览器的支持。但事实上,Flexbox以95.89%的比率在全球浏览器得到了很好的支持。如果你不考虑IE 10及以下的版本,Microsoft表示现在可以这样认为,这个数字甚至可以更高。

不必担心语法

虽然所有浏览器的最新版本均支持Flexbox目前的语法,那老版本的支持如何呢?因为语法的改变已经半年多了,在书写方面存在一些不一致的地方。为了支持所有浏览器目前最后的两个版本,我们将不得不使用不同供应商前缀,每条规则至少书写4个不同的版本。

关于这个问题,我的解决方案是

使用 autoprefixer,我们可以指定我们想要支持的浏览器版本,然后他就会自动添加相应的供应商前缀。

/* Write this */

.flex-container {

display: flex;

}

/* Compiles to this (with autoprefixer set to support last 2 versions of all browsers) */

.flex-container {

display: -webkit-box;

display: -webkit-flex;

display: -ms-flexbox;

display: flex;

}

简单的开始

诚然,学习所有flexbox 相关的知识并不是那么简单。它有12个新属性,其中每个大约有 4个潜在值。当然你可以一点一点的去理解掌握。

但是你并不需要去了解所有的属性。因为在很多情况下,我发现自己只需要使用 3 个属性-

display:将元素设置为内联或者块flexbox容器元素

justify-content: 控制 flex 容器内项的水平对齐方式 (如果 flex 的默认属性为 row 或 row-reverse)

align-items: 控制 flex 容器内项的垂直对齐方式 (如果 flex 的默认属性为 row 或 row-reverse)

使用这些仅适用于 flex 容器的属性,我们可以产生大量不同的布局。如果你想要了解更多相关知识,还有丰富的资源/属性列表/帮助你学习的例子

Flexbox Playground:一个在线文档,你可以验证每个属性-值对的作用

Flexbox Froggy: 学习 CSS flexbox 的游戏

Flexbugs: flexbox 问题的列表以及解决他们跨浏览器问题的方法

Flexibility:支持旧版浏览器的一个polyfill

元素居中

除了 flexbox 良好的浏览器支持,我们还可以很轻松的实现元素在水平垂直居中问题。

仅仅需要3个声明,我们就可以实现子元素完全居中:

.flex-container {

display: flex;

justify-content: center; /* horizontal centering */

align-items: center; /* vertical centering */

border: 2px dashed #000;

}

4a16b1745443aafe8080bbb1d908aca8.png

更容易地操作内联元素

关于内联项定位问题就是臭名昭著的额外的4个像素的外边距。虽然存在解决这个问题的方法,如浮动元素,但随时就会出现新的问题。

使用Flexbox,我们就可以毫不费力地处理内联元素。我们可以实现元素的两端对齐对齐:

.flex-container { display: flex; }

.flex-item { width: 20%; }

ccf6e03dcd22d5ed3629396865f37bb0.png

我们可以实现项与项之间的均匀分布

.flex-container {

display: flex;

justify-content: space-around;

}

fc850dcca1e45579013fe64c97f04dd8.png

我们甚至可以在不处理:first-child或:last-child的情况下,实现列表项的均匀分布:

.flex-container {

display: flex;

justify-content: space-between;

}

828a67fb9b9fb0f125f95cf68e5fc143.png

简化了复杂性

究其Flexbox的创建原因,首先可能是因为这个原因,让我们实现在尽可能少的声明中创建复杂的布局。

在前面的例子中,我仅仅通过设置flex容器样式来实现。然而,我们可以通过设置 flex 项来实现更加精细的样式调节。例如,定价表的通用布局:

fc9ab83a591390a026dba7bf1092ca5b.png

这里有三个 div,中间div的宽度是两边的两倍。为了使用flexbox实现这种布局,我们可以这样书写。

.flex-container {

display: flex;

align-items: center;

}

.flex-items:not(:nth-child(2)) {

flex-grow: 1;

height: 300px;

}

.flex-items:nth-child(2) {

flex-grow: 2;

height: 350px;

}

关于Felxbox,我的意识已经很晚了,但是我仍然相信还有许多人的思想没有改变。您已经使用 flexbox 了吗?如果没有,您是不是已经被信服,要试一试呢?

2ba64a9f227b987f63a2e1aebad415b3.png

在校学生,本科计算机专业。一个积极进取、爱笑的女生,热爱前端,喜欢与人交流分享。想要通过自己的努力做到心中的那个自己。微博:@静-如秋叶

# 高校智慧校园解决方案摘要 智慧校园解决方案是针对高校信息化建设的核心工程,旨在通过物联网技术实现数字化校园的智能化升级。该方案通过融合计算机技术、网络通信技术、数据库技术和IC卡识别技术,初步实现了校园一卡通系统,进而通过人脸识别技术实现了更精准的校园安全管理、生活管理、教务管理和资源管理。 方案包括多个管理系统:智慧校园管理平台、一卡通卡务管理系统、一卡通人脸库管理平台、智能人脸识别消费管理系统、疫情防控管理系统、人脸识别无感识别管理系统、会议签到管理系统、人脸识别通道管理系统和图书馆对接管理系统。这些系统共同构成了智慧校园的信息化基础,通过统一数据库和操作平台,实现了数据共享和信息一致性。 智能人脸识别消费管理系统通过人脸识别终端,在无需接触的情况下快速完成消费支付过程,提升了校园服务效率。疫情防控管理系统利用热成像测温技术、视频智能分析等手段,实现了对校园人员体温监测和疫情信息实时上报,提高了校园公共卫生事件的预防和控制能力。 会议签到管理系统和人脸识别通道管理系统均基于人脸识别技术,实现了会议的快速签到和图书馆等场所的高效通行管理。与图书馆对接管理系统实现了一卡通系统与图书馆管理系统的无缝集成,提升了图书借阅的便捷性。 总体而言,该智慧校园解决方案通过集成的信息化管理系统,提升了校园管理的智能化水平,优化了校园生活体验,增强了校园安全,并提高了教学和科研的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值