写给IOS开发工程师的网页前端入门笔记

简介:

前言:作为IOS开发工程师,终会接触到网页前端开发,甚至可能会有 用HTML5开发IOS的app客户端的需求。比如现在上架的app就有比如理财类型的app有的就用HTML开发的,从理财类型的app需求上思考,用 HTML5确实是个不错的选择,利用了跨平台的同时,也考虑到了理财类型的app仅仅需要处理的是数据的业务逻辑,不存在较多的本地存储数据,而且涉及到 的财务信息从安全性考虑数据基本都会存储在服务器端,是不可能用于存储在本地的,再加上HTML5对各种手机屏幕的尺寸适配性非常灵活,所以这一类app 用HTML5开发是非常正确的选择。不过本文涉及的内容是针对IOS工程师所需的知识内容,所以并没有涉及网页前端所有的开发细节。

 

HTML5简介

HTML5 - 简单
8年发展 - 标准
UI界面跨平台 - 写一份HTML5代码,这个界面就可以运行到任何手机平台
运行平台 - 浏览器
移动先行 - 以前的HTML(5以上的版本)都是运行在非手持设备运行的
原生 - 比如手机自带的手机相册\打电话\拍照
    >手机app的常见的开发模式 :原生+HTML5

网页的基本组成

一个有具体功能的完整的网页,一般由3部分组成
    HTML
        决定网页的具体内容和结构
    CSS
        代表网页的样式(美化网页最重要的一块内容)
    JavaScript
        网页的交互效果,比如对用户鼠标事件作出响应
<HTML和CSS需要了解就好,因为需要掌握大量东西才好做CSS美工方面的东西>

HTML编写

什么是HTML?
    HyperText Markup Language 超文本标记语言
    其实就是文本,由浏览器负责将它解析成具体的网页内容
前端开发工具:
    >sublime text : 拓展性非常强(安装各种插件)\颜色经典
    >Dreamwaver : 美工(Adobe公司开发)
    >WebStorm : 自带了各种插件 比如Nodejs grunt less
    >Eclipse : 主要开发Java程序
head一般放CSS和JS的,body一般放内容。
title一般放置描述性内容。

常见的HTML的标签: 百度就能了解。

CSS编写

什么是CSS?CSS的全称是Cascading Style Sheets,层叠样式表
它用来控制HTML标签的样式,在美化网页中起到非常重要的作用

CSS的编写格式是键值对形式的,比如:

1
2
3
color : red;
background-color : blue
font-size : 20px; 冒号左边的是属性名,冒号右边的是属性值

CSS的三种书写形式:

  • 1、行内样式:(内联样式),就是直接在标签内部添加样式,直接作用到当前样式
1
2
<p style="color: red; font-size:20px; background: #00f"></p>
弊端:只能作用于当前标签,对于多个重复的多个的,大量的重复的就不好了。
  • 2、页内样式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<head>
<style>
p{
color: red;
font: 40px;
background: orange;
}这个就是指定p标签的样式CSS
</style>
</head>
<body>
<p>loaojhaljeoijfaojfaojf;al</p>
<p>loaojhaljeoijfaojfaojf;al</p>
<p>loaojhaljeoijfaojfaojf;al</p>
这样这里所有的p标签的样式都会被上面的CSS样式所设定
<p style="color: yellow">loaojhaljeoijfaojfaojf;al</p>
如果标签自己又设置了和样式标签有冲突的属性,代码会自动就近原则。
</body>
弊端:只能用在当前网页
  • 3、外部样式:在单独的CSS文件中书写,然后在网页中用link标签引用

为了能够作用到项目里的所有HTML文件,就有必要新建一个xxx.css文件:

1
2
3
4
5
div{
color:red;
font-size: 50px;
border: 1px
}

然后在需要设置CSS样式的网页上添加连接这个自定义CSS文件

1
2
3
4
5
6
7
8
<head>
<link rel="stylesheet" href="xxx.css" >
rel是relation关系的意思
href就是Hypertext Reference(超文本引用)的缩写
</head>
<body>
<div>second</div>
</body> 三种方式没有优先级,如果要考虑优先,原则就是就近原则。

CSS选择器

CSS有两大核心:选择器、属性(学好CSS,只要学好这两个就好了)

代码格式就是:
1
2
3
4
5
选择器{
属性1;
属性2;
。。。。。。
}
选择器使用实例1
选择器的作用:选择对应的标签,为之添加样式
div{
    color:red;
    font-size: 20px;
    border:5px;
}
html中的某个标签:
...
<body>
    <div>second</div>
