前端开发
前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互 [1] 。它从网页制作演变而来,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web1.0时代的产物,早期网站主要内容都是静态,以图片和文字为主,用户使用网站的行为也以浏览为主。随着互联网技术的发展和HTML5、CSS3的应用,现代网页更加美观,交互效果显著,功能更加强大。 [2]
移动互联网带来了大量高性能的移动终端设备以及快速的无线网络,HTML5,node.jS的广泛应用,各类框架类库层出不穷。
1.核心技术
①HTML语言
掌握HTML是网页的核心,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。因此,它是网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web开发人员的基本条件。
HTML是一种标记语言,能够实现Web页面并在浏览器中显示。HTML5作为HTML的最新版本,引入了多项新技术,大大增强了对于应用的支持能力,使得Web技术不再局限于呈现网页内容。
随着CSS、JavaScript、Flash等技术的发展,Web对于应用的处理能力逐渐增强,用户浏览网页的体验已经有了较大的改善。不过HTML5中的几项新技术实现了质的突破,使得Web技术首次被认为能够接近于本地原生应用技术,开发Web应用真正成为开发者的一个选择。
HTML5可以使开发者的工作大大简化,理论上单次开发就可以在不同平台借助浏览器运行,降低开发的成本,这也是产业界普遍认为HTML5技术的主要优点之一。
②CSS
学好CSS是网页外观的重要一点,CSS可以帮助把网页外观做得更加美观。
③JavaScript
学习JavaScript的基本语法,以及如何使用JavaScript编程将会提高开发人员的个人技能。
④操作系统
了解Unix和Linux的基本知识,对于开发人员有益无害。
⑤网络服务器
了解Web服务器,包括对Apache的基本配置,htaccess配置技巧的掌握等。
2.前端框架
学好Web框架
熟悉掌握HTML、服务器端脚本语言、CSS和JavaScript之后,学习Web框架可以加快Web开发速度,节约时间。PHP程序员可选的框架包括CakePHP、CodeIgniter、Zend等,Python程序员喜欢使用Django和 webpy,Ruby程序员常用RoR。
随着Web 越来越规范和标准的统一,Web组件化技术不断革新,移动端开发不断升华,以下是一些常见开源前端框架:
Bootstrap
主流框架之一,Bootstrap 是基于 HTML、CSS、JavaScript的,它简洁灵活,使得 Web 开发更加快捷。
html5-boilerplate
该框架可以快速构建健壮,且适应力强的web app或网站。
Meteor
Meteor是新一代的开发即时web应用的开源框架,它能在较短时间内完成开发。
Semantic UI
基于自然语言有效原则的UI组件框架
Foundation
优秀的响应式前端框架
Materialize
基于材料设计的现代化响应式前端框架。可提供默认的样式,自定义组件。此外,Materialize还改进动画和过渡,为开发人员提供流畅的体验。
Pure
几乎可以在每一个web项目中使用的一组小的和响应式的CSS模块。
Vue
Vue.js 是用于构建交互式的 Web 界面的库。它提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。
Skeleton
Skeleton 是一个小的 JS 和 CSS 文件的集合,可快速开发漂亮的网站,适合各种屏幕设备包括手机。Skeleton 基于 960 grid 开发。它是一个 UI 框架。
Amaze UI
国内首个开源HTML5跨屏前端框架产品系列,中文排版支持更优、本土化组件丰富。该产品系列中有专门针对移动端的HTML5混合应用开发框架Amaze UI Touch以及针对跨屏HTML5网页开发的Amaze UI Web。其中,Amaze UI Touch可以帮助开发者通过丰富的组件,快速构建出与原生APP相媲美的专属移动端的HTML5应用。
UIkit
一个轻量级的和模块化的前端框架,用于快速开发和功能强大的web接口。
Yui
Yahoo! UI Library (YUI) 是一个开放源代码的 JavaScript 函数库,为了能建立一个高互动的网页,它采用了AJAX, DHTML 和 DOM 等程式码技术。它也包含了许多 CSS 资源。使用授权为 BSD许可证。
kissy
一款跨终端、模块化、高性能、使用简单的 JavaScript 框架。
MUI
最接近原生App体验的前端框架的框架。
Arale
一个开放、简单、易用的前端基础类库。
JX
JX 是模块化的非侵入式Web前端框架,特别适合构建和组织大规模、工业级的Web App。
GMU
GMU是基于zepto的mobile UI组件库,提供webapp、pad端简单易用的UI组件! Web App。
ZUI
开源HTML5前端框架
Clouda Touch.js
Touch.js是移动设备上的手势识别与事件库,也是在百度内部广泛使用的开发。
HTML5
标签
<!--...--> | 定义注释。 |
<!DOCTYPE> | 定义文档类型。 |
<a> | 定义锚。 |
<abbr> | 定义缩写。 |
<acronym> | 定义只取首字母的缩写。 |
<address> | 定义文档作者或拥有者的联系信息。 |
<applet> | 不赞成使用。定义嵌入的 applet。 |
<area> | 定义图像映射内部的区域。 |
<article> | 定义文章。 |
<aside> | 定义页面内容之外的内容。 |
<audio> | 定义声音内容。 |
<b> | 定义粗体字。 |
<base> | 定义页面中所有链接的默认地址或默认目标。 |
<basefont> | 不赞成使用。定义页面中文本的默认字体、颜色或尺寸。 |
<bdi> | 定义文本的文本方向,使其脱离其周围文本的方向设置。 |
<bdo> | 定义文字方向。 |
<big> | 定义大号文本。 |
<blockquote> | 定义长的引用。 |
<body> | 定义文档的主体。 |
<br> | 定义简单的折行。 |
<button> | 定义按钮 (push button)。 |
<canvas> | 定义图形。 |
<caption> | 定义表格标题。 |
<center> | 不赞成使用。定义居中文本。 |
<cite> | 定义引用(citation)。 |
<code> | 定义计算机代码文本。 |
<col> | 定义表格中一个或多个列的属性值。 |
<colgroup> | 定义表格中供格式化的列组。 |
<command> | 定义命令按钮。 |
<datalist> | 定义下拉列表。 |
<dd> | 定义定义列表中项目的描述。 |
<del> | 定义被删除文本。 |
<details> | 定义元素的细节。 |
<dir> | 不赞成使用。定义目录列表。 |
<div> | 定义文档中的节。 |
<dfn> | 定义定义项目。 |
<dialog> | 定义对话框或窗口。 |
<dl> | 定义定义列表。 |
<dt> | 定义定义列表中的项目。 |
<em> | 定义强调文本。 |
<embed> | 定义外部交互内容或插件。 |
<fieldset> | 定义围绕表单中元素的边框。 |
<figcaption> | 定义 figure 元素的标题。 |
<figure> | 定义媒介内容的分组,以及它们的标题。 |
<font> | 不赞成使用。定义文字的字体、尺寸和颜色。 |
<footer> | 定义 section 或 page 的页脚。 |
<form> | 定义供用户输入的 HTML 表单。 |
<frame> | 定义框架集的窗口或框架。 |
<frameset> | 定义框架集。 |
<h1> to <h6> | 定义 HTML 标题。 |
<head> | 定义关于文档的信息。 |
<header> | 定义 section 或 page 的页眉。 |
<hr> | 定义水平线。 |
<html> | 定义 HTML 文档。 |
<i> | 定义斜体字。 |
<iframe> | 定义内联框架。 |
<img> | 定义图像。 |
<input> | 定义输入控件。 |
<ins> | 定义被插入文本。 |
<isindex> | 不赞成使用。定义与文档相关的可搜索索引。 |
<kbd> | 定义键盘文本。 |
<keygen> | 定义生成密钥。 |
<label> | 定义 input 元素的标注。 |
<legend> | 定义 fieldset 元素的标题。 |
<li> | 定义列表的项目。 |
<link> | 定义文档与外部资源的关系。 |
<map> | 定义图像映射。 |
<mark> | 定义有记号的文本。 |
<menu> | 定义命令的列表或菜单。 |
<menuitem> | 定义用户可以从弹出菜单调用的命令/菜单项目。 |
<meta> | 定义关于 HTML 文档的元信息。 |
<meter> | 定义预定义范围内的度量。 |
<nav> | 定义导航链接。 |
<noframes> | 定义针对不支持框架的用户的替代内容。 |
<noscript> | 定义针对不支持客户端脚本的用户的替代内容。 |
<object> | 定义内嵌对象。 |
<ol> | 定义有序列表。 |
<optgroup> | 定义选择列表中相关选项的组合。 |
<option> | 定义选择列表中的选项。 |
<output> | 定义输出的一些类型。 |
<p> | 定义段落。 |
<param> | 定义对象的参数。 |
<pre> | 定义预格式文本。 |
<progress> | 定义任何类型的任务的进度。 |
<q> | 定义短的引用。 |
<rp> | 定义若浏览器不支持 ruby 元素显示的内容。 |
<rt> | 定义 ruby 注释的解释。 |
<ruby> | 定义 ruby 注释。 |
<s> | 不赞成使用。定义加删除线的文本。 |
<samp> | 定义计算机代码样本。 |
<script> | 定义客户端脚本。 |
<section> | 定义 section。 |
<select> | 定义选择列表(下拉列表)。 |
<small> | 定义小号文本。 |
<source> | 定义媒介源。 |
<span> | 定义文档中的节。 |
<strike> | 不赞成使用。定义加删除线文本。 |
<strong> | 定义强调文本。 |
<style> | 定义文档的样式信息。 |
<sub> | 定义下标文本。 |
<summary> | 为 <details> 元素定义可见的标题。 |
<sup> | 定义上标文本。 |
<table> | 定义表格。 |
<tbody> | 定义表格中的主体内容。 |
<td> | 定义表格中的单元。 |
<textarea> | 定义多行的文本输入控件。 |
<tfoot> | 定义表格中的表注内容(脚注)。 |
<th> | 定义表格中的表头单元格。 |
<thead> | 定义表格中的表头内容。 |
<time> | 定义日期/时间。 |
<title> | 定义文档的标题。 |
<tr> | 定义表格中的行。 |
<track> | 定义用在媒体播放器中的文本轨道。 |
<tt> | 定义打字机文本。 |
<u> | 不赞成使用。定义下划线文本。 |
<ul> | 定义无序列表。 |
<var> | 定义文本的变量部分。 |
<video> | 定义视频。 |
<wbr> | 定义可能的换行符。 |
<xmp> | 不赞成使用。定义预格式文本。 |
img标签
定义和用法
img 元素向网页中嵌入一幅图像。
请注意,从技术上讲,<img> 标签并不会在网页中插入图像,而是从网页上链接图像。<img> 标签创建的是被引用图像的占位空间。
<img> 标签有两个必需的属性:src 属性 和 alt 属性。
必需的属性
属性 | 值 | 描述 |
---|---|---|
alt | text | 规定图像的替代文本。 |
src | URL | 规定显示图像的 URL。 |
可选的属性
属性 | 值 | 描述 |
---|---|---|
align |
| 不推荐使用。规定如何根据周围的文本来排列图像。 |
border | pixels | 不推荐使用。定义图像周围的边框。 |
height |
| 定义图像的高度。 |
hspace | pixels | 不推荐使用。定义图像左侧和右侧的空白。 |
ismap | URL | 将图像定义为服务器端图像映射。 |
longdesc | URL | 指向包含长的图像描述文档的 URL。 |
usemap | URL | 将图像定义为客户器端图像映射。 |
vspace | pixels | 不推荐使用。定义图像顶部和底部的空白。 |
width |
| 设置图像的宽度。 |
例如
<img src="image/android.png" height="102" width="284" > <!--显示图片>
video标签
定义和用法
<video> 标签定义视频,比如电影片段或其他视频流。
属性
new : HTML5 中的新属性。
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 如果出现该属性,则视频在就绪后马上播放。 |
controls | controls | 如果出现该属性,则向用户显示控件,比如播放按钮。 |
height | pixels | 设置视频播放器的高度。 |
loop | loop | 如果出现该属性,则当媒介文件完成播放后再次开始播放。 |
muted | muted | 规定视频的音频输出应该被静音。 |
poster | URL | 规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。 |
preload | preload | 如果出现该属性,则视频在页面加载时进行加载,并预备播放。 如果使用 "autoplay",则忽略该属性。 |
src | url | 要播放的视频的 URL。 |
width | pixels | 设置视频播放器的宽度。 |
例如
<video src="video/video.mp4" controls="controls" loop="loop" muted="muted"></video>
table标签
定义和用法
<table> 标签定义 HTML 表格。
简单的 HTML 表格由 table 元素以及一个或多个 tr、th 或 td 元素组成。
tr 元素定义表格行,th 元素定义表头,td 元素定义表格单元。
更复杂的 HTML 表格也可能包括 caption、col、colgroup、thead、tfoot 以及 tbody 元素。
可选的属性
属性 | 值 | 描述 |
---|---|---|
align |
| 不赞成使用。请使用样式代替。 规定表格相对周围元素的对齐方式。 |
bgcolor |
| 不赞成使用。请使用样式代替。 规定表格的背景颜色。 |
border | pixels | 规定表格边框的宽度。 |
cellpadding |
| 规定单元边沿与其内容之间的空白。 |
cellspacing |
| 规定单元格之间的空白。 |
frame |
| 规定外侧边框的哪个部分是可见的。 |
rules |
| 规定内侧边框的哪个部分是可见的。 |
summary | text | 规定表格的摘要。 |
width |
| 规定表格的宽度。 |
例如
<p>每个表格由 table 标签开始。</p><p>每个表格行由 tr 标签开始。</p><p>每个表格数据由 td 标签开始。</p> <!--多少对tr多少行多少对td多少列-->
<h4>一列:</h4>
<table border="1">
<tr>
<td>100</td>
</tr>
</table>
<h4>一行三列:</h4>
<table border="1">
<tr>
<td>100</td>
<td>200</td>
<td>300</td>
</tr>
</table>
<h4>两行三列:</h4>
<table border="1">
<tr>
<td>100</td>
<td>200</td>
<td>300</td>
</tr>
<tr>
<td>400</td>
<td>500</td>
<td>600</td>
</tr>
</table>