css的常用属性(2)+Javascript简介+ECMAScript基本语法

一、css的常用属性(2)

1.定位属性
1.1基础使用

position:设置元素的位置,

​ absolute:绝对定位,参照父标签或者先辈标签设置有效定位,通过left,top,right,bottom设置有效定位【类似于坐标轴,至少需要其中的两个值可以确定一个标签的位置】

​ 参照物:如果给一个元素设置位置,则查看该标签的父标签是否设置有效定位,如果有,则以父标签作为参照物;如果没有设置,则查找所有的先辈标签,如果所有先辈标签没有设置,则以body作为参照物【设置了绝对定位,该标签对象会从流中拖出,会脱离流,不会保留原来的位置】

​ relative:相对定位,通过left,top,right,bottom设置有效定位

​ 参照物:该标签自身原来的位置【设置了相对定位,该标签对象不会脱离流,会保留原来的位置】

​ fixed:固定定位

​ 参照物:窗体【脱离流】

​ 使用场景:一般应用在广告中

注意:left,top,right,bottom可以是正数,也可以是负数

z-index:设置元素的优先级

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			body{
				height: 9999px;
				background: red;	
			}
			
			.abs{
				position: absolute;
				left: 100px;
				top: 100px;
				
			}
		</style>

	</head>
	<body>
		<h2 class="abs">标题</h2>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			.rel1{
				position: relative;
				left: -20px;
			}
			.rel2{
				position: relative;
				left: 20px;
			}
		</style>
	</head>
	<body>
		<h2>标题标题标题标题标题</h2>
		<h2 class="rel1">标题标题标题标题标题</h2>
		<h2 class="rel2">标题标题标题标题标题</h2>
		
		<!--
			总结:
			绝对路径:参照物为父标签
			相对路径:参照物为自身原来默认的位置
		-->
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			body{
				height: 9999px;
			}
			
			p{
				position: fixed;
				left: 100px;
				top: 50px;
			}
		</style>
	</head>
	<body>
		<p>文本问呢不能</p>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			img{
				width: 300px;
				height: 300px;
				position: absolute;
				left: 0px;
				top: 0px;
				
				/*根据z-index的值决定哪个元素显示在最上层
				 * z-index使用的前提:必须先设置pisition属性
				 * z-index的默认值为0,数值越大,则表示优先级越高,则显示最上层
				 */
				z-index: -1;
			}
		</style>
	</head>
	<body>
		<h1>这是一个标题</h1>
		<img src="img/dog.jpg" />
	</body>
</html>
1.2百度首页

css文件

*{
	padding: 0px;
	margin: 0px;
}

#head{
	/*向右浮动*/
	float: right;
	margin-top: 10px;
}

.headlink{
	color: black;
	font-size: 12px;
	margin: 10px;
}

.more{
	background-color: blue;
	color: white;
	text-decoration: none;
	font-size: 14px;
}

#middle{
	/*清除浮动*/
	/*清除浮动的目的:为了前面标签设置的浮动效果不要影响后面标签的坐标计算*/
	clear: right;
	
	text-align: center;
	/*设置定位,参照物为父标签body*/
	position: absolute;
	
	top: 50px;
	
	width: 100%;
}

#key{
	width: 40%;
	height: 28px;
	
}

#btn{
	width: 10%;
	height: 30px;
	background-color: blue;
	color: white;
}

#footer{
	position: absolute;
	bottom: 10px;
	
	width: 100%;
	text-align: center;
	
	/*height: ;*/
}

#p1{
	font-size: 14px;
}
#footlink{
	margin: 10px;
}

#footlink a{
	color: gray;
	font-size: 12px;
	
}

