【前端第二课】各种HTML标签;HTML引入CSS的方法;HTML引入js的方法;基础的浏览器调试工具

简介: 【前端第二课】各种HTML标签;HTML引入CSS的方法;HTML引入js的方法;基础的浏览器调试工具

目标

了解各种HTML标签

普通标签和语义标签

了解各种标签的使用场景

了解并掌握HTML引入CSS的方法

了解并掌握HTML引入js的方法

了解基础的浏览器调试工具


HTML

HTML基本认识

开始学习HTML

需要注意的地方


注释

 

<html>
  <!-- 这里是注释 -->
</html>

image.png

常用语义化标签

语义化标签的引入使得HTML代码的可读性增强,结构更加清晰,也有利于团队的开发维护


main

article

aside

header

footer

nav

section

figure

练习


一个小的练习网站


练习熟悉以上标签


常用表单元素

button

checkbox

color

password

radio

text

number

select

textarea

练习


花10分钟时间自己熟悉


认识浏览器

DevTools

Chrome DevTools是一组内建在Chrome浏览器的Web开发者工具,通过它我们可以非常方便得对网页应用进行的分析、调试,是我们在日常开发中最常用的调试工具,是Web开发者的必备技能。在前面的课程中我们已经使用过DevTools中的一些功能,现在我们再来系统地看一看平时比较常用地几个模块。


Elements/元素

该模块可以让我们查看和修改DOM,在左侧可以看到DOM树,当我们在节点上右键,可以看到弹出的右键功能菜单,当我们选择一些功能进行修改之后,DOM的变化会立刻在页面中生效


添加属性:可以让我们给节点添加自定义的属性

编辑属性:可以对已有的属性进行修改

以HTML形式编辑:可以让整个DOM节点树变为可编辑的状态,适合需要大编辑编辑DOM的场景

编辑文本:双击DOM节点的文本,可以对其内容进行修改

删除元素:按 Del 键,可以直接将该节点删除

复制/复制outerHTML:可以复制该节点的HTML内容

复制/复制selector:可以复制该节点的CSS选择器

复制/复制样式:可以复制该节点所应用的CSS样式列表,当你需要编写JS代码对DOM进行测试操作的时候,非常有用

强制状态:这里可以将元素强制伪类状态,比如 :hover,方便我们调试处于对应状态时节点的样式

以递归方式展开:DOM节点树默认是折叠的,通过该选项可以将所有的子节点展开

捕获节点屏幕截图:可以将该节点的当前状态截取快照,保存成图片

左上角的 检查 按钮,可以让我们在页面上直接选择节点,然后在左侧的DOM树中会自动选中,右侧主要是样式面板,可以让我们查看、修改DOM的CSS样式,它也有几个常用的Tab页


样式

这个模块主要时列出当前节点所应用的CSS样式,它包括两部分,一部分是内联样式,即 element.style 部分,另外就是下面的CSS选择器对应的样式,我们都可以对这些样式直接进行增删改,也可以看到这些样式在文件中定义的位置。最下面会显示该节点的盒子模型,它的尺寸、边框、间距等都会用一个盒子的形式展示出来,非常方便我们分析尺寸。


已计算

这个模块可以查看元素实际计算生效的样式的值,比如通过变量 var、计算函数 calc 等动态计算的结果,或者继承得到的样式,都可以通过这里来查看。


布局

可以查看页面中网格布局的具体信息。


Console/控制台

控制台的主要功能有两个,一是查看JS代码的打印输出的信息,比如普通的log,或者是报错信息,二是可以直接在这里执行JS代码,对页面进行操作


Sources/源代码

源代码面板可以让我们对页面所加载的资源进行查看,也可以对JS代码进行断点调试


source map【以后讲到typescript以及webpack的时候在详细讲解】

这里涉及到另外一种技术叫 source map,我们有必要先来了解一下。


被浏览器执行的JS或者CSS代码通常会以某种方式从开发人员创建的原始资源种转义而来,例如:


源码通常会合并和压缩,以高效的方式从服务端获取

页面中运行的JS通常是由机器生成的,就像TypeScript、Babel这类的编译工具一样

CSS通常也会使用一些预处理工具来生成,比如LESS、SASS

