# HTML+CSS **Repository Path**: shhyx007/html_css ## Basic Information - **Project Name**: HTML+CSS - **Description**: 这是用于存储1190801-02班静态网页教学资料的项目 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-02-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HTML+CSS #### 介绍 这是用于存储1190801-02班静态网页教学资料的项目 ##《制作静态网站》 + 网站 + 静态网站 1、一般内容都是写好固定的 2、不需要服务器 3、维护方式,在本地修改,上传到服务器 4、交互性差,登录、注册、查询 5、对搜索引擎支持比较好 ,快 + 动态网站 1、动态网站是写好了结构,显示什么内容是由服务器决定的 2、依赖服务器的 3、修改服务器的数据就可以了 4、交互性好 5、对搜索引擎支持不太好,查询字符串 + 前端网络工程师 ![就业方向](http://tj.tedu.cn/xzt/web1/img/p1-img1.jpg) ![企业需要](http://tj.tedu.cn/xzt/web1/img/p1-img2.jpg) + 前端工程师基础技能 + HTML /HTML5 搭建网页界面结构 + CSS / CSS3 网页布局、美化修饰 + ES6 /JavaScript 网页动态、交互 ## 一、HTML定义 + HTML(超文本标记语言——HyperText Markup Language)是构成 Web 世界的一砖一瓦。它定义了网页内容的含义和结构。除 HTML 以外的其它技术则通常用来描述一个网页的表现与展示效果(如 CSS),或功能与行为(如 JavaScript)。 + 网页文件扩展名: .html .htm + HTML网页基本结构 + 标签不能位置要注意,不能嵌套 markdown 标记语言 ```html html5文档类型声明 标签 双标签 、单标签 元素 大小写不敏感,建议小写 给浏览器提供的信息 字符集声明,定义编码格式语言支持,没有可能乱码 SEO 搜索引擎优化 网页标题 浏览器中展示给人看的内容 标签能被浏览器解析,显示出该有的样子 ``` ## 二、块级元素和行内元素 + 1.块级元素 h1-h6,p hr div ul/ol/dl + 2.行内元素 img a span label button input + 3.块级元素独占一行,行内元素在同一行显示 + 4.块级元素的默认宽度为100%,行内元素的宽度由内容撑开 + 5.块级元素能设置宽高,行内元素宽高靠内容撑开 + 6.块级元素和行内元素只是浏览器默认的样式,不是绝对一成不变的,是可以通过display属性转换的 ### 二/1 常用块级元素 #### 1、标题 + h1-h6 6个级别 + 属性:align #### 2、段落 + p + 段落中的空行和多个空格不能被识别,只能识别成一个空格 #### 3、img 图片 行内块 + 必须属性 src + 其他属性:alt title width alt给搜索引擎提供信息 + 相对路径: + .\ 表示当前目录 直接写 或者写 + \ 表示下一级 + ..\ 表示上一级目录下 #### 4、hr 水平线 + 属性:color width height #### 5、表格 原来早期网页设计使用表格布局,先在都是用div,表格只是展示数据了 + table 表格 + caption 表标题 + thead 表格头部 可省略 + tbody 表格主体 可省略 + tfoot 表格底部 可省略 + tr 行 + th 表头行 跟td的区别就是字体加粗了 可以省略 + td 单元格 + 属性: + 合并列 colspan + 合并行 rowspan + 其他属性可以用css设置 ```html
打款发货的理发店 打款发货的理发店 打款发货的理发店
打款发货的理发店 打款发货的理发店 打款发货的理发店
打款发货的理发店 打款发货的理发店 打款发货的理发店
``` #### 6、列表 列表项内部可以使用段落、换行符、图片、链接以及其他列表等等 + 无序列表 ul + 用来显示无序的多项信息,有时候也会用来导航布局 + 子元素li + 属性:type square / circle /none ```html ``` + 有序列表 ol + 列表项目使用数字进行标记 + 子元素li + 属性:type number a/A /I/i + start 从几开始 + reversed 倒序 属性名和值相等,只写属性名 ```html
  1. html
  2. css
  3. javascript
    1. vue
    2. react
    3. angular