</body>
...
这个div标签选择器,会根据标签名找到对应标签<div>,
然后把选择器里的属性设置到对应标签的内容上。
这里就是把color:red;font-size:20px;border:5px;设置在second这个内容上
选择器使用实例2

标签选择器:根据标签名找到标签

1
2
<div>div1</div>
<div>div2</div>

下面是选择器:

1
2
3
4
5
div{
color:red;
font-size: 20px;
border:5px;
}

因为两个标签的标签名都是div,所以选择器里的属性都会作用于div1和div2

下面讲讲不同类型的类选择器:

类选择器:

1
2
3
4
5
<p class ="high">第一段文件</p>
<p>第二段文字</p>

<div class ="high">div1</div>
<div>div2</div>
然后在CSS文件中:
1
2
3
.high{
color: red;
}
这个标签是作用于class类标签属性是high的标签,所以会作用于"第一段文字"和"div"
总结:class标签就是可以把不同类的标签可以归为一个类class
注意
    类选择器开头要有"."符号哦
    类选择器的名字可以是标签中class属性字符串的一部分
        比如:.he类选择器名可以访问class = "woe he llo"的标签(注意要空格隔开的,不隔开(比如woehello)无用)
    "."是用来找class属性的,而"#"是用来找id属性的。

id选择器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
<head lang = "en">
<meta charset="UTF-8">
<title></title>
<style>
#rose {
font-size: 50px;
}
</style>
</head>
<body>
<div class="tom jerry" id="jack">11111</div>
<p class="tom">2222</p>
<a class="jerry" id="rose">222</a>
</body>
</html>
如果id="rose"的标签有两个,IDE会报错,浏览器运行无效。
和类标签选择器一样,Class通过.符号去选择,id选择器通过#符号去选择
#rose选择器表示查找并将这里面的属性设置到标签中id是rose的标签

群组选择器

  • 普通形式,神马标签都写上:
1
2
3
div , p , a {
font-size:50px;
} 其实质意义上div,p,a三者是并列的。

再举一个并列选择器(或者):

1
2
3
div , .high{
color: red;
};

作用:只要标签中有div或者有class=”high”或者是div和class=”high都有的都能设置

另外,如果要设置所有标签的设置,那么选择器名可以是符号 *

1
2
3
* {
font-size: 50px;
}

复合(并且):

1
2
3
div.high{
color: red;
}

还有就是需要同时符合三个条件,而且顺序不能乱:

1
2
3
div.high#jack{
color: blue;
}

意思就是,必须既是div,而且是class属性有high,最后还要id为jack都满足的标签

后代选择器(之间空格):

1
2
3
div .tom {
color: red;
}

就是找到div里面class=”tom”的所有子标签

如果是:

1
2
div p div span p{
}

就要找到div包含的p,这个p包含的div,这个div包含的span,这个span包含的p

然后根据后代又分为两种: 1、直接后代选择器,2、相邻兄弟选择器

1
2
div > p {
}

这里就是针对直接后代的,就是div包含的直接p标签,不是间接包含的标签

1
2
div + p {
}

相邻兄弟选择器,找到相邻的选择器

属性选择器:

1
2
3
4
div[name]{
}
div[name][id]{
}

CSS的优先级(从1~4优先级别越来越低):

1
2
3
4
5
6
7
8
带有 !important 的属性
在style属性中的样式
先比较选择器的优先级,优先级高的会覆盖优先级低的。
针对性越强(范围越小)的选择器,优先级越高
针对性越弱(范围越大)的选择器,优先级越低
例子:<div class="hello" id="jack">hewelf</div>
这里明显,id属性能够限定的标签最小,甚至对应的是一个标签。
如果优先级都相同,再比较选择器的先后顺序,后面的会覆盖前面的。
还有一种别人总结的经验:算权值
标签 1 类 10 id 100 然后求和计算css的选择器的权值    
CSS的注释是这样的 /* 内容 */
但是在CSS中//这样的注释是无用的。
1
2
HTML注释:
<!-- 内容 -->
1
2
3
4
CSS标签用的冒号叫"伪类"
div:hover {
color: blue;
}hover表示鼠标悬浮在div标签上面的时候,会设置相关的属性,这里会让div标签内容变成蓝色

CSS选择器–伪类(了解):

CSS选择器--伪类.png

HTML的输入框初识

...
<input placeholder="请输入用户名">这个就是在输入框内添加浅色的提示
...

Term和Alfred2的使用

iTerm和Alfred2的使用
iTerm和Alfred2的安装和使用笔记网址:http://www.cnblogs.com/goodboy-heyang/p/4909296.html

标签类型

根据显示的类型,主要分为3大类

