前端三剑客HTML+CSS+JavaScript
HTML(超文本标记语言)负责网页的结构
CSS(层叠样式表)负责网页的样式(比如颜色/字体/边框等属性设置)
JavaScript(脚本语言)负责网页的行为(点击/输入输出/滚动等等)
HTML部分:
html文档结构:整个html文档一般都包括header/body两部分: header头部标签主要包含html的描述性内容:
title标签是网页在浏览器标签栏上显示的标题
meta标签是网页的原信息
link标签用来链接其他内容,引用外部css样式,就是通过link标签
script标签是调用js脚本
body标签中就是在网页上展示的内容:
标题标签: h1~h6 标题大小逐次减小 (标题标签是为了突出层级关系,所以为了不要只是为了调节文本大小而使用标题标签)
段落标签: p
文本修饰标签:加粗<b> 斜体<i> 下划线<u> 删除线<s> 上标<sup> 下标<sub> 强调斜体<em> 强烈强调<strong>
列表标签:
ol有序列表:type属性 表示标签标记类型 A大写字母 a小写字母 1数字 I大写罗马数字 i小写罗马数字
ul无序列表:type属性 disc实心圆 circle环形 square实心矩形 none不显示标记
<li>是列表元素
超链接标签a:
target属性:默认为_block,在新窗口打开链接;_self是在当前窗口打开链接
href属性:指向的目标可以为文件,则链接动作为下载文件;指向目标是链接,跳转链接;可以指定当前页面中的元素id(#id),跳转到指定元素的位置;如果不写,默认跳转到当前的页面;也可以指向一个js脚本;如果希望点击这个按钮不触发任何动作可以用"javascript:;"的js代码来阻止标签动作;
盒子标签div 图片标签img
其他标签:br 换行 hr分割线 特殊符号 比如空格
表格标签table
表单标签form:
action属性:定义表单提交时发送到服务器的地址
method属性:定义提交方式,get明文提交显示在地址栏中(大小限制为2KB),post密文提交,不显示在地址栏中
enctype属性:限制表单提交的数据类型只允许普通字符,允许普通字符/特殊字符,允许文件被上传;如果上传文件method必须为post;
表单控件:
textarea文本域:允许用户输入多行文本;cols属性设置列数,rows属性设行数;
select选择菜单:当size为1显示为下拉选择框,当size大于1显示为选择框;
input控件:
type:
text属性:明文文本;
password属性:密文文本;
radio属性:单选框 checkbox复选框;
file属性:文件上传
submit属性:提交表单的按钮
button普通按钮
value:提交给服务器的数据;
name:控件名;
disabled:不可用属性;
lable关联表单元素:点击该文本如同点击关联元素一样;
标签分类:块级元素/行内元素/行内块元素
块级元素:可以设置宽高,不设置默认为父级元素的100%大小,独占一行,(后面的元素同样换行)主要有div p h1~h6 table form ol ul li等
行内元素:在一行内显示,不能设置宽高,主要有span a 标签
行内块元素:也属于行内元素,可以设置宽高 img input;
css部分:
css的引入方式:
内嵌式:直接在标签内写 <p style: "color:red;">
内联式:在header内写 <style type: 'text/css'> .box{font-size:14px;}</style>
外联式:链接外部css <link rel= 'stylesheet' type= 'text/css' href= './css/index.css'>
导入式: @import url('./css/index.css')
选择器:
基本选择器:
* 通配符选择器 选择所有标签元素(不建议使用)
#box id选择器 选择指定id的标签元素
div 标签选择器 选择指定标签的标签元素
.active 类选择器 选择指定类的标签元素
高级选择器(组合选择器):
子代选择器: ul>li 只选择儿子元素
后代选择器: div a 选择父代元素之后的所有后代
相邻选择器: li+a 选择紧贴li的下一个a
弟弟选择器: li~a 选择li之后的所有兄弟元素a
分组选择器: li,p 选择多个元素类型
选择器权重问题:
内联(1000)>id(100)>类(10)>标签(1)
属性选择器:
选择有相同属性的元素
伪类选择器:
a:link a在未访问的样式
伪元素选择器:
E:before
font相关:
font-style字体风格:
正常字体:normal 斜体:italic 倾斜字体:oblique
font-weight 字重:
normal bold bolder lighter 整百数(100-900)
font-size 字体大小:
font-family 字体集:
指定文本使用一系列的字体,优先级由高到低
color相关:
颜色表示的四种方式:
颜色名: red green yellow lightgray
十六进制:#ccc #rr #5c5c5c #f80
rgb: rgb(255,254,253)
rgba: rgb(255,254,253,0.5)
text相关:
text-align文本对齐:
left左对齐
right右对齐
center中间对齐
justify 两端对齐(只适用于英文)
text-indent文本缩进:
建议用em为单位(字符单位)
text-decoration 文本修饰:
none无修饰
underline下划线
overline上划线
line-through 删除线
line-height 行高:
指定行高,设置行高等于文本盒子高度,可以使文本垂直居中
background相关:
background-image 背景图
background-position:调整背景图位置(使用精灵图)
background-repeat:平铺设置
repeat 横纵平铺
repeat-x 横向平铺
repeat-y 纵向平铺
no-repeat 不平铺
background-attachment:固定方式 scroll fixed
background-color:背景颜色 默认为透明 transparent
盒模型:
width height border边框 padding内边距 margin外边距
浮动相关:
float:left左浮动 right右浮动 none默认不浮动
浮动特性:
脱离标准流
都可以设置宽高
提升层级
并排显示,浮动的元素会相互贴靠
贴边现象
字围效果
浮动带来的问题:
一般父盒子不设置宽高,全靠子元素撑起来,但是使用浮动后父盒子就没有高度了
因此需要清除浮动
消除浮动带来的问题:
给父盒子设置高度:
不灵活不推荐,一般用于导航栏之类的固定高度的盒子
clear:both:
在浮动元素之后加一个空盒子,并给盒子追加clear:both属性,使其不浮动,用这个不浮动的空盒子填充父盒子.结构冗余
伪元素清除法:
给父级元素添加clearfix类
在给父元素设置样式:
.clearfix:after{
content:'';
clear:both;
display:block;
}
overflow:hidden
给父盒子设置overflow:hidden属性
定位相关:
分为:不定位static/相对定位relative/绝对定位absolute/固定定位fixed
相对定位relative:
相对于自己原来位置的定位:
特点:不脱离标准流/形影分离/占据原位置
用途:微调元素
绝对定位absolute:
脱离标准流 ,提高层级, 不区分块和行内
如果没有父盒子相对定位,以页面左上角为基准;如果父元素有相对定位,则以父盒子为基准定位
固定定位fixed:
以页面为基准固定定位
z-index属性:
给元素设置优先级
特点:同级后来居上,有定位的元素z-index才能生效,从父现象(父盒子优先)
javascript部分:
引入方式:
内接式/外接式
ECMA5基础语法:
数据类型:
数字 字符串 布尔值 null空对象 undefined未定义变量
引用数据类型:
function函数 object对象 array数组
流程控制:
if if-else if-else if-else 逻辑与&& 逻辑或|| switch-case while do-while for
内置对象:
数组array: concat合并分组 join插入分隔字符 pop弹出最后一个元素 shift移除第一个元素 unshift插入一个元素到数组第一个位置,返回新的长度 slice切片 push压入最后一元素 sort排序 reverse反转 length返回数组长度
DOM:
文档对象模型
获取文档对象的三种方式:
document.getElementById() 根据id获取文档对象
document.getElementByClassName() 根据类名获取文档对象
document.getElementByTagName() 根据标签名获取文档对象
事件三要素:
事件源 事件 事件驱动
js的事件:
onclick单击 ondblclick双击 onkeyup/onkeydown 键盘弹起/按下 onchange 文本/菜单发生改变时 onfocus获得焦点 onblur失去焦点 onmouseover 鼠标悬浮 onmouseout鼠标移除 onload 网页文档加载 onunload关闭网页时 onsubmit提交表单时 onreset重置表单时
js入口函数:
window.onload() 在网页加载完成后(包括图片和文档) 触发onload() 函数
js和html文档是同时加载的,设置onload不会报错
问题 图片资源加载失败,js就不会生效
样式的操作 : Object.style.marginLeft = '30px';
值的操作: innerText 文本内容 innerHTML 文档内容 value (表单控件)
属性操作:
getAttribute()获取属性 removeAttribute()移除属性
setAttribute()/Object.attr = '' 设置属性
DOM对象的创建/增加/删除
document.createElement() 创建
Object.appendChild() 加子节点
Object.insertChild(要插入的节点,参考节点) 把要插入的节点插入到参考节点之前
Object.removeChild() 删除子节点
object.parentNode.removeChild(Object) 删除自己
client/offset偏移量(与父相子绝有关)/scroll
定时器:
setTimeOut(func,200) 一次性定时器,在延时后执行func
setInterval(func,200) 循环定时器,周期执行func
jQuery部分
jQuery是js的一个库
入口程序:$(document).ready(function(){}) 简写$(function(){})
与js的入口程序的区别
js是整个文档资源(包括图片)加载完成之后才执行 而jQuery的入口程序是在DOM结构绘制完成就执行
js对象与jQuery对象相互转化:
jQuery对象 = $(js对象)
jQuery对象[0] = js对象
jQuery选择器:
基本选择器: id 类 标签
层级(组合)选择器: 后代(空格) 子代(>)
基本过滤选择器:
:eq 获取指定索引对象
:odd 获取奇数索引对象
:even 获取偶数索引对象
:gt(3)/lt(3) 获取索引大于/(小于) 3的对象
:first/last
属性选择器:
含有指定属性/指定属性为指定值/正则匹配
筛选选择器:
find:后代选择 所有后代
children:子代选择
siblings:兄弟选择(不包括自己,用于互斥按钮)
parent:父级选择
eq:索引选择
动画效果:
显示隐藏:
show显示/hide隐藏 开关式显示隐藏toggle
淡入淡出:
fadeIn/fadeOut fadeToggle
卷帘效果:
slideUp/slideDown slideToggle
停止动画:
stop
自定义动画:
animate({最终样式},速度,回调函数)
值的操作:
html:操作html文档 获取/设置
text:操作文本内容 获取/设置
val:针对有value属性的对象,比如input
属性操作:
attr(key)获取属性
attr(key,value) 设置单个属性
attr({key:value,key:value}) 设置多个属性
removeAttr()删除属性
prop()操作元素集的第一个dom对象的属性
removeProp
addClass removeClass toggleClass
DOM操作:
父子之间:
插入到父级元素最后 父.append(子) 子.appendTo(父)
插入到父级元素第一位 父.prepend(子) ...
兄弟之间:
插入到目标兄弟元素之后 目标对象.after(待插入对象) 待插入对象.insertAfter(目标对象)
之前 before insertBefore
删除操作:
remove detach(删除节点事件保留) empty(置空,删除所有子元素)
位置信息:
width height innerHeight innerWidth(内部宽高) outerHeight outerWidth(外部宽高) scrollTop scrollLeft(元素相对于滚动条卷起的宽高) position (元素相对于父级元素的偏移量) offset(元素相对于当前视口的偏移量)
jquery事件:
三个阶段 :事件捕获 处于目标阶段 事件冒泡阶段
冒泡导致逻辑不正确,阻止冒泡的两种方法:
E.stopPropagation()阻止冒泡 E.preventDefault() 阻止默认行为
鼠标事件:
单击 click 双击 dbclick mousedown mouseup mousemove mouseover/out进入离开目标元素和目标的子元素时触发 mouseenter/leave focus/blur keydown/up
表单事件:
change 表单元素发生变化时 select 文本元素发生变化 submit表单元素发生变化
ajax技术:
异步JavaScript和XML
在不刷新整个网页的情况下,刷新页面局部内容