CSS、HTML5新特性、JavaScript

Day30

CSS

CSS常用样式

font-family:“微软雅黑” -设置字体

font-size: 50px -设置字体大小

font-style : italic-设置字体风格

font-weight:bolder -设置字体粗细

color: white-设置字体颜色

letter-spacing: 20px-设置文本内容的间隔

text-decoration :underline - 设置划线

text-align:center -设置文本对齐方式

background-color:red -设置背景颜色

border: black 5px solid -设置边框-颜色、粗细、实线

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			
			p{
				
				font-family: "微软雅黑";/*设置字体*/
				font-size: 50px;/*设置字体大小*/
				font-style: italic;/*设置字体风格*/
				font-weight: bolder;/*设置字体粗细*/
				color: white;/*设置字体颜色*/
				
				letter-spacing: 20px;/*设置文本内容的间隔*/
				text-decoration: underline;/*设置划线*/
				text-align: center;/*设置文本对齐方式*/
				
				background-color: red;/*设置背景颜色*/
				
				border: black 5px solid;/*设置边框 - 颜色、粗细、实线*/
				
			}
			
			a{
				text-decoration: none;/*设置划线*/
			}
			
			a:link {color: black}		/* 未访问的链接 */
			a:visited {color: black}	/* 已访问的链接 */
			a:hover {color: dodgerblue}	/* 鼠标移动到链接上 */
			a:active {color: dodgerblue}	/* 选定的链接 */
			
			button{
				background-image: url(../img/衣.jpg);/*设置背景图片*/
				background-repeat: repeat-y;/*设置背景平铺方式*/
				width: 500px;
				height: 500px;
				
			}
			
		</style>
	</head>
	<body>
		
		<p>初心至善</p>
		<a href="http://www.baidu.com">百度一下,你就知道</a>
		<br />
		<button>普通按钮</button>
	</body>
</html>

盒子模型

< div> < /div>

CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			
			div{
				border: red 1px solid;
				width: 200px;
				height: 200px;
				
				/*margin: 50px; 设置上下左右外边距*/
				margin-top: 50px;/*设置上外边距*/
				margin-bottom: 50px;/*设置下外边距*/
				margin-left: 50px;/*设置左外边距*/
				margin-right: 50px;/*设置右外边距*/
                padding: 50px;
				
				/*padding: 50px; 设置上下左右内边距*/
				padding-top: 50px;/*设置上内边距*/
				padding-bottom: 50px;/*设置下内边距*/
				padding-left: 50px;/*设置左内边距*/
				padding-right: 50px;/*设置右内边距*/
                
                margin: 0 auto;/*水平居中,0表示上下外边距为0。auto表示左右外边距自动调整*/
			}
			
		</style>
	</head>
	<body>
		
		<div>
			初心至善
		</div>
		
	</body>
</html>

注意:
1.内边距会把盒子撑变形
2.为了兼容IE老版本,能用外边距就用外边距

定位

position: relative-相对定位:保留原有位置,针对于原有位置进行位移

position:absolute-绝对定位:不保留原有位置,找寻父级标签,判断父级标签是否有position样式,如果有就按照父级标签位移,如果没有就继续向上找寻,直到body标签为止。

position:fixed-固定定位:将组件固定到页面的某个位置

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#manager{
				border: orange 1px solid;
				margin-top: 80px;
			}
			
			#box01{
				border: red 1px solid;
				width: 100px;
				height: 100px;
                position: absolute;/*绝对定位:不保留原有位置,找寻父级标签,判断父级标签是否有position样式,如果有就按照父级标签位移,如果没有就继续向上找寻,直到body标签为止*/
                top:50px;
                left:50px;
			}
			
			#box02{
				border: green 1px solid;
				width: 100px;
				height: 100px;
				
				position: relative;/*相对定位:保留原有位置,针对于原有位置进行位移*/
				top: 50px;
				left: 50px;
				
			}
			
			#box03{
				border: blue 1px solid;
				width: 100px;
				height: 100px;
			}
		</style>
	</head>
	<body>
		
		<div id="manager">
			<div id="box01"></div>
			<div id="box02"></div>
			<div id="box03"></div>
		</div>
		
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			div{
				position: fixed;/*固定定位:将组件固定到页面的某个位置*/
				top: 50%;
				left: 90%;
			}
		</style>
	</head>
	<body>
		<a name="top"></a>
		
		<div>
			<a href="#top">置顶</a>
		</div>
		
		<a href="#new01">法治</a><!--链接到锚点的位置-->
		<a href="#new02">国际</a><!--链接到锚点的位置-->
		<a href="#new03">娱乐</a><!--链接到锚点的位置-->
		
		<a name="new01"></a><!--下锚点-->
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<h1>法治新闻</h1>
		<a name="new02"></a><!--下锚点-->
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<h1>国际新闻</h1>
		<a name="new03"></a><!--下锚点-->
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
		<h1>娱乐新闻</h1>
	</body>
