flex布局的使用,纪念第一次开发手机网站

一直专注于PC网站的开发,不曾接触手机网站,于今日机缘巧合也是公司业务需要,并在之前学习过flex的布局,于是一并实践。碰到的问题还是很多的,主要是谈谈flex布局。

flex布局是css3里的内容,一种新的布局方式,也称之为 弹性布局,主要是为了取代 inline-bolck  和float 为总布局。当然,这两种布局还是有各自的优势的,毕竟存在就有他的理由。

历史进程是  box-->flexbox --> flex

由于是在谷歌调试,所以很理所当然的以为手机上的浏览器都是支持html5+css3的于是就有一段版本

1 display: flex; 2 justify-content: space-between; 3 align-items:center;

等等

http://www.responsinator.com/ 等测试网站表现得挺满意的

拿到真机上测,无论苹果还是安卓布局全乱了。后来才知道在苹果上运行需要加前缀,因为浏览器都是-webkit-内核的,主要是因为还没实现标准化,都是私有属性,于是有了下面的写法

display: -webkit-flex;
display: flex;
-webkit-justify-content:
space-between;
justify-content: space-between;
-webkit-align-items:center;
align-items:center;

嗯,苹果上表现得相当不错,我用的4,除了屏幕小了点其他还是可以接受的。

拿到安卓上,呵呵,基本上公司的安卓机全军覆没,布局没有一点改变。测试机器一般都是近些时候的,最久的话也是1-2年前的机器。后来才知道原来是根本不是识别flex布局,只能用box(也就是很早之前的语法)来解决,就得到了如下的写法

 1 .display_flex(){
 2     display: -webkit-box;
 3     display: -webkit-flex;
 4     display: flex;
 5 }
 6 .justify(){
 7      -webkit-justify-content: space-between;
 8     -webkit-box-pack:justify;
 9     justify-content: space-between;
10 }
11 .justify(@ju)
12 {
13     -webkit-justify-content: @ju;
14     -webkit-box-pack:@ju;
15     justify-content: @ju;
16 }
17
18 .align(@align)
19 {
20     -webkit-box-align:@align;
21     -webkit-align-items: @align;
22     align-items: @align;
23 }
24 .flex-flow-column(){
25     -webkit-box-orient:block-axis;
26     -webkit-flex-flow: column nowrap;
27     flex-flow: column nowrap;
28 }
29 .flex(@f){
30     -webkit-box-flex:@f;
31     -webkit-flex: @f;
32     flex: @f;
33 }

注:这是less的写法(我学的不是很好)

不过中间有些遗憾新的flex里有一种叫做“超出自动换行”的功能,box里也有类似的属性,但是所有的浏览器都不支持,所以只能选择其他的布局(如前面提到的float)来代替。

总结:

  flex的布局基本都是考虑内核,PC上不是很推荐,因为国内大都要兼容IE7-8,可以考虑在移动端使用(毕竟只有安卓和苹果)。总而言之这种布局还是挺不错的,有学习的必要,像他们说的html5+css3必是未来的主流方向。

如有更好的解决方案望请不吝赐教,谢谢。

引用的资料:

http://www.w3cplus.com/css3/using-flexbox.html  (旧的box)

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html (新的flex)

时间: 2024-12-21 18:27:42

flex布局的使用,纪念第一次开发手机网站的相关文章

支付宝接口开发-手机网站支付-沙箱测试

