【尚硅谷】Web前端零基础入门HTML5+CSS3基础教程

【尚硅谷】Web前端零基础入门HTML5+CSS3基础教程

学习视频来源:哔哩哔哩弹幕网(https://www.bilibili.com/video/BV1XJ411X7Ud?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click)

1. 课程介绍

客户端形式:图形化界面C/S(client/server)、网页B/S(browser/server)

网页相比具有如下优点:不需要安装、无需更新、跨平台

网页中所需语言:HTML、CSS、JavaScript

2. 网页简史

蒂姆·伯纳斯·李–万维网的发明人

第一个网站:http://info.cern.ch/hypertext/WWW/TheProject.html

前端工程师负责编写网页源代码,而浏览器负责将网页渲染成我们想要的样子

万维网联盟(W3C)的出现为了制订网页开发标准,以使同一个网页在不同的浏览器中有相同的效果

W3C标准:结构(HTML):描述页面的结构、表现(CSS):控制页面中元素的样式、行为(JavaScript):响应用户操作

3. HTML简介

HTML(Hypertext Markup Language)超文本标记语言,HTML使用标签的形式来标识网页中的不同组成部分,所谓超文本指的是超链接,使用超链接可以让我们从一个页面跳转到另一个页面

新建一个网页:用左下角小娜搜索notepad,在里面任意添加内容,另存为index.html,这样在桌面上打开就是一个网页。index.html

注意:暂时不要从桌面右键新建记事本,因为这样可能会出现问题。因为这样创建的话,会附带拓展名,并且有的时候拓展名不可见

4. 编写你的第一个网站

在网页中添加标签,而标签的作用就是标识出网页中不同的内容。

标签有开始<…>,有结束</…>,开始与结束之间放的是标签体

<html>
	<head>
		<title>哈哈,我在哪出现?</title>
	</head>
	<body>
		<h1>回乡偶书(二首)</h1>
		<h2>其一</h2>
		<h2>贺知章</h2>
		<p>少小离家老大回,</p>
		<p>乡音无改鬓毛衰。</p>
		<p>儿童相见不相识,</p>
		<p>笑问客从何处来。</p>
	</body>
</html>

5. 安装notepad++

并没有找到视频当中的官网,只找到这样一个下载地址:https://notepad-plus.en.softonic.com

李立超老师的个人主页:https://lilichao.com

6. 自结束标签和注释

创建一个source(源码)的文件夹

自结束标签: or 、 or

HTML的注释:

开发中一定要养成良好的注释的编写注释的习惯,注释要求简单明了

HTML中的注释是多行注释,注释不能嵌套

7. 标签中的属性

在标签(开始标签或者自结束标签)中设置属性,属性是一个键值对结构(x=y),但是有的属性没有属性值。如果有属性值,属性值应该用引号引起来。

属性用来设置标签中的内容如何显示

属性和标签名或者其他属性应该使用空格隔开

<html>
	<head>
		<title>标签的属性</title>
	</head>
	<body>
		<h1>这是我的<font color="red" size='9'>第三个</font>网页!</h1>
	</body>
</html>

8. 文档声明

文档声明(doctype):用来告诉浏览器当前网页的版本

html5的文档声明:<!doctype html> or <!Doctype HTML>

<!doctype html>
<html>
</html>

9. 关于进制

十进制:

-特点:满10进1

-计数:0 1 2 3 ... 9 10 ...

-单位数字:10个(0 1 2 3 4 5 6 7 8 9)

二进制:(计算机底层的进制)

-特点:满2进1

-计数:0 1 10 11 100 101 ...

-单位数字:2个(0 1)

-扩展:所有数据在计算机底层都会以二进制的形式保存,可以将内存想象为一个由多个小格子组成的容器,每个小格子中可以存储一个0或者一个1,这一个小格子在内存中被称为1位(bit)

8 bit = 1byte(字节)

1024 byte = 1 Kb(千字节)

1024 kb = 1 Mb(兆字节)

1024 Mb = 1 Gb

1024 Gb = 1 Tb

1024 Tb = 1 Pb

八进制:(很少用)

-特点:满8进1

-计数:0 1 2 3 4 5 6 7 10 11 12 ... 17 20

-单位数字:8个(0 1 2 3 4 5 6 7)

十六进制:(一般显示一个二进制数字时,都会转换为十六进制)

-特点:满16进1

-计数:0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 ... 1F 20 ...

-单位数字:16个(0 1 2 3 4 5 6 7 8 9 A B C D E F)

10. 字符编码

编码:将字符转换为二进制码的过程

解码:将二进制码转换为字符的过程

字符集:编码和解码所采用的规则

乱码问题:编码和解码所采用的字符集不同

常见的字符集:

ASCII:7位、128个

ISO88591:8位、256个

GB2312:

GBK:

UTF-8:万国码

可以通过meta标签来设置网页的字符集,避免乱码问题

<!doctype html>
<html>
	<head>
		<meta charset='utf-8'>
	</head>
	<body>
	</body>
</html>

11. 文档的使用

<!-- 文档声明,声明当前网页的版本 -->
<!doctype html>

<!-- html的根标签(元素),网页中的所有内容都要写在根元素的里面 -->
<html>
	<!-- head是网页的头部,内容一般不会在网页中直接出现,主要用来帮助浏览器或搜索引擎解析网页 -->
	<head>

		<!-- meta用来设置网页的元数据,这里meta用来设置网页的字符集,避免乱码问题 -->
		<meta charset='utf-8'>

		<!-- title中的内容会显示在浏览器的标题栏,搜索引擎会主要根据title中的内容来判断网页的主要内容 -->
		<title>网页的标题</title>

	</head>

	<!-- body是html的子元素,表示网页的主体,网页中的所有内容都应该写在body里面 -->
	<body>

		<!-- h1是网页的一级标题 -->
		<h1>网页的一级标题</h1>

	</body>

</html>

视频十四分钟之后的过程稍显复杂,且最终取得的内容为英文,建议直接访问:HTML元素参考(https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element)

12. VSCode的安装

在左侧第五个Extensions里面搜索Chinese,install微软的官方汉化包,重启就可以显示汉语。

在…html的文件中,!+tab,可以快速生成最完整的HTML格式

<!DOCTYPE html>
<!-- 这个的意思是我们最后写出来的英文网站,同样是给浏览器看得,比如说如果在Chrome中打开,lang="en"的网页就会显示”是否翻译“
	如果不需要的话,就改写成
	<html lang="zh">
 -->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
  
</body>
</html>

注释的快捷键:Ctrl+/

13. 配置liveServer

在Extensions中搜索liveServer并安装,在代码界面右键选择open with Live Server,就可以实时看到网页的变动,只需要Ctrl+S保存即可。

打开设置,将autoSave调至afterdelay,时长可以选择500ms

14. 实体

在HTML中,有时一些特殊的显示会被浏览器错误解析,比如说多个空格解析为一个空格,比如字母两侧的大于和小于号。如果我们需要在网页中书写这些特殊符号,则需要使用HTML中的实体(转义字符)。

实体的语法:&实体的名字;

&nbsp;空格

&gt;> 大于号

&lt;< 小于号

&copy;© 版权符号

更多实体表示获取方法:W3school https://www.w3school.com.cn/html/html_entities.asp

15. meta标签

<meta charset="UTF-8">
<meta name="keywords" content="HTML5,前端,CSS3">
<meta name="description" content="这是一个非常不错的网站">
<meta http-equiv="refresh" content="3;url=https://www.baidu.com">

keywords表示网页的关键字,可以同时指定多个关键字,关键字之间使用","隔开

description用于指定网站的描述,网站的描述会显示在搜索引擎的搜索的结果中

title标签的内容会作为搜索结果的超链接上的文字显示

http-equiv="refresh"将页面重定向到另外一个网站,例子中的意思就是三秒后跳转到百度

16. 语义化标签

在网页中,HTML专门用来负责网页的结构,所以在使用HTML标签时,应该关注的是标签的语义,而不是它的样式

标题标签:h1~ h6 一共有六级标题,从h1~h6重要性递减,h1最重要,h6最不重要

h1在网页中的重要性仅次于title标签,一般情况下一个页面中只会有一个h1,一般情况下标题标签只会使用到h1~h3

在页面中独占一行的元素称为块元素(block element)

p标签表示页面中的一个段落,p也是一个块元素

hgroup标签用来为标题分组,可以将一组相关的标题同时放入到hgroup中

<hgroup>
	<h1>回乡偶书(二首)</h1>
	<h2>其一</h2>
</hgroup>

em标签用于表示语音语调的一个加重

strong标签表示强调重要内容

br标签表示页面中的换行

<p>今天天气<em></en>不错!</p>
<p>你今天必须<strong>完成作业</strong>!</p>
<br>

在页面中不会独占一行的元素称为行内元素(inline element)

17. 块和行内

块元素(block element):在网页中一般通过块元素来对页面进行布局

行内元素(inline element):行内元素主要用来包裹文字

一般情况下会在块元素中放行内元素,而不会在行内元素中放块元素,而p元素中不能放任何的块元素

浏览器在解析网页时,会自动的对网页中不符合规范的内容进行修正,比如:

-标签写在了根元素的外部

-p元素中嵌套了块元素

-根元素中出现了除head和body以外的子元素

... ...

可以使用F12后选择Elements检查代码在内存中的运行状况

18. 语义化标签

布局标签(结构化语义标签)

header表示网页的头部

main表示网页的主体部分(一个页面只会有一个main)

footer表示网页的底部

nav表示网页中的导航

aside和主体相关的其他内容(侧边栏)

article表示一个独立的文章

section表示一个独立的区块,上边的标签都不能表示时使用section

div没有语义,就用来表示一个区块,目前来讲div还是我们主要的布局元素

span是一个行内元素,没有任何的语义,一般用在网页中选中文字

<header></header>
<main></main>
<footer></footer>
<nav></nav>
<aside></aside>
<article></article>
<section>,</section>
<div></div>
<span></span>

19. 列表

在HTML中也可以创建列表,HTML列表一共有三种:1.有序列表 2.无序列表 3.定义列表,且列表之间可以互相嵌套

有序列表:使用ol标签来创建有序列表,使用li表示列表项

<ol>
	<li>行为</li>
	<li>表现</li>
	<li>结构</li>
</ol>

无序列表:使用ul标签来创建无序列表,使用li表示列表项

<ul>
	<li>行为</li>
	<li>表现</li>
	<li>结构</li>
</ul>

定义列表:使用dl标签来创建定义列表,使用dt来表示定义的内容,使用dd来对内容进行解释说明

<dl>
	<dt>结构</dt>
	<dd>结构表示网页的结构,结构用来规定网页中那里是标题,哪里是段落</dd>
	<dd>... ...</dd>
	<dd>... ...</dd>
</dl>

20.超链接简介

超链接可以让我们从一个页面跳转到其他页面,或者是当前页面的其他的位置

使用a标签来定义超链接,同时a标签也是一个行内元素,但是在a标签中可以嵌套除它自身外任何的元素

a标签的属性:

-href	指定跳转的目标路径

	-值可以是一个外部网站的地址

	-也可以写一个内部页面的地址(如果与当前.html文件在同一个目录下可以直接用命名来查找)
<a href="https://www.baidu.com">超链接</a>

21. 相对路径

当我们需要跳转一个服务器内部的页面时,一般我们都会使用相对路径,而相对路径都会使用.或…开头

./表示当前文件所在目录

…/表示当前文件所在目录的上一级目录,并且可以多次使用,…/…/表示返回上上一级目录

./可以省略不写,如果不写./也不写…/则就相当于写了./

22. 超链接的其他用法

目标:不覆盖原网页,在新的标签页中打开超链接中的网页

target属性:用来指定超链接打开的位置

可选值:

	_self 默认值 在当前页面中打开超链接

	_blank 在一个新的页面中打开超链接

可以直接将超链接的href属性设置为# ,这样点击超链接以后,页面不会发生跳转,而是转到当前页面顶部的位置。在开发中可以将# 作为超链接的展位符号使用。

也可以使用javascript:;来作为href的属性值,此时点击这个超链接什么也不会发生。

也可以跳转到页面的指定位置,只需将href属性设置为 # 目标元素的id属性值

id属性:唯一不重复的。每一个标签都可以添加一个id属性,id属性就是元素的唯一标识,同一个页面中不能出现重复的id属性

<a href="https://www.baidu.com" target="_self">超链接</a>
<a href="https://www.baidu.com" target="_blank">超链接</a>
<a href="#bottom">go to the bottom</a>
<a id="bottom" href="#">return to the top</a>
<a href="javascript:;">this is a new hyperlink</a>

23. 图片标签

图片标签用于向当前页面中引入一个外部图片。使用img标签来引入外部图片,同时img标签是一个自结束标签。img这种元素属于替换元素(介于块元素和行内元素之间),具有两种元素的特点。

属性:

src属性指定的是外部图片的路径(相对路径,绝对路径皆可)

alt 图片的描述,这个描述默认情况下不会显示,有些浏览器会在图片无法加载时显示。但是更重要的作用是,搜索引擎会根据alt中的内容来识别图片,如果不写alt属性则图片不会被搜索引擎所收录。

width 图片的宽度(单位是像素),宽度和高度中如果只修改了一个,另外一个会等比例缩放

height 图片的高度(单位是像素)

24. 图片的格式

jpeg(jpg):支持的颜色比较丰富,不支持透明效果,不支持动图。一般用来显示照片。

gif:支持的颜色比较少,支持简单透明,支持动图。适合表示颜色单一图片和动图。

png:支持的颜色丰富,支持复杂透明,不支持动图。表示颜色丰富,复杂透明的图片。

webp:这种格式是谷歌新推出的专门用来表示网页中的图片的一种格式。它具备其他图片格式的所有优点,而且文件还特别小。缺点:兼容性不好

base64:将图片使用base64编码,这样可以将图片转换为字符,通过字符的形式来引入图片。一般都是一些需要和网页一起加载的图片才会使用。

效果一样,用小的;效果不一样,用效果好的。

25. 内联框架

内联框架(iframe):用于向当前页面中引入一个其他页面

src:指定要引入的网页的路径

frameborder:指定内联框架的边框
<iframe src="https://www.baidu.com" frameborder="0"></iframe>

26. 音视频播放

audio标签用来向页面中引入一个外部的音频文件。音视频文件引入时,默认情况下是不允许用户自己控制播放停止的。

属性:

controls--是否允许用户控制播放

autoplay--音频文件是否自动播放

loop--音频是否循环播放
<audio src="audio.mp3" controls autoplay></audio>
<!-- 或者 -->
<audio controls>
    <!-- 对不起,您的浏览器不支持播放音频,请升级浏览器! -->
    <source src="audio.mp3">
    <source src="audio.ogg"> 
    <embed src="audio.mp3" type="audio/mp3" width="200" height="100">
</audio>

使用video标签来向网页中引入视频文件

<video controls>
    <source src="video.webm">
    <source src="video.mp4">
    <embed src="video.mp4" type="video/mp4"> 
</video>

27. CSS简介

CSS:层叠样式表。网页实际上是一个多层的结构。通过CSS可以为网页的每一层来设置样式,而最终我们能看到的是网页最上边的一层。总之一句话,CSS可以用来设置网页中元素的样式。

使用CSS来修改元素的样式。

第一种方式(内联样式/行内样式):在标签内部通过style属性来设置元素的样式

问题:使用内联样式只能对一个标签生效,如果希望影响到多个元素就必须在每个元素中都复制一遍,并且当样式发生变化时,我们必须要一个一个的修改,十分麻烦。

注意:开发时绝对不要使用内联样式
<p style="color: red;font-size: 30px;">少小离家老大回,乡音无改鬓毛衰</p>

28. CSS编写的位置

第二种方式(内部样式表):将样式编写到head中的style标签里面。然后通过CSS选择器来选中元素并为其设置各种样式。可以同时为多个标签设置样式,并且修改时只需修改一处就可全部应用。内部样式表更加方便对样式进行复用。

问题:内部样式表只能对一个网页起作用,它里面的内容不能跨页面进行复用
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        p{
            color: purple;
            font-size: 50px;
        }
    </style>
</head>

第三种方式(外部样式表):可以将CSS样式编写到一个外部的CSS文件里,然后通过link标签来引入外部的CSS文件。

 <link rel="stylesheet" href="style.css">

外部样式表需要通过link标签进行引入,意味着只要想使用这些样式的网页都可以对其进行引用,使样式可以在不同的页面之间进行复用。

将样式编写到外部的CSS文件中,可以使用到浏览器的缓存机制,从而加快网页的加载速度,提高用户的体验。

29. CSS的基本语法

在内部样式表中,style标签的区域是一个特殊的区域,是属于CSS的区域是与HTML隔离的,HTML的语法在这里不再适用,需要使用CSS的语法。

CSS中的注释:/* */

CSS的基本语法:选择器+声明块

选择器:通过选择器可以选择页面中的指定元素,比如p的作用就是选择页面中所有的p元素

声明块:通过声明块来制定要为元素设置的样式,声明块由一个个的声明组成,声明是一个键值对结构,一个样式名对应一个样式值,名和值之间用冒号连接,用分号结尾

30. 常用选择器

元素选择器

作用:根据标签名来选中指定的元素

语法:标签名{ }

例子:p{ } h1{ } div{ }

id选择器

作用:根据元素的id属性值选中一个元素

语法:# id属性值{ }

例子:#box{ }, #red{ }

class是一个标签的属性,它和id类似,不同的是class可以重复使用。还可以同时为一个元素指定多个class属性,多个class之间用空格隔开

类选择器(class选择器)

作用:根据元素的class属性值选中一组元素

语法:.class属性值{ }

通配选择器

作用:选中页面中的所有元素

语法:*{ }

31. 复合选择器

交集选择器

作用:选中同时符合多个条件的元素

语法:选择器1选择器2...选择器n{ }

注意:交集选择器如果有元素选择器,必须使用元素选择器开头

选择器分组(并集选择器):

作用:同时选择多个选择器对应的元素

语法:选择器1,选择器2,选择器3,...,选择器n{ }

32. 关系选择器

父元素:直接包含子元素的元素叫做父元素

子元素:直接被父元素包含的元素是子元素

祖先元素:直接或间接包含后代元素的元素叫做祖先元素,一个元素的父元素也是他的祖先元素

后代元素:直接或间接被祖先元素包含的元素叫做后代元素,一个元素的子元素也是后代元素

兄弟元素:拥有相同父元素的元素称为兄弟元素

子元素选择器:

作用:选中指定父元素的指定子元素

语法:父元素>子元素{ }

后代元素选择器:

作用:选中指定元素内的指定后代元素

语法:祖先 后代{ }

兄弟元素选择器:

1.作用:选择下一个兄弟

语法:前一个 + 后一个

2.作用:选择下边所有的兄弟

语法:兄 ~ 弟

33. 属性选择器

[ 属性名 ]选择含有指定属性的元素

[ 属性名=属性值 ]选择含有指定属性且含有指定属性值的元素

[ 属性名^=属性值 ] 选择属性值以指定值开头的元素

[ 属性名$=属性值 ] 选择属性值以指定值结尾的元素

[ 属性名*=属性值 ] 选择属性值中含有指定值的元素

34. 伪类选择器

伪类(不存在的类,特殊的类)用来描述一个元素的特殊状态,比如:第一个元素,被点击的元素,鼠标移入的元素…

伪类一般情况下都是使用冒号:开头

:first-child 第一个子元素
:last-child 最后一个子元素
:nth-child() 选中第n个子元素

特殊值:

	n	第n个	n的范围0到正无穷

	2n 或 even	表示选中偶数位的元素

	2n+1 或 odd	表示选中奇数位的元素

以上这些伪类是根据所有的子元素进行排序的。

:first-of-type

:last-of-type

:nth-of-type

这几个伪类的功能和上述的类似,不同点是他们在同类型元素中排序

:not( ) 否定伪类

将符合条件的元素从选择器中去除

35. 超链接的伪类

:link 用来表示没访问过的连接

:visited 用来表示访问过的连接,由于隐私的原因,所以visited这个伪类智能修改链接的颜色

:hover 用来表示鼠标移入的状态

:active 用来表示鼠标点击

36. 伪元素

伪元素:表示页面中一些特殊的并不真实的存在的元素(特殊的位置)

::first-letter 表示第一个字母

::first-line 表示第一行

::selction 表示选中的内容

::before 元素的开始

::after 元素的结束

-before和after必须结合content属性使用
div::before{
	content:'abc';
	color: red;
}
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值