</html>

浮动

浮动可以帮助我们更好进行页面排版,使原本竖着排列的盒子可以横向排列起来。

副作用:因为浮动会使元素脱离了标准的文档流,从而导致父级元素无法被撑开。

解决办法:添加空盒子

在被浮动的元素后面,添加一个空的div,并且设置一个clear类,并付给该div

.clear{clear:both;}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#manager{
				border: orange 1px solid;
			}
			
			#box01{
				width: 50%;
				height: 100px;
				background-color: red;
				
				float: left;
			}
			
			#box02{
				width: 50%;
				height: 100px;
				background-color: blue;
				
				float: right;
			}
			
			.clear{
				clear: both;/*清除浮动影响 */
			}
			
		</style>
	</head>
	<body>
		
		<div id="manager">
			<div id="box01"></div>
			<div id="box02"></div>
			<div class="clear"></div>
		</div>
		
	</body>
</html>

注意: clear属性的作用不是“清除”浮动元素,而是阻止元素与前面的浮动元素并排,强制将元素放到浮动元素的下方。 因此,clear并不是在“清除”浮动元素本身,而是在清除浮动元素对后续普通流元素的影响。这确保了包含它们的父容器能够正确扩展以包含所有子元素的高度。换句话说,它支撑了父容器,使父容器扩展到足以包含浮动元素。

扩展

repeat-x: 对图片在水平方向上重复

#EAF4FF:在背景图片未覆盖到的区域显示此颜色

border-radius: 5px:使得按钮的四个角都具有5像素的圆角,使按钮的外观更加柔和 。

border-radius:50%: 这条规则将图像的圆角半径设置为元素的50% ,使其变成一个圆。( 如果图像不是正方形,那么这会使图像变成一个椭圆形。 )

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body{
				background: url(../img/渐变色.jpg) center top repeat-x #EAF4FF;
			}
			
			button{
				width: 100px;
				height: 50px;
				color: white;
				font-weight: bolder;
				background-color: orange;
				border-radius: 5px;/*圆角属性*/
				box-shadow: 10px 10px 5px gainsboro;/*添加按钮阴影 X轴偏移量 Y轴偏移量 阴影模糊半径*/
				text-shadow: 5px 5px 5px black;/*添加文本阴影 X轴偏移量 Y轴偏移量 阴影模糊半径*/
			}
			
			img{
				border-radius:50%;
			}
			
		</style>
	</head>
	<body>
		
		<button>普通按钮</button>
		<br />
		<img src="../img/衣.jpg" />
		
	</body>
</html>

HTML5新特性

定义文档类型

在文件的开头总是会有一个标签

语言文档类型声明方式
html4!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”
html5!DOCTYPE html

新增语义化标签

标签描述
header头部标签
nav导航标签
article内容标签
section块级标签
aside侧边栏标签
footer尾部标签
<body>		
	<style type="text/css">
            header,nav,article,aside,footer,section{
                background-color: #87A442;
                text-align: center;
                border: black 1px solid;
                border-radius:20px;
                margin: 10px;
                padding: 10px;
            }

            header{
                height: 120px;
            }

            nav{
                height: 50px;
            }

            article{
                width: 46%;
                height: 120px;
                float: left;
            }

            aside{
                width: 46%;
                height: 120px;
                float: right;yu
            }

            footer{
                clear: both;
                height: 120px;
            }

            section{
                height: 70px;
            }
		
	</style>
	<header>头部标签 - header</header>
	<nav>导航标签 - nav</nav>
	<div>
		<article>内容标签 - article
			<section>块级标签 - section</section>
		</article>
		<aside>侧边栏标签 - aside</aside>
	</div>
	<footer>尾部标签 - footer</footer>
</body>

新增表单内容

<form action="#" method="post">
        日期选择器:<input type="date"/><br/>
        时间选择器:<input type="time"/><br/>
        邮箱输入框:<input type="email"/><br/>
	数字输入框:<input type="number" value="50" min="10" max="100" step="5"/><br/>
	URL输入框: <input type="url" list="url_list"/>
	<datalist id="url_list">
		<option label="W3School" value="http://www.w3school.com.cn" />
		<option label="谷歌" value="http://www.google.com" />
		<option label="百度一下" value="http://www.baidu.com" />
	</datalist><br/>
	
	<input type="submit" value="提交"/>
</form>

Javascript

Javascript是基于对象和事件驱动的脚本语言,主要是嵌入到HTML中,应用在客户端,动态操作网页元素,也可以作用于服务端。
特点:
交互性(表单校验,信息提示,动态数据图表,ajax异步提交,解析服务端响应数据等等)
安全性(不可以直接访问本地硬盘)
跨平台性(由浏览器解析执行,和平台无关)