html文件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="stylesheet" type="text/css" href="css/baidustyle.css" />
	</head>
	<body>
		<!--上面-->
		<div id="head">
			<!--同一个类选择器可以同时作用于多个标签-->
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="headlink">新闻</a>
			<a href="#" class="more">更多产品</a>
		</div>
		
		<!--中间-->
		<div id="middle">
			<img src="http://www.baidu.com/img/bd_logo1.png" />
			<div id="sub">
				<form action="#" method="get">
					<input type="text" name="kw" id="key" />
					<!--<input type="button" value="百度一下" />-->
					<button id="btn">百度一下</button>
				</form>
			</div>
		</div>
		
		<!--下面-->
		<div id="footer">
			<!--二维码-->
			<div>
				<img src="img/二维码.png" />
				<p id="p1">手机百度</p>
			</div>
			<!--底部文字-->
			<div id="footlink">
				<a href="#">新闻</a>
				<a href="#">新闻</a>
				<a href="#">新闻</a>
				<a href="#">新闻</a>
				<br />
				<a href="#">新闻</a>
				<a href="#">新闻</a>
				<a href="#">新闻</a>
			</div>
		</div>
	</body>
</html>
2.过渡和形变属性
2.1基础使用

形变:transform,可以设置标签的放大或者缩小,旋转角度

过渡:transition,结合其他属性使用,一般应用在动画中,主要是为了声明使用动画的是哪个属性

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			#box{
				width: 300px;
				height: 200px;
				background-color: orange;
				
				margin: 100px;
				
				/*设置旋转点*/
				/*left right top bottom center*/
				transform-origin: center bottom;
				
				/*设置形变*/
				/*1.设置旋转*/
				/*默认沿着z轴旋转
				 *  rotate()
				 *  rotateX()
				 *  rotateY()
				 *  rotateZ()
				 * 
				 * xxxdeg
				 * 正数:顺时针,负数:逆时针
				 */
				/*transform: rotate(-30deg);*/
				
				
				/*2.设置缩放*/
				/*scale()
				 * scaleX()
				 * scaleY()
				 * 
				 * 0~1之间:缩小
				 * 大于1:放大
				 */
				/*transform: scaleY(1.5);*/
				
				/*3.设置旋转和缩放*/
				transform: scale(2) rotate(75deg);
				
			}
		</style>
	</head>
	<body>
		<div id="box">演示形变</div>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			div{
				width: 300px;
				height: 200px;
				background-color: orange;
				
				margin: 100px;
				
				/*过渡:当一个标签的某些属性发生改变的时候,设置改变的时间和属性*/
				/*添加过渡确定两点*/
				/*1.发生过渡需要的时间*/
				transition-duration: 10s;
				
				/*2.哪个属性的值需要过渡,all表示所有属性*/
				transition-property: all;
			}
			
			div:hover{
				background-color: yellow;
				transform: rotate(90deg);
				font-size: 30px;
			}
			
		</style>
	</head>
	<body>
		<div>过渡</div>
	</body>
</html>
2.2照片墙

css文件


#box{
	width: 100%;
	height: 900px;
	/*auto表示自适应*/
	margin: 100px auto;
	background-color: orange;
}

/*设置图片的公共部分*/
img{
	width: 160px;
	height: 200px;
	border: 1px solid white;
	margin: 15px;
	
	transition-duration: 2s;
	transition-property: transform;
}

/*设置鼠标悬浮*/
#box > img:hover{
	transform: scale(1.2) rotate(0deg);
}

/*设置每张图片的旋转角度*/
div img:nth-child(1){
	transform:rotate(15deg)
}
div img:nth-child(2){
	transform:rotate(-15deg)
}
div img:nth-child(3){
	transform:rotate(10deg)
}
div img:nth-child(4){
	transform:rotate(35deg)
}
div img:nth-child(5){
	transform:rotate(5deg)
}
div img:nth-child(6){
	transform:rotate(-15deg)
}
div img:nth-child(7){
	transform:rotate(-5deg)
}
div img:nth-child(8){
	transform:rotate(30deg)
}
div img:nth-child(9){
	transform:rotate(-45deg)
}

html文件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="stylesheet" type="text/css" href="css/photostyle.css" />
	</head>
	<body>
		<div id="box">
			<img src="img/photowall/pic1.jpg" />
			<img src="img/photowall/pic2.jpg" />
			<img src="img/photowall/pic3.jpg" />
			<img src="img/photowall/pic4.jpg" />
			<img src="img/photowall/pic5.jpg" />
			<img src="img/photowall/pic6.jpg" />
			<img src="img/photowall/pic7.jpg" />
			<img src="img/photowall/pic8.jpg" />
			<img src="img/photowall/pic9.jpg" />
		</div>
	</body>
