iOS开发之混合开发简单介绍

2014年,历时8年的HTML标准制定完成.利用HTML5编写的UI界面能运行在所有拥有浏览器的平台之上,且开发迅速而简单.这样,混合开发使得iOS开发变得更简单,更快捷

1. Web开发新时代

  • Web1.0
    主流技术:HTML+CSS

  • Web2.0
    主流技术:Ajax(JavaScript/DOM/异步数据请求)

  • Web3.0
    主流技术:HTML5+CSS3
    HTML5亮点: Canvas\HTML5音视频\Web存储 Geolocation \Workers多线程处理
    CSS3亮点: 设计动画\2D变形\N多新特性

网页的组成

  • 一个有具体功能的完整的网页,一般由3部分组成

    • HTML
      网页的具体内容和结构

    • CSS
      网页的样式(美化网页最重要的一块)

    • JavaScript(掌握)
      网页的交互效果,比如对用户鼠标事件做出响应

  • HTML\CSS\JavaScript学习资料:http://www.w3school.com.cn/

2. HTML

什么是HTML

  • HTML的全称是HyperText Markup Language,超文本标记语言
  • 其实它就是文本,由浏览器负责将它解析成具体的网页内容

HTML的组成

  • 跟XML类似,HTML由N个标签(节点、元素、标记)组成

HTML语法非常松散,目前的最新版是5.0,也就是HTML 5

  • 常见的HTML标签

    • 标题:h1、h2、h3、h4、h5....
    • 段落:p
    • 换行:br
    • 容器:div、span(用来容纳其他标签)
    • 表格:table、tr、td
    • 列表:ul、ol、li
    • 图片:img
    • 表单:input
    • 链接:a
  • HTML标签类型
    HTML有N多标签,根据显示的类型,主要可以分为3大类

    1. 块级标签
      独占一行的标签
      能随时设置宽度和高度(比如div、p、h1、h2、ul、li)

    2. 行内标签(内联标签)
      多个行内标签能同时显示在一行
      宽度和高度取决于内容的尺寸(比如span、a、label)

    3. 行内-块级标签(内联-块级标签)
      多个行内-块级标签可以显示在同一行
      能随时设置宽度和高度(比如input、button)

  • CSS中有个display属性,能修改标签的显示类型

    • none:隐藏标签
    • block:让标签变为块级标签
    • inline:让标签变为行内标签
    • inline-block:让标签变为行内-块级标签(内联-块级标签)

HTML5新增标签

  • HTML5新增了27个标签元素,废弃了16个标签元素,主要包括结构性标签、级块性标签、行内语义性标签、交互性标签
    1. 结构性标签
      负责Web上下文结构的定义,确保HTML文档,包括:
      - article 文章主体内容(一篇博客、一篇论坛帖子、一段用户评论、插件)
      - header 标记头部区域内容
      - footer 标记脚部区域内容
      - section 区域章节表述
      - nav 菜单导航,链接导航

    2. 块级性标签
      完成Web页面区域的划分,确保内容的有效分隔,包括:
      - aside 注记,贴士,侧栏,摘要,插入的引用作为补充主体的内容
      - figure 对多个元素组合并展示的元素,常与figcaption联合使用
      - code 表示一段代码块
      - dialog 人与人之间对话,包含dt和dd两个组合元素(dt用于表示说话者、dd用于表示说话者的内容)

    3. 行内语义性标签
      完成Web页面具体内容的引用和表述,丰富展示内容,包括:
      - meter 特定范围内的数值,如工资、数量、百分比
      - time 时间值
      - progress 进度条,可用max、min、step进行控制,完成对进度的表示和监听
      - video 视频元素,用于视频播放,支持缓冲预载和多种视频媒体格式
      - audio 音频元素,用于音频播放,支持缓冲预载和多种音频媒体格式

    4. 交互性标签
      功能性内容的表达,有一定的内容和数据的关联,是各种事件的基础,包括:
      - details 表示一段具体的内容,默认不显示,通过某种方式(单击)与legend交互才会显示
      - datagrid 控制客户端数据与显示,可用于动态脚本及时更新
      - menu 用于交互菜单
      - command 用来处理命令按钮

3. CSS

什么是CSS

  • CSS的全称是Cascading Style Sheets,层叠样式表
  • 它用来控制HTML标签的样式,在美化网页中起到非常重要的作用
  • CSS的编写格式是键值对形式的,比如:
color: red;
background-color: blue;
font-size: 20px;
  • 冒号:左边的是属性名,冒号:右边的属性值