弱类型

变量

知识点:变量
语法:
var 变量名 = 值;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<script type="text/javascript">
			/**
			 * 知识点:变量
			 * 语法:
			 * 		var 变量名 = 值;
			 */
			
			var v = 100;
			console.log(v);
			
			v = "abc";
			console.log(v);
			
		</script>
		
		
	</body>
</html>

基本数据类型

number,string,boolean,undefined,null

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<script type="text/javascript">
			/*
			 * 知识点:JS基本数据类型
			 * 分类:number、string、boolean、undefined、null
			 */
			
			//number - 数值类型
			var num = 100;
			console.log(num);//100
			num = 123.123;
			console.log(num);//123.123
			
			//string - 字符串类型
			//注意:使用单引号或者双引号都是可以的
			var str = 'abc';
			console.log(str);//abc
			str = "abc";
			console.log(str);//abc
			
			//boolean - 布尔类型
			var bool = true;
			console.log(bool);//true
			bool = false;
			console.log(bool);//false
			
			//undefined - 无定义类型
			var v;
			console.log(v);//undefined
			v = undefined;
			console.log(v);//undefined
			
			//null - 空类型
			var v = null;
			console.log(v);//null
		</script>
		
	</body>
</html>

基本数据类型的特殊点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<script type="text/javascript">
			
			//number -  数值类型的特殊点
			//Infinity表示无穷大
			console.log(Infinity + (-Infinity));//NaN - not a number
			
			//string - 字符串类型的特殊点
			//字符串除了加是字符串拼接符,其余的都是做算数运算
			var str1 = "10";
			var str2 = "5";
			console.log(str1 + str2);//105
			console.log(str1 - str2);//5
			console.log(str1 * str2);//50
			console.log(str1 / str2);//2
			console.log(str1 % str2);//0
			
			//boolean - 布尔类型的特殊点
			//""、0、undefined、null都表示false
			if(""){
				console.log("true");
			}else{
				console.log("false");
			}
			
			if(0){
				console.log("true");
			}else{
				console.log("false");
			}
			
			if(undefined){
				console.log("true");
			}else{
				console.log("false");
			}
			
			if(null){
				console.log("true");
			}else{
				console.log("false");
			}
			
			//undefined vs null
			var v1 = undefined;
			var v2 = null;
			console.log(typeof v1);//undefined
			console.log(typeof v2);//object
			
			//== vs ===
			//==判断两个值是否相同
			//===判断两个值+类型是否相同
			var v3 = 100;
			var v4 = "100";
			console.log(v3 == v4);//true
			console.log(v3 === v4);//false
			
			
		</script>
	</body>
</html>

数组

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<script type="text/javascript">
			
			var arr = ["小亮","小宇","小丹"];
			var arr1=[1,2,"123"];
			//设置指定下标上的元素
			arr[2] = "小蒲";
			
			//获取指定下标上的元素
			var element = arr[2];
			console.log("获取指定下标上的元素:" + element);
		
			//获取元素个数
			console.log("获取元素个数:" + arr.length);
			
			//添加元素
			arr[3] = "小康";
			arr[4] = "小航";
			arr[10] = "玛卡巴卡";
			
			//删除元素
			delete arr[4];
			
			console.log("---------------------");
			
			//遍历数组 -- for
			for(var i = 0;i<arr.length;i++){
				console.log(arr[i]);
			}
			
			console.log("---------------------");
			
			//遍历数组 -- for-in
			//for-in表里有效元素的下标(undefined为无效下标)
			for(var index in arr){
				console.log(arr[index]);
			}
			for (var index in arr1) {
				console.log(arr1[index]);
			}
			
		</script>
		
		
	</body>
</html>

注意:1.删除数组元素会将此位置留空,数组的长度不会发生变化。

2.一个数组里可以放不同类型的元素。

流程控制语句

for

<body>
		
		<script type="text/javascript">
			/*
			 * 1.求1-100之间的偶数之和
			 */
			var sum = 0;
			for(var i = 1;i<=100;i++){
				if(i%2==0){
					sum += i;
				}
			}
			
			console.log("1~100之间偶数之和为:" + sum);
			
			
		</script>
		
		
	</body>

while

<body>
		
		<script type="text/javascript">
			/*
			 * 2.我的梦想:第一个月存3000,每年递增1000,问多少个月后可以存到20万元
			 */
			var allMoney = 0;
			var money = 3000;
			var month = 0;
			
			while(allMoney < 200000){
				allMoney += money;
				month++;
				if(month%12==0){
					money += 1000;
				}
			}
			
			console.log(month + "个月后存满20万");
			
			
		</script>

for嵌套