</html>
3.动画属性

animation:设置动画

3.1基础使用

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			div{
				width: 300px;
				height: 200px;
				background-color: orange;
				
				
				/*设置动画
				 * 1.动画的名字,自定义的
				 * 2.动画执行一次需要的时间
				 * 3.动画需要执行的次数 ,默认为1次,无限次:infinite
				 * 4.动画的形式
				 * 		线性动画:linear
				 * 		由快到慢:ease
				 * 		
				 */
				animation:customAnimate 5s  linear infinite;
			}
			
			/*制作动画*/
			@keyframes customAnimate{
				/*from{background-color: cyan;}
				to{background-color: red;}*/
				
				/*
				 * from{起始属性操作}------》%0
				 * to{最终属性操作}-------》100%
				 */
				
				0%{
					background-color: blue;
					
				}
				
				20%{
					transform: rotate(30deg);
				}
				
				40%{
					font-size: 30px;
				}
				
				
				60%{
					color: white;
				}
				
				80%{
					margin: 100px;
				}
				
				100%{
					background-color: cyan;
				}
			}
			
		</style>
	</head>
	<body>
		<div>动画</div>
	</body>
</html>
3.3时钟

css文件

#clock{
	width: 300px;
	height: 300px;
	border: solid 10px gray;
	
	border-radius: 50%;
	
	margin: 150px auto;
	
	/*设置有效定位:子标签【针,圆点,刻度】可以随着div的移动而移动*/
	position: relative;
}

/*刻度*/
#clock .line{
	width: 5px;
	height:310px;
	/*设置定位*/
	position: absolute;
	/*left: ;*/
	background-color: gray;
	left: 50%;
}
/*设置每根线的特性*/
.line2{
	transform: rotate(30deg);
}
.line3{
	transform: rotate(60deg);
}
.line4{
	transform: rotate(90deg);
}
.line5{
	transform: rotate(120deg);
}
.line6{
	transform: rotate(150deg);
}
/*设置覆盖层*/
#cover{
	position: absolute;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	background-color: white;
	
	left: 20px;
	top: 20px;
}

/*设置针*/
#clock .zhen{
	position: absolute;
	
	/*设置旋转点*/
	transform-origin: center bottom;
}

/*设置时针*/
#clock .hour{
	width:6px;
	height:100px;
	background-color: purple;
	top:50px;
	left:149px ;
	animation: circle 43200s linear infinite;
}

/*设置分针*/
#clock .minute{
	width:4px;
	height:120px;
	background-color: blue;
	top:30px;
	left:150px;
	animation: circle 3600s linear infinite;
}

/*设置秒针*/
#clock .seconds{
	width:2px;
	height:140px;
	background-color: red;
	top:10px;
	left:152px ;
	/* steps(60)相当于linear*/
	animation: circle 60s steps(60) infinite;
}

@keyframes circle{
	from{transform: rotate(0deg);}
	to{transform: rotate(360deg);}
}

/*覆盖层*/
#dotted{
	width: 20px;
	height: 20px;
	background-color: gray;
	border-radius: 50%;
	position: absolute;
	left: 140px;
	top:140px;
}

html文件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="stylesheet" type="text/css" href="css/clockstyle.css" />
	</head>
	<body>
		<div id="clock">
			<div class="line line1"></div>
			<div class="line line2"></div>
			<div class="line line3"></div>
			<div class="line line4"></div>
			<div class="line line5"></div>
			<div class="line line6"></div>
			
			<div id="cover"></div>
			
			<div class="zhen hour"></div>
			<div class="zhen minute"></div>
			<div class="zhen seconds"></div>
			
			<div id="dotted"></div>
		</div>
	</body>
</html>

二、Javascript简介

1.概念

Javascript诞生于1995年,网景公司和Sun公司【发布了Java】,是一门脚本语言,Mocha

是基于对象和事件驱动的脚本语言,应用在客户端,简称js

​ 基于对象:提供了很多的对象,可以直接使用

​ 事件驱动:html结合css实现静态网页,js可以实现和用户之间的交互

​ 客户端:主要指的是浏览器

作用:操作html和css

2.js的特点

交互性:实现和用户之间的信息交互