``` + 自定义列表 dl + 自定义列表不仅仅是一列项目,而是项目及其注释的组合。 + 子元素 dt dd ```html
Coffee
Black hot drink
Milk
White cold drink
``` #### 7、表单 + HTML 表单用于收集不同类型的用户输入。所有的表单项都写在form 标签中 form是块级元素,input是行内元素 + 属性: + name 表单名称 + action 提交的地址 + method 提交的方法 + get 默认值 + post + get和post的区别: + 1.get提交数据不安全,信息会在地址栏中显示,post相对安全 + 2.get提交的数据有限制,最大为2kb,post理论上数据没有限制 + input 输入域 多数情况下被用到的表单标签是输入标签(input)。属性除了type还有name value 输入类型是由类型属性(type)定义的。大多数经常被用到的输入类型如下: + 文本框 + type='text' + name 是你自己给你要收集的数据定义的一个属性名,将来会上报给服务器 + value 两个作用,1、设置初始值,2、收集你输入的值 + placeholder="" 默认提示 + 密码框 + type='password' 页面上密文显示输入内容,同样有name value + 单选框 + type= 'radio' 同组的单选按钮要有相同的name属性和不同的value值 + checked 单选按钮和多选按钮默认被选中 + 复选框 + type="checkbox" + 单选按钮和多选按钮默认被选中 checked + 提交文件 + type='file' + 提交重置按钮 + 两种方法设置按钮 一种是input标签 另一种使用button标签 关键是type类型 + type="submit" + type= 'reset' + type = 'button' 普通按钮没有特殊功能,可以利用js设置功能 + 下拉列表 select + name 属性 + selected 定义预选项 + 配合子元素 option value + 更多选项可以将选项分组 optgroup label属性设置分组的名称 + 多行文本框 textarea + 主要属性 :row clo 行列数 指的每行列允许输入的字符数 + 将表单项分组 用一个外框包裹 + fieldset标签 将分组的表单项放在其中 + legend 可以添加说明标题 #### 8、其他块级标签 + br 强制换行 + div 布局重器 盒子模型后期介绍 ### 二/2 常见行内元素 #### 1、文本格式化标签 ```html 加粗 倾斜 现在不在用它来定义倾斜,好多时候用它来定义一些字体图标 下划线 强调 强调 上标 下标 2 3 删除线 删除线 小号字体 大号字体 插入内容
预格式文本
预格式文本 ``` #### 2、HTML链接 + a 链接 + 属性: + 必须属性href 跳转的地址,可以是网页地址,当前网页位置,或者项目目录中其他网页 + 其他属性: + target _self默认值,当前窗口打开 _blank新窗口打开 + id(可以定义锚点,配合href = '#id' ) + download 下载指定文件 + 标签中可以包含文字,也可以包含图片 #### 3、实体字符 + 空格   +
< 
&lt; +
> 
&gt; + ©版权 &copy; + ### CSS定义: + a) 层叠样式表,Cascading Style Sheets + 文件后缀 .CSS + 作用:用来定义HTML元素的样式,比如定义元素的位置,大小,颜色等 + 实现了内容与表现的分离 + 提高了代码的重用性和可维护性 + 一个CSS文件可以被对个HTML文件引入 + 一个HTML文件可以引入多个CSS文件 ### CSS基本语法:选择器{ 属性名:属性值; 属性名:属性值;………} + 用选择器选中想要设置样式的某个元素 + 用大括号包裹样式键值对 + 属性名与属性值之间用冒号分开 + 一对属性键值对后面要加分号 ### 引入CSS几种方式 + 1)行内样式(内联样式) 只对当前元素起作用 ```

这是一个段落。

