前端学习笔记

参考教程 https://web.qianguyihao.com/。

前端工具

浅浅安装了一些插件,剩下的小技巧以后用到再看,昨晚有点晕字。

HTML

Web标准

因为很多浏览器的内核不同,避免因为页面解析导致显示效果不同,从而由W3C组织来指定web相关的标准。

  • 结构标准(html):网页元素进行整理和分类,从语义的角度描述页面的结构

  • 表现标准(CSS):样式,如颜色大小排版等,虽然这些属性在html中也可以设置,但是最好是独立出来

  • 行为标准(js):网页的交互和行为

浏览器

浏览器包含两个部分,渲染引擎(浏览器内核)和JS引擎。

其中浏览器内核用来解析html和css文件,决定浏览器如何显示网页内容以及页面的格式信息。这个是浏览器兼容性问题的根本原因(如Chrome浏览器的内核是Blink,Safari浏览器的内核是Webkit等)。

JS引擎解析网页中的js代码,处理并运行。实际上是一个解释器,会逐行翻译源码为机器语言,因此js是一种脚本语言。

html详解

超文本标记语言不是一种编程语言,而是一种描述性的标记语言,即有一套标记标签(如<img>、<h1>等),不同的标签给文本加上不同的语义。常见的编程语言在写完代码运行之前还需要经过一步编译,但是标记语言不需要,直接由浏览器解析执行即可。

目前网页中常用的是xhtml,是严格的、纯净的html。

创建了一个test.html文件,只需要输入html:5再按tab键就可以自动补全整体框架。页面展示结果如下。

具体对html语句进行解析。

第一句<!DOCTYPE …>是文档声明头,浏览器通过这个语句分析文档使用的是哪种html或者xhtml规范。

<head>标签里面定义了页面的配置,包括字符集(编码与定义不匹配会导致乱码,一般使用utf-8,但如果只显示中文且希望显示速度越快越好,可以用gb2312)、关键词(告诉引擎网页的关键字,可以提高搜索的命中率)、页面描述(可以在搜索的结果页面显示,SEO搜索引擎优化)、页面标题、IE适配、视口(viewport,Web移动端会用到)、iPhone小图标等等。

1
<meta http-equiv="refresh" content="3;http://www.baidu.com">

标签的含义为3秒之后,跳转到百度页面。

1
<base href="/">

之后所有的a超链接都以base为基础。

1
<body link="red" alink="purple" vlink="yellow">

link定义的颜色是默认的显示颜色,alink定义的颜色是点击且鼠标不松开时显示的颜色,vlink是点击完成之后显示的颜色。

总的来说,html关心的是标签的嵌套结构,与tab或者换行没有关系。

html标签是分等级的,所有标签一共分为两种:

  • 文本级标签(如p、span、a、b、i、u、em),标签里面的内容只能够放文字、图片和表单元素(不能放input)

  • 容器级标签(div、h、li、dt、dd),可以放任意东西

1
2
3
4
<p>
This is a paragraph
<h1>This is level 1 header</h1>
</p>

实际用什么标签不是根据样式决定,而是根据语义确定。

div标签和span标签

div标签可以把标签中的内容分割为独立区块,必须单独占据一行。span标签和div标签作用一致,但是不需要独占一行。div标签是一个容器级标签,根据上文的介绍,可以放任意的东西(甚至可以放div自己)。而span标签是一个文本级标签,只能放文字、图片和表单。

浏览器的显示效果为:

div+css模式就是通过div标签进行布局和分块,用css完成样式。

超链接

超链接<a>标签一共有三种类型:

  • 外部链接:直接链接到外部文件,可以是html类型或者http网址
1
2
<a href="another_page.html">The link to another page</a>
<a href="http://www.google.com" target="_blank">The link to google website</a>

其中target属性可以用来定义网页的打开方式,比如从同一个页面中打开、在新窗口中打开等。

  • 锚链接:通过name或者id属性创建一个锚点,然后可以通过锚链接跳转(同一个页面的不同位置或者不同页面的不同位置)
  • 邮件链接

最后需要注意,标签<a>是文本标签,语义小于<p>。

列表标签

无序和有序列表标签都可以嵌套,如下图所示(以ul为例)。

页面显示结果为

实际应用于页面的导航栏,或者一个li放很多东西(因为li是一个容器级标签),如搜索出来的结果每一个都是一个li。

定义列表是标签<dl>,只能包含<dt>(列表项标题)和<dd>(列表项描述)

实际应用可能是具体的商品分类。

表格标签

一个<table>标签中的行是<tr>,每个行的组成单元是<td>。具体一些表格样式的设置可以通过css完成。

单元格还可以通过colspan和rowspan进行横向或者纵向的合并(但是要把合并的单元格删掉)。

表格还可以定义<thead> <tbody> <tfoot>三个标签。如果定义了这三个标签,就算实际写的顺序不一样,也会按照head body foot的顺序解析。同时,数据可以一边加载一边显示(正常需要全部加载完才能显示,适合表格内容很多的情况)。


前端学习笔记
http://example.com/2022/11/21/前端学习笔记/
作者
Jiayi Guo
发布于
2022年11月21日
许可协议