块级标签

绝对独占一行的标签
随时设置自己的宽度和高度
(比如div、p、h1、h2、ul、li)

行内标签(内联标签)

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

行内-块级标签(内联-块级标签)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
多个行内-块级标签可以显示在同一行
能随时设置宽度和高度(比如input、button)

display:显示
比如:
display:inline-block 行内-区块
display:inline 行区
display:block 块
使用示例,这里将默认是块级的div设置为行内:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div{
display: inline;
}
</style>
</head>
<body>
<div >hello</div>
<div >world</div>
</body>
</html>
这里实例原本div标签的hello和world是分别显示在两行的,各自独占一行,
然后因为div选择器设置display: inline;意思就是将div标签设置为行内标签,
那么会发现效果hello和world就都显示在一行里了。
1
2
display:inline-block
可以将内容设置为既是行内标签又是块级标签,这样你可以仅仅把div当做简单的容器就是了。
1
2
display:none就会让内容不显示,这个display相当于IOS里的show方法
visiblity:hidden 仅仅是看不到

百度首页

源码下载百度云备份链接: 百度首页实例 密码: yzyv

网页开发须知:
    工程项目文件目录
    css文件夹
        index.css
    script文件夹
    index.html
美工开发一般步骤:
    先在html.index内定好结构,类似IOS开发中的规划好UI布局,每一块放好一块内容。
    然后在index.css文件中根据html.index分好的块分别设置样式。
    然后就是慢慢调整,很耗费时间的。

bootstrap

1
2
3
4
5
这是网页前端最受欢迎的第三方框架
另外,如果要学习可以到网站 v3.bootcss.com
在下载的bootstrap框架中css/下的我们能用到的就是bootstrap.css和bootstrap.min.css,其他的可以删除。
bootstrap.css和bootstrap.min.css的区别就是min将内部的空格都去了,这样文件小了,就可以节省流量。
所以bootstrap.css叫开发版本,然后bootstrap.min.css叫上线版本

官方开发文档展示了很多模板代码使用样式

说白了,这个框架就是帮你封装了一堆漂亮的样式,然后你只要会用即可。
有一些图标被设计成字体,然后存储在fonts文件夹下的字体文件内,所以需要把整个fonts文件夹拷贝进工程根目录。
在使用图片文字的时候,如果要调整大小,要注意,因为是文字,所以直接用font-size属性设置值就对了。

JS核心语法

浏览器就是JS的运行平台,就好比IOS就是OC的运行平台。

JS的常见用途

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

JS的书写方式

1
2
3
4
5
6
7
1、JS代码写在双引号里面。
<button onclice="alert(10);alert(99);">拍照</button>
这段JS代码可以写在html的<body>标签里,效果
2、脚本中执行
<scipt>
console.log(100);
</scipt>

另外,JS所有的变量都是用var,实例:var 变量名 = 变量值

数据类型

1
2
3
4
5
number 所有数字,比如小数/整数
object 所有类型 比如{}.[]
string 字符串类型,用双引号""或者单引号'',建议JS都用单引号
原因示例:<body onclick ="alert('hello')"></body>如果hello用双引号,肯定会冲突的。
function 函数类型

定义函数

1
2
3
4
5
6
7
8
9
10
function 函数名(形参){
//函数体
}
函数定义注意,如果两个或者两个以上的函数函数名一样,后面的会直接覆盖前面的,
没有重载的意义,就是直接的覆盖。最后使得只有最后一个函数有用或者会被调用。
function sum(num1,num2,num3,num4){
return num1 = num2 + num3 + num4;
}
//会返回NaN = Not a Number
console.log(sum(10,20));

函数实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1.简单的示例:
var dog = {
age : 30;
run : function(){
//this 相当于 OC里的self
console.log(this.age + '岁的狗跑起来。');
}
}
2.关于多个参数的示例:
function sum(){
console.log(arguments);
}
//JS会把多个参数存储在一个默认的数组arguments里面
sum(2+2+12);//然后会打印出[2,2,12]
3.求和多个参数
function sum(){
for (var i = 0,){
}
}
//JS会把多个参数存储在一个默认的数组arguments里面
sum(2+2+12);//然后会打印出[2,2,12]
3.多个参数返回求和(可以把字符串数值和数值类型数值都能相加)
<script>
function sum(){
var num = 0;
for(var i = 0;i<arguments.length;i++){
var temp = arguments[i];
if (typeof temp == 'number'){
num += temp;
}else if(typeof temp == 'string' && !isNaN(temp *= 1)){
num += temp;
}
}
console.log(num);
}
sum('1',2,3,4,'hello');
</script>
4.看看函数的类型
console.log(sum)//不要用sum()这个是调用函数了

