这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
重点内容
- 前端用来干什么?原理是什么?
- 做前端需要考虑哪些方面的问题?
- 前端的扩展(边界)
- HTML的二三事
- 什么是元素?
- 常见元素
- 标题
- 列表
- 多媒体
- 输入
- HTML的文字处理
- 块引用
- 短引用
- 代码引用
- 语义化
详细知识点介绍+实践练习例子
前端用来干什么?原理是什么?
前端 旨在使用 web技术栈 解决 多端GUI(Graphical User Interface)人机交互 的问题。
web技术栈分为3层:
- HTML 负责页面、结构和内容;
- JavaScript 控制网页的行为;
- CSS 可以设置网页样式。
前端代码由网络协议提交到服务器端后,浏览器从服务器端获取代码后完成渲染,呈现给用户。HTML代码不能少,CSS和JavaScript在HTML的基础上才能够实现对GUI进一步优化。
前端的开发环境门槛极低,仅由浏览器和编辑器组成。
做前端需要考虑哪些方面的问题?
- 美观:赏心悦目的前端页面会让访问者更愿意使用;
- 功能:例如,登录功能、用户管理;
- 无障碍:为了让更多人群在更多情形下能够正常获取展示的内容;
- 安全:例如,XXS(Cross Site Scripting)跨站脚本攻击、CSRF(Cross-site Request Forgercy)跨站请求伪造;
- 性能:在一定程度上会影响用户体验;
- 兼容性:分为三类:
- 浏览器兼容性;
- 屏幕分辨率兼容性;
- 跨平台兼容性。
- 用户体验:是上面各方面因素的共同结果。
前端的扩展(边界)
扩展 这个词是我擅自用的,个人认为比 边界 更容易理解。不管是node.js还是electron以及其他,都是前端技术栈的一部分,不过三剑客是核心中的核心。
- Node.js:服务器端JavaScript,是基于事件的异步函数,使用事件循环,而非等待I/O操作,处理效率极高。
- Electron:基于Chromium和Noed.js实现,是利用web前端技术进行桌面应用开发的框架,利于实现多平台兼容。
- React Native:是构建用户界面的JavaScript框架,可以同时用于Web和移动端App项目(可以用来开发Hybrid App)。
- ...
HTML的二三事
HTML(HyperText Markup Language),HyperText涵盖图片、标题、链接、表格,Markup Language意为标记语言,通过使用tags(tags内可附带Attribute)实现内容的结构化
DOM树
DOM树是浏览器标记内部的表示,浏览器接收到网络数据后的第一步就是 处理HTML标记并构建DOM树。HTML/XML文档在浏览器里均被表示为DOM树。
元素(elements)
元素可以没有内容和结束标签,但会有开始标签。例如 空元素(void elements),如input, meta, img,没有成对tags,甚至连内容也没有,用于实现输入、设置字符集、为文字或图片添加超链接等功能。
tags中可以包含属性值(attribute),推荐使用双引号包裹,有些属性值有默认值,可以省略,如required,readonly,disable。
常见元素
标题的tags包括h1~h6,通常需要保证一个网页只使用1次<h1>标签,并且同级的副标题使用相同的tags,以避免显示错误的情况。
列表元素分为(以下内容采用无序表展示):- <ol>序列表(order list)
- initial
- secondary
- ultimate
<ol>
<li>initial</li>
<li>secondary</li>
<li>ultimate</li>
</ol>
- initial
- secondary
- ultimate
<ul>
<li>initial</li>
<li>secondary</li>
<li>ultimate</li>
</ul>
- definition title
- definition description
<dl>
<dt>definition title</dt>
<dd>definition description</dd>
<dd>一个dt下可以有多个dd存在_1</dd>
<dd>一个dt下可以有多个dd存在_2</dd>
</dl>
多媒体元素(必要的属性都是src)- img: 图像链接,可包含alt属性,以在无法加载图片时展示替代性文本(alternative text),只设置width或height时默认等比缩放。
<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bf3bcf20d78744afa4ff24799aacc128~tplv-k3u1fbpfcp-watermark.image?" width="200">
<video src="https://prod-streaming-video-msn-com.akamaized.net/3f6ca508-598d-4cbd-a3e2-43deea7bc377/b60c553e-9f3f-4164-8850-700a9a73a899.mp4" controls></video>
<audio src="http://music.163.com/song/media/outer/url?id=5267465.mp3" controls></audio>
输入元素
- tags
- 文本框(textarea):生成文本框,未设定大小的情况了可以让用户自由拖动以改变大小
- 输入框
- 属性
- <placeholder>占位符
- type="range" 滑动块
- type="number" min="" max="" 要求输入范围min-max的数字
- type="date" min="yyyy-mm-dd" 要求输入min日期以后的日期 Textarea
<textarea>Textarea</textarea>
<p><input type="text" placeholder="input text">
<input type="range" min="0" max="500">
<input type="number" min="0" max="50">
<input type="date" min="2023/01/14"></p>
- type="checkbox" 是可以展示出每一个选项的多选 a b c ```html a b c ```
- type="radio" name="sports" name可以限定type="radio"只能单选 single select_1 single select_2
<label><input type="radio" name="sport">single select_1</label>
<label><input type="radio" name="sport">single select_2</label>
<input list="countries" placeholder="input+datalist"/>
<datalist id="countries">
<option>Greece</option>
<option>United Kingdom</option>
</datalist>
<select>
<option>option1</option>
<option>option2</option>
<option>option3</option>
</select>
HTML的文字处理
- 块引用(blockquote)
HTML 的主要工作是编辑文本结构和文本内容(也称为语义),以便浏览器能正确的显示。本文介绍了 HTML的使用方法:在一段文本中添加标题和段落,强调语句,创建列表等等。
<blockquote cite="https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML">
<p>HTML 的主要工作是编辑文本结构和文本内容(也称为语义),以便浏览器能正确的显示。本文介绍了 HTML的使用方法:在一段文本中添加标题和段落,强调语句,创建列表等等。</p></blockquote>
- 引用题目(cite)
- 引用内容(quote)
人死了,就像水消失在水中
——《另一次死亡》
<p>人死了,<q>就像水消失在水中</q><cite>——《另一次死亡》</cite></p>
const add=(a,b)=>a+b;
const
<pre><code>
const add=(a,b)=>a+b;</code></pre>
<code>const</code>
语义化
引入标签以语义化,遵循语义化有利于:
- 提高代码可读性
- 可维护性
- 搜索引擎优化
- 提升无障碍性
另外,关于如何做到语义化,有以下几点要求:
- 开发者了解每个标签和属性的含义
- 并选择最适合描述该内容的标签
- 不要使用可视化工具生成代码,这将不利于语义化
个人课后总结
虽然这节课结束之后不再会这么详细地讲HTML,但并不意味这节课结束后HTML的学习也一起结束。 语义化要求熟悉每个tags和attribute,这一点还需要在日后的项目实践中不断深入了解。
引用参考
React Native的概述,React Native的优缺点,React Native开发/运行环境的搭建
node.js写服务器端_Node.js入门指南(服务器端JavaScript)
本文若有不足之处,欢迎纠正
标题:前端与 HTML - 掘金