ionic 之 基本布局
目录:
- 简介
- Hybrid vs. Others
- ionic
- CSS框架
- 基本布局
- 布局模式
- 定高条块:.bar
- .bar : 位置
- .bar : 嵌入子元素
- .bar : 嵌入input
- 内容:.content和.scroll-content
Hybrid vs. Others
要开发手机App,目前有三种方式:
原生/Native:使用原生SDK开发App。优点不用说,当你有足够的资源,这是最理想的方式;缺点是对不同的 平台要分别开发,成本高、周期长。 原生脚本/NativeScript:将原生API封装成JavaScript接口,这有点像前端的nodejs。NativeScript方式 与原生相比性能损失不大(据称只有10%左右),优点是开发语言统一使用JavaScript,缺点是 要针对不同的平台分别开发。 混合/Hybrid:使用web技术开发App,使用Cordova/PhoneGap之类进行打包封装。优点是采用标准的web技术开发, 避免了不同平台原生开发体系的学习,上手快、效率高;缺点是性能上有一定损失。 ionic属于hybrid开发模式,本质上是将移动web应用与浏览器打包,优点和缺点都很明显。 是否采用这种模式,需要根据具体情况综合考虑。
不过在大多数场景下,如果你已经具备一定的web开发经验,采用这种方式进入移动App开发领域,还是不错的一个选择。 毕竟,将产品低成本地开发出来并更快地推向市场,有时是最重要的事情。
ionic
ionic是一个强大的混合式/hybridHTML5移动开发框架,特点是使用标准的HTML、 CSS和JavaScript,开发跨平台(目前支持:Android、iOS,计划支持:Windows Phone、Firefox OS) 的原生App应用:
ionic主要包括三个部分:
CSS框架 - 提供原生App质感的CSS样式模拟。ionic这部分的实现使用了ionicons图标样式库。 JavaScript框架 - 提供移动Web应用开发框架。ionic基于AngularJS基础框架开发,因此 自然地遵循AngularJS的框架约束;此外,ionic使用AngularJS UI Router实现前端路由。 命令行/CLI - 命令行工具集用来简化应用的开发、构造和仿真运行。ionic命令行工具使用了 Cordova,依赖于平台SDK(Android & iOS)实现将移动web项目打包成原生app。 由于ionic使用了HTML5和CSS3的一些新规范,所以要求 iOS7+/ Android4.1+。 在低于这些版本的手机上使用ionic开发的应用,有时会发生莫名其妙的问题。
CSS框架
如果你对AngularJS这样的东西不感兴趣,可以只使用ionic的CSS框架:直接在HTML中引入 ionic.css就可以了。
ionic的CSS框架主要提供预定义的CSS类,来帮助我们快速构建适用于手机端的UI。 ionic的预定义CSS类主要分四个方面:
基本布局类 ionic将手机页面的布局模式基本抽象为三块:头、内容、尾。基本布局类提供了 这几个区域的CSS类。
颜色和图标类 ionic定义了几个配色方案CSS类,并使用ionicons提供的字体图标类。
界面组件类 ionic定义了丰富的界面组件CSS类,让HTML元素看起来像移动平台的UI组件。
栅格系统类 和Bootstrap一样,ionic也提供了栅格系统。不过ionic的实现是基于CSS3的FlexBox 模型,更为灵活。
布局模式
手机App开发实践中,用户界面通常划分为几个区域 - 标题/header、内容/content和页脚/footer。 微信采用的就是典型的三段布局:
标题区总是位于屏幕顶部,页脚区总是位于屏幕底部,而内容区占据剩余的空间。 ionic使用以下CSS类声明区域性质:
.bar.bar-header- 声明元素为标题区 .bar.bar-footer - 声明元素为页脚区.content- 声明元素为内容区
定高条块:.bar
样式.bar将元素声明为屏幕上绝对定位的块状区域,具有 固定的高度(44px):
<any class="bar">...</any>
一旦元素应用了.bar样式,就可以继续选用两类预定义样式来进一步 声明元素及其内容的外观:
- 同级样式 - 同级样式与.bar应用在同一元素上,声明元素的位置、配色等。
下级样式 - 下级样式只能应用在.bar的子元素上,声明子元素的大小等特征。
.bar : 位置
ionic使用以下样式定义条块的位置:
.bar-header - 置顶 .bar-subheader - header之下置顶 .bar-footer - 置底 .bar-subfooter - footer之上置底 在腾讯新闻App中,你可以看到,使用了三个条块:标题、副标题、页脚:
.bar : 嵌入子元素
在ionic中,有三种.bar子元素的样式是预定义的:
标题文字 - 对包含标题文字的元素应用.title样式,通常使用h1元素: ... 按钮 - 对用作按钮的元素,应用.button样式,通常使用button 或a元素作为按钮。注意按钮将使用.bar的配色方案: ... 工具栏 - 工具栏包含一组按钮。对用作工具栏的元素,应用.button-bar样式,通常 使用div元素作为工具栏: ...
.bar : 嵌入input
一种常见的UI模式是在标题栏中嵌入搜索栏,比如大众点评:
在.bar元素中嵌入input元素,需要注意两点:
- 在条块元素上应用.item-input-inset样式
将input包裹在应用.item-input-wrapper样式的元素内 这是因为,在ionic的实现中,.bar中的.input 样式定义如下:
.bar.item-input-inset{
.item-input-wrapper{
.input{
...
}
}
}
内容:.content和.scroll-content
ionic预定义了两个内容容器样式:
.content - 流式定位,内容元素在文档流中按顺序定位 .scroll-content - 绝对定位,内容元素占满整个屏幕 这两种样式都可以使用以下样式进一步确定位置及范围:
http://www.angularjs.cn/A127
ionic 之 基本布局的更多相关文章
- 160914、ionic指令简单布局
1) 添加引用类库(ionic样式和ionic js文件) 2) 标题栏,页脚栏,内容区 3) Js引入ionic类库,添加页面操作方法和对象 4) 数据初始化 5) Html页面绑定方法和对象 &l ...
- Ionic App ActionSheet布局问题
使用 $ionicActionSheet的时候界面不像Ihpnoe手机那样显示的整齐,但是在电脑浏览器里面却是好的,原因还是Ionic自带css的问题,网上的答案是ionic.min.css/ioni ...
- Ionic学习笔记3_ionic指令简单布局
1) 添加引用类库(ionic样式和ionic js文件) 2) 标题栏,页脚栏,内容区 3) Js引入ionic类库,添加页面操作方法和对象 4) 数据初始化 5) Html页面 ...
- 浅谈css的栅格布局
栅格布局想必大家都很了解,我们做页面开发的时候,往往对页面板式的要求很高,如何对各个区域的内容排版,并使之对齐是我们的一大难题.而栅格系统就是我们排版的利器,他支持自动对齐.自动计算边距.流式布局等优 ...
- 观《phonegap第三季 angularjs+ionic视频教程 实时发布》学习笔记(三)
十五.ionic路由 1.ionic中内联模板介绍 使用内联模板内联模板的使用,常见的有几种情况.(1) 使用ng-include指令可以利用ng-include指令在HTML中直接使用内联模板,例如 ...
- Web前端开发推荐阅读书籍、学习课程下载
转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...
- VS生成Cordova for Android应用之Gradle
原文:VS生成Cordova for Android应用之Gradle 一.Gradle简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具.它使用一种基 ...
- ionic入门之基本布局
目录: 简介 Hybrid vs. Others ionic CSS框架 基本布局 布局模式 定高条块:.bar .bar : 位置 .bar : 嵌入子元素 .bar : 嵌入input 内容:.c ...
- Ionic学习笔记1_基本布局
<body> <!-- 头部 --> bar里嵌入子元素:title,button,button-bar和 inpu ...
随机推荐
- 在自己的工程中使用ijkplayer的功能
最近在做一个软解视频叠加硬解视频的方案,网上看了很多教程,始终不得要领.虽然ijkplayer提供了ijkplayer-example这个示例工程,但对于初入安卓的人来说,要将ijkplayer整合到 ...
- Failed to obtain lock on file /usr/local/nagios/var/ndo2db.lock: Permission denied : Permission denied
Failed to obtain lock on file /usr/local/nagios/var/ndo2db.lock: Permission denied : Permission den ...
- 2015Java参赛邀请函
[导读]甲骨文公司值Java语言发布20周年之际,携手全国高等级学校计算机教育研究会.教育部高等学校计算机类专业教学指导委员会,共同举办了2015年“甲骨文杯”全国Java程序设计大赛,为二百万名中国 ...
- Java中类,对象,方法的内存分配
Java中类,对象,方法的内存分配 以下针对引用数据类型: 在内存中,类是静态的概念,它存在于内存中的CodeSegment中. 当我们使用new关键字生成对象时,JVM根据类的代码,去堆内存中开辟一 ...
- iview table的render()函数基本的用法
render:(h,params) => { return h(" 定义的元素 ",{ 元素的性质 }," 元素的内容"/[元素的内容]) }
- SQL使用exists时的多种写法
from test; go from test; go 下面这种效率明显高不少.
- 最小生成树 || HDU 1301 Jungle Roads
裸的最小生成树 输入很蓝瘦 **并查集 int find(int x) { return x == fa[x] ? x : fa[x] = find(fa[x]); } 找到x在并查集里的根结点,如果 ...
- 18. PROFILING
18. PROFILING PROFILING表提供语句分析信息. 其内容对应于SHOW PROFILE和SHOW PROFILES语句生成的信息(参见"SHOW PROFILE语法&quo ...
- Installing MySQL 5.7.23 on CentOS 7
Installing MySQL 5.7.23 on CentOS 7 1. 安装前检查 1.1 检查NUMA是否开启 NUMA为什么要咋MySQL中禁用? MySQL是单进程多线程架构数据库,当nu ...
- dell服务器快速设置idrac
前提:将服务器专用的idrac网络接口,连接到网络上 1.登录到服务器(即被监控的服务器). 2.安装客户端工具 yum install OpenIPMI OpenIPMI-devel OpenI ...