前端的编辑器很多,选择自己喜欢的或者实际需求使用的编辑器都可,VS、SublimeText3、VScode都可。这里只提一下VScode的配置,因为其他的基本都是下载之后就随便能用,不需要其他附属操作。
属性type可设为以下值
可通过CSS将 样式设为无样式。如list-style:none;
img常用属性:
功能性链接:
1. 发邮件
<a href="mailto:[email protected]">联系站长a>
```
2. 唤起QQ聊天窗口
```html
<a href="tencent://message/?uin=19998539&Menu=yes">
<img border="0" src="http://wpa.qq.com/pa?p=1:615050000:7"/>
a>
/*
属性:
colspan:列的合并
rowspan:行的合并
*/
<table border="1" width="400px" align="center" cellspacing="0">
<tr align="center">
<td colspan="3">列合并td>
tr>
<tr>
<td rowspan="3">行合并td>
<td>5td>
<td>6td>
tr>
<tr>
<td>8td>
<td>9td>
tr>
<tr>
<td>11td>
<td>12td>
tr>
table>
input元素的type属性
示例代码(来源拉勾教育):
<form action="baidu" method="GET">
<p>帐号:<input name="a" type="text" placeholder="请输入帐号..."
maxlength="5" >p>
<p>密码:<input name="b" type="password">p>
<p>爱好:
<input name="hobby" type="checkbox"> 抽烟
<input name="hobby" type="checkbox" checked="checked"> 喝酒
<input name="hobby" type="checkbox"> 烫头
<input name="hobby" type="checkbox"> 泡澡
p>
<p>性别:
<input type="radio" name="sex"> 男
<input type="radio" name="sex" checked="checked"> 女
p>
<p>身份:
<input type="radio" name="role"> ceo
<input type="radio" name="role"> cto
<input type="radio" name="role"> coo
<input type="radio" name="role" checked="checked"> ufo
p>
<p>头像:
<input type="file">
p>
<p>血型:
<select>
<option>A型option>
<option>B型option>
<option>C型option>
<option selected="selected">O型option>
select>
p>
<p>个人简介:
<textarea cols="10" rows="5">textarea>
p>
<p>
<input type="reset" value="清空">
<input type="submit" value="提交">
<input type="button" value="取消">
<button>保存button>
p>
form>
<button>测试button>
补充说明
frameset和frame框架标签可以将多个页面即html文件 拼成一个页面,与JSP include指令类似,但框架标签不与body共存,在使用框架标签时,用frameset或frame代替body
(1) 标签
(2) 属性
(3) 属性的值
<input type="password">
<input type=password>
新增许多语义化标签,让div“见名知意”
,修改type属性:
引入外部一个单独的css文件,在head中使用link标签引用。这里要说的是除此之外的一种引入外部CSS文件方式的异同。
三种样式表的优先级:满足就近原则
内联 > 内部 > 外部
<style>
@import 'css/css01.css'
style>
<style>
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */
style>
background-image: url('img/1.jpg');
/* 图片向左移动50px,向下移动100px (可以为负值) */
background-position:50px 100px;
使用CSS可以进行更多样式的修改
如:
CSS盒子模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒子模型允许我们在其它元素和周围元素边框之间的空间放置元素。
块级元素:h1~h6,p, div 等,自上而下,垂直排列(自动换行);可以改变宽高
示例如下:
行内元素:a,b,span,等,从左向右,水平排列(不会换行);不能改变宽高
行内块元素:行内块元素:input,img等,从左向右,水平排列(自动换行);可以改变宽高
box-shadow:value1 value2 value3 value4 value5;
1:水平偏移
2:垂直偏移
3:模糊半径
4:扩张半径
5:颜色
直接上示例
transition{1 2 3 4}
1:过渡或动画模拟的css属性
2:完成过渡所使用的时间(2s内完成)
3:过渡函数。。。(图片来自拉勾教育)
4:过渡开始出现的延迟时间
例:transition: width 2s ease 1s; 长度变化 时长2S 速度逐渐降低 1S后开始过渡
以下为目前CSS3 支持的可实现过渡效果的属性列表:
关键帧:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
.action{
width: 300px;
height: 300px;
background: yellowgreen;
animation: ac 2s linear infinite alternate;
}
@keyframes ac{
0%{background: yellowgreen;}
25%{background: yellow;}
50%{background: violet;}
75%{background: turquoise;}
100%{background: saddlebrown;}
}
style>
head>
<body>
<div class="action">div>
body>
html>
<button onclick="alert('弹框测试')">点我一下button>
数字 + 字符串:数字转换为字符串 10+’a’ -> 10a
数字 + 布尔值:true转换为1,false转换为0 true+5->6
字符串 + 布尔值:布尔值转换为字符串true或false true+’a’->truea
布尔值 + 布尔值:布尔值转换为数值1或0 true+true->2
// 第一种
<script>
var arr1 = new Array();
arr1[0] = 110;
arr1[1] = 119;
arr1[2] = 120;
// 第二种
var arr2 = new Array(10,"a",true);
// 第三种
var arr3 = [10,"a",true];
for (var i = 0; i < arr1.length; i++) {
console.log(arr3[i]);
}
script>
<script>
var arr = [1,2,3,4];
var arrnew = arr.concat(5,6); // 在arr数组的后面添加新的元素,形成一个新数组,但是原数组是不变的
console.log( arrnew +",类型为:" + typeof( arrnew ) );
console.log("原数组:" + arr);
script>
<script>
var time = new Date();
console.log( time ); // Tue Jul 14 2020 11:09:46 GMT+0800 (中国标准时间)
var year = time.getFullYear(); // 年份
var month = time.getMonth() + 1; //月份从0开始,11结束,所以国内习惯要+1
var day = time.getDate(); // 几号
var hour = time.getHours(); // 几点
var mm = time.getMinutes(); // 分钟
var s = time.getSeconds(); //秒
var ms = time.getMilliseconds(); // 毫秒, 1000毫秒 = 1秒
var timestr = year+"年"+month+"月"+day+"号"+hour+"点"+mm+"分"+s+"秒"+ms+"毫秒";
console.log( timestr );
script>
注意的点:
<script>
//使用function定义函数
function 函数名( 形参列表 ){
// 函数体
return 返回值;
}
//有返回值
function sum(a, b) {
var he = a + b;
return "两数之和:" + he;
}
var s = sum(3,4);
console.log( s );
//无返回值
function sum(a, b) {
var he = a + b;
console.log("两数之和:" + he);
}
sum(3,4);
//参数对象
function func(a,b,c){
console.log( arguments.length ); // 获得参数的个数
console.log( arguments[1] ); // 获得下标为1的参数
}
//构造函数
/*
"a" "b" 为参数, "return a*b"是返回值
*/
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
console.log(x);
//匿名函数:需要用一个变量来接收返回值
var fn=new function(a,b){
return a+b;
};
//全局函数
//isNaN(args):检查其参数是否是非数字值
console.log( isNaN( 123 ) ); // 数字,false
console.log( isNaN( "hello" ) ); // 非数字,true
console.log( isNaN( 4-1 ) ); // 数字,false
console.log( isNaN( -10 ) ); // 数字,false
console.log( isNaN( "123" ) ); // 数字,false
console.log( isNaN( "1a23" ) ); // 非数字,true
//eval:用来转换字符串中的运算
var str = "1+3";
console.log( str ); // 1+3 , +会认定为一种字符符号而已,没有加法的作用
console.log( eval( str ) ); // 让字符串中的运算符号生效
//encodeURI 与 decodeURI 编码和解码
var test = "拉勾网";
console.log( "转码前:" + test );
name = encodeURI(test);
console.log( "转码后:" + test );
name = decodeURI(test);
console.log( "解码后:" + test );
script>
getElementById:通过id属性获得元素节点对象
getElementsByName:通过name属性获得元素节点对象集
getElementsByTagName:通过标签名称获得元素节点对象集
可对以下内容进行修改:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
.d1,.d2{
width: 300px;
height: 300px;
outline: 2px yellow solid;
}
style>
head>
<script>
function add(){
var img=document.createElement("img");//创建标签
img.setAttribute("src","img/img1.jpg");//设置src属性以及图片路径
img.style.width="300px";//设置图片宽度
img.style.height="300px";//设置图片高度
var divs=document.getElementsByTagName("div");//获得所有div元素集合
divs[0].appendChild(img);//给第一个div添加子元素
}
script>
<body>
<div class="d1">div>
<button onclick="add()">添加图片button>
body>
<script>
function del(){
var img = document.getElementById("image");
img.parentNode.removeChild(img); // 必须通过父节点,才能删除子节点
}
script>
<script>
var json1 = { username: "吕布", age: 31 };
console.log("姓名:" + json1.username + ",年龄:" + json1.age + "岁");
// json数组
var josnarr = [{ name: "貂蝉", age: 18 }, { name: "小乔", age: 17 }];
console.log("貂蝉" + josnarr[0].age + "岁了");
console.log("小乔" + josnarr[1].age + "岁了");
// 复杂的json对象
var long = {
name: "赵云",
sex: "男",
hobby: ["玉兰白龙驹", "龙胆亮银枪", "青釭剑"]
};
console.log(long.name + "的主攻武器:" + long.hobby[1]);
script>
可用作页面跳转
<script>
function go(){
console.log("当前浏览器地址:"+location.href);
// location.reload();//刷新页面
location.href="http://www.baidu.com";
}
script>
<body>
<button onclick="go()">测试button>
body>
<script>
function forback(){
// history.go(-1);//返回上一级页面
history.back();//返回上一级页面 与go方法效果一致
}
script>
<script>
// 三种方式保存数据
localStorage["a"] = 1;
localStorage.b = 2;
localStorage.setItem("c",3);
// 查看数据类型
console.log( typeof localStorage["a"] )
console.log( typeof localStorage["b"] )
console.log( typeof localStorage["c"] )
// 第一种方式读取
var a = localStorage.a;
console.log(a);
// 第二种方式读取
var b = localStorage["b"];
console.log(b);
// 第三种方式读取
var c = localStorage.getItem("c");
console.log(c);
script>
开启一个浏览器代表一个会话。
<script>
//保存数据
sessionStorage.setItem("name", "klay");
//提取数据
var lastname = sessionStorage.getItem("name");
//删除指定键的数据
sessionStorage.removeItem("name");
//删除所有数据
sessionStorage.clear();
script>