css&js

css&JavaScript

1.div + css

1.1 什么是div

div就是html一个普通标签,进行区域划分。特性:独自占一行。独自不能实现复杂效果。必须结合CSS样式进行渲染。

div通常其是块级元素

<!--
	div标签:块标签,行级元素,会霸占html的一行
-->
<div>div中的数据</div>div之外的数据
<br />
<!--
	span标签:块标签,行内元素,不会占用一行
-->
<span>span中的数据</span>span外的数据

1.2 CSS是什么

CSS 通常称为CSS样式或层叠样式表,主要用于设置HTML页面中的文本内容(字体、大小、对其方式等)、图片的外形(高宽、边框样式、边距等)以及版面的布局等外观显示样式。

CSS可以是HTML页面更好看,CSS色系的搭配可以让用户更舒服,CSS+DIV布局更佳灵活,更容易绘制出用户需要的结构。

CSS (Cascading Style Sheets) :指层叠样式表

  • 样式:给HTML标签添加需要显示的效果。
  • 层叠:使用不同的添加方式,给同一个HTML标签添加样式,最后所有的样式都叠加到一起,共同作用于该标签。

1.3 CSS样式规则

使用HTML时,需要遵从一定的规范。CSS亦如此,要想熟练的使用CSS对网页进行修饰,首先需要了解CSS样式规则。具体格式如下:

选择器{属性1:属性值;属性2:属性值;..}

在上面的样式规则中,“选择器”用于指定CSS样式作用的HTML对象,花括号内是对该对象设置的具体样式。属性和属性值以键值对方式出现,使用英文冒号“:”分隔。多个属性之间使用英文分号“;”分隔。例如:

<style>
	h2{
		color:red;
		font-size:100px;
	}
</style>

初学者在书写CSS样式时,除了要遵循CSS样式规则,还必须注意CSS代码结构中的几个特点,具体如下:

  • CSS样式“选择器”严格区分大小写,“属性”和“属性值”不区分大小写。
  • 多个属性之间必须用英文状态下的分号隔开,最后一个属性后的分号可以省略,但是,为了便于增加新样式最好保留。
  • 如果属性的值由多个单词组成且中间包含空格,则必须为这个属性值加上英文状态下的引号。例如:
p { font-family:"Times New Roman";}
  • 在编写CSS代码时,为了提高代码的可读性,通常会加上CSS注释,例如:
/* 这是CSS注释文本,此文本不会显示在浏览器窗口中  */

在CSS代码中空格是不被解析的,花括号以及分号前后的空格可有可无。因此,可以使用空格键、Tab键、回车键等对样式代码进行排版,即所谓的格式化CSS代码,这样可以提高代码的可读性。例如:

h1{font-size:20px; color:red; }

h1{ 
    font-size:20px;                    /* 定义字体大小属性  */
    color:red;                          /* 定义颜色属性  */
}

上述两段代码所呈现的效果是一样的,但是,第二种书写方式的可读性更高。需要注意的是,属性的值和单位之间是不允许出现空格的,否则浏览器解析时会出错。例如,下面这行代码就是不正确的。

h1{ font-size:20 px; }                /* 20和单位px之间有空格 */

1.4 引入css样式

CSS使用非常灵活,及可以嵌入在HTML文档中,也可以是一个单独的文件,如果是单独的文件,则必须以.css为扩展名。CSS和HTML的结合3种常用方式:

  1. 行内样式

    行内样式,是通过标签的style属性来设置元素的样式。

<!--方式1:行内样式
	color : 表示字体颜色
	font-size : 表示字体大小
-->
<a style="color: #f00; font-size: 30px;">传智播客</a>

行内样式通过标签的属性来控制样式,这样并没有做到结构与表现(HTML展示结构、CSS显示效果)相分离,所以一般很少使用。学习阶段有时候为了快速编程,偶有使用。

2.内部样式

内部样式又称为内嵌式,是将CSS代码集中写在HTML文档的head头部标签体中,并且使用style标签定义。

  • 给当前html文件中的多个标签设置样式。
  • 在html的head标签中使用style标签来定义CSS
<!--方式2:内部样式
	background-color : 表示背景色
-->
<style type="text/css">
	body{
		background-color: #ddd;
	}
</style>

内嵌式CSS样式只对其所在的HTML页面有效,可以对多处标签统一设置样式,因此,仅设计一个页面时,使用内嵌式是个不错的选择。但如果是一个网站,不建议使用这种方式,因为他不能充分发挥CSS代码的重用优势。