``` + 2)内部样式 只对当前页面起作用,适合代码量较少的局部样式设置 ```html ``` + 3)外部样式 提高了代码的重用性和可维护性,实现了内容与结构完全分离 ```html ``` ### 基本选择器 + 1)全局选择器,通用选择器 * + 选中网页所有元素,一般用于重置浏览器默认样式,但这样做会增加浏览器性能消耗,不推荐 + 2)元素选择器 DIV A IMG B P SPAN UL LI TABLE INPUT + 选中所有指定的元素 + 3)类选择器 + CLASS名字可以重复,CLASS名字可以起多个,用空格隔开 + 适合选择某一类具有相同样式的元素 + class名不能用数字开头,可以用下滑线或者短横线,不适合用驼峰名命 ```html
``` ```html ``` + 4)ID选择器 + ID名字唯一 + 适合为某个单一的元素设置特有属性 ```html
``` + 选择器优先级(权重): + 选择范围越广的选择器,优先级越低,渣男的爱不值钱,越专一越珍贵 + 行内样式>ID选择器>类选择器>元素选择器>全局选择器 + 权重: 1000 100 10 1 1 + 这个上面的值只是一个示意,十个类标签加起来也不如id优先级高 + 优先级最高的是 !important + 优先级相同,后面的代码生效 + 5)合并选择器(分组选择器) + 选择器1,选择器2,...{} + 提取共同样式,精简代码数量 ### 组合选择符
   空格:  后代
   >   :  子代
   +   :  相邻兄弟     兄弟表示平级    选中后面的第一个指定的兄弟元素
   ~   :  通用兄弟	  选中后面的所有指定的兄弟元素
   
   
### Css基础样式 + 文本属性 + 字体属性 + 列表样式 + 背景属性 + 1、 文本属性 + 文本颜色:color 颜色关键字,十六进制颜色,rgb颜色 rgba颜色 + 单词间隔:word-spacing 识别单词,增加单词间距 + 字符间隔:letter-spacing 字 或 者 字母之间增加间距 + 行间距:line-height 单行居中 + 文本缩进:text-indent 可以负值 百分比 + 文本水平对齐:text-align 默认值left ,center right + 转换大小写:text-transform uppercase大写 lowercase小写 capitalize首字母大写 + 文本修饰:text-decoration none/underline/overline/line-through + 处理空白字符: white-space 默认:normal 常用来设置禁止换行nowrap + 溢出处理:overflow:默认:visible hidden 、scroll、aotu + 文本溢出处理:text-overflow clip/ellipsis(省略号) + 经常用上面三个样式处理超长标题省略号处理,注意要给父元素设置 + 2、 字体属性 + 字体风格:font-style 默认normal 设置斜体:italic + 指定字体:font-family:微软雅黑,宋体,楷体 有些特殊字体无法识别,常用的放在后面 + 字体大小:font-size:使用单位:绝对值px ,cm/mm,移动端:相对值em,rem 根据父元素或者html的字体大小折算 + 字体粗细:font-weight bold 加粗,100-900 + 字体设置可以缩写:font:font-style font-weight font-size/line-height font-family + 3、 列表样式 + 列表默认会有上下的margin,和左侧的padding,每个li还有个圆点标记 + 无序列表: + • list-style-type none不使用项目标记/disc实心圆/circle空心圆/square(s快儿)实心方块 + • list-style-position outside和inside 标记在文本之外/之内 + • list-style-image 只有一个属性:url(“图片路径”) + 有序列表:默认是数字 + ol.upper-roman {list-style-type:upper-roman;} 大写罗马数字 + ol.lower-alpha {list-style-type:lower-alpha;} 小写英文字母 + 4、 背景属性 + 背景颜色:background-color: 关键字/十六进制/rgb/rgba,同时设置了背景图片,则背景颜色不起作用 + 背景图片:background-image:url(“图片路径”) + 背景图片位置:background-position: 关键字/百分比/xpos ypos 应用场景:雪碧图 + 背景图片平铺:background-repeat: 默认repeat平铺 repeat-x / repeat-y / no-repeat + 背景图片不滚动:background-attachment: fixed + 缩写:background:bg-color bg-image position/bg-size bg-repeat bg-attachment ### 属性选择器: + 标签选择器【属性名】 + 使用中括号来说明是一个属性,可以根据某个属性来选中元素 + 如果中括号中只有一个属性名如:[title]表示选中所有包含这个属性的元素 + [title=xxx] :表示选中所有包含title属性且属性值与xxx完全一致的所有元素 + a[href][title] :选中同时有 href 和 title 属性的 HTML 超链接 + p[class~="important"] : 选择 class 属性中包含 important 的p元素 + [abc^="def"] : 选择 abc 属性值以 "def" 开头的所有元素 + [abc$="def"] : 选择 abc 属性值以 "def" 结尾的所有元素 + [abc*="def"] : 选择 abc 属性值中包含子串 "def" 的所有元素 ### 伪类选择器: + 能被浏览器识别的特殊选择符,用来定义元素在某种状态、行为或者特性下的样式, + 类选择器用点表示,伪类选择器用冒号表示 + 链接的伪类:用来设置a标签不同状态下的样式 + 四个状态,在设置的时候要注意顺序,否则不生效 + a:link {text-decoration:none;} 没被点击之前的样子 + a:visited {text-decoration:none;} 点击过后的样子 + a:hover {text-decoration:underline;} 鼠标经过链接时的样子(悬停) + a:active {text-decoration:underline;} 鼠标点下时候,没抬起来的样子 + input 框的伪类 + input:focus {} input 用于设置获取到焦点后的样式 + 结构伪类 + 选择某个元素的第一个子元素::first-child + 选择某个元素的最后一个子元素::last-child + 选择某个元素的第n个子元素::nth-child(n) 2n /2n-1 /odd/even 3n等 + 选择某个元素的第n个指定的子元素:nth-of-type(n)(父元素包含多个不同子元素时) ### 伪元素选择器 + 是每个元素都有的三头六臂 + ::表示一个伪元素 + ::before + ::after + content:''必须有,否则看不到 ,如需添加文本,可以写在content中 + 默认是行内元素,也可以转换成块级元素,来设置宽高。 + 配合定位可以更灵活 ### 盒子模型 #### 1、border (边框) + 边框样式: border-style:solid ; 实线 dotted(点状线)dashed (虚线) double(双线) + 边框宽度: border-width: 1px; + 边框颜色: border-color: + 可以缩写成 border:1px solid #000 + 如果只设置一个样式:border:solid 默认是黑色的边框,宽度3.3333px + 上面是设置四个边框,也可以单独设置每个边框 + border-top:3px solid #00FF00; + border-left: 3px dotted #0077AA; + border-bottom: 3px dashed #990055; + border-right: 3px double #EE9900; + border-radius 边框半径 + 可以设置四个值,分别是左上角、右上角、右下角、左下角的边框半径 + 也可以设置两个值:第一个值(左上角、右下角)第二个值(右上角、左下角) + 也可以设置一个值:表示四个角都是这个半径 #### 作业 + 方形、圆形、椭圆形、三角形、梯形的几何形状绘制 #### 2.margin 外边距 正值,负值,auto 值设置可以是相对值也可以是绝对值 + 盒子距盒子的距离 + 透明的 + margin:value; 四周 + margin:value value; 上下 左右 + margin:value value value; 上 左右 下 + margin:value value value value; 上 右 下 左 + 可以单独设置margin + margin-top:; + margin-bottom:; + margin-left:; + margin-right:; + 注意: + 1)外边距合并 + 垂直方向上,外边距相撞时,取较大值 + 水平方向上,外边距不合并,两个外边距累加(div浮动后不合并) + 行内元素的外边距只对左、右起作用。 + 2)第一个块级子元素margin-top问题解决 + 1.父元素加overflow:hidden; + 2.父元素或者子元素浮动 + 3.父元素加border:1px solid transpartent; + 4.父元素加padding-top:1px; #### 3.实际宽度:width+padding+border+margin + 1.content(内容) + 块级元素 + content大小 就是你设置宽度、高度的大小,如果内容过多,会在垂直方向超出显示 + 如果不设置高度,content则会被内容撑开,很多时候我们不设置高度 + 行内元素 + 行内元素设置宽高不生效,宽高靠内容撑开 #### 4.padding 内边距 + padding:value; 四周 + padding:value value; 上下 左右 + padding:value value value; 上 左右 下 + padding:value value value value; 上 右 下 左 + + padding-top:; + padding-bottom:; + padding-left:; + padding-right:; + background-clip:(指定背景色区域)默认值:border-box /padding-box/content-box + 注意 + 不能取负值和auto + padding会撑大容器 + 内容距边框的距离 + 行内元素的内边距对左、右、下起作用。 #### 5.IE盒模型 + 组成部分:content+padding+border+margin + 实际宽度:width+margin + width包含了border和padding #### 6.盒模型转换 + box-sizing:content-box; 默认值,标准盒模型 + box-sizing:border-box; IE盒模型 ### 浮动 + 浮动:左浮动和右浮动 ```htnl float :left /right ``` + 块级元素独占一行,行内元素在一样显示 :遵循文档流 + 1、浮动以后脱离文档流(在文档中的位置失去了,会重叠),水平排列 + 2、浮动后碰到父元素的边界或者其他浮动元素停止 + 3、浮动起来的元素只有一个层 + 4、浮动后所有的元素变成块级元素 + 5、右浮动会导致顺序问题 + 6、所有子元素都浮动或者绝对定位以后,父元素如果没有设置固定高度,高度会丢失(高度塌陷) 需要清除浮动(给父元素找回高度) + 1)在受影响的元素后面加个空的div,给他设置clear:both; /*清除浮动*/ + 2)给受影响的父元素加overflow属性 + 3)给受影响的父元素加display: flow-root; /*能让父元素感知到子元素的高度*/ + 4) 给受影响的父元素加after 伪类,给伪类设置display:bloac; clear:both; ### 定 位 position + 相对定位:relative + 定位以后不脱离文档流,他原来在文档里位置不丢失 + 定位的基准:基准就是他原来自己的位置 + position:relative + 配合定位的四个属性 top bottom left right + 相对定位可以作为绝对定位的基准。 + 绝对定位: + 定位以后脱离文档流,他原来在文档里位置丢失 + 理解成浮动起来了,它本身的层级也会提高 + 定位的基准: + 1、他会在父元素中逐级向外去寻找,找有没有设置相对定位或者绝对定位,如果找到了,就会以找到的元素作为定位的基准 + 2、没找到,根据我们浏览器窗口进行定位 + 绝对定位:position:absolute + 配合定位的四个属性 top bottom left right 可以给负值,负值就是想相反的方向移动 + 如果不设置高度或者宽度,可以根据上面这四个值获取宽高度 + 利用绝对定位来居中 + 1、不设置子元素宽高,然后可以设置他的四个边的距离一样,使元素居中 + 2、设置了元素宽高度,可以设置四个值都为0,然后加上margin:auto + 固定定位 + position:fixed + 定位以后,不随着网页滚动而变化位置,固定在页面上 + 父元素定位不影响他 + 定位以后脱离文档流,原来的位置丢失了 + 定位基准 :是浏览器的窗口左上角 + 配合定位的四个属性 top bottom left right + 粘性定位 + position:sticky + 基于浏览器滚动的位置,到那个位置就会不动 + 定位以后原位置保留的 + 必须配合top left right bottom其中一个才能生效 + 堆叠顺序 + 1、必须是配合position 定位来使用,relative absolute fixed sticky + 2、如果元素设置了定位,默认有个属性 z-index = 0 + 3、取值越大,越靠上 ### 弹性盒布局 + 布局的时候非常方便 + 给父元素加的属性 + 1、声明弹性盒模型 display: flex + 2、设置主轴方向: + flex-direction: column /row /row-reverse /column-reverse; + 3、主轴方向对齐方式 + justify-content: flex-start / flex-end /center; + 4、主轴方向分布方式 + justify-content: space-between /space-around /space-evenly + 5、副轴的对齐方式 + align-items: flex-start / flex-end /center; + 弹性盒默认所有元素会在一行显示,如果所有子元素的宽度和超过父元素宽度,会被压缩在父元素的宽度内 + 6、设置弹性盒换行 : + flex-warp:nowrap / wrap(换行) + 7、当多行的时候设置对齐方式 + align-content:space-between /space-around /space-evenly /flex-start / flex-end /center + 8、flex-flow (了解) + flex-direction flex-wrap这两个属性的缩写 + flex-flow:column wrap /row wrap + 给子元素加的属性 + 1、当子元素没有填满父元素的时候可以让他填满 + flex-grow : 默认0表示不扩展 值表示一个扩展和压缩的比率,可以整数也可以小数 + 2、当子元素宽度超过了父元素的宽度,默认在一行显示,并且把所有的子元素沿着主轴方向进行压缩 + flex-shrink : 默认1表示压缩宽度或者高度 ,值表示一个扩展和压缩的比率,可以整数也可以小数 + 3、基本尺寸 (相当于设置了一个主轴上的尺寸,他比width或者height的级别要高) + flex-basis 默认值是auto 可以设置子元素的宽度或高度的基本尺寸, + 权重(生效程度) max-widtn > flex-basis > width + flex:flex-grow flex-shrink flex-basis + 默认值:flex:0 1 auto ### 变换 transform css3 + 2d translate 偏移 + 值可以是固定的px,也可以百分比 + tanrsform:translateX() + 沿着X轴水平方向进行偏移 + 正值向右偏移负值向左偏移 + tanrsform:translateY() + 沿着Y轴水平方向进行偏移 + 正值向下偏移负值向上偏移 + 简写方式:transform: translate(Xpot,Ypot);中间的值之间要有逗号 + 2d rotate 旋转 + transform:rotateX() rotateY() rotateZ() rotate() + transform-origin(X Y) + 用来设置源点,默认值center + 可以使用百分比,固定值,还有top、left、bottom、right、center来设置 + 允许负值,负值就是向左、向上,偏移 + 偏移源点也可以设置到元素外面,大回环旋转 + 2D scale() 缩放 + transform:scaleX(),scaleY() + 这里设置的数值是缩放的比例,1表示原有比例,小于1表示缩小,大于1表示放大,可以设置小数 + transform:scale(X,Y)简写方式,XY可以单独设置,也可以设置成相同的值,XY相同值可以只写一个 + 2d skew() 斜切 变换中的3d属性: + perspective: 500px;/*全局透视*/ + transform:perspective(500px) rotateY(45deg);/*单独透视*/ + transform-style: preserve-3d;/*设置3d模式,看3d 电影,戴眼镜,不带这个眼镜没有3d效果*/ + 3d translateZ() + translate3d(-50%,-50%,200px) 简写:同时设置xyz的值 + rotate3d(x,y,z,angle) transition 过渡 (这是四个属性的简写方式) + transition-duration /过渡时间 .3s 2s 必需值 + transition-property /过渡的属性 width,height 多个属性要加逗号 all表示所有属性 + transition-timing-function /过渡的时间曲线 linear匀速 ease(默认值)ease-in (先快后慢) ease-out(先慢后快) + transition-delay /过渡的延迟 帧动画 + 1、创建动画: + + @keyframes 动画名 { form { 以什么状态开始 } to { 以什么状态结束 } } + 2、应用动画 + animation: 动画名 时间 延迟 。。。 + animation-name :动画名 可以添加多个动画,如果有多个动画。要用逗号分开 + animation-duration: 动画过渡时间;如果有多个动画。要用逗号分开,单独设置时间 + animation-iteration-count:动画的次数,可以使用数字,表示动画的次数,infinite 一直走 + animation-timing-function:时间的曲线 , linear匀速 ease(默认值)ease-in (先快后慢) ease-out(先慢后快) steps()分步运行 + animation-direction:动画方向(执行代码的方向)normal/reverse / alternate(交替必须迭代次数超过一次才有效)/ alternate-reverse; + animation-fill-mode: forwards;/*动画完毕后停到最后一帧*/ + animation-delay: 动画延迟,也是写秒或者毫秒 s/ms 当使用缩写的时候要放在第二个时间; + filter: + grayscale(1) 灰度,0-1 + blur(5px); 模糊 具体的像素 背景渐变 + 线性渐变 backgroud-image:linear-gradient + 方向:to left /right/bottom .. 也可以用角度值控制,最后加逗号, + 颜色之前要用逗号分开 ``` html background-image: linear-gradient(45deg ,#8bc34a 0px,#8bc34a 20px, #4caf50 20px, #4caf50 40px); ``` + 重复的线性渐变 :background-image: repeating-linear-gradient ``` html background-image: repeating-linear-gradient(45deg ,#8bc34a 0px,#8bc34a 20px, #4caf50 20px, #4caf50 40px); ``` + 径向渐变 background-image:radial-gradient() ``` html background-image:radial-gradient(circle at 250px 0px ,#ff0000,#ffff00,#000); ``` 视频: 标签:video 属性 : + width height 不加单位,默认是px + controls 播放时候用的控件 ,属性名与属性值相同,可以只写controls + autoplay 是自动播放,但是加这个属性并不能真的在网页加载的时候自动播放,要配合muted使用时才可以自动播放 + muted 静音 + poster 视频的封面图片 + loop :循环播放 音频 : 标签名 : 属性 : + controls 播放时候用的控件 ,属性名与属性值相同,可以只写controls + autoplay 是自动播放,但是加这个属性并不能真的在网页加载的时候自动播放,要配合muted使用时才可以自动播放 + muted 静音 + loop :循环播放 ## JavaScript ### 基础入门 : + js的引入方式: + 1、内部脚本 写在body结束标签前,也就是让页面的dom元素都加载外再执行脚本 + 2、外部脚本 是写在外面的js脚本文件,通过script标签src属性引入进来 + 变量声明 + 变量的命名规范: js 跟html不一样,严格区分大小写,用一些语言话的取名 ,可以使用驼峰命名,不能使用-,他会认为这个是个减号 + var let const 去声明 let 变量名 = 变量值 等号是赋值 + js里有三种弹窗 + alert() 警告 + prompt() 可以提供给你输入内容的弹窗 接收到你输入的内容的字符串 + confirm () 确认弹窗 接收到布尔值true 或者 false + js中的数据类型 + 基本数据类型(传值):数字number,字符串string,布尔值 true false,undefined,null + 数字number: + 正数、负数、小数 、整数 、0、NaN (not a number) isNaN()有效数字会返回false 不是有效数字返回true + Number() 用来将非数字类型的转换,属于强制的转换,里面的内容必须是全能转换成数字,才能转换,否则就是NaN + parseInt()将一个含有数字字符串转换成整数,从左边开始,遇到非有效数字或者小数点结束转换, + parseFloat() 可以将小数部分也转换成数字,就是能识别出小数点 + 字符串string用引号将字符引起来 双引号、单引号 + 不同的引号不能嵌套 ""+变量+"" + 模板字符串 `` + 可以换行,可以使用${变量} 方式加载变量,而不需要进行字符串的拼接 + 布尔值 boolean 只有true false + Boolean() 将一个非布尔值转换成布尔值 + 判断一个值的布尔类型五种情况是false + 0,'',NaN,null,undefined + ! 表示取反,false变true ,!!相当于将一个值转换成布尔值 + 三个等号 =是赋值 a == b 判断两端是否相等 === 判断两端是否全等,首选判断数据类型,再判断值,必须都相同才是true + undefined 未赋值 + null 空 + js 运算符 + 一元运算符 (只需要一个操作数) + 一个加号(+) + console.log(+b , b); //对一个字符串使用+号,就是将这个字符串转换为数字类型 + console.log(a+b);//子符串拼接 + 两个加号、减号 自增 自减 (++)(--) + 数学运算符 +-*/% + 逻辑运算符 &&与、或 || 非! + &&两个或以上条件,都得成立 + ||两个或以上条件,满足其中一样就行 短路性 :第一个条件为true,就不再判断第二个条件了 + !取反 + 关系运算符 + > < >= <= != + 赋值运算符 = += -= /= %= + 三元表达式 + 条件?满足条件的结果:不满足条件的结果 + js 语句 + 条件判断语句 + if(条件){语句} else {条件不成立执行的语句} + 条件分支语句 + switch..case语句 + case 是条件比对正确执行的代码,可以有多个分支 + break,是跳出switch + default 是上面条件都不满足,最后执行的代码 + 注意:条件判断是全等,也就是数据类型也必须是一样的 + 循环语句 + while循环 + 语法:while (条件) {满足条件的代码} + 适合不知道循环次数的循环 + do while循环 + 语法:do {满足条件的代码} while (条件) + 是先执行一次这个代码,然后再去判断,如果满条件再循环,不满足条件就退出 + for 循环 + 语法: for(let i=0;i<5;i++){满足条件执行的代码} + 字符串的一些方法: + str.length 可以查看字符串的长度 + 字符串拼接 ,可以用concat()或者+ + 将数字转换为字符串 可以用 num .toString() + 字符串转大写 :str.toUpperCase() + 去掉字符串前后空格 : str.trim() + 重复的输入一个字符串: str.repeat() + \是转译符,有的符号具有两种用途,可以用转运符转译 + 字符串的截取 str.slice(a,b) a开始的位置,b结束的位置,负数就是从后开始数 + 字符串查找替换:str3.replace(a,b) a表示查找的内容,b替换的内容 + 查找关键字 str3.indexOf('关键字')找到了返回索引,没找到返回-1 + 查找关键字 str3.includes() 找到返回true 没找到返回false + 引用的数据类型 (传址)包括 :对象{} 、数组[] 、正则/\/ 、时间 Date() + 对象objeck:变量的集合 typeof objeck + 可以使用字面量的方式去生成一个对象 let obj = {} + 已知的属性可以一次性的写入,但是注意要使用键值对的方式,属性名:属性值 之间用冒号分开 + 多个属性键值对,要用逗号分开,除非是最后一个属性 + 属性值可以是任意的数据类型,可以是数字、字符串、布尔值也可以是对象 、函数 、数组等 + 调用对象的某个属性可以用 obj.name 或者 obj['name']的方式 + 后期再添加属性可以用:obj.xxx = sss ,注意这里不能用let var等关键字 + 删除某个属性 可以使用 delete obj.xxx + for in 循环,遍历对象的属性值 + 数组:也是一个对象 用中括号表示[1, 2 ,3] ,元素间用逗号分开,最后的元素后面不用逗号 + 其实就是用来盛放数据的,数组的元素可以任意的数据类型,可以是数字、字符串、布尔值也可以是对象 、函数 、数组等 + 数组的length,表示数组元素的个数,我们也叫他数组的长度 + 数组的length是可以操控数组的,如果减少了数组的length,表示删除了数组中的某些元素 + arr[arr.length] ,用来为数组最后面添加一个元素 + 数组的方法 :Array + concat() 不会改变原数组,返回一个拼接后生成的新数组 + 给数组添加新元素,可以使用unshift()在最前面添加 ,push()在最后添加 + 删除元素 shift() ,pop() + splice(),在数组的指定位置删除,并且添加元素 + 参数一:是从哪开删除 ,参数二:要删除几个,参数三开始:添加的内容 + 即可删除又可以添加,如果第二个参数为0 则不删除,如果没有第三个参数则不添加 + split()可以将字符串转换为数组 括号内可以设置转换的字符 + join()可以将数组转为字符串 + 函数 function typeof function + 函数的用途:可以代码封装,然后多次使用。或者是在需要的时候调用 + 声明一个函数 只是将代码封装了,并不会调用,调用还要添加事件触发或者直接调用 + 函数的参数: 1、 定义函数的时候指定的参数形参 2、在函数调用的时候,传递的参数叫实参 + 函数的返回值 return的两个用途 1、结束函数,不在执行下面的代码 2、返回运算的结果 + 声明提前 var function + 声明函数的时候有两个隐含的属性会被同时声明产生 + 1.this 指向调用这个函数的主体对象 (上下文) + 2. Arguments 一个参数集合 ,类数组 可以用来接收所有的参数