flex-wrap属性在某些手机端不能实现的解决方法

flex-wrap属性

默认情况下,项目都排在一条直线(又称“轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行
<pre>
.box{
flex-wrap: nowrap | wrap | wrap-reverse;
}
</pre>
它可能取三个值
(1)nowrap(默认):不换行,如下图


Screenshot.png

(2)wrap:换行,第一行在上方


Screenshot-1.png

(3)wrap-reverse:换行,第一行在下方
Screenshot-2.png

然而,今天在用flex布局实现页面的排版时,用以上的属性,在PC端排版很正常,但是在手机端时,不管有多少个元素,它都排在一行,不换行。公司的同事之前也没遇到过这种情况。因此,我花了将近半个小时,查看这各种资料,终于找到解决的方法了。
我们不能直接写成:
<pre>
display: flex;
-webkit-box-pack: start;
justify-content: flex-start;
-webkit-flex-wrap: wrap;
</pre>
而是应该把它所有的可能的情况都写在CSS中,将下面一段代码放在你所在的CSS中,就可以实现手机端和PC端的一致了。
<pre>
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
-webkit-flex-direction: row;
-moz-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
-webkit-flex-flow: row wrap;
-moz-flex-flow: row wrap;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容