React Native-1.CSS布局属性之伸缩容器属性
为什么要学习CSS布局属性首先,React Native使用JSX语法(后边的博客会详细讲解)来编程,它其实是一个语法糖,React Native 的代码格式和原来的HTML + CSS 的代码格式有些相似,重要的是,它布局的属性和CSS的布局属性基本是差不多的,所以,我们从CSS的布局属性过渡到React Native 的布局属性,会更加平滑好理解,毕竟它的岁数大很多。。。 常用的CSS布局属性“alignItems”, 代码效果展示需要一个.html文件,我们创建一个文本文件,后缀名改一下,把下边这段代码整个复制进去,我们在里边要搞出一些事情:(每次修改完代码,保存,双击文件,如果已经打开,刷新浏览器即可)<DOUCTYPE!>
<html>
<head>
<style> .flex-container{ background-color: #f00; width: 190; height: 190; display: flex; } .flex-container div { width: 50; height: 50; background-color: #00f; margin: 1 1 1 1; } .flex-container div h1{ width:50; height: 50; } .flex-item1 { } .flex-item2 { } .flex-item3 { } .flex-item4 { } .flex-item5 { } </style>
</head>
<body>
<div class="flex-container">
<div class="flex-item1">
<h1 >1</h1>
</div>
<div class="flex-item2">
<h1 >2</h1>
</div>
<div class="flex-item3">
<h1 >3</h1>
</div>
<div class="flex-item4">
<h1 >4</h1>
</div>
<div class="flex-item5">
<h1 >5</h1>
</div>
</div>
</body>
</html>
我们来讲解几个重要的属性常用属性之-伸缩容器属性 默认情况下,伸缩容器由两根:主轴(main axis)和交叉轴(cross axis),可以理解成坐标系中的x轴和y轴,主轴开始和结束位置分别叫 main start 和 main end, 同理交叉轴开始和结束位置分别叫cross start 和cross end,二者可以互为交替(在代码中设置),无论哪条轴作为主轴,默认情况下,伸缩项目总是沿着主轴,flexbox目前还处于草稿状态,在使用的时候,需要加上各个浏览器的私有前缀,即-webkit 、-moz、-ms、-o等(这个大家可以自行百度一下,本篇主要讲布局属性),后边的代码为了方便都没有写前缀。 伸缩容器属性display 下边简要介绍这几个属性 1、display该属性用来指定元素是否为伸缩容器,语法: 属性意义: .flex-container { display:flex; }
.flex-container { display:inline-flex; }
2、flex-direction该属性指定主轴方向,语法:
属性意义: .flex-container { display:flex; flex-direction:row; } 效果如图2-1:
.flex-container { display:flex; flex-direction:row-reverse; } 效果如图2-2:
.flex-container { display:flex; flex-direction:column; }
.flex-container { display:flex; flex-direction:column-reverse; } 3、flex-wrap该属性主要来指定伸缩容器的主轴线方向空间不足的情况下,是否换行以及该如何换行,语法: 下面简要介绍这三个属性值的含义:
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-direction:row; flex-wrap:wrap; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-direction:row; flex-wrap:wrap-reverse; } 4、flex-flow该属性是flex-direction和flex-wrap属性的缩写版本,他同时定义了伸缩容器的主轴和侧轴,其默认值为row nowrap。语法 .flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row wrap-reverse; }
5、justify-content该属性来定义伸缩项目沿主轴线的对其方式,语法:
下面简要介绍这个5个属性的含义 .flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; justify-content:flex-start; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; justify-content:flex-end; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; justify-content:center; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; justify-content:space-between; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; justify-content:space-around; }
6、align-items该属性用来定义伸缩项目在伸缩容器的交叉轴上的对齐方式,其语法为: 下面简要介绍这5个属性值的含义。
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; align-items:flex-start; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; align-items:flex-end; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; align-items:center; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; align-items:baseline; } .flex-item1 { padding-top:15px; } .flex-item2 { padding-top:10px; } .flex-item3 { padding-top:5px; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row nowrap; align-items:stretch; } .flex-container div { width: 50; /*height: 50;*/ background-color: #00f; margin: 1 1 1 1; }
7、align-content这个属性主要用来调整伸缩项目出现换行后在交叉轴上的对齐方式,类似于伸缩项目的主轴上使用
下面主要介绍这6个属性值的含义:
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row wrap; align-content:flex-start; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row wrap; align-content:flex-end; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row wrap; align-content:space-between; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row wrap; align-content:space-around; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row wrap; align-content:stretch; } .flex-container div { width: 50; /*height: 50;*/ background-color: #00f; margin: 1 1 1 1; }
.flex-container{ background-color: #f00; width: 190; height: 190; display: flex; flex-flow:row wrap; align-content:center; } 总结:伸缩容器的属性以上有一个单独的简单的介绍,复杂的应用应该是多个属性同时控制一个容器,需要大家自己练习,发挥自己的想象。下一篇我们学习,伸缩项目的属性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |