前端与 HTML | 青训营笔记

544 阅读6分钟

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

以下为今日课上的笔记内容

一、什么是前端?

1.解决 GUI人机交互问题

2.跨终端

1)PC/移动浏览器

2)客户端/小程序

3)VR/AR等

3.Web 技术栈

我们要解决的是图形界面下的人机交互的问题,无论我们面对的设备是PC浏览器,移动浏览器,APP,小程序,甚至是一些VR的设备,那我们使用的技术站,都是html css javascript,还有HTC网络协议来解决人机交互的问题。

所做一个总结,前端工程师就是使用web技术来解决多端图形用户界面交互问题的。

二、前端技术栈包括什么?

主要的技术分为三层,最基础的是HTML,HTML负责页面结构和内容,页面中我们可以使用CSS来设置页面的样式,比如说:位置,大小,颜色这些信息,我们使用javascript来定义网页的行为,比如说用户点了一个按钮之后,页面该怎么响应,HTMLCSS和javascript都是运行在浏览器里边的,而浏览器是可以通过HTTP协议和服务器进行通信,它把前面前端的这些代码,通过HTTP协议从服务器上去拿到,拿到之后把它渲染成我们看到的页面,浏览器也可以把用户填写的内容,或者用户的一些行为通过HTTP这个协议,提交到服务器端,所以我们说html css javascript和网络协议就构成了前端最基础的一个技术栈。

三、前端应该关注哪些方面?

1)兼容

2)美观

3)性能

4)功能

5)安全

6)无障碍

7)体验

所以我们要做出来好的产品,要学习很多方面的一些东西,那随着新的技术不断的发展,前端现在能做的东西,也已经远远超出了一个简单的范畴。

前端的边界是无止境的,比如说我们可以用nodejs去开发服务器端的一些应用,我们也可以使用election或者react native去开发客户端的应用,我们也可以用web rtc进行在线的传输,实现一个多人的会议,我们也可以用web gl去开发出来一些非常流畅的3D的一些游戏,使用web assembly,可以把C加加或其他的语言编写的一些代码,编译成直接在浏览器里边可以运行的一些代码。

总之,就是前端在这个互联网行业里边,是一个日新月异的一个领域,对我们的技术在不断更新,对我们也要持续的去学习,才能跟上这个技术的发展。

开发环境比较容易上手 浏览器+编辑器 即可。

四、HTML(HyperText Markup Language)

7d4ca4abb7e538042a808c27fc3056f.png

c8f4c0b63ad69f07f00320381f297cb.png

     <!doctype html>         //使用哪种渲染模式
            <html>          //根标签             
               <head>      //需要信息但不需要呈现给用户       
                  <meta charset="UTF-8">
                   <title>页面标题</title>
                </head>  
               <body>     //需要呈现给用户的信息      
              <h1>一级标题</h1>
              <p>段落内容</p>
             </body>
            </html>
            

五、HTML 语法

1.标签和属性不区分大小写,推荐小写。

2.空标签可以不闭合,比如 input、meta。

3.属性值推荐用双引号包裹。

4.某些属性值可以省略,比如 required、readonly。

六、标题 h1~h6(越来越小字体)

代码:(h 表示标题 p 表示内容)

<h1>字体排印学</h1>
<h2>历史</h2>
<p>活字的雏形或可追溯至公元前两千年前后美
索不达米亚文明的乌鲁克和拉尔萨,砖块上面不
均匀的印花被视作有可能是活字思想雏形。</p>
<h3>印刷体源流</h3>
<p>中国在唐代就已经出现雕版印刷术,公元868
年的《金刚经》是现存最古老的印刷品之一,使用
的技术即是木雕版印刷。</p>
<h2>应用</h2>
<p>...</p>

d9d1d4d0911546cfe803321b4487e10.png

代码:(ol表示有序列表,li表示其列表项)(ul表示无序列表,展示时会有小黑点)(dl表示定义列表,dt表示该描述列表的标题,dd表示该描述列表的标题里的内容,dt与dd为多对多的关系)

<h2>世界电影票房排行榜</h2>
<ol>
  <li>阿凡达</li>
  <li>泰坦尼克号</li>
  <li>复仇者联盟</li>
</ol>

<h2>购物清单</h2>
<ul>
  <li>🍇</li>
  <li>🍉</li>
  <li>🍎</li>
