Hyper text markup language 超文本标签语言。不是一种编程语言,而是一种标记语言标记语言是一套标记标签
IE内核 | Trident |
---|---|
Firefox | Gecko |
Safari苹果浏览器 | Webkit |
Chrome | Chromium/blink |
Operapresto | presto |
html标签分类分为双标签和单标签,双标签具有嵌套关系、并列关系,如;单标签有:
、
比较特别的有:
:定义文档与外部资源的关系,最常见的用途是链接样式表
属性 | 值 | 描述 |
---|---|---|
charset | char_encoding | html5不支持 |
href | url | 规定被链接文档的位置 |
hreflang | language_code | 规定被链接文档中文本的语言 |
media | media_query | 规定被链接文档将被显示在什么设备上 |
rel | alternate\author\help\icon\licence\next\pingback\ prefetch\prev\search\sidebar\stylesheet\tag | 规定当前文档与被链接文档之间的关系 |
type | MIME_type | 规定被链接文档的 MIME 类型 |
:定义了与文档相关联的名称/值对。提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。标签位于文档的头部
<meta name="keywords" content="HTML,ASP,PHP,SQL">
<meta http-equiv="charset" content="iso-8859-1">
<meta http-equiv="expires" content="31 Dec 2008">
//这样发送到浏览器的头部就应该包含:
content-type: text/html
charset:iso-8859-1
expires:31 Dec 2008
属性 | 值 | 描述 |
---|---|---|
*content | some_text | 定义与 http-equiv 或 name 属性相关的元信息 |
http-equiv | content-type\expires\refresh\set-cookie | 把 content 属性关联到 HTTP 头部。当服务器向浏览器发送文档时,会先发送许多名称/值对。虽然有些服务器会发送许多这种名称/值对,但是所有服务器都至少要发送一个:content-type:text/html。这将告诉浏览器准备接受一个 HTML 文档 |
name | author\description\keywords\generator \revised\others | 把 content 属性关联到一个名称。比如"keywords" 是一个经常被用到的名称。它为文档定义了一组关键字。某些搜索引擎在遇到这些关键字时,会用这些关键字对文档进行分类。 |
scheme | some_text | 定义用于翻译 content 属性值的格式 |
名称 | 语义 | 例子 |
---|---|---|
标题标签 | head | , …
|
段落标签 | paragraph |
|
水平线标签 | horizon |
|
换行标签 | break |
|
div标签 |
|
|
span标签 |
|
名称 | 语义 | 例子 |
---|---|---|
粗体 | strong |
|
斜体 |
|
|
加删除线 | delete |
|
下划线 | underline |
|
属性 | 属性值 | 描述 |
---|---|---|
src | url | 图像路径 |
alt | 文本 | 图像不能显示时的替换文本 |
title | 文本 | 鼠标悬停时显示的内容 |
width | 像素(XHTML不支持%页面百分比) | 图像宽度 |
height | 像素(XHTML不支持%页面百分比) | 图像高度 |
border | 数字 | 图像边框宽度 |
属性 | 属性值 | 描述 |
---|---|---|
href | Url | 用于指定链接目标的url地址,Hypertext Reference的缩写。意思是超文本引用 |
target | self_blank | 用于指定链接页面的打开方式,其中self为默认值,blank为在新窗口中打开方式。 |
herf
1. 外部链接 需要添加 `http://`
2. 内部链接 直接链接内部页面名称即可 比如 `< a href="index.html"/>`
3. 空连接 `href="#"`
4. 锚点定位
——本页面跳转
1. 给想要跳转的标签添加id名
2. 点击可跳转id名标签所在位置锚
2.
类别 | 描述 |
---|---|
无序列表 | 各个列表项之间没有顺序级别之分,是并列的 |
有序标签 | 有排列顺序的列表,其各个列表项按照一定的顺序排列定义 |
自定义列表 | 定义列表常用于对术语或名词进行解释和描述,定义列表的列表项前没有任何项目符号。 |
//无序
<ul>
<li>列表项1li>
<li>列表项2li>
<li>列表项3li>
......
ul>
//有序
<ol>
<li>列表项1li>
<li>列表项2li>
<li>列表项3li>
......
ol>
//自定义
<dl>
<dt>名词1dt>
<dd>名词1解释1dd>
<dd>名词1解释2dd>
...
<dt>名词2dt>
<dd>名词2解释1dd>
<dd>名词2解释2dd>
...
dl>
注意:
1. 中只能嵌套- 直接在
标签中输入其他标签或者文字的做法是不被允许的。
2. - 与
之间相当于一个容器,可以容纳所有元素。
3. 无序列表会带有自己样式属性
类别 | 描述 | 语法 | ||
---|---|---|---|---|
表头标签 | 表头一般位于表格的第一行或第一列,其文本加粗居中。 用表头标签替代相应的单元格标签 |
|
||
表头标题 | caption 元素定义表格标题。 |
|
||
表格结构 | 表格可划分为头部、主体和页脚 用于定义表格的头部。必须位于 标签中,一般包含网页的logo和导航等头部信息。 用于定义表格的主体。 位于 标签中,一般包含网页中除头部和底部之外的其他内容。 |
|
<table>
<tr>
<td>单元格内的文字td>
...
tr>
...
table>
<tr>
<th>表头<th/>
tr>
<table>
<caption>表格标题caption>
table>
<table>
<thead><thead/>
<tbody><tbody>
<table/>
属性名 | 属性值 | 含义 |
---|---|---|
border | 设置表格的边框(默认border=“0”无边框) | 像素值 |
cellspacing | 设置单元格与单元格边框之间的空白间距 | 像素值(默认为2像素) |
cellpadding | 设置单元格内容与单元格边框之间的空白间距 | 像素值(默认为1像素) |
width | 设置表格的宽度 | 像素值 |
aline | 设置表格在网页中的水平对齐方式 | left、center、right |
rowspan | 数字 | 跨行合并单元格 |
colspan | 数字 | 跨列合并但管个 |
类别 | 属性 | 属性值 | 描述 |
---|---|---|---|
input | type | text | 单行文本输入框 |
password | 密码输入框 | ||
radio | 单选按钮 | ||
checkbox | 复选框 | ||
button | 普通按钮 | ||
submit | 提交按钮 | ||
image | 图像形式的提交按钮 | ||
file | 文件 | ||
name | 由用户自定义 | 控件的名称 | |
value | 由用户自定义 | input控件中的默认文本值 | |
size | 正整数 | input控件在页面中的显示宽度 | |
checked | checked | 定义选择控件默认被选中的项 | |
maxlength | 正整数 | 控件允许输入的最多字符数 | |
label | - | - | label 标签为 input 元素定义标注(标签)。 用于绑定一个表单元素, 当点击label标签的时候, 被绑定的表单元素就会获得输入焦点 |
textarea | |||
select | 下拉菜单,至少包含一对 ; 在option中定义selected="selected“ 时,当前项即为默认选中项 |
||
form | action | url地址 | |
method | Get/post | ||
name | 用于指定表单的名称,以区分同一个页面中的多个表单。 |
//label
<form>
类别 | 描述 |
---|---|
相对路径 | 以网页所在位置为参考基础,而建立出的目录路径。因此,当保存于不同目录的网页引用同一个文件时,所使用的路径将不相同,故称之为相对路径。 |
绝对路径 | 绝对路径以Web站点根目录为参考基础的目录路径。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的 |
D:\web\img\logo.gif
http://www.itcast.cn/images/logo.gif
结构的内部,即写在标签内的样式;写在标签的开始部分内部,style属性当中。
<input style="color:#ccc">
在HTML页面内部,存放于head标记当中,样式写在style标记内。
<style>选择器 {
属性名:属性值;属性名:属性值;......}style>
外联式是将所有的样式放在一个或多个以.css为扩展名的外部样式表文件中,通过标记将外部样式表文件链接到HTML文档中
<link type="text/css" rel="stylesheet" href="css/main.css" />
1) 类选择器
选择器 | 示例 | 说明 | css |
---|---|---|---|
.class | .intro{} | 选择所有class="intro"的元素 | 1 |
2) ID选择器
选择器 | 示例 | 说明 | css |
---|---|---|---|
#id | #idname{} | 选择所有id="idname"的元素 | 1 |
3) 通配符选择器
选择器 | 示例 | 说明 | css |
---|---|---|---|
* | *{} | 选择所有元素 | 2 |
4) 标签选择器
选择器 | 示例 | 说明 | css |
---|---|---|---|
element | p{} | 选择所有 元素 |
1 |
1) 后代、子代、兄弟选择器
选择器 | 示例 | 说明 | css |
---|---|---|---|
后代选择器 | div p{} | 选择
元素内的所有
元素 |
1 |
子元素选择器 | div>p{} | 选择所有父级是
元素的
元素 |
2 |
相邻兄弟选择器 | div+p{} | 选择所有紧接着
元素之后的
元素 |
2 |
2) 交集、并集选择器
选择器 | 示例 | 说明 | css |
---|---|---|---|
element.classname | div.red{} | 选择
标签并且类名为red的
元素
|
1 |
element#idname | div#blue{} | 选择
标签并且id名为blue的
元素
|
1 |
element,element | div,p{} | 选择所有
元素和
元素 |
1 |
3) 其他选择器
选择器 | 示例 | 说明 | css |
---|---|---|---|
element1-element2 | p~ul | 选择p元素之后的每一个ul元素 | 3 |
element> element:first-child | p > i:first-child{} | 匹配所有 元素中的第一个 元素 |
3 |
选择器 | 示例 | 说明 | css |
---|---|---|---|
:link | a:link{} | 选择所有未访问的链接 | 1 |
:visited | a:visited{} | 选择所有已访问的链接 | 1 |
:hover | a:hover{} | 选择所有鼠标划过的链接 | 1 |
:active | a:active{} | 选择所有已选中的链接 | 1 |
选择器 | 示例 | 说明 | css |
---|---|---|---|
:first-child | p:first-child{} | 匹配第一个 元素 |
3 |
:last-child | p:last-child | 选择每个p元素是其父级的最后一个子级。 | 3 |
:nth-child(n) | p:nth-child(2) | 选择每个p元素是其父级的第二个子元素 | 3 |
:nth-last-child(n) | p:nth-last-child(2) | 选择每个p元素的是其父级的第二个子元素,从最后一个子项计数 | 3 |
:first-child element | p:first-child i{} | 匹配所有作为第一个子元素的 元素中的所有 元素 |
3 |
选择器 | 示例 | 说明 | css |
---|---|---|---|
E::first-letter | p::first-letter | 选择每一个 元素的第一个字母 |
3 |
E::first-line | p::first-line | 选择每一个 元素的第一行 |
3 |
E::selection | p::selection | 匹配p中被用户选中或处于高亮状态的部分 | 3 |
E::before | div::before | 在div内的前面,必须有content属性,它是一个盒子 | 3 |
E::after | div::after | 在div内的后面 | 3 |
[案例]:放图片上有边框效果
div{
width:300px
height:200pc
position:relative
overflow:hidden
}
div:hover::after{
content:""
position:absolute
width:100%
height:100%
top:0
left:0
border:20px solid rgba(255,255,255,0.5)
box-sizing:border-border
}
[案例]:鼠标在元素上面时加上小图标
div{
width:300px
height:200pc
position:relative
border:1px solid #ccc
font-family:"icomoom"
}
div::before{
content:"\ea51"
position:absolute;
right:10px;
top:5px
}
选择器 | 示例 | 说明 | css |
---|---|---|---|
:focus | input:focus | 选择具有焦点的输入元素 | 2 |
:first-letter | p:first-letter | 选择每一个 元素的第一个字母 |
1 |
:first-line | p:first-line | 选择每一个 元素的第一行 |
1 |
:before | p:before | 在每个 元素之前插入内容 |
2 |
:after | p:after | 在每个 元素之后插入内容 |
2 |
:lang(language) | p:lang(it) | 选择一个lang属性的起始值="it"的所有 元素 |
2 |
:first-of-type | p:first-of-type | 选择每个p元素是其父级的第一个p元素 | 3 |
:last-of-type | p:last-of-type | 选择每个p元素是其父级的最后一个p元素 | |
:only-of-type | p:only-of-type | 选择每个p元素是其父级的唯一p元素 | 3 |
:only-child | p:only-child | 选择每个p元素是其父级的唯一子元素 | 3 |
:nth-of-type(n) | p:nth-of-type(2) | 选择每个p元素是其父级的第二个p元素 | 3 |
:nth-last-of-type(n) | p:nth-last-of-type(2) | 选择每个p元素的是其父级的第二个p元素,从最后一个子项计数 | 3 |
:root | :root | 选择文档的根元素 | 3 |
:empty | p:empty | 选择每个没有任何子级的p元素(包括文本节点) | 3 |
:target | #news:target | 选择当前活动的#news元素(包含该锚名称的点击的URL) | 3 |
:enabled | input:enabled | 选择每一个已启用的输入元素 | 3 |
:disabled | input:disabled | 选择每一个禁用的输入元素 | 3 |
:checked | input:checked | 选择每个选中的输入元素 | 3 |
:not(selector) | :not§ | 选择每个并非p元素的元素 | 3 |
:out-of-range | :out-of-range | 匹配值在指定区间之外的input元素 | 3 |
:in-range | :in-range | 匹配值在指定区间之内的input元素 | 3 |
:read-write | :read-write | 用于匹配可读及可写的元素 | 3 |
:read-only | :read-only | 用于匹配设置 “readonly”(只读) 属性的元素 | 3 |
:optional | :optional | 用于匹配可选的输入元素 | 3 |
:required | :required | 用于匹配设置了 “required” 属性的元素 | 3 |
:valid | :valid | 用于匹配输入值为合法的元素 | 3 |
:invalid | :invalid | 用于匹配输入值为非法的元素 | 3 |
选择器 | 示例 | 说明 | css |
---|---|---|---|
[attribute] | [target] | 选择所有带有target属性元素 | 2 |
[attribute=value] | [target=-blank] | 选择所有使用target="-blank"的元素 | 2 |
[attribute~=value] | [title~=flower] | 选择标题属性包含单词"flower"的所有元素 | 2 |
[attribute^=value] | a[src^=“https”] | 选选择每一个src属性的值以"https"开头的元素 | 3 |
[attribute$=value] | a[src$=".pdf"] | 选择每一个src属性的值以".pdf"结尾的元素 | 3 |
[attribute*=value] | a[src*=“runoob”] | 选择每一个src属性的值包含子字符串"runoob"的元素 | 3 |
[attribute|=language] | [lang|=en] | 选择 lang 属性以 en 为开头的所有元素 | 2 |
font: "font-style font-variant font-weight font-size/line-height font-family"
//按顺序,其中font-size和font-family的值是必需的。
相对长度单位
1. em:相对于当前对象内的字体尺寸
2. px:像素
绝对长度单位
1. in:英寸
2. cm:厘米
3. mm:毫米
4. pt:点
5. xx-small、 x-small、 small、 medium
其他单位
1. %:设置为基于父元素的一个百分比值
2. inherit:规定应该从父元素继承字体尺寸
3. smaller:设置为比父元素更小的尺寸
4. larger:设置为比父元素更大的尺寸
可以设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下一种字体
p{
font-family:"Times New Roman", Times, serif;}
用Unicode编码形式定义
p{
font-family:"\5FAE\8F6F\96C5\9ED1";}
注意:如果字体系列的名称超过一个字,它必须用引号,如Font Family:“宋体”。多个字体系列是用一个逗号分隔指明
font-style:normal // 正常显示文本
font-style:italic // 以斜体字显示的文字
font-style:oblique // 文字向一边倾斜
font-weight:normal
font-weight:bold|bolder|lighter|number(400相当于normal,700相当于bold)
font-variant:normal|small-caps //正常|小写字母
color:#FF0000
color:rgb(255,0,0)
color:red
color:rgba(255,0,0,0.7)
color:hsl(120,100%,25%) //色相-饱和度-明度
color:hsla(240,100%,50%,0.05) //色相-饱和度-明度-阿尔法
text-align:center|right|left|justify //居中|居右|居左|两边对齐
direction:ltr|rtl //从左到右|从右到左
line-height:3 //此数字会与当前的字体尺寸相乘来设置行间距
line-height:100px
line-height:200%;
居中用法:只要height=line-height
text-decorate:none|underline|overline|line-through //无装饰|顶线|下划线|中穿线
text-decorate:underline dotted red //红色虚线
text-indent:50px //首行缩进
text-shadow: h-shadow v-shadow blur color;
text-transform:capitalize|uppercase|capitalize //每个单词以大写字母开头|全大写|全小写
标签。
word-spacing:20px //字间距
解决样式冲突问题,权重相同,就近原则
子标签会继承父标签的某些样式,如字号、字体颜色
类别 | 权重(可叠加) |
---|---|
* | 0,0,0,0 |
每个标签 | 0,0,0,1 |
每个类、伪类 | 0,0,1,0 |
每个ID | 0,1,0,0 |
每个行内样式 | 1,0,0,0 |
每个!impotent | 无穷大 |
自己的优先,可忽略继承权重
background:bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial|inherit;
//多背景案例
background:url() no-repeate top left,url() no-repeate bottom right
:hover{
background-position:bottom right,top left}
background-color:#ffffff //十六进制
background-color:bule //颜色
background-color:rgb(255,0,255)
background-color:rgba(255, 0, 0,0.3)
background-image: url(bgimage.gif) //图像的URL
//线性渐变
//起始位置,起始颜色,结束颜色
background:linear-gradient(top,green,red)
background:linear-gradient(left top,green,red)
//起始位置,颜色 位置,颜色 位置
background:linear-gradient(left,green 0%,red 50%,blue 100%)
radial-gradient():径向渐变
repeating-linear-gradient():重复的线性渐变
repeating-radial-gradient():重复的径向渐变
background-repeat: repeat //重复
background-repeat: repeat-x //背景图像将在水平方向重复
background-repeat: repeat-y //背景图像将在垂直方向重复
background-repeat: no-repeat //不重复
background-attachment: scroll //默认,背景图像会随着页面其余部分的滚动而移动
background-attachment: fixed //固定
background-position:center;
background-position:left top|left center|left bottom|right top|right center|right bottom|center top|center center|center bottom //水平垂直位置,如果仅指定一个关键字,其他值将会是"center"
background-position:0% 0%|100%100%|20% //如果仅指定了一个值,其他值将是50%
background-position10px 20px //水平垂直位置,如果仅指定了一个值,其他值将是50%
background-size: length|percentage|cover|contain
//定背景图片的定位区域。图片可以放置于 content-box、padding-box 或 border-box 区域
background-origin:content-box;
css3盒模型box-sizing:border-box
,padding和border包含在宽度里面。box-sizing:content-box
是css2盒子模型
可以是一个值 padding-bottom、padding-top、padding-left、padding-right;也可以是多个值
margin:5px 5px 5px 5px //上右下左
margin:10px 5px 10px //上(左右)下
margin 10% 10% //(上下)(左右)
border:5px solid red; //边框宽度,边框样式,边框颜色
border:5px 5px 5px 5px //上右下左
border:thin medium thick //上(左右)下
border 10px 10px //(上下)(左右)
border-style:none //无样式
border-style:solid|dashed|groove|ridge //实心|虚线|3d凹槽|3d垄状
border-color:#ffffff //十六进制
border-color:bule //颜色
border-color:rgb(255,0,255)
border-color:rgba(255, 0, 0,0.3)
border-radius:2px 3px 4px 5px //四个值按顺时针顺序
border-radius:10px 10px //两个值对角线关系
border-radius:5px //四个角
border-top:5px solid red;
//同样的还有border-left、border-right、 border-bottom
可以是一个值 padding-bottom、padding-top、padding-left、padding-right;可以是多个值
margin:5px 5px 5px 5px //上右下左
margin:10px 5px 10px //上(左右)下
margin 10% 10% //(上下)(左右)
content 属性与 :before 及 :after 伪元素配合使用,来插入生成内容。
element:after{
content: "1";
}
box-shadow: h-shadow v-shadow; //水平位置|垂直位置 //均为必需允许负值
box-shadow: h-shadow v-shadow blur spread color inset|outset;
//水平位置 垂直位置 模糊距离 阴影尺寸 颜色 外部阴影|内部阴影
*{
padding:0;
margin:0;
}
宽高属性只适用于块级元素,对行内元素无效
auto表示充分满,水平居中只需要保证左右都是auto,居中的前提是盒子有宽度
margin-left:auto;margin-right:auto
margin:0,auto
margin:auto
overflow:hidden
width>padding>margin
父盒子元素下,子内容指定宽度下,如果添加border或padding或margin,宽度会被撑开,则盒子的宽度为:内容宽+border宽+padding宽+margin宽
如果加了position或浮动,margin失效。例外请看position应用
一个网页内标签元素正常从上到下,从左到右排列顺序的意思,比如块级元素会独占一行,行内元素会按顺序依次前后排列
即让一个盒子浮在上方不受标准流制约
Float:left|right
清除浮动就是把浮动的盒子圈到里面,让父盒子闭合出口和入口不让他们出来影响其他元素。
clear:left|right|both
通过在浮动元素末尾添加一个空的标签
<div style="clear:both">div>
overflow:hidden|auto|scroll
空元素的升级版,好处是不用单独加标签了
.clearfix:after{
centent:'';display:block;height:0;clear:both;visibilite:hidden}//正常浏览器
.clearfix{
*zoom:1}//ie6\7
.clearfix:before,.clearfix:after{
content:'';
display:table;
}
.clearfix:after{
clear:both;
}
.clearfix{
*zoom:1;
}
static
含义:默认定位方式
作用:取消定位
reletive
含义:以自己的左上角为基点定位
注意:可与偏移位置,但原来的位置继续占有
absolute
含义:相对于 static 定位以外的第一个父元素进行定位
情况:父级没有定位,相对于浏览器定位;父级有定位,相对于最近的父元素定位
fixed
含义:相对于浏览器窗口进行定位
注意:不占位置
父元素相对定位占位置,不会影响其他元素;子元素绝对定位不占位置,在父元素内不会影响其他子元素
//水平居中
position:absolute;
left:50%;
margin-left:-(自身元素的一半宽度)
元素添加了绝对定位和固定定位之后,元素模式也会发生转换,都转换为行内块模式,(与元素添加浮动一样的效果)
z-index:2
transition:要过渡的属性 花费时间 运动曲线 何时开始
transition:width .5s ease 0 //单个
transition:width .5s,height .5s //多组
transition:all .5s //所有
属性 | 描述 |
---|---|
transition | 简写属性 |
transition-property | 属性名称 |
transition-duration | 花费时间,默认是 0 |
transition-timing-function | 时间曲线,默认是 "ease"逐渐慢|linear匀速|ease-in加速|ease-out减速 |
transition-delay | 何时开始,默认是 0 |
//变形
E:hover{
transform:translate(100px,0)} //向下移动100px
//过渡
E{
transition:all 0.5}
居中写法
div{
position:absolute;
width:200px;
height:200px;
top:50%;
left:50%;
//以自身转移
transform:translate(-50%,-50%);
}
其他:translateY()、translateX()
transform:scale(0.6,0.8) //宽与高缩放
transform:scale(0.6) //宽与高一起缩放
其他:scaleX()、scaleY()
transform:rotate(30deg) //旋转
transform:skew(30deg,0deg)//斜切
其他:skewX()、skewY()
matrix(旋转 缩放 移动 倾斜) 六个参数
transform:matrix(0.866,0.5,-0.5,0.866,0,0)
transform-origin:right bottom //设置变形原点为右下
实例:鼠标放在元素上去有阴影
box-shadow:2 10px 20px rgba(0,0,0,0.5)
transform:translateY(-20px)
函数 | 描述 |
---|---|
matrix3d(n,n,n,n,n,n, n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵 |
translate3d(x,y,z) | 定义 3D 转化 |
perspective(n) | 定义 3D 转换元素的透视视图定义 3D 转化,仅使用用于 X 轴的值,单位可以是px |
translateY(y) | 定义 3D 转化,仅使用用于 Y 轴的值 |
translateZ(z) | 定义 3D 转化,仅使用用于 Z 轴的值 |
scale3d(x,y,z) | 定义 3D 缩放转换 |
rotate3d(x,y,z,angle) | 定义 3D 旋转定义 3D 缩放转换,通过给定一个 X 轴的值 |
rotateY(angle) | 定义沿 Y 轴的 3D 旋转 |
rotateZ(angle) | 定义沿 Z 轴的 3D 旋转定义 3D 缩放转换,通过给定一个 Z 轴的值 |
rotateX(angle) | 定义沿 X 轴的 3D 旋转 |
浏览器支持
Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 规则和 animation 属性。
Chrome 和 Safari 需要前缀 -webkit-
animation:动画名称 花费时间 运动曲线 何时开始 播放次数 是否反方向
//定义动画 move名称
animation:move 3s ease 0s
//定义关键帧
@keyframes move{
from{
};
to{
}
}
@keyframes move
{
0% {
background: red;}
25% {
background: yellow;}
50% {
background: blue;}
100% {
background: green;}
}
属性 | 描述 |
---|---|
animation-name | 规定 @keyframes 动画的名称 |
animation-duration | 花费时间 |
animation-timing-function | 速度曲线 |
animation-delay | 何时开始 |
animation-iteration-count | 播放次数,infinite表示无数次 |
animation-direction | 规定动画是否在下一周期逆向地播放。默认是 “normal”|alternate轮流反向 |
animation-play-state | 规定动画是否正在运行或暂停。默认是 “running”|paused |
animation-full-mode | 规定对象动画时间之外的状态。forwards保持最后一个属性|backwards在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)|both向前和向后填充模式都被应用 |
1、父元素添加伸缩布局
display:flex
2、子元素分配数,均分
flex:1
浏览器前缀 | 浏览器 |
---|---|
-webkit | Google Chrome,Safari,Android Browser |
-moz- | Firefox |
-o- | Opera |
-ms- | Internet Explorer,Edge |
-khtml- | Konqueror |
//隐藏之后,不再保留位置
display:none
display:block
//隐藏之后继续保留位置
visibility:visible
visibility:hidden
//管理溢出部分
overflow:visible //默认
overflow:auto //超出的时候显示滚动条
overflow:hidden //溢出隐藏
overflow:scroll //无论如何显示滚动条
//将鼠标放在元素上所显示的样式
cursor:pointer|text|move|default //小手|选择|移动||
//在元素外围,边框外围
outline:0|none //不设置
outline:1px solid red
outline-color:red
outline-style:solid
outline-width:2px
resize:none
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZXRiq5dc-1596887772829)(C:\Users\13433\AppData\Roaming\Typora\typora-user-images\image-20200719210939981.png)]
white-space:normal //默认
white-space:nowrap //强制在同一行显示所有文本 直到文本结束或者br标签
text-overflow:clip //不显示省略标记
text-overflow:ellipsis //显示省略号
与white-space配合使用
减少服务器的请求次数。拿一张图,图标放在里面,通过改变背景图的位置加载图标。
文字
background: url(./bg.png) no-repeat;
background: url(./bg.png) no-repeat right;
,适当加上padding-rightttf
、otf
、woff
、eot
、svg
网站
http://www.iconfont.cn/
http://www.iconfont.cn/
使用
fonts
文件放在目录里[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sGth3SUq-1596887772833)(C:\Users\13433\AppData\Roaming\Typora\typora-user-images\image-20200721153144104.png)]
demo.html
文件查看
应用font-family:icomoon;
独自设计
保存为svg格式
上传生成字体包 import icons
下载兼容字体包
追加新图标到原来库 import icons selection.json
文件
http://www.bitbug.net/
定义有记号的文本
度量给定范围(gauge)内的数据
<meter value="3" min="0" max="10">十meter>
属性 | 值 | 描述 |
---|---|---|
form | form_id | 规定 元素所属的一个或多个表单。 |
high | number | 规定被视作高的值的范围。 |
low | number | 规定被视作低的值的范围。 |
max | number | 规定范围的最大值。 |
min | number | 规定范围的最小值。 |
optimum | number | 规定度量的优化值。 |
value | number | 必需。规定度量的当前值。 |
标示任务的进度
<progress value="22" max="100">progress>
属性 | 值 | 描述 |
---|---|---|
max | number | 规定任务一共需要多少工作。 |
value | number | 规定已经完成多少任务。 |
//frame 定义 frameset 中的一个特定的窗口
//frameset 中的每个框架都可以设置不同的属性,比如 border、scrolling、noresize 等等。
//三列
<frameset cols="25%,50%,25%">
<frame src="frame_a.htm" />
<frame src="frame_b.htm" />
<frame src="frame_c.htm" />
frameset>
//一行两列
<frameset rows="50%,50%">
<frame src="/example/html/frame_a.html">
<frameset cols="25%,75%">
<frame src="/example/html/frame_b.html">
<frame src="/example/html/frame_c.html">
frameset>
frameset>
属性 | 值 | 描述 |
---|---|---|
frameborder | 0/1 | 规定是否显示框架周围的边框 |
longdesc | URL | 规定一个包含有关框架内容的长描述的页面。 |
marginheight | pixels | 定义框架的上方和下方的边距。 |
marginwidth | pixels | 定义框架的左侧和右侧的边距。 |
name | name | 规定框架的名称 |
noresize | noresize | 规定无法调整框架的大小。 |
scrolling | yes/no/auto | 规定是否在框架中显示滚动条。 |
src | URL | 规定在框架中显示的文档的 URL。 |
<frameset cols="25%,50%,25%">
<frame src="frame_a.htm" />
<frame src="frame_b.htm" />
<frame src="frame_c.htm" />
frameset>
属性 | 值 | 描述 |
---|---|---|
cols | pixels/%/* | 定义框架集中列的数目和尺寸。 |
rows | pixels/%/* | 定义框架集中行的数目和尺寸。 |
//定义针对不支持框架的用户的替代内容。
<noframes>
<body>Your browser does not handle frames!body>
noframes>
<canvas id="myCanvas" width="200" height="100">canvas>
<script type="text/javascript">
//创建context对象
var cxt=document.getElementById("myCanvas").getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
</script>
//直线
cxt.moveTo(10,10);
cxt.lineTo(150,50);
cxt.stroke();
//圆形
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath();
cxt.fillStyle="#FF0000";
cxt.fill();
//渐变
cxt.fillRect(0,0,175,50);
var grd=cxt.createLinearGradient(0,0,175,50);
grd.addColorStop(0,"#FF0000");
grd.addColorStop(1,"#00FF00");
cxt.fillStyle=grd;
2) figure&figcaption
标签定义 figure 元素的标题(caption)
<figure>
<figcaption>标题figcaption>
figure>
<audio src="someaudio.wav"></audio>
格式 | IE 9 | Firefox 3.5 | Opera 10.5 | Chrome 3.0 | Safari 3.0 |
---|---|---|---|---|---|
Ogg Vorbis | YES | YES | YES | ||
MP3 | YES | YES | YES | ||
Wav | YES | YES | YES |
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 自动播放 |
controls | controls | 显示控件 |
loop | loop | 循环播放 |
muted | muted | 规定视频输出应该被静音 |
preload | preload | 音频在页面加载时进行加载,并预备播放。如果使用 “autoplay”,则忽略该属性 |
src | url | 音频的 URL |
允许您规定可替换的视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
audio>
属性 | 值 | 描述 |
---|---|---|
media | media query | 媒体资源的类型 |
src | url | 媒体文件的 URL |
type | numeric value | 资源的 MIME 类型 |
用于规定字幕文件或其他包含文本的文件,当媒介播放时,这些文件是可见的
<video width="320" height="240" controls="controls">
<source src="forrest_gump.mp4" type="video/mp4" />
<source src="forrest_gump.ogg" type="video/ogg" />
<track kind="subtitles" src="subs_chi.srt" srclang="zh" label="Chinese">
<track kind="subtitles" src="subs_eng.srt" srclang="en" label="English">
video>
属性 | 值 | 描述 |
---|---|---|
kind | caption chapters descroptions metadata subtitles | 轨道类型 |
label | label | 轨道的标签或标题 |
srclang | language_code | 轨道的语言,若 kind 属性值是 “subtitles”,则该属性必需的 |
<video src="movie.ogg" controls="controls">video>
格式 | IE | Firefox | Opera | Chrome | Safari |
---|---|---|---|---|---|
Ogg | No | No | |||
MPEG 4 | No | No | No | ||
WebM | No | No |
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 自动播放 |
controls | controls | 显示控件 |
height | pixels | 视频播放器的高度 |
loop | loop | 循环播放 |
muted | muted | 视频的音频输出被静音 |
poster | URL | 规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像 |
preload | preload | 规视频在页面加载时进行加载,并预备播放。如果使用 “autoplay”,则忽略该属性 |
src | url | 视频 URL |
width | pixels | 视频播放器的宽度 |
header、footer、nav、section、article、aside、detail、 dialog、summary
Input type | IE | Firefox | Opera | Chrome | Safari |
---|---|---|---|---|---|
No | 4.0 | 9.0 | 10.0 | No | |
url | No | 4.0 | 9.0 | 10.0 | No |
number | No | No | 9.0 | 7.0 | No |
range | No | No | 9.0 | 4.0 | 4.0 |
Date pickers | No | No | 9.0 | 10.0 | No |
search | No | 4.0 | 11.0 | 10.0 | No |
color | No | No | 11.0 | No | No |
属性 | 值 | 描述 |
---|---|---|
max | number | 规定允许的最大值 |
min | number | 规定允许的最小值 |
step | number | 规定合法的数字间隔(如果 step=“3”,则合法的数是 -3,0,3,6 等) |
value | number | 规定默认值 |
属性 | 值 | 描述 |
---|---|---|
max | number | 规定允许的最大值 |
min | number | 规定允许的最小值 |
step | number | 规定合法的数字间隔(如果 step=“3”,则合法的数是 -3,0,3,6 等) |
value | number | 规定默认值 |
- date - 选取日、月、年
- month - 选取月、年
- week - 选取周和年
- time - 选取时间(小时和分钟)
- datetime - 选取时间、日、月、年(UTC 时间)
- datetime-local - 选取时间、日、月、年(本地时间)
定义下拉列表
//与input配合使用;list属性绑定
<input id="myCar" list="cars" />
<datalist id="cars">
<option value="BMW">
<option value="Ford">
<option value="Volvo">
datalist>
定义输出一些类型
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
<input type="range" id="a" value="50">100
+<input type="number" id="b" value="50">
=<output name="x" for="a b">output>
form>
属性 | 值 | 描述 |
---|---|---|
for | element_id | 定义输出域相关的一个或多个元素。 |
form | form_id | 定义输入字段所属的一个或多个表单。 |
name | name | 定义对象的唯一名称。(表单提交时使用) |
//打包表单内容生成一组字段
<form>
<fieldset>
<legend>health informationlegend>
height: <input type="text" />
weight: <input type="text" />
fieldset>
form>
属性 | 值 | 描述 |
---|---|---|
form | form_id | 规定 fieldset 所属的一个或多个表单。 |
name | value | 规定 fieldset 的名称。 |
autofocus
//自动获取焦点
<input type="text" autofocus="autofocus" />
form
//规定输入域所属的一个或多个表单,必须引用所属表单的 id
<form id="user_form">
First name:<input type="text"/>
<input type="submit" />
form>
Last name: <input type="text" form="user_form" />
height & width
//规定用于 image 类型的 input 标签的图像高度和宽度
<input type="image" src="img_submit.gif" width="99" height="99" />
list
//规定输入域的 datalist
<input type="url" list="url_list"/>
<datalist id="url_list">
<option label="W3Schools" value="http://www.w3school.com.cn" />
<option label="Google" value="http://www.google.com" />
datalist>
multiple
//规定输入域中可选择多个值.email 和 file
<input type="file" name="img" multiple="multiple" />
placeholder
required
<input type="text" name="usr_name" required="required" />
什么是SVG
SVG的优势
画布与SVG
SVG
SVG 是一种使用 XML 描述 2D 图形的语言。
SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。
在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。
Canvas
Canvas 通过 JavaScript 来绘制 2D 图形。
Canvas 是逐像素进行渲染的。
在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。
比较
Canvas
依赖分辨率
不支持事件处理器
弱的文本渲染能力
能够以 .png 或 .jpg 格式保存结果图像
最适合图像密集型的游戏,其中的许多对象会被频繁重绘
SVG
不依赖分辨率
支持事件处理器
最适合带有大型渲染区域的应用程序(比如谷歌地图)
复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
不适合游戏应用
实例
<script>
var x=document.getElementById("demo");
//如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息
//如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象
//showPosition() 函数获得并显示经度和纬度
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{
x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"
Longitude: " + position.coords.longitude;
}
</script>
处理错误和拒绝
//getCurrentPosition() 方法的第二个参数用于处理错误
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML="The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML="An unknown error occurred."
break;
}
}
在地图中显示结果
//如需在地图中显示结果,您需要访问可使用经纬度的地图服务,比如谷歌地图或百度地图
function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;
var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";
document.getElementById("mapholder").innerHTML="";
}
getCurrentPosition()
属性 | 描述 |
---|---|
coords.latitude | 十进制数的纬度 |
coords.longitude | 十进制数的经度 |
coords.accuracy | 位置精度 |
coords.altitude | 海拔,海平面以上以米计 |
coords.altitudeAccuracy | 位置的海拔精度 |
coords.heading | 方向,从正北开始以度计 |
coords.speed | 速度,以米/每秒计 |
timestamp | 响应的日期/时间 |
在客户端存储数据
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。
localStorage——没有时间限制的数据存储
<script type="text/javascript">
localStorage.lastname="Smith";
document.write(localStorage.lastname);
script>
sessionStorage——针对一个 session 的数据存储,当用户关闭浏览器窗口后,数据会被删除
<script type="text/javascript">
sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);
script>
使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本
什么是应用程序缓存(Application Cache)——用户可在应用离线时使用它们
Cache Manifest 实例
<html manifest="demo.appcache">
<body>
The content of the document......
body>
html>
Cache Manifest 基础
如需启用应用程序缓存,请在文档的 标签中包含 manifest 属性
每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。
manifest 文件的建议的文件扩展名是:".appcache"。
请注意,manifest 文件需要配置正确的 MIME-type,即 “text/cache-manifest”。必须在 web 服务器上进行配置。
Manifest 文件
manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)
manifest 文件可分为三个部分:
CACHE MANIFEST
【必要】在此标题下列出的文件将在首次下载后进行缓存
//列出了三个资源:一个 CSS 文件,一个 GIF 图像,以及一个 JavaScript 文件。当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件
CACHE MANIFEST
/theme.css
/logo.gif
/main.js
NETWORK
NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
//规定文件 "login.asp" 永远不会被缓存,且离线时是不可用的.*表示所有文件
NETWORK:
login.asp
FALLBACK
在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)
//规定如果无法建立因特网连接,则用 "offline.html" 替代
FALLBACK:
/html5/ /404.html
更新缓存
一旦应用被缓存,它就会保持缓存直到发生下列情况
[实例]
CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.asp
FALLBACK:
/html5/ /404.html
以 “#” 开头的是注释行,但也可满足其他用途。应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。
一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新 manifest 文件。
注释:浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)
HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新
多个标签
div*3
父子标签
ul>li
并列标签
div+p
类名标签
div.nav
其他
inout:text
//常见标签
~、
、
、、、-
//特点
- 从新行开始
- 高度、行高、外边距、内边距可以控制
- 宽度默认是容器的100%
- 可以容纳内联元素和其他块元素
inlne
//常见标签
、、、、、、、、、
//特点
- 仅靠自身字体大小和图像尺寸支撑
- 一般不可以设置宽度、高度、对齐等属性
- 常用于控制页面内文本的样式
inline-block
//常见标签
、、
//特点
- 和相邻行内块在一行上,之间会有**空白缝隙**
- 默认宽度是本身内容宽度
- 高度、行高、外边距、内边距可以控制
【版心与布局】
常见的有960px、980px、1000px、1200px
布局流程
- 确定版心(可视区域\安全宽度)
- 分析行模块与列模块
常见布局
- 一列固定宽度且居中
- 两列左窄右宽
- 通栏平均分布
你可能感兴趣的:(前端必备知识,html,html5,css,css3)