1.HTML介绍
HTML(HyperText Markup Language,超文本标记语言)是用于创建网页的标准标记语言。它使用一系列的元素来描述网页的结构和内容,包括文本、图像、链接、表格等。
1.1HTML基础结构
HTML文件是一种纯文本文件,由一系列的元素构成。每个元素由一对尖括号<>
包围,并用于定义网页的不同部分。例如:
<!DOCTYPE html>
<html>
<head>
<title>网页标题</title>
</head>
<body>
<h1>这是一个标题</h1>
<p>这是一段文字</p>
</body>
</html>
<!DOCTYPE html>
声明定义了这是一个HTML5文档<html></html>
是整个HTML文档的根元素<head></head>
包含了文档的元数据,如标题、样式表等<body></body>
包含了网页的可见内容
1.2 HTML标题和段落
标题和段落是网页中最基本的元素。标题由<h1>
到<h6>
六个级别表示,数字越小级别越高。段落使用<p>
元素定义。示例:
<!DOCTYPE html>
<html>
<head>
<title>网页标题</title>
</head>
<body>
<h1>这是一个标题</h1>
<p>这是一段文字</p>
</body>
</html>
1.3 HTML链接
<a>
元素定义了超链接,使用href
属性指定链接的URL。链接可以指向另一个网页,也可以指向同一页面的某个位置(锚点链接)。示例:
<a href="https://www.example.com">这是一个链接到example.com的链接</a>
<a href="https://www.example.com" target="_blank">这个链接会在新标签页中打开</a>
<a href="#bottom">跳转到页面底部</a>
<!-- 其他内容 -->
<h2 id="bottom">这是页面底部</h2>
1.4 HTML媒体标签
<img>
元素用于在网页中插入图像,使用src
属性指定图像的URL,alt
属性提供了图像的替代文本(当图像无法显示时显示)。示例:
<img src="example.jpg" alt="这是一张示例图片">
<img src="https://example.com/logo.png" alt="网站Logo">
如果你想添加音频或视频可以使用<dudio>和<video>:
<div>
<audio src="https://m10.music.126.net/20240319155649/96db96aeb4629fe864d1843007b11779/yyaac/obj/wonDkMOGw6XDiTHCmMOi/3067332831/9179/0ea1/85ec/645a8325907dc22d0f5adaa165b074fa.m4a", controls></audio>
</div>
<div>
<video src="https://player.vimeo.com/progressive_redirect/playback/617209007/rendition/360p/file.mp4?loc=external&oauth2_token_id=1747418641&signature=d5b4b95263bc1cdd7d56a2592c0370fa35a874ed20271164cb261bdc245f06cf" controls width="50%"></video>
</div>
插入的链接可以是本地的路径,也可以是外部链接。
1.5 HTML列表
HTML支持有序列表(<ol>
)和无序列表(<ul>
),列表项使用<li>
元素定义。示例:
<ul>
<li>这是一个无序列表项</li>
<li>这是另一个无序列表项</li>
<li>列表项可以嵌套
<ul>
<li>嵌套无序列表项</li>
<li>另一个嵌套项</li>
</ul>
</li>
</ul>
<ol>
<li>这是一个有序列表项</li>
<li>这是另一个有序列表项</li>
<li>有序列表也可以嵌套
<ol>
<li>嵌套有序列表项</li>
<li>另一个嵌套项</li>
</ol>
</li>
</ol>
1.6 HTML表格
使用<table>
元素创建表格,其中包含行<tr>
和单元格<th>
(表头)和<td>
(数据)。示例:
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>城市</th>
</tr>
<tr>
<td>张三</td>
<td>25</td>
<td>北京</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
<td>上海</td>
</tr>
</table>
1.7HTML表单
<form>
元素定义了用于收集用户输入的HTML表单,其中包含各种表单控件,如文本框、复选框、单选按钮等。示例:
<form action="/submit-form" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br>
<label for="email">电子邮件:</label>
<input type="email" id="email" name="email"><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password"><br>
<label>性别:</label>
<input type="radio" id="male" name="gender" value="male">
<label for="male">男</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">女</label><br>
<label>兴趣爱好:</label>
<input type="checkbox" id="reading" name="hobbies[]" value="reading">
<label for="reading">阅读</label>
<input type="checkbox" id="sports" name="hobbies[]" value="sports">
<label for="sports">运动</label>
<input type="checkbox" id="music" name="hobbies[]" value="music">
<label for="music">音乐</label><br>
<input type="submit" value="提交">
</form>
如果你想使表单能够提交,就必须使用label标签,默认的提交方式是get。
1.8HTML语义化标签
这个无关紧要,可以用也可以不用,它使你写的网页 结构清晰,这些标签跟div除了名字不同之外,并没有什么不同:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<header>
<nav></nav>
</header>
<main>
<section>
<article></article>
</section>
</main>
<aside></aside>
<footer></footer>
</body>
</html>
header是头,nav代表导航栏,main代表主要内容,其他顾名思义。
1.9 HTNML标准属性
即id、class、title、style。
id是唯一的,class代表类名,可重复,可以有多个。这两个都可以用在css选择器中。
title就是标题,style里可以设置标签的样式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="g1" class="g1 g2 g3 g4" title="g1" style="color:blue; background-color:blueviolet;">g1</div>
<div id="g2" class="ggg gg2 gg3" title="g2" style="color: brown; background-color: chocolate;">g2</div>
</body>
</html>
1.10 自定义字体
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<style>
.d1{
width: 100px;
height: 100px;
background-color: brown;
}
.d1:hover + .d2{
width: 100px;
height: 100px;
background-color: aquamarine;
/* 旋转 */
/* transform: rotate(180deg); */
transform: rotateX(180deg);
}
.d2{
transition: all 2s linear;
}
@keyframes d3 {
100%{
transform: rotate(360deg);
}
}
.d3{
width: 70px;
height: 70px;
animation: d3 1s linear reverse; /*infinite*/
background-color: black;
text-align: center;
line-height: 70px;
border-radius: 5%;
}
</style>
<div class="d1"></div>
<div class="d2"></div>
<div class="d3"><img src="../360/img/hot_up.png" alt=""></div>
</body>
</html>
1.11 弹性布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container{
width: 300px;
height: 300px;
border-style: solid;
border-width: 1px;
/* display: flex; */
}
.container div div{
width: 100px;
height: 100px;
background-color: lightsalmon;
font-size: 32px;
text-align: center;
line-height: 100px;
}
.container{
/* flex-direction 主轴方向
row row-reverse columu column-reverse
*/
/*
flex
*/
/* justify-content: space-around; */
/* 交叉轴位置 */
/* align-items: center; */
}
#d1, #d2, #d3{
display: flex;
/* width: 300px;
height: 100px; */
}
#d2{
justify-content: center;
}
#d3{
justify-content: flex-end;
}
</style>
</head>
<body>
<div class="container">
<div id="d1"><div class="d1">1</div></div>
<div id="d2"><div class="d1">2</div></div>
<div id="d3"><div class="d1">3</div></div>
<!-- <div class="d1">1</div> -->
</div>
</body>
</html>
1.12渐变与动画
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<style>
.d1{
width: 100px;
height: 100px;
background-color: brown;
}
.d1:hover + .d2{
width: 100px;
height: 100px;
background-color: aquamarine;
/* 旋转 */
/* transform: rotate(180deg); */
transform: rotateX(180deg);
}
.d2{
transition: all 2s linear;
}
@keyframes d3 {
100%{
transform: rotate(360deg);
}
}
.d3{
width: 70px;
height: 70px;
animation: d3 1s linear reverse; /*infinite*/
background-color: black;
text-align: center;
line-height: 70px;
border-radius: 5%;
}
</style>
<div class="d1"></div>
<div class="d2"></div>
<div class="d3"><img src="../360/img/hot_up.png" alt=""></div>
</body>
</html>
1. 13HTML样式
可以使用内联样式、内部样式表或外部样式表(CSS文件)来设置HTML元素的样式。
内联样式
使用style
属性直接设置元素的样式:
<h1 style="color:blue;font-size:36px;">这个标题具有内联样式</h1>
内部样式表
在<head>
部分使用<style>
元素定义CSS样式:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
color: blue;
font-size: 36px;
}
p {
color: green;
}
</style>
</head>
<body>
<h1>这个标题使用内部样式表样式</h1>
<p>这个段落也使用内部样式表样式</p>
</body>
</html>
外部样式表
使用<link>
元素链接外部CSS文件:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>这个标题使用外部样式表样式</h1>
<p>这个段落也使用外部样式</p>
html代码很简单,只要你能记住就好了,几乎不需要理解,但设置样式对新手来说是棘手的,因为你并不熟练,并不了解每个标签的特性。下面就介绍一下。
2.HTML各标签的特性
HTML标签特性
全局特性
一些特性可以应用于任何HTML元素,被称为全局特性。常见的全局特性包括:
id
: 为元素赋予一个唯一的标识符,用于选择器等。class
: 为元素赋予一个或多个类名,用于选择器等。style
: 内联设置元素的CSS样式。title
: 为元素提供附加信息,在鼠标悬停时显示工具提示。lang
: 指定元素的语言。data-*
: 用于存储私有数据,可通过JavaScript访问。
示例:
<p id="intro" class="important" style="color:red;" title="这是一个重要段落" data-author="张三">这是一段重要文字。</p>
链接特性
<a>
标签用于创建链接,它有以下特性:
href
: 链接的目标URL。target
: 指定链接在何处打开,如_blank
为新标签页。download
: 将链接资源作为下载项而非在浏览器中打开。
示例:
<a href="https://www.example.com" target="_blank">在新标签页中打开</a>
<a href="example.pdf" download>下载PDF文件</a>
图像特性
<img>
标签用于插入图像,它有以下特性:
src
: 图像的URL。alt
: 图像无法显示时的替代文本。width
和height
: 设置图像的宽度和高度。
示例:
<img src="example.jpg" alt="这是一张示例图片" width="500" height="300">
表格特性
<table>
标签用于创建表格,其中包含<tr>
(行)和<th>
(表头单元格)、<td>
(数据单元格),它们有以下特性:
border
: 设置表格边框宽度。cellpadding
: 设置单元格内边距。cellspacing
: 设置单元格间距。colspan
和rowspan
: 指定单元格合并列或行。
示例:
<table border="1" cellpadding="5" cellspacing="0">
<tr>
<th colspan="2">学生信息</th>
</tr>
<tr>
<td rowspan="2">张三</td>
<td>90</td>
</tr>
<tr>
<td>80</td>
</tr>
</table>
表单特性
<form>
标签用于创建表单,其中包含各种输入控件,如<input>
、<textarea>
、<select>
等,它们有以下常见特性:
name
: 控件名称,用于提交数据时标识字段。value
: 控件的初始值。required
: 指定控件为必填项。pattern
: 指定控件值必须匹配的正则表达式模式。min
和max
: 对数值型控件设置最小和最大值。
示例:
<form>
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br>
<label for="email">电子邮件:</label>
<input type="email" id="email" name="email" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}"><br>
<label for="age">年龄:</label>
<input type="number" id="age" name="age" min="18" max="65"><br>
<input type="submit" value="提交">
</form>
CSS样式设置注意事项
在设置HTML元素的CSS样式时,需要注意以下几点:
- 选择器优先级
CSS选择器有不同的优先级,按照以下顺序从高到低:
- 内联样式 > ID选择器 > 类选择器 > 元素选择器
- 同级选择器,后者覆盖前者
- 较具体的选择器优先于较不具体的选择器
- 继承
一些CSS属性会从父元素自动继承到子元素,如color
、font-family
等。如需覆盖继承的样式,需要显式指定。
- 盒模型
理解CSS盒模型对于设置元素的margin、padding、border等样式很重要。
- 单位
CSS支持多种单位,如px
(像素)、%
(百分比)、em
(相对字体大小)等,要根据情况选择合适的单位。
- 浏览器兼容性
不同浏览器对某些CSS属性或值的支持情况可能有所不同,需要注意兼容性问题。
- CSS重置
不同浏览器对HTML元素的默认样式存在差异,通常需要使用CSS重置来统一默认样式。
示例:清除所有元素的margin和padding:
* {
margin: 0;
padding: 0;
}
ok,下篇文章介绍css。