前端与 HTML | 青训营笔记

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

0x1 前端

  1. 什么是前端

    • 解决图形用户界面(GUI)人机交互的问题
    • 跨终端
      • PC/移动浏览器
      • 客户端/小程序
      • VR/AR 等
    • Web 技术栈

    一句话总结前端工程师的工作:使用 Web 技术栈解决多端 GUI 人机交互问题

  2. 前端技术栈

    在浏览网页时:

    1. 在浏览器中,通过 HTML 展示结构和内容,通过 CSS 表现样式,通过 JavaScript 控制行为
    2. 在服务器中,渲染 “HCJ” 的代码,使其图形化
    3. 通过各种网络协议(HTTP,TCP/IP)等,完成人机交互

    由此可见,前端的技术栈主要为 三件套网络协议,其中,三件套为前端的范畴

  3. 前端应该关注功能、美观、无障碍、安全、性能、兼容性、用户体验

  4. 前端的科技树

    • 通过node.js开发服务端
    • 通过ElectronReactNative开发客户端
    • 通过WebRTC开发 P2P 型在线传输,实现多人会议等
    • 通过WebGL开发一些 3D 游戏
    • 通过WebAssembly将 C++ 等代码编译渲染成网页
  5. 开发环境

    1. 浏览器

      IE/Edge Chrome Firefox Safari

    2. 编辑器

      VSCode Vim WebStorm

0x2 HTML

  1. 什么是 HTML

    超文本标记语言:HyperText Markup Language

    • 超文本(HyperText):即除文本外,还包含图片、视频等信息表达形式

    • 标记语言(Markup Language):即使用标签化的语言(如<p>段落</p>

      • 在标签化的语言中,可以在标签中添加属性,如<p color="xxx"></p>中的color就是属性名、xxx就是属性值

      • 当某个标签中不需要嵌套其他标签时,可以省略结束标签,如<br />

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8" />
            <title>页面标题</title>
        </head>
        <body>
            <h1>一级标题</h1>
            <p>一个段落</p>
        </body>
    </html>
    

    对于上述的一段简单的 HTML 代码,其中:

    1. <!DOCTYPE html>用于说明使用的 HTML 版本
    2. <html></html>是页面的根标签
    3. <head></head>用于存放页面的源数据
    4. <body></body>用于存放需要面向用户展示的内容
  2. 文档对象模型(DOM)树

    再次以上述代码举例,其对应的 DOM 树如下:

    document
    < html >
    < head >
    < body >
    < meta >
    < title >
    < h1 >
    < p >
  3. HTML 语法

    • 标签和属性不区分大小写,推荐使用小写
    • 空标签可以不闭合,如<input />
    • 属性值推荐使用双引号包裹
    • 某些属性值可以省略,如requiredreadonly
  4. 标签

    1. 标题(h1~h6

    2. 列表

      1. 有序列表

        <ol>
            <li>第一项</li>
            <li>第二项</li>
            <li>第三项</li>
        </ol>
        
      2. 无序列表

        <ul>
            <li>xyz</li>
            <li>abc</li>
            <li>!@#</li>
        </ul>
        
      3. key-value

        <dl>
            <dt>xxx:</dt>
            <dd>xxx1</dd>
            <dt>yyy:</dt>
            <dd>yyy1</dd>
            <dd>yyy2</dd>
            <dd>yyy3</dd>
        </dl>
        
    3. 链接

      <a href="http://example.com" target="_blank">链接</a>
      
    4. 多媒体

      图片:<img src="xxx.jpg" alt="替代性文本" width="200" />

      音频:<audio src="xxx.wav" controls />

      视频:<video src="xxx.avi" coontrols />

    5. 输入

      输入提示:<input placeholder="提示文本" />

      条状选择:<input type="range" />

      范围输入:<input type="number" />

      日期输入:<input type="date" min="2000-01-01" />

      多行输入:<textarea>多行输入文本</textarea>

      单选输入:

      <label><input type="radio" name="xxx">a</label>
      <label><input type="radio" name="xxx">b</label>
      

      多选输入:

      <label><input type="checkbox" name="xxx">a</label>
      <label><input type="checkbox" name="xxx">a</label>
      

      下拉选择:

      <select>
          <option>a</option>
          <option>b</option>
          <option>c</option>
      </select>
      

      辅助输入:

      <input list="lists" />
      <datalist id="lists">
          <option>aaa</option>
          <option>bbb</option>
          <option>ccc</option>
      </datalist>
      
    6. 文本

      长引用:

      <blockquote cite="引用地址">
          <p>xxxxx</p>
      </blockquote>
      

      短引用:

      • 作品引用

        <p>
            xxx<cite>yyy</cite>zzz
        </p>
        
      • 内容引用

        <p>
            xxx<q>yyy</q>zzz
        </p>
        

      代码引用:<p><code></code></p>

      多行代码:<pre><code></code></pre>

      加粗:<strong></strong>

      斜体:<em></em>

  5. 内容划分

    header 头部内容
    nav 导航
    main 主体内容
    aside 附加内容
    article 文章
    footer 足部内容

0x3 HTML 语义化

  1. 什么是语义化

    • HTML 中的元素、属性及属性值都拥有某些含义

    • 开发者应该遵循语义来编写 HTML

  2. 好处

    • 代码可读性
    • 可维护性
    • 搜索引擎优化
    • 提升无障碍性
  3. 传达内容,而非样式

  4. 如何做到

    • 了解每个标签和属性的含义
    • 选择最适合描述内容的标签
    • 不使用可视化工具生成代码
posted @ 2023-01-16 21:01  SRIGT  阅读(7)  评论(0编辑  收藏  举报  来源