这些场景下,调试原始的代码会比浏览器实际下载、执行的转换之后的代码更加容易,source map 是从已转换的代码映射到原始源代码的的文件,使浏览器能够重建原始源并在调试器中显示重建之后的源代码。


为了能够在调试时使用 source map,你必须


为源代码生成一个 source map 文件,这个过程不需要我们手动执行,我们常用的这些编译器都支持自动生成,在我们前面的例子中也可以看到伴随着生成的js文件有一个对应的map文件,这个就是它的 source map,我们也不需要关心map文件的具体内容

加入一个注释在转换后的文件,它用来指向对应的 source map,语法类似

//# sourceMappingURL=main.js.map

1

现在我们刷新页面,通过调试工具的 Sources 面板就可以看到原始的代码了,并且可以直接对它进行断点调试。


source map只是用来方便我们在开发的过程中进行代码调试,当需要发布到生产环境的时候,应该取消 source map 的生成,并且对代码进行压缩,这些可以在后面借助于构建工具来完成,对我们的源代码进行一定程度的保护。


了解 source map 技术之后,我们就可以来分析页面中的资源了,在左侧边栏会按照域名、路径列举出所加载的各种图片、样式、脚本文件,如果某个资源指定了 source map 并且加载成功,查看的时候会自动切换到映射源。


Application/应用程序

该面板可以让我们查看Web页面存储的数据,目前常用到的主要是 Storage 部分


Storage

Web Storage API 提供了存储机制,通过该机制,浏览器可以安全地存储键值对,作为 Web Storage API 的接口,Storage 提供了访问特定域名下的会话存储或本地存储的功能,例如,可以添加、修改或删除存储的数据项。存储对象是简单的键值存储,类似于对象,但是他们在页面加载时保持完整,键和值始终是字符串(数字、布尔型、对象都会被自动转换为字符串),Web Storage 包含如下两种机制:


sessionStorage

sessionStorage 为每一个给定的源位置一个独立的存储区域,该存储区域在页面会话期间可用


页面会话在浏览器打开期间一直保持,并且重新加载或者恢复页面仍会保持原来的会话

打开多个相同URL的Tabs页面,会创建各自的 sessionStorage

关闭对应的浏览器窗口、tab,会清除对应的 sessionStorage

localStorage

功能与 sessionStorage 相同,但是在浏览器关闭,重新打开之后数据仍然可用,可以用来做缓存数据的持久化


调用其中任何一个会创建 Storage 对象,通过 Storage 对象,可以设置、获取、移除数据项,不同源之间的数据是相互独立、隔离的


Storage 属性

length


返回一个整数,表示存储在 Storage 对象中的数据项的数量,如


Storage 方法

Storage.key()


该方法接受一个数值n作为参数,并返回存储中第n个键名


Storage.getItem()


该方法接受一个键名作为参数,返回键名对应的值


Storage.setItem()


该方法接受一个键名和值作为参数,将会把键值对添加到存储中,如果键名存在,则更新其对应的值。


Storage.removeItem()


该方法接受一个键名作为参数,并把该键名从存储中删除


Storage.clear()


该方法将会清空存储中的所有键名


Cookie

该面板可以查看当前源下面的Cookie信息,关于Cookie的具体信息我们在后面的HTTP章节再具体介绍


React Developer Tools

这是一个Chrome插件,它可以将组件结构、状态等信息都展示出来,对于我们调试React程序特别有用。


Network/网络

Network面板是我们分析网络请求的利器,我们常见的Web页面以及所关联的资源都是通过HTTP请求加载的,通过该功能我们可以分析页面资源的请求过程、响应内容,便于我们和服务端联调。


练习


花10分钟熟悉浏览器


初识CSS

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ywuHK1gf-1640573771572)(./imgs/css-declaration.png)]


选择器(Selector):HTML 元素的名称位于规则集开始。它选择了一个或多个需要添加样式的元素(在这个例子中就是 p 元素)。要给不同元素添加样式只需要更改选择器就行了。

声明(Declaration):一个单独的规则,如 color: red; 用来指定添加样式元素的属性。

属性(Properties):改变 HTML 元素样式的途径。(本例中 color 就是

元素的属性。)CSS 中,由编写人员决定修改哪个属性以改变规则。

