前端与HTML | 青训营笔记

98 阅读3分钟

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

预习部分

了解HTML基础知识,参考MDN上HTML 介绍 - 学习 Web 开发 | MDN

1. 前端

  • 前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,合适的动效设计,给用户带来极高的用户体验。

  • 解决GUI人机交互问题

  • 跨终端

    • PC/移动浏览器
    • 客户端/小程序
    • VR/AR等

1.1 技术栈

image.png

1.2 前端关注的内容

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

1.3 开发环境

  • 浏览器(谷歌、edge、火狐)
  • 编辑器(VSCode;Vim;Webstorm)

1.4 前端的边界

image.png

2. HTML

PPT:前端与HTML (slides.com)

2.1 HTML介绍

  • HTML (HyperText Markup Language) 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言。HTML 可复杂、可简单,一切取决于开发者。它由一系列的元素(elements)组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。一对标签( tags)可以为一段文字或者一张图片添加超链接,将文字设置为斜体,改变字号,等等。

  • HyperText Markup Language

    • HyperText:超文本(图片/标题/链接/表格)
    • Markup Language :标记 (标签)

2.3 HTML语法

标签内:属性 = 属性值

  •  <img src = "photo.jpg" />
    
 <!doctype html>                         <!--指明html版本,指定浏览器渲染模式-->
 <html>                                  <!--根标签-->
   <head>                                <!--页面源数据,用户不可见-->
     <meta charset="UTF-8">              <!--设置页面编码格式-->
     <title>页面标题</title>              <!--网页标题标签-->
   </head>
   <body>                                <!--页面主体数据,用户可见-->
     <h1>一级标题</h1>
     <p>段落内容</p>
   </body>
 </html>

2.3.1 DOM树

image.png

2.3.2 语法规范提示

  • 标签和属性不区分大小写,推荐小写
  • 空标签可以不闭合,比如input meta
  • 属性值推荐用双引号包裹
  • 某些属性可以省略,比如required readonly

2.3.3 标题h1~h6

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

2.3.4 列表标签

  1. 有序列表(orderlist)

     <ol>
       <li>阿凡达</li>
       <li>泰坦尼克号</li>
       <li>复仇者联盟</li>
     </ol>
    
  2. 无序列表(unorderlist)

     <ul>
       <li>🍇</li>
       <li>🍉</li>
       <li>🍎</li>
     </ul>
    
  3. 定义列表

     <dl>
       <dt>导演:</dt>
       <dd>陈凯歌</dd>
       <dt>主演:</dt>
       <dd>张国荣</dd>
       <dd>张丰毅</dd>
       <dd>巩俐</dd>
       <dt>上映日期:</dt>
       <dd>1993-01-01</dd>
     </dl>
    

    • 导演:

      陈凯歌

    • 主演:

      • 张国荣
      • 张丰毅
      • 巩俐
    • 上映日期:

      1993-01-01

2.3.5 链接

 <!--本页面打开-->
 <a href = "https://www.bytedance.com/">字节跳动官网</a>
 <!--新标签页打开-->
 <a href = "https://www.bytedance.com/" target = "_blank">字节跳动官网</a>

字节跳动官网
字节跳动官网

2.3.6 多媒体

 <!--图片-->
 <img
   src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ubqnuhbnuho/movable_type.jpg"
   alt="Metal movable type"
   width="400"
 />
 <!--音频-->
 <audio 
   src="/assets/music.ogg"
   controls
 ></audio>
 <!--视频-->
 <video
   src="/assets/video.mp4"
   controls
 ></video>
 <!--controls属性用于打开控件-->

2.3.7 输入

 <!--默认输入框,palceholder设置背景文字-->
 <input placeholder="请输入用户名">
 <!--滑动条-->
 <input type="range">
 <!--数字输入框,在1~10范围-->
 <input type="number" min="1" max="10">
 <!--日期选择框,起始时间2018-02-10-->
 <input type="date" min="2018-02-10">
 <!--文本输入区域-->
 <textarea>Hey</textarea>

2.3.8 选择

 <!--勾选框-->
 <p>
   <label><input type="checkbox" />🍎</label>
   <label><input type="checkbox" checked />🍏</label>
 </p>
 <!--互斥勾选框-->
 <p>
   <label><input type="radio" name="sport" /></label>
   <label><input type="radio" name="sport" />🏀</label>
 </p>
 <!--下拉选择框-->
 <p>
   <select>
     <option>🥑</option>
     <option>🥩</option>
     <option>🥓</option>
   </select>
 </p>
 <!--下拉文本输入框-->
 <input list="countries" />
 <datalist id="countries">
   <option>Greece</option>
   <option>United Kingdom</option>
   <option>United States</option>
 </datalist>

2.3.9 文本展示

 <!--blockquote是块引用-->
 <blockquote cite="http://t.cn/RfjKO0F">
   <p>天才并不是自生自长在深林荒野里的怪物, 是由可以使天才生长的民众产生、长育出来的,所以没有 这种民众,就没有天才。</p>
 </blockquote>
 <!--cite标签是短引用,引用作品名称或章节标题-->
 <p>我最喜欢的一本书是<cite>小王子</cite></p>
 <!--q标签表示引用上文的内容-->
 <p><cite>第一章</cite>,我们讲过<q>字符串是不可变量</q></p>
 <!--code 代码-->
 <p><code>const</code>声明创建一个只读的常量。</p>
 <!--保留格式-->
 <pre><code>
 const add = (a, b) => a + b;
 const multiply = (a, b) => a * b;
 </code></pre>
 <!--strong标签,含义上强调-->
 <p>在投资之前,<strong>一定要做风险评估</strong></p>
 <!--em标签,一句话中的突出强调-->
 <p>Cats <em>are</em> cute animals.</p>

2.4 内容划分

image.png

2.5 HTML的语义化

2.5.1 语义化是什么?

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

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

    • 有序列表用 ol;无序列表用 ul
    • lang 属性表示内容所使用的语言

2.5.2 HTML的页面的使用者

  • 开发者 - 修改、维护页面
  • 浏览器 - 展示页面
  • 搜索引擎 - 提取关键词、排序
  • 屏幕阅读器 - 给盲人读页面内容

2.5.3 语义化的好处

  • 代码可读性
  • 可维护性
  • 搜索引擎优化
  • 提升无障碍性

2.5.4 目标

传达内容,而不是样式

2.5.5 如何做到语义化?

  • 了解每个标签和属性的含义
  • 思考什么标签最适合描述这个内容
  • 不使用可视化工具生成代码