安全性:不可以直接访问本地磁盘上的文件

跨平台型:只要是解析js的浏览器都可以执行,与平台无关

3.和Java之间的关系

没有任何关系,是两门完全独立的编程语言

a.开发公司

​ java:Sun

​ js:网景公司和Sun公司

b.对象

​ java:面向对象

​ js:基于对象

c.数据类型

​ java是强类型语言【每个变量都有确定的数据类型】,举例:int num = 10 string str = “hello”

​ js是弱类型语言【变量的类型由值决定,与Python类似】

​ Python:num = 10 str = “hello”

​ js:var num = 10 var str = “hello”

4.js的组成部分

a.ECMAScript

​ ECMA:欧洲计算机协会,组织制定js的语法【变量,表达式,语句,函数。。。】

b.BOM

​ Broswer Object Model,浏览器对象模型

c.DOM

​ Document Object Model,文档对象模型

5.js和html的结合方式
5.1内部结合方式

注意:script标签可以在head中,也可以在body中

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--
			注意:script标签可以在head中,也可以在body中
			但是,如果需要在js代码中操作某个html标签,最好能将script添加到body中
			以防在head获取不到相应的内容
		-->
		<script type="text/javascript">
			alert("hello world~~~~1111");
		</script>
	</head>
	<body>
		<script type="text/javascript">
			//向页面弹出一个提示框【ctrl + /】
			alert("hello world~~~~2222");
			/*
			 * 多行注释  【ctrl + shift + /】
			 */
			
		</script>
	</body>
</html>
5.2引入外部js文件

仍然使用script标签

语法:

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/text01.js"></script>
			
			<!--注意:如果采用了外部引入的方式引入了js文件,则在script标签中将不能再书写js代码,不生效
			alert("内部的js代码")-->
			
		<!--
			先执行head,然后执行 body
			如果出现多个script标签,则从head中开始从上往下依次执行
		-->
		<script type="text/javascript">
			alert("javascript~~~111")
		</script>
		<script type="text/javascript">
			alert("javascript~~~222")
		</script>
	</head>
	<body>
		<script type="text/javascript">
			alert("javascript~~~333")
		</script>
		<script type="text/javascript">
			alert("javascript~~~444")
		</script>
	</body>
</html>

三、ECMAScript基本语法

1.变量定义

使用var关键字

注意:书写js代码最好能在每条语句 的后面添加一个分号

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			
			//1.先声明,后定义
			var age;
			age = 10;
//			alert(age);
			document.write(age);
			
			document.write("<br />");
			
			//2.可以在声明的同时定义变量
			var num1 = 10;
			document.write(num1);
			
			//3.同时定义多个变量
			//不同的变量之间使用逗号隔开,var只需要出现一次
			var name = "abc",num2 = 26,num3 = 37;
			
			
			//4.js是弱类型语言,容错性较高
			var b;
			b = "fhaj";
			//给变量重新赋值
			b = 10;
			
			
		</script>
	</body>
</html>
2.命名规范

a.变量名可以是数字,字母,下划线,和美元符$组成

b.不能以数字开头

c.不能使用关键字

d.区分大小写

e.遵循驼峰命名法

f.不要使用空格

3.数据类型

Python:数字型,字符串,布尔型,list,tuple。dict,set,函数,类

js:

一般类型:Boolean,Number,String,Array数组,Object对象,Function函数,RegExp正则表达式

特殊类型:

​ Null:是一个只有一个值的特殊数据类型,就是null,它表示当一个引用指向为空时,通过typeof操作符检测的结果返回object

​ Undefined:定义一个变量,但是该变量没有初始值

​ NaN:Not a Number

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			var s1 = "hello";
			
			
			var num1 = 10;
			
			//true和false为小写
			var b1 = true;
			
			//typeof操作符可以判断一个变量的数据类型