3.外部样式

外部样式又称为链入式,是将所有的样式放在一个或多个以.css为扩展名的外部样式表文件中,通过link标签将样式连接到HTML文档中。

<!--方式3:外部样式
	rel="stylesheet" ,固定值,当前文件和引入文件的关系,rel是relationship的缩写,stylesheet是样式表
	type="text/css",  固定值,表示浏览器解析方式
	href ,表示css文件位置
	font-family 表示使用的字体系列,多个字体使用逗号分隔。例如:“字体1,字体2,字体3”,此时优先使用“字体1”,如果“字体1”系统不存在,再使用“字体2”,以此类推。
-->
<link rel="stylesheet" type="text/css" href="css/demo00.css"/>

链入式最大的好处是同一个CSS样式表可以被不同的HTML页面链接使用,同时一个HTML页面也可以通过多个link标记链接多个CSS样式表。

  • 优先级

1.5 选择器

要想将CSS样式应用于特定的HTML元素,首先需要找到该目标元素。在CSS中,执行这一任务的样式规则部分被称为选择器,本小节将对CSS基础选择器进行详细地讲解,具体如下:

1.5.1 元素选择器

标记选择器是指用HTML标记名称作为选择器,按标记名称分类,为页面中某一类标记指定统一的CSS样式。其基本语法格式如下:

标记名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该语法中,所有的HTML标记名都可以作为标记选择器,例如body、h1、p、strong等。用标记选择器定义的样式对页面中该类型的所有标记都有效。例如:

h1{
	color: #F00;
	font-size: 50px;
}
<h1>商城</h1>

标记选择器最大的优点是能快速为页面中同类型的标记统一样式,同时这也是他的缺点,不能设计差异化样式。

1.5.2 ID选择器

id选择器使用“#”进行标识,后面紧跟id名,其基本语法格式如下:

#id名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该语法中,id名即为HTML元素的id属性值,大多数HTML元素都可以定义id属性,元素的id值是唯一的,只能对应于文档中某一个具体的元素。即使在页面中使用多个相同id值也不会报错,但是会影响到javascript的网页特效。例如:

#demo1{
	color:#0f0;
}
<h1 id="demo1">商城</h1>

“标签选择器”和“id选择器”共同作用的效果

1.5.3 类选择器

类选择器使用“.”(英文点号)进行标识,后面紧跟类名,其基本语法格式如下:

.类名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该语法中,类名即为HTML元素的class属性值,大多数HTML元素都可以定义class属性。类选择器最大的优势是可以为元素对象定义单独或相同的样式。例如:

.myClass{
	font-size: 25px;
}
<h1 class="myClass">Java培训</h1>

“标签选择器”和“类选择器”共同作用的效果

类选择器的高级用法:给指定的标签设置class样式

标签.类名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

1.5.4 属性选择器

属性选择器,在标签后面使用中括号标记,其基本语法格式如下:

标签名[标签属性=’标签属性值’]{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该选择器,是对“元素选择器”的扩展,对一组标签进一步过滤。例如:

<style>
	input[type="text"]{
		background-color: yellow;
	}
	
	input[type="password"]{
		background-color: green;
	}
</style>

1.5.5 包含选择器

包含选择器,两个标签之间使用空格,给指定父标签的后代标签设置样式,可以方便在区域内编写样式。

父标签 后代标签{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }

该选择器,是对“元素选择器”的扩展,对一个标签内部所有后代标签进行过滤。

<style>
	#d1 div{
		color: red;
	}
</style>

1.5.6 伪类选择器

在支持 CSS的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。书写有顺序!必须是 l v h a

