HTML概述(Hyper Text Markup Language)
HTML基本结构
1、网页骨架
用HTML编写的网页中有一些结果是默认且必须存在的,这些结构就叫做网页骨架。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
2、HTML基本标签
标签
- 单标签:<标签名 />
- 双标签:<标签名称><!--标签名称-->
常用标签
- <!DOCTYPE html>:向浏览器声明当前的文档是HTML类型
- <html></html>之间的文本描述,<html>是网页中最大的一个标签,称之为根标签
- <head></head>描述网页头部,里面的内容是给浏览器看的
- <meta charset="UTF-8">设置当前网页的显示编码
- <title></title>网页标题,里面的内容会在浏览器的标签页上显示
- <body></body>网页主体
- <div></div>定义一个区域
- <h1></h1>内容显示为网页中的标题
- <p></p>内容显示为段落
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页标题</title>
</head>
<body>
<div>
<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>
<p>段落</p>
</div>
</body>
标签属性
HTML标签属性总是以键值对形式出现,基本格式如下:
<标签名 属性1="value1" 属性2="value2"><!--标签名-->
每个标签可以拥有多个属性。属性必须写在开始标签中,位于标签名后面。属性之间不区分顺序。标签名与属性、属性与属性之间使用空格分隔。任何属性都有默认值,省略该属性表示使用默认值。
JavaScript
JS是一种轻量及脚本语言。可以插入HTML页面的代码中,插入HTML页面中的代码可以被所有浏览器执行。JS主要用来向HTML页面添加交互行为。JS可以创建动态的HTML内容,也可以对事件做出反应。
位置
JS脚本必须位于<script></script>之间。<script>可被放置在HTML页面的<body>和<head>部分中。F12进入开发者工具,点击Elements查看
引用方式
内部引用
在<script></script>之间的代码包含了JS脚本代码。浏览器会解释并执行这些JS代码。
外部引用
<script>的src属性包含了JS外部脚本代码所在的路径。现在网页中大部分都是通过外部引用方式使用JS脚本的。
输出
JS可用不同的方式显示数据,并可在浏览器的开发者工具Console面板中查看输出的内容
- 警告弹窗
window.alert("Hello World!")
- 将内容写到HTML文档中,这种方式会覆盖原来的HTML文件中的内容
document.write("Hello World!")
- 把内容写入浏览器的控制台
console.log("Hello World!")
操作HTML中的DOM
HTML中的DOM
文档对象模型(Document Object Model,DOM)。它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取。JS利用HTML DOM动态地修改网页。HTML DOM模型被结构化为对象树:
查找HTML元素
当用JS操作DOM修改Web页面上的元素时,首先需要确定修改的是哪一个元素,这就涉及到元素定位问题。JS提供三种定位元素的方式:
- 通过id定位
Document.getElementById("su")
- 通过标签名定位
Document.getElementsByTagName("span")
- 通过类名定位
Document.getElementsByClassName("btn")
修改HTML
- 改变内容
Document.getElementById("su").innerHTML = "archer"
- 改变属性
Document.getElementById("su").value="archer"
读取cookie
var x = document.cookie;
使用事件
使用JS脚本还可以实现一些操作,来展示网页中的对应效果
当用户点击鼠标时:
HTML中:
<element onclick="SomeJavaScriptCode">
JS中:
Object.onlick=function(){SomeJavaScriptCode};
CSS(层叠样式表,Cascading Style Sheets)
用来定义、显示HTML元素。HTML元素的样式通常存储在层叠样式表中。CSS解决了内容与表现分离的问题,通过CSS可以让相同的页面在不同的浏览器中呈现相同的样式。
CSS规则组成
CSS规则由两个主要部分构成:选择器和一条或多条声明。
选择器通常是需要改变样式的HTML元素。每条声明都是一个键值对。
CSS选择器
CSS需要通过选择器来确定要定义样式的元素。常用的选择器如下:
- 通用选择器:*
选择器 | 示例 | 说明 |
---|---|---|
* | * | 选取所有元素 |
- ID选择器:#ID{}
选择器 | 示例 | 说明 |
---|---|---|
#id | #firstname | 选取id为"firstname"的元素 |
- CLASS选择器:.CLASSNAME{}
选择器 | 示例 | 说明 |
---|---|---|
.class | .intro | 选择class为"intro"的所有元素 |
.class1.class2 | .name1.name2 | 选择class中同时有name1和name2的所有元素 |
.class1.class2 | .name1.name2 | 选择作为类名name1元素后代的所有类名为name2的元素 |
- 元素选择器:TAG{}
选择器 | 示例 | 说明 |
---|---|---|
element | p | 选择所有<p>元素 |
element.class | p.intro | 选择class为"intro"的所有<p>元素 |
element, element | div, p | 选择所有<div>和所有<p>元素 |
element element | div p | 选择<div>内的所有<p>元素 |
element>element | div > p | 选择父元素是<div>的所有<p>元素 |
element+element | div + p | 选择紧跟<div>元素的首个<p>元素 |
element~element | p ~ ul | 选择前面有<p>元素的每个<ul>元素 |
- 属性选择器:[属性]{}
选择器 | 示例 | 说明 |
[attribute] | [target] | 选择带有target属性的所有元素 |
[attribute=value] | [target=_blank] | 选择带有target="_blank"属性的所有元素 |
[attribute~=value] | [title~=flower] | 选择title属性包含但是flower的所有元素 |
[attribute^=value] | a[href^="https"] | 选择其src属性以"https"开头的每个<a>元素 |
[attribute$=value] | a[href$=".pdf"] | 选择其src属性以".pdf"结尾的所有<a>元素 |
[attribute*=value] | a[href*="abc"] | 选择其href属性值中包含"abc"子串的每个<a>元素 |
CSS创建
- 外部样式
<link rel="stylesheet" type="text/css" href="mystyle.css">
- 内部样式
<style>
hr {color:sienna;}
p {margin-left:20px;}
</style>
- 内联样式
<p style="color: sienna; margin-left: 20px">这是一个段落</p>
常见CSS样式
背景样式
- background:与网页/标签背景相关的属性样式,都可以在这里进行设置,包括背景的颜色、背景的图像、背景的起始位等,也可以单独对这些属性进行设置
- background-color:可以单独设置元素的背景颜色
- background-image:可以单独设置网页/标签的背景图片
- background-position:可以单独设置网页/标签的背景图像的起始位置
- background-repeat:可以单独设置网页/标签的背景图像是否平铺
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页标题</title>
<style>
p {
background-color: red;
}
body {
background-image: url("wx_icon.jpg");
background-repeat: repeat;
background-position: right top;
}
</style>
</head>
<body>
<div id="first" class="content">
<p>设置了红色背景</p>
</div>
</body>
</html>
文本样式
- color:设置文本颜色
- text-align:对齐元素中的文本
- text-decoration:向文本中添加修饰
- text-indent:缩进元素中文本的首行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文本样式</title>
<style>
h1 {
color: blue;
}
p {
color: green;
text-align: right;
text-decoration: underline;
text-indent: 50px;
}
</style>
</head>
<body>
<div id="first" class="content">
<h1>标题1</h1>
<p>background-color:可以单独设置元素的背景颜色
background-image:可以单独设置网页/标签的背景图片
background-position:可以单独设置网页/标签的背景图像的起始位置
background-repeat:可以单独设置网页/标签的背景图像是否平铺</p>
</div>
</body>
</html>
字体样式
- font:在一个声明中设置所有的字体属性
- font-family:指定文本的字体系列
- font-size:指定文本的字体大小
- font-style:指定文本的字体样式
- font-weight:指定字体的粗细
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字体样式</title>
<style>
p {
font-family: "Times New Roman";
font-size: 200%;
font-style: italic;
font-weight: bold;
}
</style>
</head>
<body>
<div id="first" class="content">
<p>background-color:可以单独设置元素的背景颜色</p>
</div>
</body>
</html>
列表
- list-style:把所有用于列表的属性设置在一个声明中
- list-style-image:将图像设置为列表项标志
- list-style-type:设置列表项标值类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>列表</title>
<style>
ul {
list-style-image: url("Chrome_icon.png");
list-style-type:circle
}
</style>
</head>
<body>
<div id="first" class="content">
<ul>
<li>archer</li>
<li>saber</li>
<li>lancer</li>
</ul>
</div>
</body>
</html>
表格
- border:设置表格边框
- border-collapse:设置表格的边框是否被折叠成一个单一的边框
- width:定义表格的宽度
- text-align:设置表格中的文本对齐方式
- padding:设置表格中的填充
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格</title>
<style>
#stu {
border-collapse: collapse;
width: 100%;
}
#stu td, #stu th {
border: 1px solid red;
padding: 8px;
}
</style>
</head>
<body>
<table id="stu">
<tr>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
</tr>
<tr>
<th>竹筒饭</th>
<th>18</th>
<th>航空母舰</th>
</tr>
<tr>
<th>archer</th>
<th>19</th>
<th>武装直升机</th>
</tr>
</table>
</body>
</html>
定位
- static:没有定位
- relative:相对定位
- fixed:元素的位置相对于浏览器窗口是固定位置
- absolute:绝对定位,元素的位置相对于最近的以定位父元素
- sticky:黏性定位,基于用户的滚动位置来定位
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>定位</title>
<style>
div.static {
position: static;
border: 3px solid green;
}
div.relative {
position: relative;
left: 30px;
border: 3px solid blue;
}
</style>
</head>
<body>
<h1>定位</h1>
<p>设置不同定位</p>
<div class="static">
正常文档流定位
</div>
<div class="relative">
相对定位
</div>
</body>
</html>
盒子模型
所有HTML元素可以看作盒子。CSS盒子模型本质上是一个盒子,用以封装HTML元素,它包括内外边距、边框、内容。
Margin(外边距):边框外的区域,外边距是透明的
Border(边框):围绕在内边距和内容外的边框
Padding(内边距):介于内容外和边框内边的区域,内边距是透明的
Content(内容):盒子的内容,显示文本或图像