//			document.write(typeof num1);
			document.write(typeof(num1));
			
			
			//1.Null
			var n1 = null;
			document.write(typeof n1);
			
			
			//2.undefined
			//注意:最好声明变量的同时赋初始值
			var u1;
			document.write(u1);
			
			document.write("<br />");
			
			//注意:undefined派生自null,表示值是相同的
			document.write(undefined == null);   //true
			document.write("<br />");
			document.write(typeof n1);
			document.write("<br />");
			document.write(typeof u1);
			
			//3.NaN
			var num1 = 0 / 0;
			document.write(num1);
			
			document.write("<br />");
			
			//isNaN():判断一个数据是不是NaN,是number返回false,如果不是返回true
			//isNaN:当接收一个数据的时候,会尝试将该数据转换为number,如果转换失败,则返回true,成功返回false
			document.write(isNaN("123"));
			document.write("<br />");
			document.write(isNaN("abc123"));
			document.write("<br />");
			document.write(isNaN(123));
			document.write("<br />");
			//在js中,true代表是1,false代表是0
			document.write(isNaN(true));
			
		</script>
	</body>
</html>
4.运算符
4.1算术运算符
+ -  *  /  %   
++ :自增运算符
--:自减运算符

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			
			//基本用法
			//++ :自增运算符,可以写在变量的前面或者后面,让变量自身递增1
			var n1 = 2;
			var r1 = ++n1;
			document.write(n1);
			document.write("<br />");
			document.write(r1);
			document.write("<br />");
			
			var n2 = 2;
			var r2 = n2++;
			document.write(n2);
			document.write("<br />");
			
			document.write(r2);
			document.write("<br />");
			
			//++出现在变量的前面:先递增1,然后再使用该变量
			//++出现在变量的后面,先使用变量原来的值,然后再递增1
			//不管++出现在变量的前面还是后面,对于变量本身而言,相当num = num +1
			
			
			//进阶用法:参与运算
			var n1 = 2;
			var r1 = ++n1 + 3;
			document.write(n1);
			document.write("<br />");
			document.write(r1);
			document.write("<br />");
			
			var n2 = 2;
			var r2 = n2++ + 3;
			document.write(n2);
			document.write("<br />");
			
			document.write(r2);
			document.write("<br />");
			
			
			
			//--:自减运算符
			
			//变量++  变量-- ;可以单独称为一条语句
			
			var num1 = 10;
			//num1++;
			num1 = num1 + 1;
			document.write(num1);
			document.write("<br />");
			
			
			//+:拼接
			//在js中,字符串和任意类型的数据通过+运算,都表示拼接,结果都是字符串
			document.write("123" + 10);
			document.write("<br />");
			document.write("123" + "hfaj");
			document.write("<br />");
			document.write("123" + true);
			document.write("<br />");
			document.write("123" + null);
			document.write("<br />");
			document.write("123" + undefined);
			document.write("<br />");
			document.write(123 + "567");
			document.write("<br />");
			
			
		</script>
	</body>
</html>
4.2关系运算符

注意:

a.和Python中的符号完全相同

b.应用在if语句,循环语句中

c.最终结果都是布尔值

d.两个字符串比较,则比较的是字符串的编码值

e.如果两个变量一个是数字,一个是字符串,则尝试将其中的字符串转换为number然后再比较

4.3逻辑运算符

Python:and or not

js:&& || !

规律和Python中完全相同

仍然存在短路原则

4.4三目【三元】运算符

格式:关系运算符?值1:值2;

工作原理:首先判断关系运算符是否成立,如果成立,则返回值1,如果不成立,则返回值2

注意:

​ a.值1和值2可以是表达式,可以是常量,可以是变量

​ b.作用:实现了二选一的操作,类似于if-else语句

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//需求:判断一个数是否是偶数
			/*
			 	if num %  2 == 0:
			 		偶数
			 	else:
			 		奇数
			 * 
			 * 
			 * if(num %  2 == 0):
			 		//偶数
			  else:
			 		//奇数
			 * */
			
			var num = 10;
			
			//常量
			var result = num %  2 == 0 ? "偶数":"奇数";
			document.write(result);
			
			var result = num %  2 == 0 ? true:false;
			document.write(result);
			
			
			//变量
			n1 = true;
			n2 = false;
			var result = num %  2 == 0 ? n1:n2;
			document.write(result);
			
			
			//表达式
			var result = num %  2 == 0 ? 3 != 5:3 == 5;
			document.write(result);
			
			
		</script>
	</body>
</html>
4.5赋值运算符

和Python中完全相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值