android 一行两列布局,用Flexbox创建两列等宽布局

本文介绍了如何使用Flexbox布局在Android上创建一行两列等宽的界面,探讨了不同浏览器对Flexbox的支持情况以及W3C规范的历史版本。提供了一个实例,展示了如何通过CSS设置父容器和子元素的样式来实现这一布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

aff9f72ce5e96a0c1bdf543372de9ae7.png

flex布局(全称:CSS Flexible Box Layout Module)早在2009年就有了,如果现在使用最新的flex语法会发现支持程度并不好,即使是在“高端”浏览器上也是如此,比如Chrome、Firefox、Safari、Android、IOS Safari下支持程度各不相同

网上现有的代码中充斥着各种版本,在Chrome下运行一般都没有问题,Firefox一般也还好,但Android与IOS Safari下就显得非常无力了。之所以会出现这样的局面,主要是历史原因,从2009年到2015年,期间W3C规范有了多次更新,浏览器支持程度也就有了差异

一.W3C各个版本的flex

2009版

标志:display: box; 或者box-{*}属性 (例如 box-pack)

2011版

标志:display: flexbox; 或者 flex()函数

2012版

标志:display: flex/inline-flex; 和 flex-{*}属性

2014版

新增了对flex项z-index的规定

2015 W3C Editor’s Draft

没有大的改动

P.S.注意2015的是W3C Editor’s Draft,只是个草案,还处于修修改改的阶段,还没有征集浏览器供应商的意见

二.浏览器兼容性

根据CanIUse的数据可以总结如下:

IE10部分支持2012,需要-ms-前缀

Android4.1/4.2-4.3部分支持2009 ,需要-webkit-前缀

Safari7/7.1/8部分支持2012, 需要-webkit-前缀

IOS Safari7.0-7.1/8.1-8.3部分支持2012,需要-webkit-前缀

实例:创建两列等宽布局

HTML:

这里需要1个父容器,以及2个子元素

[html]

Column 1

Column 2

[/html]

每一列中的内容都可以是任意高度。

CSS:

[css].flexbox-container {

display: -ms-flex;

display: -webkit-flex;

display: flex;

padding: 20px;

background:#eee;

}

.flexbox-container > div {

width: 50%;

padding: 10px;

background:#fff;

}

.flexbox-container > div:first-child {

margin-right: 20px;

}

[/css]

只需设置父容器flexbox,然后给子元素设置50%的宽度。子元素可以添加填充,边框,不用担心会溢出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值