HTML
基本框架
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
</body>
</html>
iframe内联框架
<iframe src="https://www.bilibili.com" frameborder="0" width="1450" height="1000"></iframe>
不常用,有缺点
基础
1. 标题(h)
<h1>一级标题</h1> 一般一个网页中只有一个h1标题
<h2>二级标题</h2>
拓展
<!--
hgroup标签用来为标题分组
将一组相关的标题放入同一组中
-->
<hgroup>
<h1>你好</h1>
<h2>我是</h2>
</hgroup>
2. 段落(p)
<p>Hello World!</p> <!-- 形成一个段落 -->
<br>Hello World!</br> <!-- 折行,但不形成段落 -->
<blockquote>独占一行的块元素</blockquote> <!--引用 -->
3. 链接(a)
<a href="https://www.bilibili.com/">这是一个链接</a>
4. 图像(img)
-
img元素属于替换元素(基于块元素和行内元素之间,具有两种元素的特点)
-
alt 图片的描述,默认情况下不会显示,当图片加载失败的时候会显示
但搜索引擎会根据alt中的内容识别图片,如果不写alt属性则不会被搜索引擎收录
- title属性 可以显示图片或文字的属性
-
<img title="多多和小小初次购物" src="../图片/图像.jpg" alt="多多and小小" width="200" >
<!--若只设置width(height),不设置height(width)则会等比例缩放 -->
- 拓展
- jepg(jpg):支持的颜色比较丰富,不支持透明效果,不支持动图
- gif:支持的颜色较少,支持简单透明,支持动图
- png:支持的颜色丰富,支持复杂透明,不支持动图
- webp:谷歌推出的专门用来表示网页中的图片的一种格式,具备前三种的所有优点,内存小
- base64:希望图片加载速度快的时候使用,将图片转换成编码的形式,随浏览器加载一起出
5. 注释( )
<!--这是一个注释-->
6. 水平线(hr)
<hr>
属性
body属性
值 | 描述 |
---|---|
class | 为html元素定义一个或多个类名(classname)(类名从样式文件引入) |
id | 定义元素的唯一id |
style | 规定元素的行内样式(inline style) |
title | 描述了元素的额外信息 (作为工具条使用) |
-
拓展
title 标签的内容会作为浏览器搜索结果的超链接上的文字
a 标签的属性
target 属性
<a target="value">
值 | 描述 |
---|---|
_blank | 在新窗口中打开被链接文档。 |
_self | 默认。在相同的框架中打开被链接文档。 |
_parent | 在父框架集中打开被链接文档。 |
_top | 在整个窗口中打开被链接文档。 |
framename | 在指定的框架中打开被链接文档。 |
type 属性
<a type="value">
属性 | 描述 |
---|---|
MIME type | 规定被链接文档的的 MIME 类型。 |
hreflang 属性
<a hreflang="value">
<a href="https://www.bilibili.com" hreflang="zh">B站</a>
name 与 id 属性
-
name(id)可传送至锚处
<a name="top">top</a> <!--锚--> <a href="#top">去top</a> <!-- 传送 -->
拓展
-
可在打开新网页的时候定位到锚处
<a href="http://127.0.0.1:5500/basic.html#foot">访问到foot处</a>
-
head 属性
标签 | 描述 |
---|---|
head | 定义了文档的信息 |
title | 定义了文档的标题 |
base | 定义了页面链接标签的默认链接地址 |
link | 定义了一个文档和外部资源之间的关系 |
meta | 定义了HTML文档中 |
script | 定义了客户端的脚本文件 |
style | 定义了HTML文档的样式文件 |
<meta charset="UTF-8" name="keywords" content="HTML,学习,小小,多多">
<meta charset="UTF-8" name="description" content="HTML,学习,小小,多多">
字体(font)
1. 颜色
<font style="color: brown;">Hello World!</font>
2. 大小
<font style="font-size: 20px;">Hello World!</font>
<p style="font-size: 20px;">Hello World!</p>
3. 类型
<p style="font-family:华文彩云;">你好世界!</p>
<font style="font-family:华文彩云;">Hello World!</font>
文本格式化
1. 文本格式化标签
<b>Hello World!</b> <!-- 加粗文本 -->
<em>Hello World!</em> <!-- 定义着重文字 -->
<i>Hello World!</i> <!-- 斜体 -->
<strong>Hello World!</strong> <!-- 强化语气 -->
<blockquote>独占一行的块元素</blockquote>
列表
列表之间可以互相嵌套
属性 | 描述 |
---|---|
ul | 无序列表(用的最多) |
ol | 有序列表 |
dl | 定义列表 |
<dl>
<dt>HTML</dt> <!--dt定义名,dd定义的内容-->
<dd>HTML称为超文本标记语言,是一种标记语言。它包括一系列标签.
通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。
HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等
</dd>
</dl>
音频(audio)和视频(video)
1. 音频
- controls:允许用户控制
- autoplay:自动播放
- loop:循环播放
- autoplay:自动播放
<audio src="" controls autoplay loop></audio>
-
拓展
<!-- 可用来播放音频失败时提示用户升级浏览器 <audio controls> 对不起,你的浏览器不支持播放音频,请升级浏览器 <source src="./音频/双笙_封茗囧菌-霜雪千年.mp3"> </audio> --> <embed src="./音频/双笙_封茗囧菌-霜雪千年.mp3" type="audio/mp3" width="300"> <!-- embed所有浏览器都支持,但版本很旧-->
2. 视频
- 方法和audio基本一致
<audio controls>
对不起,你的浏览器不支持播放视频,请升级浏览器
<source src="./">
</audio>
<embed src="./" type="audio/mp4" width="300">
// embed所有浏览器都支持,但版本很旧
3. 注意示项
- 一般不会引入本地视频
注意事项
-
如果需要书写特殊符号,则需要用Html中的实体(转义字符)
&实体的名字
显示结果 实体名称 描述   空格 < < 小于号 > > 大于号 & & 和号 " " 引号 ` &apos 撇号 ¢ ¢ 分(cent) £ £ 镑(pound) ¥ ¥ 元(yen) € &euro 欧元(euro) § § 小节 © © 版权(copyright) ® ® 注册商标 ™ &trade 商标 × × 乘号 ÷ ÷ 除号
CSS
基本框架
1. 内联(行内)样式
- 直接在HTML语句中定义
<p style="color: red; font-size: 30px;">命数入织,当为磐石</p>
- 缺点
- 样式只能对一个标签生效
- 对多个元素生效时,需每一个都定义一次
- 修改样式麻烦,需一个一个修改,不方便
2. 在head中的style定义
- 在CSS选择器中定义样式
<style>
p{
color: red;
font-size: 30px;
}
</style>
-
优点
- 可同时为多个标签定义样式,修改时只需修改一处即可应用全部
-
缺点
- 但只能对当前的一个网页有效,不能跨界面复用
3. 外部样式表
- 定义一个.css文件
- 然后用link语法链接
<link rel="stylesheet" href="./样式表.css">
常用选择器
id 与 class
- id
- 定义:根据元素的id属性值选中一个元素
- 语法:#red{}
- 注意:最好不要重复使用,id属于唯一值
<style>
#gray{
color: gray;
}
</style>
</head>
<body>
<h1>静夜思</h1>
<p>床前明月光</p>
<p>疑似地上霜</p>
<p>举头望明月</p>
<p id="gray">低头思故乡</p>
- class
- 定义:与id相似,但可以重复使用
- 语法:.blue{}
- class可以为元素分组
- 一个元素可以指定多个class元素,class之间用空格间开
<style>
#gray{
color: gray;
}
.blue{
color: blue;
}
.one{
font-size: 15px;
}
</style>
</head>
<body>
<h1>静夜思</h1>
<p class="blue one">床前明月光</p> <!--指定多个class元素-->
<p class="blue">疑似地上霜</p>
<p class="blue">举头望明月</p>
<p id="gray">低头思故乡</p>
通配选择器
*{
<!-- 作用于整个CSS -->
}
复合(交集)选择器
-
定义:同时复合多个条件的元素
-
语法:h1,h2{}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>复合(交集)选择器</title>
<style>
p.two{
font-size: 30px;
font-family: "华文彩云";
}
div,h1{
font-size: 40px;
font-family:Arial, Helvetica, sans-serif;
}
</style>
</head>
<body>
<div class="two">HTML</div>
<p class="two">CSS</p>
<P class="two">Java</P>
<h1>标题</h1>
</body>
</html>
关系选择器
- 定义
- 语法
- div>p div.one>p div>p>span p+h4 div~span
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>关系选择器</title>
<style>
div>span{ /*子元素选择器 语法:父元素>子元素
font-size: 40px;
font-family:'宋体';
color: orange;
}
div.one>p{ /*父子选择器结合class标签
font-size: 30px;
color: chocolate;
}
div>span>p{ /*父子选择器*/
font-size: 40px;
color: teal;
}
p + h4{
font-family: '草书'; /*兄弟选择器 语法:前一个+后一个*/
color: violet;
}
div ~ span{ /*兄弟选择器 前一个 + 后面所有的兄弟*/
font-size: 20px;
color: royalblue;
}
</style>
</head>
<body>
<div>
<span>
div内的span
<p>div>span>p</p>
</span>
</div>
<div class="one">
<p>div与class</p>
<h4>p旁边的h4元素</h4>
</div>
<span>div外的span01</span>
<span>div外的span02</span>
<span>div外的span03</span>
<span>div外的span04</span>
</body>
</html>
属性选择器
-
语法:
-
[属性名] 选择含有指定属性名的元素
-
[属性名 = 属性值] 选择含有指定属性名和属性值的元素
-
[属性名 ^= 属性值] 选择属性值以指定开头的元素
-
[属性名 $= 属性值] 选择属性值以指定结尾的元素
-
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>属性选择器</title>
<style>
p[title]{ /*[属性名] 选择含有指定属性名的元素*/
color: tomato;
}
p[title = abc]{ /*[属性名 = 属性值] 选择含有指定属性名和属性值的元素*/
font-family: '华文彩云';
}
p[title ^= abc]{ /*[属性名 ^= 属性值] 选择属性值以指定开头的元素*/
font-size: 40px;
}
p[title $= de]{ /*[属性名 $= 属性值] 选择属性值以指定结尾的元素*/
font-size: 60px;
font-weight: bold;
}
p[title *= fc]{ /*[属性名 *= 属性值] 选择属性值中含有某值的元素*/
font-size: 10px;
font-weight: bold;
}
</style>
</head>
<body>
<h1>静夜思</h1>
<p title="abc">床前明月光</p>
<p title="abcde">疑似地上霜</p>
<p title="fde">举头望明月</p>
<p title="acfcbb">低头思故乡</p>
</body>
</html>
伪类选择器
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>伪类选择器</title>
<style>
/*伪类*/
ul>li:first-child{ /*设置ul里的第一个li元素*/
color:brown;
}
ul>li:last-child{ /*设置ul里的最后一个li元素*/
color: yellowgreen;
}
ul>li:nth-child(3){ /*设置ul里的第3个li元素*/
color: midnightblue; /*特殊值:n ,范围是0到+∞*/
} /*特殊值:2n或even ,表示选中偶数位的元素*/
/*特殊值:2n+1或odd ,表示选中奇数位的元素*/
/*以上伪类都是根据所有子元素进行排列,不考虑是否同类型*/
/* -of-type只考虑同类型的顺序排列*/
ul>li:first-of-type{
color: blueviolet;
}
ul>li:last-of-type{
color:bisque;
}
ul>li:nth-of-type{
color:cornflowerblue;
}
ul>li:not(:nth-child(3)){ /*除了设定的条件不选中,其余的都选中*/
color: brown;
}
</style>
</head>
<body>
<ul>
<span>我是span</span> <!--若此时有一个span在li前面,则上面的ul>li:first-child{}失效-->
<li>第一个</li>
<li>第二个</li>
<li>第三个</li>
<li>第四个</li>
<li>第五个</li>
<span>我是span</span> <!--若此时有一个span在li后面,则上面的ul>li:last-child{}失效-->
</ul>
</body>
</html>
超链接的伪类
-
语法:
-
link来表示未访问过的链接
-
visited来表示访问过的链接(由于隐私的原因,visited只支持修改颜色,不支持修改其他元素)
-
hover表示鼠标移到链接之后的状态
-
active表示鼠标点击之后链接的状态
-
-
注意:
- link和visited属于超链接独有属性
- hover和active所有元素都可以使用
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>超链接的伪类</title>
<style>
a:link{ /*link来表示未访问过的链接*/
color:red;
}
a:visited{ /*visited来表示访问过的链接*/
font-size: 50px; /*由于隐私的原因,visited只支持修改颜色,不支持修改其他元素*/
color: coral;
}
a:hover{ /*hover表示鼠标移到链接之后的状态*/
color: darkgrey;
font-size: 30px;
}
a:active{ /*active表示鼠标点击之后链接的状态*/
color: darkmagenta;
}
/*注意
link和visited属于超链接独有属性
hover和active所有元素都可以使用
*/
</style>
</head>
<body>
<a href="https://www.baidu.com/">百度</a>
<a href="https://www.bilibili.com/">B站</a>
<a href="https://www.4399.com/">4399小游戏</a>
</body>
</html>
伪元素
属性 | 描述 |
---|---|
::first-letter | 改变p中第一个元素 |
::first-line | 改变第一行 |
::selection | 选中的内容 |
::before | 元素的开始 |
::after | 元素的最后 |
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>伪元素</title>
<style>
p::first-letter{ /* ::first-letter 改变p中第一个元素*/
font-size: 30px;
}
p::first-line{ /* ::first-line 改变第一行*/
background-color: gray;
}
p::selection{ /* ::selection 选中的内容*/
color: darkgreen;
}
div::before{ /* ::before 元素的开始*/
content: '你好';
}
div::after{ /* ::after 元素的最后*/
content: '再见';
}
</style>
</head>
<body>
<div>hello,i am duoduohuang</div>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quo, asperiores facere eos dolor rem cupiditate illo numquam perferendis nemo labore possimus deserunt praesentium, velit consequatur molestias nesciunt tempora, sint omnis?
</p>
</body>
</html>
选择器的权重
1. 样式的冲突
- 当用不同的选择器选中相同的元素时,且设置的值不相同时,会发生样式冲突
2. 样式的权重
- 内联样式 1,0,0,0
- id选择器 0,1,0,0
- 类和伪类选择器 0,0,1,0
- 元素选择器 0,0,0,1
- 类和伪类选择器 0,0,1,0
- id选择器 0,1,0,0
3. 选择器的优先级
-
比较优先级时,需要将所有选择器的权重进行相加,然后比较优先级,优先级高的显示
(分组选择器是单独计算的👇)
div,p,span{}
-
选择器的累加不会超过最大的数量级
eg:类选择器累加多少个都不会超过id选择器的优先级
!important 直接赋予最高优先级
-
总结:
选择器越具体,优先级越高
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>选择器的优先级</title>
<style>
#box{ /*id选择器->权值100*/
background-color: tan;
}
div{ /*元素选择器->权值1*/
background-color:darkmagenta;
}
div#box{ /*元素 + id选择器->权值101*/
background-color: brown;
}
.one{ /*类选择器->权值10*/
background-color: yellowgreen;
}
#box.one{ /*类 + id选择器->权值110*/
background-color:cornflowerblue;
}
</style>
</head>
<body>
<div id="box" class="one">i am a div</div>
<div id="box" class="one" style="background-color: darkblue;">i am a div</div>
<!--内联样式权值1000--👆>
</body>
</html>
单位
长度单位
-
em
相对于元素的字体大小计算的
1em = 1font-size(浏览器默认1font-siz = 16px;)
em会根据字体的大小改变而改变 -
rem
rem是相对于根元素的字体大小改变而改变(html)
颜色
1. rgb值:
-
rgb通过三种颜色的不同浓度来调配出不同的颜色
-
每一种颜色的范围在0 ~ 255(0% ~ 100%)之间
- 语法:rgb(红色,蓝色,绿色)
-
2. rgba值:
- 在rgb的基础上添加了a透明度
- 1表示完全不透明 0表示完全透明 .5表示半透明
- 语法:rgba(红色,蓝色,绿色,透明度)
3. 十六进制的rgb值:
-
语法:#红色绿色蓝色
- 颜色浓度通过 00-ff
- 如果颜色两位重复可以简写 #aabbcc --> #abc
- 颜色浓度通过 00-ff
4. hls值和hlsa值
-
H 色相(0 ~ 360)
-
L 亮度,颜色的亮度 (0% ~ 100%)
-
S 饱和度,颜色的浓度 (0% ~ 100%)
- A 透明度 (0 ~ 1)
-
-
注意事项
1. style
- style中的语句不支持HTML语句,属于CSS,包括注释