一、HTML
1、设置超链接,如果没有设置点击后的去向,则应设置href="#"
。
2、关于如何设置本页的导航条:可以使用锚功能
(1)首先在文本a标签中定义name=“ ……”
(2)在导航条位置设置<a href="#(锚名)"></a>
注意:锚名定义在哪里,点击时便会导航到哪里
3、出现乱码时,在<head></head>
标签之间添加:
<meta http-equiv="Content" contect="text/html;charset=utf-8"/>
4、表格
边框设置border="1"
背景颜色:bgcolor="#"
表格必须全部加载完才能显示,所以对于复杂的表格,我们可以用表格结构,使其边加载边显示,即:
<table>
<caption>...</caption>
<thead>
<tr>
<td>表头</td>
</tr>
</thead>
<tbody>
<tr>
<td>主体</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>脚注</td>
</tr>
</tfoot>
</table>
这三个标签不会改变表格的布局。
5.form标签中,以下标签实现表单元素:
当表单信息以方框为中心轴时,可以用表格来规范格式。
图像域(图像提交按钮):<input type="image" name="..." src="...">
隐藏域(不想让用户看到,但服务器能看到):<input type="hidden" name="..." value="...">
多行文本框:<textarea name="..." rows="..." cols="..." placeholder="..."></textarea>
二、CSS
1、对不同的选择器设置相同的css样式,我们可以使用以下样式进行设置:
p,h1,h2,h3{font-size:30px;}
2、有些低端的浏览器不识别style样式,可以在style中加入HTML注释,<!-- -->
。此时,低端能识别,高端能忽略这个注释。
3、同一个HTML文件中,每一个id都是唯一的,但class可以是多个。
4、使用后代选择器后,之后对于该元素的样式修改无效。
5、伪类的顺序:link>visited>hover>active
6、优先级
可以用!important
强调优先级,如div{color:yellow !important}
实际就是:若是权值相同,就近原则;权值不同,根据权值判断。权值如下:
7、背景区包括内容、内边距和边框,但不包括外边距。
设置元素的背景图片的显示方式:
background-attachment:scroll | fixed
设置列表项标记的位置
list-style-position:inside | outside
inside可以使多行文字在下一行从图标开始,而outside则是默认值,从文字的正下方开始。
8、css盒子
1)
2)边框属性
border-left | right | top | bottom-width
border-left | right | top | bottom-color
border-left | right | top | bottom-style
3)垂直方向,两个相邻元素都设置外边距margin,外边距会发生合并。合并后外边距高度=两个发生合并外边距的高度中的最大值。
4)margin:auto
可以设置元素水平居中
9、float
1)实现文字环绕图片效果,需要在图片上设置img{float:left | right;}
2)float能让元素脱离原来的文档流
.test{
width:100px;
height:100px;
background:red;
float:left;
}
.bro{
background:blue;
}
<span class="test"></span><!--如果没有float,span不显示-->
<div class="bro"></div>
此时可以明显看到,span标签把div一部分覆盖了,这是因为float能让元素脱离原来的文档流。
但span仍占据文本的一部分,所以接下来的文本会从该部分的右边开始。
3)float会使得父元素坍塌,所以需要如下解决:
clear用在没有float的元素,使得它相对于float元素的下一行。clear:none | left | right | both
overfloat 处理溢出问题。overfloat:auto | hidden zoom:1
但如果元素过宽,会被截断(弊端)
10、position: relative; top | left | right | bottom:
后设置relative的元素的层级高于之前设置的,top则向下偏移,以此类推。
如果是absolute,fixed,则top就是与(窗口)顶部的距离,以此类推。
如果要设置元素居中,css需要
position:absolute;
top:50%;
left:50%;
margin-top:-100px;(原高度的一半)
margin-left:-400px;(原宽度的一半)
11、z-index
值大的元素会覆盖值小的元素,若为auto则不参与层级比较,为负值,则会被普通流覆盖。
12、圣杯布局
- 三列布局,中间宽度自适应,两边定宽
- 中间栏要在浏览器中优先展示渲染
- 允许任意列的高度最高
- 用最简单的CSS、最少的HACK语句
13、双飞翼布局
在圣杯布局的基础上,去掉相对布局,只需要浮动和负边距
三、JavaScript
1、console.log();//控制台打印,如果之后会给变量赋值一个对象,则变量=null,如果是字符串,则变量=""
2、转成数字:var a=parseInt("...")
/parseFolat("...")
转成字符串:str.toString(); String(str);
3、
- 除0之外的所有数字,转换为布尔型都为true
- 除""(没有空格)之外的所有字符,转换为布尔型都为true
- null和undefined转换为布尔型为false
4、&&运算,如果第一个操作数隐式类型转换为true,则返回最后一个操作数
console.log(3 && 34);//34
如果第一个操作数隐式类型转换为false,则返回第一个操作数
console.log(0 && "li");//0
5、var age=prompt("输入年龄");//显示提示框
var week = new Date().getDay();//得到今天是星期几
6、arguments不是数组但可以使函数没有参数,而传进来的值会放在arguments里
function inner(){
console.log(arguments.length);//2
console.log(arguments[0]);//10
console.log(arguments[1]);//5
console.log(arguments[2]);//undefined
}
inner(10,5);
arguments[0]=99;//修改传进来的值
7、数组的栈方法:
1)push(),值加在后面,返回数组长度。
var colors = new Array("red","yellow");
var len = colors.push("blue","black");//加入蓝色和黑色两个值
console.log(len);//4
2)unshift(),值添加在前面,返回数组长度,用法如上。
3)pop(),删除后面的值,返回删除的值,用法如上。
4)shift(),删除前面的值,返回删除的值,用法如上。
8、数组的转换方法
join();将数组转换为字符串,返回字符串。
默认情况用“,”将值连起来,(“”)中间没有字符,(“-”)中间用-连起来。
9、数组的其他方法
1)concat(arrayX,arrayX),连接多个数组
arr3=arr1.concat(arr2);//连接arr1和arr2两个数组
2)slice(start [,end] ),选择start到end之间的值
3)splice(index,count),删除从index开始的count个元素,返回带有删除元素的数组
spllice(index,0,item1…itemN),从index开始插入元素item1…itemN
spllice(index,count,item1…itemN),从index开始删除count个元素,并插入元素item1…itemN
10、DOM
1)getElementById()、getElementByTagName();
如果选择的是id名为list内的标签li,则
document.getElementById("list").getElementByTagName("li");
2)element.className是重新设置类,替代元素本身的class
3)对于class和自己定义的属性,如果要得到这些属性,则要用element.getAttribute("……");
11、DOM0级事件
var btn=document.getElementById("btn");
btn.onclick=function(){
this.className="unclock";//css里定义好的样式
this.innerHTML="解锁";
}
不建议使用HTML事件的原因:
- 多元素绑定相同事件时,效率低;
- 不建议在HTML元素中写JavaScript代码。
12、在JavaScript中定义全局变量和全局方法
windows.username="marry";//全局变量
windows.sayname=function(){
}//全局方法
13.setInterval()和clearInterval()
var num=1,max=10,timer=null;//null清除内存
//每隔1秒钟num递增一次,直到num的值等于max清除
timer=setInterval(function(){
console.log(num);
num++;
if(num>max){
clearInterval(timer);
}
},1000)
//使用超时调用实现
function inCreamentNum(){
console.log(num);
num++;
if(num<=max){
setTimeout(inCreamentNum,1000);
} else {
clearTimeout(timer);
}
}
timer=setTimeout(inCreamentNum,1000);