对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
最简单的对象
var dog = {};
然后添加属性:
var dog = {
age : 20;
name: 'rose';
};
console.log(dog.name);
然后要访问这个dog的属性的两种方法:
console.log(dog.age);//点访问属性
console.log(dog['age']);//字典访问属性
这里提一个易错点:dog[age]这样会得到age的变量值,然后再访问字典字,所以会出bug的。
下面讲讲对象的方法:
function temp(){
console.log('跑起来');
}
var dog = {
age : 20;
run : temp;
};
当然把函数写成匿名函数,把函数直接封装在对象里面
var dog = {
age : 20;
run : function(){
console.log(this.age + '岁的狗跑起来')
}
}//如果this.age没有this的话,就会报错,JS明确必须要用this
dog.age = 40;
dog.run();
//函数也可以重新赋值或者叫覆盖
dog.run = function(){
console.log(this.age + '岁汪汪叫');
}

数组、字典都是对象类型

数组实例:

var array = [12,'dog',24,'jack',{
    name : 'wangcai'
},[],function(){
    console.log(10);
}];
array[array.length-1]();
相关文章
|
6天前
|
XML 前端开发 JavaScript
前端大神揭秘:如何让你的网页秒变炫酷,让用户欲罢不能的5大绝招!
前端开发不仅是技术活,更是艺术创作。本文揭秘五大前端开发技巧,包括合理运用CSS动画、SVG图形、现代JavaScript框架、优化网页性能及注重细节设计,助你打造炫酷网页,提升用户体验。
49 30
|
7天前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
25 9
|
7天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
5天前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。
|
7天前
|
存储 编解码 前端开发
惊!前端新手也能秒懂的高级技巧,轻松提升网页颜值与性能!
本文针对前端新手,介绍了三个简单易学的高级技巧,帮助提升网页的颜值和性能。包括使用CSS框架快速美化网页、优化图片资源加快加载速度,以及利用ARIA属性和媒体查询提高网页的可访问性和响应性。示例代码清晰,适合初学者上手实践。
18 3
|
8天前
|
JSON 前端开发 API
探索iOS开发之旅:打造你的第一个天气应用
【10月更文挑战第36天】在这篇文章中,我们将踏上一段激动人心的旅程,一起构建属于我们自己的iOS天气应用。通过这个实战项目,你将学习到如何从零开始搭建一个iOS应用,掌握基本的用户界面设计、网络请求处理以及数据解析等核心技能。无论你是编程新手还是希望扩展你的iOS开发技能,这个项目都将为你提供宝贵的实践经验。准备好了吗?让我们开始吧!
|
10天前
|
存储 前端开发 搜索推荐
(前端直接编辑CAD)网页CAD二次开发中线型表的使用方法
在DWG数据库中,线型样式存储在线型样式表 `McDbLinetypeTable` 中,每个线型表记录对象 `McDbLinetypeTableRecord` 对应一种线型样式。本文介绍了如何获取、添加、遍历、删除和修改线型样式,并提供了绘制不同线型的示例代码,包括虚线、点划线和带文字的线型。通过在线示例demo,用户可以实践修改CAD图纸中的实体线型及其样式。
|
12天前
|
搜索推荐 前端开发 开发者
前端开发的必修课:如何让你的网页在搜索引擎中脱颖而出?
【10月更文挑战第31天】前端开发不仅是构建网页与用户间桥梁的关键,还需注重搜索引擎优化(SEO)。优化网页结构、合理使用关键词、提升加载速度及整合社交媒体等技巧,能帮助网页在搜索引擎中脱颖而出,吸引更多用户。
24 5
|
12天前
|
机器学习/深度学习 前端开发 JavaScript
前端小白也能学会的高大上技巧:如何让你的网页支持语音控制?
【10月更文挑战第31天】你是否曾梦想过只需动动嘴皮子就能操控网页?现在,这个梦想触手可及。即使你是前端小白,也能轻松学会让网页支持语音控制的高大上技巧。本文将介绍语音控制的基本概念、实现方法和具体示例,带你走进语音控制的奇妙世界。通过Web Speech API,你只需掌握基本的HTML、CSS和JavaScript知识,就能实现语音识别和控制功能。快来尝试吧!
45 4
|
13天前
|
设计模式 前端开发 Swift
探索iOS开发:从初级到高级的旅程
【10月更文挑战第31天】在这篇文章中,我们将一起踏上iOS开发的旅程。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从基础开始,逐步深入到更高级的技术和概念。让我们一起探索iOS开发的世界吧!