HTML5+CSS3
1. 基础知识
1.1 网页的相关概念
网站:指在因特网上根据一定的规则,使用HTML等制作的用于展示特定内容相关的网页集合。
网页:是构成网站的基本元素,它通常由图片、链接、文字、声音、视频等元素组成。通常我们看到的网页,一般是以.htm或.html后缀结尾的文件,因此将其俗称为HTML文件。
1.2 Web标准
为什么要使用Web标准:不同的浏览器显示或者排版会有差异,为了可以让开发人员写出的页面更标准、更统一,因此需要一个统一的标准
构成:主要包括结构(Structure)、表现(Presentation)和行为(Behavior)三个方面。结构类似身体、表现类似外观装饰、行为类似动作,三者中结构最重要。
不同构成的说明:结构用于对网页元素进行整理和分类,一般写在HTML文件里;表现用于设置网页元素的版式、颜色、大小等外观形式,一般写在CSS文件里;行为是指网页模型的定义及交互的编写,现阶段写在JavaScript文件 里。
1.3 VSCode常用快捷键
:快速将一行代码复制到下一行。
:选定多个相同的单词。先双击选定一个单词,然后按下ctrl+d可以依次往下选择相同的单词,这样同样修改相同的单词就非常方便。
:在不同行的相同位置添加光标。(若某一行为空,则光标位置为行首)
:全局替换某单词。先按下ctrl+h,再输入需要全局替换的单词,再点击“全部替换”。
如:将“body”全部换为“b“:
:快速定位到某一行。先按下ctrl+g,再输入需要定位到的行数,再按下回车即可。
:选中一个代码区块。
此快捷键可避免只用拖动鼠标时选中空格部分:
:
首先,点击”管理“
其次,点击”键盘快捷方式”
接着,打字输入想要更改的快捷键:
点击需要更改的快捷键,再按照一定次序按下想要更改成的按键(注意:此时是按键盘上的按键,而不是打字输入),即可完成快捷键的更改。
1.4 VSCode在网页中显示运行结果
首先,在VSCode的“扩展”中搜索“Live Server”插件并安装:
安装完后,当代码写完时,右键点击鼠标,再点击”Open with Live Sever“即可在浏览器中看到运行结果。
2. HTML5
2.1 HTML基本结构标签
< html ></ html >:HTML标签,是页面中最大的标签,我们称为根标签。
< head ></ head >:文档的头部,包含了title标签。
< title ></ title >:文档的标题,作用是让页面拥有一个属于自己的网页标题。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>这是网页标题</title>
</head>
</body>
</html>
运行效果:
< body ></ body >:文档的主体,元素包含文档的所有内容,页面内容基本都是放到body里面的。
<!DOCTYPE>:文档类型声明标签(document type),作用是告诉浏览器使用哪种HTML版本来显示网页。如< !DOCTYPE html >的作用是告知浏览器当前页面采取的是HTML5版本来显示网页。
< html lang >:用来定义当前文档显示的语言(language)>。如定义en就是英语网页,zh-CN就是中文网页。(注意:实际上,定义成en的文档也可以显示中文,定义成zh-CN的文档也可以显示英文 ,但定义错误可能会出现一些问题,如当定义为en时,若出现的均为中文,则某些浏览器会提示“是否翻译为中文”,或者出现一些翻译错误。)
charset:字符集。 常用的值有:GB2312、BIG5、GBK和UTF-8,其中常用的UTF-8也被成为万国码,基本包含了所有国家需要用到的字符。若不设定字符集的值或者设定错了,则会出现乱码,无法正常显示文字。
2.2 HTML常用标签
1.标题标签:HTML共提供了6个等级的网页标签,即< h1 >-< h6 >。
< h >即head的缩写,意为标题。
标签语义:写为标题使用,并且根据重要性递减。
使用方法:如:
<h1>我是一级标题</h1>
特点:加了标题的文字会加粗、字体也会变大;一个标题独占一行。
2.段落和换行标签:p标签用于定义段落,br标签用于换行
段落标签< p >:
p即paragraph的缩写,意为段落;br即break的缩写,意为打断、换行。
当未使用p标签时,用回车或者空格均无法实现换行;文本在一个段落中会根据浏览器窗口的大小自动换行;段落和段落之间保有空隙。
换行标签< br >:
br标签语义为强制换行,是个单标签;
br标签只是简单地开始新的一行,跟段落不一样,段落之间会插入一些垂直的间距。
3.文本格式化标签
加粗:
<strong></strong>或者<b></b>
倾斜:
<em></em>或者<i></i>
删除线:
<del></del>或者<s></s>
下划线:
<ins></ins>或者<u></u>
4.< div >和< span >标签
< div > 和 < span > 是没有语义的,它们就像是一个用来装内容的盒子。
< div >标签:
div是division的缩写,表示分割、分区。
div标签是用于布局的,但是现在一行只能放一个< div >,相当于一个大盒子:
< span >标签:
span意为跨度、跨距。
span标签也用于布局,一行上可以有多个span,相当于一个小盒子:
5.图像标签
图像标签
在HTML标签中,< img >标签(image,意为图像)用于定义HTML页面中的图像。
<img src="图像URL"/>
src是img标签的必须属性,用于指定图像文件的路径和文件名。
使用实例:
首先,把所要使用的图片先放到网页文件中:
之后,再把图片的文件名复制到引号中:
图像标签的其他属性
alt:图像无法显示时所显示的文字。属性值为文本。
title:鼠标放到图像上显示的文字。属性值为文本。
width:用于设置图像的宽度。属性值为像素。
height:用于设置图像的高度。属性值为像素。
(注意:一般设置图像的高度和宽度时,最好只设置一项,如只设置宽度值时,高度会等比例变化。若同时设置图像的长度和宽度,则图像则可能无法按照正常的比例显示。
border:用于设置图像的边框粗细。属性值为像素。
图像标签属性的注意点:
图像标签可以拥有多个属性,但必须写在标签名的后面。
属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开。
6.超链接标签
< a > 标签(anchor,意为“锚”)用于定义超链接,作用是从一个页面链接到另一个界面。
链接的语法格式:
<a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a>
超链接标签的属性
href:用于指定链接目标的url地址,是必须属性,当标签运用了href属性时,它就具有了超链接功能。
target:用于指定链接页面的打开方式,其中 _self (默认值)为在当前窗口打开的打开方式; _blank、_top、_parent均为在新窗口打开的打开方式。
链接分类:
外部链接:指非当前网页的其他网页的链接,注意需要在链接前加上http://,如http://www.qq.com。
内部链接:网站内部页面之间的相互链接,不用加上 http:// ,直接链接内部页面名称即可,如当需要跳转的页面文件与当前页面文件在同一个文件夹时:
<a href="index.html">首页</a>
空连接:当没有确定href里要写哪个链接时,可以用空链接:
<a href="#">文本或图像</a>
(因为href为必须属性,故必须要写href,但此时又未确定写哪个链接,所以此时就可以使用空链接。实际上引号里也可不写东西)
下载链接:可以下载文件或压缩包的链接,点击该链接即可下载,如当需要下载的文件与当前页面文件在同一个文件夹时:
<a href="img.zip">下载压缩包</a>
(注:地址链接是如文件.exe,压缩包.zip等形式)
网页元素链接:在网页中的各种网页元素,如文本、图像、表格、音频、视频等都可以添加超链接,点击添加的网页元素即可打开相应的链接,如:
<a href="http://www.qq.com"><img src="img.jpg"></a>
即可实现点击图片进入其他网页。
锚点链接:通过点击锚点链接,可以快速定位到当前页面的某个位置。使用步骤:
在链接文本的href属性中,设置属性值为#+名字的形式,如
<a href="#first">第一部分</a>
找到目标位置标签,在里面添加一个id与先前用到的名字相同,如
<h1 id="first">第一部分介绍</h1>
(易错点: 别漏加 # !!!)
7.注释标签和特殊字符
注释标签: 。也可用快捷键ctrl+/
特殊字符:在HTML页面中,一些特殊的符号很难或者不方便直接使用,此时我们就可以使用下面的字符来替代:
重点记空格、大于号、小于号这三个即可。(注意:别漏了写分号)
使用示例:如当按下空格键时,运行之后文字之间并没有用空格隔开,此时在字符之间加上 "  " + " ; " 即可实现一个空格的效果,若想用多个空格隔开,就用多个该字符。
8.表格标签
表格的基本语法
<table> <tr> <td>单元格内的文字</td> ... </tr> ... </table>
其中:
< table >< /table > 是用于定义表格的标签,相当于表格的框。
< tr >< /tr > (tr即table row)标签用于定义表格中行,必须嵌套在< table >< /table >标签中。
< td >< /td > (td即table date)用于定义表格中每一行的单元格,必须嵌套在< tr >< /tr >标签中。
表头单元格标签< th >
< th >标签表示HTML表格的表头部分(table head)。一般表头单元格位于表格的第一行或者第一列,表头单元格里面的文本内容加粗居中显示。使用:
<table> <tr> <th>表头单元格内的文字</th> ... </tr> ... </table>
表格相关属性
align:规定整个表格相对周围元素的对齐方式。属性值有left、center、right。
border:规定表格单元是否拥有边框,默认为"",表示没有边框。属性值为1或""。
cellpadding:规定单元格边沿与其内容之间的空白,默认为1像素。属性值为像素。
cellspacing:规定单元格之间的空白,默认为2像素。属性值为像素。
width:规定表格的宽度。属性值为像素或百分比。
height:规定表格的高度。属性值为像素或百分比。
表格的结构标签:
在表格标签中,分别用 < thead > 标签表示表格表格的头部区域(注意:< thead >内部必须要拥有< tr >标签),< tbody > 标签表示表格的主体区域,这样可以更好地分清表格结构。二者均放在< table >< /table >标签中
合并单元格
合并单元格方式:
跨行合并:rowspan="合并单元格的个数"。(注意:thead区域内的单元格无法与tbody区域内的单元格合并)
跨列合并:colspan="合并单元格的个数"。
合并单元格的步骤:
先确定合并单元格的方式。
找到目标单元格(若选择跨行合并,则目标单元格为最上侧单元格;若选择跨列合并,则目标单元格为最左侧单元格),在其标签内(< td >或< th >)写上合并方式。
删除被合并的单元格。
9.列表标签
根据使用场景的不同,列表可分为三大类:无序列表、有序列表和自定义列表。
无序列表
基本语法格式
<ul> <li>列表1</li> <li>列表2</li> <li>列表3</li> ... </ul>
注意:
无序列表的各个列表之间没有顺序级别之分,是并列的。
< ul >< /ul >中只能嵌套< li >< /li >,不能在其中输入其他标签或者文字。
< li >< /li >之间可以容纳所有元素。
ul即unordered list,li即list。
有序列表
基本语法格式
<ol> <li>列表1</li> <li>列表2</li> <li>列表3</li> ... </ol>
注意:
有序列表的各个列表之间有顺序级别之分。
< li >< /li >之间可以容纳所有元素。
有序列表会带有自己的样式属性,(即默认列表前带有序号),我们会使用CSS来设置。
ol即 ordered list。
自定义列表
基本语法格式
<dl> <dt>列表1</dt> <dt>列表2</dt> <dt>列表3</dt> ... </ol>
其中dl即definition lists,用于定义列表;dt即define list title,用于定义项目/名字;dd即definition description(自定义列表描述),用于描述项目。
注意:
< dl >< /dl >里面只能包含< dt >和< dd >。
< dt >和< dd >个数没有限制,但一般是一个 < dt >对应多个< dd >。(但dt和dd是并列关系,不是包含关系!)
10.表单标签
一个完整的表单通常由表单域、表单控件(也称为表单元素)和提示信息3个部分构成。
表单域
基本语法格式
<form action="url地址" method="提交方式" name="表单名称"> 各种表单元素控件 </form>
常用属性
action:用于指定接受并处理表单数据的服务器的url地址。属性值是url地址。
method:用于设置表单数据的提交方式。属性值是get或post。
name:用于设置表单的名称,以便于区分同一个页面中的不同表单域。属性值为名称。
表单控件(表单元素)
表单元素就是允许用户在表单中输入或选择的内容控件。
< input >表单输入元素
< input >标签用于收集用户信息
基本语法:
<input type="属性值"/>
的常用属性值:
- radio 实现单选功能:将选项的name属性赋予相同的属性值。
除type属性外,< input >标签还有其他很多属性,常用属性如下:
name和value是每个表单元素都有都的属性值,主要给后台人员使用。
name指表单元素的名字,要求单选按钮和复选框要有相同的name值。
checked属性主要针对与单选按钮和复选框,主要作用是使得一打开界面就可以默认选中某个表单元素。若多个元素同时设置了该属性,则最终结果是最后一个元素被选中。
maxlength是用户可以在表单元素输入的最大字符数,一般较少使用。
< label >标签
< lable > 标签能够为input元素定义标注(标签)。
< lable > 标签用于绑定一个表单元素,当点击 < lable > 标签内的文本时,浏览器就会自动将光标转到或者选择对应的表单元素上,使得可点击的范围更大,增加用户体验。
语法:
<label for="sex">男</label> <input type="radio" name="sex" id="sex" />
select下拉表单元素
语法:
<select> <option>选项1</option> <option>选项2</option> <option>选项3</option> ... </select>
< select>中至少包含一对< option >
< option >中定义selected属性="selected"时,当前< option >项即为默认选中项。
< textarea > 表单元素
< textarea >标签是用于定义多行文本输入的控件。当用户输入内容较多时,此时文本可能会有多行,此时我们就不能使用文本框表单了,应该用< textarea >标签。
语法:
<textarea row="3" cols="20"> 文本内容 </textarea>
通过< textarea >标签可以轻松地创建多行文本输入框。
cols="每行中的字符数",row="显示的行数",但在实际开发中通常不会使用,都是通过CSS来改变大小。
若不想一开始的文本内容开头有空格,则可将一开始的文本内容写在标签之后:
<textarea row="3" cols="20">文本内容 </textarea>
若想学习更多的相关内容,可以通过查阅文档的方式,常用网址有:
W3C: http://www.w3school.com.cn/
MDN: https://developer.mozilla.org/zh-CN/ (可通过搜索查找相关内容)
3.CSS
3.1 了解CSS
CSS是层叠样式表(Cascading Style Sheets)的简称,有时也会称之为CSS样式表或级联样式表,其也是一种标记语言。
CSS主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。简而言之,CSS可以美化HTML。
3.2 语法规范
CSS规则主要由两个部分构成:选择器(要改变谁的样式)以及一条或多条声明(要改变成什么样式)。
选择器 是用于指定CSS样式的HTML标签 ,花括号内是对该对象的具体样式
属性和属性值以"键值对"的形式出现。
属性和属性值之间用英文的冒号隔开。
多个键值对之间用英文的分号隔开。(区别:HTML中不用)
示例:
<style> p { color: rebeccapurple; } </style> <body> <p> 这是段落标签 </p> </body>
注意:
通常把CSS写在style标签中,把常用的网页元素标签写到body标签中,实现结构和样式分离。
此时p就是选择器,color: rebeccapurpl 就是声明。
3.3 选择器
选择器(选择符)就是用于根据不同需求把不同标签选出来。
选择器分为基础选择器和复合选择器两大类。
3.3.1 基础选择器
基础选择是由单个选择器组成的,包括标签选择器、类选择器、id选择器和通配符选择器。
id选择器
id选择器可以将标有特点id的HTML元素设定为指定的样式,与类选择器功能类似。
id选择器和类选择器的区别:
id好比是人的名字,一个标签只能有一个id,但可以有多个类名。
语法:
#id名 { 属性1: 属性值1; ... }
标签选择器
是指用HTML标签名称作为选择器,按标签名来分类,为页面中某一类标签指定统一的CSS样式。
作用:可以把某一类标签全部选择出来,如所有的p标签。
优点是能快速为页面中的同类型标签统一设置样式,缺点则是不能差异化样式,只能选择全部的当前标签。
类选择器
如果想要差异化不同的标签,单独选一个或者某几个标签,可以使用
语法:
.类名 { 属性1 :属性值1; ... }
例如,使所有拥有red类的HTML元素均为红色。
<style> .red { color: red; } </style> <body> <p class="red"> 这是段落标签 </p> <p> 这是段落标签 </p> <p> 这是段落标签 </p> <p> 这是段落标签 </p> <p> 这是段落标签 </p> </body>
运行结果:
此时,哪个标签想为color赋予red属性,就在哪个标签里赋予对应的类目。
类名的命名规则:
长名称或词组可以使用中横线为选择器命名。
不要使用纯数字、中文命名,尽量使用英文字母来表示。
命名要有意义,使人可以见名知意。
多类名
我们可以给一个标签指定多个类名,从而实现不同标签共用相同类的功能,进而达到简化代码的目的。
代码格式:不同类名用空格隔开。
<标签名 class="类名1 类名2..."></标签名>
通配符选择器
在CSS中,通配符选择器使用“ *** ”** 来定义,它表示选取页面中的所有元素(标签)。
语法 :
*{ 属性1 :属性值1; ... }
通配符选择器不需要调用,会自动给所有的元素设置对应的样式。
3.3 CSS中的常用属性
3.3.1 CSS字体属性
1. font-family设置字体系列
CSS使用font-family属性定义文本的字体类型,如:
p {
font-family:"微软雅黑";
}
注意:
各种字体之间必须使用英文状态下的逗号隔开。
一般状态下,如果有空格隔开的多个单词组成的字体,需要加引号,如:
div{font-family:Arial,"Microsoft yahei","微软雅黑";}
尽量使用系统默认的自带字体,以保证在任何用户的浏览器中都能正常显示字体。
字体的属性值既可以写中文,也可以写英文 ,如"微软雅黑"也可以写为"Microsoft yahei"("yahei"也可以用大写"Yahei")
一个选择器可以设置多种字体类型,当程序运行时,将按顺序选择字体,若用户电脑上安装了该种字体,则选择改字体;若没有,则按顺序继续选择;若所有字体都没有安装,则使用浏览器默认的字体。(如谷歌浏览器默认的字体是"微软雅黑")
在实际开发过程中,经常把字体属性定义给body标签,这样页面中的主要元素就都会以body的字体来显示了。如:
body{font-family:Arial,"Microsoft yahei","微软雅黑";}
2. font-size设置字号大小
CSS使用font-size 属性定义字体大小,如:
p {
font-size: 20px;
}
注意:
px(像素) 大小是我们网页中最常见的单位。
谷歌浏览器默认的字体大小为16px;
不同浏览器默认的字体大小可能不一致,所以我们尽量给一个明确值大小。
可以给body指定整个页面文字的大小。
标题标签比较特殊,需要单独指定文字大小。如:
h1 { font-size: 20px; }
3. font-weight设置文本字体的粗细,如:
p {
font-weight: bold;
}
属性值
100-900的数字
normal:正常粗细,与400 等价。
bold :加粗 ,与700等价。
lighter :比从父元素继承来的值更细 (处在字体可行的粗细值范围内)。
bolder :比从父元素继承来的值更粗 (处在字体可行的粗细值范围内)。
注意 :
默认加粗的标签(如h1、strong标签)均可使用font-weight 使字体变细。
实际开发中,更习惯用数字来表达粗细。
4. font-style设置文本的风格(如斜体),如:
p {
font-style: normal;
}
属性值
normal:默认值,使得浏览器显示标准的字体样式。
italic:使得浏览器显示斜体的字体样式。
注意:
平时我们很少通过该标签给文字加斜体,反而经常要给斜体标签(< em >,< i >)通过normal设置不倾斜字体。
5. font字体复合属性
要把一个标签的字体设置多种属性,一般会想到这么做:
p { font-style: italic; font-weight: 700; font-size: 20px; font-family: "宋体"; }
可这样需要写较多的代码,为了节约代码,可采取字体复合属性 ,按照以下格式综合来写:
body { font: font-style属性值 font-weight属性值 font-size/line-height 属性值 font-family属性值;}
注意 :
使用font属性时,必须按照上面的语法格式及顺序书写,每个属性之间以 隔开,。
不需要设置的属性可以省略(取默认值)。其中可以省略的属性有font-style,font-weight,line-height,但 ,否则font属性将不起作用。
3.3.2 CSS文本属性
1. color定义文本颜色
格式,如:
div { color: red; }
属性值有三种形式:
英文字母:如red、green、blue。
“ #” + “ (六位)十六进制 ” :如#FF0000。
RGB代码:如rgb(255,0,0)。
其中,开发中最常用的是十六进制。此外,三种形式均可自定义选择颜色:
首先,先任选一种形式输入任意一种颜色作为属性值。
接着鼠标双击属性值。
最后即可在跳出的色盘上手动选择自己想要的颜色。
2. text-align对齐文本
text-align属性仅用于设置元素内文本内容的水平对齐方式,不能用于设置垂直方向。
属性值:
leftt:左对齐(默认值)。
right:右对齐。
center:居中对齐。
应用:使图片居中
不能直接对img标签进行操作,而是应该:
先将img标签放在其他标签中,如< p >标签
再对该标签,如此时的< p >标签的text-align属性设定center属性值。
3. text-decoration装饰文本(通常用于给文字添加下划线、下划线、删除线)
属性值
none:无装饰线(默认值),最常用。
underline:下划线(链接标签a会自带)。、
overline:上划线(几乎不用)。
line-through:删除线(不常用)。
应用例子:用于删除链接标签a自带的下划线.。
<style> a { text-decoration: none; } </style> <body> <a href="">去除链接标签的下划线</a> </body>
重点记如何添加、删除下划线即可。
4. text-indent文本缩进
text-indent 属性用来指定文本的第一行的缩进,通常是将段落的首行缩进 。
属性值
像素单位px
相对单位em:即当前元素1个文字的大小(font-size)。如果当前元素没有设置大小,则会按照父元素的一个文字大小。
注意 :
属性值也可以为负值,意为向左缩进(正值则为向右缩进)。
5. line-height行间距:
line-height用于设置行间的距离(行高),可以控制行与行之间的文字距离。
行高的组成:上间距、文本高度、下间距。
属性值
像素单位px
查询网页元素里的行高:
在网页中点击鼠标右键,点击“检查”,再用鼠标对准相应的代码区域,即可显示出行高。
3.4 CSS的引入方式
按照CSS样式书写的位置(或者引入方式),CSS样式表可以分为三大类:
内部样式表(嵌入式)
行内样式表(行内式)
外部样式表(链接式)
内部样式表
内部样式表(内嵌样式表) 是写到html页面内部,将所有的CSS代码抽取出来,单独放到一个< style >标签中。
< style >标签理论上可以放在HTML文档的任何地方,但一般会放在文档的 < head >标签中。
通过此种方式,可以方便控制当前整个页面中的元素样式设置。
该样式代码结构清晰,但是并没有实现结构与样式完全分离。
此样式表是我们练习时常用的方式。
行内样式表
行内样式表(内嵌样式表) 是在元素标签内部的style属性中设定CSS样式。
代码样例:
<p style="color: red;font-size: 20px;">行内样式表测试</p>
此时style是作为标签的属性。
属性和属性值要写在双引号中间,写法要符合CSS规范。
行内样式表只能控制当前的标签设置样式。
该样式表由于书写频繁,并且没有体现结构与样式分离的思想,所以不推荐大量使用,只有对当前元素添加简单样式的时候,可以考虑使用。
使用行内样式设定CSS吗,通常也被称为行内式引入。
外部样式表
实际开发通常都是使用外部样式表,适合于需要设置的样式比较多的情况,核心是样式单独写到CSS文件中,之后把CSS文件引入到HTML页面中使用。
引入外部样式表分为两步:
新建一个后缀名为.css的样式文件,把所有的CSS代码都放入此文件中。
在HTML页面中,使用< link >标签引入这个文件中:
<link rel="stylesheet" href="css文件路径">
如当.css文件与当前.html文件在同一级路径时:
<link rel="stylesheet" href="style.css">
此时该.css样式文件的路径为style.css