CSS的3种书写形式

  • 行内样式:(内联样式)直接在标签的style属性中书写
    <body style="color: red;">
  • 页内样式:在本网页的style标签中书写
    <style>
    body {
    color: red;
    }
    </style>
    ```
- 外部样式:在单独的CSS文件中书写,然后在网页中用link标签引用
<link rel="stylesheet" href="index.css">

>CSS的两大重点

1. 属性
    通过属性的复杂叠加才能做出漂亮的网页
  - CSS有N多属性,根据继承性,主要可以分为2大类
    - 可继承属性
父标签的属性值会传递给子标签
一般是文字控制属性

所有标签可继承
visibility、cursor
内联标签可继承
letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction
块级标签可继承
text-indent、text-align
列表标签可继承
list-style、list-style-type、list-style-position、list-style-image


    - 不可继承属性
父标签的属性值不能传递给子标签
一般是区块控制属性

display、margin、border、padding、background
height、min-height、max-height、width、min-width、max-width
overflow、position、left、right、top、bottom、z-index
float、clear
table-layout、vertical-align
page-break-after、page-bread-before
unicode-bidi

    
2. 选择器
    通过选择器找到对应的标签设置样式*(具体选择器内容和教程请参考:http://www.w3school.com.cn/css/index.asp)*

> CSS布局

-  默认情况下,所有的网页标签都在标准流布局中,从上到下,从左到右
- 脱离标准流的方法有
  - float属性
    - float属性的常用取值有:
        `left`:脱离标准流,浮动在父标签的最左边
`right`:脱离标准流,浮动在父标签的最右边
  - position属性

    ![position属性](http://upload-images.jianshu.io/upload_images/1879463-98d3215b81c3df23.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

>CSS3新增特性

- **RGBA透明度**
   RGB(红色R+绿色G+蓝色B),RGBA则在其基础上增加了Alpha通道,可用于设置透明值

- **块阴影与圆角阴影**
   box-shadow  text-shadow

- **圆角**
    border-radius

- **边框图片**
     border-image

- **形变**
   transform: none | <transform-function>[<transform-fuction>]

###4. 盒子模型

![盒子模型](http://upload-images.jianshu.io/upload_images/1879463-dcd26e170da66975.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 网页上的每一个标签都是一个盒子
- 每个盒子都有四个属性
  1. 内容(content)

![内容属性](http://upload-images.jianshu.io/upload_images/1879463-fd9b30c8df171c7b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  2. 填充(padding,内边距)

![填充属性](http://upload-images.jianshu.io/upload_images/1879463-5689bf59b9e0f5fe.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  3. 边框(border):盒子本身
  4. 边界(margin,外边距)

![边界属性](http://upload-images.jianshu.io/upload_images/1879463-2803e390750974e0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![标准盒子模型](http://upload-images.jianshu.io/upload_images/1879463-7d4bf71b5a129753.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![IE盒子模型](http://upload-images.jianshu.io/upload_images/1879463-0ad03d90f842a6aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###4. JavaScript
>什么是JavaScript

- JavaScript是一门广泛用于浏览器客户端的脚本语言,由Netspace公司设计,当时跟Sun公司合作,所以名字起得像Java。业内一般简称JS

>JS的常见用途

- HTML DOM操作(节点操作,比如添加、修改、删除节点)
- 给HTML网页增加动态功能,比如动画
- 事件处理:比如监听鼠标点击、鼠标滑动、键盘输入

>JavaScript的书写方式

- JS常见的书写方式有2种
  - 页内JS:在当前网页的script标签中编写

<script type="text/javascript">
</script>

  - 外部JS

<script src="index.js"></script>


>Canvas

-  HTML
<canvas id="canvas"></canvas>
- JS

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

    - `context`是一个绘图的上下文环境
    - `2d`是二维图形

- Canvas绘制直线
  - 起点

context.moveTo(100,100);

  - 终点

context.lineTo(400, 400);

  - 绘制
context.stroke();
  - 设置线条颜色和宽度
context.strokeStyle = 'red';

context.lineWidth = 5;

  - 设置填充色
context.fillStyle = 'blue';

- Canvas绘制弧线

context.arc(
centerX, centerY, radius,
startingAngle, endingAngle,
anticlockwise=false
)

  - `centerX, centerY`: 圆心的坐标
  - `radius`: 半径
  - `startingAngle`, `endingAngle`: 开始角度,结束角度
  - `anticlockwise`: false顺时针 true逆时针

![Canvas绘制弧线](http://upload-images.jianshu.io/upload_images/1879463-b56a7746859fd186.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,513评论 32 459
  • 你说有天忘了时间流转 在不经意间被看到垂怜 就像一朵云闪过的忧伤 只是那么一瞬间 却被看透了弱点 你说玫瑰花太久远...
    暮雨清风阅读 181评论 5 13
  • 这两天,有这么一则消息,很吸引眼球:2016年全国“卖地”收入最高的50个城市,合计土地出让收入达到2.45万亿元...
    冷眼观史阅读 1,745评论 9 27
  • 现在正是山楂成熟季节,也就是说,这时候吃到的山楂糖葫芦是最新鲜的山楂了。山楂可以做成很多零食,挂霜山楂也...
    雪之莹阅读 375评论 0 0