- 概述:HTML的全称是HyperText Markup Language,超文本标记语言,其实它就是文本。2014年开始定制HTML5的标准,至今HTML5已经成熟(下面简称H5),H5设计的目的是为了在移动设备上支持多媒体等功能.使用H5的原因归结下来有以下几点:1.跨平台,H5的运行平台是浏览器,所以可以跨平台使用;2.H5新增加了很多功能,如Video,audiohe canvas等.
- H5常用的框架
- sencha-touch: 基于JavaScript编写的Ajax框架,该框架是世界上第一个基于HTML5的Mobile App框架
- phoneGap: 是一个基于HTML,CSS和JavaScript的Mobile App框架,是创建移动跨平台移动应用程序的快速开发平台。业界很多主流的移动开发框架均源于PhoneGap。较著名的有Worklight、appMobi、WeX5等
- jQuery mobile: 是jQuery 框架的一个组件(而非jquery的移动版本)。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台
- Bootstrap: 是目前最受欢迎的前端框架(移动先行)。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷
- H5的组成
<!DOCTYPE html>
<!--根标签-->
<html lang="en">
<!--头部-->
<head>
<!--编码格式-->
<meta charset="UTF-8">
<!--网页主题-->
<title>百度一下,你就知道</title>
</head>
<!--身体主体-->
<body>
<!--内容-->
<div>Hello world!</div>
</body>
<!-- 尾部-->
<footer></footer>
</html>
- 常见的H5标签(单标签:不是容器 格式<> ;双标签:是容器 格式:<> </>)
- 标题:h1,h2,h3,h4,h5.h6
- 段落:p
- 表单:input
- 图片:img
- 链接:a
- 换行:br
- 列表:ul,ol,li
- 容器:div,span(用来容纳其他标签)
- 横线:hr
- 表格:table,tr,td
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!-- 1. 标题:h1,h2,h3,h4-->
<h1>我是h1标题</h1>
<h2>我是h2标题</h2>
<h3>我是h3标题</h3>
<h4>我是h4标题</h4>
<!-- 2. 段落:p-->
<p>我是段落标签</p>
<!-- 3. 表单:input-->
<input><br>
<input placeholder="占位符"><br>
<input value="默认值"><br>
<input type="color"><br>
<input type="checkbox">
<input type="button" value="button1"><br>
<!-- 4. 图片:img 本地图片和网络图片-->
<img src="./image/0.jpg" alt="图片加载失败时显示"><br>
<img src="http://mpic.tiankong.com/ea3/45a/ea345a473751210f63e69062d0f0dcb9/640.jpg" alt="" width="270px">
<!-- 5. 链接:a-->
<a href="#" target="_top">百度一下,你就知道</a>
<!-- 6. 换行 :br-->
<!-- 7. 列表-->
<!--无序列表-->
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<!-- 有序列表-->
<ol type="A">
<li>我是li-1</li>
<li>我是li-2</li>
<li>我是li-3</li>
<li>我是li-4</li>
</ol>
<!-- 8. 容器-->
<div>我是div容器</div>
<div>我是div容器</div>
<div>我是div容器</div>
<div>我是div容器</div>
<span>我是span容器</span>
<span>我是span容器</span>
<span>我是span容器</span>
<span>我是span容器</span>
<!-- 9. 横线 :hr-->
<hr>
</body>
</html>
- H5常用的标签的使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>显示度量值:</p>
<meter value="3" min="0" max="10"></meter>
<br>
<meter value="0.6" min="0" max="1.0"></meter>
<!-- 下载进度-->
<progress value="80" max="100"></progress>
<!-- video s视频-->
<video src="./image/BigBuck.m4v" autoplay="autoplay" loop ="loop" width="500px" height=" 500px">
</video>
</body>
</html>
-一篇新闻-->
<article>
<!--新闻的头部-->
<header>
</header>
<!--内容部分-->
<div>
<!--第一章节-->
<section>
</section>
<!--第二章节-->
<section>
</section>
</div>
<!--尾部-->
<footer>
</footer>
</article>
- H5新增的标签:新增了27个标签,废除了16个标签主要包括结构性标签,行内语义性标签,交互性标签;
- 结构性标签:负责Web上下文结构的定义,包括:
- article:文章主体内容(一篇博客、一篇论坛帖子、一段用户评论、插件)
- header:标记头部区域内容, 注意:与 head 不一样
- footer:标记脚布局区域内容
- section:区域章节表述
- nav:菜单导航,链接导航
- 块级性标签:完成Web页面区域的划分,确保内容的有效分隔,包括:
- aside :注记,贴士,侧栏,摘要,插入的引用作为补充主体的内容
- figure: 对多个标签组合并展示,常与figcaption联合使用
- code :表示一段代码
- dialog :人与人之间对话,包含dt和dd两个组合元素(dt用于表示说话者、dd用于表示说话者的内容)
- 行内语义性标签:完成Web页面具体内容的引用和表述,丰富展示内容,包括:
- meter 特定范围内的数值,如工资、数量、百分比
- time 时间值
- progress 进度条,可用max、value进行控制
- video 视频元素,用于视频播放,支持缓冲预载和多种视频媒体格式
- audio 音频元素,用于音频播放,支持缓冲预载和多种音频媒体格式
- 交互性标签:功能性内容的表达,有一定的内容和数据的关联,是各种事件的基础,包括:
- details 表示一段具体的内容,默认不显示,通过某种方式(单击)与legend交互才会显示
- datagrid 控制客户端数据与显示,可用于动态脚本及时更新
- menu 用于交互菜单
- command 用来处理命令按钮
- CSS样式:CSS的全称是Cascading Style Sheets, 层叠样式表,它用来控制HTML标签的样式,在美化网页中起到非常重要的作用.
- CSS的编写格式:采用键值对的形式,如下:
<!-- 单值 -->
color: red;
background-color: blue;
font-size: 20px;
<!-- 复合值 -->
border:3px solid red;
- CSS的三种书写形式:
- 行内样式:(内联样式)直接在标签的style属性中书写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="color: blue">div标签</div>
</body>
</html>
- 页内样式:在本网页的style标签中书写。style标签一般放在head标签中
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
/*边界*/
border: 1px solid green;
/*背景*/
background-color: bisque;
color: white;
}
</style>
</head>
<body>
<div>div标签1</div>
<div>div标签2</div>
<p>p标签</p>
</body>
</html>
- 外部样式:在单独的CSS文件中写,然后在网页中用link标签引用。link标签一般在放在head标签中
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--引入外部样式-->
<link href="./css/index.css" rel="stylesheet">
</head>
<body>
<div>div标签</div>
<div>div标签</div>
<div>div标签</div>
<p>p标签</p>
<p>p标签</p>
<p>p标签</p>
</body>
</html>
外部样式div{
background-color: green;
color: white;
border: 2px solid blue;
}
p{
background-color: green;
color: white;
border:1px solid;
border: 1px solid blue;
}
- CSS的选择器:通过选择器,找到对应的标签,设置样式.下面简单介绍一些常用的选择器:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 1. 标签选择器:选选择网页中所有的div标签*/
div{
color: green;
background-color: white;
border: 1px solid blue;
}
/* 2. 类选择器*/
.test3{
color: aqua;
}
/* 3. id选择器*/
#wakaka{
color: rebeccapurple;
}
/* 4. 并列选择器:案例表示div和所有的test2的所有样式*/
div,.test2{
color: blue;
}
/* 5. 符合选择器 案例表示div且是test2类的样式*/
div.test2{
color: green;
}
/* 6. 后代选择器 案例表示div直接内部或非直接内部的p标签的样式*/
div p{
color: rebeccapurple;
}
/* 7. 直接后代选择器 案例表示div的直接内部p标签*/
div>p{
color: red;
}
/* 8. 相邻兄弟选择器 案例表示div后面的相邻的p标签*/
div + p{
color: greenyellow;
}
/* 9. 属性选择器 */
/* /*案例表示含有name属性的div标签的样式(和name属性值无关)*/
div[name]{
color: cadetblue;
}
/*案例表示含有name属性,且包含age属性的div样式*/
div[name][age]{
color: red;
}
/*案例表示含有name属性,且name的属性值为javak的div标签的样式*/
div[name="jack"]{
color: red;
}
/* 10. 伪类选择器 格式:选择器:属性{} 属性:active,focus,hover,link,visited,first-child,lang*/
/*案例表示当该标签获得焦点的时候显示边框*/
input:focus{
outline: none;
border:1px solid orange;
}
11. 伪元素选择器 格式;选择器:属性{} 属性:first-letter,first-line,before,aftre
/*案例表示第一字母的尺寸大小*/
#wakaka:first-letter{
font-size: 30px;
}
/*案例表示首位添加某字段*/
#wakaka:before{
content: '你好';
}
</style>
</head>
<body>
<div id="wakaka">我是div标签1</div>
<div class="test2">我是div标签2</div>
<div class="test2 test3 test4">我是div标签3</div>
<div name="jack" age="22">我是div标签4</div>
<div name="rose">我是div标签5</div>
<div>
<p>div里面的p标签</p>
<span>
<p>div里面的span的内部的p标签</p>
</span>
</div>
<p>div外面的p标签</p>
<input type="text">
<p class="test2">我是一个p标签1</p>
<p class="test3">我是一个p标签2</p>
<p>我是一个p标签</p>
</body>
</html>
- CSS选择器的优先级
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* *表示通配符 0 */
*{
color: red;
}
/* 标签 1 */
div {
color: green;
}
/* 类 10 */
.test1{
color: blue;
}
/* 属性 10+ */
div[class]{
color: aqua;
}
/* id 100 */
#main{
color: palegreen;
}
/* important 1000 */
div {
color: palevioletred !important;
}
</style>
</head>
<body>
<div id="main" class="test1">选择器的优先级测试</div>
</body>
</html>
同一个级别选择器的针对性越强,它的优先级就越高,行内样式 > 页内样式 | 外部样式 ;页内样式 与 外部样式 的优先级别是:层叠原则和就近原则.优先级的排序:important(1000) > 行内样式(999)> id > 类 > 标签 | 伪类 | 属性选择 |伪元素 > 通配符 > 继承
- HTML的标签类型:HTML有N多标签,根据显示的类型,主要可以分为3大类:块级标签,行内标签,行内-块级标签
- 标签分类:
- 块级标签:块级标签独占一行的标签能随时设置宽度和高度(比如div、p、h1、h2、ul、li)
- 行内标签:行内标签(内联标签)多个行内标签能同时显示在一行 , 宽度和高度取决于内容的尺寸(比如span、a、label);
- 行内-块级标签:行内-块级标签(内联-块级标签)多个行内-块级标签可以显示在同一行 , 能随时设置宽度和高度(比如input、button、img)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 200px;
height: 60px;
background-color: red;
}
p{
width: 200px;
height: 60px;
background-color: green;
}
span{
width: 200px;
height: 60px;
background-color: blue;
}
a{
width: 200px;
height: 60px;
background-color: aqua;
}
input{
width: 200px;
height: 60px;
background-color: fuchsia;
}
button{
width: 200px;
height: 60px;
background-color: greenyellow;
}
</style>
</head>
/** 标签的类型: 1.块级标签:独占一行的标签,可以随时设置宽高(如:div,p,h1,h2,ul) ;
2.行内标签(内联标签):多个行内标签能同时显示在一行,宽高的尺寸取决于内容的尺寸(如:span,a,label)
3.行内-块级标签:多个行内-块级标签可以显示在同一行,能随时设置宽高(input,button,img)*/
<body>
<!-- 块级标签-->
<div>div 标签(块级标签)</div>
<p>p 标签</p>
<!-- 行内标签-->
<span>p标签(行内标签)</span>
<a href="#">a 标签(行内标签)</a>
<!-- 行内-块级标签-->
<input type="text">
<button>button 标签(行内-块级标签)</button>
</body>
</html>
- 修改标签显示的类型:CSS中有个display属性,能修改标签的显示类型:
- none:隐藏标签
- block:让标签变为块级标签,主要针对行内标签和行内-块级标签
- inline:让标签变为行内标签,主要针对块级标签
- inline-block:让标签变为行内-块级标签(内联-块级标签) 主要针对块级标签 和行内标签
- 注意:行内-块级标签只能改变成块级标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
width: 200px;
height: 60px;
background-color: red;
/*块级标签-->行内标签*/
display: inline;
/*块级标签-->行内-块级标签*/
/*display: inline-block;*/
}
p {
width: 200px;
height: 60px;
background-color: green;
/*块级标签-->行内-块级标签*/
display: inline-block;
}
span {
width: 200px;
height: 60px;
background-color: blue;
/*行内标签-->行内-块级标签*/
display: inline-block;
}
a {
width: 200px;
height: 60px;
background-color: aqua;
/*行内标签 -->块级标签*/
display: block;
/*行内标签-->行内-块级标签*/
/*display: inline-block;*/
}
input {
width: 200px;
height: 60px;
background-color: fuchsia;
/*行内块级标签-->块级标签*/
display: block;
}
button {
width: 200px;
height: 60px;
background-color: greenyellow;
/*行内块级标签-->块级标签*/
display: block;
}
</style>
</head>
<body>
<!-- 块级标签-->
<div>div 标签(块级标签)</div>
<p>p 标签(块级标签)</p>
<!-- 行内标签-->
<span>p标签(行内标签)</span>
<a href="#">a 标签(行内标签)</a>
<!-- 行内-块级标签-->
<input type="text">
<button>button 标签(行内-块级标签)</button>
</body>
</html>
- CSS标签中的属性:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 100px;
height:100px;
background-color: aqua;
/*位置的显示和隐藏*/
/*!*位置依然存在*!
visibility: hidden;
!*位置不存在*!
display: none;*/
cursor: move;
color: white;
font-family: "Helvetica Neue", Helvetica, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif , Arial;
font-size: 20px;
font_weigth:300;
/*字体的装饰*/
text-decoration: line-through;
/*首行缩进*/
text-indent: 30px;
/* 水平居中*/
text-align: left;
/*背景*/
background: url("./image/0.jpg") no-repeat;
/*背景的缩放*/
background-size: 100% 100%;
}
p{
width: 100px;
height: 100px;
background-color: yellow;
}
a{
/* 字体没有装饰*/
text-decoration: none;
color: orange;
}
ul{
/* 使得LI标签没有任何样式*/
list-style: none;
}
</style>
</head>
<body>
<div>div标签</div>
<p>p标签</p>
<a href=""> a标签</a>
<ul>
<li>li-1标签</li>
<li>li-2标签</li>
<li>li-3标签</li>
</ul>
</body>
</html>
- 属性的分类:根据继承性,可以分为两大类:
- 可继承属性: 父标签的属性值会传递给子标签一般是文字控制属性
- 不可继承属性:父标签的属性值不能传递给子标签一般是区块控制属性
- 可继承属性包含:内联标签可继承父亲下面属性:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction ;块级标签可继承父亲下面属性:text-indent、text-align;列表标签可继承父亲下面属性:list-style、list-style-type、list-style-position、list-style-image等.
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 可继承属性: 父标签的属性值会传递个子标签,一般是文字控制属性-->
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
width: 200px;
height: 200px;
background-color: aqua;
/*可继承的属性*/
color: white;
font-size: 26px;
font-weight: bold;
}
p{
background-color: blue;
}
</style>
</head>
<body>
<div>
div 标签
<p>p标签是div的子标签1</p>
<p>p标签是div的子标签2</p>
<p>p标签是div的子标签3</p>
</div>
</body>
</html>
- 不可继承属性包含:display、margin、border、padding、background、background-size、height、min-height、max-height、width、min-width、max-width
overflow、position、left、right、top、bottom、z-index、float、clear等.<!DOCTYPE html>
<html lang="en">
<head>
<!-- 不可继承属性: 父标签的属性值不能传递个子标签,一般是 区块控制属性-->
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
/*不可继承属性*/
width: 200px;
height: 200px;
background-color: aqua;
margin-top: 60px;
/*可继承的属性*/
color: white;
font-size: 26px;
font-weight: bold;
}
p{
background-color: blue;
}
</style>
</head>
<body>
<div>
div 标签
<p>p标签是div的子标签1</p>
<p>p标签是div的子标签2</p>
<p>p标签是div的子标签3</p>
</div>
</body>
</html>
- 盒子模型:网页上的每一个标签都是一个盒子, 比如:(div , p , h1 , a , img .... )
![]()
- 两种盒子模型的区别:IE盒子模型:默认盒子的大小=内容+填充+边框;标准盒子模型:默认盒子的大小=内容
- 盒子(标签)的CSS属性:
- 控制内容(content)
- 控制填充(padding,内边距)
- 控制边框(border)
- 控制边界(margin,外边距)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 200px;
height: 200px;
/* 内边距*/
padding: 15px 0 0 15px;
/*外边距*/
margin: 10px 0 0 10px;
/*边框*/
border: 2px solid blue;
background-color: aqua;
/*居中*/
margin: 0 auto;
/*最大最小宽度*/
max-width: 1000px;
min-width: 400px;
}
</style>
</head>
<body>
<div>div标签</div>
</body>
</html>
- CSS的新增特性
- RGBA透明度: RGB(红色R+绿色G+蓝色B),RGBA则在其基础上增加了Alpha通道,可用于设置透明值(0 - 1)块
- 圆角:border-radius
- 阴影:box-shadow text-shadow
- 内边框图片:border-image
- 动画: transform:
- webkit-transition 过度效果
- webkit-transform-origin 参照坐标
- webkit-transform 动画效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
width: 120px;
height: 120px;
margin: 10px 0 10px 0;
background-color: aquamarine;
/*设置圆角*/
border-radius: 60px;
background: url("./image/0.jpg") no-repeat center center;
}
.test1 {
background-color: rgba(200, 0, 0, 8);
}
.test2 {
background-color: rgba(200, 0, 0, 6);
}
.test3 {
background-color: rgba(200, 0, 0, 4);
}
.test4 {;
background-color: rgba(200, 0, 0, 2);
}
/*伪类选择器*/
div:hover{
box-shadow: 0px 0px 10px red;
}
p{
color: orange;
font-size: 35px;
/*阴影*/
text-shadow: -3px -3px 5px yellow;
}
</style>
</head>
<body>
<div class="test1"></div>
<div class="test2"></div>
<div class="test3"></div>
<div class="test4"></div>
<p>世界那么大,我想去看看</p>
</body>
</html>
- sencha-touch: 基于JavaScript编写的Ajax框架,该框架是世界上第一个基于HTML5的Mobile App框架
- phoneGap: 是一个基于HTML,CSS和JavaScript的Mobile App框架,是创建移动跨平台移动应用程序的快速开发平台。业界很多主流的移动开发框架均源于PhoneGap。较著名的有Worklight、appMobi、WeX5等
- jQuery mobile: 是jQuery 框架的一个组件(而非jquery的移动版本)。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台
- Bootstrap: 是目前最受欢迎的前端框架(移动先行)。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷
<!DOCTYPE html>
<!--根标签-->
<html lang="en">
<!--头部-->
<head>
<!--编码格式-->
<meta charset="UTF-8">
<!--网页主题-->
<title>百度一下,你就知道</title>
</head>
<!--身体主体-->
<body>
<!--内容-->
<div>Hello world!</div>
</body>
<!-- 尾部-->
<footer></footer>
</html>
- 标题:h1,h2,h3,h4,h5.h6
- 段落:p
- 表单:input
- 图片:img
- 链接:a
- 换行:br
- 列表:ul,ol,li
- 容器:div,span(用来容纳其他标签)
- 横线:hr
- 表格:table,tr,td
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- 1. 标题:h1,h2,h3,h4--> <h1>我是h1标题</h1> <h2>我是h2标题</h2> <h3>我是h3标题</h3> <h4>我是h4标题</h4> <!-- 2. 段落:p--> <p>我是段落标签</p> <!-- 3. 表单:input--> <input><br> <input placeholder="占位符"><br> <input value="默认值"><br> <input type="color"><br> <input type="checkbox"> <input type="button" value="button1"><br> <!-- 4. 图片:img 本地图片和网络图片--> <img src="./image/0.jpg" alt="图片加载失败时显示"><br> <img src="http://mpic.tiankong.com/ea3/45a/ea345a473751210f63e69062d0f0dcb9/640.jpg" alt="" width="270px"> <!-- 5. 链接:a--> <a href="#" target="_top">百度一下,你就知道</a> <!-- 6. 换行 :br--> <!-- 7. 列表--> <!--无序列表--> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> <!-- 有序列表--> <ol type="A"> <li>我是li-1</li> <li>我是li-2</li> <li>我是li-3</li> <li>我是li-4</li> </ol> <!-- 8. 容器--> <div>我是div容器</div> <div>我是div容器</div> <div>我是div容器</div> <div>我是div容器</div> <span>我是span容器</span> <span>我是span容器</span> <span>我是span容器</span> <span>我是span容器</span> <!-- 9. 横线 :hr--> <hr> </body> </html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>显示度量值:</p>
<meter value="3" min="0" max="10"></meter>
<br>
<meter value="0.6" min="0" max="1.0"></meter>
<!-- 下载进度-->
<progress value="80" max="100"></progress>
<!-- video s视频-->
<video src="./image/BigBuck.m4v" autoplay="autoplay" loop ="loop" width="500px" height=" 500px">
</video>
</body>
</html>
-一篇新闻-->
<article>
<!--新闻的头部-->
<header>
</header>
<!--内容部分-->
<div>
<!--第一章节-->
<section>
</section>
<!--第二章节-->
<section>
</section>
</div>
<!--尾部-->
<footer>
</footer>
</article>
- 结构性标签:负责Web上下文结构的定义,包括:
- article:文章主体内容(一篇博客、一篇论坛帖子、一段用户评论、插件)
- header:标记头部区域内容, 注意:与 head 不一样
- footer:标记脚布局区域内容
- section:区域章节表述
- nav:菜单导航,链接导航
- 块级性标签:完成Web页面区域的划分,确保内容的有效分隔,包括:
- aside :注记,贴士,侧栏,摘要,插入的引用作为补充主体的内容
- figure: 对多个标签组合并展示,常与figcaption联合使用
- code :表示一段代码
- dialog :人与人之间对话,包含dt和dd两个组合元素(dt用于表示说话者、dd用于表示说话者的内容)
- aside :注记,贴士,侧栏,摘要,插入的引用作为补充主体的内容
- 行内语义性标签:完成Web页面具体内容的引用和表述,丰富展示内容,包括:
- meter 特定范围内的数值,如工资、数量、百分比
- time 时间值
- progress 进度条,可用max、value进行控制
- video 视频元素,用于视频播放,支持缓冲预载和多种视频媒体格式
- audio 音频元素,用于音频播放,支持缓冲预载和多种音频媒体格式
- meter 特定范围内的数值,如工资、数量、百分比
- 交互性标签:功能性内容的表达,有一定的内容和数据的关联,是各种事件的基础,包括:
- details 表示一段具体的内容,默认不显示,通过某种方式(单击)与legend交互才会显示
- datagrid 控制客户端数据与显示,可用于动态脚本及时更新
- menu 用于交互菜单
- command 用来处理命令按钮
- details 表示一段具体的内容,默认不显示,通过某种方式(单击)与legend交互才会显示
- CSS的编写格式:采用键值对的形式,如下:
<!-- 单值 --> color: red; background-color: blue; font-size: 20px; <!-- 复合值 --> border:3px solid red;
- CSS的三种书写形式:
- 行内样式:(内联样式)直接在标签的style属性中书写
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div style="color: blue">div标签</div> </body> </html>
- 页内样式:在本网页的style标签中书写。style标签一般放在head标签中
<head> <meta charset="UTF-8"> <title>Title</title> <style> div{ /*边界*/ border: 1px solid green; /*背景*/ background-color: bisque; color: white; } </style> </head> <body> <div>div标签1</div> <div>div标签2</div> <p>p标签</p> </body> </html>
- 外部样式:在单独的CSS文件中写,然后在网页中用link标签引用。link标签一般在放在head标签中
外部样式<html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--引入外部样式--> <link href="./css/index.css" rel="stylesheet"> </head> <body> <div>div标签</div> <div>div标签</div> <div>div标签</div> <p>p标签</p> <p>p标签</p> <p>p标签</p> </body> </html>
div{ background-color: green; color: white; border: 2px solid blue; } p{ background-color: green; color: white; border:1px solid; border: 1px solid blue; }
- 行内样式:(内联样式)直接在标签的style属性中书写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 1. 标签选择器:选选择网页中所有的div标签*/
div{
color: green;
background-color: white;
border: 1px solid blue;
}
/* 2. 类选择器*/
.test3{
color: aqua;
}
/* 3. id选择器*/
#wakaka{
color: rebeccapurple;
}
/* 4. 并列选择器:案例表示div和所有的test2的所有样式*/
div,.test2{
color: blue;
}
/* 5. 符合选择器 案例表示div且是test2类的样式*/
div.test2{
color: green;
}
/* 6. 后代选择器 案例表示div直接内部或非直接内部的p标签的样式*/
div p{
color: rebeccapurple;
}
/* 7. 直接后代选择器 案例表示div的直接内部p标签*/
div>p{
color: red;
}
/* 8. 相邻兄弟选择器 案例表示div后面的相邻的p标签*/
div + p{
color: greenyellow;
}
/* 9. 属性选择器 */
/* /*案例表示含有name属性的div标签的样式(和name属性值无关)*/
div[name]{
color: cadetblue;
}
/*案例表示含有name属性,且包含age属性的div样式*/
div[name][age]{
color: red;
}
/*案例表示含有name属性,且name的属性值为javak的div标签的样式*/
div[name="jack"]{
color: red;
}
/* 10. 伪类选择器 格式:选择器:属性{} 属性:active,focus,hover,link,visited,first-child,lang*/
/*案例表示当该标签获得焦点的时候显示边框*/
input:focus{
outline: none;
border:1px solid orange;
}
11. 伪元素选择器 格式;选择器:属性{} 属性:first-letter,first-line,before,aftre
/*案例表示第一字母的尺寸大小*/
#wakaka:first-letter{
font-size: 30px;
}
/*案例表示首位添加某字段*/
#wakaka:before{
content: '你好';
}
</style>
</head>
<body>
<div id="wakaka">我是div标签1</div>
<div class="test2">我是div标签2</div>
<div class="test2 test3 test4">我是div标签3</div>
<div name="jack" age="22">我是div标签4</div>
<div name="rose">我是div标签5</div>
<div>
<p>div里面的p标签</p>
<span>
<p>div里面的span的内部的p标签</p>
</span>
</div>
<p>div外面的p标签</p>
<input type="text">
<p class="test2">我是一个p标签1</p>
<p class="test3">我是一个p标签2</p>
<p>我是一个p标签</p>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* *表示通配符 0 */
*{
color: red;
}
/* 标签 1 */
div {
color: green;
}
/* 类 10 */
.test1{
color: blue;
}
/* 属性 10+ */
div[class]{
color: aqua;
}
/* id 100 */
#main{
color: palegreen;
}
/* important 1000 */
div {
color: palevioletred !important;
}
</style>
</head>
<body>
<div id="main" class="test1">选择器的优先级测试</div>
</body>
</html>
同一个级别选择器的针对性越强,它的优先级就越高,行内样式 > 页内样式 | 外部样式 ;页内样式 与 外部样式 的优先级别是:层叠原则和就近原则.优先级的排序:important(1000) > 行内样式(999)> id > 类 > 标签 | 伪类 | 属性选择 |伪元素 > 通配符 > 继承- 标签分类:
- 块级标签:块级标签独占一行的标签能随时设置宽度和高度(比如div、p、h1、h2、ul、li)
- 行内标签:行内标签(内联标签)多个行内标签能同时显示在一行 , 宽度和高度取决于内容的尺寸(比如span、a、label);
- 行内-块级标签:行内-块级标签(内联-块级标签)多个行内-块级标签可以显示在同一行 , 能随时设置宽度和高度(比如input、button、img)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 200px; height: 60px; background-color: red; } p{ width: 200px; height: 60px; background-color: green; } span{ width: 200px; height: 60px; background-color: blue; } a{ width: 200px; height: 60px; background-color: aqua; } input{ width: 200px; height: 60px; background-color: fuchsia; } button{ width: 200px; height: 60px; background-color: greenyellow; } </style> </head> /** 标签的类型: 1.块级标签:独占一行的标签,可以随时设置宽高(如:div,p,h1,h2,ul) ; 2.行内标签(内联标签):多个行内标签能同时显示在一行,宽高的尺寸取决于内容的尺寸(如:span,a,label) 3.行内-块级标签:多个行内-块级标签可以显示在同一行,能随时设置宽高(input,button,img)*/ <body> <!-- 块级标签--> <div>div 标签(块级标签)</div> <p>p 标签</p> <!-- 行内标签--> <span>p标签(行内标签)</span> <a href="#">a 标签(行内标签)</a> <!-- 行内-块级标签--> <input type="text"> <button>button 标签(行内-块级标签)</button> </body> </html>
- 修改标签显示的类型:CSS中有个display属性,能修改标签的显示类型:
- none:隐藏标签
- block:让标签变为块级标签,主要针对行内标签和行内-块级标签
- inline:让标签变为行内标签,主要针对块级标签
- inline-block:让标签变为行内-块级标签(内联-块级标签) 主要针对块级标签 和行内标签
- 注意:行内-块级标签只能改变成块级标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 200px; height: 60px; background-color: red; /*块级标签-->行内标签*/ display: inline; /*块级标签-->行内-块级标签*/ /*display: inline-block;*/ } p { width: 200px; height: 60px; background-color: green; /*块级标签-->行内-块级标签*/ display: inline-block; } span { width: 200px; height: 60px; background-color: blue; /*行内标签-->行内-块级标签*/ display: inline-block; } a { width: 200px; height: 60px; background-color: aqua; /*行内标签 -->块级标签*/ display: block; /*行内标签-->行内-块级标签*/ /*display: inline-block;*/ } input { width: 200px; height: 60px; background-color: fuchsia; /*行内块级标签-->块级标签*/ display: block; } button { width: 200px; height: 60px; background-color: greenyellow; /*行内块级标签-->块级标签*/ display: block; } </style> </head> <body> <!-- 块级标签--> <div>div 标签(块级标签)</div> <p>p 标签(块级标签)</p> <!-- 行内标签--> <span>p标签(行内标签)</span> <a href="#">a 标签(行内标签)</a> <!-- 行内-块级标签--> <input type="text"> <button>button 标签(行内-块级标签)</button> </body> </html>
- none:隐藏标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 100px;
height:100px;
background-color: aqua;
/*位置的显示和隐藏*/
/*!*位置依然存在*!
visibility: hidden;
!*位置不存在*!
display: none;*/
cursor: move;
color: white;
font-family: "Helvetica Neue", Helvetica, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif , Arial;
font-size: 20px;
font_weigth:300;
/*字体的装饰*/
text-decoration: line-through;
/*首行缩进*/
text-indent: 30px;
/* 水平居中*/
text-align: left;
/*背景*/
background: url("./image/0.jpg") no-repeat;
/*背景的缩放*/
background-size: 100% 100%;
}
p{
width: 100px;
height: 100px;
background-color: yellow;
}
a{
/* 字体没有装饰*/
text-decoration: none;
color: orange;
}
ul{
/* 使得LI标签没有任何样式*/
list-style: none;
}
</style>
</head>
<body>
<div>div标签</div>
<p>p标签</p>
<a href=""> a标签</a>
<ul>
<li>li-1标签</li>
<li>li-2标签</li>
<li>li-3标签</li>
</ul>
</body>
</html>
- 属性的分类:根据继承性,可以分为两大类:
- 可继承属性: 父标签的属性值会传递给子标签一般是文字控制属性
- 不可继承属性:父标签的属性值不能传递给子标签一般是区块控制属性
- 可继承属性包含:内联标签可继承父亲下面属性:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction ;块级标签可继承父亲下面属性:text-indent、text-align;列表标签可继承父亲下面属性:list-style、list-style-type、list-style-position、list-style-image等.
<!DOCTYPE html> <html lang="en"> <head> <!-- 可继承属性: 父标签的属性值会传递个子标签,一般是文字控制属性--> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 200px; height: 200px; background-color: aqua; /*可继承的属性*/ color: white; font-size: 26px; font-weight: bold; } p{ background-color: blue; } </style> </head> <body> <div> div 标签 <p>p标签是div的子标签1</p> <p>p标签是div的子标签2</p> <p>p标签是div的子标签3</p> </div> </body> </html>
- 不可继承属性包含:display、margin、border、padding、background、background-size、height、min-height、max-height、width、min-width、max-width
overflow、position、left、right、top、bottom、z-index、float、clear等.<!DOCTYPE html> <html lang="en"> <head> <!-- 不可继承属性: 父标签的属性值不能传递个子标签,一般是 区块控制属性--> <meta charset="UTF-8"> <title>Title</title> <style> div { /*不可继承属性*/ width: 200px; height: 200px; background-color: aqua; margin-top: 60px; /*可继承的属性*/ color: white; font-size: 26px; font-weight: bold; } p{ background-color: blue; } </style> </head> <body> <div> div 标签 <p>p标签是div的子标签1</p> <p>p标签是div的子标签2</p> <p>p标签是div的子标签3</p> </div> </body> </html>
- 两种盒子模型的区别:IE盒子模型:默认盒子的大小=内容+填充+边框;标准盒子模型:默认盒子的大小=内容
- 盒子(标签)的CSS属性:
- 控制内容(content)
- 控制填充(padding,内边距)
- 控制边框(border)
- 控制边界(margin,外边距)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } div{ width: 200px; height: 200px; /* 内边距*/ padding: 15px 0 0 15px; /*外边距*/ margin: 10px 0 0 10px; /*边框*/ border: 2px solid blue; background-color: aqua; /*居中*/ margin: 0 auto; /*最大最小宽度*/ max-width: 1000px; min-width: 400px; } </style> </head> <body> <div>div标签</div> </body> </html>
- RGBA透明度: RGB(红色R+绿色G+蓝色B),RGBA则在其基础上增加了Alpha通道,可用于设置透明值(0 - 1)块
- 圆角:border-radius
- 阴影:box-shadow text-shadow
- 内边框图片:border-image
- 动画: transform:
- webkit-transition 过度效果
- webkit-transform-origin 参照坐标
- webkit-transform 动画效果
- webkit-transition 过度效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
width: 120px;
height: 120px;
margin: 10px 0 10px 0;
background-color: aquamarine;
/*设置圆角*/
border-radius: 60px;
background: url("./image/0.jpg") no-repeat center center;
}
.test1 {
background-color: rgba(200, 0, 0, 8);
}
.test2 {
background-color: rgba(200, 0, 0, 6);
}
.test3 {
background-color: rgba(200, 0, 0, 4);
}
.test4 {;
background-color: rgba(200, 0, 0, 2);
}
/*伪类选择器*/
div:hover{
box-shadow: 0px 0px 10px red;
}
p{
color: orange;
font-size: 35px;
/*阴影*/
text-shadow: -3px -3px 5px yellow;
}
</style>
</head>
<body>
<div class="test1"></div>
<div class="test2"></div>
<div class="test3"></div>
<div class="test4"></div>
<p>世界那么大,我想去看看</p>
</body>
</html>