前端与 HTML | 青训营笔记

422 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

前端概述

前端的核心工作:使用Web技术栈解决多终端GUI(图形用户界面)下的人机交互问题
前端技术栈:

  • HTML:用于展示页面内容
  • CSS:用于设置页面样式
  • JavaScript:用于定义网页中的行为
  • 网络协议:负责传输服务器与浏览器之间的数据。比如:浏览器向服务器发送请求,服务器响应请求,通过HTTP协议将服务器的前端代码传递给浏览器,然后浏览器用这些代码渲染页面,用户填写的表单等数据也可以通过HTTP协议传递给服务器

前端应该注意的问题:

  • 功能
  • 安全
  • 兼容性
  • 性能
  • 美观
  • 体验
  • 无障碍

借助以下工具,前端还可以做

  • Node.js:让JavaScript不局限在浏览器运行,可以开发服务器端的应用
  • ELECTRON:开发客户端的应用
  • React Native:开发客户端的应用
  • WebRTC:实现P2P(点对点)的在线数据传输,实现在线多人会议
  • WebGL:开发出较为流畅的3D游戏
  • WebASSEMBLY:可以将其他语言(比如C++)编译成可以在浏览器里运行的代码

HTML概述

HTML(HyperText Markup Language):超文本本标记语言

HTML文件结构

image.png

  • <!doctype html>标记当前页面的HTML的版本,浏览器据此采用相应的渲染模式
  • <html></html>文档根标签
  • <head></head>包含了文档的元(meta)数据,如  定义网页编码格式为 utf-8
  • <title></title>元素描述了文档的标题
  • <body></body>元素包含了可见的页面内容

浏览器会把HTML代码解析成一个DOM树 image.png

HTML常用标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 音频标签 -->
    <audio src="D:\桌面\医护模拟系统代码\录音.m4a" controls></audio>
    <br>
    <!-- 视频标签 -->
    <video  height="300" controls></video><br>
    <!-- 输入框,placeholder表示输入框中的提示语 -->
    <input placeholder="Please input your username."><br>
    <!-- 范围调节 -->
    <input type="range"><br>
    <!-- 数字 -->
    <input type="number" min="0" max="10"><br>
    <!-- 日期输入 -->
    <input type="date"><br>
    <!-- 多行输入 -->
    <textarea name="MultiInput" id="" cols="30" rows="10">多行输入</textarea><br>
    <!-- checkbox表示复选框 -->
    <p>
        <label><input type="checkbox">香蕉</label>
        <label><input type="checkbox" checked>苹果</label>
    </p>
    <!-- radio表示单选按钮 -->
    <p>
        <!--通过name属性值来划分单选组-->
        <label><input type="radio" name="ball">篮球</label>
        <label><input type="radio" name="ball">排球</label>
        <label><input type="radio" name="ball" checked>足球</label>
    </p>
    <p>
        <!-- select表示下拉选择 -->
        <select>
            <option>选项1</option>
            <option>选项2</option>
            <option>选项3</option>
            <option>选项4</option>
        </select>
    </p>
    <!-- 指定list后会提示自动补全输入,但是也可以任意输入datalist中没有的数据项 -->
    <input list="countries"/>
    <datalist id="countires">
        <option>German</option>
        <option>China</option>
        <option>Italy</option>
        <option>America</option>
        <option>Canada</option>
        <option>Australia</option>
    </datalist>
    <!-- 块级引用,一般引用较长的文字cite表示引用的地址 -->
    <blockquote cite="">
        <p>
            走自己的路,让别人说去吧@#@¥¥¥#
        </p>
    </blockquote>
    <!-- 短引用,一般引用几个字的词语 -->
    <cite>短引用</cite><br>
    <q>也是一个引用,会自动加双引号</q>
    <!-- 引用代码词语或短句,相当于markdown语法中的` -->
    <code>
        const reverse=1
    </code>
    <!-- 引用较长的代码块,相当于markdown语法中的``` -->
    <pre><code>
        const reverse = function (headNode) {
            if (!headNode) {
                return headNode
            }
            // 定义当前节点 等于 headNode
            let cur = headNode;
            // 定义上一个节点 等于 null
            let prev = null;
            // 如果当前节点存在,在进行链表遍历
            while (cur) {
                // 存储当前节点的下一个,因为一会要存为上一个
                let temp = cur.next;
                // 改变当前节点的下一个节点的指向为上一个
                cur.next = prev;
                // 向前推进一步,上一个节点变为当前节点
                prev = cur;
                // 当前节点变为原来当前节点的下一个节点
                cur = temp;
            }
            headNode = prev
            // 返回反转后的头节点
            return headNode;
        };
    </code></pre>
    <strong>重要性、紧急上的强调</strong><br>
    <em>语气上的强调</em>
</body>
</html>

运行结果 image.png

image.png

HTML语义化

HTML的元素、属性及属性值都有某种含义。开发者应遵循语义来编写HTML 语义化可提高代码可读性,可维护性和无障碍性,有利于SEO(搜索引擎优化) 我们应根据想要传达的内容来选择合适的标签,而不是传达视觉上样式的相似