</ul>

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

07ff3358edeba8f485d5660138384f2.png

七、链接

<a href="https://www.bytedance.com/">
  字节跳动官网
</a>
<a href="https://www.bytedance.com/" 
target="_blank">//不是替换原有页面而是用新窗口打开
  字节跳动官网
</a>

多媒体 (img 图片,audio 音频,video 视频,src 地址,alt 当这个图片因为某些原因加载失败或不被加载所展现的替换性文字,width 表示图片的展示宽度 ,controls 默认显示播放空间)

<img
  src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9675d7f08fc54c8bb5104f6111755eb4~tplv-k3u1fbpfcp-zoom-1.image"
  alt="Metal movable type"
  width="400"
/>

<audio 
  src="/assets/music.ogg"
  controls
></audio>

<video
  src="/assets/video.mp4"
  controls
></video>

b03d87abe55c75d1a82ea38495324ef.png

八、输入

<input placeholder="请输入用户名">

(placeholder 默认占用符)

<input type="range">   //范围

<input type="number" min="1" max="10">   //数字

<input type="date" min="2018-02-10">    //日期

(type 指定)

<textarea>Hey</textarea>

(textarea 多行输入)

c0066cef7ae1fd237a75fb99919d7a9.png

<p>
  <label><input type="checkbox" />🍎</label>
  <label><input type="checkbox" checked />🍏</label>
</p>

(type="checkbox" 多选择)

<p>
  <label><input type="radio" name="sport" /></label>
  <label><input type="radio" name="sport" />🏀</label>
</p>

(type="radio" 只能选择一个)

<p>
  <select>
    <option>🥑</option>
    <option>🥩</option>
    <option>🥓</option>
  </select>
</p>

(select 下拉选择 option 所能选择的选项)

<input list="countries" />
<datalist id="countries">
  <option>Greece</option>
  <option>United Kingdom</option>
  <option>United States</option>
</datalist>

(list 默认属性 option 默认属性的选项,给到提示,更快捷)

f589ae775669f42e1c9eaf3f268bdd9.png

九、文本

<blockquote cite="http://t.cn/RfjK00F">  //blockquote  快捷引用或长引用 
<p>天才并不是自生自长在深林荒野里的怪物, 是由可以使天才生长的民众产生长育出来的,所以没有 这种民众,就没有天才。</p>
</blockquote>

<p>我最喜欢的一本书是<cite>小王子</cite></p>  //cite  短引用,常表示引用书名,章节...

<p><cite>第一章</cite>,我们讲过<q>字符串是不可变量</q></p>  //q 短引用,常表示引用的内容 有双引号

<p><code>const</code>声明创建一个只读的常量。</p>
<pre><code>
const add = (a, b) => a + b;
const multiply = (a, b) => a * b;
</code></pre>  //code 表示引用代码,长短皆可,字体会不同
<p>在投资之前,<strong>一定要做风险评估</strong></p>
<p>Cats <em>are</em> cute animals.</p>
//strong 更加紧急,严重 突出强调 ,em 语气上更加强调的词或句子

b7dbaad3bef70683fa57d38c6abbd4e.png

十一、内容划分

header 标题:包括大标志、标题、标语,从一个网页到另一个网页保持不变。

nav 导航栏 :菜单按钮、链接或选项卡表示。

main 主体内容:包含给定网页的大部分独特内容,其代表一个文档,可包括视频,文章,地图等等

article 部分内容:主要是布局文章、内容方面内容。

aside 侧边栏:一些外围信息、链接、引用、广告等。

footer 页脚:通常包含版权声明,参考信息或联系信息。

十二、语义化

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

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

1)有序列表用 ol;

2)无序列表用 ul。

3.lang 属性表示内容所使用的语言

十三、谁在使用我们写的HTML

1.开发者- 修改、维护页面

2.浏览器- 展示页面

3.搜索引擎- 提取关键词、排序

4.屏幕阅读器- 给盲人读页面内容

十四、语义化的好处

1.代码可读性

2.可维护性

3.搜索引擎优化

4.提升无障碍性

十五、如何做到语义化?

1.了解每个标签和属性的含义

2.思考什么标签最适合描述这个内容

3.不使用可视化工具生成代码

十六、前端 传达内容,而不是样式