a:link {color: #FF0000}	/* 未访问的链接 */
a:visited {color: #00FF00}	/* 已访问的链接 */
a:hover {color: #FF00FF}	/* 鼠标移动到链接上 */
a:active {color: #0000FF}	/* 选定的链接 */

1.6 CSS样式

1.6.1 边框和尺寸:border、width、height

  • border :设置边框的样式
    • 格式:宽度 样式 颜色
    • 例如:style=”border:1px solid #f00” ,1像素实边红色。
    • 样式取值:solid 实线,none 无边,double 双线 等
  • width、height:用于设置标签的宽度、高度。
  • 扩展:分别设置4个边
    border-left:左
    border-right:右
    border-top:上
    border-bottom:下
<style type="text/css">
	div{
		border:1px solid #000;  /*1像素,实边,黑色*/
		width:200px;
		height:200px;
	}
</style>

1.6.2 转换:display

HTML提供丰富的标签,这些标签被定义成了不同的类型,一般分为:块标签和行内标签。

  • 块标签:以区域块方式出现。每个块标签独自占据一整行或多整行。
    • 常见的块元素:

  • 行内元素:不必在新的一行开始,同时也不强迫其他元素在新的一行显示。
    • 常见的行内元素:、 等

在开发中,希望行内元素具有块元素的特性,需要使用display进行转换

选择器{display:属性值}
	常用的属性值:
		inline:此元素将显示为行内元素(行内元素默认的display属性值)
		block:此元素将显为块元素(块元素默认的display属性值)
		none:此元素将被隐藏,不显示,也不占用页面空间。

例如:

<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			span{
				border :1px solid #000;
				width:100px;
				height:40px;
			}
		</style>
	</head>
	<body>
		<!--默认显示一行
,边框环绕,高宽没有作用-->
		<span>显示1-1</span>
		<span>显示1-2</span>
		
		<!--每一行显示,高宽有作用-->
		<span style="display: block;">显示2-1</span>
		<span style="display: block;">显示2-2</span>
	</body>
</html>

1.6.3 字体:color、font-size

color:颜色,字体颜色
font-size:字体的大小,像素px
扩展:了解
font-family:字体,幼圆,宋体,楷体...
text-decoration: none 取消文字上的下划线	

例如:

<a href="#" target="_blank" style="color: red;">我是红色超链接</a>
<a href="#" target="_blank" style="font-size:50px">我是最大超链接</a>
<a href="#" target="_blank" style="font-family: 楷体;">我是楷体超链接</a>
<a href="#" target="_blank" style="text-decoration: none;">我是无下划线的超链接</a>

1.6.4 背景色:background-color

background-color:设置背景色

扩展:了解

background-image:url(背景图片的连接)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>设置背景色和设置背景图片属性</title>
	</head>
	<!--给body添加一个背景图片-->
	<body style="background-image: url(img/bg.jpg);">
		<div style="background-color: yellow;">我是一个div</div>
	</body>
</html>

1.6.5 布局:float、clear

通常默认的排版方式,将页面中的元素从上到下一一罗列,而实际开发中,需要左右方式进行排版,就需要使用浮动

选择器{float:属性值;}
	常用属性值:
		left:元素向左浮动
		right:元素向右浮动
		none:元素不浮动(默认值)

由于浮动元素不再占用原文档流的位置,所以它会对页面中其他元素的排版产生影响。如果要避免影响,需要使用clear属性进行清除浮动。

选择器{clear:属性值;}
	常用属性值:
		left:不允许左侧有浮动元素(清除左侧浮动的影响)
		right:不允许右侧有浮动元素(清除右侧浮动的影响)
		both:同时清除左右两侧浮动的影响

例如:

<!--默认上下布局-->
<div>
	<div>区域1-1</div>
	<div>区域1-2</div>
</div>

<hr />

<!--浮动左右布局-->
<div>
	<div style="float: left;">区域2-1</div>
	<div style="float: left;">区域2-2</div>
</div>

<!--取消浮动,另起一行布局-->
<div style="clear:both"></div>
<hr />
<div>
	<div style="float: left;">区域2-1</div>
	<div style="float: left;">区域2-2</div>
	<div style="float: left;">区域2-3</div>
</div>

1.6.6 CSS的盒子模型

什么是盒子模型

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

内边距:padding

例如,如果您希望所有h1元素的各边都有10像素的内边距,只需要这样:

h1 {padding: 10px;}

您还可以按照上、右、下、左的顺序分别设置各边的内边距,各边均可以使用不同的单位或百分比值:

h1 {padding: 10px 0.25em 2ex 20%;}
  • 我们可以设置这个盒子到其他和盒子之间的距离

    使用css的属性:margin,设置外边距

    • margin:同时设置4个外边距
    • margin-top:上外边距
    • margin-bottom:下外边距
    • margin-left:左外边距
    • margin-rigt:右外边距
  • 也可以设置这个盒子中html元素到盒子之间的距离

    使用css的属性:padding,设置内边距

    • padding:同时设置4个内边距
    • padding-top:上内边距
    • padding-bottom:下内边距
    • padding-left:左内边距
      padding-rigt:右内边距
边框:border
  • border-top-style
  • border-right-style
  • border-bottom-style
  • border-left-style

案例 网站用户注册页面显示

2.1 案例介绍

所有的html标签中,表单标签是最重要的。在实际开发中,最经典的实例就是用户注册,覆盖了表单标签的所有的元素。效果图如下:

2.2 案例分析

知识点分析

为了结构更好的显示表单,本案例我们需要使用table表格布局。根据“验证码”我们需要提供3列来显示数据,其他需要将中和右合并。最终需要创建3*10表格。

2.3 案例实现

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>注册页面</title>
		<style type="text/css">
			/*页面整体背景图*/
			body{
				background-image: url(img/bg.jpg);
			}
			/*
			 * 外层白色背景
			 */
			.formId{
				width: 700px;
				height: 500px;
				border: 1px solid #333;
				margin: 150px auto;
				background-color: #FFFFFF;
				padding-top: 30px;
				padding-left:150px;
			}
			/*
			 * 表单注册区域
			 */
			.formReg{
				width: 500px;
				height: 450px;
				border: 0px solid #333;
			}
			h3{
				color: #0000FF;
				font-size: 20px;
			}
			h3 span{
				color: #000000;
				font-size:16px;
			}
			tr{
				height: 35px;
			}
			.in{
				width: 200px;
				height: 30px;
				margin-left: 10px;
			}
			
		</style>
	</head>
	<body>
		<div class="formId">
			<div class="formReg">
				<h3>用户注册 <span> USERREGiSTER</span></h3>
				<form action="#" method="post">
				<table width="500px">
					<tr>
						<td align="right">用户名</td>
						<td colspan="2"><input   
class="in" name="username" placeholder="请输入用户名"/></td>
					</tr>
					<tr>
						<td align="right">密码</td>
						<td colspan="2"><input  
class="in" type="password" name="password" placeholder="请输入用密码"/></td>
					</tr>
					<tr>
						<td align="right">性别</td>
						<td colspan="2"><input  
type="radio" name="sex" checked="checked"/><input  
type="radio" name="sex"></td>
					</tr>
					<tr>
						<td align="right">验证码</td>
	 
					<td><input type="text"  
name="code"></td>
						<td><img  
src="img/checkcode.jpg"></td>
					</tr>
					<tr>					
						<td colspan="3" 
align="center">
							<input type="image"  
src="img/btn.jpg" />
						</td>
					</tr>
				</table>
				</form>
			</div>
		</div>
	</body>
</html>

第三章 JavaScript基本语法

3.1 JavaScript的概述

3.1.1 什么是JavaScript

JavaScript是web上一种功能强大的编程语言,用于开发交互式的web页面。它不需要进行编译,而是直接嵌入在HTML页面中,由浏览器执行。

  • JavaScript 被设计用来向 HTML 页面添加交互行为。
  • JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言)。
  • JavaScript 由数行可执行计算机代码组成。
  • JavaScript 通常被直接嵌入 HTML 页面。
  • JavaScript 是一种解释性语言(就是说,代码执行不进行预编译)。

JavaScript的组成:

  • ECMAScript:描述了该语言的语法、语句和基本对象。
  • BOM:浏览器对象. 描述处理网页内容的方法和接口。
  • DOM:Document Object Model.操作文档中的元素和内容.

3.1.2 JavaScript的作用

使用JavaScript添加页面动画效果,提供用户操作体验。主要应用有:嵌入动态文本于HTML页面、对浏览器事件做出响应、读写HTML元素、验证提交数据、检测访客的浏览器信息等。

3.1.3 JavaScript的引入

在HTML文件中引入JavaScript有两种方式,一种是在HTML文档直接嵌入JavaScript脚本,称为内嵌式,另一种是链接外部JavaScript脚本文件,称为外联式。对他们的具体讲解如下:

1.内嵌式,在HTML文档中,通过script标签引入,如下

<script type="text/javascript">
	//此处为JavaScript代码
</script>

2.外联式,在HTML文档中,通过script标签引入.js文件,如下:

<script src="1.js" type="text/javascript" ></script>

3.2 基本语法

3.2.1 变量

  1. 在使用JavaScript时,需要遵循以下命名规范:
    • 必须以字母或下划线开头,中间可以是数字、字符或下划线
    • 变量名不能包含空格等符号
    • 不能使用JavaScript关键字作为变量名,如:function
    • JavaScript严格区分大小写。
  2. 变量的声明
var 变量名;	//JavaScript变量可以不声明,直接使用。默认值:undefined

3.变量的赋值

var 变量名 =;	//JavaScript变量是弱类型,及同一个变量可以存放不同类型的数据

3.2.2 数据类型

基本类型
  • undefined,undefined类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。
  • null,只有一个专用值 null,表示空,一个占位符。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。
    • alert(null == undefined); //输出 “true”,尽管这两个值相等,但它们的含义不同。
  • boolean,有两个值 true 和 false
  • number,表示任意数字
  • string,字符串由双引号(")或单引号(’)声明的。JavaScript 没有字符类型

关键字:typeof 可以查看变量的数据类型

引用类型
  • 引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。

  • JavaScript是基于对象而不是面向对象。

  • JavaScript提供众多预定义引用类型(内置对象)。

    造一个对象:var obj = new Object();
    
    造一个字符串对象:var str = new String();
    
    造一个日期对象:var date = new Date();
    
  • 内置函数的重要转换: 字符串转成数字

    parseInt \ parseFloat

    var num = parseInt("123");
    //alert(typeof num);
    
    var num2 = parseFloat("8.8");
    //alert(typeof num2);
    
    var num3 = parseInt("abc");
    alert(num3);//NaN notnumber 无效数字
    alert(typeof num3);
    

3.2.3 运算符

JavaScript运算符与Java运算符基本一致。

算术运算符

y=5;

赋值运算符

x=10 ; y=5;

比较运算符
逻辑运算符

x=4; y=6;

3.2.4 运算符操作

JavaScript规范规定以下操作规则(了解)

Boolean运算
JS中的语句

跟java一样,js也存在if、if-else、for、switch等逻辑语句,与java使用方式一致,此处不再一一阐述

<script type="text/javascript">
	for (var i=0; i<10; i++) {
		//alert(i);
	}
	
	//定义数组
	var arr = [1,2,3,5.5,true,"hello"];
	//普通for遍历数组
	/*for(var i=0; i<arr.length; i++){
		alert(arr[i]);
	}*/
</script>

3.3 函数(重要)

js的函数是js非常重要的组成部分,js最常用的函数的定义方式有两种:

1.普通函数:

//定义函数
function 函数名(参数列表){
	js逻辑代码
    //return 返回值,若不需要返回值可以省略return
}

//函数调用:函数名(实际参数);

例如:求和的函数

//定义函数:
function add(a,b){
	alert(a+b);
}
//执行函数:add(3,5);
//执行结果:8

2.匿名函数:

//定义匿名函数也就是没有名字的函数
function(参数列表){
	js逻辑代码
}

匿名函数没有办法直接调用,一般情况下匿名函数有两种使用场景:

第一种:将匿名函数赋值给一个变量,使用变量调用函数

//定义函数并赋值给变量:
var fn = function(参数列表){
    js逻辑代码
}
//调用函数:fn(实际参数);

第二种:匿名函数直接作为某个函数实际参数

function xxx(数字类型参数,字符串类型的参数,函数类型的参数){
	//js逻辑代码
}
//调用该函数:
xxx(100,”abc”,function(){});

3.4 事件(重要)

3.4.1 事件概述

js的事件是js不可或缺的组成部分,要学习js的事件,必须要理解如下几个概念:

  1. 事件源:被监听的html元素
  2. 事件:某类动作,例如点击事件,移入移除事件,敲击键盘事件等
  3. 事件与事件源的绑定:在事件源上注册上某事件
  4. 事件触发后的响应行为:事件触发后需要执行的代码,一般使用函数进行封装

3.4.2 常用的事件

事件名描述
onload某个页面或图像被完成加载
onsubmit当表单提交时触发该事件—注意事件源是表单form
onclick鼠标点击某个对象
ondblclick鼠标双击某个对象
onblur元素失去焦点
onfocus元素获得焦点
onchange用户改变域的内容
onkeydown某个键盘的键被按下
onkeypress某个键盘的键被按下或按住
onkeyup某个键盘的键被松开
onmousedown某个鼠标按键被按下
onmouseup某个鼠标按键被松开
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开
onmousemove鼠标被移动
<script type="text/javascript">
	//定义处理鼠标单击按钮的事件的函数
	function btnOnclick(){
		alert("随便点点!");
	}
	
	//定义处理文本框获取焦点事件的函数
	function textOnfocus(){
		alert("我获取到了焦点!")
	}
	
	//定义处理图片的鼠标移入事件的函数
	function imgOnmouseover(){
		alert("我又来了!");
	}
</script>
<body>
	<input type="button" value="点击我试试" onclick="btnOnclick()"/>
	
	<input type="text" placeholder="请输入用户名" onfocus="textOnfocus()"/>
	
	<img src="img/2.jpg" onmouseover="imgOnmouseover()"/>
</body>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值