<body>
		
		<script type="text/javascript">
			/*
			 * 3.打印直角三角形
			 */
			for(var i = 0;i<5;i++){
				for(var j = 0;j<=i;j++){
					document.write("*");
				}
				document.write("<br/>");
			}
			
			/**
			 * 提升题:
			 * 		write()和writeln()的区别
			 */
			
		</script>
		
		
	</body>

注意:1.要在页面打印,不能在控制台打印,因为会自动换行

2.换行用< br/>,writeln 在 < pre> 元素中或者 CSS 中设置 才能换行。

函数

含义:特定功能的代码块,类似于java中对于方法的定义

分类:
无参数无返回值的函数
带参数的函数
带返回值的函数

<script type="text/javascript">
			/*
			 * 知识点:函数
			 * 含义:特定功能的代码块
			 * 分类:
			 * 		无参数无返回值的函数
			 * 		带参数的函数
			 * 		带返回值的函数
			 * 
			 */
			
			//无参数无返回值的函数
			function fun01(){
				console.log("无参无返回值的函数");
			}
			fun01();
			
			//带参数的函数
			//注意:参数不用写var
			function fun02(a,b){
				console.log("带参数的函数:" + a + " -- " + b);
			}
			fun02();
			fun02(10);
			fun02(10,20)
			
			//带返回值的函数
			function fun03(){
				return "带返回值的函数";
			}
			var v = fun03();
			console.log(v);
    
    		//函数也是一种数据,我们可以把函数赋值给一个变量
			var add = function(a,b,c){
			return a+b+c;
			}
            console.log(add);//打印函数的信息
		</script>

注意:不写入参数会默认是undefined

函数重载?

注意:JS没有重载的概念,相同函数名会覆盖

<script type="text/javascript">
			/*
			 * 知识点:函数重载
			 * 注意:JS没有重载的概念,相同函数名会覆盖
			 */
			
			function fun(a,b){
				console.log(a+b);
			}
			
			function fun(a,b,c){
				console.log(a+b+c);
			}
			
			fun(10,20)
			
		</script>

注意:会返回NaN,因为参数有一个undefined。

函数递归

<script type="text/javascript">
			/*
			 * 知识点:函数递归
			 * 
			 * 需求:设计一个函数,传入n,求n的阶乘
			 */
			
			function fun(n){
				if(n != 1){
					return fun(n-1)*n;
				}else{
					return 1;
				}
			}
			
			var num = fun(5);
			console.log(num);
		</script>

预定义函数

eval()

<script type="text/javascript">
			
			console.log("将数据解析成整数:" + parseInt("123.123"));//123
			console.log("将数据解析成小数:" + parseFloat("123.123"));//123.123
			console.log("判断字符串是否是数字:" + isFinite("123"));//true
			console.log("判断字符串是否是非数字:" + isNaN("abc"));//true
			
			var str = "alert('初心至善');";
			eval(str);//将字符串认为是JS代码去执行
			
		</script>

DOM

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

HTML DOM (文档对象模型)

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树。

DOM 的核心概念: 通过语句获取 HTML 内容再进行操作

查找元素

通过id查找

<body>
		
		<h1 id="h1id">初心至善</h1>
		
		<script type="text/javascript">
			
			//根据id获取元素对象
			var h1 = document.getElementById("h1id");
			
			//绑定单击事件
			h1.onclick = function(){
				//设置文本内容
				this.innerText = "做真实的自己";
			}
			
			
		</script>
		
	</body>

通过class查找

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<h1 class="h1class">初心至善</h1>
		<h1 class="h1class">初心至善</h1>
		
		<script type="text/javascript">
			
			//根据class获取元素对象数组
			var h1 = document.getElementsByClassName("h1class")[0];
			
			//绑定单击事件
			h1.onclick = function(){
				//设置文本内容
				this.innerText = "做真实的自己";
			}
			
			
		</script>
		
	</body>
</html>

根据标签获取

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<h1>初心至善</h1>
		<h1>初心至善</h1>
		
		<script type="text/javascript">
			
			//根据标签获取元素对象数组
			var h1 = document.getElementsByTagName("h1")[0];
			
			//绑定单击事件
			h1.onclick = function(){
				//设置文本内容
				this.innerText = "做真实的自己";
			}
			
			
		</script>
		
	</body>
</html>

根据name获取

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<input type="text" name="xxx" value="xxx"/>
		<input type="text" name="xxx" value="xxx"/>
		
		<script type="text/javascript">
			
			//根据name获取元素对象数组
			var input = document.getElementsByName("xxx")[0];
			
			//设置value属性
			input.value = "用良心做教育";
			
			/*
			 * document表示dom树
			 * 
			 * 查找元素:
			 * 		通过id查找对象
			 * 		通过class、name、标签查找对象数组
			 */
			
			
		</script>
		
	</body>
</html>

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值