前面一段时间,因为公司业务需求,需要使用支付宝的手机网站支付接口,因为自己也是第一次使用这个,中间走了不少弯路,现在总结一下,希望对遇到同样问题的朋友有帮助. 第一步:登录蚂蚁金服开放平台蚂蚁金服开放平台连接,在这里你可以使用自己的支付宝进行登录,也可以使用公司的企业账号登录(建议公司的企业账号登录) 登录之后页面如下: 第二步:进入开发者中心,在上面图片上可以看到菜单 在这里你可以选择创建应用,也可以直接使用沙箱环境测试,沙箱环境和自己创建应用的效果是差不多的[应用测创建,只需要跟着网页提示进

移动web开发案例实战/webApp网站开发/手机网站模板/web前端切页

网站目录.代码结构清晰,语义化.主张100%纯手打代码.拒绝冗余框架慵懒建站.拒绝散漫,执着于把细节做到完美无瑕.我们的作品,可以逐级放大欣赏. 运用当下热门HTML5+CSS3(rem)+jQuery+zepto+Iscroll+swiper+Vue等技术开发手机webApp应用 - 移动端web网站(移动端web开发/APP开发).前端开发.移动端App模版.手机网站模版.HTML5+CSS3响应式网站模版~~~ /** 我们建站作品特色 **/主张原创设计,拒绝数量.追求质量!独特的设计风

HTML5移动端手机网站开发流程

最近一直在研究移动手机网站的开发,发现做手机网站没有想象中的那么难.为什么会这么说呢?我们试想下:我们连传统的PC网站都会做,难道连一个小小的手机网站难道都搞不定吗?其实手机网站就是一个微缩版的PC网站罢了!至于为什么觉得难.觉得无从下手. 段亮觉得有以下几点: 一.没有完整的思路和流程 就像做网站的流程一样,如果你能知道它的流程,我相信就不会觉得做手机网站难!真正难的是你没有思路. 二.把html5这门技术想的高深莫测 好像觉得学会用html5+css3做手机网站,就相当于学会了顶尖的绝世武功

移动平台3G手机网站前端开发布局技巧

本文转载至:移动平台3G手机网站前端开发布局技巧汇总 - 前端开发-武方博 您或许正在或准备参与一个WepApp项目,您或许正在Google搜索mobile development相 关的文章,您或许是一名专业的WEB前端工程师,您或许想学习Mobile前端开发方面的技术,如果您被我说中了,呵呵那么这篇文章将为您带来意想不到的 惊喜!当您看到这篇文章时,哥已经默认认为您是一名资深的WEB前端工程师,如果您不是,可能您会遇见许多不理解或听不懂的专业术语或前端技术(包括 WEB.Mobile).但是

移动平台3G手机网站前端开发布局技巧汇总

移动平台3G手机网站前端开发布局技巧汇总 作者:前端开发-武方博   发布:2011-05-10 09:11   分类:移动开发   阅读:120,618 views   7条评论 您或许正在或准备参与一个WepApp项目,您或许正在Google搜索mobile development相关的文章,您或许是一名专业的WEB前端工程师,您或许想学习Mobile前端开发方面的技术,如果您被我说中了,呵呵那么这篇文章将为您带来意想不到的惊喜!当您看到这篇文章时,哥已经默认认为您是一名资深的WEB前端工程

写给 Android 开发的小程序布局指南,Flex 布局!

一.序 Hi,大家好,我是承香墨影! 最近在做小程序,验证一些方向,开发效率确实很快,就是各种微信的审核有点费劲,但是总归是有办法解决的. 想要开发一款小程序,其实和我们正常写一款 App 类似,你需要有精美的前端布局,并且同时还需要处理和前端 UI 组件的交互以及它们背后的逻辑. 最近会分享一些关于小程序的内容(不保证,想到哪里写到哪里),今天先说说接触小程序第一步:布局. 如果有前端经验的话,小程序是非常容易上手的,而对于新手,第一步当然是阅读小程序的官方文档,不过之后你马上就要面临布局的问

FLEX布局的一些问题和解决方法

前言 露珠最近研究了一下flex的布局方式,发现项w3c推出的这套布局解决方案对于日益复杂的前端开发布局来说是确实是一利器,并且在不同的屏幕上实现了真正的响应式布局:不再单纯地依赖百分比和float的强拼硬凑来达到设计需求,在各个屏幕上显示效果友好,弹性的伸缩元素,简洁易维护的代码.只可惜,这位老兄有一位致命的缺点----除了chrome外几乎所有手机上浏览器都没有兼容它!!,或者支持程度大不一样!这样开发人员头疼的问题就来了,刚刚在手机上忽略掉IE这个强盗的兼容问题,又来一个?!.flex的优

HTML5开发手机应用--viewport的作用--20150216

在用HTML5开发手机应用或手机网页时,<head>部分总会有如下一段代码,这段代码到底什么意思呢.在网上,大家会得到很多答案.我从网上搜集了部分介绍,整理一下,以留备用. <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;" /> 什么是Viewp

HTML5开发手机应用--viewport的作用

HTML5开发手机应用--viewport的作用 在用HTML5开发手机应用或手机网页时,<head>部分总会有如下一段代码,这段代码到底什么意思呢.在网上,大家会得到很多答案.我从网上搜集了部分介绍,整理一下,以留备用. <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable