html css javascript
html前端三剑客分别是:
html css javascript
常用软件架构分类及区别
C/S架构:Client/Server 客户端/服务器
B/S架构:Browser/Server 浏览器/服务器
静态资源与动态资源的举例与区别
静态资源:文本,图片,音频,视频,Html,CSS,JavaScript...
动态资源:jsp/servlet,php...
区别:静态资源所有用户访问,得到的结果是一样的。动态资源是从资源的服务器里面的数据库拿出来的
html 常用标签
标题标签:<h> h1-h6 其中<h1>定义最大的标题,<h6>定义最小的标题。
段落标签: <p>使得文本独立成段。
换行标签: <br/>
分割线标签: <hr/>
加粗标签: <b> 、<strong>标签可以使字体加粗。
斜体标签:<em> 、<i>标签可以使字体倾斜。
上标标签:<sup>
下标标签:<sub>
字体格式化标签:<font> 用于设置字体尺寸、字体颜色等,已过时。<span>内容标签
居中标签:<center>标签用于将文本居中显示。
层叠样式标签:<div>
图片标签:
<img src=”图片路径” width=”宽” height=”高” alt=”替代文本” title=”提示文字” />
音频标签:
<audio src="音频路径" controls loop muted></audio>
controls:定义播放组件 loop:重新播放 muted:静音
视频标签:
<video src="视频路径" controls loop muted width="400px" height="400px"></video>
controls:定义播放组件 loop:重新播放 muted:静音 width:视频组件的宽 height:视频组件的高
列表标签:
无序列表 有序列表
<ul type="disc"> <ol type="I">
<li></li> <li></li>
<li></li> <li></li>
<li></li> <li></li>
</ul> </ol>
超链接标签:
<a href="" target="">热点文字或图片</a>
target 取值:_blank 在新的选项卡中打开_self 在本页面打开(默认)
不跳转:href="#" 或者 href="javaScript:void(0)"
表格标签:
<table> tr:行标签 常用的属性
<th> td:单元格标签 border:边框
<td></td> th:表头标签 width:表格的宽
</th> height:表格的高
<tr> align:对齐方式
<td></td> cellspacing:单元格边框距离表格边框的间距
</tr> cellpadding:单元格中文本距离单元格边框之间的间距
<tr> bgcolor:背景颜色
<td></td> rowspan:行合并
</tr> colspan:列合并
</table>
表单标签:
form:表单标签
action:表单提交地址
method:表单请求方式
enctype:规定数据在发送到服务器之前应该如何进行编码
表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
不对表单进行编码
multipart/form-data 用于文件上传 配合post使用
text/plain:纯文本的传输。空格转换为"+"号,但不对特殊字符编码。
type:
文本框 text
密码框 password
单选框 radio
复选框 checkbox
文件框 file
隐藏域 hidden
提交按钮 submit
重置按钮 reset
普通按钮 button
收集不同类型内容
下拉框
select
option
表单控件中常用的属性
id:标识当前标签在网页中只有一份
name:提交到服务器中键
value:提交到服务器中的值
checked:默认选中 (单选框|复选框)
selected:默认选中(下拉框)
maxlength:输入框中最大允许的字符长度
minlength:输入框中最小允许的字符长度
readonly:只读(当前输入框只能看不能修改)
disabled:不可用|未激活
placeholder:提示文字
框架标签:
<!--注意去掉body标签 -->
<frameset rows="200px,*">
<!-- 上页面 -->
<frame src="top.html"></frame>
<!-- 下页面 -->
<frameset cols="200px,*">
<!-- 左侧页面 -->
<frame src="left.html"></frame>
<frame src="right.html" name="right"></frame>
</frameset>
</frameset>
src:指定页面的路径
noresize:框架分割后禁止调整
name:该框架的名称用于和a标签target连用
get/post请求的区别
get:
安全性:get提交会将参数暴露在浏览器地址栏中不安全
效率:get提交效率比post提交要快
数据量携带大小:最大只允许4kb
post:
安全性:post提交会将参数放在请求体中、比较安全
效率上:post提交效率比get提交慢
数学量携带大小:没有大小限制
常见实体字符
空格: 小于符号:< < 大于符号:> > 双引号:" " 版权符号:© ©
css
css样式的引入方式
1.行内样式
在标签内使用style属性指定css代码。该方式定义样式作用于为整个页面。
2.内部样式
在head标签内,定义style标签,style标签的标签体内容就是css代码。
3.外部样式
定义css文件,在head标签中使用link标签,引入外部的资源文件。
语法格式:
<link type="text/css" rel="styleSheet" href="CSS文件路径" />
优先级问题:
行内样式 > 内部样式 & 外部样式(后加载的先生效)
css选择器
基本选择器:
标签选择器 ID选择器 类选择器
其它常见的选择器有:
1.全局选择器 *{}
2.组合选择器 h2,p,a,li {}
3.层级选择器 h1 em {}
4.父选择器 h1 > strong {}
5.属性选择器 [value] {} [value = "no1"] {}
6.伪类选择器
a:link{} 未被访问时
a:visited{} 访问过后
a:hover{} 鼠标悬浮时
a:active{} 鼠标激活时
css常见属性
(一)尺寸修饰
height 设置元素的高度
width 设置元素的宽度
(二)字体样式
font-family 字体类型(取值:隶书/微软雅黑...)
font-size 字体大小
font-style 字体风格(取值:italic/normal...)取值(扩展):italic : 斜体。
font-weight 字体粗细取值:Normal 默认值。bold 粗体字符 bolder 更粗的字符
(三)文本样式
color 文本颜色
text-align 文本对齐(取值:left/right/center...)
text-decoration 文本装饰,取值:none默认。underline下划线。
line-height 设置行高
(四)边框样式
border-width 边框宽度按方向设置:border-(left/right/top/bottom)-width
border-color 边框颜色按方向设置:border-(left/right/top/bottom)-color
border-style 边框风格按方向设置:border-(left/right/top/bottom)-style
可以简写: border:1px solid red;
border-radius 圆角边框按方向设置值:border-(top/bottom)-(left/right)-radius
(五)背景样式
background-color: 背景颜色
background-image: url(img/1.jpeg);
background-repeat 背景平铺
background-position:背景偏移
什么是盒子模型?
盒子的宽度 = 内容宽度 + 左填充 + 右填充 + 左边框 + 右边框 + 左边距 + 右边距
盒子的高度 = 内容高度 + 上填充 + 下填充 + 上边框 + 下边框 + 上边距 + 下边距
内边距 padding:也叫填充(padding),设置元素内容与元素边框之间的距离。
外边距 margin:也叫空白边(margin),位于盒子的最外围,设置不同元素之间, 它们边框与边框之间的距离。
浮动
float:
float是css样式中的定位属性,用于设置标签对象的浮动布局,浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
浮动属性的取值有三个:
left:元素左浮动
right:元素右浮动
none:默认值,不浮动
清除浮动:
clear:
常用的取值有:left(清除左浮动)、right(清除右浮动)、both(清除两侧浮动)。
一般我们会使用一个独立的div标签专门用来做清除浮动的样式。
定位
position定位
1.relative 相对定位
相对原来的位置定位,定位完成后可以去偏移(移动),不会脱离标准文档流
2.absolute 绝对定位
绝对定位后,脱离文档流,位置移动看父标签中有没有定位,如果有定位则相对父标签偏移,如果父标签没有定位,相对<body>标签偏移
块标签、行标签和行块标签
块标签:独占一行,可设置宽高。
常见的块级元素:<div> 、<h> 、<ul>等
行标签:按行排列。
常见的行标签:<span> 、 <strong> 、<a>等
行块标签:按行排列,但又可以设置宽高的标签。
常见的行块标签:<img>、<input>、<textarea>等
块标签、行标签和行块标签之间的转换
display:用于定义建立布局时元素生成的显示框类型.
其取值如下:
inline:此元素将显示为行元素(行内元素display的默认值)
block:此元素指定为块元素(块元素display的默认值)
inline-block:将对象呈现为内联元素,对象内的元素块级展示。
隐藏元素
display:none
去除列表前面的符号
list-style-type:none
float与display的区别
1、浮动float横排显示的元素之间无外边距,而inline-block会有默认的外边距。
2、浮动float让元素脱离当前文档流,inline-block不会。
3、二者都能实现水平排列,优先使用inline-block,因为此种方式元素未脱离标准文档流,元素间的相对定位好调整。但当某些场景希望有些元素向左排列,有些元素向右排列,这时只能使用float。
javascript
javascript的特点与组成
JavaScript是一门脚本语言,必须依赖html才能运行,不需要编译,直接由浏览器解析运行。
组成
1.ECMA核心:核心语法
2.DOM文档对象模型
3.BOM浏览器对象模型
js引入方式
1、内部JS:在HTML网页中通过script标签直接嵌入JavaScript脚本代码。可以出现在页面的任何位置,且可以写多个。
2、外部JS:外链式是单独定义脚本文件(*.js),再将这个脚本文件通过script标签的src属性引入到HTML页面中。一个页面中可以引用多个外部js文件。
注意事项:引用外部js文件的script标签里不能再写自定义的javaScript代码。
js数据类型
1、基本数据类型:
(1)Undefined:Undefined类型只有一个值即undefined。当声明的变量未初始化时,该变量的默认值就是undefined。
(2)Null:只有一个值即null表示空,一个占位符。值undefined实际是从值null派生来的,因此ECMAScript把他们列为等值。
例如:alert(null == undefined); //true
虽然两个值相等但是表示的意义不同,null为空值,undefined是未定义。
(3)Boolean:表示真假,只有两个值true和false。
(4)Number:表示任意数字,在JS中所有值类型统称为数字类型。
(5)String:字符串类型用单引号或者双引号赋值。
2、引用类型:
引用类型通常叫做类(class),JavaScript将引用类型转化为对象进行处理。
JavaScript是基于对象而非面向对象。对象的默认值是null。
我们可以通过typeof(变量名)来查看一个变量所属的数据类型。
例如:alert(typeof(123));得到的数据类型是Number。
== 和===有什么区别
==比较 只比较内容
===比较 不光比较内容还比较类型
<script>
var a;
var b = null;
console.log(a == b); //true
console.log(a === b);//false
</script>
js函数
创建函数的语法格式:
function 方法名(形式参数列表){方法体} 推荐使用;
js方法的特点:
(1)方法定义时,形式参数类型不用写,返回值类型也不写
(2)方法是一个对象,定义相同方法名会被覆盖 方法不支持重载
(3)在JS中方法的调用只和方法名有关与方法的参数无关
js数组 可理解为java中的集合
1、创建数组:
(1)var arr = new Array(); 空数组
(2)var arr = new Array(默认长度) 默认长度的数组
(3)var arr = [元素列表]; 具有初值的数组
2、js数组的特点:
(1)在JS中,数组元素的类型可变
(2)在JS中数组的长度可变
3、js数组的属性:length 获取数组长度、元素个数
4、js数组中的常用方法:
(1)join(参数); 将数组中的元素按照指定规则转成字符串
(2)push(); 向数组的末尾添加一个或更多元素
js Date日期对象
1、创建日期对象:var date = new Date() 获取当前时间。
2、日期对象的常用方法:
(1)toLocaleString():当前日期转换为本地字符串打印。年月日 时分秒
(2)toLocaleDateString() 将当前日期转换为本地字符串打印 年月日
(3)getTime():返回 1970 年 1 月 1 日至今的毫秒数
(4)getHours():返回小时数。
(5)getMinutes():返回分钟数。
(6)getSeconds():返回秒数
(7)getFullYear():获取年份
(8)getMonth()+1:获取月份
(9)getDate():获取日期
Math数学对象
1、创建:Math对象不用创建直接使用。使用时直接调用方法,如:Math.方法名();
2、常用方法:
(1)random():返回 0 ~ 1 之间的随机数
(2)max(x,y):返回 x 和 y 中的最大值
(3)min(x,y):返回 x 和 y 中的最低值
(4)ceil(x):对数进行向上取整
(5)floor(x):对数进行向下取整
(6)round(x):把数四舍五入为最接近的整数
(7)abs(x):返回数的绝对值
3、属性:PI,圆周率
String字符串对象
1、创建:
(1)var str1 = "abc"; // string
(2)var str2 = new String("abc"); // object
2、常用方法:
(1)获取字符串的长度 str1.length
(2)是否以某个字符开头 startsWith()
(3)是否以某个字符结尾 endsWith()
(4)截取字符串
a、substring(起始下标,结束角标) 截取从开始索引到结束索引中某一段内容
b、substring(起始索引) 截取从指定索引开始一直到最后
c、substr(起始下标,截取长度) 忽略
(5)根据某个字符拆分字符串 返回数组 split()
(6) indexOf 获取指定字符串在该字符串第一次出现的索引位置 如果没有则返回-1
(7) lastIndexOf 获取指定字符串在该字符串最后一次出现的索引位置 如果没有则返回-1
(8) charAt(索引) 获取指定索引对应上的单个字符
获取页面元素对象
1、查找页面元素的方法:
(1)document.getElementById(id):通过id号来查找元素。
(2)document.getElementsByTagName(name):通过标签名来查找元素。
(3)document.getElementsByClassName(name):通过类名来查找元素。
(4)document.getElementsByName(name):通过name属性名来查找元素。
2、以上四种方法中,由于页面中元素的id号是唯一的,所以通过id获取的元素个数也是唯一的;而其他三种方式获取的元素个数不唯一,所以使用时需要像数组一样去获取指定的元素。
操作页面元素对象
1、创建dom对象
document.createElement("标签名");
2、添加dom对象
(1)A.appendChild(B) 将B添加到A内部的最后面
(2)A.insertBefore(B, C) 将B添加到A内部C的前面
3、删除dom对象
(1)A.remove() 将A删除
4、替换dom对象
A.replaceChild(B, C) 用B替换A内部的C
操作元素属性
1、页面元素.属性名 = “值”
2、设置:标签对象.setAttribute("属性名","属性值");
3、获取:标签对象.getAttribute("属性名");
4、删除:标签对象.removeAttribute("属性名");
操作元素样式
1、直接操作
页面元素.style.css样式名称 = “值”
2、间接操作:通过类名进行操作
页面元素.setAttribute(“class”, “类名1 类名2”)
先将css样式定义在类中,通过行间属性class,为其设置类
操作元素内容
1、标签对象.innerHTML 获取或者设置内容 可以包含标签
2、标签对象.innerText 获取或者设置内容 只包含文本
3、input标签对象.value 获取或者设置input框中的内容
4、innerText和innerHTML语法:
获取:标签对象.innerHTML
修改:标签对象.innerHTML=要修改的值
绑定事件
(1)在标签中指定事件的属性:<button id="btn" onclick="func01()">点我啊</button>
需要在脚本中,先行定义好func01这个方法~
(2)获取标签元素绑定事件:document.getElementById("btn").onclick = function(){}
第二种绑定事件用到的是匿名函数,直接书写方法体代码即可
常见事件
① onclick:单击事件
② ondblclick:双击事件
③ onchange:内容改变事件
④ onmouseover/onmouseout: 鼠标从某元素移入或移开事件
⑥ onblur/onfocus:元素失去焦点或获取焦点事件
onsubmit 表单提交事件 注意要有一个返回值
用js实现全选、全不选
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>全选</title>
</head>
<body>
<input type="checkbox" name="all" id="all" onclick="checkAll()">全选<br>
<input type="checkbox" name="hobby">唱<br>
<input type="checkbox" name="hobby">跳<br>
<input type="checkbox" name="hobby">rap<br>
<input type="checkbox" name="hobby">篮球<br>
</body>
<script>
function checkAll() {
var all = document.getElementById("all").checked;
var hobbies = document.getElementsByName("hobby");
for (var i = 0; i < hobbies.length; i++) {
hobbies[i].checked = all;
}
}
</script>
</html>
浏览器对象模型
Bom:浏览器对象模型
Bom有一个核心的对象window,window对象包含了6个核心模块
1、document对象:文档对象
2、Frames对象:html的自框架
3、History历史记录对象:页面的浏览记录
4、Location定位对象:当前页面的地址
5、Navigator导航对象:包含了访问者的浏览器相关信息
6、Screen对象:显示屏幕相关信息
window方法
1. 弹窗方法
1. alert(); 显示带有一段消息和一个确认按钮的警告框 演示
2. confirm(); 显示带有一段消息以及确认按钮和取消按钮的对话框 演示
3. prompt(); 显示可提示用户输入的对话框 演示
2.定时器方法
JS中的定时器函数有两种:
1、循环定时器:按照指定的周期来调用函数或代码串,执行多次。
var timeid=Window.setInterval(code,millisec);
window.clearInterval(timeid);清除定时器,使定时器停止执行函数或代码串。
参数说明:
code:要调用的函数或要执行的代码串。
millisec:周期性执行或调用 code 之间的时间间隔,以毫秒为单位。
2、单次定时器:在指定的毫秒数后调用函数或代码串,只执行一次。
var timeid=Window.setTimeout(code,millisec);
window.clearTimeout(timeid);清除定时器,可以阻止定时器的执行。
参数说明:
code:要调用的函数或要执行的代码串。
millisec:在执行代码前需等待的毫秒数。
用定时器实现轮播效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>lunbo</title>
</head>
<body>
<img src="../img/1.jpg" id="img">
</body>
<script>
var index = 1;
/* function change() {
var img =document.getElementById("img");
img.src="../img/"+index+".jpg";
index++;
if(index == 5) {
index = 1;
}
} */
setInterval(() => {
var img = document.getElementById("img");
img.src = "../img/" + index + ".jpg";
index++;
if (index == 5) {
index = 1;
}
}, 2000);
</script>
</html>
window对象核心模块常用方法
Screen
1、screen.availWidth - 可用的屏幕宽度
2、screen.availHeight - 可用的屏幕高度
History
1、window.history 对象包含浏览器历史。
2、方法:
(1)history.back() - 等同于在浏览器点击后退按钮
(2)history.forward() - 等同于在浏览器中点击前进按钮
3、想要出现前进后退的效果,必须存在路径的跳转!
Location
1、window.location 对象可用于获取当前页面地址(URL)并把浏览器重定向到新页面
2、window.location 对象在编写时可不使用 window 这个前缀。
3、创建:window.location/location
4、方法:reload():刷新当前页面
5、属性href:获取请求的URL/跳转指定的URL地址中
桌面弹球案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 所有的标签都没有外边距 */
*{
margin: 0px;
}
div{
width: 75px;
height: 75px;
/* 设置小球背景颜色 */
background-color: rgb(30,144,255);
/* 设置小球的圆角 */
border-radius: 80%;
}
</style>
</head>
<body>
<div id="ball"></div>
</body>
<script>
//屏幕可用宽度
var width =screen.availWidth
//小球移动的距离(左外边距)
var index =0
//向右跑
function toRight(){
//获得球
var div =document.getElementById("ball")
//设置小球的左外边距
div.style.marginLeft=index+"px"
index++;
if(index>=width-75){
//1毫秒后马上执行向左跑函数
setTimeout(toLeft,1)
}else{
//1毫秒后马上执行向右跑函数
setTimeout(toRight,1)
}
}
function toLeft(){
//获得球
var div =document.getElementById("ball")
//设置小球的左外边距
div.style.marginLeft=index+"px"
index--
if(index<=0){
//1毫秒后马上执行向右跑函数
setTimeout(toRight,1)
}else{
//1毫秒后马上执行向左跑函数
setTimeout(toLeft,1)
}
}
toRight()
</script>
</html>