属性的值(Property value):在属性的右边,冒号后面即属性的值,它从指定属性的众多外观中选择一个值(我们除了 red 之外还有很多属性值可以用于 color )。

其他规则

每个规则集(除了选择器的部分)都应该包含在成对的大括号里({})。


在每个声明里要用冒号(:)将属性与属性值分隔开。


在每个规则集里要用分号(;)将各个声明分隔开。


如果要同时修改多个属性,只需要将它们用分号隔开,如

p {
  color: red;
  width: 500px;
  border: 1px solid black;
}

可以选择多种类型的元素并为它们添加一组相同的样式。将不同的选择器用逗号分开。例如

p, li, h1 {
  color: red;
}

引入CSS的方法

内联方式

直接在 HTML 标签中的 style 属性中添加 CSS。


hello world

嵌入方式

在 HTML 头部中的

<style>
  p {
    color: red;
  }
</style>

链接方式

使用 HTML 头部的 标签引入外部的 CSS 文件。


<link rel="stylesheet" type="text/css" href="../css/index.css" />
...
<p class="title">
  hello world
</p>

比较链接方式和导入方式

链接方式(下面用 link 代替)和导入方式(下面用 @import 代替)都是引入外部的 CSS 文件的方式,下面我们来比较这两种方式,并且说明为什么不推荐使用 @import。


link 属于 HTML,通过 标签中的 href 属性来引入外部文件,而 @import 属于 CSS,所以导入语句应写在 CSS 中,要注意的是导入语句应写在样式表的开头,否则无法正确导入外部文件;

@import 是 CSS2.1 才出现的概念,所以如果浏览器版本较低,无法正确导入外部样式文件;

当 HTML 文件被加载时,link 引用的文件会同时被加载,而 @import 引用的文件则会等页面全部下载完毕再被加载;


初识js

引入js引入js文件

<script type="text/javascript" src="./index.js"></script>

内部直接使用

<script type="text/javascript"> alert("hello world");</script>

标签插入

<button onclick="javascript:alert('hello world')">点我</button>

相关文章
|
3月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
8天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
26 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
1月前
|
移动开发 前端开发 搜索推荐
《前端技术基础》第01章 HTML基础【合集】
超文本标记语言(HyperText Markup Language,简称 HTML)是构建网页结构的基础标记语言。它与 CSS、JavaScript 协同,负责搭建网页“骨架”,用标签组织内容,像标题、段落、图片等元素,通过起始与结束标签(部分可单用,如`<img>`)界定层级与布局,将信息有序整合。标签含特定语义,向浏览器传达展示方式,为网页准确呈现及后续美化、交互筑牢根基。
83 25
|
2月前
|
人工智能 前端开发 JavaScript
前端基础之HTML
Web1.0、Web2.0 和 Web3.0 标志着互联网发展的三个阶段。Web1.0(静态互联网,1990年代初至2000年代初)以静态内容和单向信息流为主,用户仅能浏览。Web2.0(互动互联网,2000年代初至2010年代初)引入了用户生成内容和社交网络,内容动态且互动性强。Web3.0(语义互联网,2010年代至今)强调语义化、个性化、智能化及去中心化,结合AI、区块链等技术,提供沉浸式体验。HTTP和HTML作为互联网基础协议和技术,在各阶段不断演进,共同推动了现代互联网的发展。
前端基础之HTML
|
3月前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
3月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
68 6
|
3月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
86 5
|
3月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
74 4
|
3月前
|
移动开发 前端开发 JavaScript
HTML5 浏览器支持1
现代浏览器普遍支持HTML5,但早期浏览器可能不支持。可以通过将HTML5元素定义为块级元素,使旧版浏览器也能正确显示。例如,可以使用CSS将header、section等8个新的HTML5语义元素设置为块级元素。此外,还可以通过JavaScript为HTML添加新的自定义元素,如使用`document.createElement(&quot;myHero&quot;)`为IE浏览器添加新元素。
|
3月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
608 1

热门文章

最新文章

  • 1
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    29
  • 2
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    51
  • 3
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 4
    巧用通义灵码,提升前端研发效率
    93
  • 5
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    141
  • 6
    详解智能编码在前端研发的创新应用
    96
  • 7
    智能编码在前端研发的创新应用
    83
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    37
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    121
  • 10
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    75