前端是解决图形界面下的人机交互模型,前端工程师即是使用WAB技术栈解决多端多界面交互问题的工程师。
前端技术主要分为三层:最基础的是HTML,其次是CSS,最后是JS。
HTML是负责页面结构还有内容,在页面中使用CSS来设置样式,比如,位置大小颜色等信息,使用JS来负责控制用户的行为,比如用户点击按钮时页面应当如何响应。
JS和CSS与服务器之间通过网络协议进行通信,通过代码渲染出我们可以看到的画面。
前端需要解决的问题是图形界面下的人机交互问题,因此,前端需要关注以下几方面的问题:
首先应当关注,做出的东西满足什么功能,有什么作用,满足了用户哪些方面的一些需求;
其次是美观,即做出的图形界面要美观好看,吸引人;
还有就是要无障碍,即做出的网站是否是对所有人都可用的,比如有视觉障碍的人员;
另外还要考虑到安全,即做出的网站是否可以保证用户数据的安全,有没有存在一些可能被不法分子利用的漏洞等;
还要考虑到网站的性能,即做出的网站是否可以足够快,是否流畅,关系着用户的体验;
除此之外,还可以考虑到网站的兼容性,即网站在其他地方是否可以正常运行等。
用户对网站的直观感受即使来源于前端,所以前端对于用户体验有着很大一部分的决定性作用。
随着时代的发展,前端已经突破了自己已有的边界,有了更多的发展,如使用NODE JS开发服务器端的一些应用;使用ELECTRON开发客户端的应用;使用React Native进行在线的传输,实现多人的会议;也可以使用Web GL开发一些游戏等,总之前端在互联网行业里是一个发展非常快的一个邻域,需要更随时代的发展学习新东西。
开发环境:浏览器 + 编辑器(VSCODE,VIM,WEBSTORM)
HTML: HyperText Markup Language(超文本,标记语言(标签))
Html标签:所有文件的根标签,所有东西都在根标签里面;
Head标签:页面元数据,如标题;
Body标签:呈现给用户的东西,如文字,标题,图片等;
Dom树:标签树,将HTML转化为树形结构,进行调试和预览;每个节点成为Dom节点;
HTML语法:
标签和属性不区分大小写,推荐小写;
空标签可以不闭合,比如 input 、meta,或者直接写 \ ;
属性值推荐用双引号包裹;
某些属性值可以省略,比如required、readonly;
标题:有h1-h6,六级标题,是h?,就是几级标题;
列表:有3类标签,一类是有序列表,每项有编号(1,2,…);无序列表;定义列表:属性名+属性值列表;
链接:超链接;也可以使用多媒体来修饰网站链接;
输入:表单控件,如 input ,输入的类型多样;
文本类标签:关于引用:快捷引用(长引用:blockquote),短引用(cite、q);
引用代码标签:code;多行引用:pre标签;强调标签:strong(含义重要)、em(重音);
内容划分:页头:header,主体部分:main;相关但不太重要:aside;结尾标签:footer;
HTML语义化属性:
HTML中的元素、属性、属性值都拥有一些特定含义;
开发者需要遵循这种语义来编写HTML ;
在编写程序前,首先必须清楚自己所写的HTML是给谁使用的;
HTML的使用者包括:开发者、浏览器、搜索引擎、屏幕阅读器(给盲人阅读的页面内容)
语义化的好处:代码可读性、可维护性、搜索引擎优化、提升无障碍性
HTML:传达内容,而不是形式
如何做到语义化:
了解每个标签和属性的含义;
思考什么标签最合适描述这个内容;
不使用可视化工具生成代码